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 2004/10/01 14:54:03 UTC
cvs commit: ws-fx/sandesha/src/org/apache/sandesha/client RMSender.java
jaliya 2004/10/01 05:54:03
Modified: sandesha/src/org/apache/sandesha/client RMSender.java
Log:
fix few bugs
Revision Changes Path
1.4 +183 -169 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.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- RMSender.java 30 Sep 2004 10:44:01 -0000 1.3
+++ RMSender.java 1 Oct 2004 12:54:03 -0000 1.4
@@ -53,205 +53,219 @@
public class RMSender extends BasicHandler {
- /**
- * Initialize the StorageManager Add the messsag to the queue and just
- * return Create SimpleAxisServer
- */
-
- private static boolean senderStarted = false;
- private static boolean serverStarted = false;
-
- private IStorageManager storageManager;
-
-
-
-
-
- private SimpleAxisServer sas = null;
- private Sender sender = null;
-
-
- public void invoke(MessageContext msgContext) throws AxisFault {
- //Check whether we have messages or not in the queue.
- //If yes, just add
- //If no, need to add a priority message.
- //return.
-
- //Start the sender
- //Start the SimpleAxisServer
- //Initiate the StorageManager
- //Insert the messae
- //Return null ; Later return for callback.
-
- storageManager = new ClientStorageManager();
-
- if (!senderStarted) {
- //Pass the storageManager to the Sender.
- sender = new Sender(storageManager);
- Thread senderThread= new Thread(sender);
- senderThread.setDaemon(true);
- senderThread.start();
- }
-
- if (!serverStarted) {
- sas = new SimpleAxisServer();
- serverStarted = true;
-
- try {
-
- //At this moment we don't know a sequence
- long nextMsgNumber=storageManager.getNextMessageNumber(Constants.CLIENT_DEFAULD_SEQUENCE_ID);
-
- if(nextMsgNumber==1){
- //This is the first message..
- //add a create sequence message
- //add the message with the temp seqID
- System.out.println("First Message");
- long msgNo=1;
-
- //Addressing information currently hard-coded.
- //---------------------------------------------------------------
- AddressingHeaders addrHeaders = new AddressingHeaders();
- From from= new From(new Address("http://localhost:8090/axis/services/MyService"));
- addrHeaders.setFrom(from);
-
- To to = new To(new Address("http://127.0.0.1:8080/axis/services/EchoStringService?wsdl"));
- addrHeaders.setTo(to);
-
- ReplyTo replyTo = new ReplyTo(new Address("http://localhost:8090/axis/services/MyService"));
- addrHeaders.setReplyTo(replyTo);
- //---------------------------------------------------------------
-
- //Set the tempUUID
- String tempUUID="abcdefgh";
- RMMessageContext createSeqRMMsgContext=getCreateSeqRMContext( msgContext,addrHeaders,tempUUID);
- storageManager.addCreateSequenceRequest(createSeqRMMsgContext);
- RMMessageContext reqRMMsgContext=getReqRMContext(msgContext, addrHeaders,tempUUID, msgNo);
- storageManager.insertRequestMessage(reqRMMsgContext);
-
-
- }else{
- //Add the message only.
- }
-
- /*RMMessageContext rmMessageContext= new RMMessageContext();
-
- rmMessageContext.setMsgContext(msgContext);
- rmMessageContext.setSequenceID("abc");
- storageManager.insertRequestMessage(rmMessageContext);
-
- storageManager.setTemporaryOutSequence("abc","def");
- storageManager.setApprovedOutSequence("def","pqr");
-
- */
-
-
- SimpleProvider sp = new SimpleProvider();
- sas.setMyConfig(sp);
- //SOAPService myService = new SOAPService(new RPCProvider());
-
- Handler addrHanlder = new AddressingHandler();
- Handler rmHandler = new RMServerRequestHandler();
-
- SimpleChain shc = new SimpleChain();
- shc.addHandler(addrHanlder);
- shc.addHandler(rmHandler);
-
- SOAPService myService =
- new SOAPService(shc, new org.apache.sandesha.ws.rm.providers.RMProvider(), null);
- // customize the webservice
- JavaServiceDesc desc = new JavaServiceDesc();
- myService.setOption("className", "samples.userguide.example3.MyService");
- myService.setOption("allowedMethods", "*");
-
- //Add Handlers ; Addressing and ws-rm before the service.
-
- desc.setName("MyService");
- myService.setServiceDescription(desc);
-
- // deploy the service to server
- sp.deployService("MyService", myService);
- // finally start the server
- sas.setServerSocket(new ServerSocket(8090));
-
- Thread serverThread = new Thread(sas);
- //serverThread.setDaemon(true);
- serverThread.start();
-
- } catch (IOException ex) {
- ex.printStackTrace();
- }
-
- }
-
- msgContext.setResponseMessage(null);
-
-
- }
-
- /**
+ /**
+ * Initialize the StorageManager Add the messsag to the queue and just
+ * return Create SimpleAxisServer
+ */
+
+ private static boolean senderStarted = false;
+
+ private static boolean serverStarted = false;
+
+ private IStorageManager storageManager;
+
+ private SimpleAxisServer sas = null;
+
+ private Sender sender = null;
+
+ public void invoke(MessageContext msgContext) throws AxisFault {
+ //Check whether we have messages or not in the queue.
+ //If yes, just add
+ //If no, need to add a priority message.
+ //return.
+
+ //Start the sender
+ //Start the SimpleAxisServer
+ //Initiate the StorageManager
+ //Insert the messae
+ //Return null ; Later return for callback.
+
+ storageManager = new ClientStorageManager();
+
+ if (!senderStarted) {
+ //Pass the storageManager to the Sender.
+ sender = new Sender(storageManager);
+ Thread senderThread = new Thread(sender);
+ senderThread.setDaemon(true);
+ senderThread.start();
+ }
+
+ if (!serverStarted) {
+ sas = new SimpleAxisServer();
+ serverStarted = true;
+ try{
+ SimpleProvider sp = new SimpleProvider();
+ sas.setMyConfig(sp);
+ //SOAPService myService = new SOAPService(new RPCProvider());
+
+ Handler addrHanlder = new AddressingHandler();
+ Handler rmHandler = new RMServerRequestHandler();
+
+ SimpleChain shc = new SimpleChain();
+ shc.addHandler(addrHanlder);
+ shc.addHandler(rmHandler);
+
+ SOAPService myService = new SOAPService(shc,
+ new org.apache.sandesha.ws.rm.providers.RMProvider(), null);
+ // customize the webservice
+ JavaServiceDesc desc = new JavaServiceDesc();
+ myService.setOption("className",
+ "samples.userguide.example3.MyService");
+ myService.setOption("allowedMethods", "*");
+
+ //Add Handlers ; Addressing and ws-rm before the service.
+
+ desc.setName("MyService");
+ myService.setServiceDescription(desc);
+
+ // deploy the service to server
+ sp.deployService("MyService", myService);
+ // finally start the server
+ sas.setServerSocket(new ServerSocket(8090));
+
+ Thread serverThread = new Thread(sas);
+ //serverThread.setDaemon(true);
+ serverThread.start();
+ } catch (IOException ex) {
+ ex.printStackTrace();
+ }
+
+
+ }
+ try {
+
+ //At this moment we don't know a sequence
+ long nextMsgNumber = storageManager
+ .getNextMessageNumber(Constants.CLIENT_DEFAULD_SEQUENCE_ID);
+
+ if (nextMsgNumber == 1) {
+ //This is the first message..
+ //add a create sequence message
+ //add the message with the temp seqID
+ System.out.println("First Message");
+
+ //Addressing information currently hard-coded.
+ //---------------------------------------------------------------
+ AddressingHeaders addrHeaders = new AddressingHeaders();
+ From from = new From(new Address(
+ "http://localhost:8090/axis/services/MyService"));
+ addrHeaders.setFrom(from);
+
+ To to = new To(
+ new Address(
+ "http://127.0.0.1:8080/axis/services/EchoStringService?wsdl"));
+ addrHeaders.setTo(to);
+
+ ReplyTo replyTo = new ReplyTo(new Address(
+ "http://localhost:8090/axis/services/MyService"));
+ addrHeaders.setReplyTo(replyTo);
+ //---------------------------------------------------------------
+
+ //Set the tempUUID
+ String tempUUID = "ABCDEFGH";
+ RMMessageContext createSeqRMMsgContext = getCreateSeqRMContext(
+ msgContext, addrHeaders, tempUUID);
+ storageManager.addCreateSequenceRequest(createSeqRMMsgContext);
+ storageManager.setTemporaryOutSequence(Constants.CLIENT_DEFAULD_SEQUENCE_ID,"ABCDEFGH");
+ RMMessageContext reqRMMsgContext = getReqRMContext(msgContext,
+ addrHeaders, tempUUID, nextMsgNumber);
+ storageManager.insertRequestMessage(reqRMMsgContext);
+
+ } else {
+ //Add the message only.
+ }
+
+ /*
+ * RMMessageContext rmMessageContext= new RMMessageContext();
+ *
+ * rmMessageContext.setMsgContext(msgContext);
+ * rmMessageContext.setSequenceID("abc");
+ * storageManager.insertRequestMessage(rmMessageContext);
+ *
+ * storageManager.setTemporaryOutSequence("abc","def");
+ * storageManager.setApprovedOutSequence("def","pqr");
+ *
+ */
+
+
+
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+
+ msgContext.setResponseMessage(null);
+
+ }
+
+ /**
* @param msgContext
* @param addrHeaders
* @return
*/
- private RMMessageContext getReqRMContext(MessageContext msgContext, AddressingHeaders addrHeaders, String uuid, long msgNo) {
+ private RMMessageContext getReqRMContext(MessageContext msgContext,
+ AddressingHeaders addrHeaders, String uuid, long msgNo) {
// Create the RMMessageContext to hold the create Sequence Request.
-
+
//RMHeaders for the message.
RMHeaders rmHeaders = new RMHeaders();
-
+
//Sequence for the new message.
- Sequence seq=new Sequence();
- Identifier id= new Identifier();
+ Sequence seq = new Sequence();
+ Identifier id = new Identifier();
id.setIdentifier(uuid);
seq.setIdentifier(id);
rmHeaders.setSequence(seq);
-
+
//Message Number for the new message.
- MessageNumber msgNumber= new MessageNumber();
+ MessageNumber msgNumber = new MessageNumber();
msgNumber.setMessageNumber(msgNo);
seq.setMessageNumber(msgNumber);
-
-
- RMMessageContext reqRMMsgContext= new RMMessageContext();
+
+ RMMessageContext reqRMMsgContext = new RMMessageContext();
//Set the RMheaders to the RMMessageContext.
reqRMMsgContext.setRMHeaders(rmHeaders);
//Set the addrssing headers to RMMessageContext.
reqRMMsgContext.setAddressingHeaders(addrHeaders);
reqRMMsgContext.setMsgContext(msgContext);
- reqRMMsgContext.setOutGoingAddress("http://127.0.0.1:8080/axis/services/EchoStringService?wsdl");
- SOAPEnvelope resEnvelope = EnvelopeCreator.createServiceRequestEnvelope(uuid,
- reqRMMsgContext, Constants.CLIENT);
-
+ reqRMMsgContext
+ .setOutGoingAddress("http://127.0.0.1:8080/axis/services/EchoStringService?wsdl");
+ SOAPEnvelope resEnvelope = EnvelopeCreator
+ .createServiceRequestEnvelope(uuid, reqRMMsgContext,
+ Constants.CLIENT);
+
return reqRMMsgContext;
}
- private RMMessageContext getCreateSeqRMContext(MessageContext msgContext, AddressingHeaders addrHeaders, String uuid) throws MalformedURIException{
- //Set the action
- Action action = new Action(
- new URI(Constants.ACTION_CREATE_SEQUENCE));
+ private RMMessageContext getCreateSeqRMContext(MessageContext msgContext,
+ AddressingHeaders addrHeaders, String uuid)
+ throws MalformedURIException {
+ //Set the action
+ Action action = new Action(new URI(Constants.ACTION_CREATE_SEQUENCE));
addrHeaders.setAction(action);
-
+
//Create the RMMessageContext to hold the create Sequence Request.
- RMMessageContext createSeqRMMsgContext= new RMMessageContext();
+ RMMessageContext createSeqRMMsgContext = new RMMessageContext();
createSeqRMMsgContext.setAddressingHeaders(addrHeaders);
-
+
//Set the outgoing address these need to be corrected.
- createSeqRMMsgContext.setOutGoingAddress("http://127.0.0.1:8080/axis/services/EchoStringService?wsdl");
-
- SOAPEnvelope resEnvelope = EnvelopeCreator.createCreateSequenceEnvelope(uuid,
- createSeqRMMsgContext, Constants.CLIENT);
-
- MessageContext createSeqMsgContext = new MessageContext(msgContext.getAxisEngine());
-
-
+ createSeqRMMsgContext
+ .setOutGoingAddress("http://127.0.0.1:8080/axis/services/EchoStringService?wsdl");
+
+ SOAPEnvelope resEnvelope = EnvelopeCreator
+ .createCreateSequenceEnvelope(uuid, createSeqRMMsgContext,
+ Constants.CLIENT);
+
+ MessageContext createSeqMsgContext = new MessageContext(msgContext
+ .getAxisEngine());
+
createSeqMsgContext.setRequestMessage(new Message(resEnvelope));
createSeqRMMsgContext.setMsgContext(createSeqMsgContext);
//Set the message type
- createSeqRMMsgContext.setMessageType(Constants.MSG_TYPE_CREATE_SEQUENCE_REQUEST);
- return createSeqRMMsgContext;
- }
+ createSeqRMMsgContext
+ .setMessageType(Constants.MSG_TYPE_CREATE_SEQUENCE_REQUEST);
+ return createSeqRMMsgContext;
+ }
}