You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by ha...@apache.org on 2015/08/05 22:56:15 UTC
[11/20] incubator-brooklyn git commit: Package rename to
org.apache.brooklyn: usage/camp/
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e406d1ad/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogOsgiVersionMoreEntityTest.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogOsgiVersionMoreEntityTest.java b/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogOsgiVersionMoreEntityTest.java
deleted file mode 100644
index 798a0dc..0000000
--- a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogOsgiVersionMoreEntityTest.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * 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 io.brooklyn.camp.brooklyn.catalog;
-
-import static org.testng.Assert.assertTrue;
-import io.brooklyn.camp.brooklyn.AbstractYamlTest;
-import io.brooklyn.camp.brooklyn.spi.creation.BrooklynEntityMatcher;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import brooklyn.basic.BrooklynTypes;
-import org.apache.brooklyn.catalog.BrooklynCatalog;
-import org.apache.brooklyn.catalog.CatalogItem;
-import org.apache.brooklyn.catalog.CatalogItem.CatalogItemType;
-import brooklyn.catalog.internal.CatalogUtils;
-import brooklyn.entity.Entity;
-import brooklyn.entity.proxying.EntitySpec;
-import brooklyn.location.LocationSpec;
-import brooklyn.management.osgi.OsgiVersionMoreEntityTest;
-import brooklyn.policy.Policy;
-import brooklyn.policy.PolicySpec;
-import org.apache.brooklyn.test.TestResourceUnavailableException;
-import brooklyn.util.ResourceUtils;
-import brooklyn.util.text.Strings;
-
-import com.google.common.collect.Iterables;
-
-/** Many of the same tests as per {@link OsgiVersionMoreEntityTest} but using YAML for catalog and entities, so catalog item ID is set automatically */
-public class CatalogOsgiVersionMoreEntityTest extends AbstractYamlTest {
-
- private static final Logger log = LoggerFactory.getLogger(CatalogOsgiVersionMoreEntityTest.class);
-
- private static String getLocalResource(String filename) {
- return ResourceUtils.create(CatalogOsgiVersionMoreEntityTest.class).getResourceAsString(
- "classpath:/"+CatalogOsgiVersionMoreEntityTest.class.getPackage().getName().replace('.', '/')+"/"+filename);
- }
-
- @Test
- public void testMoreEntityV1() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), "/brooklyn/osgi/brooklyn-test-osgi-more-entities_0.1.0.jar");
-
- addCatalogItems(getLocalResource("more-entity-v1-osgi-catalog.yaml"));
- CatalogItem<?, ?> item = CatalogUtils.getCatalogItemOptionalVersion(mgmt(), "more-entity");
- Assert.assertNotNull(item);
- Assert.assertEquals(item.getVersion(), "1.0");
- Assert.assertEquals(item.getCatalogItemType(), CatalogItemType.ENTITY);
- Assert.assertEquals(item.getLibraries().size(), 1);
-
- Entity app = createAndStartApplication("services: [ { type: 'more-entity:1.0' } ]");
- Entity moreEntity = Iterables.getOnlyElement(app.getChildren());
-
- Assert.assertEquals(moreEntity.getCatalogItemId(), "more-entity:1.0");
- OsgiVersionMoreEntityTest.assertV1EffectorCall(moreEntity);
- OsgiVersionMoreEntityTest.assertV1MethodCall(moreEntity);
- }
-
- /** TODO we get warnings from {@link BrooklynEntityMatcher#extractValidConfigFlagsOrKeys};
- * if we passed the correct loader at that point we could avoid those warnings. */
- @Test
- public void testMoreEntityV1WithPolicy() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), "/brooklyn/osgi/brooklyn-test-osgi-more-entities_0.1.0.jar");
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), "/brooklyn/osgi/brooklyn-test-osgi-entities.jar");
-
- addCatalogItems(getLocalResource("simple-policy-osgi-catalog.yaml"));
- addCatalogItems(getLocalResource("more-entity-v1-with-policy-osgi-catalog.yaml"));
- Entity app = createAndStartApplication("services: [ { type: 'more-entity:1.0' } ]");
- Entity moreEntity = Iterables.getOnlyElement(app.getChildren());
-
- Assert.assertEquals(moreEntity.getCatalogItemId(), "more-entity:1.0");
-
- Assert.assertEquals(moreEntity.getPolicies().size(), 1, "wrong policies: "+moreEntity.getPolicies());
- Policy policy = Iterables.getOnlyElement(moreEntity.getPolicies());
- // it was loaded by yaml w ref to catalog, so should have the simple-policy catalog-id
- Assert.assertEquals(policy.getCatalogItemId(), "simple-policy:1.0");
- }
-
- @Test
- public void testMoreEntityV2() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), "/brooklyn/osgi/brooklyn-test-osgi-more-entities_0.2.0.jar");
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), "/brooklyn/osgi/brooklyn-test-osgi-entities.jar");
-
- addCatalogItems(getLocalResource("more-entity-v2-osgi-catalog.yaml"));
- Entity app = createAndStartApplication("services: [ { type: 'more-entity:1.0' } ]");
- Entity moreEntity = Iterables.getOnlyElement(app.getChildren());
-
- Assert.assertEquals(moreEntity.getCatalogItemId(), "more-entity:1.0");
- OsgiVersionMoreEntityTest.assertV2EffectorCall(moreEntity);
- OsgiVersionMoreEntityTest.assertV2MethodCall(moreEntity);
-
- Assert.assertEquals(moreEntity.getPolicies().size(), 1, "wrong policies: "+moreEntity.getPolicies());
- Policy policy = Iterables.getOnlyElement(moreEntity.getPolicies());
- // it was loaded from the java so should have the base more-entity catalog id
- Assert.assertEquals(policy.getCatalogItemId(), "more-entity:1.0");
- }
-
- @Test
- /** TODO this test works if we assume most recent version wins, but semantics TBC */
- public void testMoreEntityV2ThenV1GivesV1() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), "/brooklyn/osgi/brooklyn-test-osgi-more-entities_0.1.0.jar");
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), "/brooklyn/osgi/brooklyn-test-osgi-more-entities_0.2.0.jar");
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), "/brooklyn/osgi/brooklyn-test-osgi-entities.jar");
-
- addCatalogItems(getLocalResource("more-entity-v2-osgi-catalog.yaml"));
- forceCatalogUpdate();
- addCatalogItems(getLocalResource("more-entity-v1-osgi-catalog.yaml"));
- Entity app = createAndStartApplication("services: [ { type: 'more-entity:1.0' } ]");
- Entity moreEntity = Iterables.getOnlyElement(app.getChildren());
-
- OsgiVersionMoreEntityTest.assertV1EffectorCall(moreEntity);
- OsgiVersionMoreEntityTest.assertV1MethodCall(moreEntity);
- }
-
- /** unlike {@link #testMoreEntityV2ThenV1GivesV1()} this test should always work,
- * because default should probably be either most-recent version or highest version,
- * in either case this works */
- @Test
- public void testMoreEntityV1ThenV2GivesV2() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), "/brooklyn/osgi/brooklyn-test-osgi-more-entities_0.1.0.jar");
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), "/brooklyn/osgi/brooklyn-test-osgi-more-entities_0.2.0.jar");
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), "/brooklyn/osgi/brooklyn-test-osgi-entities.jar");
-
- addCatalogItems(getLocalResource("more-entity-v1-osgi-catalog.yaml"));
- forceCatalogUpdate();
- addCatalogItems(getLocalResource("more-entity-v2-osgi-catalog.yaml"));
- Entity app = createAndStartApplication("services: [ { type: 'more-entity:1.0' } ]");
- Entity moreEntity = Iterables.getOnlyElement(app.getChildren());
-
- OsgiVersionMoreEntityTest.assertV2EffectorCall(moreEntity);
- OsgiVersionMoreEntityTest.assertV2MethodCall(moreEntity);
- }
-
- @Test
- public void testMoreEntityBothV1AndV2() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), "/brooklyn/osgi/brooklyn-test-osgi-more-entities_0.1.0.jar");
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), "/brooklyn/osgi/brooklyn-test-osgi-more-entities_0.2.0.jar");
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), "/brooklyn/osgi/brooklyn-test-osgi-entities.jar");
-
- addCatalogItems(getLocalResource("more-entity-v1-called-v1-osgi-catalog.yaml"));
- addCatalogItems(getLocalResource("more-entity-v2-osgi-catalog.yaml"));
- Entity v1 = createAndStartApplication("services: [ { type: 'more-entity-v1:1.0' } ]");
- Entity v2 = createAndStartApplication("services: [ { type: 'more-entity:1.0' } ]");
-
- Entity moreEntityV1 = Iterables.getOnlyElement(v1.getChildren());
- Entity moreEntityV2 = Iterables.getOnlyElement(v2.getChildren());
-
- OsgiVersionMoreEntityTest.assertV1EffectorCall(moreEntityV1);
- OsgiVersionMoreEntityTest.assertV1MethodCall(moreEntityV1);
-
- OsgiVersionMoreEntityTest.assertV2EffectorCall(moreEntityV2);
- OsgiVersionMoreEntityTest.assertV2MethodCall(moreEntityV2);
- }
-
- // @Test FIXME: https://issues.apache.org/jira/browse/BROOKLYN-161
- public void testMoreEntityV2AutoscanWithClasspath() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), "/brooklyn/osgi/brooklyn-test-osgi-more-entities_0.2.0.jar");
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), "/brooklyn/osgi/brooklyn-test-osgi-entities.jar");
-
- addCatalogItems(getLocalResource("more-entities-osgi-catalog-scan.yaml"));
-
- log.info("autoscan for osgi found catalog items: "+Strings.join(mgmt().getCatalog().getCatalogItems(), ", "));
-
- CatalogItem<?, ?> item = CatalogUtils.getCatalogItemOptionalVersion(mgmt(), "more-entity");
- Assert.assertNotNull(item);
- Assert.assertEquals(item.getVersion(), "2.0.test");
- Assert.assertEquals(item.getCatalogItemType(), CatalogItemType.ENTITY);
-
- // this refers to the java item, where the libraries are defined
- item = CatalogUtils.getCatalogItemOptionalVersion(mgmt(), "brooklyn.osgi.tests.more.MoreEntity");
- Assert.assertEquals(item.getVersion(), "2.0.test_java");
- Assert.assertEquals(item.getLibraries().size(), 2);
-
- Entity app = createAndStartApplication("services: [ { type: 'more-entity:2.0.test' } ]");
- Entity moreEntity = Iterables.getOnlyElement(app.getChildren());
-
- Assert.assertEquals(moreEntity.getCatalogItemId(), "more-entity:2.0.test");
- OsgiVersionMoreEntityTest.assertV2EffectorCall(moreEntity);
- OsgiVersionMoreEntityTest.assertV2MethodCall(moreEntity);
- }
-
- // @Test FIXME: https://issues.apache.org/jira/browse/BROOKLYN-161
- public void testMorePolicyV2AutoscanWithClasspath() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), "/brooklyn/osgi/brooklyn-test-osgi-more-entities_0.2.0.jar");
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), "/brooklyn/osgi/brooklyn-test-osgi-entities.jar");
-
- addCatalogItems(getLocalResource("more-policies-osgi-catalog-scan.yaml"));
-
- log.info("autoscan for osgi found catalog items: "+Strings.join(mgmt().getCatalog().getCatalogItems(), ", "));
-
- CatalogItem<?, ?> item = CatalogUtils.getCatalogItemOptionalVersion(mgmt(), "more-policy");
- Assert.assertNotNull(item);
- Assert.assertEquals(item.getVersion(), "2.0.test");
- Assert.assertEquals(item.getCatalogItemType(), CatalogItemType.POLICY);
-
- // this refers to the java item, where the libraries are defined
- item = CatalogUtils.getCatalogItemOptionalVersion(mgmt(), "brooklyn.osgi.tests.more.MorePolicy");
- Assert.assertEquals(item.getVersion(), "2.0.test_java");
- Assert.assertEquals(item.getLibraries().size(), 2);
-
- Entity app = createAndStartApplication(
- "services: ",
- "- type: brooklyn.entity.basic.BasicEntity",
- " brooklyn.policies:",
- " - type: more-policy:2.0.test");
- Entity basicEntity = Iterables.getOnlyElement(app.getChildren());
- Policy morePolicy = Iterables.getOnlyElement(basicEntity.getPolicies());
-
- Assert.assertEquals(morePolicy.getCatalogItemId(), "more-policy:2.0.test");
- OsgiVersionMoreEntityTest.assertV2MethodCall(morePolicy);
- }
-
- // @Test FIXME: https://issues.apache.org/jira/browse/BROOKLYN-161
- public void testAutoscanWithClasspathCanCreateSpecs() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), "/brooklyn/osgi/brooklyn-test-osgi-more-entities_0.2.0.jar");
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), "/brooklyn/osgi/brooklyn-test-osgi-entities.jar");
-
- addCatalogItems(getLocalResource("more-entities-osgi-catalog-scan.yaml"));
-
- log.info("autoscan for osgi found catalog items: "+Strings.join(mgmt().getCatalog().getCatalogItems(), ", "));
-
- BrooklynCatalog catalog = mgmt().getCatalog();
- Iterable<CatalogItem<Object, Object>> items = catalog.getCatalogItems();
- for (CatalogItem<Object, Object> item: items) {
- Object spec = catalog.createSpec(item);
- switch (item.getCatalogItemType()) {
- case TEMPLATE:
- case ENTITY:
- assertTrue(spec instanceof EntitySpec, "Not an EntitySpec: " + spec);
- BrooklynTypes.getDefinedEntityType(((EntitySpec<?>)spec).getType());
- break;
- case POLICY:
- assertTrue(spec instanceof PolicySpec, "Not a PolicySpec: " + spec);
- BrooklynTypes.getDefinedBrooklynType(((PolicySpec<?>)spec).getType());
- break;
- case LOCATION:
- assertTrue(spec instanceof LocationSpec, "Not a LocationSpec: " + spec);
- BrooklynTypes.getDefinedBrooklynType(((LocationSpec<?>)spec).getType());
- break;
- }
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e406d1ad/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogXmlOsgiTest.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogXmlOsgiTest.java b/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogXmlOsgiTest.java
deleted file mode 100644
index bac2991..0000000
--- a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogXmlOsgiTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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 io.brooklyn.camp.brooklyn.catalog;
-
-import org.testng.annotations.Test;
-
-public class CatalogXmlOsgiTest extends AbstractCatalogXmlTest {
-
- public CatalogXmlOsgiTest(String catalogUrl) {
- super("classpath://osgi-catalog.xml");
- }
-
- //OSGi libraries not supported with old-style catalog items
- //We treat those catalog items just as an alias to the java type they hold.
- //No loader wrapping their libraries is ever created.
- @Test(expectedExceptions=IllegalStateException.class)
- public void testOsgiItem() throws Exception {
- startApp("OsgiApp");
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e406d1ad/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogXmlVersionTest.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogXmlVersionTest.java b/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogXmlVersionTest.java
deleted file mode 100644
index 93e23e6..0000000
--- a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogXmlVersionTest.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * 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 io.brooklyn.camp.brooklyn.catalog;
-
-import static org.testng.Assert.assertTrue;
-
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import brooklyn.entity.Entity;
-
-public class CatalogXmlVersionTest extends AbstractCatalogXmlTest {
-
- public CatalogXmlVersionTest(String catalogUrl) {
- super("classpath://simple-catalog.xml");
- }
-
- @DataProvider(name = "types")
- public Object[][] createTypes() {
- return new Object[][] {
- {"brooklyn.entity.basic.BasicApplication"},
- {"brooklyn.entity.basic.BasicApplication:0.0.0.SNAPSHOT"},
- {"brooklyn.entity.basic.BasicApplication:2.0"},
- {"BasicApp"}, // test that items with symbolicName not matching the type work
- {"BasicApp:0.0.0.SNAPSHOT"},
- {"BasicApp:2.0"},
- {"brooklyn.osgi.tests.SimpleApplication"}, //test that classpath is used
- };
- }
-
- @Test(dataProvider = "types")
- public void testXmlCatalogItem(String type) throws Exception {
- startApp(type);
- }
-
- @Test
- public void testJavaPrefixDoesNotLoadXMLCatalogItem() throws Exception {
- Entity entity = startApp("java:io.brooklyn.camp.brooklyn.catalog.TestBasicApp");
- assertTrue(entity instanceof TestBasicApp, "Entity is not a " + TestBasicApp.class.getName() + ", instead the type is " + entity.getEntityType().getName());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e406d1ad/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlCombiTest.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlCombiTest.java b/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlCombiTest.java
deleted file mode 100644
index 49fd5b5..0000000
--- a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlCombiTest.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * 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 io.brooklyn.camp.brooklyn.catalog;
-
-import io.brooklyn.camp.brooklyn.AbstractYamlTest;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import org.apache.brooklyn.catalog.CatalogItem;
-import brooklyn.entity.Entity;
-import brooklyn.entity.basic.BasicEntity;
-import brooklyn.entity.basic.BasicStartable;
-import brooklyn.entity.basic.ConfigKeys;
-import brooklyn.entity.basic.Entities;
-import brooklyn.policy.Policy;
-import brooklyn.policy.ha.ServiceRestarter;
-import brooklyn.util.exceptions.Exceptions;
-
-import com.google.common.collect.Iterables;
-
-
-public class CatalogYamlCombiTest extends AbstractYamlTest {
-
- private static final Logger log = LoggerFactory.getLogger(CatalogYamlCombiTest.class);
-
- @Test
- public void testBRefEntityA() throws Exception {
- addCatalogItems(
- "brooklyn.catalog:",
- " version: "+TEST_VERSION,
- " items:",
- " - item:",
- " id: A",
- " type: "+BasicEntity.class.getName(),
- " brooklyn.config: { a: 1, b: 0 }",
- " - item:",
- " id: B",
- " type: A",
- " brooklyn.config: { b: 1 }");
-
- CatalogItem<?, ?> item = mgmt().getCatalog().getCatalogItem("B", TEST_VERSION);
- Assert.assertNotNull(item);
-
- Entity a = launchEntity("A");
- Assert.assertTrue(BasicEntity.class.isInstance(a), "Wrong type: "+a);
- Assert.assertEquals(a.config().get(ConfigKeys.newIntegerConfigKey("a")), (Integer)1);
- Assert.assertEquals(a.config().get(ConfigKeys.newIntegerConfigKey("b")), (Integer)0);
-
- Entity b = launchEntity("B");
- Assert.assertTrue(BasicEntity.class.isInstance(b), "Wrong type: "+b);
- Assert.assertEquals(b.config().get(ConfigKeys.newIntegerConfigKey("a")), (Integer)1);
- Assert.assertEquals(b.config().get(ConfigKeys.newIntegerConfigKey("b")), (Integer)1);
-
- deleteCatalogEntity("A");
-
- // now loading B makes an error
- try {
- launchEntity("B");
- Assert.fail("B should not be launchable");
- } catch (Exception e) {
- Exceptions.propagateIfFatal(e);
- log.info("Got expected error: "+e);
- }
-
- deleteCatalogEntity("B");
- }
-
- @Test
- public void testBRefPolicyALocationZ() throws Exception {
- addCatalogItems(
- "brooklyn.catalog:",
- " version: "+TEST_VERSION,
- " id: Z",
- " items:",
- " - item: ",
- " type: localhost",
- " brooklyn.config: { z: 9 }");
- addCatalogItems(
- "brooklyn.catalog:",
- " version: "+TEST_VERSION,
- " items:",
- " - item_type: policy",
- " item:",
- " id: A",
- " type: "+ServiceRestarter.class.getName(),
- " brooklyn.config: { a: 99 }",
- " - item:",
- " id: B",
- " type: "+BasicStartable.class.getName(),
- " location: Z",
- " brooklyn.policies:",
- " - type: A");
-
- CatalogItem<?, ?> item = mgmt().getCatalog().getCatalogItem("A", TEST_VERSION);
- Assert.assertNotNull(item);
-
- Entity b = launchEntity("B", false);
- Assert.assertTrue(BasicStartable.class.isInstance(b), "Wrong type: "+b);
- Entities.dumpInfo(b);
-
- Assert.assertEquals(Iterables.getOnlyElement(b.getLocations()).getConfig(ConfigKeys.newIntegerConfigKey("z")), (Integer)9);
-
- Policy p = Iterables.getOnlyElement(b.getPolicies());
- Assert.assertTrue(ServiceRestarter.class.isInstance(p), "Wrong type: "+p);
- Assert.assertEquals(p.getConfig(ConfigKeys.newIntegerConfigKey("a")), (Integer)99);
-
- deleteCatalogEntity("A");
- deleteCatalogEntity("B");
- deleteCatalogEntity("Z");
- }
-
- private Entity launchEntity(String symbolicName) throws Exception {
- return launchEntity(symbolicName, true);
- }
-
- private Entity launchEntity(String symbolicName, boolean includeLocation) throws Exception {
- String yaml = "name: simple-app-yaml\n" +
- (includeLocation ? "location: localhost\n" : "") +
- "services: \n" +
- " - type: "+ver(symbolicName);
- Entity app = createAndStartApplication(yaml);
- return Iterables.getOnlyElement(app.getChildren());
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e406d1ad/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java b/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java
deleted file mode 100644
index 937ed9c..0000000
--- a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java
+++ /dev/null
@@ -1,781 +0,0 @@
-/*
- * 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 io.brooklyn.camp.brooklyn.catalog;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.fail;
-import io.brooklyn.camp.brooklyn.AbstractYamlTest;
-
-import java.io.InputStream;
-import java.util.Collection;
-import java.util.List;
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import org.apache.brooklyn.catalog.BrooklynCatalog;
-import org.apache.brooklyn.catalog.CatalogItem;
-import brooklyn.catalog.internal.CatalogUtils;
-import brooklyn.entity.Entity;
-import brooklyn.entity.basic.BasicEntity;
-import brooklyn.management.osgi.OsgiStandaloneTest;
-import brooklyn.management.osgi.OsgiTestResources;
-import org.apache.brooklyn.test.TestResourceUnavailableException;
-import brooklyn.test.entity.TestEntity;
-import brooklyn.test.entity.TestEntityImpl;
-import brooklyn.util.ResourceUtils;
-import brooklyn.util.collections.MutableList;
-import brooklyn.util.exceptions.Exceptions;
-
-import com.google.common.collect.Iterables;
-
-
-public class CatalogYamlEntityTest extends AbstractYamlTest {
-
- private static final String SIMPLE_ENTITY_TYPE = OsgiTestResources.BROOKLYN_TEST_OSGI_ENTITIES_SIMPLE_ENTITY;
-
- @Test
- public void testAddCatalogItemVerySimple() throws Exception {
- String symbolicName = "my.catalog.app.id.load";
- addCatalogItems(
- "brooklyn.catalog:",
- " id: " + symbolicName,
- " version: " + TEST_VERSION,
- " item:",
- " type: "+ BasicEntity.class.getName());
-
- CatalogItem<?, ?> item = mgmt().getCatalog().getCatalogItem(symbolicName, TEST_VERSION);
- assertTrue(item.getPlanYaml().indexOf("services:")>=0, "expected 'services:' block: "+item+"\n"+item.getPlanYaml());
-
- deleteCatalogEntity(symbolicName);
- }
- @Test
- public void testAddCatalogItem() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- String symbolicName = "my.catalog.app.id.load";
- addCatalogOSGiEntity(symbolicName);
- CatalogItem<?, ?> item = mgmt().getCatalog().getCatalogItem(symbolicName, TEST_VERSION);
- assertEquals(item.getSymbolicName(), symbolicName);
-
- deleteCatalogEntity(symbolicName);
- }
-
- @Test
- public void testAddCatalogItemTypeAsString() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- String symbolicName = "my.catalog.app.id.load";
- addCatalogItems(
- "brooklyn.catalog:",
- " id: " + symbolicName,
- " name: My Catalog App",
- " description: My description",
- " icon_url: classpath://path/to/myicon.jpg",
- " version: " + TEST_VERSION,
- " libraries:",
- " - url: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL,
- " item: " + SIMPLE_ENTITY_TYPE);
-
- CatalogItem<?, ?> item = mgmt().getCatalog().getCatalogItem(symbolicName, TEST_VERSION);
- assertEquals(item.getSymbolicName(), symbolicName);
-
- deleteCatalogEntity(symbolicName);
- }
-
- @Test
- public void testAddCatalogItemTypeExplicitTypeAsString() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- String symbolicName = "my.catalog.app.id.load";
- addCatalogItems(
- "brooklyn.catalog:",
- " id: " + symbolicName,
- " name: My Catalog App",
- " description: My description",
- " icon_url: classpath://path/to/myicon.jpg",
- " version: " + TEST_VERSION,
- " item_type: entity",
- " libraries:",
- " - url: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL,
- " item: " + SIMPLE_ENTITY_TYPE);
-
- CatalogItem<?, ?> item = mgmt().getCatalog().getCatalogItem(symbolicName, TEST_VERSION);
- assertEquals(item.getSymbolicName(), symbolicName);
-
- deleteCatalogEntity(symbolicName);
- }
-
- @Test
- public void testAddCatalogItemTopLevelSyntax() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- String symbolicName = "my.catalog.app.id.load";
- addCatalogItems(
- "brooklyn.catalog:",
- " id: " + symbolicName,
- " name: My Catalog App",
- " description: My description",
- " icon_url: classpath://path/to/myicon.jpg",
- " version: " + TEST_VERSION,
- " libraries:",
- " - url: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL,
- "",
- "services:",
- "- type: " + SIMPLE_ENTITY_TYPE);
-
- CatalogItem<?, ?> item = mgmt().getCatalog().getCatalogItem(symbolicName, TEST_VERSION);
- assertEquals(item.getSymbolicName(), symbolicName);
-
- deleteCatalogEntity(symbolicName);
- }
-
- @Test
- public void testAddCatalogItemWithoutVersion() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- String id = "unversioned.app";
- addCatalogItems(
- "brooklyn.catalog:",
- " name: " + id,
- " libraries:",
- " - " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL,
- " item:",
- " type: "+ SIMPLE_ENTITY_TYPE);
- CatalogItem<?, ?> catalogItem = mgmt().getCatalog().getCatalogItem(id, BrooklynCatalog.DEFAULT_VERSION);
- assertEquals(catalogItem.getVersion(), "0.0.0.SNAPSHOT");
- mgmt().getCatalog().deleteCatalogItem(id, "0.0.0.SNAPSHOT");
- }
-
- @Test
- public void testAddCatalogItemWithInlinedVersion() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- String id = "inline_version.app";
- addCatalogItems(
- "brooklyn.catalog:",
- " name: " + id+":"+TEST_VERSION,
- " libraries:",
- " - " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL,
- "services:",
- "- type: " + SIMPLE_ENTITY_TYPE);
- CatalogItem<?, ?> catalogItem = mgmt().getCatalog().getCatalogItem(id, TEST_VERSION);
- assertEquals(catalogItem.getVersion(), TEST_VERSION);
- mgmt().getCatalog().deleteCatalogItem(id, TEST_VERSION);
- }
-
- @Test
- public void testLaunchApplicationReferencingCatalog() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- String symbolicName = "my.catalog.app.id.launch";
- registerAndLaunchAndAssertSimpleEntity(symbolicName, SIMPLE_ENTITY_TYPE);
- }
-
- @Test
- public void testLaunchApplicationUnversionedCatalogReference() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- String symbolicName = "my.catalog.app.id.fail";
- addCatalogOSGiEntity(symbolicName, SIMPLE_ENTITY_TYPE);
- try {
- String yaml = "name: simple-app-yaml\n" +
- "location: localhost\n" +
- "services: \n" +
- " - serviceType: " + symbolicName;
- createAndStartApplication(yaml);
- } finally {
- deleteCatalogEntity(symbolicName);
- }
- }
-
- @Test
- public void testLaunchApplicationWithCatalogReferencingOtherCatalog() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- String referencedSymbolicName = "my.catalog.app.id.referenced";
- String referrerSymbolicName = "my.catalog.app.id.referring";
- addCatalogOSGiEntities(referencedSymbolicName, SIMPLE_ENTITY_TYPE, referrerSymbolicName, ver(referencedSymbolicName));
-
- CatalogItem<?, ?> referrer = mgmt().getCatalog().getCatalogItem(referrerSymbolicName, TEST_VERSION);
- Assert.assertTrue(referrer.getPlanYaml().indexOf("services")>=0, "expected services in: "+referrer.getPlanYaml());
-
- String yaml = "name: simple-app-yaml\n" +
- "location: localhost\n" +
- "services: \n" +
- " - type: " + ver(referrerSymbolicName);
- Entity app = createAndStartApplication(yaml);
-
- Entity simpleEntity = Iterables.getOnlyElement(app.getChildren());
- assertEquals(simpleEntity.getEntityType().getName(), SIMPLE_ENTITY_TYPE);
-
- deleteCatalogEntity(referencedSymbolicName);
- deleteCatalogEntity(referrerSymbolicName);
- }
-
- @Test
- public void testLaunchApplicationWithCatalogReferencingOtherCatalogInTwoSteps() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- String referencedSymbolicName = "my.catalog.app.id.referenced";
- String referrerSymbolicName = "my.catalog.app.id.referring";
- addCatalogOSGiEntity(referencedSymbolicName, SIMPLE_ENTITY_TYPE);
- addCatalogOSGiEntity(referrerSymbolicName, ver(referencedSymbolicName));
-
- String yaml = "name: simple-app-yaml\n" +
- "location: localhost\n" +
- "services: \n" +
- " - serviceType: " + ver(referrerSymbolicName);
- Entity app = createAndStartApplication(yaml);
-
- Entity simpleEntity = Iterables.getOnlyElement(app.getChildren());
- assertEquals(simpleEntity.getEntityType().getName(), SIMPLE_ENTITY_TYPE);
-
- deleteCatalogEntity(referencedSymbolicName);
- deleteCatalogEntity(referrerSymbolicName);
- }
-
- @Test
- public void testLaunchApplicationChildWithCatalogReferencingOtherCatalog() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- String referencedSymbolicName = "my.catalog.app.id.child.referenced";
- String referrerSymbolicName = "my.catalog.app.id.child.referring";
- addCatalogOSGiEntity(referencedSymbolicName, SIMPLE_ENTITY_TYPE);
- addCatalogChildOSGiEntity(referrerSymbolicName, ver(referencedSymbolicName));
-
- Entity app = createAndStartApplication(
- "name: simple-app-yaml",
- "location: localhost",
- "services:",
- "- type: "+BasicEntity.class.getName(),
- " brooklyn.children:",
- " - type: " + ver(referrerSymbolicName));
-
- Collection<Entity> children = app.getChildren();
- assertEquals(children.size(), 1);
- Entity child = Iterables.getOnlyElement(children);
- assertEquals(child.getEntityType().getName(), BasicEntity.class.getName());
- Collection<Entity> grandChildren = child.getChildren();
- assertEquals(grandChildren.size(), 1);
- Entity grandChild = Iterables.getOnlyElement(grandChildren);
- assertEquals(grandChild.getEntityType().getName(), BasicEntity.class.getName());
- Collection<Entity> grandGrandChildren = grandChild.getChildren();
- assertEquals(grandGrandChildren.size(), 1);
- Entity grandGrandChild = Iterables.getOnlyElement(grandGrandChildren);
- assertEquals(grandGrandChild.getEntityType().getName(), SIMPLE_ENTITY_TYPE);
-
- deleteCatalogEntity(referencedSymbolicName);
- deleteCatalogEntity(referrerSymbolicName);
- }
-
- @Test
- public void testLaunchApplicationChildWithCatalogReferencingOtherCatalogServicesBlock() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- String referencedSymbolicName = "my.catalog.app.id.child.referenced";
- String referrerSymbolicName = "my.catalog.app.id.child.referring";
- addCatalogOSGiEntity(referencedSymbolicName, SIMPLE_ENTITY_TYPE);
- addCatalogChildOSGiEntityWithServicesBlock(referrerSymbolicName, ver(referencedSymbolicName));
-
- Entity app = createAndStartApplication(
- "name: simple-app-yaml",
- "location: localhost",
- "services:",
- "- serviceType: "+BasicEntity.class.getName(),
- " brooklyn.children:",
- " - type: " + ver(referrerSymbolicName));
-
- Collection<Entity> children = app.getChildren();
- assertEquals(children.size(), 1);
- Entity child = Iterables.getOnlyElement(children);
- assertEquals(child.getEntityType().getName(), BasicEntity.class.getName());
- Collection<Entity> grandChildren = child.getChildren();
- assertEquals(grandChildren.size(), 1);
- Entity grandChild = Iterables.getOnlyElement(grandChildren);
- assertEquals(grandChild.getEntityType().getName(), BasicEntity.class.getName());
- Collection<Entity> grandGrandChildren = grandChild.getChildren();
- assertEquals(grandGrandChildren.size(), 1);
- Entity grandGrandChild = Iterables.getOnlyElement(grandGrandChildren);
- assertEquals(grandGrandChild.getEntityType().getName(), SIMPLE_ENTITY_TYPE);
-
- deleteCatalogEntity(referencedSymbolicName);
- deleteCatalogEntity(referrerSymbolicName);
- }
-
- @Test
- public void testLaunchApplicationWithTypeUsingJavaColonPrefix() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- String symbolicName = SIMPLE_ENTITY_TYPE;
- String serviceName = "java:"+SIMPLE_ENTITY_TYPE;
- registerAndLaunchAndAssertSimpleEntity(symbolicName, serviceName);
- }
-
- @Test
- public void testLaunchApplicationLoopWithJavaTypeName() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- String symbolicName = SIMPLE_ENTITY_TYPE;
- String serviceName = SIMPLE_ENTITY_TYPE;
- registerAndLaunchAndAssertSimpleEntity(symbolicName, serviceName);
- }
-
- @Test
- public void testLaunchApplicationChildLoopCatalogIdFails() throws Exception {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- String referrerSymbolicName = "my.catalog.app.id.child.referring";
- try {
- // TODO only fails if using 'services', because that forces plan parsing; should fail in all cases
- addCatalogChildOSGiEntityWithServicesBlock(referrerSymbolicName, ver(referrerSymbolicName));
- fail("Expected to throw");
- } catch (Exception e) {
- Exceptions.propagateIfFatal(e);
- assertTrue(e.getMessage().contains(referrerSymbolicName), "message was: "+e);
- }
- }
-
- @Test
- public void testReferenceInstalledBundleByName() {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- String firstItemId = "my.catalog.app.id.register_bundle";
- String secondItemId = "my.catalog.app.id.reference_bundle";
- addCatalogItems(
- "brooklyn.catalog:",
- " id: " + firstItemId,
- " version: " + TEST_VERSION,
- " libraries:",
- " - url: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL,
- "",
- "services:",
- "- type: " + SIMPLE_ENTITY_TYPE);
- deleteCatalogEntity(firstItemId);
-
- addCatalogItems(
- "brooklyn.catalog:",
- " id: " + secondItemId,
- " version: " + TEST_VERSION,
- " libraries:",
- " - name: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_NAME,
- " version: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_VERSION,
- "",
- "services:",
- "- type: " + SIMPLE_ENTITY_TYPE);
-
- deleteCatalogEntity(secondItemId);
- }
-
- @Test
- public void testReferenceNonInstalledBundledByNameFails() {
- String nonExistentId = "none-existent-id";
- String nonExistentVersion = "9.9.9";
- try {
- addCatalogItems(
- "brooklyn.catalog:",
- " id: my.catalog.app.id.non_existing.ref",
- " version: " + TEST_VERSION,
- " libraries:",
- " - name: " + nonExistentId,
- " version: " + nonExistentVersion,
- "",
- "services:",
- "- type: " + SIMPLE_ENTITY_TYPE);
- fail();
- } catch (IllegalStateException e) {
- Assert.assertEquals(e.getMessage(), "Bundle from null failed to install: Bundle CatalogBundleDto{symbolicName=" + nonExistentId + ", version=" + nonExistentVersion + ", url=null} not previously registered, but URL is empty.");
- }
- }
-
- @Test
- public void testPartialBundleReferenceFails() {
- try {
- addCatalogItems(
- "brooklyn.catalog:",
- " id: my.catalog.app.id.non_existing.ref",
- " version: " + TEST_VERSION,
- " libraries:",
- " - name: io.brooklyn.brooklyn-test-osgi-entities",
- "",
- "services:",
- "- type: " + SIMPLE_ENTITY_TYPE);
- fail();
- } catch (NullPointerException e) {
- Assert.assertEquals(e.getMessage(), "both name and version are required");
- }
- try {
- addCatalogItems(
- "brooklyn.catalog:",
- " id: my.catalog.app.id.non_existing.ref",
- " version: " + TEST_VERSION,
- " libraries:",
- " - version: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_VERSION,
- "",
- "services:",
- "- type: " + SIMPLE_ENTITY_TYPE);
- fail();
- } catch (NullPointerException e) {
- Assert.assertEquals(e.getMessage(), "both name and version are required");
- }
- }
-
- @Test
- public void testFullBundleReference() {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- String itemId = "my.catalog.app.id.full_ref";
- addCatalogItems(
- "brooklyn.catalog:",
- " id: " + itemId,
- " version: " + TEST_VERSION,
- " libraries:",
- " - name: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_NAME,
- " version: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_VERSION,
- " url: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL,
- "",
- "services:",
- "- type: " + SIMPLE_ENTITY_TYPE);
- deleteCatalogEntity(itemId);
- }
-
- /**
- * Test that the name:version contained in the OSGi bundle will
- * override the values supplied in the YAML.
- */
- @Test
- public void testFullBundleReferenceUrlMetaOverridesLocalNameVersion() {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- String firstItemId = "my.catalog.app.id.register_bundle";
- String nonExistentId = "non_existent_id";
- String nonExistentVersion = "9.9.9";
- try {
- addCatalogItems(
- "brooklyn.catalog:",
- " id: " + firstItemId,
- " version: " + TEST_VERSION,
- " libraries:",
- " - name: " + nonExistentId,
- " version: " + nonExistentVersion,
- " url: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL,
- "",
- "services:",
- "- type: " + SIMPLE_ENTITY_TYPE);
- fail();
- } catch (IllegalStateException e) {
- assertEquals(e.getMessage(), "Bundle from " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL + " failed to install: " +
- "Bundle already installed as " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_NAME + ":" +
- OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_VERSION + " but user explicitly requested " +
- "CatalogBundleDto{symbolicName=" + nonExistentId + ", version=" + nonExistentVersion + ", url=" +
- OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL + "}");
- }
- }
-
- @Test
- public void testUpdatingItemAllowedIfSame() {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- String id = "my.catalog.app.id.duplicate";
- addCatalogOSGiEntity(id);
- addCatalogOSGiEntity(id);
- }
-
- @Test(expectedExceptions = IllegalStateException.class)
- public void testUpdatingItemFailsIfDifferent() {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- String id = "my.catalog.app.id.duplicate";
- addCatalogOSGiEntity(id);
- addCatalogOSGiEntity(id, SIMPLE_ENTITY_TYPE, true);
- }
-
- @Test
- public void testForcedUpdatingItem() {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- String id = "my.catalog.app.id.duplicate";
- addCatalogOSGiEntity(id);
- forceCatalogUpdate();
- addCatalogOSGiEntity(id);
- deleteCatalogEntity(id);
- }
-
- @Test
- public void testCreateSpecFromCatalogItem() {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- String id = "my.catalog.app.id.create_spec";
- addCatalogOSGiEntity(id);
- BrooklynCatalog catalog = mgmt().getCatalog();
- CatalogItem<?, ?> item = catalog.getCatalogItem(id, TEST_VERSION);
- Object spec = catalog.createSpec(item);
- Assert.assertNotNull(spec);
- }
-
- @Test
- public void testLoadResourceFromBundle() throws Exception {
- String id = "resource.test";
- addCatalogOSGiEntity(id, SIMPLE_ENTITY_TYPE);
- String yaml =
- "services: \n" +
- " - serviceType: "+ver(id);
- Entity app = createAndStartApplication(yaml);
- Entity simpleEntity = Iterables.getOnlyElement(app.getChildren());
- InputStream icon = new ResourceUtils(simpleEntity).getResourceFromUrl("classpath:/brooklyn/osgi/tests/icon.gif");
- assertTrue(icon != null);
- icon.close();
- }
-
- @Test
- public void testMissingTypeDoesNotRecurse() {
- String symbolicName = "my.catalog.app.id.basic";
- addCatalogItems(
- "brooklyn.catalog:",
- " id: " + symbolicName,
- " version: " + TEST_VERSION,
- "",
- "services:",
- "- type: brooklyn.entity.basic.BasicEntity");
-
- try {
- addCatalogItems(
- "brooklyn.catalog:",
- " id: " + symbolicName,
- " version: " + TEST_VERSION + "-update",
- "",
- "services:",
- "- type: " + symbolicName);
- fail("Catalog addition expected to fail due to non-existent java type " + symbolicName);
- } catch (IllegalStateException e) {
- assertTrue(e.toString().contains("recursive"), "Unexpected error message: "+e);
- }
- }
-
- @Test
- public void testVersionedTypeDoesNotRecurse() {
- String symbolicName = "my.catalog.app.id.basic";
- addCatalogItems(
- "brooklyn.catalog:",
- " id: " + symbolicName,
- " version: " + TEST_VERSION,
- "",
- "services:",
- "- type: brooklyn.entity.basic.BasicEntity");
-
- String versionedId = CatalogUtils.getVersionedId(symbolicName, TEST_VERSION);
- try {
- addCatalogItems(
- "brooklyn.catalog:",
- " id: " + symbolicName,
- " version: " + TEST_VERSION + "-update",
- "",
- "services:",
- "- type: " + versionedId);
- fail("Catalog addition expected to fail due to non-existent java type " + versionedId);
- } catch (IllegalStateException e) {
- assertTrue(e.toString().contains("recursive"), "Unexpected error message: "+e);
- }
- }
-
- @Test
- public void testOsgiNotLeakingToParent() {
- addCatalogOSGiEntity(SIMPLE_ENTITY_TYPE);
- try {
- addCatalogItems(
- "brooklyn.catalog:",
- " id: " + SIMPLE_ENTITY_TYPE,
- " version: " + TEST_VERSION + "-update",
- "",
- "services:",
- "- type: " + SIMPLE_ENTITY_TYPE);
- fail("Catalog addition expected to fail due to non-existent java type " + SIMPLE_ENTITY_TYPE);
- } catch (IllegalStateException e) {
- assertTrue(e.toString().contains("recursive"), "Unexpected error message: "+e);
- }
- }
-
- @Test
- public void testConfigAppliedToCatalogItem() throws Exception {
- addCatalogOSGiEntity("test", TestEntity.class.getName());
- String testName = "test-applies-config-on-catalog-item";
- Entity app = createAndStartApplication(
- "services:",
- "- type: " + ver("test"),
- " brooklyn.config:",
- " test.confName: " + testName);
- Entity testEntity = Iterables.getOnlyElement(app.getChildren());
- assertEquals(testEntity.config().get(TestEntity.CONF_NAME), testName);
- }
-
- @Test
- public void testFlagsAppliesToCatalogItem() throws Exception {
- addCatalogOSGiEntity("test", TestEntity.class.getName());
- String testName = "test-applies-config-on-catalog-item";
- Entity app = createAndStartApplication(
- "services:",
- "- type: " + ver("test"),
- " confName: " + testName);
- Entity testEntity = Iterables.getOnlyElement(app.getChildren());
- assertEquals(testEntity.config().get(TestEntity.CONF_NAME), testName);
- }
-
- @Test
- public void testExplicitFlagsAppliesToCatalogItem() throws Exception {
- addCatalogOSGiEntity("test", TestEntity.class.getName());
- String testName = "test-applies-config-on-catalog-item";
- Entity app = createAndStartApplication(
- "services:",
- "- type: " + ver("test"),
- " brooklyn.flags:",
- " confName: " + testName);
- Entity testEntity = Iterables.getOnlyElement(app.getChildren());
- assertEquals(testEntity.config().get(TestEntity.CONF_NAME), testName);
- }
-
-
- @Test
- public void testConfigAppliedToCatalogItemImpl() throws Exception {
- addCatalogOSGiEntity("test", TestEntityImpl.class.getName());
- String testName = "test-applies-config-on-catalog-item";
- Entity app = createAndStartApplication(
- "services:",
- "- type: " + ver("test"),
- " brooklyn.config:",
- " test.confName: " + testName);
- Entity testEntity = Iterables.getOnlyElement(app.getChildren());
- assertEquals(testEntity.config().get(TestEntity.CONF_NAME), testName);
- }
-
- @Test
- public void testFlagsAppliesToCatalogItemImpl() throws Exception {
- addCatalogOSGiEntity("test", TestEntityImpl.class.getName());
- String testName = "test-applies-config-on-catalog-item";
- Entity app = createAndStartApplication(
- "services:",
- "- type: " + ver("test"),
- " confName: " + testName);
- Entity testEntity = Iterables.getOnlyElement(app.getChildren());
- assertEquals(testEntity.config().get(TestEntity.CONF_NAME), testName);
- }
-
- @Test
- public void testExplicitFlagsAppliesToCatalogItemImpl() throws Exception {
- addCatalogOSGiEntity("test", TestEntityImpl.class.getName());
- String testName = "test-applies-config-on-catalog-item";
- Entity app = createAndStartApplication(
- "services:",
- "- type: " + ver("test"),
- " brooklyn.flags:",
- " confName: " + testName);
- Entity testEntity = Iterables.getOnlyElement(app.getChildren());
- assertEquals(testEntity.config().get(TestEntity.CONF_NAME), testName);
- }
-
- private void registerAndLaunchAndAssertSimpleEntity(String symbolicName, String serviceType) throws Exception {
- addCatalogOSGiEntity(symbolicName, serviceType);
- String yaml = "name: simple-app-yaml\n" +
- "location: localhost\n" +
- "services: \n" +
- " - serviceType: "+ver(symbolicName);
- Entity app = createAndStartApplication(yaml);
-
- Entity simpleEntity = Iterables.getOnlyElement(app.getChildren());
- assertEquals(simpleEntity.getEntityType().getName(), SIMPLE_ENTITY_TYPE);
-
- deleteCatalogEntity(symbolicName);
- }
-
- private void addCatalogOSGiEntity(String symbolicName) {
- addCatalogOSGiEntity(symbolicName, SIMPLE_ENTITY_TYPE);
- }
-
- private void addCatalogOSGiEntity(String symbolicName, String serviceType) {
- addCatalogOSGiEntity(symbolicName, serviceType, false);
- }
-
- private void addCatalogOSGiEntity(String symbolicName, String serviceType, boolean extraLib) {
- addCatalogItems(
- "brooklyn.catalog:",
- " id: " + symbolicName,
- " name: My Catalog App",
- " description: My description",
- " icon_url: classpath://path/to/myicon.jpg",
- " version: " + TEST_VERSION,
- " libraries:",
- " - url: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL +
- (extraLib ? "\n"+" - url: "+OsgiStandaloneTest.BROOKLYN_OSGI_TEST_A_0_1_0_URL : ""),
- " item:",
- " type: " + serviceType);
- }
-
- private void addCatalogOSGiEntities(String ...namesAndTypes) {
- List<String> lines = MutableList.of(
- "brooklyn.catalog:",
- " name: My Catalog App",
- " description: My description",
- " icon_url: classpath://path/to/myicon.jpg",
- " version: " + TEST_VERSION,
- " libraries:",
- " - url: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL,
- " items:");
-
- for (int i=0; i<namesAndTypes.length; i+=2) {
- lines.addAll(MutableList.of(
- " - id: " + namesAndTypes[i],
- " item:",
- " type: " + namesAndTypes[i+1]));
- }
-
- addCatalogItems(lines);
- }
- private void addCatalogChildOSGiEntityWithServicesBlock(String symbolicName, String serviceType) {
- addCatalogItems(
- "brooklyn.catalog:",
- " id: " + symbolicName,
- " name: My Catalog App",
- " description: My description",
- " icon_url: classpath://path/to/myicon.jpg",
- " version: " + TEST_VERSION,
- " libraries:",
- " - url: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL,
- " item:",
- " services:",
- " - type: " + BasicEntity.class.getName(),
- " brooklyn.children:",
- " - type: " + serviceType);
- }
- private void addCatalogChildOSGiEntity(String symbolicName, String serviceType) {
- addCatalogItems(
- "brooklyn.catalog:",
- " id: " + symbolicName,
- " name: My Catalog App",
- " description: My description",
- " icon_url: classpath://path/to/myicon.jpg",
- " version: " + TEST_VERSION,
- " libraries:",
- " - url: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL,
- " item:",
- " type: " + BasicEntity.class.getName(),
- " brooklyn.children:",
- " - type: " + serviceType);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e406d1ad/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlLocationTest.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlLocationTest.java b/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlLocationTest.java
deleted file mode 100644
index b5c765c..0000000
--- a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlLocationTest.java
+++ /dev/null
@@ -1,248 +0,0 @@
-/*
- * 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 io.brooklyn.camp.brooklyn.catalog;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-import io.brooklyn.camp.brooklyn.AbstractYamlTest;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.Test;
-
-import org.apache.brooklyn.catalog.CatalogItem;
-import org.apache.brooklyn.catalog.CatalogItem.CatalogBundle;
-import brooklyn.catalog.CatalogPredicates;
-import brooklyn.entity.Entity;
-import brooklyn.event.basic.BasicConfigKey;
-import brooklyn.location.Location;
-import brooklyn.location.LocationDefinition;
-import brooklyn.location.LocationSpec;
-import brooklyn.location.basic.LocalhostMachineProvisioningLocation;
-import brooklyn.management.osgi.OsgiStandaloneTest;
-import org.apache.brooklyn.test.TestResourceUnavailableException;
-import brooklyn.util.text.StringFunctions;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-
-public class CatalogYamlLocationTest extends AbstractYamlTest {
- private static final String LOCALHOST_LOCATION_SPEC = "localhost";
- private static final String LOCALHOST_LOCATION_TYPE = LocalhostMachineProvisioningLocation.class.getName();
- private static final String SIMPLE_LOCATION_TYPE = "brooklyn.osgi.tests.SimpleLocation";
-
- @AfterMethod
- public void tearDown() {
- for (CatalogItem<Location, LocationSpec<?>> ci : mgmt().getCatalog().getCatalogItems(CatalogPredicates.IS_LOCATION)) {
- mgmt().getCatalog().deleteCatalogItem(ci.getSymbolicName(), ci.getVersion());
- }
- }
-
- @Test
- public void testAddCatalogItem() throws Exception {
- assertEquals(countCatalogLocations(), 0);
-
- String symbolicName = "my.catalog.location.id.load";
- addCatalogLocation(symbolicName, LOCALHOST_LOCATION_TYPE, null);
- assertAdded(symbolicName, LOCALHOST_LOCATION_TYPE);
- removeAndAssert(symbolicName);
- }
-
- @Test
- public void testAddCatalogItemOsgi() throws Exception {
- assertEquals(countCatalogLocations(), 0);
-
- String symbolicName = "my.catalog.location.id.load";
- addCatalogLocation(symbolicName, SIMPLE_LOCATION_TYPE, getOsgiLibraries());
- assertAdded(symbolicName, SIMPLE_LOCATION_TYPE);
- assertOsgi(symbolicName);
- removeAndAssert(symbolicName);
- }
-
- @Test
- public void testAddCatalogItemTopLevelItemSyntax() throws Exception {
- assertEquals(countCatalogLocations(), 0);
-
- String symbolicName = "my.catalog.location.id.load";
- addCatalogLocationTopLevelItemSyntax(symbolicName, LOCALHOST_LOCATION_TYPE, null);
- assertAdded(symbolicName, LOCALHOST_LOCATION_TYPE);
- removeAndAssert(symbolicName);
- }
-
- @Test
- public void testAddCatalogItemOsgiTopLevelItemSyntax() throws Exception {
- assertEquals(countCatalogLocations(), 0);
-
- String symbolicName = "my.catalog.location.id.load";
- addCatalogLocationTopLevelItemSyntax(symbolicName, SIMPLE_LOCATION_TYPE, getOsgiLibraries());
- assertAdded(symbolicName, SIMPLE_LOCATION_TYPE);
- assertOsgi(symbolicName);
- removeAndAssert(symbolicName);
- }
-
- private void assertOsgi(String symbolicName) {
- CatalogItem<?, ?> item = mgmt().getCatalog().getCatalogItem(symbolicName, TEST_VERSION);
- Collection<CatalogBundle> libs = item.getLibraries();
- assertEquals(libs.size(), 1);
- assertEquals(Iterables.getOnlyElement(libs).getUrl(), Iterables.getOnlyElement(getOsgiLibraries()));
- }
-
- private void assertAdded(String symbolicName, String expectedJavaType) {
- CatalogItem<?, ?> item = mgmt().getCatalog().getCatalogItem(symbolicName, TEST_VERSION);
- assertEquals(item.getSymbolicName(), symbolicName);
- assertEquals(countCatalogLocations(), 1);
-
- // Item added to catalog should automatically be available in location registry
- LocationDefinition def = mgmt().getLocationRegistry().getDefinedLocationByName(symbolicName);
- assertEquals(def.getId(), symbolicName);
- assertEquals(def.getName(), symbolicName);
-
- LocationSpec<?> spec = (LocationSpec<?>)mgmt().getCatalog().createSpec(item);
- assertEquals(spec.getType().getName(), expectedJavaType);
- }
-
- private void removeAndAssert(String symbolicName) {
- // Deleting item: should be gone from catalog, and from location registry
- deleteCatalogEntity(symbolicName);
-
- assertEquals(countCatalogLocations(), 0);
- assertNull(mgmt().getLocationRegistry().getDefinedLocationByName(symbolicName));
- }
-
- @Test
- public void testLaunchApplicationReferencingLocationClass() throws Exception {
- String symbolicName = "my.catalog.location.id.launch";
- addCatalogLocation(symbolicName, LOCALHOST_LOCATION_TYPE, null);
- runLaunchApplicationReferencingLocation(symbolicName, LOCALHOST_LOCATION_TYPE);
-
- deleteCatalogEntity(symbolicName);
- }
-
- @Test
- public void testLaunchApplicationReferencingLocationSpec() throws Exception {
- String symbolicName = "my.catalog.location.id.launch";
- addCatalogLocation(symbolicName, LOCALHOST_LOCATION_SPEC, null);
- runLaunchApplicationReferencingLocation(symbolicName, LOCALHOST_LOCATION_TYPE);
-
- deleteCatalogEntity(symbolicName);
- }
-
- @Test
- public void testLaunchApplicationReferencingLocationClassTopLevelItemSyntax() throws Exception {
- String symbolicName = "my.catalog.location.id.launch";
- addCatalogLocationTopLevelItemSyntax(symbolicName, LOCALHOST_LOCATION_TYPE, null);
- runLaunchApplicationReferencingLocation(symbolicName, LOCALHOST_LOCATION_TYPE);
-
- deleteCatalogEntity(symbolicName);
- }
-
- @Test
- public void testLaunchApplicationReferencingLocationSpecTopLevelSyntax() throws Exception {
- String symbolicName = "my.catalog.location.id.launch";
- addCatalogLocationTopLevelItemSyntax(symbolicName, LOCALHOST_LOCATION_SPEC, null);
- runLaunchApplicationReferencingLocation(symbolicName, LOCALHOST_LOCATION_TYPE);
-
- deleteCatalogEntity(symbolicName);
- }
-
- @Test
- public void testLaunchApplicationReferencingOsgiLocation() throws Exception {
- String symbolicName = "my.catalog.location.id.launch";
- addCatalogLocation(symbolicName, SIMPLE_LOCATION_TYPE, getOsgiLibraries());
- runLaunchApplicationReferencingLocation(symbolicName, SIMPLE_LOCATION_TYPE);
-
- deleteCatalogEntity(symbolicName);
- }
-
- protected void runLaunchApplicationReferencingLocation(String locTypeInYaml, String locType) throws Exception {
- Entity app = createAndStartApplication(
- "name: simple-app-yaml",
- "location: ",
- " "+locTypeInYaml+":",
- " config2: config2 override",
- " config3: config3",
- "services: ",
- " - type: brooklyn.entity.basic.BasicStartable");
-
- Entity simpleEntity = Iterables.getOnlyElement(app.getChildren());
- Location location = Iterables.getOnlyElement(simpleEntity.getLocations());
- assertEquals(location.getClass().getName(), locType);
- assertEquals(location.getConfig(new BasicConfigKey<String>(String.class, "config1")), "config1");
- assertEquals(location.getConfig(new BasicConfigKey<String>(String.class, "config2")), "config2 override");
- assertEquals(location.getConfig(new BasicConfigKey<String>(String.class, "config3")), "config3");
- }
-
- private List<String> getOsgiLibraries() {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
- return ImmutableList.of(OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL);
- }
-
- private void addCatalogLocation(String symbolicName, String locationType, List<String> libraries) {
- ImmutableList.Builder<String> yaml = ImmutableList.<String>builder().add(
- "brooklyn.catalog:",
- " id: " + symbolicName,
- " name: My Catalog Location",
- " description: My description",
- " version: " + TEST_VERSION);
- if (libraries!=null && libraries.size() > 0) {
- yaml.add(" libraries:")
- .addAll(Lists.transform(libraries, StringFunctions.prepend(" - url: ")));
- }
- yaml.add(
- " item.type: location",
- " item:",
- " type: " + locationType,
- " brooklyn.config:",
- " config1: config1",
- " config2: config2");
-
-
- addCatalogItems(yaml.build());
- }
-
- private void addCatalogLocationTopLevelItemSyntax(String symbolicName, String locationType, List<String> libraries) {
- ImmutableList.Builder<String> yaml = ImmutableList.<String>builder().add(
- "brooklyn.catalog:",
- " id: " + symbolicName,
- " name: My Catalog Location",
- " description: My description",
- " version: " + TEST_VERSION);
- if (libraries!=null && libraries.size() > 0) {
- yaml.add(" libraries:")
- .addAll(Lists.transform(libraries, StringFunctions.prepend(" - url: ")));
- }
- yaml.add(
- "",
- "brooklyn.locations:",
- "- type: " + locationType,
- " brooklyn.config:",
- " config1: config1",
- " config2: config2");
-
-
- addCatalogItems(yaml.build());
- }
-
- private int countCatalogLocations() {
- return Iterables.size(mgmt().getCatalog().getCatalogItems(CatalogPredicates.IS_LOCATION));
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e406d1ad/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlPolicyTest.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlPolicyTest.java b/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlPolicyTest.java
deleted file mode 100644
index 00f5c71..0000000
--- a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlPolicyTest.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * 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 io.brooklyn.camp.brooklyn.catalog;
-
-import static org.testng.Assert.assertEquals;
-import io.brooklyn.camp.brooklyn.AbstractYamlTest;
-
-import org.testng.annotations.Test;
-
-import org.apache.brooklyn.catalog.CatalogItem;
-import brooklyn.catalog.CatalogPredicates;
-import brooklyn.entity.Entity;
-import brooklyn.event.basic.BasicConfigKey;
-import brooklyn.management.osgi.OsgiStandaloneTest;
-import brooklyn.policy.Policy;
-import org.apache.brooklyn.test.TestResourceUnavailableException;
-
-import com.google.common.collect.Iterables;
-
-public class CatalogYamlPolicyTest extends AbstractYamlTest {
- private static final String SIMPLE_POLICY_TYPE = "brooklyn.osgi.tests.SimplePolicy";
- private static final String SIMPLE_ENTITY_TYPE = "brooklyn.osgi.tests.SimpleEntity";
-
- @Test
- public void testAddCatalogItem() throws Exception {
- assertEquals(countCatalogPolicies(), 0);
-
- String symbolicName = "my.catalog.policy.id.load";
- addCatalogOsgiPolicy(symbolicName, SIMPLE_POLICY_TYPE);
-
- CatalogItem<?, ?> item = mgmt().getCatalog().getCatalogItem(symbolicName, TEST_VERSION);
- assertEquals(item.getSymbolicName(), symbolicName);
- assertEquals(countCatalogPolicies(), 1);
-
- deleteCatalogEntity(symbolicName);
- }
-
- @Test
- public void testAddCatalogItemTopLevelSyntax() throws Exception {
- assertEquals(countCatalogPolicies(), 0);
-
- String symbolicName = "my.catalog.policy.id.load";
- addCatalogOsgiPolicyTopLevelSyntax(symbolicName, SIMPLE_POLICY_TYPE);
-
- CatalogItem<?, ?> item = mgmt().getCatalog().getCatalogItem(symbolicName, TEST_VERSION);
- assertEquals(item.getSymbolicName(), symbolicName);
- assertEquals(countCatalogPolicies(), 1);
-
- deleteCatalogEntity(symbolicName);
- }
-
- @Test
- public void testLaunchApplicationReferencingPolicy() throws Exception {
- String symbolicName = "my.catalog.policy.id.launch";
- addCatalogOsgiPolicy(symbolicName, SIMPLE_POLICY_TYPE);
- Entity app = createAndStartApplication(
- "name: simple-app-yaml",
- "location: localhost",
- "services: ",
- " - type: brooklyn.entity.basic.BasicEntity\n" +
- " brooklyn.policies:\n" +
- " - type: " + ver(symbolicName),
- " brooklyn.config:",
- " config2: config2 override",
- " config3: config3");
-
- Entity simpleEntity = Iterables.getOnlyElement(app.getChildren());
- Policy policy = Iterables.getOnlyElement(simpleEntity.getPolicies());
- assertEquals(policy.getPolicyType().getName(), SIMPLE_POLICY_TYPE);
- assertEquals(policy.getConfig(new BasicConfigKey<String>(String.class, "config1")), "config1");
- assertEquals(policy.getConfig(new BasicConfigKey<String>(String.class, "config2")), "config2 override");
- assertEquals(policy.getConfig(new BasicConfigKey<String>(String.class, "config3")), "config3");
-
- deleteCatalogEntity(symbolicName);
- }
-
- @Test
- public void testLaunchApplicationReferencingPolicyTopLevelSyntax() throws Exception {
- String symbolicName = "my.catalog.policy.id.launch";
- addCatalogOsgiPolicyTopLevelSyntax(symbolicName, SIMPLE_POLICY_TYPE);
- Entity app = createAndStartApplication(
- "name: simple-app-yaml",
- "location: localhost",
- "services: ",
- " - type: brooklyn.entity.basic.BasicEntity\n" +
- " brooklyn.policies:\n" +
- " - type: " + ver(symbolicName),
- " brooklyn.config:",
- " config2: config2 override",
- " config3: config3");
-
- Entity simpleEntity = Iterables.getOnlyElement(app.getChildren());
- Policy policy = Iterables.getOnlyElement(simpleEntity.getPolicies());
- assertEquals(policy.getPolicyType().getName(), SIMPLE_POLICY_TYPE);
- assertEquals(policy.getConfig(new BasicConfigKey<String>(String.class, "config1")), "config1");
- assertEquals(policy.getConfig(new BasicConfigKey<String>(String.class, "config2")), "config2 override");
- assertEquals(policy.getConfig(new BasicConfigKey<String>(String.class, "config3")), "config3");
-
- deleteCatalogEntity(symbolicName);
- }
-
- @Test
- public void testLaunchApplicationWithCatalogReferencingOtherCatalog() throws Exception {
- String referencedSymbolicName = "my.catalog.policy.id.referenced";
- String referrerSymbolicName = "my.catalog.policy.id.referring";
- addCatalogOsgiPolicy(referencedSymbolicName, SIMPLE_POLICY_TYPE);
-
- addCatalogItems(
- "brooklyn.catalog:",
- " id: " + referrerSymbolicName,
- " name: My Catalog App",
- " description: My description",
- " icon_url: classpath://path/to/myicon.jpg",
- " version: " + TEST_VERSION,
- " libraries:",
- " - url: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL,
- "",
- "services:",
- "- type: " + SIMPLE_ENTITY_TYPE,
- " brooklyn.policies:",
- " - type: " + ver(referencedSymbolicName));
-
- String yaml = "name: simple-app-yaml\n" +
- "location: localhost\n" +
- "services: \n" +
- "- type: "+ ver(referrerSymbolicName);
-
- Entity app = createAndStartApplication(yaml);
-
- Entity simpleEntity = Iterables.getOnlyElement(app.getChildren());
- Policy policy = Iterables.getOnlyElement(simpleEntity.getPolicies());
- assertEquals(policy.getPolicyType().getName(), SIMPLE_POLICY_TYPE);
-
- deleteCatalogEntity(referencedSymbolicName);
- }
-
- private void addCatalogOsgiPolicy(String symbolicName, String policyType) {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- addCatalogItems(
- "brooklyn.catalog:",
- " id: " + symbolicName,
- " name: My Catalog Policy",
- " description: My description",
- " icon_url: classpath://path/to/myicon.jpg",
- " version: " + TEST_VERSION,
- " libraries:",
- " - url: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL,
- " item:",
- " type: " + policyType,
- " brooklyn.config:",
- " config1: config1",
- " config2: config2");
- }
-
- private void addCatalogOsgiPolicyTopLevelSyntax(String symbolicName, String policyType) {
- TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
-
- addCatalogItems(
- "brooklyn.catalog:",
- " id: " + symbolicName,
- " name: My Catalog Policy",
- " description: My description",
- " icon_url: classpath://path/to/myicon.jpg",
- " version: " + TEST_VERSION,
- " libraries:",
- " - url: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL,
- "",
- "brooklyn.policies:",
- "- type: " + policyType,
- " brooklyn.config:",
- " config1: config1",
- " config2: config2");
- }
-
- private int countCatalogPolicies() {
- return Iterables.size(mgmt().getCatalog().getCatalogItems(CatalogPredicates.IS_POLICY));
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e406d1ad/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlRebindTest.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlRebindTest.java b/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlRebindTest.java
deleted file mode 100644
index a5dde16..0000000
--- a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlRebindTest.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * 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 io.brooklyn.camp.brooklyn.catalog;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import io.brooklyn.camp.brooklyn.AbstractYamlRebindTest;
-
-import org.testng.annotations.Test;
-
-import brooklyn.catalog.internal.CatalogUtils;
-import brooklyn.entity.basic.BasicEntity;
-import brooklyn.entity.basic.Entities;
-import brooklyn.entity.basic.StartableApplication;
-import brooklyn.internal.BrooklynFeatureEnablement;
-import brooklyn.policy.Enricher;
-import brooklyn.policy.Policy;
-import brooklyn.test.policy.TestEnricher;
-import brooklyn.test.policy.TestPolicy;
-
-import com.google.common.base.Joiner;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Iterables;
-
-public class CatalogYamlRebindTest extends AbstractYamlRebindTest {
-
- // TODO Other tests (relating to https://issues.apache.org/jira/browse/BROOKLYN-149) include:
- // - entities cannot be instantiated because class no longer on classpath (e.g. was OSGi)
- // - config/attribute cannot be instantiated (e.g. because class no longer on classpath)
- // - entity file corrupt
-
- enum RebindWithCatalogTestMode {
- NO_OP,
- DELETE_CATALOG,
- REPLACE_CATALOG_WITH_NEWER_VERSION;
- }
-
- @Test
- public void testRebindWithCatalogAndApp() throws Exception {
- runRebindWithCatalogAndApp(RebindWithCatalogTestMode.NO_OP);
- }
-
- // See https://issues.apache.org/jira/browse/BROOKLYN-149.
- // Deletes the catalog item before rebind, but the referenced types are still on the
- // default classpath.
- // Will fallback to loading from classpath.
- @Test
- public void testRebindWithCatalogDeletedAndAppExisting() throws Exception {
- runRebindWithCatalogAndApp(RebindWithCatalogTestMode.DELETE_CATALOG);
- }
-
- // Upgrades the catalog item before rebind, deleting the old version.
- // Will automatically upgrade.
- @Test
- public void testRebindWithCatalogUpgradedWithOldDeletedAndAppExisting() throws Exception {
- BrooklynFeatureEnablement.enable(BrooklynFeatureEnablement.FEATURE_AUTO_FIX_CATALOG_REF_ON_REBIND);
- runRebindWithCatalogAndApp(RebindWithCatalogTestMode.REPLACE_CATALOG_WITH_NEWER_VERSION);
- }
-
- @SuppressWarnings("unused")
- protected void runRebindWithCatalogAndApp(RebindWithCatalogTestMode mode) throws Exception {
- String symbolicName = "my.catalog.app.id.load";
- String version = "0.1.2";
- String catalogFormat = Joiner.on("\n").join(
- "brooklyn.catalog:",
- " id: " + symbolicName,
- " version: %s",
- " item:",
- " type: "+ BasicEntity.class.getName(),
- " brooklyn.enrichers:",
- " - type: "+TestEnricher.class.getName(),
- " brooklyn.policies:",
- " - type: "+TestPolicy.class.getName());
-
- // Create the catalog item
- addCatalogItems(String.format(catalogFormat, version));
-
- // Create an app, using that catalog item
- String yaml = "name: simple-app-yaml\n" +
- "location: localhost\n" +
- "services: \n" +
- "- type: "+CatalogUtils.getVersionedId(symbolicName, version);
- origApp = (StartableApplication) createAndStartApplication(yaml);
- BasicEntity origEntity = (BasicEntity) Iterables.getOnlyElement(origApp.getChildren());
- TestPolicy origPolicy = (TestPolicy) Iterables.getOnlyElement(origEntity.getPolicies());
- TestEnricher origEnricher = (TestEnricher) Iterables.tryFind(origEntity.getEnrichers(), Predicates.instanceOf(TestEnricher.class)).get();
- assertEquals(origEntity.getCatalogItemId(), symbolicName+":"+version);
-
- // Depending on test-mode, delete the catalog item, and then rebind
- switch (mode) {
- case DELETE_CATALOG:
- mgmt().getCatalog().deleteCatalogItem(symbolicName, version);
- break;
- case REPLACE_CATALOG_WITH_NEWER_VERSION:
- mgmt().getCatalog().deleteCatalogItem(symbolicName, version);
- version = "0.1.3";
- addCatalogItems(String.format(catalogFormat, version));
- break;
- case NO_OP:
- // no-op
- }
-
- rebind();
-
- // Ensure app is still there
- BasicEntity newEntity = (BasicEntity) Iterables.getOnlyElement(newApp.getChildren());
- Policy newPolicy = Iterables.getOnlyElement(newEntity.getPolicies());
- Enricher newEnricher = Iterables.tryFind(newEntity.getEnrichers(), Predicates.instanceOf(TestEnricher.class)).get();
- assertEquals(newEntity.getCatalogItemId(), symbolicName+":"+version);
-
- // Ensure app is still usable - e.g. "stop" effector functions as expected
- newApp.stop();
- assertFalse(Entities.isManaged(newApp));
- assertFalse(Entities.isManaged(newEntity));
- }
-}