- Add resource injection for all annotations that are supposed to be supported by...
authorremm <remm@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 12 Apr 2006 13:32:02 +0000 (13:32 +0000)
committerremm <remm@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 12 Apr 2006 13:32:02 +0000 (13:32 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@393457 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/catalina/startup/WebAnnotationSet.java
java/org/apache/catalina/util/AnnotationProcessor.java

index 8ed63de..882b606 100644 (file)
@@ -33,9 +33,6 @@ import org.apache.catalina.deploy.ContextService;
 import org.apache.catalina.deploy.FilterDef;\r
 import org.apache.catalina.deploy.MessageDestinationRef;\r
 \r
-//import javax.ejb.EJB;\r
-//import javax.xml.ws.WebServiceRef;\r
-\r
 /**\r
  * <p><strong>AnnotationSet</strong> for processing the annotations of the web application\r
  * classes (<code>/WEB-INF/classes</code> and <code>/WEB-INF/lib</code>).</p>\r
index 05e4f6a..a7426c9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
- * Copyright 1999,2004 The Apache Software Foundation.\r
+ * Copyright 2006 The Apache Software Foundation.\r
  * \r
  * Licensed under the Apache License, Version 2.0 (the "License");\r
  * you may not use this file except in compliance with the License.\r
@@ -21,9 +21,13 @@ import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;\r
 import java.lang.reflect.Modifier;\r
 \r
+import javax.annotation.EJB;\r
 import javax.annotation.PostConstruct;\r
 import javax.annotation.Resource;\r
 import javax.naming.NamingException;\r
+import javax.persistence.PersistenceContext;\r
+import javax.persistence.PersistenceUnit;\r
+import javax.xml.ws.WebServiceRef;\r
 \r
 import org.apache.tomcat.util.IntrospectionUtils;\r
 \r
@@ -116,18 +120,25 @@ public class AnnotationProcessor {
                 Resource annotation = (Resource) fields[i].getAnnotation(Resource.class);\r
                 lookupFieldResource(context, instance, fields[i], annotation.name());\r
             }\r
-            /*\r
             if (fields[i].isAnnotationPresent(EJB.class)) {\r
                 EJB annotation = (EJB) fields[i].getAnnotation(EJB.class);\r
-                lookupOnFieldResource(context, instance, fields[i], annotation.name());\r
+                lookupFieldResource(context, instance, fields[i], annotation.name());\r
             }\r
-            \r
             if (fields[i].isAnnotationPresent(WebServiceRef.class)) {\r
                 WebServiceRef annotation = \r
                     (WebServiceRef) fields[i].getAnnotation(WebServiceRef.class);\r
-                lookupOnFieldResource(context, instance, fields[i], annotation.name());\r
+                lookupFieldResource(context, instance, fields[i], annotation.name());\r
+            }\r
+            if (fields[i].isAnnotationPresent(PersistenceContext.class)) {\r
+                PersistenceContext annotation = \r
+                    (PersistenceContext) fields[i].getAnnotation(PersistenceContext.class);\r
+                lookupFieldResource(context, instance, fields[i], annotation.name());\r
+            }\r
+            if (fields[i].isAnnotationPresent(PersistenceUnit.class)) {\r
+                PersistenceUnit annotation = \r
+                    (PersistenceUnit) fields[i].getAnnotation(PersistenceUnit.class);\r
+                lookupFieldResource(context, instance, fields[i], annotation.name());\r
             }\r
-            */\r
         }\r
         \r
         // Initialize methods annotations\r
@@ -137,18 +148,26 @@ public class AnnotationProcessor {
                 Resource annotation = (Resource) methods[i].getAnnotation(Resource.class);\r
                 lookupMethodResource(context, instance, methods[i], annotation.name());\r
             }\r
-            /*\r
             if (methods[i].isAnnotationPresent(EJB.class)) {\r
                 EJB annotation = (EJB) methods[i].getAnnotation(EJB.class);\r
-                lookupOnMethodResource(context, instance, methods[i], annotation.name());\r
+                lookupMethodResource(context, instance, methods[i], annotation.name());\r
             }\r
             if (methods[i].isAnnotationPresent(WebServiceRef.class)) {\r
                 WebServiceRef annotation = \r
                     (WebServiceRef) methods[i].getAnnotation(WebServiceRef.class);\r
-                lookupOnMethodResource(context, instance, methods[i], annotation.name());\r
+                lookupMethodResource(context, instance, methods[i], annotation.name());\r
+            }\r
+            if (methods[i].isAnnotationPresent(PersistenceContext.class)) {\r
+                PersistenceContext annotation = \r
+                    (PersistenceContext) methods[i].getAnnotation(PersistenceContext.class);\r
+                lookupMethodResource(context, instance, methods[i], annotation.name());\r
             }\r
-            */\r
-        }            \r
+            if (methods[i].isAnnotationPresent(PersistenceUnit.class)) {\r
+                PersistenceUnit annotation = \r
+                    (PersistenceUnit) methods[i].getAnnotation(PersistenceUnit.class);\r
+                lookupMethodResource(context, instance, methods[i], annotation.name());\r
+            }\r
+        }\r
 \r
     }\r
     \r