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

tomee git commit: dont break custom classpath for resource lifecycle

Repository: tomee
Updated Branches:
  refs/heads/master 2a29aef9f -> 9a5920e1b


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/9a5920e1
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/9a5920e1
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/9a5920e1

Branch: refs/heads/master
Commit: 9a5920e1b1c89a3c331871ff6ff2378e500a4094
Parents: 2a29aef
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Wed Apr 15 22:37:09 2015 +0200
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Wed Apr 15 22:37:09 2015 +0200

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


http://git-wip-us.apache.org/repos/asf/tomee/blob/9a5920e1/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 0a98318..2750fa8 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
@@ -209,19 +209,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;
@@ -1119,7 +1115,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);
@@ -3320,8 +3321,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;