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 ng...@apache.org on 2008/01/03 20:24:31 UTC
svn commit: r608602 - in /webservices/axis2/trunk/java/modules:
jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/
metadata/src/org/apache/axis2/jaxws/description/
metadata/src/org/apache/axis2/jaxws/description/impl/
Author: ngallardo
Date: Thu Jan 3 11:24:30 2008
New Revision: 608602
URL: http://svn.apache.org/viewvc?rev=608602&view=rev
Log:
AXIS2-3402
Flag the client and server configuration when there are nested SwaRef attachments.
Modified:
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitBareMethodMarshaller.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitBareMinimalMethodMarshaller.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitWrappedMethodMarshaller.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitWrappedMinimalMethodMarshaller.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitWrappedPlusMethodMarshaller.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/RPCLitMethodMarshaller.java
webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/OperationDescription.java
webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/DescriptionUtils.java
webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitBareMethodMarshaller.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitBareMethodMarshaller.java?rev=608602&r1=608601&r2=608602&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitBareMethodMarshaller.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitBareMethodMarshaller.java Thu Jan 3 11:24:30 2008
@@ -251,6 +251,11 @@
// Put values onto the message
MethodMarshallerUtils.toMessage(pvList, m, packages);
+
+ // Enable SWA for nested SwaRef attachments
+ if (operationDesc.hasResponseSwaRefAttachments()) {
+ m.setDoingSWA(true);
+ }
return m;
} catch (Exception e) {
@@ -301,6 +306,11 @@
// Put values onto the message
MethodMarshallerUtils.toMessage(pvList, m, packages);
+
+ // Enable SWA for nested SwaRef attachments
+ if (operationDesc.hasRequestSwaRefAttachments()) {
+ m.setDoingSWA(true);
+ }
return m;
} catch (Exception e) {
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitBareMinimalMethodMarshaller.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitBareMinimalMethodMarshaller.java?rev=608602&r1=608601&r2=608602&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitBareMinimalMethodMarshaller.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitBareMinimalMethodMarshaller.java Thu Jan 3 11:24:30 2008
@@ -283,6 +283,11 @@
// Put values onto the message
MethodMarshallerUtils.toMessage(pdeList, m, packages);
+
+ // Enable SWA for nested SwaRef attachments
+ if (operationDesc.hasResponseSwaRefAttachments()) {
+ m.setDoingSWA(true);
+ }
return m;
} catch (Exception e) {
@@ -343,6 +348,11 @@
// Put values onto the message...marshalling by type
MethodMarshallerUtils.toMessage(pdeList, m, packages);
+
+ // Enable SWA for nested SwaRef attachments
+ if (operationDesc.hasRequestSwaRefAttachments()) {
+ m.setDoingSWA(true);
+ }
return m;
} catch (Exception e) {
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitWrappedMethodMarshaller.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitWrappedMethodMarshaller.java?rev=608602&r1=608601&r2=608602&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitWrappedMethodMarshaller.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitWrappedMethodMarshaller.java Thu Jan 3 11:24:30 2008
@@ -364,6 +364,11 @@
if (!marshalDesc.getAnnotationDesc(cls).hasXmlRootElement()) {
object = new JAXBElement(wrapperQName, cls, object);
}
+
+ // Enable SWA for nested SwaRef attachments
+ if (operationDesc.hasResponseSwaRefAttachments()) {
+ m.setDoingSWA(true);
+ }
// Put the object into the message
JAXBBlockFactory factory =
@@ -453,6 +458,11 @@
// Make sure object can be rendered as an element
if (!marshalDesc.getAnnotationDesc(cls).hasXmlRootElement()) {
object = new JAXBElement(wrapperQName, cls, object);
+ }
+
+ // Enable SWA for nested SwaRef attachments
+ if (operationDesc.hasRequestSwaRefAttachments()) {
+ m.setDoingSWA(true);
}
// Put the object into the message
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitWrappedMinimalMethodMarshaller.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitWrappedMinimalMethodMarshaller.java?rev=608602&r1=608601&r2=608602&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitWrappedMinimalMethodMarshaller.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitWrappedMinimalMethodMarshaller.java Thu Jan 3 11:24:30 2008
@@ -134,6 +134,11 @@
// Put values onto the message
MethodMarshallerUtils.toMessage(pdeList, m, packages);
+
+ // Enable SWA for nested SwaRef attachments
+ if (operationDesc.hasRequestSwaRefAttachments()) {
+ m.setDoingSWA(true);
+ }
return m;
} catch (Exception e) {
@@ -328,6 +333,11 @@
// TODO Should we check for null output body values? Should we check for null output header values ?
// Put values onto the message
MethodMarshallerUtils.toMessage(pdeList, m, packages);
+
+ // Enable SWA for nested SwaRef attachments
+ if (operationDesc.hasResponseSwaRefAttachments()) {
+ m.setDoingSWA(true);
+ }
return m;
} catch (Exception e) {
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitWrappedPlusMethodMarshaller.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitWrappedPlusMethodMarshaller.java?rev=608602&r1=608601&r2=608602&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitWrappedPlusMethodMarshaller.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/DocLitWrappedPlusMethodMarshaller.java Thu Jan 3 11:24:30 2008
@@ -557,6 +557,12 @@
}
MethodMarshallerUtils.toMessage(headerPDEList, m, packages);
}
+
+ // Enable SWA for nested SwaRef attachments
+ if (operationDesc.hasResponseSwaRefAttachments()) {
+ m.setDoingSWA(true);
+ }
+
return m;
} catch (Exception e) {
throw ExceptionFactory.makeWebServiceException(e);
@@ -674,6 +680,12 @@
MethodMarshallerUtils.toMessage(headerPDEList, m, packages);
}
+
+ // Enable SWA for nested SwaRef attachments
+ if (operationDesc.hasRequestSwaRefAttachments()) {
+ m.setDoingSWA(true);
+ }
+
return m;
} catch (Exception e) {
throw ExceptionFactory.makeWebServiceException(e);
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/RPCLitMethodMarshaller.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/RPCLitMethodMarshaller.java?rev=608602&r1=608601&r2=608602&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/RPCLitMethodMarshaller.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/RPCLitMethodMarshaller.java Thu Jan 3 11:24:30 2008
@@ -136,6 +136,11 @@
// Put values onto the message
MethodMarshallerUtils.toMessage(pdeList, m, packages);
+
+ // Enable SWA for nested SwaRef attachments
+ if (operationDesc.hasRequestSwaRefAttachments()) {
+ m.setDoingSWA(true);
+ }
return m;
} catch (Exception e) {
@@ -347,6 +352,11 @@
// TODO Should we check for null output body values? Should we check for null output header values ?
// Put values onto the message
MethodMarshallerUtils.toMessage(pdeList, m, packages);
+
+ // Enable SWA for nested SwaRef attachments
+ if (operationDesc.hasResponseSwaRefAttachments()) {
+ m.setDoingSWA(true);
+ }
return m;
} catch (Exception e) {
Modified: webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/OperationDescription.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/OperationDescription.java?rev=608602&r1=608601&r2=608602&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/OperationDescription.java (original)
+++ webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/OperationDescription.java Thu Jan 3 11:24:30 2008
@@ -212,6 +212,11 @@
* @return OperationDescription corresponding to the sync operation, or null (see note above).
*/
public OperationDescription getSyncOperation();
+
+ /**
+ * @return Attachment Description for the return type or null
+ */
+ public AttachmentDescription getResultAttachmentDescription();
/**
* Returns the namespace of binding input message for the operation
@@ -224,7 +229,23 @@
public String getBindingOutputNamespace();
/**
- * @return Attachment Description for the return type or null
- */
- public AttachmentDescription getResultAttachmentDescription();
+ * @return a boolean indicator of nested swaRef attachments on the request.
+ */
+ public boolean hasRequestSwaRefAttachments();
+
+ /**
+ * @param sets the indicator of nested request swaRef attachments.
+ */
+ public void setHasRequestSwaRefAttachments(boolean b);
+
+ /**
+ * @return a boolean indicator of nested swaRef attachments on the response.
+ */
+ public boolean hasResponseSwaRefAttachments();
+
+ /**
+ * @param sets the indicator of nested response swaRef attachments.
+ */
+ public void setHasResponseSwaRefAttachments(boolean b);
+
}
Modified: webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/DescriptionUtils.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/DescriptionUtils.java?rev=608602&r1=608601&r2=608602&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/DescriptionUtils.java (original)
+++ webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/DescriptionUtils.java Thu Jan 3 11:24:30 2008
@@ -417,6 +417,22 @@
}
return ((SOAP12Header) extObj).getNamespaceURI();
}
+ else if (extObj instanceof MIMEMultipartRelated) {
+ if (log.isDebugEnabled()) {
+ log.debug("Found a MIMEMultipartRelated element. Unwrapping to get SOAP binding.");
+ }
+ MIMEMultipartRelated mime = (MIMEMultipartRelated) extObj;
+ List mimeParts = mime.getMIMEParts();
+
+ Iterator itr = mimeParts.iterator();
+ while (itr.hasNext()) {
+ MIMEPart mimePart = (MIMEPart) itr.next();
+ List elements = mimePart.getExtensibilityElements();
+
+ String ns = getNamespaceFromSOAPElement(elements);
+ return ns;
+ }
+ }
}
return null;
}
@@ -433,21 +449,17 @@
if (bindingOp.getName().equals(opDesc.getName().getLocalPart())) {
if (bindingOp.getBindingInput() != null) {
if (log.isDebugEnabled()) {
- log.debug("Processing binding input");
+ log.debug("Processing binding opertion input");
}
- processBindingForMIME(bindingOp.getBindingInput()
- .getExtensibilityElements(),
- opDesc,
- bindingOp.getOperation());
+ processBindingForMIME(bindingOp.getBindingInput().getExtensibilityElements(),
+ opDesc, bindingOp.getOperation(), true);
}
if (bindingOp.getBindingOutput() != null) {
if (log.isDebugEnabled()) {
log.debug("Processing binding output");
}
- processBindingForMIME(bindingOp.getBindingOutput()
- .getExtensibilityElements(),
- opDesc,
- bindingOp.getOperation());
+ processBindingForMIME(bindingOp.getBindingOutput().getExtensibilityElements(),
+ opDesc, bindingOp.getOperation(), false);
}
}
}
@@ -460,16 +472,24 @@
* does it will build up the appropriate AttachmentDescription objects.
*/
private static void processBindingForMIME(List extensibilityElements,
- OperationDescriptionImpl opDesc, Operation operation) {
+ OperationDescriptionImpl opDesc,
+ Operation operation,
+ boolean isRequest) {
Iterator extensibilityIter = extensibilityElements.iterator();
while (extensibilityIter.hasNext()) {
Object obj = extensibilityIter.next();
if (obj instanceof MIMEMultipartRelated) {
+ if (log.isDebugEnabled()) {
+ log.debug("Found a mime:multipartRelated extensiblity element.");
+ }
// Found mime information now process it and determine if we need to
// create an AttachmentDescription
MIMEMultipartRelated mime = (MIMEMultipartRelated) obj;
Iterator partIter = mime.getMIMEParts().iterator();
while (partIter.hasNext()) {
+ if (log.isDebugEnabled()) {
+ log.debug("Found a mime:part child element.");
+ }
MIMEPart mimePart = (MIMEPart) partIter.next();
Iterator mExtIter = mimePart.getExtensibilityElements().iterator();
// Process each mime part to determine if there is mime content
@@ -495,6 +515,19 @@
log.debug("Already created AttachmentDescription for part: "
+ part + " of type: " + type);
}
+ }
+ }
+ else if (obj2 instanceof SOAPBody || obj2 instanceof SOAP12Body) {
+ if (log.isDebugEnabled()) {
+ log.debug("Found a body element with potential nested mime content");
+ }
+
+ // Flag whether there's a potential nested attachment.
+ if (isRequest) {
+ opDesc.setHasRequestSwaRefAttachments(true);
+ }
+ else {
+ opDesc.setHasResponseSwaRefAttachments(true);
}
}
}
Modified: webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java?rev=608602&r1=608601&r2=608602&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java (original)
+++ webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java Thu Jan 3 11:24:30 2008
@@ -182,6 +182,10 @@
private boolean _setAttachmentDesc = false;
private AttachmentDescription attachmentDesc = null;
+ private boolean hasRequestSwaRefAttachments = false;
+ private boolean hasResponseSwaRefAttachments = false;
+ private Map<String, AttachmentDescription> partAttachmentMap;
+
private Method serviceImplMethod;
private boolean serviceImplMethodFound = false;
// For JAX-WS client async methods, this is the corresponding Sync method; for everything else,
@@ -190,8 +194,7 @@
// RUNTIME INFORMATION
Map<String, OperationRuntimeDescription> runtimeDescMap =
Collections.synchronizedMap(new HashMap<String, OperationRuntimeDescription>());
- private Map<String, AttachmentDescription> partAttachmentMap;
-
+
OperationDescriptionImpl(Method method, EndpointInterfaceDescription parent) {
// TODO: Look for WebMethod anno; get name and action off of it
parentEndpointInterfaceDescription = parent;
@@ -1951,6 +1954,22 @@
public void addPartAttachmentDescription(String partName, AttachmentDescription attachmentDesc) {
partAttachmentMap.put(partName, attachmentDesc);
+ }
+
+ public boolean hasRequestSwaRefAttachments() {
+ return hasRequestSwaRefAttachments;
+ }
+
+ public void setHasRequestSwaRefAttachments(boolean b) {
+ hasRequestSwaRefAttachments = b;
+ }
+
+ public boolean hasResponseSwaRefAttachments() {
+ return hasResponseSwaRefAttachments;
+ }
+
+ public void setHasResponseSwaRefAttachments(boolean b) {
+ hasResponseSwaRefAttachments = b;
}
public String toString() {
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org