X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=server%2Fruntime%2Forg.argeo.server.json%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fserver%2Fjson%2FJsonObjectFactoryImpl.java;h=40e197e02c624c5c41da21241ee8f12be204605c;hb=004fe8148fae961344a92f0324f5c0a0c14a27e5;hp=cd6c00ee41c05317e0af0022b5174bf0e7d1389a;hpb=00ae7654c948e62c35ef88e7d8d528965d5e0371;p=lgpl%2Fargeo-commons.git diff --git a/server/runtime/org.argeo.server.json/src/main/java/org/argeo/server/json/JsonObjectFactoryImpl.java b/server/runtime/org.argeo.server.json/src/main/java/org/argeo/server/json/JsonObjectFactoryImpl.java index cd6c00ee4..40e197e02 100644 --- a/server/runtime/org.argeo.server.json/src/main/java/org/argeo/server/json/JsonObjectFactoryImpl.java +++ b/server/runtime/org.argeo.server.json/src/main/java/org/argeo/server/json/JsonObjectFactoryImpl.java @@ -18,40 +18,27 @@ public class JsonObjectFactoryImpl implements JsonObjectFactory, .getLog(JsonObjectFactoryImpl.class); private BundleContext bundleContext; - private BundleDelegatingClassLoader classLoader; + private ClassLoader classLoader = getClass().getClassLoader(); private ObjectMapper objectMapper = new ObjectMapper(); - private Map supportedTypes = new HashMap(); + private Map> supportedTypes = new HashMap>(); public Boolean supports(String type) { if (supportedTypes.containsKey(type)) return true; return loadClass(type) != null ? true : false; - // try { - // // Class.forName(type); - // Thread.currentThread().getContextClassLoader().loadClass(type); - // return true; - // } catch (ClassNotFoundException e) { - // return false; - // } } + @SuppressWarnings("unchecked") public T readValue(String type, String str) { - final Class clss; + final Class clss; if (supportedTypes.containsKey(type)) clss = supportedTypes.get(type); else { clss = loadClass(type); if (clss == null) throw new ArgeoServerException("Cannot find type " + type); - // try { - // // clss = Class.forName(type); - // clss = Thread.currentThread().getContextClassLoader() - // .loadClass(type); - // } catch (ClassNotFoundException e) { - // throw new ArgeoServerException("Cannot find type " + type, e); - // } } try { @@ -62,36 +49,11 @@ public class JsonObjectFactoryImpl implements JsonObjectFactory, } } - public void setSupportedTypes(Map supportedTypes) { + public void setSupportedTypes(Map> supportedTypes) { this.supportedTypes = supportedTypes; } - protected Class loadClass(String type) { - Class clss; -// try { -// return Class.forName(type); -// } catch (ClassNotFoundException e) { -// if (log.isDebugEnabled()) -// log.debug("Class.forName failed: " + e); -// } -// -// try { -// return Thread.currentThread().getContextClassLoader().loadClass( -// type); -// } catch (ClassNotFoundException e) { -// if (log.isDebugEnabled()) -// log -// .debug("Thread.currentThread().getContextClassLoader().loadClass failed: " -// + e); -// } -// -// try { -// return getClass().getClassLoader().loadClass(type); -// } catch (ClassNotFoundException e) { -// if (log.isDebugEnabled()) -// log.debug("getClass().getClassLoader().loadClass failed: " + e); -// } -// + protected Class loadClass(String type) { try { return classLoader.loadClass(type); } catch (ClassNotFoundException e) {