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/05/09 05:45:27 UTC

cvs commit: ws-fx/sandesha/src/org/apache/sandesha/client ClientStorageManager.java RMSender.java RMService.java

jaliya      2005/05/08 20:45:27

  Modified:    sandesha/src/org/apache/sandesha/client
                        ClientStorageManager.java RMSender.java
                        RMService.java
  Log:
  Reformat the code
  
  Revision  Changes    Path
  1.31      +30 -69    ws-fx/sandesha/src/org/apache/sandesha/client/ClientStorageManager.java
  
  Index: ClientStorageManager.java
  ===================================================================
  RCS file: /home/cvs/ws-fx/sandesha/src/org/apache/sandesha/client/ClientStorageManager.java,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- ClientStorageManager.java	8 May 2005 19:10:51 -0000	1.30
  +++ ClientStorageManager.java	9 May 2005 03:45:26 -0000	1.31
  @@ -26,34 +26,19 @@
   import org.apache.sandesha.storage.CallbackData;
   import org.apache.sandesha.storage.dao.ISandeshaDAO;
   import org.apache.sandesha.storage.dao.SandeshaDAOFactory;
  -import org.apache.sandesha.storage.queue.IncomingSequence;
   import org.apache.sandesha.storage.queue.SandeshaQueue;
   import org.apache.sandesha.ws.rm.RMHeaders;
   
  -import java.util.Iterator;
   import java.util.Map;
   
  -/**
  - * @author Jaliya
  - *         <p/>
  - *         TODO To change the template for this generated type comment go to Window -
  - *         Preferences - Java - Code Style - Code Templates
  - */
   public class ClientStorageManager implements IStorageManager {
   
  -    protected static Log log = LogFactory.getLog(ClientStorageManager.class
  -            .getName());
  +    protected static Log log = LogFactory.getLog(ClientStorageManager.class.getName());
   
       private ISandeshaDAO accessor;
   	private static Callback callBack = null;
   
  -    /*
  -     * (non-Javadoc)
  -     * 
  -     * @see org.apache.sandesha.IStorageManager#init()
  -     */
       public void init() {
  -        // TODO Auto-generated method stub
       }
   
       public ClientStorageManager() {
  @@ -142,7 +127,7 @@
       public RMMessageContext getNextMessageToSend() {
           RMMessageContext msg;
           msg = accessor.getNextPriorityMessageContextToSend();
  -        if (msg == null)
  +        if (null == msg)
               msg = accessor.getNextOutgoingMsgContextToSend();
   
           if (msg == null) {
  @@ -174,14 +159,14 @@
       public boolean setApprovedOutSequence(String createSeqId, String newOutSequenceId) {
   
           boolean done = false;
  -       // String oldOutsequenceId = accessor.getFirstCreateSequenceMsgId(createSeqId);
  +        // String oldOutsequenceId = accessor.getFirstCreateSequenceMsgId(createSeqId);
           String oldOutsequenceId = createSeqId;
  -        if(oldOutsequenceId==null){
  +        if (null == oldOutsequenceId) {
               return false;
           }
  -        
  +
           String sequenceID = accessor.getSequenceOfOutSequence(oldOutsequenceId);
  -        
  +
           if (sequenceID == null) {
               log.error(Constants.ErrorMessages.SET_APPROVED_OUT_SEQ);
               return false;
  @@ -190,7 +175,7 @@
           accessor.setOutSequenceApproved(sequenceID, true);
           accessor.removeCreateSequenceMsg(oldOutsequenceId);
           return true;
  -    
  +
       }
   
       /**
  @@ -204,8 +189,9 @@
   
       /*
        * (non-Javadoc)
  -     * 
  -     * @see org.apache.sandesha.IStorageManager#insertOutgoingMessage(org.apache.sandesha.RMMessageContext)
  +     *
  +     * @see org.apache.sandesha.IStorageManager#insertOutgoingMessage
  +     * (org.apache.sandesha.RMMessageContext)
        */
       public void insertOutgoingMessage(RMMessageContext msg) {
           String sequenceId = msg.getSequenceID();
  @@ -214,15 +200,15 @@
   
       /*
        * (non-Javadoc)
  -     * 
  -     * @see org.apache.sandesha.IStorageManager#insertIncomingMessage(org.apache.sandesha.RMMessageContext)
  +     *
  +     * @see org.apache.sandesha.IStorageManager#insertIncomingMessage
  +     *(org.apache.sandesha.RMMessageContext)
        */
   
  -    //IN THE CLIENT RESPONSE HASH HAS THE ID OF RESPONSE MESSAGES.
       public void insertIncomingMessage(RMMessageContext rmMessageContext) {
           RMHeaders rmHeaders = rmMessageContext.getRMHeaders();
  -        RelatesTo relatesTo = (RelatesTo) rmMessageContext
  -                .getAddressingHeaders().getRelatesTo().get(0);
  +        RelatesTo relatesTo = (RelatesTo) rmMessageContext.getAddressingHeaders().getRelatesTo().get(
  +                0);
           String messageId = relatesTo.getURI().toString();
           String sequenceId = null;
           
  @@ -230,21 +216,17 @@
           sequenceId = accessor.searchForSequenceId(messageId);
           
           SandeshaQueue sq = SandeshaQueue.getInstance();
  -        //sq.displayOutgoingMap();
           boolean exists = accessor.isIncomingSequenceExists(sequenceId);
   
           if (!exists) {
               accessor.addIncomingSequence(sequenceId);
           }
   
  -        //TODO: add getRmHeaders method to MessageContext
  -        long messageNumber = rmHeaders.getSequence().getMessageNumber()
  -                .getMessageNumber();
  -        if (messageNumber <= 0)
  -            return; //TODO: throw some exception
  +        long messageNumber = rmHeaders.getSequence().getMessageNumber().getMessageNumber();
  +        if (0 >= messageNumber)
  +            return;
           Long msgNo = new Long(messageNumber);
  -        accessor.addMessageToIncomingSequence(sequenceId, msgNo,
  -                rmMessageContext);
  +        accessor.addMessageToIncomingSequence(sequenceId, msgNo, rmMessageContext);
       }
   
   
  @@ -278,42 +260,28 @@
           return result;
       }
   
  -    /* (non-Javadoc)
  -     * @see org.apache.sandesha.IStorageManager#insertTerminateSeqMessage(org.apache.sandesha.RMMessageContext)
  -     */
  +
       public void insertTerminateSeqMessage(RMMessageContext terminateSeqMessage) {
           accessor.addLowPriorityMessage(terminateSeqMessage);
  -
       }
   
  -    /* (non-Javadoc)
  -     * @see org.apache.sandesha.IStorageManager#isAllSequenceComplete()
  -     */
  -    public boolean isAllSequenceComplete() {
   
  +    public boolean isAllSequenceComplete() {
           boolean outTerminateSent = accessor.isAllOutgoingTerminateSent();
  -
           boolean incomingTerminateReceived = accessor.isAllIncommingTerminateReceived();
  -
           if (outTerminateSent && incomingTerminateReceived)
               return true;
           else
               return false;
       }
   
  -    /* (non-Javadoc)
  -     * @see org.apache.sandesha.IStorageManager#isResponseComplete(java.lang.String)
  -     */
  +
       public boolean isResponseComplete(String sequenceID) {
  -        // TODO Auto-generated method stub
           return false;
       }
   
  -    /* (non-Javadoc)
  -     * @see org.apache.sandesha.IStorageManager#terminateSequence(java.lang.String)
  -     */
  +
       public void terminateSequence(String sequenceID) {
  -        // TODO Auto-generated method stub
       }
   
       public void setAckReceived(String seqId, long msgNo) {
  @@ -325,13 +293,6 @@
       }
   
   
  -    /* (non-Javadoc)
  -     * @see org.apache.sandesha.IStorageManager#addSentMsgNo(java.lang.String, long)
  -     */
  -
  -    /* (non-Javadoc)
  -     * @see org.apache.sandesha.IStorageManager#addSendMsgNo(java.lang.String, long)
  -     */
       public void addSendMsgNo(String seqId, long msgNo) {
           accessor.addSendMsgNo(accessor.getSequenceOfOutSequence(seqId), msgNo);
       }
  @@ -402,21 +363,21 @@
       public String getKeyFromOutgoingSeqId(String seqId) {
           return accessor.getKeyFromOutgoingSequenceId(seqId);
       }
  -    
  -    public void setAcksTo(String seqId,String acksTo){      
  -        accessor.setAcksTo(seqId,acksTo);
  +
  +    public void setAcksTo(String seqId, String acksTo) {
  +        accessor.setAcksTo(seqId, acksTo);
       }
  -    
  -    public String getAcksTo(String seqId){
  +
  +    public String getAcksTo(String seqId) {
           return accessor.getAcksTo(seqId);
       }
   
       public void addOffer(String msgID, String offerID) {
  -        accessor.addOffer(msgID,offerID);
  +        accessor.addOffer(msgID, offerID);
       }
   
       public String getOffer(String msgID) {
  -       return accessor.getOffer(msgID);
  +        return accessor.getOffer(msgID);
       }
   
   	public  void setCallback(Callback cb){
  
  
  
  1.40      +57 -21    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.39
  retrieving revision 1.40
  diff -u -r1.39 -r1.40
  --- RMSender.java	7 May 2005 08:14:44 -0000	1.39
  +++ RMSender.java	9 May 2005 03:45:26 -0000	1.40
  @@ -32,15 +32,40 @@
   import org.apache.sandesha.util.RMMessageCreator;
   import org.apache.sandesha.ws.rm.RMHeaders;
   
  +/**
  + * In the client side of axis there is a flexibility of using custom sender to send SOAP messages.
  + * However axis's use of senders are mainly to handle transport related funtionalites.
  + * <code>RMSender</code>has to be used by the users who wish to use WS-ReliableMessaging capability
  + * in their clients.<P>
  + * The main funtionality of <code>RMSender</code> is to insert the messages coming from client and
  + * also the generated messages to the <code>SandeshaQueue</code>.
  + * If the message coming in from the client is request/response in nature then <code>RMSender</code>
  + * will wait polling <code>SandeshaQueue</code> till it gets an appropriate response.
  + * Due to the above reason, if the client is sending several messages
  + * (of request/response in nature) to be sent reliably, they will be sent reliably by
  + * <b>Sandesha</b> however the client will wait at each message till it gets the response, to send
  + * the next. To avoid this client can use callbacks provided by axis
  + * in <code>org.apache.axis.client.async</code> package.
  + */
   public class RMSender extends BasicHandler {
   
       private IStorageManager storageManager;
       private static final Log log = LogFactory.getLog(RMSender.class.getName());
       private static final UUIDGen uuidGen = UUIDGenFactory.getUUIDGen();
   
  +    /**
  +     * This is the main method that is invoked by the axis engine. This method will add the reqest
  +     * messages from the client to <code>SandeshaQueue</code> with the generated messages such as
  +     * Create Sequence message and Terminate Sequence message.
  +     *
  +     * @param msgContext
  +     * @throws AxisFault
  +     */
  +
       public void invoke(MessageContext msgContext) throws AxisFault {
   
  -        //Initialize the storage manager. We are in the client side So initialize the client Storage Manager.
  +        //Initialize the storage manager. We are in the client side So initialize the
  +        //Client Storage Manager.
           storageManager = new ClientStorageManager();
   
           try {
  @@ -56,19 +81,22 @@
               }
   
               if (reqMsgCtx.isLastMessage()) {
  -                storageManager.insertTerminateSeqMessage(RMMessageCreator.createTerminateSeqMsg(reqMsgCtx, Constants.CLIENT));
  +                storageManager.insertTerminateSeqMessage(
  +                        RMMessageCreator.createTerminateSeqMsg(reqMsgCtx, Constants.CLIENT));
               }
   
               if (reqMsgCtx.isHasResponse()) {
                   RMMessageContext responseMessageContext = null;
                   while (responseMessageContext == null) {
  -                    responseMessageContext = checkTheQueueForResponse(tempSeqID, reqMsgCtx.getMessageID());
  +                    responseMessageContext =
  +                            checkTheQueueForResponse(tempSeqID, reqMsgCtx.getMessageID());
                       Thread.sleep(Constants.CLIENT_RESPONSE_CHECKING_INTERVAL);
                   }
                   //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);
  +                AddressingHeaders addHeaders = new AddressingHeaders(resMsg.getSOAPEnvelope(),
  +                        null, true, false, false, null);
   
                   msgContext.setResponseMessage(resMsg);
               } else {
  @@ -80,53 +108,61 @@
           }
       }
   
  -
  -    private RMMessageContext processFirstRequestMessage(RMMessageContext reqRMMsgContext, boolean sync) throws Exception {
  -
  +    /**
  +     * This method will process the first request message.
  +     *
  +     * @param reqRMMsgContext
  +     * @param sync
  +     * @return
  +     * @throws Exception
  +     */
  +    private RMMessageContext processFirstRequestMessage(RMMessageContext reqRMMsgContext,
  +                                                        boolean sync) throws Exception {
           String msgID = Constants.UUID + uuidGen.nextUUID();
           String offerID = null;
           if (reqRMMsgContext.isHasResponse()) {
               offerID = Constants.UUID + uuidGen.nextUUID();
               storageManager.addRequestedSequence(offerID);
  -            storageManager.addOffer(msgID,offerID);
  +            storageManager.addOffer(msgID, offerID);
   
           }
   
  -
  -        RMMessageContext createSeqRMMsgContext = RMMessageCreator.createCreateSeqMsg(reqRMMsgContext, Constants.CLIENT, msgID, offerID);
  +        RMMessageContext createSeqRMMsgContext = RMMessageCreator.createCreateSeqMsg(
  +                reqRMMsgContext, Constants.CLIENT, msgID, offerID);
           storageManager.addOutgoingSequence(reqRMMsgContext.getSequenceID());
  -        storageManager.setTemporaryOutSequence(reqRMMsgContext.getSequenceID(), createSeqRMMsgContext.getMessageID());
  +        storageManager.setTemporaryOutSequence(reqRMMsgContext.getSequenceID(),
  +                createSeqRMMsgContext.getMessageID());
   
           createSeqRMMsgContext.setSync(sync);
           storageManager.addCreateSequenceRequest(createSeqRMMsgContext);
  -        RMMessageContext serviceRequestMsg = RMMessageCreator.createServiceRequestMessage(reqRMMsgContext);
  +        RMMessageContext serviceRequestMsg = RMMessageCreator.createServiceRequestMessage(
  +                reqRMMsgContext);
           processRequestMessage(serviceRequestMsg);
           return reqRMMsgContext;
       }
   
  -    private RMMessageContext processRequestMessage(RMMessageContext reqRMMsgContext) throws Exception {
  -        RMMessageContext serviceRequestMsg = RMMessageCreator.createServiceRequestMessage(reqRMMsgContext);
  +    private RMMessageContext processRequestMessage(RMMessageContext reqRMMsgContext)
  +            throws Exception {
  +        RMMessageContext serviceRequestMsg = RMMessageCreator.createServiceRequestMessage(
  +                reqRMMsgContext);
           storageManager.insertOutgoingMessage(serviceRequestMsg);
           return reqRMMsgContext;
       }
   
  -
  -    private boolean checkTheQueueForAck(String sequenceId, String reqMessageID) {
  -        return storageManager.checkForAcknowledgement(sequenceId, reqMessageID);
  -    }
  -
       private RMMessageContext checkTheQueueForResponse(String sequenceId, String reqMessageID) {
           return storageManager.checkForResponseMessage(sequenceId, reqMessageID);
       }
   
       private RMMessageContext getRMMessageContext(MessageContext msgCtx) throws Exception {
  -        //Get a copy of the MessageContext. This is required when sending multiple messages from one call object
  +        //Get a copy of the MessageContext. This is required when sending multiple messages from
  +        //one call object
           MessageContext newMsgContext = RMMessageCreator.cloneMsgContext(msgCtx);
           RMMessageContext requestMesssageContext = new RMMessageContext();
           Call call = (Call) newMsgContext.getProperty(MessageContext.CALL);
   
           requestMesssageContext = ClientPropertyValidator.validate(call);
  -        requestMesssageContext.setOutGoingAddress((String) msgCtx.getProperty(MessageContext.TRANS_URL));
  +        requestMesssageContext.setOutGoingAddress(
  +                (String) msgCtx.getProperty(MessageContext.TRANS_URL));
           requestMesssageContext.setMsgContext(newMsgContext);
           return requestMesssageContext;
       }
  
  
  
  1.5       +6 -2      ws-fx/sandesha/src/org/apache/sandesha/client/RMService.java
  
  Index: RMService.java
  ===================================================================
  RCS file: /home/cvs/ws-fx/sandesha/src/org/apache/sandesha/client/RMService.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- RMService.java	7 Mar 2005 05:34:34 -0000	1.4
  +++ RMService.java	9 May 2005 03:45:26 -0000	1.5
  @@ -16,8 +16,12 @@
    */
   
   package org.apache.sandesha.client;
  -
  +/**
  + * This class is used as a web service in the client side.
  + * This is the <b>addressible endpoint<b> for Sandesha client side. All the "reply"
  + * messages coming from server should be addressed to this endpoint unless they are of the type
  + * anonymous.
  + */
   public class RMService {
       //The service is used as a dummy entity in the client side only.
  -
   }