Author: rmannibucau
Date: Mon Jul 30 14:04:38 2012
New Revision: 1367098

URL: http://svn.apache.org/viewvc?rev=1367098&view=rev
Log:
TOMEE-345 making ejbtimerserviceimpl serializble and some few OWB API fix

Modified:
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java?rev=1367098&r1=1367097&r2=1367098&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java
 Mon Jul 30 14:04:38 2012
@@ -1386,8 +1386,7 @@ public class BeanContext extends Deploym
 
                     // TODO we likely don't want to create a new one each time 
-- investigate the destroy() method
                     try {
-                        OWBInjector interceptorCdiInjector = new 
OWBInjector(webBeansContext);
-                        interceptorCdiInjector.inject(interceptorInstance, 
creationalContext);
+                        
OWBInjector.inject(webBeansContext.getBeanManagerImpl(), interceptorInstance, 
creationalContext);
                     } catch (Throwable t) {
                         // TODO handle this differently
                         // this is temporary till the injector can be rewritten

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java?rev=1367098&r1=1367097&r2=1367098&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
 Mon Jul 30 14:04:38 2012
@@ -161,8 +161,7 @@ public class OpenEjbContainer extends EJ
         final ThreadContext callContext = new ThreadContext(context, null, 
Operation.INJECTION);
         final ThreadContext oldContext = ThreadContext.enter(callContext);
         try {
-            final OWBInjector beanInjector = new OWBInjector(webBeanContext);
-            beanInjector.inject(object);
+            OWBInjector.inject(webBeanContext.getBeanManagerImpl(), object, 
null);
         } catch (Throwable t) {
             logger.warning("an error occured while injecting the class '" + 
clazz.getName() + "': " + t.getMessage());
             // TODO handle this differently

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java?rev=1367098&r1=1367097&r2=1367098&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java
 Mon Jul 30 14:04:38 2012
@@ -24,6 +24,7 @@ import org.apache.openejb.RpcContainer;
 import org.apache.openejb.core.BaseContext;
 import org.apache.openejb.core.transaction.TransactionType;
 import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.spi.ContainerSystem;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.SetAccessible;
@@ -51,6 +52,10 @@ import javax.ejb.EJBException;
 import javax.ejb.ScheduleExpression;
 import javax.ejb.Timer;
 import javax.ejb.TimerConfig;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+import java.io.ObjectInputStream;
+import java.io.Serializable;
 import javax.transaction.Status;
 import javax.transaction.SystemException;
 import javax.transaction.TransactionManager;
@@ -66,7 +71,7 @@ import java.util.Properties;
 import java.util.Set;
 
 
-public class EjbTimerServiceImpl implements EjbTimerService {
+public class EjbTimerServiceImpl implements EjbTimerService, Serializable {
     private static final Logger log = Logger.getInstance(LogCategory.TIMER, 
"org.apache.openejb.util.resources");
 
     public static final String QUARTZ_THREAD_POOL_ADAPTER = 
"openejb.org.quartz.threadPool.class";
@@ -74,14 +79,13 @@ public class EjbTimerServiceImpl impleme
     public static final String OPENEJB_TIMEOUT_JOB_NAME = 
"OPENEJB_TIMEOUT_JOB";
     public static final String OPENEJB_TIMEOUT_JOB_GROUP_NAME = 
"OPENEJB_TIMEOUT_GROUP";
 
-    private final TransactionManager transactionManager;
-    final BeanContext deployment;
-    private final boolean transacted;
-    private final int retryAttempts;
+    private boolean transacted;
+    private int retryAttempts;
 
-    private final TimerStore timerStore;
-
-    private Scheduler scheduler;
+    private transient TransactionManager transactionManager;
+    private transient BeanContext deployment;
+    private transient TimerStore timerStore;
+    private transient Scheduler scheduler;
 
     public EjbTimerServiceImpl(BeanContext deployment) {
         this(deployment, getDefaultTransactionManager(), 
getDefaultScheduler(deployment), new 
MemoryTimerStore(getDefaultTransactionManager()), 1);
@@ -101,6 +105,23 @@ public class EjbTimerServiceImpl impleme
         this.retryAttempts = retryAttempts;
     }
 
+       private void writeObject(final ObjectOutputStream out) throws 
IOException {
+        out.writeUTF(deployment.getDeploymentID().toString());
+        out.writeBoolean(transacted);
+        out.writeInt(retryAttempts);
+    }
+
+    private void readObject(final ObjectInputStream in) throws IOException {
+        final String dId = in.readUTF();
+        transacted = in.readBoolean();
+        retryAttempts = in.readInt();
+
+        deployment = 
SystemInstance.get().getComponent(ContainerSystem.class).getBeanContext(dId);
+        transactionManager = getDefaultTransactionManager();
+        timerStore = new MemoryTimerStore(transactionManager); // TODO: check 
it should be serialized or not
+        scheduler = getDefaultScheduler(deployment);
+    }
+
     public static synchronized Scheduler getDefaultScheduler(BeanContext 
deployment) {
         final Properties properties = new Properties();
         properties.put(StdSchedulerFactory.PROP_THREAD_POOL_CLASS, 
SystemInstance.get().hasProperty(QUARTZ_THREAD_POOL_ADAPTER) ? 
SystemInstance.get().getOptions().get(QUARTZ_THREAD_POOL_ADAPTER, "")

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java?rev=1367098&r1=1367097&r2=1367098&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java
 Mon Jul 30 14:04:38 2012
@@ -323,8 +323,7 @@ public class ApplicationComposer extends
 //                        load("sun.security.pkcs11.SunPKCS11$Descriptor");
 //                        load("sun.security.pkcs11.wrapper.PKCS11Exception");
                         try {
-                            OWBInjector beanInjector = new 
OWBInjector(appContext.getWebBeansContext());
-                            beanInjector.inject(testInstance);
+                            OWBInjector.inject(appContext.getBeanManager(), 
testInstance, null);
                         } catch (Throwable t) {
                             // TODO handle this differently
                             // this is temporary till the injector can be 
rewritten


Reply via email to