You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ds...@apache.org on 2006/09/25 05:54:28 UTC

svn commit: r449558 - in /webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen: emitter/AxisServiceBasedMultiLanguageEmitter.java extension/JiBXExtension.java

Author: dsosnoski
Date: Sun Sep 24 20:54:28 2006
New Revision: 449558

URL: http://svn.apache.org/viewvc?view=rev&rev=449558
Log:
Generate data structures for JiBX unwrapped support

Modified:
    webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java
    webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/JiBXExtension.java

Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java?view=diff&rev=449558&r1=449557&r2=449558
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java Sun Sep 24 20:54:28 2006
@@ -1054,30 +1054,18 @@
         //at this point we may need to capture the extra parameters passes to the
         //particular databinding framework
         //these parameters showup in the property map with String keys, and we
-        //can just copy these items over to the <extra> element.
-        //this code allows both simple values, which are written as name="value"
-        //attributes of the <extra> element, and Element values with property
-        //names starting with "databinders/extra", which are written as child
-        //elements of the <extra> element (with the property name unused, in
-        //this case)
+        //can just copy these items as attributes of the <extra> element.
         Element extraElement = addElement(doc, "extra", null, rootElement);
         Map propertiesMap = codeGenConfiguration.getProperties();
         for (Iterator it = propertiesMap.keySet().iterator(); it.hasNext();){
             Object key = it.next();
             if (key instanceof String) {
                 Object value = propertiesMap.get(key);
-                if (value instanceof Element) {
-                    if (((String)key).startsWith("databinders/extra")) {
-                        // append child element
-                        extraElement.appendChild(doc.importNode((Element)value, true));
-                    }
-                } else {
-                    //if the value is null set it to empty string
-                    if (value==null) value="";
-                    //add key="value" attribute to element iff value a string
-                    if (value instanceof String){
-                         addAttribute(doc,(String)key,(String)value, extraElement);
-                    }
+                //if the value is null set it to empty string
+                if (value==null) value="";
+                //add key="value" attribute to element iff value a string
+                if (value instanceof String){
+                     addAttribute(doc,(String)key,(String)value, extraElement);
                 }
             }
         }
@@ -1097,7 +1085,15 @@
         for (Iterator iterator = parameters.iterator(); iterator.hasNext();) {
             rootElement.appendChild((Element) iterator.next());
         }
-
+        
+        // finish with any extra information from operations
+        for (Iterator operationsIterator = axisService.getOperations();operationsIterator.hasNext();) {
+            AxisOperation axisOperation = (AxisOperation) operationsIterator.next();
+            Parameter details = axisOperation.getParameter(Constants.DATABINDING_DETAILS);
+            if (details != null) {
+                rootElement.appendChild(doc.importNode((Element)details.getValue(), true));
+            }
+        }
 
         ///////////////////////////////////////////////
         //System.out.println(DOM2Writer.nodeToString(rootElement));

Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/JiBXExtension.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/JiBXExtension.java?view=diff&rev=449558&r1=449557&r2=449558
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/JiBXExtension.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/JiBXExtension.java Sun Sep 24 20:54:28 2006
@@ -16,6 +16,8 @@
 
 package org.apache.axis2.wsdl.codegen.extension;
 
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 
 import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
@@ -45,7 +47,7 @@
         // check the JiBX binding definition file specified
         String path = (String)configuration.getProperties().get(BINDING_PATH_OPTION);
         if (path == null) {
-            throw new RuntimeException("jibx binding option currently requires -" +
+            throw new RuntimeException("jibx binding option currently requires -E" +
                     BINDING_PATH_OPTION + " {file-path} parameter");
         }
         try {
@@ -65,52 +67,25 @@
                 throw new RuntimeException("JiBX binding extension not in classpath");
             }
             
+            // create an instance of the class
+            Object inst = null;
+            Constructor constructor = clazz.getConstructor(new Class[] { CodeGenConfiguration.class });
+            inst = constructor.newInstance(new Object[] { configuration });
+            
             // invoke utility class method for actual processing
             Method method = clazz.getMethod(JIBX_UTILITY_METHOD,
-                new Class[] { String.class, CodeGenConfiguration.class });
-            method.invoke(null, new Object[] { path, configuration });
-
-/*            // invoke utility class method for actual processing
-            Method method = clazz.getMethod(BINDING_MAP_METHOD,
-                    new Class[] { String.class });
-            HashMap jibxmap = (HashMap)method.invoke(null, new Object[] { path });
-
-            // Want to find all elements by working down from bindings (if any
-            // supplied) or interfaces (if no bindings). Not sure why this dual
-            // path is required, but based on the code in
-            // org.apache.axis2.wsdl.builder.SchemaUnwrapper
-            HashSet elements = new HashSet();
-            Iterator operations = configuration.getAxisService().getOperations();
-            while (operations.hasNext()) {
-                AxisOperation o =  (AxisOperation)operations.next();
-                accumulateElements(o, elements);
-            }
-
-
-            //create the type mapper
-            //First try to take the one that is already there
-            TypeMapper mapper = configuration.getTypeMapper();
-            if (mapper==null){
-                mapper =new JavaTypeMapper();
-            }
-
-            for (Iterator iter = elements.iterator(); iter.hasNext();) {
-                QName qname = (QName)iter.next();
-                if (qname != null) {
-                    String cname = (String)jibxmap.get(qname);
-                    if (cname == null) {
-                        throw new RuntimeException("No JiBX mapping defined for " + qname);
-                    }
-                    mapper.addTypeMappingName(qname, cname);
-                }
-            }
-
-            // set the type mapper to the config
-            configuration.setTypeMapper(mapper);	*/
+                new Class[] { String.class });
+            method.invoke(inst, new Object[] { path });
 
         } catch (Exception e) {
             if (e instanceof RuntimeException) {
                 throw (RuntimeException)e;
+            } else if (e instanceof InvocationTargetException) {
+                if (e.getCause() instanceof RuntimeException) {
+                    throw (RuntimeException)e.getCause();
+                } else {
+                    throw new RuntimeException(e);
+                }
             } else {
                 throw new RuntimeException(e);
             }



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