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