You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by sv...@apache.org on 2017/07/21 11:43:10 UTC
[1/2] brooklyn-server git commit: Adds BrooklynViewerLauncher (for
tests)
Repository: brooklyn-server
Updated Branches:
refs/heads/master 211e3dcf2 -> c69443942
Adds BrooklynViewerLauncher (for tests)
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/753c3c60
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/753c3c60
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/753c3c60
Branch: refs/heads/master
Commit: 753c3c608793285aa5adc99e3321bf991253e0e1
Parents: 6e5c2c2
Author: Aled Sage <al...@gmail.com>
Authored: Wed Jul 19 10:58:30 2017 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Wed Jul 19 11:03:36 2017 +0100
----------------------------------------------------------------------
.../brooklyn/launcher/common/BasicLauncher.java | 2 +-
.../brooklyn/launcher/BrooklynLauncher.java | 1 +
.../launcher/BrooklynViewerLauncher.java | 81 ++++++++++++++++++++
.../blueprints/AbstractBlueprintTest.java | 3 +-
4 files changed, 85 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/753c3c60/launcher-common/src/main/java/org/apache/brooklyn/launcher/common/BasicLauncher.java
----------------------------------------------------------------------
diff --git a/launcher-common/src/main/java/org/apache/brooklyn/launcher/common/BasicLauncher.java b/launcher-common/src/main/java/org/apache/brooklyn/launcher/common/BasicLauncher.java
index 03efc5d..04a127b 100644
--- a/launcher-common/src/main/java/org/apache/brooklyn/launcher/common/BasicLauncher.java
+++ b/launcher-common/src/main/java/org/apache/brooklyn/launcher/common/BasicLauncher.java
@@ -125,7 +125,7 @@ public class BasicLauncher<T extends BasicLauncher<T>> {
private Duration haHeartbeatTimeoutOverride = null;
private Duration haHeartbeatPeriodOverride = null;
- private boolean started;
+ protected boolean started;
private BrooklynProperties.Factory.Builder brooklynPropertiesBuilder;
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/753c3c60/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynLauncher.java
----------------------------------------------------------------------
diff --git a/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynLauncher.java b/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynLauncher.java
index 1dea657..ad399f7 100644
--- a/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynLauncher.java
+++ b/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynLauncher.java
@@ -74,6 +74,7 @@ import com.google.common.collect.Maps;
* .start();
*
* Entities.dumpInfo(launcher.getApplications());
+ * }
* </pre>
*/
public class BrooklynLauncher extends BasicLauncher<BrooklynLauncher> {
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/753c3c60/launcher/src/test/java/org/apache/brooklyn/launcher/BrooklynViewerLauncher.java
----------------------------------------------------------------------
diff --git a/launcher/src/test/java/org/apache/brooklyn/launcher/BrooklynViewerLauncher.java b/launcher/src/test/java/org/apache/brooklyn/launcher/BrooklynViewerLauncher.java
new file mode 100644
index 0000000..8672916
--- /dev/null
+++ b/launcher/src/test/java/org/apache/brooklyn/launcher/BrooklynViewerLauncher.java
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.brooklyn.launcher;
+
+/**
+ * A convenience for started the Brooklyn REST api and web-app in a test, so that one can visually
+ * inspect the app that the test creates. This is intended as a read-only view (but it has the real
+ * management context so one can perform actions through this UI).
+ *
+ * An example of where this is very useful is when testing a blueprint where an effector hangs -
+ * one can visually inspect the app, drilling into the activities view to see what it is doing
+ * and why it is blocked.
+ *
+ * It must be configured with an existing {@link org.apache.brooklyn.api.mgmt.ManagementContext}.
+ *
+ * Various other configuration options (e.g. {@link #application(String)) will be ignored.
+ *
+ * Example usage is:
+ * <pre>
+ * {@code
+ * protected ManagementContext managementContext;
+ * protected BrooklynLauncher viewer;
+ *
+ * public void setUp() throws Exception {
+ * managementContext = ...
+ * viewer = BrooklynViewerLauncher.newInstance()
+ * .managementContext(managementContext)
+ * .start();
+ * }
+ *
+ * public void tearDown() throws Exception {
+ * if (viewer != null) {
+ * viewer.terminate();
+ * }
+ * ...
+ * }
+ * </pre>
+ */
+public class BrooklynViewerLauncher extends BrooklynLauncher {
+
+ public static BrooklynViewerLauncher newInstance() {
+ return new BrooklynViewerLauncher();
+ }
+
+ /**
+ * A cut-down start, which just does the web-apps (intended as a read-only view). It assumes
+ * that a fully initialised management context will have been registered.
+ */
+ @Override
+ public BrooklynLauncher start() {
+ if (started) throw new IllegalStateException("Cannot start() or launch() multiple times");
+ started = true;
+
+ if (getManagementContext() == null || !getManagementContext().isRunning()) {
+ throw new IllegalStateException("Management context must be set, and running");
+ }
+
+ startingUp();
+ markStartupComplete();
+
+ initBrooklynNode();
+
+ return this;
+ }
+}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/753c3c60/launcher/src/test/java/org/apache/brooklyn/launcher/blueprints/AbstractBlueprintTest.java
----------------------------------------------------------------------
diff --git a/launcher/src/test/java/org/apache/brooklyn/launcher/blueprints/AbstractBlueprintTest.java b/launcher/src/test/java/org/apache/brooklyn/launcher/blueprints/AbstractBlueprintTest.java
index 68ab781..ef3c0e7 100644
--- a/launcher/src/test/java/org/apache/brooklyn/launcher/blueprints/AbstractBlueprintTest.java
+++ b/launcher/src/test/java/org/apache/brooklyn/launcher/blueprints/AbstractBlueprintTest.java
@@ -41,6 +41,7 @@ import org.apache.brooklyn.core.mgmt.rebind.RebindOptions;
import org.apache.brooklyn.core.mgmt.rebind.RebindTestUtils;
import org.apache.brooklyn.entity.software.base.SoftwareProcess;
import org.apache.brooklyn.launcher.BrooklynLauncher;
+import org.apache.brooklyn.launcher.BrooklynViewerLauncher;
import org.apache.brooklyn.launcher.SimpleYamlLauncherForTests;
import org.apache.brooklyn.launcher.camp.BrooklynCampPlatformLauncher;
import org.apache.brooklyn.test.Asserts;
@@ -83,7 +84,7 @@ public abstract class AbstractBlueprintTest {
};
}
};
- viewer = BrooklynLauncher.newInstance()
+ viewer = BrooklynViewerLauncher.newInstance()
.managementContext(mgmt)
.start();
}
[2/2] brooklyn-server git commit: Closes #767
Posted by sv...@apache.org.
Closes #767
Adds BrooklynViewerLauncher (for tests)
As per the javadoc:
```
/**
* A convenience for started the Brooklyn REST api and web-app in a test, so that one can visually
* inspect the app that the test creates. This is intended as a read-only view (but it has the real
* management context so one can perform actions through this UI).
*
* It expects to be configured with an existing {@link org.apache.brooklyn.api.mgmt.ManagementContext}.
*
* Various other configuration options (e.g. {@link #application(String)) will be ignored.
*
* An example of where this is very useful is when testing a blueprint where an effector hangs -
* one can visually inspect the app, drilling into the activities view to see what it is doing
* and why it is blocked.
```
Note that `AbstractBlueprintTest` used to do this with `BrooklynLauncher`, but that is broken - that launcher also tries to set the `managementPlaneId` on the management context, but it's already set so it throws an exception.
My motivation for fixing + adding this is mostly for use in downstream projects. I want to run unit/integration tests that deploy + test some complicated blueprints. It's very useful to have this visualisation in such tests (particularly if it fails, and one places a breakpoint to see what activities have executed by that point).
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/c6944394
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/c6944394
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/c6944394
Branch: refs/heads/master
Commit: c694439425b738bb0072601246e89cc649f8e250
Parents: 211e3dc 753c3c6
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Fri Jul 21 14:42:58 2017 +0300
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Fri Jul 21 14:42:58 2017 +0300
----------------------------------------------------------------------
.../brooklyn/launcher/common/BasicLauncher.java | 2 +-
.../brooklyn/launcher/BrooklynLauncher.java | 1 +
.../launcher/BrooklynViewerLauncher.java | 81 ++++++++++++++++++++
.../blueprints/AbstractBlueprintTest.java | 3 +-
4 files changed, 85 insertions(+), 2 deletions(-)
----------------------------------------------------------------------