You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2007/03/17 22:56:44 UTC
svn commit: r519454 - in
/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb:
assembler/classic/ config/ core/interceptor/
Author: dblevins
Date: Sat Mar 17 14:56:44 2007
New Revision: 519454
URL: http://svn.apache.org/viewvc?view=rev&rev=519454
Log:
Process @Resource for SessionContext. Support for private and inherited callbacks.
Modified:
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/InterceptorBindingBuilder.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/interceptor/ReflectionInvocationContext.java
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/InterceptorBindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/InterceptorBindingBuilder.java?view=diff&rev=519454&r1=519453&r2=519454
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/InterceptorBindingBuilder.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/InterceptorBindingBuilder.java Sat Mar 17 14:56:44 2007
@@ -130,12 +130,21 @@
private void toCallback(Class clazz, List<CallbackInfo> callbackInfos, List<Method> methods) {
for (CallbackInfo callbackInfo : callbackInfos) {
try {
- Method method = clazz.getMethod(callbackInfo.method);
+ Method method = getMethod(clazz, callbackInfo.method);
+ if (callbackInfo.className == null && method.getDeclaringClass().equals(clazz)){
+ methods.add(method);
+ }
+ if (method.getDeclaringClass().getName().equals(callbackInfo.className)){
+ methods.add(method);
+ }
methods.add(method);
} catch (NoSuchMethodException e) {
- logger.warning("Bean Callback method not found (skipping): public void " + callbackInfo.method + "(); in class " + clazz.getName());
+ String message = "Bean Callback method not found (skipping): public void " + callbackInfo.method + "(); in class " + clazz.getName();
+ logger.warning(message);
+ throw new IllegalStateException(message, e);
}
}
+ Collections.sort(methods, new MethodCallbackComparator());
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java?view=diff&rev=519454&r1=519453&r2=519454
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java Sat Mar 17 14:56:44 2007
@@ -259,14 +259,15 @@
for (ResourceEnvReferenceInfo referenceInfo : jndiEnc.resourceEnvRefs) {
LinkRef linkRef = null;
try {
- if (EJBContext.class.isAssignableFrom(Class.forName(referenceInfo.resourceEnvRefType))) {
+ Class<?> type = Class.forName(referenceInfo.resourceEnvRefType, true, EJBContext.class.getClassLoader());
+ if (EJBContext.class.isAssignableFrom(type)) {
String jndiName = "java:comp/EJBContext";
linkRef = new LinkRef(jndiName);
bindings.put(normalize(referenceInfo.resourceEnvRefName), linkRef);
continue;
}
} catch (ClassNotFoundException e) {
- throw new OpenEJBException(e);
+// throw new OpenEJBException(e);
}
if (referenceInfo.location != null){
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?view=diff&rev=519454&r1=519453&r2=519454
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java Sat Mar 17 14:56:44 2007
@@ -45,6 +45,7 @@
import javax.ejb.TransactionManagementType;
import javax.ejb.Init;
import javax.ejb.Remove;
+import javax.ejb.EJBContext;
import javax.persistence.PersistenceContext;
import javax.persistence.PersistenceContexts;
import javax.persistence.PersistenceProperty;
@@ -858,8 +859,13 @@
String[] knownConnectionFactoryTypes = {"javax.sql.DataSource","javax.jms.ConnectionFactory","javax.jms.QueueConnectionFactory","javax.jms.TopicConnectionFactory","javax.mail.Session","java.net.URL"};
String[] knownEnvironmentEntries = {"java.lang.String", "java.lang.Character", "java.lang.Integer", "java.lang.Boolean", "java.lang.Double",
"java.lang.Byte", "java.lang.Short", "java.lang.Long", "java.lang.Float","int","char","boolean","double","byte","short","long","float"};
-
- if(contains(knownConnectionFactoryTypes,type)) {
+ if (type.equals("javax.ejb.SessionContext")){
+ ResourceEnvRef ref = new ResourceEnvRef();
+ ref.setResourceEnvRefName(refName);
+ ref.setResourceEnvRefType(type);
+ consumer.getResourceEnvRef().add(ref);
+ reference = ref;
+ } else if (contains(knownConnectionFactoryTypes,type)) {
ResourceRef resourceRef = null;
List<ResourceRef> resourceRefs = consumer.getResourceRef();
for (ResourceRef resRef : resourceRefs) {
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/interceptor/ReflectionInvocationContext.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/interceptor/ReflectionInvocationContext.java?view=diff&rev=519454&r1=519453&r2=519454
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/interceptor/ReflectionInvocationContext.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/interceptor/ReflectionInvocationContext.java Sat Mar 17 14:56:44 2007
@@ -137,7 +137,7 @@
}
public String toString() {
- return method.getDeclaringClass() + "." + method.getName();
+ return method.getDeclaringClass().getName() + "." + method.getName();
}
}
@@ -171,5 +171,11 @@
} else {
throw new AssertionError(cause);
}
+ }
+
+ public String toString() {
+ String methodName = (method != null)? method.getName(): null;
+
+ return "InvocationContext(target="+target.getClass().getName()+", method="+methodName+")";
}
}