You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2016/02/01 18:49:32 UTC

[46/50] brooklyn-server git commit: Check class loader for entity if not in catalog

Check class loader for entity if not in catalog


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

Branch: refs/heads/0.5.0
Commit: 1bdb1821d61b3ea88026cb3d6019ac1e49efded7
Parents: 41c5bbd
Author: Andrew Kennedy <an...@cloudsoftcorp.com>
Authored: Thu Apr 25 18:00:36 2013 +0100
Committer: Andrew Kennedy <an...@cloudsoftcorp.com>
Committed: Thu Apr 25 18:00:36 2013 +0100

----------------------------------------------------------------------
 .../rest/util/BrooklynRestResourceUtils.java        | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1bdb1821/usage/rest/src/main/java/brooklyn/rest/util/BrooklynRestResourceUtils.java
----------------------------------------------------------------------
diff --git a/usage/rest/src/main/java/brooklyn/rest/util/BrooklynRestResourceUtils.java b/usage/rest/src/main/java/brooklyn/rest/util/BrooklynRestResourceUtils.java
index 54e4a94..93b3b29 100644
--- a/usage/rest/src/main/java/brooklyn/rest/util/BrooklynRestResourceUtils.java
+++ b/usage/rest/src/main/java/brooklyn/rest/util/BrooklynRestResourceUtils.java
@@ -256,8 +256,20 @@ public class BrooklynRestResourceUtils {
         String type = spec.getType();
         String name = spec.getName();
         Map<String, String> config = (spec.getConfig() == null) ? Maps.<String,String>newLinkedHashMap() : Maps.newLinkedHashMap(spec.getConfig());
-        
-        final Class<? extends Entity> clazz = getCatalog().loadClassByType(type, Entity.class);
+
+        Class<? extends Entity> tempclazz;
+        try {
+            tempclazz = getCatalog().loadClassByType(type, Entity.class);
+        } catch (NoSuchElementException e) {
+            try {
+                tempclazz = (Class<? extends Entity>) getCatalog().getRootClassLoader().loadClass(type);
+                log.info("Catalog does not contain item for type {}; loaded class directly instead", type);
+            } catch (ClassNotFoundException e2) {
+                log.warn("No catalog item for type {}, and could not load class directly; rethrowing", type);
+                throw e;
+            }
+        }
+        final Class<? extends Entity> clazz = tempclazz;
         BasicEntitySpec<? extends Entity, ?> result;
         if (clazz.isInterface()) {
             result = EntitySpecs.spec(clazz);