public abstract class SoftwareProcessImpl extends AbstractEntity implements SoftwareProcess, DriverDependentEntity
Entity representing a piece of software which can be installed, run, and controlled.
 A single such entity can only run on a single MachineLocation at a time (you can have multiple on the machine). 
 It typically takes config keys for suggested versions, filesystem locations to use, and environment variables to set.
 It exposes sensors for service state (Lifecycle) and status (String), and for host info, log file location.
AbstractEntity.BasicConfigurationSupport, AbstractEntity.BasicEnricherSupport, AbstractEntity.BasicGroupSupport, AbstractEntity.BasicPolicySupport, AbstractEntity.BasicSensorSupport, AbstractEntity.BasicSubscriptionSupportSoftwareProcess.ChildStartableMode, SoftwareProcess.RestartSoftwareParameters, SoftwareProcess.StopSoftwareParametersStartable.RestartEffectorBody, Startable.StartEffectorBody, Startable.StopEffectorBodyEntity.AdjunctSupport<T extends EntityAdjunct>, Entity.EnricherSupport, Entity.GroupSupport, Entity.PolicySupport, Entity.SensorSupportBrooklynObject.RelationSupport<T extends BrooklynObject>, BrooklynObject.SubscriptionSupport, BrooklynObject.TagSupportConfigurable.ConfigurationSupportEntityInternal.EnricherSupportInternal, EntityInternal.FeedSupport, EntityInternal.GroupSupportInternal, EntityInternal.PolicySupportInternal, EntityInternal.SensorSupportInternalBrooklynObjectInternal.ConfigurationSupportInternal, BrooklynObjectInternal.RelationSupportInternal<T extends BrooklynObject>, BrooklynObjectInternal.SubscriptionSupportInternalCHILD_ADDED, CHILD_REMOVED, CONFIG_KEY_ADDED, CONFIG_KEY_REMOVED, EFFECTOR_ADDED, EFFECTOR_CHANGED, EFFECTOR_REMOVED, GROUP_ADDED, GROUP_REMOVED, LOCATION_ADDED, LOCATION_REMOVED, POLICY_ADDED, POLICY_REMOVED, SENSOR_ADDED, SENSOR_REMOVEDADDRESS, ARCHIVE_DIRECTORY_NAME_FORMAT, CHILDREN_STARTABLE_MODE, CUSTOMIZE_LATCH, DONT_REQUIRE_TTY_FOR_SUDO, DOWNLOAD_ADDON_URLS, DOWNLOAD_URL, ENTITY_STARTED, EXPANDED_INSTALL_DIR, HOSTNAME, INBOUND_PORTS_AUTO_INFER, INBOUND_PORTS_CONFIG_REGEX, INSTALL_DIR, INSTALL_FILES, INSTALL_LATCH, INSTALL_RESOURCES_LATCH, INSTALL_TEMPLATES, INSTALL_UNIQUE_LABEL, LAUNCH_LATCH, LIFECYCLE_EFFECTOR_TASKS, MAXIMUM_REBIND_SENSOR_CONNECT_DELAY, OPEN_IPTABLES, PID_FILE, POST_CUSTOMIZE_COMMAND, POST_INSTALL_COMMAND, POST_LAUNCH_COMMAND, PRE_CUSTOMIZE_COMMAND, PRE_INSTALL_COMMAND, PRE_INSTALL_FILES, PRE_INSTALL_TEMPLATES, PRE_LAUNCH_COMMAND, PROVISIONING_LOCATION, PROVISIONING_PROPERTIES, REQUIRED_OPEN_LOGIN_PORTS, RETRIEVE_USAGE_METRICS, RUN_DIR, RUNTIME_FILES, RUNTIME_RESOURCES_LATCH, RUNTIME_TEMPLATES, SERVICE_PROCESS_IS_RUNNING, SERVICE_STATE_ACTUAL, SERVICE_STATE_EXPECTED, SETUP_LATCH, SHELL_ENVIRONMENT, SKIP_ENTITY_START_IF_RUNNING, SKIP_INSTALLATION, START_LATCH, START_TIMEOUT, STOP_IPTABLES, SUBNET_ADDRESS, SUBNET_HOSTNAME, SUGGESTED_VERSIONRESTART, SERVICE_UP, START, STOP| Constructor and Description | 
|---|
| SoftwareProcessImpl() | 
| SoftwareProcessImpl(Entity parent) | 
| SoftwareProcessImpl(java.util.Map properties) | 
| SoftwareProcessImpl(java.util.Map properties,
                   Entity parent) | 
| Modifier and Type | Method and Description | 
|---|---|
| SoftwareProcessDriver | getDriver() | 
| void | init()Default entity initialization, just calls  AbstractEntity.initEnrichers(). | 
| void | onManagementStarted()Invoked by  EntityManagementSupportwhen this entity is fully managed and visible to other entities
 through the management context. | 
| void | onManagementStarting()Invoked by  EntityManagementSupportwhen this entity is becoming managed (i.e. | 
| void | populateServiceNotUpDiagnostics() | 
| void | rebind()Called by framework on rebind (in new-style instances):
 
  after configuring, but
  before the instance is managed, and
  before adjuncts are attached to entities, and
  before a reference to an object is shared. | 
| void | restart()If custom behaviour is required by sub-classes, consider overriding  preRestart()orpostRestart(). | 
| void | start(java.util.Collection<? extends Location> locations)If custom behaviour is required by sub-classes, consider overriding  preStart()orpostStart())}. | 
| void | stop()If custom behaviour is required by sub-classes, consider overriding   preStop()orpostStop(). | 
| void | waitForEntityStart() | 
| void | waitForServiceUp() | 
| void | waitForServiceUp(Duration duration) | 
| void | waitForServiceUp(long duration,
                java.util.concurrent.TimeUnit units) | 
| void | waitForServiceUp(groovy.time.TimeDuration duration) | 
addChild, addChild, addEnricher, addEnricher, addFeed, addGroup, addLocations, addPolicy, addPolicy, clearLocations, clearParent, config, configure, configure, configure, configure, configure, configure, destroy, emit, emitInternal, enrichers, equals, feeds, firstLocation, getAllAttributes, getAllConfig, getAllConfigBag, getApplication, getApplicationId, getAttribute, getAttributeByNameParts, getChildren, getConfig, getConfig, getConfig, getConfig, getConfigMap, getConfigRaw, getConfigRaw, getCreationTime, getDisplayName, getEffector, getEnrichers, getEntityType, getExecutionContext, getFeedSupport, getGroups, getIconUrl, getLocalConfigBag, getLocations, getManagementContext, getManagementSupport, getMutableEntityType, getParent, getPolicies, getProxy, getProxyIfAvailable, getRebindSupport, groups, hashCode, invalidateReferences, invoke, invoke, invoke, modifyAttribute, onManagementBecomingMaster, onManagementNoLongerMaster, onManagementStopped, policies, refreshInheritedConfig, relations, removeAllEnrichers, removeAllPolicies, removeAttribute, removeChild, removeEnricher, removeGroup, removeLocations, removePolicy, requestPersist, resetProxy, sensors, setAttribute, setAttribute, setAttributeWithoutPublishing, setConfig, setConfig, setConfig, setConfig, setConfig, setConfig, setConfigEvenIfOwned, setConfigEvenIfOwned, setDisplayName, setManagementContext, setParent, setProxy, subscribe, subscribeToChildren, subscribeToMembers, subscriptions, toMetadataRecord, toString, unsubscribe, unsubscribegetCatalogItemId, getId, setCatalogItemId, tagsgetDriverInterfaceaddChild, addChild, addEnricher, addEnricher, addFeed, addGroup, addPolicy, addPolicy, clearParent, enrichers, getApplication, getApplicationId, getAttribute, getChildren, getConfig, getConfigRaw, getConfigRaw, getCreationTime, getDisplayName, getEnrichers, getEntityType, getGroups, getIconUrl, getId, getLocations, getParent, getPolicies, groups, invoke, policies, relations, removeChild, removeEnricher, removeGroup, removePolicy, sensors, setDisplayName, setParentgetCatalogItemId, subscriptions, tagsconfig, getConfig, setConfigsetCatalogItemIdpublic SoftwareProcessImpl()
public SoftwareProcessImpl(Entity parent)
public SoftwareProcessImpl(java.util.Map properties)
public SoftwareProcessImpl(java.util.Map properties,
                   Entity parent)
public SoftwareProcessDriver getDriver()
getDriver in interface DriverDependentEntitypublic void init()
AbstractEntityAbstractEntity.initEnrichers().init in class AbstractEntitypublic void populateServiceNotUpDiagnostics()
populateServiceNotUpDiagnostics in interface SoftwareProcesspublic void onManagementStarting()
AbstractEntityEntityManagementSupport when this entity is becoming managed (i.e. it has a working
 management context, but before the entity is visible to other entities), including during a rebind.onManagementStarting in class AbstractEntitypublic void onManagementStarted()
AbstractEntityEntityManagementSupport when this entity is fully managed and visible to other entities
 through the management context.onManagementStarted in class AbstractEntitypublic void rebind()
AbstractBrooklynObjectAbstractBrooklynObject.init() will not be called on rebind.
 
 If you need to intercept behaviour after adjuncts are attached,
 consider AbstractEntity.onManagementStarting() 
 (but probably worth raising a discussion on the mailing list!)
rebind in class AbstractBrooklynObjectpublic void waitForServiceUp()
public void waitForServiceUp(Duration duration)
public void waitForServiceUp(groovy.time.TimeDuration duration)
public void waitForServiceUp(long duration,
                    java.util.concurrent.TimeUnit units)
public void waitForEntityStart()
public final void start(java.util.Collection<? extends Location> locations)
preStart() or postStart())}.
 Also consider adding additional work via tasks, executed using DynamicTasks.queue(String, Callable).public final void stop()
preStop() or postStop().
 Also consider adding additional work via tasks, executed using DynamicTasks.queue(String, Callable).public final void restart()
preRestart() or postRestart().
 Also consider adding additional work via tasks, executed using DynamicTasks.queue(String, Callable).