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