You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by yi...@apache.org on 2010/09/07 22:19:08 UTC
svn commit: r993516 - in /openwebbeans/trunk:
webbeans-impl/src/main/java/org/apache/webbeans/proxy/ResourceProxyHandler.java
webbeans-web/src/main/java/org/apache/webbeans/web/failover/DefaultOwbFailOverService.java
Author: yingwang
Date: Tue Sep 7 20:19:07 2010
New Revision: 993516
URL: http://svn.apache.org/viewvc?rev=993516&view=rev
Log:
[owb-448] @ejb passivation support
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ResourceProxyHandler.java
openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/failover/DefaultOwbFailOverService.java
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ResourceProxyHandler.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ResourceProxyHandler.java?rev=993516&r1=993515&r2=993516&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ResourceProxyHandler.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ResourceProxyHandler.java Tue Sep 7 20:19:07 2010
@@ -18,14 +18,24 @@
*/
package org.apache.webbeans.proxy;
+import java.io.IOException;
+import java.io.Serializable;
+import java.io.Externalizable;
+import java.io.ObjectOutput;
+import java.io.ObjectInput;
import java.lang.reflect.Method;
import javassist.util.proxy.MethodHandler;
-public class ResourceProxyHandler implements MethodHandler
+public class ResourceProxyHandler implements MethodHandler, Serializable, Externalizable
{
private Object actualResource = null;
+ //DO NOT REMOVE, used by failover and passivation.
+ public ResourceProxyHandler()
+ {
+ }
+
public ResourceProxyHandler(Object actualResource)
{
this.actualResource = actualResource;
@@ -37,4 +47,34 @@ public class ResourceProxyHandler implem
return actualMethod.invoke(this.actualResource, args);
}
+ @Override
+ public void writeExternal(ObjectOutput out) throws IOException
+ {
+ if (actualResource instanceof javax.rmi.CORBA.Stub)
+ {
+ out.writeObject(actualResource);
+ }
+ else
+ {
+ //TODO: for other type of resources, I am planning to add some
+ // custom property to control whether owb should (de)serialize
+ // the object directly or grab a new instance from resource
+ // service (on the other jvm.).
+ out.writeObject(null);
+ }
+ }
+
+ @Override
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException
+ {
+ Object obj = in.readObject();
+ if (obj != null && obj instanceof javax.rmi.CORBA.Stub)
+ {
+ actualResource = obj;
+ org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(new String[0], null);
+ ((javax.rmi.CORBA.Stub)actualResource).connect(orb);
+ }
+ }
+
}
Modified: openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/failover/DefaultOwbFailOverService.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/failover/DefaultOwbFailOverService.java?rev=993516&r1=993515&r2=993516&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/failover/DefaultOwbFailOverService.java (original)
+++ openwebbeans/trunk/webbeans-web/src/main/java/org/apache/webbeans/web/failover/DefaultOwbFailOverService.java Tue Sep 7 20:19:07 2010
@@ -28,6 +28,7 @@ import javax.servlet.http.HttpSession;
import org.apache.webbeans.config.OpenWebBeansConfiguration;
import org.apache.webbeans.logger.WebBeansLogger;
import org.apache.webbeans.spi.FailOverService;
+import org.apache.webbeans.util.WebBeansUtil;
public class DefaultOwbFailOverService implements FailOverService
{
@@ -67,6 +68,11 @@ public class DefaultOwbFailOverService i
{
isSupportPassivation = true;
}
+ if (isSupportFailOver || isSupportPassivation)
+ {
+ WebBeansUtil.initProxyFactoryClassLoaderProvider();
+ }
+
if (logger.wblWillLogDebug())
{
logger.debug("DefaultOwbFailOverService isSupportFailOver: [{0}]", String.valueOf(isSupportFailOver));