Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/transport/Sandesha2TransportSender.java URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/transport/Sandesha2TransportSender.java?view=diff&rev=462697&r1=462696&r2=462697 ============================================================================== --- webservices/sandesha/trunk/java/src/org/apache/sandesha2/transport/Sandesha2TransportSender.java (original) +++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/transport/Sandesha2TransportSender.java Tue Oct 10 21:31:51 2006 @@ -1,90 +1,98 @@ -/* - * Copyright 2004,2005 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - * - */ - -package org.apache.sandesha2.transport; - -import javax.xml.namespace.QName; - -import org.apache.axis2.AxisFault; -import org.apache.axis2.context.ConfigurationContext; -import org.apache.axis2.context.MessageContext; -import org.apache.axis2.description.HandlerDescription; -import org.apache.axis2.description.Parameter; -import org.apache.axis2.description.TransportOutDescription; -import org.apache.axis2.engine.AxisConfiguration; -import org.apache.axis2.transport.TransportSender; -import org.apache.sandesha2.Sandesha2Constants; -import org.apache.sandesha2.SandeshaException; -import org.apache.sandesha2.i18n.SandeshaMessageHelper; -import org.apache.sandesha2.i18n.SandeshaMessageKeys; -import org.apache.sandesha2.storage.StorageManager; -import org.apache.sandesha2.util.SandeshaUtil; - -public class Sandesha2TransportSender implements TransportSender { - - public void cleanup(MessageContext msgContext) throws AxisFault { - - } - - public void stop() { - - } - - public void invoke(MessageContext msgContext) throws AxisFault { - - //setting the correct transport sender. - TransportOutDescription transportOut = (TransportOutDescription) msgContext.getProperty(Sandesha2Constants.ORIGINAL_TRANSPORT_OUT_DESC); - - if (transportOut==null) - throw new SandeshaException (SandeshaMessageHelper.getMessage( - SandeshaMessageKeys.transportOutNotPresent)); - - msgContext.setTransportOut(transportOut); - - String key = (String) msgContext.getProperty(Sandesha2Constants.MESSAGE_STORE_KEY); - - if (key==null) - throw new SandeshaException (SandeshaMessageHelper.getMessage( - SandeshaMessageKeys.cannotGetStorageKey)); - - ConfigurationContext configurationContext = msgContext.getConfigurationContext(); - AxisConfiguration axisConfiguration = configurationContext.getAxisConfiguration(); - - StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configurationContext,axisConfiguration); - - msgContext.setProperty(Sandesha2Constants.QUALIFIED_FOR_SENDING,Sandesha2Constants.VALUE_TRUE); - - storageManager.updateMessageContext(key,msgContext); - - } - - //Below methods are not used - public void cleanUp(MessageContext msgContext) throws AxisFault {} - - public void init(ConfigurationContext confContext, TransportOutDescription transportOut) throws AxisFault {} - - public void cleanup() {} - - public HandlerDescription getHandlerDesc() {return null;} - - public String getName() { return null;} - - public Parameter getParameter(String name) { return null; } - - public void init(HandlerDescription handlerdesc) {} - -} +/* + * Copyright 2004,2005 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + * + */ + +package org.apache.sandesha2.transport; + +import org.apache.axis2.AxisFault; +import org.apache.axis2.context.ConfigurationContext; +import org.apache.axis2.context.MessageContext; +import org.apache.axis2.description.HandlerDescription; +import org.apache.axis2.description.Parameter; +import org.apache.axis2.description.TransportOutDescription; +import org.apache.axis2.engine.AxisConfiguration; +import org.apache.axis2.transport.TransportSender; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.sandesha2.Sandesha2Constants; +import org.apache.sandesha2.SandeshaException; +import org.apache.sandesha2.i18n.SandeshaMessageHelper; +import org.apache.sandesha2.i18n.SandeshaMessageKeys; +import org.apache.sandesha2.storage.StorageManager; +import org.apache.sandesha2.util.SandeshaUtil; + +public class Sandesha2TransportSender implements TransportSender { + + private static final Log log = LogFactory.getLog(Sandesha2TransportSender.class); + + public void cleanup(MessageContext msgContext) throws AxisFault { + + } + + public void stop() { + + } + + public void invoke(MessageContext msgContext) throws AxisFault { + + if (log.isDebugEnabled()) + log.debug("Enter: Sandesha2TransportSender::invoke, " + msgContext.getEnvelope().getHeader()); + + //setting the correct transport sender. + TransportOutDescription transportOut = (TransportOutDescription) msgContext.getProperty(Sandesha2Constants.ORIGINAL_TRANSPORT_OUT_DESC); + + if (transportOut==null) + throw new SandeshaException (SandeshaMessageHelper.getMessage( + SandeshaMessageKeys.transportOutNotPresent)); + + msgContext.setTransportOut(transportOut); + + String key = (String) msgContext.getProperty(Sandesha2Constants.MESSAGE_STORE_KEY); + + if (key==null) + throw new SandeshaException (SandeshaMessageHelper.getMessage( + SandeshaMessageKeys.cannotGetStorageKey)); + + ConfigurationContext configurationContext = msgContext.getConfigurationContext(); + AxisConfiguration axisConfiguration = configurationContext.getAxisConfiguration(); + + StorageManager storageManager = SandeshaUtil.getSandeshaStorageManager(configurationContext,axisConfiguration); + + msgContext.setProperty(Sandesha2Constants.QUALIFIED_FOR_SENDING,Sandesha2Constants.VALUE_TRUE); + + storageManager.updateMessageContext(key,msgContext); + + if (log.isDebugEnabled()) + log.debug("Exit: Sandesha2TransportSender::invoke"); + + } + + //Below methods are not used + public void cleanUp(MessageContext msgContext) throws AxisFault {} + + public void init(ConfigurationContext confContext, TransportOutDescription transportOut) throws AxisFault {} + + public void cleanup() {} + + public HandlerDescription getHandlerDesc() {return null;} + + public String getName() { return null;} + + public Parameter getParameter(String name) { return null; } + + public void init(HandlerDescription handlerdesc) {} + +}
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.java URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.java?view=diff&rev=462697&r1=462696&r2=462697 ============================================================================== --- webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.java (original) +++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.java Tue Oct 10 21:31:51 2006 @@ -115,17 +115,25 @@ // Adding the ack(s) to the application message boolean acks = false; SOAPHeader appMsgHeaders = rmMessageContext.getMessageContext().getEnvelope().getHeader(); + SOAPHeader headers = ackMsgContext.getEnvelope().getHeader(); if(headers != null) { for(int i = 0; i < Sandesha2Constants.SPEC_NS_URIS.length; i++) { + QName name = new QName(Sandesha2Constants.SPEC_NS_URIS[i], Sandesha2Constants.WSRM_COMMON.SEQUENCE_ACK); Iterator iter = headers.getChildrenWithName(name); while(iter.hasNext()) { - appMsgHeaders.addChild((OMElement) iter.next()); + OMElement ackElement = (OMElement) iter.next(); + + SequenceAcknowledgement sequenceAcknowledgement = new SequenceAcknowledgement (Sandesha2Constants.SPEC_NS_URIS[i]); + sequenceAcknowledgement.fromOMElement(ackElement); + + sequenceAcknowledgement.toOMElement(appMsgHeaders); acks = true; } } } + if (!acks) { String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.invalidAckMessageEntry, ackMsgContext.getEnvelope().toString()); Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RMMsgCreator.java URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RMMsgCreator.java?view=diff&rev=462697&r1=462696&r2=462697 ============================================================================== --- webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RMMsgCreator.java (original) +++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RMMsgCreator.java Tue Oct 10 21:31:51 2006 @@ -41,6 +41,7 @@ import org.apache.axis2.wsdl.WSDLConstants.WSDL20_2004Constants; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.rampart.RampartMessageData; import org.apache.sandesha2.RMMsgContext; import org.apache.sandesha2.Sandesha2Constants; import org.apache.sandesha2.SandeshaException; @@ -68,6 +69,7 @@ import org.apache.sandesha2.wsrm.SequenceOffer; import org.apache.sandesha2.wsrm.TerminateSequence; import org.apache.sandesha2.wsrm.TerminateSequenceResponse; +import org.apache.ws.security.handler.WSHandlerConstants; /** * Used to create new RM messages. @@ -560,7 +562,7 @@ public static RMMsgContext createTerminateSeqResponseMsg(RMMsgContext terminateSeqRMMsg, MessageContext outMessage, StorageManager storageManager) throws SandeshaException { - + RMMsgContext terminateSeqResponseRMMsg = new RMMsgContext(outMessage); ConfigurationContext configurationContext = terminateSeqRMMsg.getMessageContext().getConfigurationContext(); @@ -595,7 +597,7 @@ finalizeCreation(terminateSeqRMMsg.getMessageContext(), outMessage); - terminateSeqResponseRMMsg.getMessageContext().setServerSide(true); +// terminateSeqResponseRMMsg.getMessageContext().setServerSide(true); return terminateSeqResponseRMMsg; } Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java?view=diff&rev=462697&r1=462696&r2=462697 ============================================================================== --- webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java (original) +++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java Tue Oct 10 21:31:51 2006 @@ -17,7 +17,11 @@ package org.apache.sandesha2.util; +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.io.InputStreamReader; import java.io.OutputStream; +import java.io.StringBufferInputStream; import java.lang.reflect.Constructor; import java.util.ArrayList; import java.util.Iterator; @@ -25,8 +29,10 @@ import javax.xml.namespace.QName; import javax.xml.stream.FactoryConfigurationError; +import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLOutputFactory; import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; import org.apache.axiom.om.OMElement; @@ -35,6 +41,7 @@ import org.apache.axiom.soap.SOAPEnvelope; import org.apache.axiom.soap.SOAPFactory; import org.apache.axiom.soap.SOAPHeader; +import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder; import org.apache.axis2.AxisFault; import org.apache.axis2.Constants; import org.apache.axis2.addressing.AddressingConstants; @@ -613,9 +620,6 @@ //TODO - move these to a property file. newMessageContext.setProperty(RampartMessageData.KEY_RAMPART_POLICY, referenceMessage .getProperty(RampartMessageData.KEY_RAMPART_POLICY)); - newMessageContext.setProperty(RampartMessageData.KEY_RAMPART_POLICY, referenceMessage - .getProperty(RampartMessageData.KEY_RAMPART_POLICY)); - newMessageContext.setProperty(WSHandlerConstants.RECV_RESULTS, referenceMessage.getProperty(WSHandlerConstants.RECV_RESULTS)); @@ -1125,6 +1129,38 @@ phases.add(security); return phases; + } + + public static MessageContext cloneMessageContext (MessageContext oldMsg) throws AxisFault { + MessageContext newMsg = new MessageContext (); + newMsg.setOptions(new Options (oldMsg.getOptions())); + + + //TODO hd to use following hack since a 'clone' method was not available for SOAPEnvelopes. + //Do it the correct way when that becomes available. + OMElement newElement = oldMsg.getEnvelope().cloneOMElement(); + String elementString = newElement.toString(); + + try { + ByteArrayInputStream stream = new ByteArrayInputStream( + elementString.getBytes()); + StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder( + XMLInputFactory.newInstance().createXMLStreamReader(stream), + null); + SOAPEnvelope envelope = builder.getSOAPEnvelope(); + + newMsg.setEnvelope(envelope); + } catch (XMLStreamException e) { + throw new AxisFault (e); + } + + newMsg.setConfigurationContext(oldMsg.getConfigurationContext()); + newMsg.setAxisService(oldMsg.getAxisService()); + newMsg.setTransportOut(oldMsg.getTransportOut()); + newMsg.setTransportIn(oldMsg.getTransportIn()); + + return newMsg; + } } Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java?view=diff&rev=462697&r1=462696&r2=462697 ============================================================================== --- webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java (original) +++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java Tue Oct 10 21:31:51 2006 @@ -313,10 +313,14 @@ try { resenvelope = TransportUtils.createSOAPMessage(msgCtx, msgCtx.getEnvelope().getNamespace().getName()); } catch (AxisFault e) { - // TODO Auto-generated catch block - e.printStackTrace(); - log.debug(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.soapEnvNotSet)); - log.debug(e.getStackTrace().toString()); + //Cannot find a valid SOAP envelope. + if (log.isDebugEnabled()) { + log.debug(SandeshaMessageHelper + .getMessage(SandeshaMessageKeys.soapEnvNotSet)); + log.debug(e); + } + + return; } // if the request msg ctx is withina a transaction, processing if Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/MakeConnection.java URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/MakeConnection.java?view=diff&rev=462697&r1=462696&r2=462697 ============================================================================== --- webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/MakeConnection.java (original) +++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/MakeConnection.java Tue Oct 10 21:31:51 2006 @@ -28,6 +28,7 @@ import org.apache.sandesha2.SandeshaException; import org.apache.sandesha2.i18n.SandeshaMessageHelper; import org.apache.sandesha2.i18n.SandeshaMessageKeys; +import org.apache.sandesha2.util.SandeshaUtil; public class MakeConnection implements IOMRMPart { @@ -38,10 +39,11 @@ Address address = null; public MakeConnection (String namespaceValue) throws SandeshaException { + if (!isNamespaceSupported(namespaceValue)) throw new SandeshaException (SandeshaMessageHelper.getMessage( SandeshaMessageKeys.specDoesNotSupportElement, - namespaceValue,Sandesha2Constants.WSRM_COMMON.ACK_REQUESTED)); + namespaceValue,Sandesha2Constants.WSRM_COMMON.MAKE_CONNECTION)); this.namespaceValue = namespaceValue; } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
