Author: veithen Date: Sun Oct 23 16:53:54 2011 New Revision: 1187929 URL: http://svn.apache.org/viewvc?rev=1187929&view=rev Log: * Fault code should also be a QName. * Some code simplifications using features available in Axiom.
Modified: axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/FaultData.java axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java Modified: axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/FaultData.java URL: http://svn.apache.org/viewvc/axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/FaultData.java?rev=1187929&r1=1187928&r2=1187929&view=diff ============================================================================== --- axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/FaultData.java (original) +++ axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/FaultData.java Sun Oct 23 16:53:54 2011 @@ -32,7 +32,7 @@ public class FaultData { private int type; - private String code; + private QName code; private QName subcode; @@ -89,11 +89,11 @@ public class FaultData { this.type = type; } - public String getCode() { + public QName getCode() { return code; } - public void setCode(String code) { + public void setCode(QName code) { this.code = code; } Modified: axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java URL: http://svn.apache.org/viewvc/axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java?rev=1187929&r1=1187928&r2=1187929&view=diff ============================================================================== --- axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java (original) +++ axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java Sun Oct 23 16:53:54 2011 @@ -36,6 +36,7 @@ import org.apache.axiom.soap.SOAPFaultRe import org.apache.axiom.soap.SOAPFaultSubCode; import org.apache.axiom.soap.SOAPFaultText; import org.apache.axiom.soap.SOAPFaultValue; +import org.apache.axiom.soap.SOAPVersion; import org.apache.axis2.AxisFault; import org.apache.axis2.addressing.AddressingConstants; import org.apache.axis2.addressing.EndpointReference; @@ -178,18 +179,13 @@ public class FaultManager { // Return an UnknownSequence error MessageContext messageContext = rmMessageContext.getMessageContext(); - int SOAPVersion = SandeshaUtil.getSOAPVersion(messageContext.getEnvelope()); - FaultData data = new FaultData(); - if (SOAPVersion == Sandesha2Constants.SOAPVersion.v1_1) - data.setCode(SOAP11Constants.FAULT_CODE_SENDER); - else - data.setCode(SOAP12Constants.FAULT_CODE_SENDER); + data.setCode(messageContext.getEnvelope().getVersion().getSenderFaultCode()); data.setSubcode(SpecSpecificConstants.getFaultSubcode(rmMessageContext.getRMNamespaceValue(), Sandesha2Constants.SOAPFaults.FaultType.UNKNOWN_SEQUENCE )); - SOAPFactory factory = SOAPAbstractFactory.getSOAPFactory(SOAPVersion); + SOAPFactory factory = (SOAPFactory)messageContext.getEnvelope().getOMFactory(); OMElement identifierElement = factory.createOMElement(Sandesha2Constants.WSRM_COMMON.IDENTIFIER, rmMessageContext.getRMNamespaceValue(), Sandesha2Constants.WSRM_COMMON.NS_PREFIX_RM); @@ -264,14 +260,11 @@ public class FaultManager { SequenceAcknowledgement sequenceAcknowledgement, Range acknowledgementRange, StorageManager storageManager, boolean piggybackedMessage, EndpointReference acksToEPR) throws AxisFault { FaultData data = new FaultData(); - int SOAPVersion = SandeshaUtil.getSOAPVersion(rmMsgCtx.getMessageContext().getEnvelope()); - if (SOAPVersion == Sandesha2Constants.SOAPVersion.v1_1) - data.setCode(SOAP11Constants.FAULT_CODE_SENDER); - else - data.setCode(SOAP12Constants.FAULT_CODE_SENDER); + SOAPVersion version = rmMsgCtx.getMessageContext().getEnvelope().getVersion(); + data.setCode(version.getSenderFaultCode()); if (log.isDebugEnabled()) - log.debug("makingInvalidAck piggy=" + piggybackedMessage + ": soap=" + SOAPVersion); + log.debug("makingInvalidAck piggy=" + piggybackedMessage + ": soap=" + version); data.setType(Sandesha2Constants.SOAPFaults.FaultType.INVALID_ACKNOWLEDGEMENT); data.setSubcode(SpecSpecificConstants.getFaultSubcode(rmMsgCtx.getRMNamespaceValue(), @@ -294,18 +287,13 @@ public class FaultManager { // Return a CreateSequenceRefused error MessageContext messageContext = rmMessageContext.getMessageContext(); - int SOAPVersion = SandeshaUtil.getSOAPVersion(messageContext.getEnvelope()); - FaultData data = new FaultData(); - if (SOAPVersion == Sandesha2Constants.SOAPVersion.v1_1) - data.setCode(SOAP11Constants.FAULT_CODE_SENDER); - else - data.setCode(SOAP12Constants.FAULT_CODE_SENDER); + data.setCode(messageContext.getEnvelope().getVersion().getSenderFaultCode()); data.setSubcode(SpecSpecificConstants.getFaultSubcode(rmMessageContext.getRMNamespaceValue(), Sandesha2Constants.SOAPFaults.FaultType.CREATE_SEQUENCE_REFUSED )); - SOAPFactory factory = SOAPAbstractFactory.getSOAPFactory(SOAPVersion); + SOAPFactory factory = (SOAPFactory)messageContext.getEnvelope().getOMFactory(); OMElement identifierElement = factory.createOMElement(Sandesha2Constants.WSRM_COMMON.IDENTIFIER, rmMessageContext.getRMNamespaceValue(), Sandesha2Constants.WSRM_COMMON.NS_PREFIX_RM); identifierElement.setText(detail); @@ -335,18 +323,13 @@ public class FaultManager { // Return a UnsupportedSelectionFault error - int SOAPVersion = SandeshaUtil.getSOAPVersion(rmMessageContext.getMessageContext().getEnvelope()); - FaultData data = new FaultData(); - if (SOAPVersion == Sandesha2Constants.SOAPVersion.v1_1) - data.setCode(SOAP11Constants.FAULT_CODE_RECEIVER); - else - data.setCode(SOAP12Constants.FAULT_CODE_RECEIVER); + data.setCode(rmMessageContext.getMessageContext().getEnvelope().getVersion().getReceiverFaultCode()); data.setSubcode(SpecSpecificConstants.getFaultSubcode(Sandesha2Constants.SPEC_2007_02.MC_NS_URI, Sandesha2Constants.SOAPFaults.FaultType.UNSUPPORTED_SELECTION )); - SOAPFactory factory = SOAPAbstractFactory.getSOAPFactory(SOAPVersion); + SOAPFactory factory = (SOAPFactory)rmMessageContext.getMessageContext().getEnvelope().getOMFactory(); OMElement element = factory.createOMElement(Sandesha2Constants.WSRM_COMMON.UNSUPPORTED_ELEMENT, Sandesha2Constants.SPEC_2007_02.MC_NS_URI, Sandesha2Constants.WSRM_COMMON.NS_PREFIX_MC); element.setText(unsupportedElement); @@ -368,13 +351,8 @@ public class FaultManager { if (log.isDebugEnabled()) log.debug("Enter: FaultManager::makeMissingSelectionFault"); - int SOAPVersion = SandeshaUtil.getSOAPVersion(rmMessageContext.getMessageContext().getEnvelope()); - FaultData data = new FaultData(); - if (SOAPVersion == Sandesha2Constants.SOAPVersion.v1_1) - data.setCode(SOAP11Constants.FAULT_CODE_RECEIVER); - else - data.setCode(SOAP12Constants.FAULT_CODE_RECEIVER); + data.setCode(rmMessageContext.getMessageContext().getEnvelope().getVersion().getReceiverFaultCode()); data.setSubcode(SpecSpecificConstants.getFaultSubcode(Sandesha2Constants.SPEC_2007_02.MC_NS_URI, Sandesha2Constants.SOAPFaults.FaultType.MISSING_SELECTION )); @@ -456,18 +434,14 @@ public class FaultManager { if (bean!=null && bean.isTerminated()) { MessageContext referenceMessage = referenceRMMessage.getMessageContext(); FaultData data = new FaultData(); - int SOAPVersion = SandeshaUtil.getSOAPVersion(referenceMessage.getEnvelope()); - if (SOAPVersion == Sandesha2Constants.SOAPVersion.v1_1) - data.setCode(SOAP11Constants.FAULT_CODE_SENDER); - else - data.setCode(SOAP12Constants.FAULT_CODE_SENDER); + data.setCode(referenceMessage.getEnvelope().getVersion().getSenderFaultCode()); data.setSubcode(SpecSpecificConstants.getFaultSubcode(referenceRMMessage.getRMNamespaceValue(), Sandesha2Constants.SOAPFaults.FaultType.SEQUENCE_TERMINATED )); data.setReason(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.sequenceTerminatedFault, sequenceID)); data.setType(Sandesha2Constants.SOAPFaults.FaultType.SEQUENCE_TERMINATED); - SOAPFactory factory = SOAPAbstractFactory.getSOAPFactory(SOAPVersion); + SOAPFactory factory = (SOAPFactory)referenceMessage.getEnvelope().getOMFactory(); String rmNamespaceValue = referenceRMMessage.getRMNamespaceValue(); OMElement identifierElement = factory.createOMElement(Sandesha2Constants.WSRM_COMMON.IDENTIFIER, rmNamespaceValue, Sandesha2Constants.WSRM_COMMON.NS_PREFIX_RM); @@ -496,18 +470,14 @@ public class FaultManager { if (rmdBean!=null && rmdBean.isClosed()) { MessageContext referenceMessage = referenceRMMessage.getMessageContext(); FaultData data = new FaultData(); - int SOAPVersion = SandeshaUtil.getSOAPVersion(referenceMessage.getEnvelope()); - if (SOAPVersion == Sandesha2Constants.SOAPVersion.v1_1) - data.setCode(SOAP11Constants.FAULT_CODE_SENDER); - else - data.setCode(SOAP12Constants.FAULT_CODE_SENDER); + data.setCode(referenceMessage.getEnvelope().getVersion().getSenderFaultCode()); data.setSubcode(SpecSpecificConstants.getFaultSubcode(referenceRMMessage.getRMNamespaceValue(), Sandesha2Constants.SOAPFaults.FaultType.SEQUENCE_CLOSED )); data.setReason(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.cannotAcceptMsgAsSequenceClosedFault)); data.setType(Sandesha2Constants.SOAPFaults.FaultType.SEQUENCE_CLOSED); - SOAPFactory factory = SOAPAbstractFactory.getSOAPFactory(SOAPVersion); + SOAPFactory factory = (SOAPFactory)referenceMessage.getEnvelope().getOMFactory(); String rmNamespaceValue = referenceRMMessage.getRMNamespaceValue(); OMElement identifierElement = factory.createOMElement(Sandesha2Constants.WSRM_COMMON.IDENTIFIER, rmNamespaceValue, Sandesha2Constants.WSRM_COMMON.NS_PREFIX_RM); @@ -851,14 +821,12 @@ public class FaultManager { // Return a CreateSequenceRefused error MessageContext messageContext = rmMessageContext.getMessageContext(); - int SOAPVersion = SandeshaUtil.getSOAPVersion(messageContext.getEnvelope()); - FaultData data = new FaultData(); - data.setCode(SOAP11Constants.FAULT_CODE_SENDER); + data.setCode(messageContext.getEnvelope().getVersion().getSenderFaultCode()); data.setSubcode(SpecSpecificConstants.getFaultSubcode(rmMessageContext.getRMNamespaceValue(), Sandesha2Constants.SOAPFaults.FaultType.MESSAGE_NUMBER_ROLLOVER )); - SOAPFactory factory = SOAPAbstractFactory.getSOAPFactory(SOAPVersion); + SOAPFactory factory = (SOAPFactory)messageContext.getEnvelope().getOMFactory(); OMElement identifierElement = factory.createOMElement(Sandesha2Constants.WSRM_COMMON.IDENTIFIER, rmMessageContext.getRMNamespaceValue(), Sandesha2Constants.WSRM_COMMON.NS_PREFIX_RM); identifierElement.setText(sequenceId);