You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ni...@apache.org on 2007/12/04 07:17:12 UTC

svn commit: r600799 - in /incubator/cxf/trunk/rt/core/src: main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java test/java/org/apache/cxf/bus/extension/ExtensionManagerTest.java test/java/org/apache/cxf/bus/extension/MySetterService.java

Author: ningjiang
Date: Mon Dec  3 22:17:10 2007
New Revision: 600799

URL: http://svn.apache.org/viewvc?rev=600799&view=rev
Log:
Fixed the extensionManagerTest testActivateViaNS

Modified:
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java
    incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/extension/ExtensionManagerTest.java
    incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/extension/MySetterService.java

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java?rev=600799&r1=600798&r2=600799&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java Mon Dec  3 22:17:10 2007
@@ -21,6 +21,7 @@
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.reflect.Method;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -40,6 +41,7 @@
 
     public static final String EXTENSIONMANAGER_PROPERTY_NAME = "extensionManager";
     public static final String ACTIVATION_NAMESPACES_PROPERTY_NAME = "activationNamespaces";
+    public static final String ACTIVATION_NAMESPACES_SETTER_METHOD_NAME = "setActivationNamespaces";
     public static final String BUS_EXTENSION_RESOURCE = "META-INF/bus-extensions.xml";
     
     private final ClassLoader loader;
@@ -153,9 +155,13 @@
             resourceManager.addResourceResolver(namespacesResolver);
         }
         
+        // Since we need to support spring2.5 by removing @Resource("activationNamespaces")
+        // Now we call the setActivationNamespaces method directly here
+        invockSetterActivationNSMethod(obj, e.getNamespaces());
+        
         ResourceInjector injector = new ResourceInjector(resourceManager);
         
-        try {
+        try {            
             injector.inject(obj);
             injector.construct(obj);
         } finally {
@@ -195,6 +201,28 @@
         return null;
     }
     
-    
+    private void invockSetterActivationNSMethod(Object target, Object value) {
+        Class clazz = target.getClass();
+        String methodName = ACTIVATION_NAMESPACES_SETTER_METHOD_NAME;
+        while (clazz != Object.class) {
+            Method[] methods = clazz.getMethods();
+            for (int i = 0; i < methods.length; i++) {
+                Method method = methods[i];
+                Class params[] = method.getParameterTypes();
+                if (method.getName().equals(methodName) && params.length == 1) {
+                    Class paramType = params[0];
+                    if (paramType.isInstance(value)) {
+                        try {
+                            method.invoke(target, new Object[] {value});
+                        } catch (Exception e) {
+                            // do nothing here
+                        }
+                        return;
+                    }
+                }
+            }
+            clazz = clazz.getSuperclass();
+        }        
+    }
 
 }

Modified: incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/extension/ExtensionManagerTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/extension/ExtensionManagerTest.java?rev=600799&r1=600798&r2=600799&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/extension/ExtensionManagerTest.java (original)
+++ incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/extension/ExtensionManagerTest.java Mon Dec  3 22:17:10 2007
@@ -85,7 +85,7 @@
     public void verifyActivateViaNS(String extensionClass, String ns) {        
         
         Extension e = new Extension();
-        e.setClassname(MyResourceService.class.getName());       
+        e.setClassname(extensionClass);       
         e.getNamespaces().add(ns);
         e.setDeferred(true);
         manager.processExtension(e);
@@ -97,7 +97,7 @@
         
         // second activation should be a no-op
         
-        MyService first = myService;
+        MyService first = myService;        
         manager.activateViaNS(ns);
         assertSame(first, myService);
         myService = null;

Modified: incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/extension/MySetterService.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/extension/MySetterService.java?rev=600799&r1=600798&r2=600799&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/extension/MySetterService.java (original)
+++ incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/extension/MySetterService.java Mon Dec  3 22:17:10 2007
@@ -34,6 +34,7 @@
     public MySetterService() {
     }
     
+    
     public void setActivationNamespaces(Collection<String> avNamespaces) {
         activationNamespaces = avNamespaces;
     }



Re: svn commit: r600799 - in /incubator/cxf/trunk/rt/core/src: main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java test/java/org/apache/cxf/bus/extension/ExtensionManagerTest.java test/java/org/apache/cxf/bus/extension/MySetterService.java

Posted by Glen Mazza <gl...@verizon.net>.
Am Dienstag, den 04.12.2007, 06:17 +0000 schrieb ningjiang@apache.org:
> Author: ningjiang
> Date: Mon Dec  3 22:17:10 2007
> New Revision: 600799
> 
> URL: http://svn.apache.org/viewvc?rev=600799&view=rev
> Log:
> Fixed the extensionManagerTest testActivateViaNS
> 
> Modified:
>     incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java
>     incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/extension/ExtensionManagerTest.java
>     incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/extension/MySetterService.java
> 
> Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java
> URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java?rev=600799&r1=600798&r2=600799&view=diff
> ==============================================================================
> --- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java (original)
> +++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java Mon Dec  3 22:17:10 2007
> @@ -21,6 +21,7 @@
>  
>  import java.io.IOException;
>  import java.io.InputStream;
> +import java.lang.reflect.Method;
>  import java.net.URL;
>  import java.util.ArrayList;
>  import java.util.Collection;
> @@ -40,6 +41,7 @@
>  
>      public static final String EXTENSIONMANAGER_PROPERTY_NAME = "extensionManager";
>      public static final String ACTIVATION_NAMESPACES_PROPERTY_NAME = "activationNamespaces";
> +    public static final String ACTIVATION_NAMESPACES_SETTER_METHOD_NAME = "setActivationNamespaces";
>      public static final String BUS_EXTENSION_RESOURCE = "META-INF/bus-extensions.xml";
>      
>      private final ClassLoader loader;
> @@ -153,9 +155,13 @@
>              resourceManager.addResourceResolver(namespacesResolver);
>          }
>          
> +        // Since we need to support spring2.5 by removing @Resource("activationNamespaces")
> +        // Now we call the setActivationNamespaces method directly here
> +        invockSetterActivationNSMethod(obj, e.getNamespaces());

"invoke", I think you mean.

Glen