[jboss-cvs] JBossAS SVN: r109427 - projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Nov 23 07:28:28 EST 2010


Author: jaikiran
Date: 2010-11-23 07:28:27 -0500 (Tue, 23 Nov 2010)
New Revision: 109427

Modified:
   projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractResourceProcessor.java
   projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceClassProcessor.java
   projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceFieldProcessor.java
   projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceMethodProcessor.java
Log:
JBMETA-316 Allow java.lang.Class and Enum types of @Resource to be marked as env-entry

Modified: projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractResourceProcessor.java
===================================================================
--- projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractResourceProcessor.java	2010-11-23 12:20:55 UTC (rev 109426)
+++ projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractResourceProcessor.java	2010-11-23 12:28:27 UTC (rev 109427)
@@ -113,6 +113,9 @@
       envEntryTypes.add("short");
       envEntryTypes.add("float");
       envEntryTypes.add("long");
+      // JBoss specific addition (for java.lang.Class and enum)
+      envEntryTypes.add(Class.class.getName());
+
       serviceRefTypes.add("javax.xml.rpc.Service");
       serviceRefTypes.add("javax.xml.ws.Service");
       serviceRefTypes.add("javax.jws.WebService");
@@ -163,11 +166,15 @@
    {
       boolean trace = log.isTraceEnabled();
       String type = annotation.type().getName();
+      boolean isEnumType = annotation.type().isEnum();
       if(type.equals("java.lang.Object"))
+      {
          type = getType(element);
+         isEnumType = isEnum(element);
+      }
       if(trace)
          log.trace("process: "+annotation+", type="+type);
-      if(isEnvEntry(type))
+      if(isEnvEntry(type) || isEnumType)
       {
          EnvironmentEntriesMetaData env = refs.getEnvironmentEntries();
          if(env == null)
@@ -408,5 +415,6 @@
    {
       return ProcessorUtils.createAnnotationSet(Resource.class);
    }
-   
+ 
+   protected abstract boolean isEnum(E element);
 }

Modified: projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceClassProcessor.java
===================================================================
--- projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceClassProcessor.java	2010-11-23 12:20:55 UTC (rev 109426)
+++ projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceClassProcessor.java	2010-11-23 12:28:27 UTC (rev 109427)
@@ -74,4 +74,9 @@
       return element.getName();
    }
 
+   @Override
+   protected boolean isEnum(Class element)
+   {
+      return element.isEnum();
+   }
 }

Modified: projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceFieldProcessor.java
===================================================================
--- projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceFieldProcessor.java	2010-11-23 12:20:55 UTC (rev 109426)
+++ projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceFieldProcessor.java	2010-11-23 12:28:27 UTC (rev 109427)
@@ -66,4 +66,9 @@
       return element.getDeclaringClass().getName();
    }
 
+   @Override
+   protected boolean isEnum(Field element)
+   {
+      return element.getType().isEnum();
+   }
 }

Modified: projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceMethodProcessor.java
===================================================================
--- projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceMethodProcessor.java	2010-11-23 12:20:55 UTC (rev 109426)
+++ projects/metadata/common/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceMethodProcessor.java	2010-11-23 12:28:27 UTC (rev 109427)
@@ -76,4 +76,13 @@
    {
       return element.getDeclaringClass().getName();
    }
+   
+   @Override
+   protected boolean isEnum(Method element)
+   {
+      if(element.getParameterTypes().length != 1)
+         throw new IllegalStateException("The method requires one parameter: "+ element);
+      
+      return element.getParameterTypes()[0].isEnum();
+   }
 }



More information about the jboss-cvs-commits mailing list