[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