Author: dblevins
Date: Thu Jan 26 19:35:28 2012
New Revision: 1236361
URL: http://svn.apache.org/viewvc?rev=1236361&view=rev
Log:
Make the EntityManager serializable
OPENEJB-1759
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManager.java
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManager.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManager.java?rev=1236361&r1=1236360&r2=1236361&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManager.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManager.java
Thu Jan 26 19:35:28 2012
@@ -18,6 +18,7 @@ package org.apache.openejb.persistence;
import org.apache.openejb.BeanContext;
import org.apache.openejb.core.ThreadContext;
+import org.apache.openejb.core.ivm.IntraVmArtifact;
import org.apache.openejb.util.LogCategory;
import org.apache.openejb.util.Logger;
@@ -32,6 +33,8 @@ import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.metamodel.Metamodel;
+import java.io.ObjectStreamException;
+import java.io.Serializable;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@@ -47,7 +50,7 @@ import java.util.concurrent.TimeUnit;
* component is entered and removes them when exited. If this registration is
not preformed, an IllegalStateException will
* be thrown when entity manger is accessed.
*/
-public class JtaEntityManager implements EntityManager {
+public class JtaEntityManager implements EntityManager, Serializable {
private static final Logger baseLogger =
Logger.getInstance(LogCategory.OPENEJB.createChild("persistence"),
JtaEntityManager.class);
@@ -610,4 +613,9 @@ public class JtaEntityManager implements
return new Timer(this, em);
}
}
+
+
+ protected Object writeReplace() throws ObjectStreamException {
+ return new IntraVmArtifact(this, true);
+ }
}