[3/6] incubator-brooklyn git commit: suppress explicit termination in main thread; the shutdown hook is sufficient and it's a bit of work to terminate properly in-thread
suppress explicit termination in main thread; the shutdown hook is sufficient and it's a bit of work to terminate properly in-thread Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/88b76b71 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/88b76b71 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/88b76b71 Branch: refs/heads/master Commit: 88b76b71bf7f977ee0c4185bba97e17ea0657baf Parents: db44cd7 Author: Alex Heneveld Authored: Wed Jan 20 20:49:13 2016 + Committer: Alex Heneveld Committed: Wed Jan 20 21:07:13 2016 + -- .../core/mgmt/internal/BrooklynShutdownHooks.java| 4 +++- .../src/main/java/org/apache/brooklyn/cli/Main.java | 11 ++- 2 files changed, 9 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/88b76b71/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/BrooklynShutdownHooks.java -- diff --git a/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/BrooklynShutdownHooks.java b/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/BrooklynShutdownHooks.java index 677a4f6..91ca5dc 100644 --- a/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/BrooklynShutdownHooks.java +++ b/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/BrooklynShutdownHooks.java @@ -187,7 +187,9 @@ public class BrooklynShutdownHooks { } entitiesToStop.addAll(entitiesToStopOnShutdown); for (ManagementContext mgmt: managementContextsToStopAppsOnShutdown) { -entitiesToStop.addAll(mgmt.getApplications()); +if (mgmt.isRunning()) { +entitiesToStop.addAll(mgmt.getApplications()); +} } if (entitiesToStop.isEmpty()) { http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/88b76b71/brooklyn-server/server-cli/src/main/java/org/apache/brooklyn/cli/Main.java -- diff --git a/brooklyn-server/server-cli/src/main/java/org/apache/brooklyn/cli/Main.java b/brooklyn-server/server-cli/src/main/java/org/apache/brooklyn/cli/Main.java index 96527db..03be76e 100644 --- a/brooklyn-server/server-cli/src/main/java/org/apache/brooklyn/cli/Main.java +++ b/brooklyn-server/server-cli/src/main/java/org/apache/brooklyn/cli/Main.java @@ -482,11 +482,12 @@ public class Main extends AbstractMain { waitAfterLaunch(mgmt, shutdownHandler); } -// BrooklynShutdownHookJob will invoke terminate() to do mgmt.terminate() and BrooklynWebServer.stop(); -// and System.exit is invoked immediately after ... -// but seems better to do it explicitly here. -// ('launcher' is local to us so the caller *cannot* do it, and no harm in doing it twice.) -launcher.terminate(); +// do not shutdown servers here here -- +// the BrooklynShutdownHookJob will invoke that and others on System.exit() +// which happens immediately after. +// might be nice to do it explicitly here, +// but the server shutdown process has some special "shutdown apps" options +// so we'd want to refactor BrooklynShutdownHookJob to share code return null; }
[6/6] incubator-brooklyn git commit: This closes #1164
This closes #1164 Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/51188609 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/51188609 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/51188609 Branch: refs/heads/master Commit: 5118860990e98881a522d377f3ceca6a1b5df868 Parents: 8303fea 11a0b8a Author: Alex Heneveld Authored: Thu Jan 21 01:22:59 2016 + Committer: Alex Heneveld Committed: Thu Jan 21 01:22:59 2016 + -- .../apache/brooklyn/core/entity/Entities.java | 13 ++-- .../internal/AbstractManagementContext.java | 11 ++- .../mgmt/internal/BrooklynShutdownHooks.java| 4 +- .../mgmt/internal/LocalManagementContext.java | 29 +--- .../brooklyn/rest/resources/ServerResource.java | 1 + .../brooklyn/rest/BrooklynRestApiLauncher.java | 32 +++-- .../rest/testing/BrooklynRestApiTest.java | 8 +-- .../rest/util/NoOpRecordingShutdownHandler.java | 39 ++ .../util/ServerStoppingShutdownHandler.java | 75 .../brooklyn/rest/util/TestShutdownHandler.java | 39 -- .../main/java/org/apache/brooklyn/cli/Main.java | 46 ++-- 11 files changed, 210 insertions(+), 87 deletions(-) --
[2/6] incubator-brooklyn git commit: better shutdown
better shutdown call Main.terminate() in the main thread, rather than relying on shutdown hooks fixes rest-initiated shutdown when using BrooklynJavascriptGuiLauncher (looks like that has been broken since #771) Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/2a432cf3 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/2a432cf3 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/2a432cf3 Branch: refs/heads/master Commit: 2a432cf38a2fb0571e4f76604c3a532b1f89c2c6 Parents: 8303fea Author: Alex Heneveld Authored: Wed Jan 20 15:56:07 2016 + Committer: Alex Heneveld Committed: Wed Jan 20 21:07:12 2016 + -- .../mgmt/internal/LocalManagementContext.java | 29 ++--- .../brooklyn/rest/resources/ServerResource.java | 1 + .../brooklyn/rest/BrooklynRestApiLauncher.java | 32 -- .../rest/testing/BrooklynRestApiTest.java | 8 +-- .../rest/util/NoOpRecordingShutdownHandler.java | 39 .../util/ServerStoppingShutdownHandler.java | 67 .../brooklyn/rest/util/TestShutdownHandler.java | 39 .../main/java/org/apache/brooklyn/cli/Main.java | 45 +++-- 8 files changed, 181 insertions(+), 79 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2a432cf3/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalManagementContext.java -- diff --git a/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalManagementContext.java b/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalManagementContext.java index d88a500..76500bc 100644 --- a/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalManagementContext.java +++ b/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalManagementContext.java @@ -30,6 +30,7 @@ import java.util.Set; import java.util.WeakHashMap; import java.util.concurrent.Callable; import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.atomic.AtomicBoolean; import org.apache.brooklyn.api.effector.Effector; import org.apache.brooklyn.api.entity.Application; @@ -116,6 +117,7 @@ public class LocalManagementContext extends AbstractManagementContext { return closed; } +private AtomicBoolean terminated = new AtomicBoolean(false); private String managementPlaneId; private String managementNodeId; private BasicExecutionManager execution; @@ -316,15 +318,26 @@ public class LocalManagementContext extends AbstractManagementContext { @Override public void terminate() { -INSTANCES.remove(this); -super.terminate(); -if (osgiManager!=null) { -osgiManager.stop(); -osgiManager = null; +synchronized (terminated) { +if (terminated.getAndSet(true)) { +log.trace("Already terminated management context "+this); +// no harm in doing it twice, but it makes logs ugly! +return; +} +log.debug("Terminating management context "+this); + +INSTANCES.remove(this); +super.terminate(); +if (osgiManager!=null) { +osgiManager.stop(); +osgiManager = null; +} +if (usageManager != null) usageManager.terminate(); +if (execution != null) execution.shutdownNow(); +if (gc != null) gc.shutdownNow(); + +log.debug("Terminated management context "+this); } -if (usageManager != null) usageManager.terminate(); -if (execution != null) execution.shutdownNow(); -if (gc != null) gc.shutdownNow(); } @Override http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2a432cf3/brooklyn-server/rest/rest-server/src/main/java/org/apache/brooklyn/rest/resources/ServerResource.java -- diff --git a/brooklyn-server/rest/rest-server/src/main/java/org/apache/brooklyn/rest/resources/ServerResource.java b/brooklyn-server/rest/rest-server/src/main/java/org/apache/brooklyn/rest/resources/ServerResource.java index a9fa4dc..e624d89 100644 --- a/brooklyn-server/rest/rest-server/src/main/java/org/apache/brooklyn/rest/resources/ServerResource.java +++ b/brooklyn-server/rest/rest-server/src/main/java/org/apache/brooklyn/rest/resources/ServerResource.java @@ -218,6 +218,7 @@ public class ServerResource extends AbstractBrooklynRestResource implements Serv if (shutdownHandler != null) {
[1/6] incubator-brooklyn git commit: prevent deadlock if requests coming in during startup
Repository: incubator-brooklyn Updated Branches: refs/heads/master 8303fea86 -> 511886099 prevent deadlock if requests coming in during startup Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/2354c486 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/2354c486 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/2354c486 Branch: refs/heads/master Commit: 2354c4867bc8de3e80bef200bf51424696a33dfc Parents: 2a432cf Author: Alex Heneveld Authored: Wed Jan 20 18:13:35 2016 + Committer: Alex Heneveld Committed: Wed Jan 20 21:07:12 2016 + -- .../core/mgmt/internal/AbstractManagementContext.java| 11 --- 1 file changed, 8 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2354c486/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/AbstractManagementContext.java -- diff --git a/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/AbstractManagementContext.java b/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/AbstractManagementContext.java index d41e059..5d07ed6 100644 --- a/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/AbstractManagementContext.java +++ b/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/AbstractManagementContext.java @@ -372,10 +372,15 @@ public abstract class AbstractManagementContext implements ManagementContextInte return configMap; } +private Object locationRegistrySemaphore = new Object(); + @Override -public synchronized LocationRegistry getLocationRegistry() { -if (locationRegistry==null) locationRegistry = new BasicLocationRegistry(this); -return locationRegistry; +public LocationRegistry getLocationRegistry() { +// NB: can deadlock if synched on whole LMC +synchronized (locationRegistrySemaphore) { +if (locationRegistry==null) locationRegistry = new BasicLocationRegistry(this); +return locationRegistry; +} } @Override
[4/6] incubator-brooklyn git commit: background the dev-mode web server shutdown, and Entities.destroyAll is more graceful on concurrent shutdown
background the dev-mode web server shutdown, and Entities.destroyAll is more graceful on concurrent shutdown Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/db44cd77 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/db44cd77 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/db44cd77 Branch: refs/heads/master Commit: db44cd77670672efcb6c3b44f81a716b76b072af Parents: 2354c48 Author: Alex Heneveld Authored: Wed Jan 20 18:26:56 2016 + Committer: Alex Heneveld Committed: Wed Jan 20 21:07:13 2016 + -- .../apache/brooklyn/core/entity/Entities.java | 13 --- .../brooklyn/rest/resources/ServerResource.java | 2 +- .../util/ServerStoppingShutdownHandler.java | 38 3 files changed, 33 insertions(+), 20 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/db44cd77/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/entity/Entities.java -- diff --git a/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/entity/Entities.java b/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/entity/Entities.java index 9297388..9c8ebc8 100644 --- a/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/entity/Entities.java +++ b/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/entity/Entities.java @@ -805,10 +805,15 @@ public class Entities { ((ManagementContextInternal)mgmt).terminate(); } if (error.get() != null) throw Exceptions.propagate(error.get()); -} catch (InterruptedException e) { -throw Exceptions.propagate(e); -} catch (ExecutionException e) { -throw Exceptions.propagate(e); +} catch (Exception e) { +if (!mgmt.isRunning()) { +// we've checked this above so it would only happen if a different thread stopped it; +// this does happen sometimes e.g. in CliTest where the server shutdown occurs concurrently +log.debug("Destroying apps gave an error, but mgmt context was concurrently stopped so not really a problem; swallowing (unless fatal): "+e); +Exceptions.propagateIfFatal(e); +} else { +throw Exceptions.propagate(e); +} } finally { executor.shutdownNow(); } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/db44cd77/brooklyn-server/rest/rest-server/src/main/java/org/apache/brooklyn/rest/resources/ServerResource.java -- diff --git a/brooklyn-server/rest/rest-server/src/main/java/org/apache/brooklyn/rest/resources/ServerResource.java b/brooklyn-server/rest/rest-server/src/main/java/org/apache/brooklyn/rest/resources/ServerResource.java index e624d89..c029bd3 100644 --- a/brooklyn-server/rest/rest-server/src/main/java/org/apache/brooklyn/rest/resources/ServerResource.java +++ b/brooklyn-server/rest/rest-server/src/main/java/org/apache/brooklyn/rest/resources/ServerResource.java @@ -218,7 +218,7 @@ public class ServerResource extends AbstractBrooklynRestResource implements Serv if (shutdownHandler != null) { shutdownHandler.onShutdownRequest(); } else { -// should always be set as it is required by jersey injection? +// should normally be set, as @Context is required by jersey injection log.warn("ShutdownHandler not set, exiting process"); System.exit(0); } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/db44cd77/brooklyn-server/rest/rest-server/src/test/java/org/apache/brooklyn/rest/util/ServerStoppingShutdownHandler.java -- diff --git a/brooklyn-server/rest/rest-server/src/test/java/org/apache/brooklyn/rest/util/ServerStoppingShutdownHandler.java b/brooklyn-server/rest/rest-server/src/test/java/org/apache/brooklyn/rest/util/ServerStoppingShutdownHandler.java index 7244378..78dde57 100644 --- a/brooklyn-server/rest/rest-server/src/test/java/org/apache/brooklyn/rest/util/ServerStoppingShutdownHandler.java +++ b/brooklyn-server/rest/rest-server/src/test/java/org/apache/brooklyn/rest/util/ServerStoppingShutdownHandler.java @@ -20,6 +20,8 @@ package org.apache.brooklyn.rest.util; import org.apache.brooklyn.api.mgmt.ManagementContext; import org.apache.brooklyn.core.mgmt.internal.ManagementContextInternal; +import org.apache.brooklyn.util.time.Duration
[5/6] incubator-brooklyn git commit: address minor shutdown cleanup code review comments
address minor shutdown cleanup code review comments Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/11a0b8ae Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/11a0b8ae Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/11a0b8ae Branch: refs/heads/master Commit: 11a0b8ae67af596a9cf09cf2e22683b5aa81a20f Parents: 88b76b7 Author: Alex Heneveld Authored: Thu Jan 21 01:19:12 2016 + Committer: Alex Heneveld Committed: Thu Jan 21 01:22:22 2016 + -- .../brooklyn/core/mgmt/internal/AbstractManagementContext.java | 2 +- .../apache/brooklyn/rest/util/ServerStoppingShutdownHandler.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/11a0b8ae/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/AbstractManagementContext.java -- diff --git a/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/AbstractManagementContext.java b/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/AbstractManagementContext.java index 5d07ed6..da9fcae 100644 --- a/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/AbstractManagementContext.java +++ b/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/AbstractManagementContext.java @@ -372,7 +372,7 @@ public abstract class AbstractManagementContext implements ManagementContextInte return configMap; } -private Object locationRegistrySemaphore = new Object(); +private final Object locationRegistrySemaphore = new Object(); @Override public LocationRegistry getLocationRegistry() { http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/11a0b8ae/brooklyn-server/rest/rest-server/src/test/java/org/apache/brooklyn/rest/util/ServerStoppingShutdownHandler.java -- diff --git a/brooklyn-server/rest/rest-server/src/test/java/org/apache/brooklyn/rest/util/ServerStoppingShutdownHandler.java b/brooklyn-server/rest/rest-server/src/test/java/org/apache/brooklyn/rest/util/ServerStoppingShutdownHandler.java index 78dde57..fc3bbc4 100644 --- a/brooklyn-server/rest/rest-server/src/test/java/org/apache/brooklyn/rest/util/ServerStoppingShutdownHandler.java +++ b/brooklyn-server/rest/rest-server/src/test/java/org/apache/brooklyn/rest/util/ServerStoppingShutdownHandler.java @@ -67,7 +67,7 @@ public class ServerStoppingShutdownHandler implements ShutdownHandler { }).start(); } -/** Expect this to be injeted; typically it is not known when this is created, but we need it to trigger shutdown. */ +/** Expect this to be injected; typically it is not known when this is created, but we need it to trigger shutdown. */ public void setServer(Server server) { this.server = server; }
[4/6] incubator-brooklyn git commit: code review for task-cancellation mode
code review for task-cancellation mode Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/54cba8a6 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/54cba8a6 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/54cba8a6 Branch: refs/heads/master Commit: 54cba8a657f151f93eb3cb504ccbb94c6d1fc9c7 Parents: aed0786 Author: Alex Heneveld Authored: Wed Jan 20 21:01:20 2016 + Committer: Alex Heneveld Committed: Wed Jan 20 21:01:38 2016 + -- .../apache/brooklyn/util/core/task/BasicExecutionManager.java| 3 ++- .../main/java/org/apache/brooklyn/util/core/task/BasicTask.java | 1 + .../brooklyn/util/core/task/DynamicSequentialTaskTest.java | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/54cba8a6/brooklyn-server/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionManager.java -- diff --git a/brooklyn-server/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionManager.java b/brooklyn-server/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionManager.java index 2010613..0aab7d5 100644 --- a/brooklyn-server/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionManager.java +++ b/brooklyn-server/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionManager.java @@ -576,6 +576,7 @@ public class BasicExecutionManager implements ExecutionManager { } } } +// TODO this is inefficient; might want to keep an index on submitted-by for (Task t: execMgmt.getAllTasks()) { if (task.equals(t.getSubmittedByTask())) { if (mode.isAllowedToInterruptAllSubmittedTasks() || BrooklynTaskTags.isTransient(t)) { @@ -740,7 +741,7 @@ public class BasicExecutionManager implements ExecutionManager { try { return ((Callable)callable).call(); } catch (Throwable t) { -throw Throwables.propagate(t); +throw Exceptions.propagate(t); } } if (callable instanceof Runnable) { ((Runnable)callable).run(); return null; } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/54cba8a6/brooklyn-server/core/src/main/java/org/apache/brooklyn/util/core/task/BasicTask.java -- diff --git a/brooklyn-server/core/src/main/java/org/apache/brooklyn/util/core/task/BasicTask.java b/brooklyn-server/core/src/main/java/org/apache/brooklyn/util/core/task/BasicTask.java index c727d10..7c29bba 100644 --- a/brooklyn-server/core/src/main/java/org/apache/brooklyn/util/core/task/BasicTask.java +++ b/brooklyn-server/core/src/main/java/org/apache/brooklyn/util/core/task/BasicTask.java @@ -294,6 +294,7 @@ public class BasicTask implements TaskInternal { : TaskCancellationMode.DO_NOT_INTERRUPT); } +@Override @Beta public synchronized boolean cancel(TaskCancellationMode mode) { if (isDone()) return false; if (log.isTraceEnabled()) { http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/54cba8a6/brooklyn-server/core/src/test/java/org/apache/brooklyn/util/core/task/DynamicSequentialTaskTest.java -- diff --git a/brooklyn-server/core/src/test/java/org/apache/brooklyn/util/core/task/DynamicSequentialTaskTest.java b/brooklyn-server/core/src/test/java/org/apache/brooklyn/util/core/task/DynamicSequentialTaskTest.java index 95f0952..364870a 100644 --- a/brooklyn-server/core/src/test/java/org/apache/brooklyn/util/core/task/DynamicSequentialTaskTest.java +++ b/brooklyn-server/core/src/test/java/org/apache/brooklyn/util/core/task/DynamicSequentialTaskTest.java @@ -267,14 +267,14 @@ public class DynamicSequentialTaskTest { waitForMessages(Predicates.compose(MathPredicates.greaterThanOrEqual(2), CollectionFunctionals.sizeFunction()), TIMEOUT); Asserts.assertEquals(MutableSet.copyOf(messages), MutableSet.of("1-wait", "2-wait")); -Time.sleep(Duration.millis(400)); - if (cancellationMode==null) { ((TaskInternal)t).cancel(); } else if (cancellationMode instanceof Boolean) { t.cancel((Boolean)cancellationMode); } else if (cancellationMode instanceof TaskCancellationMode) { ((TaskInternal)t).cancel((TaskCancellationMode)cancellationMode); +} else { +throw new IllegalStateException("Invalid cancellationMode: "+cancell
[2/6] incubator-brooklyn git commit: clearer semantics for cancel, and cancel dependent submitted tasks by default
clearer semantics for cancel, and cancel dependent submitted tasks by default prevents leaks where dependent tasks (eg resolveValue) are submitted in the background, then the caller is cancelled; the interruption was not propagated. now by default it is, to children tasks and to submitted transients, with options for other (weaker and stronger) cancellations. see TaskInternal.cancel(TaskCancellationOptions), and new tests for cancelling children in DynamicSequentialTaskTest. also remove deprecated loose-typing ExecutionUtils.invoke, more TRACE logging for activities, and wrap batch config in a task so more resolutions are nested Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/aed07863 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/aed07863 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/aed07863 Branch: refs/heads/master Commit: aed078633aaf40a4a9da907469700808a245cc78 Parents: 2f3e465 Author: Alex Heneveld Authored: Tue Jan 19 12:48:15 2016 + Committer: Alex Heneveld Committed: Wed Jan 20 16:19:53 2016 + -- brooklyn-docs/guide/misc/release-notes.md | 5 + .../java/org/apache/brooklyn/api/mgmt/Task.java | 18 +++ .../spi/dsl/BrooklynDslDeferredSupplier.java| 2 +- .../core/objs/proxy/InternalEntityFactory.java | 6 +- .../core/sensor/DependentConfiguration.java | 3 +- .../util/core/task/BasicExecutionContext.java | 12 +- .../util/core/task/BasicExecutionManager.java | 121 --- .../brooklyn/util/core/task/BasicTask.java | 32 +++-- .../util/core/task/DynamicSequentialTask.java | 41 +-- .../brooklyn/util/core/task/ExecutionUtils.java | 49 .../core/task/ListenableForwardingFuture.java | 28 - .../brooklyn/util/core/task/ScheduledTask.java | 14 +-- .../brooklyn/util/core/task/TaskInternal.java | 39 ++ .../brooklyn/util/core/task/TaskPredicates.java | 16 +++ .../task/BasicTaskExecutionPerformanceTest.java | 3 - .../core/task/DynamicSequentialTaskTest.java| 96 ++- .../core/task/NonBasicTaskExecutionTest.java| 5 + .../util/core/task/ScheduledExecutionTest.java | 2 +- .../util/core/task/TaskPredicatesTest.java | 4 +- .../rest/resources/EntityConfigResource.java| 34 -- 20 files changed, 409 insertions(+), 121 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/aed07863/brooklyn-docs/guide/misc/release-notes.md -- diff --git a/brooklyn-docs/guide/misc/release-notes.md b/brooklyn-docs/guide/misc/release-notes.md index 03ba4a3..721655d 100644 --- a/brooklyn-docs/guide/misc/release-notes.md +++ b/brooklyn-docs/guide/misc/release-notes.md @@ -49,3 +49,8 @@ parent or application root in YAML. For changes in prior versions, please refer to the release notes for [0.8.0](/v/0.8.0-incubating/misc/release-notes.html). + +3. Task cancellation is now propagated to dependent submitted tasks, including backgrounded tasks if they are transient. +Previously when a task was cancelled the API did not guarantee semantics but the behaviour was to cancel sub-tasks only +in very limited cases. Now the semantics are more precise and controllable, and more sub-tasks are cancelled. +This can prevent some leaked waits on `attributeWhenReady`. http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/aed07863/brooklyn-server/api/src/main/java/org/apache/brooklyn/api/mgmt/Task.java -- diff --git a/brooklyn-server/api/src/main/java/org/apache/brooklyn/api/mgmt/Task.java b/brooklyn-server/api/src/main/java/org/apache/brooklyn/api/mgmt/Task.java index c8f1c00..42147c5 100644 --- a/brooklyn-server/api/src/main/java/org/apache/brooklyn/api/mgmt/Task.java +++ b/brooklyn-server/api/src/main/java/org/apache/brooklyn/api/mgmt/Task.java @@ -81,6 +81,24 @@ public interface Task extends ListenableFuture, TaskAdaptable { public boolean isError(); /** + * As {@link Future#isDone()}. In particular if cancelled, this will return true + * as soon as it is cancelled. The thread for this task may still be running, + * if the cancellation (often an interruption, but may be weaker) has not applied, + * and submitted threads may also be running depending on cancellation parameters. + * + * {@link #get()} is guaranteed to return immediately, throwing in the case of cancellation + * prior to completion (and including the case above where a thread may still be running). + * + * To check whether cancelled threads for this task have completed, + * inspect {@link #getEndTimeUtc()}, which is guarant
[3/6] incubator-brooklyn git commit: address code review for #1162
address code review for #1162 Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/47e2aec2 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/47e2aec2 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/47e2aec2 Branch: refs/heads/master Commit: 47e2aec26e10ab2abb24fbc14eeb8895e13c116f Parents: 1affd4d Author: Alex Heneveld Authored: Wed Jan 20 20:53:04 2016 + Committer: Alex Heneveld Committed: Wed Jan 20 20:53:30 2016 + -- .../apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java | 2 +- .../apache/brooklyn/core/typereg/AbstractTypePlanTransformer.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/47e2aec2/brooklyn-server/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java -- diff --git a/brooklyn-server/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java b/brooklyn-server/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java index c4701c6..789d282 100644 --- a/brooklyn-server/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java +++ b/brooklyn-server/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java @@ -125,7 +125,7 @@ public abstract class AbstractBrooklynObjectSpec tagsToReplace) { this.tags.clear(); Iterables.addAll(this.tags, tagsToReplace); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/47e2aec2/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/typereg/AbstractTypePlanTransformer.java -- diff --git a/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/typereg/AbstractTypePlanTransformer.java b/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/typereg/AbstractTypePlanTransformer.java index cfa51e3..5ba36b3 100644 --- a/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/typereg/AbstractTypePlanTransformer.java +++ b/brooklyn-server/core/src/main/java/org/apache/brooklyn/core/typereg/AbstractTypePlanTransformer.java @@ -103,7 +103,7 @@ public abstract class AbstractTypePlanTransformer implements BrooklynTypePlanTra @Override protected Object visitSpec() { try { AbstractBrooklynObjectSpec result = createSpec(type, context); -// see notes in CampResolver setting catalogItemId; we might need to keep both +// see notes on catalogItemIdIfNotNull result.catalogItemIdIfNotNull(type.getId()); return result; } catch (Exception e) { throw Exceptions.propagate(e); }
[1/6] incubator-brooklyn git commit: for chained references, prefer outer catalog item id, and outer tags
Repository: incubator-brooklyn Updated Branches: refs/heads/master 27cd0920d -> 8303fea86 for chained references, prefer outer catalog item id, and outer tags as described in changes to release-notes.md Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/1affd4d6 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/1affd4d6 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/1affd4d6 Branch: refs/heads/master Commit: 1affd4d606d17136d3e334d08f401398f1ff3c96 Parents: 7d2ae06 Author: Alex Heneveld Authored: Wed Jan 20 12:08:31 2016 + Committer: Alex Heneveld Committed: Wed Jan 20 12:09:56 2016 + -- brooklyn-docs/guide/misc/release-notes.md | 4 +- .../internal/AbstractBrooklynObjectSpec.java| 25 +++- .../brooklyn/spi/creation/CampResolver.java | 2 +- .../catalog/CatalogYamlTemplateTest.java| 40 .../core/mgmt/EntityManagementUtils.java| 18 - .../typereg/AbstractTypePlanTransformer.java| 3 +- .../core/typereg/BasicRegisteredType.java | 1 + 7 files changed, 80 insertions(+), 13 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1affd4d6/brooklyn-docs/guide/misc/release-notes.md -- diff --git a/brooklyn-docs/guide/misc/release-notes.md b/brooklyn-docs/guide/misc/release-notes.md index 03ba4a3..f65e77d 100644 --- a/brooklyn-docs/guide/misc/release-notes.md +++ b/brooklyn-docs/guide/misc/release-notes.md @@ -45,7 +45,9 @@ can be used to traverse the hierarchy. It also means that when a type in the re and a caller references it, that location will now take priority over a location defined in a parent. Additionally, any locations specified in YAML extending the registered type will now *replace* locations on the referenced type; this means in many cases an explicit `locations: []` when extending a type will cause locations to be taken from the -parent or application root in YAML. +parent or application root in YAML. Related to this, tags from referencing specs now preceed tags in the referenced types, +and the referencing catalog item ID also takes priority; this has no effect in most cases, but if you have a chain of +referenced types blueprint plan source code and the catalog item ID are now set correctly. For changes in prior versions, please refer to the release notes for [0.8.0](/v/0.8.0-incubating/misc/release-notes.html). http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1affd4d6/brooklyn-server/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java -- diff --git a/brooklyn-server/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java b/brooklyn-server/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java index 560c499..c4701c6 100644 --- a/brooklyn-server/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java +++ b/brooklyn-server/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java @@ -83,7 +83,7 @@ public abstract class AbstractBrooklynObjectSpec type); @@ -97,6 +97,19 @@ public abstract class AbstractBrooklynObjectSpec tagsToAdd) { +return tagsAdd(tagsToAdd); +} +/** adds the given tags */ +public SpecT tagsAdd(Iterable tagsToAdd) { Iterables.addAll(this.tags, tagsToAdd); return self(); } +/** replaces the given tags */ +public SpecT tagsReplace(Iterable tagsToReplace) { +this.tags.clear(); +Iterables.addAll(this.tags, tagsToReplace); +return self(); +} // TODO which semantics are correct? replace has been the behaviour; // add breaks tests and adds unwanted parameters, http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1affd4d6/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/CampResolver.java -- diff --git a/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/CampResolver.java b/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/CampResolver.java index 7523343..5639945 100644 --- a/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/CampResolver.java +++ b/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/CampResolver.java @@ -114,7 +114,7 @@ class CampResolver { throw new IllegalSta
[6/6] incubator-brooklyn git commit: This closes #1160
This closes #1160 Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/8303fea8 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/8303fea8 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/8303fea8 Branch: refs/heads/master Commit: 8303fea866a9d39c58dc7174f73543477b6e73bc Parents: 2a164a8 54cba8a Author: Alex Heneveld Authored: Wed Jan 20 21:04:20 2016 + Committer: Alex Heneveld Committed: Wed Jan 20 21:04:20 2016 + -- brooklyn-docs/guide/misc/release-notes.md | 5 + .../java/org/apache/brooklyn/api/mgmt/Task.java | 18 +++ .../spi/dsl/BrooklynDslDeferredSupplier.java| 2 +- .../core/objs/proxy/InternalEntityFactory.java | 6 +- .../core/sensor/DependentConfiguration.java | 3 +- .../util/core/task/BasicExecutionContext.java | 12 +- .../util/core/task/BasicExecutionManager.java | 122 --- .../brooklyn/util/core/task/BasicTask.java | 33 +++-- .../util/core/task/DynamicSequentialTask.java | 41 +-- .../brooklyn/util/core/task/ExecutionUtils.java | 49 .../core/task/ListenableForwardingFuture.java | 28 - .../brooklyn/util/core/task/ScheduledTask.java | 14 +-- .../brooklyn/util/core/task/TaskInternal.java | 39 ++ .../brooklyn/util/core/task/TaskPredicates.java | 16 +++ .../task/BasicTaskExecutionPerformanceTest.java | 3 - .../core/task/DynamicSequentialTaskTest.java| 96 ++- .../core/task/NonBasicTaskExecutionTest.java| 5 + .../util/core/task/ScheduledExecutionTest.java | 2 +- .../util/core/task/TaskPredicatesTest.java | 4 +- .../rest/resources/EntityConfigResource.java| 34 -- 20 files changed, 411 insertions(+), 121 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8303fea8/brooklyn-docs/guide/misc/release-notes.md --
[5/6] incubator-brooklyn git commit: This closes #1162
This closes #1162 Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/2a164a82 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/2a164a82 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/2a164a82 Branch: refs/heads/master Commit: 2a164a82f388e659f2c66dd8402c47ab6dfc0f90 Parents: 27cd092 47e2aec Author: Alex Heneveld Authored: Wed Jan 20 21:04:15 2016 + Committer: Alex Heneveld Committed: Wed Jan 20 21:04:15 2016 + -- brooklyn-docs/guide/misc/release-notes.md | 4 +- .../internal/AbstractBrooklynObjectSpec.java| 25 +++- .../brooklyn/spi/creation/CampResolver.java | 2 +- .../catalog/CatalogYamlTemplateTest.java| 40 .../core/mgmt/EntityManagementUtils.java| 18 - .../typereg/AbstractTypePlanTransformer.java| 3 +- .../core/typereg/BasicRegisteredType.java | 1 + 7 files changed, 80 insertions(+), 13 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2a164a82/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlTemplateTest.java -- diff --cc brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlTemplateTest.java index a759fed,78c1bf7..d83711c --- a/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlTemplateTest.java +++ b/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlTemplateTest.java @@@ -40,7 -40,9 +40,8 @@@ import org.apache.brooklyn.entity.group import org.apache.brooklyn.entity.stock.BasicApplication; import org.apache.brooklyn.test.Asserts; import org.apache.brooklyn.test.support.TestResourceUnavailableException; + import org.apache.brooklyn.util.core.config.ConfigBag; import org.apache.brooklyn.util.osgi.OsgiTestResources; -import org.python.google.common.collect.Iterables; import org.testng.Assert; import org.testng.TestListenerAdapter; import org.testng.TestNG;
[2/3] incubator-brooklyn git commit: Fix EmptySoftwareProcessYamlTest
Fix EmptySoftwareProcessYamlTest See https://github.com/brooklyncentral/brooklyn/issues/1377 Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/7191c7bc Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/7191c7bc Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/7191c7bc Branch: refs/heads/master Commit: 7191c7bc6643f4b8b71418165008934dd73a67ad Parents: 2f3e465 Author: Aled Sage Authored: Tue Jan 19 14:55:28 2016 + Committer: Aled Sage Committed: Wed Jan 20 10:28:51 2016 + -- .../brooklyn/camp/brooklyn/EmptySoftwareProcessYamlTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7191c7bc/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/EmptySoftwareProcessYamlTest.java -- diff --git a/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/EmptySoftwareProcessYamlTest.java b/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/EmptySoftwareProcessYamlTest.java index bb3eeb9..06badd6 100644 --- a/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/EmptySoftwareProcessYamlTest.java +++ b/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/EmptySoftwareProcessYamlTest.java @@ -25,12 +25,12 @@ import org.apache.brooklyn.api.entity.Entity; import org.apache.brooklyn.api.location.Location; import org.apache.brooklyn.core.entity.Entities; import org.apache.brooklyn.entity.software.base.EmptySoftwareProcess; +import org.apache.brooklyn.location.ssh.SshMachineLocation; +import org.apache.brooklyn.util.collections.Jsonya; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testng.Assert; import org.testng.annotations.Test; -import org.apache.brooklyn.location.ssh.SshMachineLocation; -import org.apache.brooklyn.util.collections.Jsonya; @Test public class EmptySoftwareProcessYamlTest extends AbstractYamlTest { @@ -97,6 +97,6 @@ public class EmptySoftwareProcessYamlTest extends AbstractYamlTest { Location actualMachine = entityLocationIterator.next(); Assert.assertTrue(actualMachine instanceof SshMachineLocation, "wrong location: "+actualMachine); // TODO this, below, probably should be 'localhost on entity', see #1377 -Assert.assertEquals(actualMachine.getParent().getDisplayName(), "loopback on app"); +Assert.assertEquals(actualMachine.getParent().getDisplayName(), "localhost on entity"); } }
[3/3] incubator-brooklyn git commit: This closes #1163
This closes #1163 Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/27cd0920 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/27cd0920 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/27cd0920 Branch: refs/heads/master Commit: 27cd0920d8aace4c6192d45821f8306d027c3f4e Parents: 2f3e465 56f9cdd Author: Aled Sage Authored: Wed Jan 20 16:09:17 2016 + Committer: Aled Sage Committed: Wed Jan 20 16:09:17 2016 + -- .../brooklyn/EmptySoftwareProcessYamlTest.java | 28 +- .../brooklyn/EmptyWindowsProcessYamlTest.java | 51 ++ .../software/base/EmptySoftwareProcess.java | 4 + .../software/base/EmptySoftwareProcessImpl.java | 12 ++- .../software/base/EmptyWindowsProcess.java | 38 .../base/EmptyWindowsProcessDriver.java | 22 + .../software/base/EmptyWindowsProcessImpl.java | 49 ++ .../base/EmptyWindowsProcessWinRmDriver.java| 97 8 files changed, 297 insertions(+), 4 deletions(-) --
[1/3] incubator-brooklyn git commit: Adds EmptyWindowsProcess
Repository: incubator-brooklyn Updated Branches: refs/heads/master 2f3e465cd -> 27cd0920d Adds EmptyWindowsProcess - Includes EmptyWindowsProcess.USE_WINRM_MONITORING, for disabling checking of WinRM connectivity. - Adds EmptySoftwareProcess.USE_SSH_MONITORING, for disabling checking of ssh connectivity. With EmptyWindowsProcess, one can provision an entity that will not execute anything on the box. That makes it usable even if there is no direct WinRM connectivity to the box. Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/56f9cdda Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/56f9cdda Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/56f9cdda Branch: refs/heads/master Commit: 56f9cdda95451dcf58b80e2aab44c8be34e94d0a Parents: 7191c7b Author: Aled Sage Authored: Tue Jan 19 14:57:47 2016 + Committer: Aled Sage Committed: Wed Jan 20 10:28:51 2016 + -- .../brooklyn/EmptySoftwareProcessYamlTest.java | 22 + .../brooklyn/EmptyWindowsProcessYamlTest.java | 51 ++ .../software/base/EmptySoftwareProcess.java | 4 + .../software/base/EmptySoftwareProcessImpl.java | 12 ++- .../software/base/EmptyWindowsProcess.java | 38 .../base/EmptyWindowsProcessDriver.java | 22 + .../software/base/EmptyWindowsProcessImpl.java | 49 ++ .../base/EmptyWindowsProcessWinRmDriver.java| 97 8 files changed, 294 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/56f9cdda/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/EmptySoftwareProcessYamlTest.java -- diff --git a/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/EmptySoftwareProcessYamlTest.java b/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/EmptySoftwareProcessYamlTest.java index 06badd6..0554917 100644 --- a/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/EmptySoftwareProcessYamlTest.java +++ b/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/EmptySoftwareProcessYamlTest.java @@ -23,15 +23,21 @@ import java.util.Map; import org.apache.brooklyn.api.entity.Entity; import org.apache.brooklyn.api.location.Location; +import org.apache.brooklyn.core.entity.Attributes; +import org.apache.brooklyn.core.entity.BrooklynConfigKeys; import org.apache.brooklyn.core.entity.Entities; +import org.apache.brooklyn.core.entity.EntityAsserts; import org.apache.brooklyn.entity.software.base.EmptySoftwareProcess; import org.apache.brooklyn.location.ssh.SshMachineLocation; +import org.apache.brooklyn.test.EntityTestUtils; import org.apache.brooklyn.util.collections.Jsonya; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testng.Assert; import org.testng.annotations.Test; +import com.google.common.collect.Iterables; + @Test public class EmptySoftwareProcessYamlTest extends AbstractYamlTest { private static final Logger log = LoggerFactory.getLogger(EnrichersYamlTest.class); @@ -99,4 +105,20 @@ public class EmptySoftwareProcessYamlTest extends AbstractYamlTest { // TODO this, below, probably should be 'localhost on entity', see #1377 Assert.assertEquals(actualMachine.getParent().getDisplayName(), "localhost on entity"); } + +@Test(groups="Integration") +public void testNoSshing() throws Exception { +Entity app = createAndStartApplication( +"location: byon:(hosts=\"1.2.3.4\")", +"services:", +"- type: "+EmptySoftwareProcess.class.getName(), +" brooklyn.config:", +"sshMonitoring.enabled: false", +" "+BrooklynConfigKeys.SKIP_ON_BOX_BASE_DIR_RESOLUTION.getName()+": true"); +waitForApplicationTasks(app); + +EmptySoftwareProcess entity = Iterables.getOnlyElement(Entities.descendants(app, EmptySoftwareProcess.class)); +EntityAsserts.assertAttributeEqualsEventually(entity, Attributes.SERVICE_UP, true); +EntityAsserts.assertAttributeEqualsContinually(entity, Attributes.SERVICE_UP, true); +} } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/56f9cdda/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/EmptyWindowsProcessYamlTest.java -- diff --git a/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/EmptyWindowsProcessYamlTest.java b/brooklyn-server/camp/camp-brooklyn/src/tes
[2/2] incubator-brooklyn git commit: This closes #1158
This closes #1158 Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/2f3e465c Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/2f3e465c Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/2f3e465c Branch: refs/heads/master Commit: 2f3e465cdebd884cac0bef985f7f2ff96e221347 Parents: 7d2ae06 70f379e Author: Aled Sage Authored: Wed Jan 20 10:27:02 2016 + Committer: Aled Sage Committed: Wed Jan 20 10:27:02 2016 + -- .../catalog/CatalogYamlTemplateTest.java| 3 +- .../location/jclouds/JcloudsLocation.java | 4 +- brooklyn-server/pom.xml | 2 +- .../AbstractSoftwareProcessWinRmDriver.java | 8 +- .../location/WinRmMachineLocationLiveTest.java | 36 ++-- .../windows/WindowsPerformanceCounterFeed.java | 4 +- .../location/winrm/WinRmMachineLocation.java| 41 +++- .../util/core/internal/winrm/WinRmTool.java | 9 + .../internal/winrm/pywinrm/Winrm4jTool.java | 209 -- .../internal/winrm/winrm4j/Winrm4jTool.java | 215 +++ .../WindowsPerformanceCounterFeedLiveTest.java | 20 +- 11 files changed, 295 insertions(+), 256 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/2f3e465c/brooklyn-server/pom.xml --
[1/2] incubator-brooklyn git commit: winrm: switch to winrm4j v0.2.0, from 0.1.0
Repository: incubator-brooklyn Updated Branches: refs/heads/master 7d2ae06ec -> 2f3e465cd winrm: switch to winrm4j v0.2.0, from 0.1.0 - This is a pure-java WinRM client, so removes the jython depenpdency. - Also changes WinRmTool.executeScript(...) to executeCommand(â¦), and WinRmMachineLocation.executeScript to executeCommand. - Fixes WindowsPerformanceCounterFeedLiveTest - Renames Winrm4jToolâs package (from pywinrm to winrm4j). - Fixes imports that used org.python Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/70f379e4 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/70f379e4 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/70f379e4 Branch: refs/heads/master Commit: 70f379e47d0656dc8eeeb95e858dfe03b6aae33b Parents: 981f7c7 Author: Aled Sage Authored: Mon Jan 18 21:29:13 2016 + Committer: Aled Sage Committed: Tue Jan 19 21:32:51 2016 + -- .../catalog/CatalogYamlTemplateTest.java| 3 +- .../location/jclouds/JcloudsLocation.java | 4 +- brooklyn-server/pom.xml | 2 +- .../AbstractSoftwareProcessWinRmDriver.java | 8 +- .../location/WinRmMachineLocationLiveTest.java | 36 ++-- .../windows/WindowsPerformanceCounterFeed.java | 4 +- .../location/winrm/WinRmMachineLocation.java| 41 +++- .../util/core/internal/winrm/WinRmTool.java | 9 + .../internal/winrm/pywinrm/Winrm4jTool.java | 209 -- .../internal/winrm/winrm4j/Winrm4jTool.java | 215 +++ .../WindowsPerformanceCounterFeedLiveTest.java | 20 +- 11 files changed, 295 insertions(+), 256 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/70f379e4/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlTemplateTest.java -- diff --git a/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlTemplateTest.java b/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlTemplateTest.java index 165fd49..a759fed 100644 --- a/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlTemplateTest.java +++ b/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlTemplateTest.java @@ -41,12 +41,13 @@ import org.apache.brooklyn.entity.stock.BasicApplication; import org.apache.brooklyn.test.Asserts; import org.apache.brooklyn.test.support.TestResourceUnavailableException; import org.apache.brooklyn.util.osgi.OsgiTestResources; -import org.python.google.common.collect.Iterables; import org.testng.Assert; import org.testng.TestListenerAdapter; import org.testng.TestNG; import org.testng.annotations.Test; +import com.google.common.collect.Iterables; + public class CatalogYamlTemplateTest extends AbstractYamlTest { http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/70f379e4/brooklyn-server/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsLocation.java -- diff --git a/brooklyn-server/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsLocation.java b/brooklyn-server/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsLocation.java index 20897d9..05972a2 100644 --- a/brooklyn-server/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsLocation.java +++ b/brooklyn-server/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsLocation.java @@ -862,7 +862,7 @@ public class JcloudsLocation extends AbstractCloudMachineProvisioningLocation im String scriptContent = ResourceUtils.create(this).getResourceAsString(setupScriptItem); String script = TemplateProcessor.processTemplateContents(scriptContent, getManagementContext(), substitutions); if (windows) { - ((WinRmMachineLocation)machineLocation).executeScript(ImmutableList.copyOf((script.replace("\r", "").split("\n"; + ((WinRmMachineLocation)machineLocation).executeCommand(ImmutableList.copyOf((script.replace("\r", "").split("\n"; } else { ((SshMachineLocation)machineLocation).execCommands("Customizing node " + this, ImmutableList.of(script)); } @@ -2664,7 +2664,7 @@ public class JcloudsLocation extends AbstractCloudMachineProvisioningLocation im pub