You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by ga...@apache.org on 2010/08/10 21:22:16 UTC
svn commit: r984176 -
/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
Author: gawor
Date: Tue Aug 10 19:22:15 2010
New Revision: 984176
URL: http://svn.apache.org/viewvc?rev=984176&view=rev
Log:
OPENEJB-1326: Use reflection to get value of lookup attribute of Resource annotation
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=984176&r1=984175&r2=984176&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 Tue Aug 10 19:22:15 2010
@@ -649,6 +649,8 @@ 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);
@@ -2728,8 +2730,35 @@ public class AnnotationDeployer implemen
reference.setMappedName(resource.mappedName());
}
+ // Override the lookup name if not set
+ if (reference.getLookupName() == null) {
+ String lookupName = getLookupName(resource);
+ if (!lookupName.equals("")) {
+ reference.setLookupName(lookupName);
+ }
+ }
}
+ private static Method getLookupMethod() {
+ try {
+ return Resource.class.getMethod("lookup", null);
+ } catch (NoSuchMethodException e) {
+ return null;
+ }
+ }
+
+ private static String getLookupName(Resource resource) {
+ String value = "";
+ if (LOOKUP_METHOD != null) {
+ try {
+ value = (String) LOOKUP_METHOD.invoke(resource, null);
+ } catch (Exception e) {
+ // ignore
+ }
+ }
+ return value;
+ }
+
/**
* Process @PersistenceUnit into <persistence-unit> for the specified member (field or method)
*