[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