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.BasicSubscriptionSupport
SoftwareProcess.ChildStartableMode, SoftwareProcess.RestartSoftwareParameters, SoftwareProcess.StopSoftwareParameters
Startable.RestartEffectorBody, Startable.StartEffectorBody, Startable.StopEffectorBody
Entity.AdjunctSupport<T extends EntityAdjunct>, Entity.EnricherSupport, Entity.GroupSupport, Entity.PolicySupport, Entity.SensorSupport
BrooklynObject.RelationSupport<T extends BrooklynObject>, BrooklynObject.SubscriptionSupport, BrooklynObject.TagSupport
Configurable.ConfigurationSupport
EntityInternal.EnricherSupportInternal, EntityInternal.EntitySubscriptionSupportInternal, EntityInternal.FeedSupport, EntityInternal.GroupSupportInternal, EntityInternal.PolicySupportInternal, EntityInternal.SensorSupportInternal
BrooklynObjectInternal.ConfigurationSupportInternal, BrooklynObjectInternal.RelationSupportInternal<T extends BrooklynObject>, BrooklynObjectInternal.SubscriptionSupportInternal
APPLICATION_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_REMOVED
ADD_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_SUBSTITUTIONS
RESTART, 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, toString
addSearchPath, getCatalogItemId, getCatalogItemIdSearchPath, getId, setCatalogItemId, setCatalogItemIdAndSearchPath, stackCatalogItemId, tags
getDriverInterface
addChild, addChild, addFeed, clearParent, enrichers, getApplication, getApplicationId, getAttribute, getChildren, getConfig, getCreationTime, getDisplayName, getEntityType, getIconUrl, getId, getLocations, getParent, groups, invoke, policies, relations, removeChild, sensors, setDisplayName, setParent
getCatalogItemId, getCatalogItemIdSearchPath, subscriptions, tags
config, getConfig
addSearchPath, setCatalogItemId, setCatalogItemIdAndSearchPath, stackCatalogItemId
public SoftwareProcessDriver getDriver()
getDriver
in interface DriverDependentEntity
public void init()
AbstractEntity
AbstractEntity.initEnrichers()
.init
in class AbstractEntity
public void populateServiceNotUpDiagnostics()
populateServiceNotUpDiagnostics
in interface SoftwareProcess
public void onManagementStarting()
AbstractEntity
EntityManagementSupport
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 AbstractEntity
public void onManagementStarted()
AbstractEntity
EntityManagementSupport
when this entity is fully managed and visible to other entities
through the management context.onManagementStarted
in class AbstractEntity
public void rebind()
AbstractBrooklynObject
AbstractBrooklynObject.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 AbstractBrooklynObject
public 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)
.