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 ja...@apache.org on 2005/03/04 08:56:57 UTC
cvs commit: ws-fx/sandesha/src/org/apache/sandesha/ws/rm/handlers RMServerRequestHandler.java RMHandler.java
jaliya 2005/03/03 23:56:57
Modified: sandesha/src/org/apache/sandesha/client RMSender.java
sandesha/src/org/apache/sandesha/server
MessageValidator.java Sender.java
sandesha/src/org/apache/sandesha/ws/rm RMHeaders.java
sandesha/src/org/apache/sandesha/ws/rm/handlers
RMServerRequestHandler.java
Removed: sandesha/src/org/apache/sandesha/ws/rm/handlers
RMHandler.java
Log:
Now the WS-RM headers and Addressing headers are not going passing the RMSender at the client side
Revision Changes Path
1.31 +8 -9 ws-fx/sandesha/src/org/apache/sandesha/client/RMSender.java
Index: RMSender.java
===================================================================
RCS file: /home/cvs/ws-fx/sandesha/src/org/apache/sandesha/client/RMSender.java,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- RMSender.java 2 Mar 2005 15:15:29 -0000 1.30
+++ RMSender.java 4 Mar 2005 07:56:56 -0000 1.31
@@ -18,12 +18,15 @@
import org.apache.axis.AxisFault;
import org.apache.axis.MessageContext;
+import org.apache.axis.Message;
import org.apache.axis.components.logger.LogFactory;
import org.apache.axis.message.SOAPHeaderElement;
+import org.apache.axis.message.addressing.AddressingHeaders;
import org.apache.axis.handlers.BasicHandler;
import org.apache.sandesha.Constants;
import org.apache.sandesha.IStorageManager;
import org.apache.sandesha.RMMessageContext;
+import org.apache.sandesha.ws.rm.RMHeaders;
import org.apache.sandesha.storage.dao.SandeshaQueueDAO;
import org.apache.sandesha.util.RMMessageCreator;
import org.apache.commons.logging.Log;
@@ -63,17 +66,13 @@
responseMessageContext = checkTheQueueForResponse(sequenceID, requestMesssageContext.getMessageID());
Thread.sleep(Constants.CLIENT_RESPONSE_CHECKING_INTERVAL);
}
- Vector headers=responseMessageContext.getMsgContext().getRequestMessage().getSOAPEnvelope().getHeaders();
- Iterator ite=headers.iterator();
- while(ite.hasNext()){
- SOAPHeaderElement headerElement = (SOAPHeaderElement)ite.next();
- headerElement.setMustUnderstand(false);
- headerElement.setProcessed(true);
- }
+ //We need these steps to filter all addressing and rm related headers.
+ Message resMsg=responseMessageContext.getMsgContext().getRequestMessage();
+ RMHeaders.removeHeaders(resMsg.getSOAPEnvelope());
+ AddressingHeaders addHeaders= new AddressingHeaders(resMsg.getSOAPEnvelope(),null,true,false,false, null);
- msgContext.setResponseMessage(responseMessageContext.getMsgContext()
- .getRequestMessage());
+ msgContext.setResponseMessage(resMsg);
} else {
boolean gotAck = false;
while (!gotAck) {
1.11 +2 -0 ws-fx/sandesha/src/org/apache/sandesha/server/MessageValidator.java
Index: MessageValidator.java
===================================================================
RCS file: /home/cvs/ws-fx/sandesha/src/org/apache/sandesha/server/MessageValidator.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- MessageValidator.java 2 Mar 2005 15:15:29 -0000 1.10
+++ MessageValidator.java 4 Mar 2005 07:56:56 -0000 1.11
@@ -43,6 +43,8 @@
} catch (SOAPException e) {
log.error(e);
//TODO Do we need to throw a Sequence Fault at this level.
+ } catch (Exception e) {
+ log.error(e);
}
}
1.28 +30 -33 ws-fx/sandesha/src/org/apache/sandesha/server/Sender.java
Index: Sender.java
===================================================================
RCS file: /home/cvs/ws-fx/sandesha/src/org/apache/sandesha/server/Sender.java,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- Sender.java 2 Mar 2005 15:15:29 -0000 1.27
+++ Sender.java 4 Mar 2005 07:56:56 -0000 1.28
@@ -82,11 +82,11 @@
try {
sendMessage(rmMessageContext);
} catch (AxisFault e) {
- log.error(e);
+ log.error(e);
} catch (SOAPException e) {
- log.error(e);
+ log.error(e);
} catch (Exception e) {
- log.error(e);
+ log.error(e);
}
} else {
//TODO REPORT ERROR
@@ -100,7 +100,7 @@
//System.out.print("|"); //Sender THREAD IS SLEEPING
Thread.sleep(Constants.SENDER_SLEEP_TIME - timeGap);
} catch (Exception ex) {
- log.error(ex);
+ log.error(ex);
}
}
}
@@ -199,14 +199,14 @@
call.setTargetEndpointAddress(rmMessageContext.getOutGoingAddress());
//We need these two handlers in our
- SimpleChain sc = new SimpleChain();
- Handler serverRequestHandler = new RMServerRequestHandler();
- Handler addressingHandler = new AddressingHandler();
+ //SimpleChain sc = new SimpleChain();
+ //Handler serverRequestHandler = new RMServerRequestHandler();
+ // Handler addressingHandler = new AddressingHandler();
- sc.addHandler(addressingHandler);
- sc.addHandler(serverRequestHandler);
+ // sc.addHandler(addressingHandler);
+ //sc.addHandler(serverRequestHandler);
- call.setClientHandlers(null, sc);
+ //call.setClientHandlers(null, sc);
if (rmMessageContext.getMsgContext().getRequestMessage() != null) {
String soapMsg = rmMessageContext.getMsgContext().getRequestMessage().getSOAPPartAsString();
@@ -216,33 +216,30 @@
}
private void sendServiceRequest(RMMessageContext rmMessageContext) throws Exception {
- if (rmMessageContext.getMsgContext().getRequestMessage() == null) {
- log.error("ERROR : NULL REQUEST MESSAGE");
- } else {
- SOAPEnvelope requestEnvelope = null;
- //Need to create the response envelope.
- requestEnvelope = EnvelopeCreator.createServiceRequestEnvelope(rmMessageContext);
- rmMessageContext.getMsgContext().setRequestMessage(new Message(requestEnvelope));
- rmMessageContext.setLastPrecessedTime(System.currentTimeMillis());
- rmMessageContext.setReTransmissionCount(rmMessageContext.getReTransmissionCount() + 1);
- if (rmMessageContext.getSync()) {
- Call call;
- call = prepareCall(rmMessageContext);
- //CHECK THIS
- storageManager.addSendMsgNo(rmMessageContext.getSequenceID(), rmMessageContext.getMsgNumber());
- call.invoke();
- processResponseMessage(call, rmMessageContext);
-
- } else {
- Call call = prepareCall(rmMessageContext);
- //Send the createSequnceRequest Asynchronously.
- storageManager.addSendMsgNo(rmMessageContext.getSequenceID(), rmMessageContext.getMsgNumber());
- call.invoke();
- }
+ SOAPEnvelope requestEnvelope = null;
+ //Need to create the response envelope.
+ requestEnvelope = EnvelopeCreator.createServiceRequestEnvelope(rmMessageContext);
+ rmMessageContext.getMsgContext().setRequestMessage(new Message(requestEnvelope));
+ rmMessageContext.setLastPrecessedTime(System.currentTimeMillis());
+ rmMessageContext.setReTransmissionCount(rmMessageContext.getReTransmissionCount() + 1);
+ if (rmMessageContext.getSync()) {
+ Call call;
+ call = prepareCall(rmMessageContext);
+ //CHECK THIS
+ storageManager.addSendMsgNo(rmMessageContext.getSequenceID(), rmMessageContext.getMsgNumber());
+ call.invoke();
+ processResponseMessage(call, rmMessageContext);
+
+ } else {
+ Call call = prepareCall(rmMessageContext);
+ //Send the createSequnceRequest Asynchronously.
+ storageManager.addSendMsgNo(rmMessageContext.getSequenceID(), rmMessageContext.getMsgNumber());
+ call.invoke();
}
+
}
private void sendMessage(RMMessageContext rmMessageContext) throws Exception {
1.13 +27 -2 ws-fx/sandesha/src/org/apache/sandesha/ws/rm/RMHeaders.java
Index: RMHeaders.java
===================================================================
RCS file: /home/cvs/ws-fx/sandesha/src/org/apache/sandesha/ws/rm/RMHeaders.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- RMHeaders.java 28 Feb 2005 13:26:08 -0000 1.12
+++ RMHeaders.java 4 Mar 2005 07:56:57 -0000 1.13
@@ -22,7 +22,6 @@
import org.apache.axis.message.SOAPEnvelope;
import org.apache.axis.message.SOAPHeaderElement;
-import javax.xml.soap.SOAPException;
import java.util.Iterator;
/**
@@ -109,7 +108,7 @@
* @return RMHeaders
* @throws AxisFault
*/
- public RMHeaders fromSOAPEnvelope(SOAPEnvelope env) throws SOAPException, AxisFault {
+ public RMHeaders fromSOAPEnvelope(SOAPEnvelope env) throws Exception, AxisFault {
if (env != null) {
Iterator iterator = env.getHeaders().iterator();
@@ -120,18 +119,21 @@
if (headerElement.getName().equals("Sequence")) {
sequence = new Sequence();
+ headerElement.setProcessed(true);
headerElement.setMustUnderstand(false);
sequence.fromSOAPEnveploe(headerElement);
}
if (headerElement.getName().equals("SequenceAcknowledgement")) {
sequenceAcknowledgement = new SequenceAcknowledgement();
+ headerElement.setProcessed(true);
headerElement.setMustUnderstand(false);
sequenceAcknowledgement.fromSOAPEnveploe(headerElement);
}
if (headerElement.getName().equals("AckRequested")) {
ackRequest = new AckRequested();
+ headerElement.setProcessed(true);
headerElement.setMustUnderstand(false);
ackRequest.fromSOAPEnveploe(headerElement);
}
@@ -274,4 +276,27 @@
public CreateSequence getCreateSequence() {
return createSequence;
}
+
+ public static void removeHeaders(SOAPEnvelope env) throws AxisFault {
+ if (env != null) {
+ Iterator iterator = env.getHeaders().iterator();
+ SOAPHeaderElement headerElement;
+
+ while (iterator.hasNext()) {
+ headerElement = (SOAPHeaderElement) iterator.next();
+
+ if (headerElement.getName().equals("Sequence")) {
+ headerElement.detachNode();
+ }
+
+ if (headerElement.getName().equals("SequenceAcknowledgement")) {
+ headerElement.detachNode();
+ }
+
+ if (headerElement.getName().equals("AckRequested")) {
+ headerElement.detachNode();
+ }
+ }
+ }
+ }
}
\ No newline at end of file
1.15 +7 -14 ws-fx/sandesha/src/org/apache/sandesha/ws/rm/handlers/RMServerRequestHandler.java
Index: RMServerRequestHandler.java
===================================================================
RCS file: /home/cvs/ws-fx/sandesha/src/org/apache/sandesha/ws/rm/handlers/RMServerRequestHandler.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- RMServerRequestHandler.java 2 Mar 2005 03:16:31 -0000 1.14
+++ RMServerRequestHandler.java 4 Mar 2005 07:56:57 -0000 1.15
@@ -18,11 +18,10 @@
import org.apache.axis.AxisFault;
import org.apache.axis.MessageContext;
-import org.apache.axis.message.SOAPHeaderElement;
-import org.apache.sandesha.Constants;
+import org.apache.axis.handlers.BasicHandler;
+import org.apache.sandesha.ws.rm.RMHeaders;
import javax.xml.soap.SOAPException;
-import java.util.Iterator;
/**
* class RMServerRequestHandler
@@ -31,7 +30,7 @@
* @author Jaliya Ekanayaka
* @author Sudar Nimalan
*/
-public class RMServerRequestHandler extends RMHandler {
+public class RMServerRequestHandler extends BasicHandler {
/*
* (non-Javadoc)
@@ -47,19 +46,13 @@
*/
public void invoke(MessageContext msgContext) throws AxisFault {
try {
- Iterator iterator = msgContext.getRequestMessage()
- .getSOAPEnvelope().getHeader().getChildElements();
- SOAPHeaderElement elements;
- while (iterator.hasNext()) {
- elements = (SOAPHeaderElement) iterator.next();
- elements.setProcessed(true);
-
- }
-
- setPropertyToMessageContext(msgContext, Constants.ENV_RM_REQUEST_HEADERS);
+ RMHeaders rmHeaders = new RMHeaders();
+ rmHeaders.fromSOAPEnvelope(msgContext.getRequestMessage().getSOAPEnvelope());
} catch (SOAPException e) {
throw AxisFault.makeFault(e);
+ } catch (Exception e) {
+ throw AxisFault.makeFault(e);
}
}