You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by sj...@apache.org on 2016/04/21 17:16:20 UTC

[1/2] brooklyn-server git commit: Fix loading yaml CAMP specs from bundles classpath

Repository: brooklyn-server
Updated Branches:
  refs/heads/master df406eb7b -> 8cf7bbcc7


Fix loading yaml CAMP specs from bundles classpath

Also fix the build path of helper test bundles, so they end up in the correct folder.


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

Branch: refs/heads/master
Commit: 84ad923eb8125e62cc53fd7519a486c0a7916d68
Parents: df406eb
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Thu Apr 21 14:31:53 2016 +0100
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Thu Apr 21 15:04:07 2016 +0100

----------------------------------------------------------------------
 .../BrooklynComponentTemplateResolver.java      |  12 +++++++---
 .../service/UrlServiceSpecResolver.java         |   4 +++-
 .../camp/brooklyn/ReferencedYamlTest.java       |  22 +++++++++++++++++++
 utils/common/dependencies/osgi/entities/pom.xml |   2 +-
 .../main/resources/yaml-ref-osgi-entity.yaml    |  21 ++++++++++++++++++
 .../dependencies/osgi/more-entities-v1/pom.xml  |   2 +-
 .../osgi/more-entities-v2-evil-twin/pom.xml     |   2 +-
 .../dependencies/osgi/more-entities-v2/pom.xml  |   2 +-
 .../osgi/brooklyn-test-osgi-entities.jar        | Bin 14649 -> 0 bytes
 .../osgi/brooklyn-test-osgi-entities.jar        | Bin 14454 -> 15301 bytes
 10 files changed, 59 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/84ad923e/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java
----------------------------------------------------------------------
diff --git a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java
index d19177b..e2eb9b6 100644
--- a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java
+++ b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java
@@ -162,9 +162,15 @@ public class BrooklynComponentTemplateResolver {
                         ". Other catalog items being resolved up the stack are " + encounteredRegisteredTypeSymbolicNames +
                         ". Tried loading it as a Java class instead but failed.";
             } else if (proto != null) {
-                msgDetails = "The reference " + type + " looks like a URL (running the CAMP Brooklyn assembly-template instantiator) but the protocol " +
-                        proto + " isn't white listed (" + BrooklynCampConstants.YAML_URL_PROTOCOL_WHITELIST + "). " +
-                        "It's also neither a catalog item nor a java type.";
+                if (BrooklynCampConstants.YAML_URL_PROTOCOL_WHITELIST.contains(proto)) {
+                    // TODO propagate exception so we can provide better error messages
+                    msgDetails = "The reference " + type + " looks like a URL (running the CAMP Brooklyn assembly-template instantiator) but couldn't load it (missing or invalid syntax?). " +
+                            "It's also neither a catalog item nor a java type.";
+                } else {
+                    msgDetails = "The reference " + type + " looks like a URL (running the CAMP Brooklyn assembly-template instantiator) but the protocol " +
+                            proto + " isn't white listed (" + BrooklynCampConstants.YAML_URL_PROTOCOL_WHITELIST + "). " +
+                            "It's also neither a catalog item nor a java type.";
+                }
             } else {
                 msgDetails = "No resolver knew how to handle it. Using resolvers: " + serviceSpecResolver;
             }

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/84ad923e/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/service/UrlServiceSpecResolver.java
----------------------------------------------------------------------
diff --git a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/service/UrlServiceSpecResolver.java b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/service/UrlServiceSpecResolver.java
index 62f079f..b8fe3a2 100644
--- a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/service/UrlServiceSpecResolver.java
+++ b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/service/UrlServiceSpecResolver.java
@@ -31,6 +31,7 @@ import org.apache.brooklyn.core.typereg.RegisteredTypeLoadingContexts;
 import org.apache.brooklyn.core.typereg.RegisteredTypes;
 import org.apache.brooklyn.util.collections.MutableSet;
 import org.apache.brooklyn.util.core.ResourceUtils;
+import org.apache.brooklyn.util.exceptions.Exceptions;
 import org.apache.brooklyn.util.net.Urls;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -55,8 +56,9 @@ public class UrlServiceSpecResolver implements EntitySpecResolver {
     public EntitySpec<?> resolve(String type, BrooklynClassLoadingContext loader, Set<String> encounteredTypes) {
         String yaml;
         try {
-            yaml = ResourceUtils.create(this).getResourceAsString(type);
+            yaml = ResourceUtils.create(loader).getResourceAsString(type);
         } catch (Exception e) {
+            Exceptions.propagateIfFatal(e);
             log.warn("AssemblyTemplate type " + type + " looks like a URL that can't be fetched.", e);
             return null;
         }

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/84ad923e/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ReferencedYamlTest.java
----------------------------------------------------------------------
diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ReferencedYamlTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ReferencedYamlTest.java
index d05da3e..7979f7c 100644
--- a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ReferencedYamlTest.java
+++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ReferencedYamlTest.java
@@ -115,6 +115,28 @@ public class ReferencedYamlTest extends AbstractYamlTest {
     }
 
     @Test
+    public void testCatalogReferencingYamlUrlFromOsgiBundle() throws Exception {
+        TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH);
+
+        addCatalogItems(
+            "brooklyn.catalog:",
+            "  id: yaml.reference",
+            "  version: " + TEST_VERSION,
+            "  libraries:",
+            "  - url: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL,
+            "services:",
+            "- type: classpath://yaml-ref-osgi-entity.yaml");
+        
+        String entityName = "YAML -> catalog item -> yaml url (osgi)";
+        Entity app = createAndStartApplication(
+            "services:",
+            "- name: " + entityName,
+            "  type: " + ver("yaml.reference"));
+        
+        checkChildEntitySpec(app, entityName);
+    }
+
+    @Test
     public void testYamlUrlReferencingCatalog() throws Exception {
         addCatalogItems(
             "brooklyn.catalog:",

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/84ad923e/utils/common/dependencies/osgi/entities/pom.xml
----------------------------------------------------------------------
diff --git a/utils/common/dependencies/osgi/entities/pom.xml b/utils/common/dependencies/osgi/entities/pom.xml
index 4792666..13cce9e 100644
--- a/utils/common/dependencies/osgi/entities/pom.xml
+++ b/utils/common/dependencies/osgi/entities/pom.xml
@@ -63,7 +63,7 @@
                 <artifactId>maven-jar-plugin</artifactId>
                 <version>2.3.2</version>
                 <configuration>
-                    <outputDirectory>../../../resources/brooklyn/osgi</outputDirectory>
+                    <outputDirectory>../../../src/test/resources/brooklyn/osgi</outputDirectory>
                     <finalName>brooklyn-test-osgi-entities</finalName>
                 </configuration>
             </plugin>

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/84ad923e/utils/common/dependencies/osgi/entities/src/main/resources/yaml-ref-osgi-entity.yaml
----------------------------------------------------------------------
diff --git a/utils/common/dependencies/osgi/entities/src/main/resources/yaml-ref-osgi-entity.yaml b/utils/common/dependencies/osgi/entities/src/main/resources/yaml-ref-osgi-entity.yaml
new file mode 100644
index 0000000..c9b1c55
--- /dev/null
+++ b/utils/common/dependencies/osgi/entities/src/main/resources/yaml-ref-osgi-entity.yaml
@@ -0,0 +1,21 @@
+# 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.
+#
+name: Basic entity
+services:
+- name: service
+  type: org.apache.brooklyn.entity.stock.BasicEntity

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/84ad923e/utils/common/dependencies/osgi/more-entities-v1/pom.xml
----------------------------------------------------------------------
diff --git a/utils/common/dependencies/osgi/more-entities-v1/pom.xml b/utils/common/dependencies/osgi/more-entities-v1/pom.xml
index 262baa0..e97b3d4 100644
--- a/utils/common/dependencies/osgi/more-entities-v1/pom.xml
+++ b/utils/common/dependencies/osgi/more-entities-v1/pom.xml
@@ -63,7 +63,7 @@
                 <artifactId>maven-jar-plugin</artifactId>
                 <version>2.3.2</version>
                 <configuration>
-                    <outputDirectory>../../../resources/brooklyn/osgi</outputDirectory>
+                    <outputDirectory>../../../src/test/resources/brooklyn/osgi</outputDirectory>
                     <finalName>brooklyn-test-osgi-more-entities_${project.version}</finalName>
                 </configuration>
             </plugin>

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/84ad923e/utils/common/dependencies/osgi/more-entities-v2-evil-twin/pom.xml
----------------------------------------------------------------------
diff --git a/utils/common/dependencies/osgi/more-entities-v2-evil-twin/pom.xml b/utils/common/dependencies/osgi/more-entities-v2-evil-twin/pom.xml
index dce8733..7c1b625 100644
--- a/utils/common/dependencies/osgi/more-entities-v2-evil-twin/pom.xml
+++ b/utils/common/dependencies/osgi/more-entities-v2-evil-twin/pom.xml
@@ -68,7 +68,7 @@
                 <artifactId>maven-jar-plugin</artifactId>
                 <version>2.3.2</version>
                 <configuration>
-                    <outputDirectory>../../../resources/brooklyn/osgi</outputDirectory>
+                    <outputDirectory>../../../src/test/resources/brooklyn/osgi</outputDirectory>
                     <finalName>brooklyn-test-osgi-more-entities_evil-twin_${project.version}</finalName>
                 </configuration>
             </plugin>

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/84ad923e/utils/common/dependencies/osgi/more-entities-v2/pom.xml
----------------------------------------------------------------------
diff --git a/utils/common/dependencies/osgi/more-entities-v2/pom.xml b/utils/common/dependencies/osgi/more-entities-v2/pom.xml
index 405229e..e363a2c 100644
--- a/utils/common/dependencies/osgi/more-entities-v2/pom.xml
+++ b/utils/common/dependencies/osgi/more-entities-v2/pom.xml
@@ -68,7 +68,7 @@
                 <artifactId>maven-jar-plugin</artifactId>
                 <version>2.3.2</version>
                 <configuration>
-                    <outputDirectory>../../../resources/brooklyn/osgi</outputDirectory>
+                    <outputDirectory>../../../src/test/resources/brooklyn/osgi</outputDirectory>
                     <finalName>brooklyn-test-osgi-more-entities_${project.version}</finalName>
                 </configuration>
             </plugin>

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/84ad923e/utils/common/resources/brooklyn/osgi/brooklyn-test-osgi-entities.jar
----------------------------------------------------------------------
diff --git a/utils/common/resources/brooklyn/osgi/brooklyn-test-osgi-entities.jar b/utils/common/resources/brooklyn/osgi/brooklyn-test-osgi-entities.jar
deleted file mode 100644
index 20c84ed..0000000
Binary files a/utils/common/resources/brooklyn/osgi/brooklyn-test-osgi-entities.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/84ad923e/utils/common/src/test/resources/brooklyn/osgi/brooklyn-test-osgi-entities.jar
----------------------------------------------------------------------
diff --git a/utils/common/src/test/resources/brooklyn/osgi/brooklyn-test-osgi-entities.jar b/utils/common/src/test/resources/brooklyn/osgi/brooklyn-test-osgi-entities.jar
index c76d03b..5470401 100644
Binary files a/utils/common/src/test/resources/brooklyn/osgi/brooklyn-test-osgi-entities.jar and b/utils/common/src/test/resources/brooklyn/osgi/brooklyn-test-osgi-entities.jar differ


[2/2] brooklyn-server git commit: This closes #121

Posted by sj...@apache.org.
This closes #121

Fix loading yaml CAMP specs from bundles classpath


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

Branch: refs/heads/master
Commit: 8cf7bbcc7643a8b258b9c36e308bc56d2d24cdf0
Parents: df406eb 84ad923
Author: Sam Corbett <sa...@cloudsoftcorp.com>
Authored: Thu Apr 21 16:14:35 2016 +0100
Committer: Sam Corbett <sa...@cloudsoftcorp.com>
Committed: Thu Apr 21 16:14:35 2016 +0100

----------------------------------------------------------------------
 .../BrooklynComponentTemplateResolver.java      |  12 +++++++---
 .../service/UrlServiceSpecResolver.java         |   4 +++-
 .../camp/brooklyn/ReferencedYamlTest.java       |  22 +++++++++++++++++++
 utils/common/dependencies/osgi/entities/pom.xml |   2 +-
 .../main/resources/yaml-ref-osgi-entity.yaml    |  21 ++++++++++++++++++
 .../dependencies/osgi/more-entities-v1/pom.xml  |   2 +-
 .../osgi/more-entities-v2-evil-twin/pom.xml     |   2 +-
 .../dependencies/osgi/more-entities-v2/pom.xml  |   2 +-
 .../osgi/brooklyn-test-osgi-entities.jar        | Bin 14649 -> 0 bytes
 .../osgi/brooklyn-test-osgi-entities.jar        | Bin 14454 -> 15301 bytes
 10 files changed, 59 insertions(+), 8 deletions(-)
----------------------------------------------------------------------