[jboss-cvs] jboss-seam/src/main/org/jboss/seam/util ...
Gavin King
gavin.king at jboss.com
Tue Oct 31 20:52:09 EST 2006
User: gavin
Date: 06/10/31 20:52:09
Modified: src/main/org/jboss/seam/util Reflections.java
Transactions.java
Added: src/main/org/jboss/seam/util EJB.java
Log:
insulate core from EJB dependencies JBSEAM-414
Revision Changes Path
1.15 +14 -1 jboss-seam/src/main/org/jboss/seam/util/Reflections.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Reflections.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/util/Reflections.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- Reflections.java 19 Oct 2006 20:08:48 -0000 1.14
+++ Reflections.java 1 Nov 2006 01:52:09 -0000 1.15
@@ -1,7 +1,8 @@
-//$Id: Reflections.java,v 1.14 2006/10/19 20:08:48 gavin Exp $
+//$Id: Reflections.java,v 1.15 2006/11/01 01:52:09 gavin Exp $
package org.jboss.seam.util;
import java.beans.Introspector;
+import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
@@ -208,4 +209,16 @@
throw new IllegalArgumentException("no such field: " + clazz.getName() + '.' + name);
}
+ public static Method getMethod(Annotation annotation, String name)
+ {
+ try
+ {
+ return annotation.annotationType().getMethod(name);
+ }
+ catch (NoSuchMethodException nsme)
+ {
+ return null;
+ }
+ }
+
}
1.16 +2 -10 jboss-seam/src/main/org/jboss/seam/util/Transactions.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Transactions.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/util/Transactions.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- Transactions.java 10 Jun 2006 16:59:57 -0000 1.15
+++ Transactions.java 1 Nov 2006 01:52:09 -0000 1.16
@@ -1,7 +1,6 @@
-//$Id: Transactions.java,v 1.15 2006/06/10 16:59:57 gavin Exp $
+//$Id: Transactions.java,v 1.16 2006/11/01 01:52:09 gavin Exp $
package org.jboss.seam.util;
-import javax.ejb.EJBContext;
import javax.naming.NameNotFoundException;
import javax.naming.NamingException;
import javax.transaction.RollbackException;
@@ -13,8 +12,6 @@
public class Transactions
{
- public static final String EJBCONTEXT_NAME = "java:comp.ejb3/EJBContext";
-
private static String userTransactionName = "UserTransaction";
private static final String STANDARD_USER_TRANSACTION_NAME = "java:comp/UserTransaction";
@@ -53,11 +50,6 @@
}
}
- public static EJBContext getEJBContext() throws NamingException
- {
- return (EJBContext) Naming.getInitialContext().lookup(EJBCONTEXT_NAME);
- }
-
public static void setUserTransactionRollbackOnly() throws SystemException, NamingException {
UserTransaction userTransaction = getUserTransaction();
if ( userTransaction.getStatus()!=Status.STATUS_NO_TRANSACTION )
1.1 date: 2006/11/01 01:52:09; author: gavin; state: Exp;jboss-seam/src/main/org/jboss/seam/util/EJB.java
Index: EJB.java
===================================================================
package org.jboss.seam.util;
import java.lang.annotation.Annotation;
import javax.ejb.EJBContext;
import javax.naming.NamingException;
public class EJB
{
public static final String EJBCONTEXT_NAME = "java:comp.ejb3/EJBContext";
public @interface Dummy {}
public static final Class<Annotation> STATELESS;
public static final Class<Annotation> STATEFUL;
public static final Class<Annotation> MESSAGE_DRIVEN;
public static final Class<Annotation> PRE_PASSIVATE;
public static final Class<Annotation> POST_ACTIVATE;
public static final Class<Annotation> PRE_DESTROY;
public static final Class<Annotation> POST_CONSTRUCT;
public static final Class<Annotation> REMOTE;
public static final Class<Annotation> REMOVE;
public static final Class<Annotation> LOCAL;
public static final Class<Annotation> APPLICATION_EXCEPTION;
private static Class classForName(String name)
{
try
{
return Reflections.classForName(name);
}
catch (ClassNotFoundException cnfe)
{
return Dummy.class;
}
}
static {
STATELESS = classForName("javax.ejb.Stateless");
STATEFUL = classForName("javax.ejb.Stateful");
MESSAGE_DRIVEN = classForName("javax.ejb.MessageDriven");
PRE_PASSIVATE = classForName("javax.ejb.PrePassivate");
POST_ACTIVATE = classForName("javax.ejb.PostActivate");
PRE_DESTROY = classForName("javax.ejb.PreDestroy");
POST_CONSTRUCT = classForName("javax.ejb.PostConstruct");
REMOTE = classForName("javax.ejb.Remote");
REMOVE = classForName("javax.ejb.Remove");
LOCAL = classForName("javax.ejb.Local");
APPLICATION_EXCEPTION = classForName("javax.ejb.ApplicationException");
}
public static String name(Annotation annotation)
{
return (String) Reflections.invokeAndWrap( Reflections.getMethod(annotation, "name"), annotation );
}
public static Class[] value(Annotation annotation)
{
return (Class[]) Reflections.invokeAndWrap( Reflections.getMethod(annotation, "value"), annotation );
}
public static boolean rollback(Annotation annotation)
{
return (Boolean) Reflections.invokeAndWrap( Reflections.getMethod(annotation, "rollback"), annotation );
}
public static EJBContext getEJBContext() throws NamingException
{
return (EJBContext) Naming.getInitialContext().lookup(EJBCONTEXT_NAME);
}
}
More information about the jboss-cvs-commits
mailing list