[jboss-svn-commits] JBL Code SVN: r9845 - in labs/jbosstm/trunk/XTS/WSTX/classes/com/arjuna/mw/wst: service and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Feb 28 11:24:06 EST 2007
Author: kevin.conner at jboss.com
Date: 2007-02-28 11:24:06 -0500 (Wed, 28 Feb 2007)
New Revision: 9845
Modified:
labs/jbosstm/trunk/XTS/WSTX/classes/com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.java
labs/jbosstm/trunk/XTS/WSTX/classes/com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.java
Log:
Removed SOAP header mustUnderstand attribute when processed: JBTM-201
Modified: labs/jbosstm/trunk/XTS/WSTX/classes/com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.java
===================================================================
--- labs/jbosstm/trunk/XTS/WSTX/classes/com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.java 2007-02-28 16:08:27 UTC (rev 9844)
+++ labs/jbosstm/trunk/XTS/WSTX/classes/com/arjuna/mw/wst/client/JaxRPCHeaderContextProcessor.java 2007-02-28 16:24:06 UTC (rev 9845)
@@ -172,6 +172,7 @@
final Name name = env.createName(CoordinationConstants.WSCOOR_ELEMENT_COORDINATION_CONTEXT, CoordinationConstants.WSCOOR_PREFIX, CoordinationConstants.WSCOOR_NAMESPACE) ;
final SOAPHeaderElement headerElement = header.addHeaderElement(name) ;
headerElement.addNamespaceDeclaration(CoordinationConstants.WSCOOR_PREFIX, CoordinationConstants.WSCOOR_NAMESPACE) ;
+ headerElement.setMustUnderstand(true) ;
CoordinationContextHelper.serialise(env, headerElement, coordinationContext) ;
}
}
Modified: labs/jbosstm/trunk/XTS/WSTX/classes/com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.java
===================================================================
--- labs/jbosstm/trunk/XTS/WSTX/classes/com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.java 2007-02-28 16:08:27 UTC (rev 9844)
+++ labs/jbosstm/trunk/XTS/WSTX/classes/com/arjuna/mw/wst/service/JaxRPCHeaderContextProcessor.java 2007-02-28 16:24:06 UTC (rev 9845)
@@ -41,6 +41,7 @@
import javax.xml.soap.Name;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPFactory;
import javax.xml.soap.SOAPHeader;
import javax.xml.soap.SOAPHeaderElement;
import javax.xml.soap.SOAPMessage;
@@ -113,7 +114,8 @@
try
{
final SOAPEnvelope soapEnvelope = soapMessage.getSOAPPart().getEnvelope() ;
- final SOAPHeaderElement soapHeaderElement = getHeaderElement(soapEnvelope, CoordinationConstants.WSCOOR_NAMESPACE, CoordinationConstants.WSCOOR_ELEMENT_COORDINATION_CONTEXT) ;
+ final SOAPHeader soapHeader = soapEnvelope.getHeader() ;
+ final SOAPHeaderElement soapHeaderElement = getHeaderElement(soapHeader, CoordinationConstants.WSCOOR_NAMESPACE, CoordinationConstants.WSCOOR_ELEMENT_COORDINATION_CONTEXT) ;
if (soapHeaderElement != null)
{
@@ -123,11 +125,13 @@
{
final TxContext txContext = new com.arjuna.mwlabs.wst.at.context.TxContextImple(cc) ;
TransactionManagerFactory.transactionManager().resume(txContext) ;
+ clearMustUnderstand(soapHeader, soapHeaderElement) ;
}
else if (BusinessActivityConstants.WSBA_PROTOCOL_ATOMIC_OUTCOME.equals(coordinationType))
{
final TxContext txContext = new com.arjuna.mwlabs.wst.ba.context.TxContextImple(cc);
BusinessActivityManagerFactory.businessActivityManager().resume(txContext) ;
+ clearMustUnderstand(soapHeader, soapHeaderElement) ;
}
else
{
@@ -209,15 +213,14 @@
/**
* Retrieve the first header matching the uri and name.
- * @param soapEnvelope The soap envelope containing the header.
+ * @param soapHeader The soap header containing the header element.
* @param uri The uri of the header element.
* @param name The name of the header element.
* @return The header element or null if not found.
*/
- private SOAPHeaderElement getHeaderElement(final SOAPEnvelope soapEnvelope, final String uri, final String name)
+ private SOAPHeaderElement getHeaderElement(final SOAPHeader soapHeader, final String uri, final String name)
throws SOAPException
{
- final SOAPHeader soapHeader = soapEnvelope.getHeader() ;
if (soapHeader != null)
{
final Iterator headerIter = SOAPUtil.getChildElements(soapHeader) ;
@@ -253,4 +256,20 @@
return lhs.equals(rhs) ;
}
}
+
+ /**
+ * Clear the soap MustUnderstand.
+ * @param soapHeader The SOAP header.
+ * @param soapHeaderElement The SOAP header element.
+ */
+ private void clearMustUnderstand(final SOAPHeader soapHeader, final SOAPHeaderElement soapHeaderElement)
+ throws SOAPException
+ {
+ final Name headerName = soapHeader.getElementName() ;
+
+ final SOAPFactory factory = SOAPFactory.newInstance() ;
+ final Name attributeName = factory.createName("mustUnderstand", headerName.getPrefix(), headerName.getURI()) ;
+
+ soapHeaderElement.removeAttribute(attributeName) ;
+ }
}
More information about the jboss-svn-commits
mailing list