jaliya 2005/02/11 03:28:27
Modified: sandesha/src/org/apache/sandesha Constants.java
RMMessageContext.java
sandesha/src/org/apache/sandesha/server
AcknowledgementProcessor.java FaultProcessor.java
RMMessageProcessorIdentifier.java
sandesha/src/org/apache/sandesha/ws/rm/providers
RMProvider.java
Log:
Fixed some bugs in the code, by testing the inter-op with IBM end point
Revision Changes Path
1.22 +9 -0 ws-fx/sandesha/src/org/apache/sandesha/Constants.java
Index: Constants.java
===================================================================
RCS file: /home/cvs/ws-fx/sandesha/src/org/apache/sandesha/Constants.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- Constants.java 24 Dec 2004 04:13:36 -0000 1.21
+++ Constants.java 11 Feb 2005 11:28:26 -0000 1.22
@@ -265,5 +265,14 @@
public static final String DEFAULT_URI="uri:defaultWSRM";
public static final int CLIENT_RESPONSE_CHECKING_INTERVAL=500;
+
+ public interface AddressingHeadersValidationErrors{
+ public static final String NO_ADDRESSING_HEADERS="No Addressing
Headers Available in this Message";
+ public static final String NO_MESSAGE_ID="MessageID should be present
in the message";
+
+ }
+
+
+
}
1.20 +0 -7
ws-fx/sandesha/src/org/apache/sandesha/RMMessageContext.java
Index: RMMessageContext.java
===================================================================
RCS file:
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/RMMessageContext.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- RMMessageContext.java 11 Jan 2005 13:49:34 -0000 1.19
+++ RMMessageContext.java 11 Feb 2005 11:28:26 -0000 1.20
@@ -157,13 +157,6 @@
return rmHeaders;
}
- /**
- * @param rmHeaders
- * The rmHeaders to set.
- */
- public void setRmHeaders(RMHeaders rmHeaders) {
- this.rmHeaders = rmHeaders;
- }
/**
* @return Returns the sourceURL.
1.15 +1 -1
ws-fx/sandesha/src/org/apache/sandesha/server/AcknowledgementProcessor.java
Index: AcknowledgementProcessor.java
===================================================================
RCS file:
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/server/AcknowledgementProcessor.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- AcknowledgementProcessor.java 2 Feb 2005 13:41:55 -0000 1.14
+++ AcknowledgementProcessor.java 11 Feb 2005 11:28:27 -0000 1.15
@@ -33,7 +33,7 @@
/**
* @author
*/
-public final class AcknowledgementProcessor implements
org.apache.sandesha.server.IRMMessageProcessor {
+public final class AcknowledgementProcessor implements IRMMessageProcessor {
private IStorageManager storageManger = null;
public AcknowledgementProcessor(IStorageManager storageManger) {
1.5 +6 -0
ws-fx/sandesha/src/org/apache/sandesha/server/FaultProcessor.java
Index: FaultProcessor.java
===================================================================
RCS file:
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/server/FaultProcessor.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- FaultProcessor.java 12 Jan 2005 12:19:31 -0000 1.4
+++ FaultProcessor.java 11 Feb 2005 11:28:27 -0000 1.5
@@ -19,11 +19,17 @@
*/
public class FaultProcessor implements IRMMessageProcessor {
private IStorageManager storageManager = null;
+ private AxisFault axisFault=null;
public FaultProcessor(IStorageManager storageManager) {
this.storageManager = storageManager;
}
+ public FaultProcessor (IStorageManager storageManager, AxisFault
axisFault){
+ this.storageManager=storageManager;
+ this.axisFault=axisFault;
+ }
+
/*
* (non-Javadoc)
*
1.9 +7 -2
ws-fx/sandesha/src/org/apache/sandesha/server/RMMessageProcessorIdentifier.java
Index: RMMessageProcessorIdentifier.java
===================================================================
RCS file:
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/server/RMMessageProcessorIdentifier.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- RMMessageProcessorIdentifier.java 20 Oct 2004 10:36:25 -0000 1.8
+++ RMMessageProcessorIdentifier.java 11 Feb 2005 11:28:27 -0000 1.9
@@ -17,6 +17,7 @@
package org.apache.sandesha.server;
import org.apache.axis.message.addressing.AddressingHeaders;
+import org.apache.axis.AxisFault;
import org.apache.sandesha.Constants;
import org.apache.sandesha.IStorageManager;
import org.apache.sandesha.RMMessageContext;
@@ -37,6 +38,11 @@
*/
public static IRMMessageProcessor getMessageProcessor(
RMMessageContext rmMessageContext, IStorageManager
storageManager) {
+ try{
+ MessageValidator.validate(rmMessageContext);
+ }catch(AxisFault af){
+ return new FaultProcessor(storageManager,af);
+ }
AddressingHeaders addrHeaders =
rmMessageContext.getAddressingHeaders();
RMHeaders rmHeaders = rmMessageContext.getRMHeaders();
@@ -52,8 +58,7 @@
return new TerminateSequenceProcessor(storageManager);
} else if ((rmHeaders.getSequenceAcknowledgement() != null)
|| (rmHeaders.getSequence().getMessageNumber() != null)) {
-
- return new CompositeProcessor(storageManager);
+ return new CompositeProcessor(storageManager);
} else
return new FaultProcessor(storageManager);
}
1.27 +34 -66
ws-fx/sandesha/src/org/apache/sandesha/ws/rm/providers/RMProvider.java
Index: RMProvider.java
===================================================================
RCS file:
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/ws/rm/providers/RMProvider.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- RMProvider.java 2 Feb 2005 13:41:55 -0000 1.26
+++ RMProvider.java 11 Feb 2005 11:28:27 -0000 1.27
@@ -16,23 +16,23 @@
*/
package org.apache.sandesha.ws.rm.providers;
-import org.apache.axis.MessageContext;
import org.apache.axis.AxisFault;
+import org.apache.axis.MessageContext;
+import org.apache.axis.components.logger.LogFactory;
import org.apache.axis.message.SOAPEnvelope;
-import org.apache.axis.message.SOAPHeaderElement;
import org.apache.axis.message.addressing.AddressingHeaders;
import org.apache.axis.providers.java.RPCProvider;
+import org.apache.commons.logging.Log;
import org.apache.sandesha.IStorageManager;
import org.apache.sandesha.RMException;
import org.apache.sandesha.RMInitiator;
import org.apache.sandesha.RMMessageContext;
import org.apache.sandesha.server.IRMMessageProcessor;
+import org.apache.sandesha.server.MessageValidator;
import org.apache.sandesha.server.RMMessageProcessorIdentifier;
+import org.apache.sandesha.server.dao.ServerQueueDAO;
import org.apache.sandesha.ws.rm.RMHeaders;
-import java.util.Vector;
-import java.util.Iterator;
-
/**
* class RMProvider
*
@@ -44,91 +44,59 @@
public class RMProvider extends RPCProvider {
private static boolean rmInvokerStarted = false;
+ private static boolean senderStarted;
+ private boolean client;
+ private static final Log log =
LogFactory.getLog(ServerQueueDAO.class.getName());
- private static boolean senderStarted = false;
-
- private static boolean client = false;
-
- /**
- * Method processMessage
- *
- * @param msgContext
- * @param reqEnv
- * @param resEnv
- * @param obj
- * @throws Exception
- */
- public void processMessage(MessageContext msgContext, SOAPEnvelope
reqEnv,
- SOAPEnvelope resEnv, Object obj) throws Exception {
+ public void processMessage(
+ MessageContext msgContext, SOAPEnvelope reqEnv, SOAPEnvelope
resEnv, Object obj)
+ throws Exception {
- /**
********************************************************************* */
- System.out.println("RMProvider GOT SOAP REQUEST.....\n");
+ System.out.println("RMProvider Received a SOAP REQUEST.....\n");
+ RMProvider.log.info("RMProvider Received a SOAP REQUEST");
- // System.out.println(reqEnv.toString());
- //Initiates the StorageManager
IStorageManager storageManager = RMInitiator.init(client);
storageManager.init();
- //Get the addressing headers.
- AddressingHeaders addressingHeaders = null;
- addressingHeaders = (AddressingHeaders) msgContext
-
.getProperty(org.apache.axis.message.addressing.Constants.ENV_ADDRESSING_REQUEST_HEADERS);
-
- //Get the RM headers
- RMHeaders rmHeaders = new RMHeaders();
- rmHeaders.fromSOAPEnvelope(reqEnv);
-
-
- //Set the RMMessageContext
RMMessageContext rmMessageContext = new RMMessageContext();
+ rmMessageContext.setMsgContext(msgContext);
+ try {
+ MessageValidator.validate(rmMessageContext);
+ } catch (AxisFault af) {
+ //send the falut
+ }
- if (rmHeaders.getSequence() != null) {
-
rmMessageContext.setSequenceID(rmHeaders.getSequence().getIdentifier().toString());
+ RMHeaders rmHeaders = rmMessageContext.getRMHeaders();
+ AddressingHeaders addrHeaders =
rmMessageContext.getAddressingHeaders();
- if(rmHeaders.getSequence().getLastMessage()!=null){
- System.out.println("SETTING THE LAST MESSAGE");
- rmMessageContext.setLastMessage(true);
- }
+ if (null != rmHeaders.getSequence()) {
+
rmMessageContext.setSequenceID(rmHeaders.getSequence().getIdentifier().toString());
+ if (null != rmHeaders.getSequence().getLastMessage()) {
+ rmMessageContext.setLastMessage(true);
+ }
}
- if (addressingHeaders.getMessageID() != null) {
- rmMessageContext.setMessageID(addressingHeaders.getMessageID()
- .toString());
- //System.out.println("MSG ID :
- // "+addressingHeaders.getMessageID().toString());
- }
- //This should be there in the final version.
- else {
- System.out
-
.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~111");
- throw new RMException("MessageID should be present in the
message.");
+ if (null != addrHeaders.getMessageID()) {
+
rmMessageContext.setMessageID(addrHeaders.getMessageID().toString());
}
- rmMessageContext.setMsgContext(msgContext);
- rmMessageContext.setAddressingHeaders(addressingHeaders);
- rmMessageContext.setRMHeaders(rmHeaders);
-
- new RMMessageProcessorIdentifier();
- IRMMessageProcessor rmMessageProcessor = RMMessageProcessorIdentifier
- .getMessageProcessor(rmMessageContext, storageManager);
- //Process message.
+ IRMMessageProcessor rmMessageProcessor =
RMMessageProcessorIdentifier.getMessageProcessor(
+ rmMessageContext, storageManager);
try {
if (!rmMessageProcessor.processMessage(rmMessageContext)) {
msgContext.setResponseMessage(null);
}
} catch (RMException rmEx) {
rmEx.printStackTrace();
- throw new AxisFault(rmEx.getStackTrace().toString());
- //TODO
- //throw a SOAPFault.
+ RMProvider.log.error(rmEx);
}
}
- //This is used by the Client to set the
- //set the side that the RMProvider is used.
+ //This is used by the Client to set the
+ //set the side that the RMProvider is used.
public void setClient(boolean client) {
- RMProvider.client = client;
+ this.client = client;
}
}
\ No newline at end of file