Author: dblevins
Date: Tue Oct  2 09:08:44 2012
New Revision: 1392800

URL: http://svn.apache.org/viewvc?rev=1392800&view=rev
Log:
OPENEJB-1904 - Proposed EJB 3.2 / Java EE 7 Connector & MDB Modernization

Modified:
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/EndpointFactory.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/EndpointFactory.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/EndpointFactory.java?rev=1392800&r1=1392799&r2=1392800&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/EndpointFactory.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/EndpointFactory.java
 Tue Oct  2 09:08:44 2012
@@ -19,6 +19,7 @@ package org.apache.openejb.core.mdb;
 import org.apache.openejb.BeanContext;
 import org.apache.openejb.resource.XAResourceWrapper;
 import org.apache.openejb.core.transaction.TransactionType;
+import org.apache.openejb.util.proxy.LocalBeanProxyFactory;
 
 import javax.resource.spi.UnavailableException;
 import javax.resource.spi.ActivationSpec;
@@ -66,12 +67,14 @@ public class EndpointFactory implements 
         EndpointHandler endpointHandler = new EndpointHandler(container, 
beanContext, instanceFactory, xaResource);
         MessageEndpoint messageEndpoint = null;
         try {
-            messageEndpoint = (MessageEndpoint) 
Proxy.newProxyInstance(classLoader, interfaces, endpointHandler);
+            messageEndpoint = (MessageEndpoint) 
LocalBeanProxyFactory.newProxyInstance(classLoader, endpointHandler, 
beanContext.getBeanClass(), interfaces);
+//            messageEndpoint = (MessageEndpoint) 
Proxy.newProxyInstance(classLoader, interfaces, endpointHandler);
         } catch (IllegalArgumentException e) {
             //try to create the proxy with tccl once again.
             ClassLoader tccl = Thread.currentThread().getContextClassLoader();
             if (tccl != null) {
-                messageEndpoint = (MessageEndpoint) 
Proxy.newProxyInstance(tccl, interfaces, endpointHandler);
+                messageEndpoint = (MessageEndpoint) 
LocalBeanProxyFactory.newProxyInstance(tccl, endpointHandler, 
beanContext.getBeanClass(), interfaces);
+//                messageEndpoint = (MessageEndpoint) 
Proxy.newProxyInstance(tccl, interfaces, endpointHandler);
             } else {
                 throw e;
             }

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java?rev=1392800&r1=1392799&r2=1392800&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java
 Tue Oct  2 09:08:44 2012
@@ -206,6 +206,7 @@ public class MdbContainer implements Rpc
             for (Map.Entry<String, String> entry : 
activationProperties.entrySet()) {
                 objectRecipe.setMethodProperty(entry.getKey(), 
entry.getValue());
             }
+            objectRecipe.setMethodProperty("beanClass", 
beanContext.getBeanClass());
 
             // create the activationSpec
             ActivationSpec activationSpec = (ActivationSpec) 
objectRecipe.create(activationSpecClass.getClassLoader());
@@ -214,6 +215,7 @@ public class MdbContainer implements Rpc
             Set<String> unusedProperties = new 
TreeSet<String>(objectRecipe.getUnsetProperties().keySet());
             unusedProperties.remove("destination");
             unusedProperties.remove("destinationType");
+            unusedProperties.remove("beanClass");
             if (!unusedProperties.isEmpty()) {
                 throw new IllegalArgumentException("No setter found for the 
activation spec properties: " + unusedProperties);
             }


Reply via email to