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 2010/08/21 13:13:14 UTC

svn commit: r987725 - /openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java

Author: jgallimore
Date: Sat Aug 21 11:13:13 2010
New Revision: 987725

URL: http://svn.apache.org/viewvc?rev=987725&view=rev
Log:
OPENEJB-1336 use reflection to find EJB.lookup() method

Modified:
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=987725&r1=987724&r2=987725&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java Sat Aug 21 11:13:13 2010
@@ -650,8 +650,6 @@ public class AnnotationDeployer implemen
 
         private static final String STRICT_INTERFACE_DECLARATION = "openejb.strict.interface.declaration";
 
-        private static final Method LOOKUP_METHOD = getLookupMethod();
-        
         public AppModule deploy(AppModule appModule) throws OpenEJBException {
             for (EjbModule ejbModule : appModule.getEjbModules()) {
                 setModule(ejbModule);
@@ -2494,7 +2492,7 @@ public class AnnotationDeployer implemen
             ejbRef.setMappedName(mappedName);
             
             // Set lookup name, if any
-            String lookupName = ejb.lookup();
+            String lookupName = getLookupName(ejb);
             if (lookupName.equals("")) {
                 lookupName = null;
             }
@@ -2532,6 +2530,8 @@ public class AnnotationDeployer implemen
             }
         }
 
+
+
         private String normalize(String refName) {
             if (refName.startsWith("java:")) {
                 return refName;
@@ -2757,9 +2757,9 @@ public class AnnotationDeployer implemen
             }
         }
 
-        private static Method getLookupMethod() {
+        private static Method getLookupMethod(Class cls) {
             try {
-                return Resource.class.getMethod("lookup", null);
+                return cls.getMethod("lookup", null);
             } catch (NoSuchMethodException e) {
                 return null;
             }
@@ -2767,16 +2767,32 @@ public class AnnotationDeployer implemen
         
         private static String getLookupName(Resource resource) {
             String value = "";
-            if (LOOKUP_METHOD != null) {
+            Method lookupMethod = getLookupMethod(Resource.class);
+            if (lookupMethod != null) {
                 try {
-                    value = (String) LOOKUP_METHOD.invoke(resource, null);
+                    value = (String) lookupMethod.invoke(resource, null);
                 } catch (Exception e) {
                     // ignore
                 }
             }
             return value;
         }
-        
+
+
+        private static String getLookupName(EJB ejb) {
+            String value = "";
+            Method lookupMethod = getLookupMethod(EJB.class);
+            if (lookupMethod != null) {
+                try {
+                    value = (String) lookupMethod.invoke(ejb, null);
+                } catch (Exception e) {
+                    // ignore
+                }
+            }
+            return value;
+        }
+
+
         /**
          * Process @PersistenceUnit into <persistence-unit> for the specified member (field or method)
          *