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.
| Modifier and Type | Class and Description |
|---|---|
static class |
SoftwareProcessImpl.ServiceNotUpDiagnosticsCollector
This class should be considered internal, and not instantiated directly.
|
static class |
SoftwareProcessImpl.UpdatingNotUpFromServiceProcessIsRunning
Subscribes to SERVICE_PROCESS_IS_RUNNING and SERVICE_UP; the latter has no effect if the former is set,
but to support entities which set SERVICE_UP directly we want to make sure that the absence of
SERVICE_PROCESS_IS_RUNNING does not trigger any not-up indicators.
|
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.EntitySubscriptionSupportInternal, EntityInternal.FeedSupport, EntityInternal.GroupSupportInternal, EntityInternal.PolicySupportInternal, EntityInternal.SensorSupportInternalBrooklynObjectInternal.ConfigurationSupportInternal, BrooklynObjectInternal.RelationSupportInternal<T extends BrooklynObject>, BrooklynObjectInternal.SubscriptionSupportInternalAPPLICATION_ID, CATALOG_ID, CHILD_ADDED, CHILD_REMOVED, CONFIG_KEY_ADDED, CONFIG_KEY_REMOVED, DEFAULT_DISPLAY_NAME, EFFECTOR_ADDED, EFFECTOR_CHANGED, EFFECTOR_REMOVED, ENTITY_ID, GROUP_ADDED, GROUP_REMOVED, LOCATION_ADDED, LOCATION_REMOVED, POLICY_ADDED, POLICY_REMOVED, SENSOR_ADDED, SENSOR_REMOVEDADD_OPEN_INBOUND_PORTS_EFFECTOR, ADDRESS, ARCHIVE_DIRECTORY_NAME_FORMAT, CHILDREN_STARTABLE_MODE, CUSTOMIZE_FILES, CUSTOMIZE_LATCH, CUSTOMIZE_TEMPLATES, 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_PROCESS_IS_RUNNING_POLL_PERIOD, SERVICE_STATE_ACTUAL, SERVICE_STATE_EXPECTED, SETUP_LATCH, SHELL_ENVIRONMENT, SKIP_ENTITY_START_IF_RUNNING, SKIP_INSTALLATION, START_LATCH, START_TIMEOUT, STOP_IPTABLES, STOP_LATCH, SUBNET_ADDRESS, SUBNET_HOSTNAME, SUGGESTED_VERSION, TEMPLATE_SUBSTITUTIONSRESTART, SERVICE_UP, START, STOP| Constructor and Description |
|---|
SoftwareProcessImpl() |
| Modifier and Type | Method and Description |
|---|---|
SoftwareProcessDriver |
getDriver() |
void |
init()
Default entity initialization sets ID sensors and calls
AbstractEntity.initEnrichers(). |
void |
onManagementStarted()
Invoked by
EntityManagementSupport when this entity is fully managed and visible to other entities
through the management context. |
void |
onManagementStarting()
Invoked by
EntityManagementSupport when 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() or postRestart(). |
void |
start(java.util.Collection<? extends Location> locations)
If custom behaviour is required by sub-classes, consider overriding
preStart() or postStart())}. |
void |
stop()
If custom behaviour is required by sub-classes, consider overriding
preStop() or postStop(). |
void |
waitForEntityStart() |
void |
waitForServiceUp() |
void |
waitForServiceUp(Duration duration) |
void |
waitForServiceUp(long duration,
java.util.concurrent.TimeUnit units) |
void |
waitForServiceUp(groovy.time.TimeDuration duration)
Deprecated.
since 0.11.0; explicit groovy utilities/support will be deleted.
|
addChild, addChild, addFeed, addLocations, addLocationsWithoutPublishing, clearLocations, clearParent, config, configure, configure, destroy, enrichers, equals, feeds, firstLocation, getApplication, getApplicationId, getAttribute, getChildren, getConfig, getConfig, getCreationTime, getDisplayName, getEffector, getEntityType, getExecutionContext, getIconUrl, getLocations, getManagementContext, getManagementSupport, getMutableEntityType, getParent, getProxy, getProxyIfAvailable, getRebindSupport, groups, hashCode, invalidateReferences, invoke, invoke, invoke, onManagementBecomingMaster, onManagementNoLongerMaster, onManagementStopped, policies, relations, removeChild, removeLocations, requestPersist, resetProxy, sensors, setConfigEvenIfOwned, setConfigEvenIfOwned, setDisplayName, setManagementContext, setParent, setProxy, subscriptions, toMetadataRecord, toStringaddSearchPath, getCatalogItemId, getCatalogItemIdSearchPath, getId, setCatalogItemId, setCatalogItemIdAndSearchPath, stackCatalogItemId, tagsgetDriverInterfaceaddChild, addChild, addFeed, clearParent, enrichers, getApplication, getApplicationId, getAttribute, getChildren, getConfig, getCreationTime, getDisplayName, getEntityType, getIconUrl, getId, getLocations, getParent, groups, invoke, policies, relations, removeChild, sensors, setDisplayName, setParentgetCatalogItemId, getCatalogItemIdSearchPath, subscriptions, tagsconfig, getConfigaddSearchPath, setCatalogItemId, setCatalogItemIdAndSearchPath, stackCatalogItemIdpublic 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)
@Deprecated 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).