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 di...@apache.org on 2006/11/23 21:49:12 UTC

svn commit: r478665 - in /webservices/axis2/trunk/java/modules: codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java jaxbri/src/org/apache/axis2/jaxbri/template/JaxbRIDatabindingTemplate.xsl

Author: dims
Date: Thu Nov 23 12:49:12 2006
New Revision: 478665

URL: http://svn.apache.org/viewvc?view=rev&rev=478665
Log:
port fix for AXIS2-1768

Modified:
    webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java
    webservices/axis2/trunk/java/modules/jaxbri/src/org/apache/axis2/jaxbri/template/JaxbRIDatabindingTemplate.xsl

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=478665&r1=478664&r2=478665
==============================================================================
--- 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 Thu Nov 23 12:49:12 2006
@@ -2147,7 +2147,8 @@
                             inputMessage.getElementQName()),
                     this.mapper.getTypeMappingName(
                             inputMessage.getElementQName()),
-                    operation.getName()
+                    operation.getName(),
+                    inputMessage.getElementQName()
             );
 
             paramElementList.add(mainParameter);
@@ -2185,6 +2186,7 @@
                             this.mapper.getTypeMappingName(
                                     qName),
                             operation.getName(),
+                            qName,
                             qName.getLocalPart(),
                             (this.mapper.getTypeMappingStatus(qName)!=null),
                             Constants.ARRAY_TYPE.equals(this.mapper.getTypeMappingStatus(qName)))
@@ -2216,8 +2218,9 @@
     protected Element generateParamComponent(Document doc,
                                              String paramName,
                                              String paramType,
-                                             QName operationName) {
-        return generateParamComponent(doc,paramName,paramType,operationName,null,false,false);
+                                             QName operationName,
+                                             QName paramQName) {
+        return generateParamComponent(doc,paramName,paramType,operationName, paramQName, null,false,false);
 
     }
 
@@ -2231,8 +2234,9 @@
      */
     protected Element generateParamComponent(Document doc,
                                              String paramName,
-                                             String paramType) {
-        return generateParamComponent(doc,paramName,paramType,null,null,false,false);
+                                             String paramType,
+                                             QName paramQName) {
+        return generateParamComponent(doc,paramName,paramType,null, paramQName, null,false,false);
 
     }
     /**
@@ -2249,6 +2253,7 @@
                                              String paramName,
                                              String paramType,
                                              QName opName,
+                                             QName paramQName,
                                              String partName,
                                              boolean isPrimitive,
                                              boolean isArray) {
@@ -2274,8 +2279,15 @@
         //if the opName and partName are present , add them
         if (opName!=null){
             addAttribute(doc,"opname",opName.getLocalPart(),paramElement);
+        }
 
+        if (paramQName!=null){
+            Element qNameElement = doc.createElement("qname");
+            addAttribute(doc,"nsuri", paramQName.getNamespaceURI(), qNameElement);
+            qNameElement.setTextContent(paramQName.getLocalPart());
+            paramElement.appendChild(qNameElement);
         }
+
         if (partName!= null){
             addAttribute(doc,"partname",
                     JavaUtils.capitalizeFirstChar(partName),
@@ -2339,6 +2351,14 @@
                 Parameter parameter = outputMessage.getParameter(Constants.COMPLEX_TYPE);
                 addAttribute(doc,"complextype",(String)parameter.getValue(),paramElement);
             }
+        }
+
+        QName paramQName = outputMessage.getElementQName();
+        if (paramQName!=null){
+            Element qNameElement = doc.createElement("qname");
+            addAttribute(doc,"nsuri", paramQName.getNamespaceURI(), qNameElement);
+            qNameElement.setTextContent(paramQName.getLocalPart());
+            paramElement.appendChild(qNameElement);
         }
 
         return paramElement;

Modified: webservices/axis2/trunk/java/modules/jaxbri/src/org/apache/axis2/jaxbri/template/JaxbRIDatabindingTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxbri/src/org/apache/axis2/jaxbri/template/JaxbRIDatabindingTemplate.xsl?view=diff&rev=478665&r1=478664&r2=478665
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxbri/src/org/apache/axis2/jaxbri/template/JaxbRIDatabindingTemplate.xsl (original)
+++ webservices/axis2/trunk/java/modules/jaxbri/src/org/apache/axis2/jaxbri/template/JaxbRIDatabindingTemplate.xsl Thu Nov 23 12:49:12 2006
@@ -51,11 +51,15 @@
                         javax.xml.bind.JAXBContext context = <xsl:value-of select="translate(@type,'.','_')"/>;
                         javax.xml.bind.Marshaller marshaller = context.createMarshaller();
                         marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_FRAGMENT, Boolean.TRUE);            
-        
-                        JaxbRIDataSource source = new JaxbRIDataSource(<xsl:value-of select="@type"/>.class, param, marshaller);
-                        javax.xml.namespace.QName elementName = context.createJAXBIntrospector().getElementName(param);
-                        org.apache.axiom.om.OMNamespace namespace = factory.createOMNamespace(elementName.getNamespaceURI(), null);
-                        return factory.createOMElement(source, elementName.getNamespaceURI(), namespace);
+
+                        JaxbRIDataSource source = new JaxbRIDataSource( <xsl:value-of select="@type"/>.class,
+                                                                        param,
+                                                                        marshaller,
+                                                                        "<xsl:value-of select='current()/qname/@nsuri'/>",
+                                                                        "<xsl:value-of select='current()/qname/text()'/>");
+                        org.apache.axiom.om.OMNamespace namespace = factory.createOMNamespace("<xsl:value-of select='current()/qname/@nsuri'/>",
+                                                                           null);
+                        return factory.createOMElement(source, "<xsl:value-of select='current()/qname/text()'/>", namespace);
                     } catch (javax.xml.bind.JAXBException bex){
                         throw new RuntimeException(bex);
                     }
@@ -110,20 +114,33 @@
             private final javax.xml.bind.Marshaller marshaller;
 
             /**
+             * Namespace
+             */
+            private String nsuri;
+
+            /**
+             * Local name
+             */
+            private String name;
+
+            /**
              * Constructor from object and marshaller.
              *
              * @param obj
              * @param marshaller
              */
-            public JaxbRIDataSource(Class clazz, Object obj, javax.xml.bind.Marshaller marshaller) {
+            public JaxbRIDataSource(Class clazz, Object obj, javax.xml.bind.Marshaller marshaller, String nsuri, String name) {
                 this.outClazz = clazz;
                 this.outObject = obj;
                 this.marshaller = marshaller;
+                this.nsuri = nsuri;
+                this.name = name;
             }
 
             public void serialize(java.io.OutputStream output, org.apache.axiom.om.OMOutputFormat format) throws javax.xml.stream.XMLStreamException {
                 try {
-                    marshaller.marshal(outObject, output);
+                    marshaller.marshal(new javax.xml.bind.JAXBElement(
+                            new javax.xml.namespace.QName(nsuri, name), outObject.getClass(), outObject), output);
                 } catch (javax.xml.bind.JAXBException e) {
                     throw new javax.xml.stream.XMLStreamException("Error in JAXB marshalling", e);
                 }
@@ -131,7 +148,8 @@
 
             public void serialize(java.io.Writer writer, org.apache.axiom.om.OMOutputFormat format) throws javax.xml.stream.XMLStreamException {
                 try {
-                    marshaller.marshal(outObject, writer);
+                    marshaller.marshal(new javax.xml.bind.JAXBElement(
+                            new javax.xml.namespace.QName(nsuri, name), outObject.getClass(), outObject), writer);
                 } catch (javax.xml.bind.JAXBException e) {
                     throw new javax.xml.stream.XMLStreamException("Error in JAXB marshalling", e);
                 }
@@ -139,7 +157,8 @@
 
             public void serialize(javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
                 try {
-                    marshaller.marshal(outObject, xmlWriter);
+                    marshaller.marshal(new javax.xml.bind.JAXBElement(
+                            new javax.xml.namespace.QName(nsuri, name), outObject.getClass(), outObject), xmlWriter);
                 } catch (javax.xml.bind.JAXBException e) {
                     throw new javax.xml.stream.XMLStreamException("Error in JAXB marshalling", e);
                 }
@@ -150,7 +169,8 @@
                     javax.xml.bind.JAXBContext context = classContextMap.get(outClazz);
                     org.apache.axiom.om.impl.builder.SAXOMBuilder builder = new org.apache.axiom.om.impl.builder.SAXOMBuilder();
                     javax.xml.bind.Marshaller marshaller = context.createMarshaller();
-                    marshaller.marshal(outObject, builder);
+                    marshaller.marshal(new javax.xml.bind.JAXBElement(
+                            new javax.xml.namespace.QName(nsuri, name), outObject.getClass(), outObject), builder);
 
                     return builder.getRootElement().getXMLStreamReader();
                 } catch (javax.xml.bind.JAXBException e) {



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