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);