in software/base/src/main/java/org/apache/brooklyn/entity/software/base/AbstractSoftwareProcessDriver.java [125:234]
public void start() {
boolean skipStart = false;
final Location l = getLocation();
Optional<Boolean> locationRunning = Optional.fromNullable(l==null ? null : l.getConfig(BrooklynConfigKeys.SKIP_ENTITY_START_IF_RUNNING));
Optional<Boolean> entityRunning = Optional.fromNullable(entity.getConfig(BrooklynConfigKeys.SKIP_ENTITY_START_IF_RUNNING));
Optional<Boolean> entityStarted = Optional.fromNullable(entity.getConfig(BrooklynConfigKeys.SKIP_ENTITY_START));
if (locationRunning.or(entityRunning).or(false)) {
skipStart = isRunning();
} else {
skipStart = entityStarted.or(false);
}
DynamicTasks.queue("prepare", new Runnable() { @Override public void run() {
prepare();
}});
if (!skipStart) {
DynamicTasks.queue("install", new Runnable() { @Override public void run() {
Optional<Boolean> locationInstalled = Optional.fromNullable(l==null ? null : l.getConfig(BrooklynConfigKeys.SKIP_ENTITY_INSTALLATION));
Optional<Boolean> entityInstalled = Optional.fromNullable(entity.getConfig(BrooklynConfigKeys.SKIP_ENTITY_INSTALLATION));
boolean skipInstall = locationInstalled.or(entityInstalled).or(false);
if (!skipInstall) {
DynamicTasks.queue("copy-pre-install-resources", new Runnable() { @Override public void run() {
try (CloseableLatch value = waitForLatch(BrooklynConfigKeys.PRE_INSTALL_RESOURCES_LATCH)) {
copyPreInstallResources();
}
}});
DynamicTasks.queue("pre-install", new Runnable() { @Override public void run() {
preInstall();
}});
DynamicTasks.queue("pre-install-command", new Runnable() { @Override public void run() {
runPreInstallCommand();
}});
DynamicTasks.queue("setup", new Runnable() { @Override public void run() {
try (CloseableLatch value = waitForLatch(BrooklynConfigKeys.SETUP_LATCH)) {
setup();
}
}});
DynamicTasks.queue("copy-install-resources", new Runnable() { @Override public void run() {
try (CloseableLatch value = waitForLatch(BrooklynConfigKeys.INSTALL_RESOURCES_LATCH)) {
copyInstallResources();
}
}});
DynamicTasks.queue("install (main)", new Runnable() { @Override public void run() {
try (CloseableLatch value = waitForLatch(BrooklynConfigKeys.INSTALL_LATCH)) {
install();
}
}});
DynamicTasks.queue("post-install-command", new Runnable() { @Override public void run() {
runPostInstallCommand();
}});
}
}});
DynamicTasks.queue("customize", new Runnable() { @Override public void run() {
DynamicTasks.queue("copy-pre-customize-resources", new Runnable() { @Override public void run() {
try (CloseableLatch value = waitForLatch(BrooklynConfigKeys.CUSTOMIZE_RESOURCES_LATCH)) {
copyCustomizeResources();
}
}});
DynamicTasks.queue("pre-customize-command", new Runnable() { @Override public void run() {
runPreCustomizeCommand();
}});
DynamicTasks.queue("customize (main)", new Runnable() { @Override public void run() {
try (CloseableLatch value = waitForLatch(BrooklynConfigKeys.CUSTOMIZE_LATCH)) {
customize();
}
}});
DynamicTasks.queue("post-customize-command", new Runnable() { @Override public void run() {
runPostCustomizeCommand();
}});
}});
DynamicTasks.queue("launch", new Runnable() { @Override public void run() {
DynamicTasks.queue("copy-runtime-resources", new Runnable() { public void run() {
try (CloseableLatch value = waitForLatch(BrooklynConfigKeys.RUNTIME_RESOURCES_LATCH)) {
copyRuntimeResources();
}
}});
DynamicTasks.queue("pre-launch-command", new Runnable() { @Override public void run() {
runPreLaunchCommand();
}});
DynamicTasks.queue("launch (main)", new Runnable() { @Override public void run() {
try (CloseableLatch value = waitForLatch(BrooklynConfigKeys.LAUNCH_LATCH)) {
launch();
}
}});
DynamicTasks.queue("post-launch-command", new Runnable() { @Override public void run() {
runPostLaunchCommand();
}});
}});
}
DynamicTasks.queue("post-launch", new Runnable() { @Override public void run() {
postLaunch();
}});
}