You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by ch...@apache.org on 2006/10/11 06:31:52 UTC
svn commit: r462697 [3/3] - in
/webservices/sandesha/trunk/java/src/org/apache/sandesha2: handlers/ i18n/
msgprocessors/ storage/beans/ storage/inmemory/ transport/ util/ workers/
wsrm/
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: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org