Index: core/src/main/java/org/jboss/ejb3/session/SessionContainerInvocation.java
===================================================================
--- core/src/main/java/org/jboss/ejb3/session/SessionContainerInvocation.java (revision 106230)
+++ core/src/main/java/org/jboss/ejb3/session/SessionContainerInvocation.java (working copy)
@@ -24,15 +24,15 @@
import org.jboss.aop.MethodInfo;
import org.jboss.ejb3.BeanContext;
import org.jboss.ejb3.EJBContainerInvocation;
-import org.jboss.ejb3.context.spi.SessionInvocationContext;
import org.jboss.ejb3.core.context.SessionInvocationContextAdapter;
+import org.jboss.ejb3.tx2.spi.TransactionalInvocationContext;
/**
* @author Carlo de Wolf
*/
public class SessionContainerInvocation> extends EJBContainerInvocation
{
- private SessionInvocationContext invocationContext;
+ private SessionInvocationContextAdapter invocationContext;
public SessionContainerInvocation(Class> invokedBusinessInterface, MethodInfo info)
{
@@ -40,7 +40,7 @@
this.invocationContext = new SessionInvocationContextAdapter(invokedBusinessInterface, this);
}
- public SessionInvocationContext getInvocationContext()
+ public TransactionalInvocationContext getInvocationContext()
{
return invocationContext;
}
Index: core/src/main/java/org/jboss/ejb3/stateful/StatefulContainerInvocation.java
===================================================================
--- core/src/main/java/org/jboss/ejb3/stateful/StatefulContainerInvocation.java (revision 106230)
+++ core/src/main/java/org/jboss/ejb3/stateful/StatefulContainerInvocation.java (working copy)
@@ -26,12 +26,10 @@
import org.jboss.aop.advice.Interceptor;
import org.jboss.aop.joinpoint.Invocation;
import org.jboss.ejb3.EJBContainerInvocation;
-import org.jboss.ejb3.context.base.BaseSessionInvocationContext;
-import org.jboss.ejb3.context.spi.InvocationContext;
-import org.jboss.ejb3.context.spi.SessionInvocationContext;
import org.jboss.ejb3.core.context.EJBInvocation;
import org.jboss.ejb3.core.context.SessionInvocationContextAdapter;
import org.jboss.ejb3.interceptors.container.BeanContext;
+import org.jboss.ejb3.tx2.spi.TransactionalInvocationContext;
import java.lang.reflect.Method;
@@ -47,7 +45,7 @@
private static final long serialVersionUID = -7636489066612082373L;
private Object id;
- private SessionInvocationContext invocationContext;
+ private SessionInvocationContextAdapter invocationContext;
public StatefulContainerInvocation(Interceptor[] interceptors, long methodHash, Method advisedMethod, Method unadvisedMethod, Advisor advisor, Object id, Class> invokedBusinessInterface)
{
@@ -83,7 +81,7 @@
return wrapper;
}
- public InvocationContext getInvocationContext()
+ public TransactionalInvocationContext getInvocationContext()
{
return invocationContext;
}
Index: core/src/main/java/org/jboss/ejb3/EJBContainerInvocation.java
===================================================================
--- core/src/main/java/org/jboss/ejb3/EJBContainerInvocation.java (revision 106230)
+++ core/src/main/java/org/jboss/ejb3/EJBContainerInvocation.java (working copy)
@@ -35,7 +35,7 @@
* @version $Revision$
*/
public abstract class EJBContainerInvocation> extends ContainerMethodInvocation
- implements org.jboss.ejb3.core.context.EJBInvocation
+ implements org.jboss.ejb3.core.context.EJBInvocation, org.jboss.ejb3.tx2.aop.EJBInvocation
{
private static final long serialVersionUID = 4941832732679380382L;
Index: core/src/main/java/org/jboss/ejb3/core/context/InvocationContextAdapter.java
===================================================================
--- core/src/main/java/org/jboss/ejb3/core/context/InvocationContextAdapter.java (revision 106230)
+++ core/src/main/java/org/jboss/ejb3/core/context/InvocationContextAdapter.java (working copy)
@@ -23,11 +23,16 @@
import org.jboss.aop.joinpoint.MethodInvocation;
import org.jboss.ejb3.context.base.BaseInvocationContext;
+import org.jboss.ejb3.tx2.spi.TransactionalInvocationContext;
+import javax.ejb.ApplicationException;
+import javax.ejb.TransactionAttributeType;
+
/**
* @author Carlo de Wolf
*/
public class InvocationContextAdapter extends BaseInvocationContext
+ implements TransactionalInvocationContext
{
private MethodInvocation delegate;
@@ -38,6 +43,24 @@
}
@Override
+ public ApplicationException getApplicationException(Class> e)
+ {
+ return TxUtil.getApplicationException(e, delegate);
+ }
+
+ @Override
+ public TransactionAttributeType getTransactionAttribute()
+ {
+ return TxUtil.getTxType(delegate);
+ }
+
+ @Override
+ public int getTransactionTimeout()
+ {
+ return TxUtil.getTransactionTimeout(delegate);
+ }
+
+ @Override
public Object proceed() throws Exception
{
try
Index: core/src/main/java/org/jboss/ejb3/core/context/SessionInvocationContextAdapter.java
===================================================================
--- core/src/main/java/org/jboss/ejb3/core/context/SessionInvocationContextAdapter.java (revision 106230)
+++ core/src/main/java/org/jboss/ejb3/core/context/SessionInvocationContextAdapter.java (working copy)
@@ -23,11 +23,16 @@
import org.jboss.aop.joinpoint.MethodInvocation;
import org.jboss.ejb3.context.base.BaseSessionInvocationContext;
+import org.jboss.ejb3.tx2.spi.TransactionalInvocationContext;
+import javax.ejb.ApplicationException;
+import javax.ejb.TransactionAttributeType;
+
/**
* @author Carlo de Wolf
*/
public class SessionInvocationContextAdapter extends BaseSessionInvocationContext
+ implements TransactionalInvocationContext
{
private MethodInvocation delegate;
@@ -38,6 +43,24 @@
}
@Override
+ public ApplicationException getApplicationException(Class> e)
+ {
+ return TxUtil.getApplicationException(e, delegate);
+ }
+
+ @Override
+ public TransactionAttributeType getTransactionAttribute()
+ {
+ return TxUtil.getTxType(delegate);
+ }
+
+ @Override
+ public int getTransactionTimeout()
+ {
+ return TxUtil.getTransactionTimeout(delegate);
+ }
+
+ @Override
public Object proceed() throws Exception
{
try
Index: core/src/main/java/org/jboss/ejb3/core/context/TxUtil.java
===================================================================
--- core/src/main/java/org/jboss/ejb3/core/context/TxUtil.java (revision 0)
+++ core/src/main/java/org/jboss/ejb3/core/context/TxUtil.java (revision 0)
@@ -0,0 +1,65 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright (c) 2010, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ejb3.core.context;
+
+import org.jboss.aop.Advisor;
+import org.jboss.aop.joinpoint.MethodInvocation;
+import org.jboss.ejb3.annotation.TransactionTimeout;
+
+import javax.ejb.TransactionAttributeType;
+import java.lang.reflect.Method;
+
+/**
+ * @author Carlo de Wolf
+ */
+public class TxUtil extends org.jboss.ejb3.tx.TxUtil
+{
+ protected static int getTransactionTimeout(MethodInvocation invocation)
+ {
+ return getTransactionTimeout(invocation.getAdvisor(), invocation.getActualMethod());
+ }
+
+ protected static int getTransactionTimeout(Advisor advisor, Method method)
+ {
+ TransactionTimeout annotation = (TransactionTimeout)advisor.resolveAnnotation(method, TransactionTimeout.class);
+
+ if (annotation == null)
+ annotation = (TransactionTimeout)advisor.resolveAnnotation(TransactionTimeout.class);
+
+ if (annotation != null)
+ {
+ return annotation.value();
+ }
+
+ return -1;
+ }
+
+ protected static TransactionAttributeType getTxType(MethodInvocation invocation)
+ {
+ return getTxType(invocation.getAdvisor(), invocation.getActualMethod());
+ }
+
+ protected static TransactionAttributeType getTxType(Advisor advisor, Method method)
+ {
+ return org.jboss.ejb3.tx.TxUtil.getTxType(advisor, method);
+ }
+}
Index: core/src/main/java/org/jboss/ejb3/mdb/MessageContainerInvocation.java
===================================================================
--- core/src/main/java/org/jboss/ejb3/mdb/MessageContainerInvocation.java (revision 106230)
+++ core/src/main/java/org/jboss/ejb3/mdb/MessageContainerInvocation.java (working copy)
@@ -24,8 +24,8 @@
import org.jboss.aop.MethodInfo;
import org.jboss.ejb3.BeanContext;
import org.jboss.ejb3.EJBContainerInvocation;
-import org.jboss.ejb3.context.spi.InvocationContext;
import org.jboss.ejb3.core.context.InvocationContextAdapter;
+import org.jboss.ejb3.tx2.spi.TransactionalInvocationContext;
/**
* @author Carlo de Wolf
@@ -40,7 +40,7 @@
this.invocationContext = new InvocationContextAdapter(this);
}
- public InvocationContext getInvocationContext()
+ public TransactionalInvocationContext getInvocationContext()
{
return invocationContext;
}
Index: core/src/main/resources/ejb3-interceptors-aop.xml
===================================================================
--- core/src/main/resources/ejb3-interceptors-aop.xml (revision 106230)
+++ core/src/main/resources/ejb3-interceptors-aop.xml (working copy)
@@ -61,7 +61,7 @@
-
+
@@ -166,7 +166,7 @@
-
+
@@ -195,7 +195,7 @@
-
+
@@ -232,7 +232,7 @@
-
+
@@ -302,7 +302,7 @@
-
+
@@ -364,7 +364,7 @@
-
+
@@ -382,7 +382,7 @@
-
+
@@ -407,7 +407,7 @@
@@ -426,7 +426,7 @@
-
+
@@ -452,7 +452,7 @@
-
+
Index: core/pom.xml
===================================================================
--- core/pom.xml (revision 106230)
+++ core/pom.xml (working copy)
@@ -17,7 +17,7 @@
jboss-ejb3-core
jar
- 1.4.3-SNAPSHOT
+ 1.5.0-SNAPSHOT
JBoss EJB 3.0 Core
http://labs.jboss.com/jbossejb3
JBoss EJB 3.0 Core
@@ -45,6 +45,7 @@
5.1.0.GA
2.0.3.SP1
1.0.0-alpha-2
+ 0.0.1-SNAPSHOT
2.1.1
@@ -493,6 +494,12 @@
+ org.jboss.ejb3.tx2
+ jboss-ejb3-tx2-aop
+ ${version.org.jboss.ejb3.tx2}
+
+
+
org.jboss.ejb3.vfs
jboss-ejb3-vfs-spi
1.0.0-alpha-1