You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2015/07/24 07:37:30 UTC

[1/3] incubator-brooklyn git commit: Adds test to ensure catalog is not re-populated with defaults on rebind

Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master 8ad732c84 -> 3559b5d6d


Adds test to ensure catalog is not re-populated with defaults on rebind


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/10a10e56
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/10a10e56
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/10a10e56

Branch: refs/heads/master
Commit: 10a10e566e2683ee6321b2b2c52f2a097c91a3b3
Parents: 8df4cdf
Author: Martin Harris <gi...@nakomis.com>
Authored: Wed Jun 24 14:58:38 2015 +0100
Committer: Martin Harris <gi...@nakomis.com>
Committed: Fri Jun 26 11:17:19 2015 +0100

----------------------------------------------------------------------
 .../BrooklynLauncherRebindCatalogTest.java      | 102 +++++++++++++++++++
 .../resources/rebind-test-catalog-additions.bom |  32 ++++++
 .../src/test/resources/rebind-test-catalog.bom  |  32 ++++++
 3 files changed, 166 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/10a10e56/usage/launcher/src/test/java/brooklyn/launcher/BrooklynLauncherRebindCatalogTest.java
----------------------------------------------------------------------
diff --git a/usage/launcher/src/test/java/brooklyn/launcher/BrooklynLauncherRebindCatalogTest.java b/usage/launcher/src/test/java/brooklyn/launcher/BrooklynLauncherRebindCatalogTest.java
new file mode 100644
index 0000000..8cf5354
--- /dev/null
+++ b/usage/launcher/src/test/java/brooklyn/launcher/BrooklynLauncherRebindCatalogTest.java
@@ -0,0 +1,102 @@
+/*
+ * 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 brooklyn.launcher;
+
+import java.io.File;
+import java.util.Collection;
+
+import javax.annotation.Nullable;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import brooklyn.catalog.BrooklynCatalog;
+import brooklyn.catalog.CatalogItem;
+import brooklyn.catalog.internal.CatalogInitialization;
+import brooklyn.entity.rebind.persister.PersistMode;
+import brooklyn.test.entity.LocalManagementContextForTests;
+import brooklyn.util.ResourceUtils;
+import brooklyn.util.os.Os;
+
+import com.google.common.base.Function;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
+import com.google.common.io.Files;
+
+public class BrooklynLauncherRebindCatalogTest {
+
+    private static final String TEST_VERSION = "test-version";
+    private static final String CATALOG_INITIAL = "classpath://rebind-test-catalog.bom";
+    private static final String CATALOG_ADDITIONS = "rebind-test-catalog-additions.bom";
+    private static final Iterable<String> EXPECTED_DEFAULT_IDS = ImmutableSet.of("one:" + TEST_VERSION, "two:" + TEST_VERSION);
+    private static final Iterable<String> EXPECTED_ADDED_IDS = ImmutableSet.of("three:" + TEST_VERSION, "four:" + TEST_VERSION);
+
+    private BrooklynLauncher newLauncherForTests(String persistenceDir) {
+        CatalogInitialization catalogInitialization = new CatalogInitialization(CATALOG_INITIAL, false, null, false);
+        BrooklynLauncher launcher = BrooklynLauncher.newInstance()
+                .brooklynProperties(LocalManagementContextForTests.builder(true).buildProperties())
+                .catalogInitialization(catalogInitialization)
+                .persistMode(PersistMode.AUTO)
+                .persistenceDir(persistenceDir);
+        return launcher;
+    }
+
+    @Test
+    public void testRebindDoesNotEffectCatalog() {
+        String persistenceDir = newTempPersistenceContainerName();
+
+        BrooklynLauncher launcher = newLauncherForTests(persistenceDir);
+        launcher.start();
+        BrooklynCatalog catalog = launcher.getServerDetails().getManagementContext().getCatalog();
+
+        assertCatalogConsistsOfIds(catalog.getCatalogItems(), EXPECTED_DEFAULT_IDS);
+
+        catalog.deleteCatalogItem("one", TEST_VERSION);
+        catalog.deleteCatalogItem("two", TEST_VERSION);
+
+        Assert.assertEquals(((Collection) catalog.getCatalogItems()).size(), 0);
+
+        catalog.addItems(new ResourceUtils(this).getResourceAsString(CATALOG_ADDITIONS));
+
+        assertCatalogConsistsOfIds(catalog.getCatalogItems(), EXPECTED_ADDED_IDS);
+
+        launcher.terminate();
+
+        BrooklynLauncher newLauncher = newLauncherForTests(persistenceDir);
+        newLauncher.start();
+        assertCatalogConsistsOfIds(newLauncher.getServerDetails().getManagementContext().getCatalog().getCatalogItems(), EXPECTED_ADDED_IDS);
+    }
+
+    private void assertCatalogConsistsOfIds(Iterable<CatalogItem<Object, Object>> catalogItems, Iterable<String> ids) {
+        Iterable<String> idsFromItems = Iterables.transform(catalogItems, new Function<CatalogItem<?,?>, String>() {
+            @Nullable
+            @Override
+            public String apply(CatalogItem<?, ?> catalogItem) {
+                return catalogItem.getCatalogItemId();
+            }
+        });
+        Assert.assertTrue(Iterables.elementsEqual(ids, idsFromItems), String.format("Expected %s, found %s", ids, idsFromItems));
+    }
+
+    protected String newTempPersistenceContainerName() {
+        File persistenceDirF = Files.createTempDir();
+        Os.deleteOnExitRecursively(persistenceDirF);
+        return persistenceDirF.getAbsolutePath();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/10a10e56/usage/launcher/src/test/resources/rebind-test-catalog-additions.bom
----------------------------------------------------------------------
diff --git a/usage/launcher/src/test/resources/rebind-test-catalog-additions.bom b/usage/launcher/src/test/resources/rebind-test-catalog-additions.bom
new file mode 100644
index 0000000..8c460c8
--- /dev/null
+++ b/usage/launcher/src/test/resources/rebind-test-catalog-additions.bom
@@ -0,0 +1,32 @@
+#
+# 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.
+#
+brooklyn.catalog:
+  version: test-version
+  items:
+
+  # Do not scan classpath with for classes with a @Catalog annotation
+  - scanJavaAnnotations: false
+
+  - id: three
+    item:
+      type: brooklyn.entity.basic.EmptySoftwareProcess
+
+  - id: four
+    item:
+      type: brooklyn.entity.basic.VanillaSoftwareProcess
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/10a10e56/usage/launcher/src/test/resources/rebind-test-catalog.bom
----------------------------------------------------------------------
diff --git a/usage/launcher/src/test/resources/rebind-test-catalog.bom b/usage/launcher/src/test/resources/rebind-test-catalog.bom
new file mode 100644
index 0000000..cb3b4dc
--- /dev/null
+++ b/usage/launcher/src/test/resources/rebind-test-catalog.bom
@@ -0,0 +1,32 @@
+#
+# 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.
+#
+brooklyn.catalog:
+  version: test-version
+  items:
+
+  # Do not scan classpath with for classes with a @Catalog annotation
+  - scanJavaAnnotations: false
+
+  - id: one
+    item:
+      type: brooklyn.entity.basic.EmptySoftwareProcess
+
+  - id: two
+    item:
+      type: brooklyn.entity.basic.VanillaSoftwareProcess
\ No newline at end of file


[3/3] incubator-brooklyn git commit: This closes #716

Posted by al...@apache.org.
This closes #716


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/3559b5d6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/3559b5d6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/3559b5d6

Branch: refs/heads/master
Commit: 3559b5d6de773065356be405ba7586387f1cbce8
Parents: 8ad732c 712a755
Author: Aled Sage <al...@gmail.com>
Authored: Thu Jul 23 22:37:14 2015 -0700
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Jul 23 22:37:14 2015 -0700

----------------------------------------------------------------------
 docs/guide/ops/catalog/index.md                 |  11 +-
 .../BrooklynLauncherRebindCatalogTest.java      | 102 +++++++++++++++++++
 .../resources/rebind-test-catalog-additions.bom |  32 ++++++
 .../src/test/resources/rebind-test-catalog.bom  |  32 ++++++
 4 files changed, 176 insertions(+), 1 deletion(-)
----------------------------------------------------------------------



[2/3] incubator-brooklyn git commit: Adds additional clarification to catalog docs

Posted by al...@apache.org.
Adds additional clarification to catalog docs


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/712a7559
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/712a7559
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/712a7559

Branch: refs/heads/master
Commit: 712a75599aadf6432fddf73abc414b6e70af16f9
Parents: 10a10e5
Author: Martin Harris <gi...@nakomis.com>
Authored: Wed Jun 24 15:12:28 2015 +0100
Committer: Martin Harris <gi...@nakomis.com>
Committed: Fri Jun 26 11:17:23 2015 +0100

----------------------------------------------------------------------
 docs/guide/ops/catalog/index.md | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/712a7559/docs/guide/ops/catalog/index.md
----------------------------------------------------------------------
diff --git a/docs/guide/ops/catalog/index.md b/docs/guide/ops/catalog/index.md
index e2fbc9c..d24e200 100644
--- a/docs/guide/ops/catalog/index.md
+++ b/docs/guide/ops/catalog/index.md
@@ -302,7 +302,16 @@ The `brooklyn` CLI includes several commands for working with the catalog.
 * `--catalogInitial <file.bom>` will set the catalog items to use on first run,
   on a catalog reset, or if persistence is off
 
-If [persistence](../persistence/) is enabled, catalog additions will remain between runs.
+If `--catalogInitial` is not specified, the default initial catalog at `brooklyn/default.catalog.bom` will be used.
+As `scanJavaAnnotations: true` is set in `default.catalog.bom`, Brooklyn will scan the classpath for catalog items,
+which will be added to the catalog.
+To launch Brooklyn without initializing the catalog, use `--catalogInitial classpath://brooklyn/empty.catalog.bom`
+
+If [persistence](../persistence/) is enabled, catalog additions will remain between runs. If items that were
+previously added based on items in `brooklyn/default.catalog.bom` or `--catalogInitial` are 
+deleted, they will not be re-added on subsequent restarts of brooklyn. I.e. `--catalogInitial` is ignored
+if persistence is enabled and persistent state has already been created.
+
 For more information on these commands, run `brooklyn help launch`.