You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jg...@apache.org on 2015/04/22 21:46:13 UTC

[2/6] tomee git commit: dont break custom classpath for resource lifecycle

dont break custom classpath for resource lifecycle


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/cd4de99e
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/cd4de99e
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/cd4de99e

Branch: refs/heads/tomee-1.7.x
Commit: cd4de99e3ccfe424984510a1afa2f2768955f6c2
Parents: fe1e06d
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Wed Apr 15 22:37:09 2015 +0200
Committer: Jonathan Gallimore <jo...@jrg.me.uk>
Committed: Mon Apr 20 13:26:23 2015 +0100

----------------------------------------------------------------------
 .../apache/openejb/assembler/classic/Assembler.java  | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/cd4de99e/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
index fc10d9e..66f1920 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
@@ -192,19 +192,15 @@ import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InvalidObjectException;
-import java.io.ObjectStreamException;
-import java.io.Serializable;
 import java.lang.instrument.ClassFileTransformer;
 import java.lang.instrument.Instrumentation;
 import java.lang.reflect.Constructor;
-import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
 import java.net.MalformedURLException;
 import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
@@ -973,7 +969,12 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
 
             for (final ResourceInfo resourceInfo : resourceList) {
                 try {
-                    final Class<?> clazz = classLoader.loadClass(resourceInfo.className);
+                    Class<?> clazz;
+                    try {
+                        clazz = classLoader.loadClass(resourceInfo.className);
+                    } catch (final ClassNotFoundException cnfe) { // custom classpath
+                        clazz = containerSystemContext.lookup(OPENEJB_RESOURCE_JNDI_PREFIX + resourceInfo.id).getClass();
+                    }
                     final AnnotationFinder finder = new AnnotationFinder(new ClassesArchive(ancestors(clazz)));
                     final List<Method> postConstructs = finder.findAnnotatedMethods(PostConstruct.class);
                     final List<Method> preDestroys = finder.findAnnotatedMethods(PreDestroy.class);
@@ -3158,8 +3159,8 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
     public static class ResourceInstance extends Reference implements Serializable, DestroyableResource {
         private final String name;
         private final Object delegate;
-        private transient final Collection<Method> preDestroys;
-        private transient final CreationalContext<?> context;
+        private transient Collection<Method> preDestroys;
+        private transient CreationalContext<?> context;
 
         public ResourceInstance(final String name, final Object delegate, final Collection<Method> preDestroys, final CreationalContext<?> context) {
             this.name = name;