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