Author: eric
Date: Fri Feb  8 11:25:48 2013
New Revision: 1443941

URL: http://svn.apache.org/r1443941
Log:
Fix POP3 failing unit tests due to @Inject usage instead of @Resource 
(JAMES-1477)

Modified:
    
james/server/trunk/protocols/protocols-library/src/test/java/org/apache/james/protocols/lib/mock/MockProtocolHandlerLoader.java

Modified: 
james/server/trunk/protocols/protocols-library/src/test/java/org/apache/james/protocols/lib/mock/MockProtocolHandlerLoader.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/protocols/protocols-library/src/test/java/org/apache/james/protocols/lib/mock/MockProtocolHandlerLoader.java?rev=1443941&r1=1443940&r2=1443941&view=diff
==============================================================================
--- 
james/server/trunk/protocols/protocols-library/src/test/java/org/apache/james/protocols/lib/mock/MockProtocolHandlerLoader.java
 (original)
+++ 
james/server/trunk/protocols/protocols-library/src/test/java/org/apache/james/protocols/lib/mock/MockProtocolHandlerLoader.java
 Fri Feb  8 11:25:48 2013
@@ -1,5 +1,6 @@
 package org.apache.james.protocols.lib.mock;
 
+import java.lang.annotation.Annotation;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.ArrayList;
@@ -9,7 +10,8 @@ import java.util.Map;
 
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
-import javax.annotation.Resource;
+import javax.inject.Inject;
+import javax.inject.Named;
 
 import org.apache.commons.configuration.Configuration;
 import org.apache.james.protocols.api.handler.ProtocolHandler;
@@ -92,15 +94,22 @@ public class MockProtocolHandlerLoader i
     private void injectResources(Object resource) {
         final Method[] methods = resource.getClass().getMethods();
         for (Method method : methods) {
-            final Resource resourceAnnotation = 
method.getAnnotation(Resource.class);
-            if (resourceAnnotation != null) {
-                final String name = resourceAnnotation.name();
+            final Inject injectAnnotation = method.getAnnotation(Inject.class);
+            if (injectAnnotation != null) {
+                String name = null;
+                Annotation[][] paramAnnotations = 
method.getParameterAnnotations();
+                if (paramAnnotations.length == 1) {
+                    if (paramAnnotations[0].length ==1) {
+                        if 
(paramAnnotations[0][0].annotationType().equals(Named.class)) {
+                            name = ((Named) paramAnnotations[0][0]).value();
+                        }
+                    }
+                }
                 if (name == null) {
-                    throw new UnsupportedOperationException("Resource 
annotation without name specified is not supported by this implementation");
+                    throw new UnsupportedOperationException("@Inject 
annotation without @Named specified is not supported by this implementation");
                 } else {
                     // Name indicates a service
                     final Object service = getObjectForName(name);
-
                     if (service == null) {
                         throw new RuntimeException("Injection failed for 
object " + resource + " on method " + method + " with resource name " + name + 
", because no mapping was found");
                     } else {



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to