You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by st...@apache.org on 2013/01/06 11:04:23 UTC
svn commit: r1429490 -
/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/AbstractProxyFactory.java
Author: struberg
Date: Sun Jan 6 10:04:22 2013
New Revision: 1429490
URL: http://svn.apache.org/viewvc?rev=1429490&view=rev
Log:
OWB-344 add passivationId field to our proxies
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/AbstractProxyFactory.java
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/AbstractProxyFactory.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/AbstractProxyFactory.java?rev=1429490&r1=1429489&r2=1429490&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/AbstractProxyFactory.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/AbstractProxyFactory.java Sun Jan 6 10:04:22 2013
@@ -33,8 +33,14 @@ import org.objectweb.asm.Type;
public abstract class AbstractProxyFactory
{
/**
+ * The name of the field which stores the passivationID of the Bean this proxy serves.
+ * This is needed in case the proxy gets de-serialized back into a JVM
+ * which didn't have this bean loaded yet.
+ */
+ public static final String FIELD_BEAN_PASSIVATION_ID = "owbBeanPassivationId";
+
+ /**
* @return the marker interface which should be used for this proxy.
- * TODO this must be a list and for NormalScopeProxy we need add Serializable
*/
protected abstract Class getMarkerInterface();
@@ -103,6 +109,11 @@ public abstract class AbstractProxyFacto
createInstanceVariables(cw, classToProxy, classFileName);
+
+ // create a static String Field which contains the passivationId of the Bean or null if not PassivationCapable
+ cw.visitField(Opcodes.ACC_PRIVATE | Opcodes.ACC_STATIC,
+ FIELD_BEAN_PASSIVATION_ID, Type.getDescriptor(String.class), null, null).visitEnd();
+
createConstructor(cw, proxyClassFileName, classToProxy, classFileName);