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;