Repository: brooklyn-server
Updated Branches:
  refs/heads/master eb4992e28 -> b08c48298


Add (disabled) rebind test for deep catalog item nesting.

This fails with the following exception:

org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: Failure 
rebinding: problem creating ENTITY zmm0lmrzll of type 
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl: Unable to load 
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl from []: Invalid class: 
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl: 
ClassNotFoundException: org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl
        at 
org.apache.brooklyn.util.exceptions.Exceptions.propagate(Exceptions.java:129)
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl.rebind(RebindManagerImpl.java:513)
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindTestUtils.rebindAll(RebindTestUtils.java:446)
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindTestUtils.rebind(RebindTestUtils.java:328)
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindTestFixture.rebind(RebindTestFixture.java:281)
        at 
org.apache.brooklyn.camp.brooklyn.AbstractYamlRebindTest.rebind(AbstractYamlRebindTest.java:86)
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindTestFixture.rebind(RebindTestFixture.java:217)
        at 
org.apache.brooklyn.camp.brooklyn.RebindOsgiTest.testReboundDeepCatalogItemCanLoadResources(RebindOsgiTest.java:201)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at 
org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
        at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
        at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
        at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
        at 
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
        at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
        at org.testng.TestRunner.privateRun(TestRunner.java:767)
        at org.testng.TestRunner.run(TestRunner.java:617)
        at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
        at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343)
        at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305)
        at org.testng.SuiteRunner.run(SuiteRunner.java:254)
        at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
        at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
        at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
        at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
        at org.testng.TestNG.run(TestNG.java:1057)
        at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:72)
        at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:124)
Caused by: java.util.concurrent.ExecutionException: 
org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: Failure 
rebinding: problem creating ENTITY zmm0lmrzll of type 
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl: Unable to load 
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl from []: Invalid class: 
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl: 
ClassNotFoundException: org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:192)
        at 
com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63)
        at org.apache.brooklyn.util.core.task.BasicTask.get(BasicTask.java:361)
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl.rebind(RebindManagerImpl.java:511)
        ... 29 more
Caused by: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: 
Failure rebinding: problem creating ENTITY zmm0lmrzll of type 
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl: Unable to load 
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl from []: Invalid class: 
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl: 
ClassNotFoundException: org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl
        at 
org.apache.brooklyn.util.exceptions.Exceptions.create(Exceptions.java:430)
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindExceptionHandlerImpl.onDoneImpl(RebindExceptionHandlerImpl.java:497)
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindExceptionHandlerImpl.onDone(RebindExceptionHandlerImpl.java:413)
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindIteration.run(RebindIteration.java:268)
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl.rebindImpl(RebindManagerImpl.java:558)
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl$3.call(RebindManagerImpl.java:508)
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl$3.call(RebindManagerImpl.java:506)
        at 
org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:519)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: problem creating ENTITY zmm0lmrzll 
of type org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindExceptionHandlerImpl.onCreateFailed(RebindExceptionHandlerImpl.java:265)
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindIteration.instantiateLocationsAndEntities(RebindIteration.java:459)
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindIteration.doRun(RebindIteration.java:240)
        at 
org.apache.brooklyn.core.mgmt.rebind.InitialFullRebindIteration.doRun(InitialFullRebindIteration.java:69)
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindIteration.run(RebindIteration.java:266)
        ... 8 more
Caused by: java.lang.IllegalStateException: Unable to load 
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl from []: Invalid class: 
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl: 
ClassNotFoundException: org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl
        at 
org.apache.brooklyn.util.guava.IllegalStateExceptionSupplier.get(IllegalStateExceptionSupplier.java:40)
        at 
org.apache.brooklyn.util.guava.IllegalStateExceptionSupplier.get(IllegalStateExceptionSupplier.java:26)
        at 
org.apache.brooklyn.util.guava.Maybe$Absent.getException(Maybe.java:327)
        at org.apache.brooklyn.util.guava.Maybe$Absent.get(Maybe.java:321)
        at 
org.apache.brooklyn.core.mgmt.classloading.AbstractBrooklynClassLoadingContext.loadClass(AbstractBrooklynClassLoadingContext.java:55)
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindIteration$BrooklynObjectInstantiator.load(RebindIteration.java:954)
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindIteration$BrooklynObjectInstantiator.newEntity(RebindIteration.java:874)
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindIteration.instantiateLocationsAndEntities(RebindIteration.java:454)
        ... 11 more
Caused by: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: 
Unable to load org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl from []: 
Invalid class: org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl: 
ClassNotFoundException: org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl
        at 
org.apache.brooklyn.util.exceptions.Exceptions.create(Exceptions.java:430)
        at 
org.apache.brooklyn.core.mgmt.classloading.BrooklynClassLoadingContextSequential.tryLoadClass(BrooklynClassLoadingContextSequential.java:88)
        at 
org.apache.brooklyn.core.mgmt.classloading.AbstractBrooklynClassLoadingContext.tryLoadClass(AbstractBrooklynClassLoadingContext.java:61)
        ... 15 more
Caused by: java.lang.IllegalStateException: Invalid class: 
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl
        at 
org.apache.brooklyn.util.guava.IllegalStateExceptionSupplier.get(IllegalStateExceptionSupplier.java:40)
        at 
org.apache.brooklyn.util.guava.IllegalStateExceptionSupplier.get(IllegalStateExceptionSupplier.java:26)
        at 
org.apache.brooklyn.util.guava.Maybe$Absent.getException(Maybe.java:327)
        at 
org.apache.brooklyn.core.mgmt.classloading.BrooklynClassLoadingContextSequential.tryLoadClass(BrooklynClassLoadingContextSequential.java:85)
        ... 16 more
Caused by: java.lang.ClassNotFoundException: 
org.apache.brooklyn.test.osgi.entities.SimpleEntityImpl
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at 
org.apache.brooklyn.util.javalang.AggregateClassLoader.findClass(AggregateClassLoader.java:135)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at 
org.apache.brooklyn.core.mgmt.classloading.JavaBrooklynClassLoadingContext.tryLoadClass0(JavaBrooklynClassLoadingContext.java:101)
        at 
org.apache.brooklyn.core.mgmt.classloading.JavaBrooklynClassLoadingContext.tryLoadClass(JavaBrooklynClassLoadingContext.java:84)
        at 
org.apache.brooklyn.core.mgmt.classloading.BrooklynClassLoadingContextSequential.tryLoadClass(BrooklynClassLoadingContextSequential.java:81)
        ... 16 more


Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/3e05d39a
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/3e05d39a
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/3e05d39a

Branch: refs/heads/master
Commit: 3e05d39a3b5567a81d7f835362e2eb2326c830b5
Parents: 42b4c3e
Author: Geoff Macartney <[email protected]>
Authored: Mon Sep 26 16:49:50 2016 +0100
Committer: Geoff Macartney <[email protected]>
Committed: Thu Apr 20 11:18:42 2017 +0100

----------------------------------------------------------------------
 .../brooklyn/camp/brooklyn/RebindOsgiTest.java  | 54 ++++++++++++++++++++
 .../brooklyn/catalog/CatalogYamlEntityTest.java |  1 -
 2 files changed, 54 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/3e05d39a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/RebindOsgiTest.java
----------------------------------------------------------------------
diff --git 
a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/RebindOsgiTest.java
 
b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/RebindOsgiTest.java
index fe071a5..37c15e4 100644
--- 
a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/RebindOsgiTest.java
+++ 
b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/RebindOsgiTest.java
@@ -22,6 +22,7 @@ import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
 
 import java.io.File;
 import java.util.List;
@@ -43,6 +44,7 @@ import 
org.apache.brooklyn.core.mgmt.osgi.OsgiVersionMoreEntityTest;
 import org.apache.brooklyn.core.sensor.Sensors;
 import org.apache.brooklyn.core.test.entity.TestEntity;
 import org.apache.brooklyn.test.support.TestResourceUnavailableException;
+import org.apache.brooklyn.util.core.ResourceUtils;
 import org.apache.brooklyn.util.core.osgi.Osgis;
 import org.apache.brooklyn.util.exceptions.Exceptions;
 import org.apache.brooklyn.util.guava.Maybe;
@@ -76,6 +78,8 @@ public class RebindOsgiTest extends AbstractYamlRebindTest {
     private static final String OSGI_OBJECT_TYPE = 
OsgiTestResources.BROOKLYN_TEST_OSGI_ENTITIES_SIMPLE_OBJECT;
     private static final String OSGI_ENTITY_CONFIG_NAME = 
OsgiTestResources.BROOKLYN_TEST_OSGI_ENTITIES_SIMPLE_ENTITY_CONFIG_NAME;
     private static final String OSGI_ENTITY_SENSOR_NAME = 
OsgiTestResources.BROOKLYN_TEST_OSGI_ENTITIES_SIMPLE_ENTITY_SENSOR_NAME;
+    private static final String MORE_ENTITIES_POM_PROPERTIES_PATH =
+        
"META-INF/maven/org.apache.brooklyn.test.resources.osgi/brooklyn-test-osgi-more-entities/pom.properties";
 
     private List<String> bundleUrlsToInstallOnRebind;
     
@@ -159,6 +163,56 @@ public class RebindOsgiTest extends AbstractYamlRebindTest 
{
         assertEquals(newEntity.config().get(TestEntity.CONF_OBJECT), val);
     }
 
+
+    @Test(groups = "Broken")
+    public void testReboundDeepCatalogItemCanLoadResources() throws Exception {
+        
TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), 
OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
+        
TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), 
OsgiStandaloneTest.BROOKLYN_TEST_OSGI_MORE_ENTITIES_0_1_0_PATH);
+
+        String symbolicNameInner = "my.catalog.app.id.inner";
+        String symbolicNameFiller = "my.catalog.app.id.filler";
+        String symbolicNameOuter = "my.catalog.app.id.outer";
+        String appVersion = "0.1.0";
+
+        String appCatalogFormat = Joiner.on("\n").join(
+            "brooklyn.catalog:",
+            "  version: " + TEST_VERSION,
+            "  items:",
+            "  - id: " + symbolicNameInner,
+            "    name: My Catalog App",
+            "    brooklyn.libraries:",
+            "    - url: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL,
+            "    item: " + OSGI_ENTITY_TYPE,
+            "  - id: " + symbolicNameFiller,
+            "    name: Filler App",
+            "    brooklyn.libraries:",
+            "    - url: " + 
OsgiStandaloneTest.BROOKLYN_TEST_OSGI_MORE_ENTITIES_0_1_0_URL,
+            "    item: " + symbolicNameInner,
+            "  - id: " + symbolicNameOuter,
+            "    item: " + symbolicNameFiller);
+
+        // Create the catalog items
+        addCatalogItems(String.format(appCatalogFormat, appVersion));
+
+        String yaml = "name: " + symbolicNameOuter + "\n" +
+            "services: \n" +
+            "  - serviceType: "+ver(symbolicNameOuter);
+        origApp = (StartableApplication) createAndStartApplication(yaml);
+
+        // Rebind
+        rebind();
+
+        Entity newEntity = Iterables.getOnlyElement(newApp.getChildren());
+
+        final String catalogBom = ResourceUtils.create(newEntity)
+            .getResourceAsString("classpath://" + 
MORE_ENTITIES_POM_PROPERTIES_PATH);
+        
assertTrue(catalogBom.contains("artifactId=brooklyn-test-osgi-more-entities"));
+
+        deleteCatalogEntity(symbolicNameOuter);
+        deleteCatalogEntity(symbolicNameFiller);
+        deleteCatalogEntity(symbolicNameInner);
+    }
+
     @Test
     public void testValInEntityFromOtherBundle() throws Exception {
         
TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), 
OSGI_BUNDLE_PATH);

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/3e05d39a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java
----------------------------------------------------------------------
diff --git 
a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java
 
b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java
index a617250..cc26c22 100644
--- 
a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java
+++ 
b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java
@@ -634,7 +634,6 @@ public class CatalogYamlEntityTest extends AbstractYamlTest 
{
 
    @Test
    public void testDeepCatalogItemCanLoadResources() throws Exception {
-      TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), 
OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
 
       String symbolicNameInner = "my.catalog.app.id.inner";
       String symbolicNameFiller = "my.catalog.app.id.filler";

Reply via email to