You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by am...@apache.org on 2011/02/18 11:58:08 UTC
svn commit: r1071959 -
/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java
Author: amilas
Date: Fri Feb 18 10:58:08 2011
New Revision: 1071959
URL: http://svn.apache.org/viewvc?rev=1071959&view=rev
Log:
applied the patch for AXIS2-4956
Modified:
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java
Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java?rev=1071959&r1=1071958&r2=1071959&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java (original)
+++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java Fri Feb 18 10:58:08 2011
@@ -275,19 +275,53 @@ public class AxisService2WSDL11 implemen
}
// generate fault Messages
- ArrayList faultyMessages = axisOperation.getFaultMessages();
+ ArrayList<AxisMessage> faultyMessages = this.extractWSDL11FaultMessages(axisOperation);
if (faultyMessages != null) {
- for (Object faultyMessage : faultyMessages) {
- AxisMessage axisMessage = (AxisMessage)faultyMessage;
- String name = axisMessage.getName();
+ for (AxisMessage faultyMessage : faultyMessages) {
+ String name = faultyMessage.getName();
if (faultMessageNames.add(name)) {
- writeMessage(axisMessage, fac, defintions);
- generateHeaderMessages(axisMessage, fac, defintions);
+ writeMessage(faultyMessage, fac, defintions);
+ generateHeaderMessages(faultyMessage, fac, defintions);
}
}
}
}
}
+
+ /**
+ * Checks if the given MEP is supported for containing fault messages.
+ */
+ private boolean isWSDL11FaultyMessagesValidForMEP(String mepURI) {
+ return !(WSDL2Constants.MEP_URI_IN_ONLY.equals(mepURI) ||
+ WSDL2Constants.MEP_URI_ROBUST_IN_ONLY.equals(mepURI));
+ }
+
+ /**
+ * Return the fault messages only if it's not an in-only operation.
+ * For WSDL11 generation, the fault messages must be not present in the operation,
+ * as mentioned in <link>http://www.w3.org/TR/wsdl#_one-way</link>.
+ */
+ private ArrayList<AxisMessage> extractWSDL11FaultMessages(AxisOperation axisOperation) {
+ String mepURI = axisOperation.getMessageExchangePattern();
+ if (this.isWSDL11FaultyMessagesValidForMEP(mepURI)) {
+ return axisOperation.getFaultMessages();
+ } else {
+ return new ArrayList<AxisMessage>();
+ }
+ }
+
+ /**
+ * @see AxisService2WSDL11#extractWSDL11FaultMessages(AxisOperation)
+ */
+ private ArrayList<AxisBindingMessage> extractWSDL11FaultMessages(
+ AxisBindingOperation axisBindingOperation) {
+ String mepURI = axisBindingOperation.getAxisOperation().getMessageExchangePattern();
+ if (this.isWSDL11FaultyMessagesValidForMEP(mepURI)) {
+ return axisBindingOperation.getFaults();
+ } else {
+ return new ArrayList<AxisBindingMessage>();
+ }
+ }
private void generateHeaderMessages(AxisMessage axismessage, OMFactory fac,
OMElement defintions) {
@@ -421,21 +455,20 @@ public class AxisService2WSDL11 implemen
}
// generate fault Messages
- ArrayList faultMessages = axisOperation.getFaultMessages();
+ ArrayList<AxisMessage> faultMessages = this.extractWSDL11FaultMessages(axisOperation);
if (faultMessages != null) {
- for (Object faultMessage : faultMessages) {
- AxisMessage faultyMessage = (AxisMessage)faultMessage;
+ for (AxisMessage faultMessage : faultMessages) {
OMElement fault = fac.createOMElement(FAULT_LOCAL_NAME, wsdl);
- WSDLSerializationUtil.addWSDLDocumentationElement(faultyMessage,
+ WSDLSerializationUtil.addWSDLDocumentationElement(faultMessage,
fault,
fac,
wsdl);
fault.addAttribute(MESSAGE_LOCAL_NAME, tns.getPrefix()
- + ":" + faultyMessage.getName(), null);
- fault.addAttribute(ATTRIBUTE_NAME, faultyMessage.getName(), null);
+ + ":" + faultMessage.getName(), null);
+ fault.addAttribute(ATTRIBUTE_NAME, faultMessage.getName(), null);
WSDLSerializationUtil.addWSAWActionAttribute(fault,
axisOperation.getFaultAction(
- faultyMessage.getName()),
+ faultMessage.getName()),
wsaw);
// TODO add policies for fault messages
operation.addChild(fault);
@@ -864,7 +897,7 @@ public class AxisService2WSDL11 implemen
}
// generate fault Messages
- ArrayList faultyMessages = axisBindingOperation.getFaults();
+ ArrayList faultyMessages = this.extractWSDL11FaultMessages(axisBindingOperation);
if (faultyMessages != null) {
for (Object faultyMessage1 : faultyMessages) {
AxisBindingMessage bindingFaultyMessage = (AxisBindingMessage)faultyMessage1;
@@ -1003,7 +1036,7 @@ public class AxisService2WSDL11 implemen
}
// generate fault Messages
- ArrayList faultyMessages = axisBindingOperation.getFaults();
+ ArrayList faultyMessages = this.extractWSDL11FaultMessages(axisBindingOperation);
if (faultyMessages != null) {
for (Object faultyMessage1 : faultyMessages) {
AxisBindingMessage bindingFaultyMessage = (AxisBindingMessage)faultyMessage1;