You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ga...@apache.org on 2007/06/14 17:28:05 UTC

svn commit: r547278 - /webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/builder/converter/JavaClassToDBCConverter.java

Author: gawor
Date: Thu Jun 14 08:28:04 2007
New Revision: 547278

URL: http://svn.apache.org/viewvc?view=rev&rev=547278
Log:
inspect SEI parent interfaces (AXIS2-2804)

Modified:
    webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/builder/converter/JavaClassToDBCConverter.java

Modified: webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/builder/converter/JavaClassToDBCConverter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/builder/converter/JavaClassToDBCConverter.java?view=diff&rev=547278&r1=547277&r2=547278
==============================================================================
--- webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/builder/converter/JavaClassToDBCConverter.java (original)
+++ webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/builder/converter/JavaClassToDBCConverter.java Thu Jun 14 08:28:04 2007
@@ -1,14 +1,11 @@
 package org.apache.axis2.jaxws.description.builder.converter;
 
-import org.apache.axis2.jaxws.description.builder.BindingTypeAnnot;
-import org.apache.axis2.jaxws.description.builder.DescriptionBuilderComposite;
-import org.apache.axis2.jaxws.description.builder.FieldDescriptionComposite;
-import org.apache.axis2.jaxws.description.builder.MethodDescriptionComposite;
-import org.apache.axis2.jaxws.description.builder.ServiceModeAnnot;
-import org.apache.axis2.jaxws.description.builder.WebFaultAnnot;
-import org.apache.axis2.jaxws.description.builder.WebServiceAnnot;
-import org.apache.axis2.jaxws.description.builder.WebServiceProviderAnnot;
-import org.apache.axis2.jaxws.description.builder.WebServiceRefAnnot;
+import java.lang.reflect.Method;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
 
 import javax.jws.WebService;
 import javax.xml.ws.BindingType;
@@ -18,12 +15,16 @@
 import javax.xml.ws.WebServiceProvider;
 import javax.xml.ws.WebServiceRef;
 import javax.xml.ws.WebServiceRefs;
-import java.lang.reflect.Method;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
+
+import org.apache.axis2.jaxws.description.builder.BindingTypeAnnot;
+import org.apache.axis2.jaxws.description.builder.DescriptionBuilderComposite;
+import org.apache.axis2.jaxws.description.builder.FieldDescriptionComposite;
+import org.apache.axis2.jaxws.description.builder.MethodDescriptionComposite;
+import org.apache.axis2.jaxws.description.builder.ServiceModeAnnot;
+import org.apache.axis2.jaxws.description.builder.WebFaultAnnot;
+import org.apache.axis2.jaxws.description.builder.WebServiceAnnot;
+import org.apache.axis2.jaxws.description.builder.WebServiceProviderAnnot;
+import org.apache.axis2.jaxws.description.builder.WebServiceRefAnnot;
 
 public class JavaClassToDBCConverter {
 
@@ -52,18 +53,17 @@
         HashMap<String, DescriptionBuilderComposite> dbcMap = new HashMap<String,
                 DescriptionBuilderComposite>();
         for (int i = 0; i < classes.size(); i++) {
-            serviceClass = classes.get(i);
-            DescriptionBuilderComposite composite = new DescriptionBuilderComposite();
-            introspectClass(composite);
-            dbcMap.put(composite.getClassName(), composite);
+            buildDBC(dbcMap, classes.get(i));
             if (seiClassName != null && !seiClassName.equals("")) {
-                DescriptionBuilderComposite seiComposite = new DescriptionBuilderComposite();
                 try {
-                    serviceClass =
+                    Class seiClass =
                             Thread.currentThread().getContextClassLoader().loadClass(seiClassName);
-                    if (serviceClass != null) {
-                        introspectClass(seiComposite);
-                        dbcMap.put(seiComposite.getClassName(), seiComposite);
+                    buildDBC(dbcMap, seiClass);
+                    
+                    // Also try to see if the SEI has any super interfaces  
+                    Class[] interfaces = seiClass.getInterfaces();
+                    for (int j = 0; j < interfaces.length; j++) {
+                        buildDBC(dbcMap, interfaces[i]);                            
                     }
                 }
                 catch (ClassNotFoundException e) {
@@ -77,6 +77,13 @@
         return dbcMap;
     }
 
+    private void buildDBC(HashMap<String, DescriptionBuilderComposite> dbcMap, Class clazz) {
+        serviceClass = clazz;
+        DescriptionBuilderComposite composite = new DescriptionBuilderComposite();
+        introspectClass(composite);
+        dbcMap.put(composite.getClassName(), composite);        
+    }
+    
     /**
      * This method will drive the introspection of the class-level information. It will store the
      * gathered information in the pertinent data members of the <code>DescriptionBuilderComposite</code>



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org