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