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`.