jaliya      2005/05/15 23:08:17

  Modified:    sandesha/config WSRMPolicy.xml
               sandesha/interop build.xml
               sandesha/interop/org/apache/sandesha/samples/interop
                        EchoClientAsyncAck.java EchoClientSyncAck.java
               sandesha/interop/org/apache/sandesha/samples/interop/testclient
                        InteropStub.java
               sandesha/src/org/apache/sandesha Constants.java
                        EnvelopeCreator.java RMInitiator.java
               sandesha/src/org/apache/sandesha/client
                        ClientStorageManager.java RMSender.java
               sandesha/src/org/apache/sandesha/server RMInvoker.java
               sandesha/src/org/apache/sandesha/server/msgprocessors
                        CompositeProcessor.java
               sandesha/src/org/apache/sandesha/storage/queue
                        IncomingSequence.java SandeshaQueue.java
               sandesha/src/org/apache/sandesha/ws/rm Accept.java
                        AcksTo.java CreateSequenceResponse.java
                        Identifier.java SequenceOffer.java
  Log:
  Some changes were made to the interop related classes, these are mainly to 
handle the interop testing using the jsp
  
  Revision  Changes    Path
  1.3       +3 -2      ws-fx/sandesha/config/WSRMPolicy.xml
  
  Index: WSRMPolicy.xml
  ===================================================================
  RCS file: /home/cvs/ws-fx/sandesha/config/WSRMPolicy.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- WSRMPolicy.xml    16 Mar 2005 04:22:45 -0000      1.2
  +++ WSRMPolicy.xml    16 May 2005 06:08:17 -0000      1.3
  @@ -8,8 +8,9 @@
                <wsp:UsingPolicy wsdl:required="true" /> 
                <wsp:Policy wsu:Id="MyPolicy" > 
                        <wsrm:RMAssertion> 
  -                             <wsrm:InactivityTimeout Milliseconds="600000" 
/> 
  -                             <wsrm:BaseRetransmissionInterval 
Milliseconds="3000" /> 
  +                     <!--    <wsrm:InactivityTimeout Milliseconds="600000" 
/> -->
  +                <wsrm:InactivityTimeout Milliseconds="30000" />
  +                             <wsrm:BaseRetransmissionInterval 
Milliseconds="3000" />
                                <wsrm:ExponentialBackoff /> 
                                <wsrm:AcknowledgementInterval 
Milliseconds="200" /> 
                        </wsrm:RMAssertion> 
  
  
  
  1.8       +12 -8     ws-fx/sandesha/interop/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/ws-fx/sandesha/interop/build.xml,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- build.xml 14 May 2005 06:52:30 -0000      1.7
  +++ build.xml 16 May 2005 06:08:17 -0000      1.8
  @@ -177,9 +177,10 @@
           <echo 
message="-------------------------------------------------------------------"/>
           <echo message="                                                      
             "/>
           <echo message=" available targets are:                               
             "/>
  -        <echo message="   run_async_ping  -->runs interop test for AsyncPing 
             "/>
  -        <echo message="   run_sync_ping   -->runs interop test for SyncPing  
             "/>
  -        <echo message="   run_echo_string -->runs interop test for 
EchoStirng             "/>
  +        <echo message="   ping_sync       -->runs interop test for AsyncPing 
             "/>
  +        <echo message="   ping_async      -->runs interop test for SyncPing  
             "/>
  +        <echo message="   echo_sync_ack   -->runs interop test for 
EchoStirng             "/>
  +        <echo message="   echo_async_ack  -->runs interop test for 
EchoStirng             "/>
           <echo message="   compile.interop --> compiles the interop source 
code            "/>
           <echo message="   clean           --> cleans up all generated files 
and           "/>
           <echo message="   jar             --> creates the JAR file           
             "/>
  @@ -290,7 +291,6 @@
           </ant-->
           <copy todir="${build.interop}">
               <fileset dir="${dir.interop}" includes="client-config.wsdd"/>
  -            <fileset dir="${dir.config}" 
includes="client-listener-config.wsdd"/>
               <fileset dir="${dir.config}" includes="sandesha.properties"/>
           </copy>
   
  @@ -385,16 +385,16 @@
        <target name="prepare-jar" depends="compile.library,prepare-dist" 
description="prepares for creating jar">
   
        <property name="build.temp-jar" value="${build.dir}/temp-jar" />
  -     <property name="sandesha.jar.name" value="sandesha.jar" />
  +     <property name="sandesha.jar.name" value="sandesha-1.0.jar" />
                <property name="dir.dist.jar" value="${dir.dist}/jar" />
                <property name="sandesha.jar" 
value="${dir.dist.jar}/${sandesha.jar.name}" />
  +        <property name="axishome" 
value="${env1.CATALINA_HOME}/webapps/axis/WEB-INF/lib" />
                <mkdir dir="${dir.dist.jar}" />
                        
        </target>
        
        <target name="jar" depends="prepare-jar" description="creates the 
sandesha jar">
  -
  -             <jar basedir="${build.classes}" destfile="${sandesha.jar}" />
  +             <jar basedir="${build.classes}" destfile="${sandesha.jar}" />
        
        </target>
                
  @@ -428,7 +428,11 @@
        <target name="war.copy" depends="war" >
                <copy file="${sandesha.war}" todir="${webapps}" />
        </target>
  -     
  +
  +    <target name="jar.copy" depends="jar" >
  +             <copy file="${sandesha.jar}" todir="${axishome}" />
  +     </target>
  +
        <target name="war" depends="create.war" description="creates the war 
file" />
        
   </project>
  
  
  
  1.4       +4 -3      
ws-fx/sandesha/interop/org/apache/sandesha/samples/interop/EchoClientAsyncAck.java
  
  Index: EchoClientAsyncAck.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/interop/org/apache/sandesha/samples/interop/EchoClientAsyncAck.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- EchoClientAsyncAck.java   9 May 2005 12:33:14 -0000       1.3
  +++ EchoClientAsyncAck.java   16 May 2005 06:08:17 -0000      1.4
  @@ -20,6 +20,8 @@
   import org.apache.axis.client.Call;
   import org.apache.axis.client.Service;
   import org.apache.axis.encoding.XMLType;
  +import org.apache.axis.components.uuid.UUIDGenFactory;
  +import org.apache.axis.components.uuid.UUIDGen;
   import org.apache.sandesha.Constants;
   import org.apache.sandesha.RMInitiator;
   import org.apache.sandesha.RMTransport;
  @@ -42,10 +44,9 @@
               // initClient is "false". If the service is of type 
request/response the parameter value shoule be "false"
               RMInitiator.initClient(false);
   
  -            //UUIDGen uuidGen = UUIDGenFactory.getUUIDGen(); //Can use this 
for continuous testing.
  -            //String str = uuidGen.nextUUID();
  +            UUIDGen uuidGen = UUIDGenFactory.getUUIDGen(); //Can use this 
for continuous testing.
  +            String str = uuidGen.nextUUID();
   
  -            String str = "ABCDEF1234";
   
               Service service = new Service();
               Call call = (Call) service.createCall();
  
  
  
  1.4       +4 -4      
ws-fx/sandesha/interop/org/apache/sandesha/samples/interop/EchoClientSyncAck.java
  
  Index: EchoClientSyncAck.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/interop/org/apache/sandesha/samples/interop/EchoClientSyncAck.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- EchoClientSyncAck.java    9 May 2005 12:33:14 -0000       1.3
  +++ EchoClientSyncAck.java    16 May 2005 06:08:17 -0000      1.4
  @@ -20,6 +20,8 @@
   import org.apache.axis.client.Call;
   import org.apache.axis.client.Service;
   import org.apache.axis.encoding.XMLType;
  +import org.apache.axis.components.uuid.UUIDGenFactory;
  +import org.apache.axis.components.uuid.UUIDGen;
   import org.apache.sandesha.Constants;
   import org.apache.sandesha.RMInitiator;
   import org.apache.sandesha.RMTransport;
  @@ -44,10 +46,8 @@
               // shoule be "false"
               RMInitiator.initClient(false);
   
  -            //UUIDGen uuidGen = UUIDGenFactory.getUUIDGen(); //Can use this 
for continuous testing.
  -            //String str = uuidGen.nextUUID();
  -
  -            String str = "ABCDEF1234";
  +            UUIDGen uuidGen = UUIDGenFactory.getUUIDGen(); //Can use this 
for continuous testing.
  +            String str = uuidGen.nextUUID();
   
               Service service = new Service();
               Call call = (Call) service.createCall();
  
  
  
  1.5       +3 -1      
ws-fx/sandesha/interop/org/apache/sandesha/samples/interop/testclient/InteropStub.java
  
  Index: InteropStub.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/interop/org/apache/sandesha/samples/interop/testclient/InteropStub.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- InteropStub.java  14 May 2005 17:18:54 -0000      1.4
  +++ InteropStub.java  16 May 2005 06:08:17 -0000      1.5
  @@ -126,6 +126,8 @@
                    acksTo = AddressingUtils.getAnonymousRoleURI();
                
                
  +        String seq=new Long(System.currentTimeMillis()).toString();
  +
                try {
                    boolean sync = false;
                    
  @@ -169,7 +171,7 @@
                                        
call.setProperty(Constants.ClientProperties.LAST_MESSAGE, new Boolean(true));
                                }
                                
  -                             String ret = (String) call.invoke(new 
Object[]{msg,"abcdef"});
  +                             String ret = (String) call.invoke(new 
Object[]{msg,seq});
                                System.out.println("Got response from server " 
+ ret);
                        }
   
  
  
  
  1.46      +1 -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.45
  retrieving revision 1.46
  diff -u -r1.45 -r1.46
  --- Constants.java    9 May 2005 12:33:14 -0000       1.45
  +++ Constants.java    16 May 2005 06:08:17 -0000      1.46
  @@ -96,6 +96,7 @@
           public static final String ACKS_TO = "AcksTo";
           public static final String SEQUENCE_OFFER = "Offer";
           public static final String ACCEPT="Accept";
  +        public static final String IDENTIFIER="Identifier";
   
   
           public static final double MAX_MSG_NO = 18446744073709551615d;
  
  
  
  1.37      +5 -1      
ws-fx/sandesha/src/org/apache/sandesha/EnvelopeCreator.java
  
  Index: EnvelopeCreator.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/EnvelopeCreator.java,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- EnvelopeCreator.java      7 May 2005 08:14:44 -0000       1.36
  +++ EnvelopeCreator.java      16 May 2005 06:08:17 -0000      1.37
  @@ -205,9 +205,13 @@
           msgNumber.setMessageNumber(rmMessageContext.getMsgNumber());
   
           seq.setMessageNumber(msgNumber);
  +        if(rmMessageContext.isLastMessage()){
  +            seq.setLastMessage(new LastMessage());
  +        }
  +
           seq.toSoapEnvelop(responseEnvelope);
   
  -        //TODO
  +                //TODO
           //Adding relatesTo header
           //List relatesToList = addressingHeaders.getRelatesTo();
           //List relatesToList.set(0,rmMessageContext.getOldSequenceID());
  
  
  
  1.17      +32 -7     ws-fx/sandesha/src/org/apache/sandesha/RMInitiator.java
  
  Index: RMInitiator.java
  ===================================================================
  RCS file: /home/cvs/ws-fx/sandesha/src/org/apache/sandesha/RMInitiator.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- RMInitiator.java  14 May 2005 17:21:10 -0000      1.16
  +++ RMInitiator.java  16 May 2005 06:08:17 -0000      1.17
  @@ -16,9 +16,9 @@
   */
   package org.apache.sandesha;
   
  +import org.apache.axis.AxisFault;
   import org.apache.axis.Handler;
   import org.apache.axis.SimpleChain;
  -import org.apache.axis.client.Call;
   import org.apache.axis.components.logger.LogFactory;
   import org.apache.axis.configuration.SimpleProvider;
   import org.apache.axis.description.JavaServiceDesc;
  @@ -29,6 +29,7 @@
   import org.apache.sandesha.server.RMInvoker;
   import org.apache.sandesha.server.Sender;
   import org.apache.sandesha.server.ServerStorageManager;
  +import org.apache.sandesha.util.PolicyLoader;
   import org.apache.sandesha.util.PropertyLoader;
   import org.apache.sandesha.ws.rm.providers.RMProvider;
   
  @@ -103,15 +104,19 @@
           }
       }
   
  -    public static RMStatus stopClient() {
  +    public static RMStatus stopClient() throws AxisFault{
           //This should check whether we have received all the acks or 
reponses if any
           IStorageManager storageManager = new ClientStorageManager();
           storageManager.isAllSequenceComplete();
  -
  +        long startingTime = System.currentTimeMillis();
  +        long inactivityTimeOut = 
PolicyLoader.getInstance().getInactivityTimeout();
           while (!storageManager.isAllSequenceComplete()) {
               try {
                   
System.out.println(Constants.InfomationMessage.WAITING_TO_STOP_CLIENT);
                   Thread.sleep(Constants.CLIENT_WAIT_PERIOD_FOR_COMPLETE);
  +                if ((System.currentTimeMillis() - startingTime) >= 
inactivityTimeOut) {
  +                    RMInitiator.stopClientByForce();
  +                }
               } catch (InterruptedException e) {
                   log.error(e);
               }
  @@ -119,17 +124,37 @@
   
           if (listenerStarted) {
               sas.stop();
  -          
  +            
  +            
  +            //FOR JSP
               listenerStarted = false;
  +            //END JSP
               listenerStarted = false;
           }
           sender.setRunning(false);
  -        senderStarted = false;
           
  -        storageManager.clearStorage();
  +        //FOR JSP
  +        senderStarted = false;
  +        //END JSP
           return new RMStatus();
   
  +    }
  +
  +    public static void stopClientByForce() throws AxisFault {
  +        if (listenerStarted) {
  +            sas.stop();
  +
  +            //FOR JSP
  +            listenerStarted = false;
  +            //END JSP
  +            listenerStarted = false;
  +        }
  +        sender.setRunning(false);
   
  +        //FOR JSP
  +        senderStarted = false;
  +        //END JSP
  +        throw new AxisFault("Inactivity Timeout Reached, No Response from 
the Server");
       }
   
       private static void startListener() {
  @@ -215,5 +240,5 @@
           return getHandlerChain(arr);
       }
   
  -  
  +
   }
  \ No newline at end of file
  
  
  
  1.36      +38 -7     
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.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- ClientStorageManager.java 14 May 2005 17:21:10 -0000      1.35
  +++ ClientStorageManager.java 16 May 2005 06:08:17 -0000      1.36
  @@ -26,10 +26,12 @@
   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.SandeshaQueue;
   import org.apache.sandesha.ws.rm.RMHeaders;
   
  +import java.util.HashMap;
  +import java.util.Iterator;
   import java.util.Map;
  +import java.util.Set;
   
   public class ClientStorageManager implements IStorageManager {
   
  @@ -42,7 +44,9 @@
       }
   
       public ClientStorageManager() {
  -        accessor = 
SandeshaDAOFactory.getStorageAccessor(Constants.SERVER_QUEUE_ACCESSOR,Constants.CLIENT);
  +        accessor =
  +                
SandeshaDAOFactory.getStorageAccessor(Constants.SERVER_QUEUE_ACCESSOR,
  +                        Constants.CLIENT);
       }
   
       public boolean isSequenceExist(String sequenceID) {
  @@ -118,7 +122,33 @@
        * Get a Map of messages.
        */
       public Map getListOfMessageNumbers(String sequenceID) {
  -        return null;
  +
  +        String seq = getKeyFromOutgoingSeqId(sequenceID);
  +        Set st = accessor.getAllReceivedMsgNumsOfIncomingSeq(seq);
  +        Iterator it = st.iterator();
  +        //To find the largest id present
  +        long largest = 0;
  +        while (it.hasNext()) {
  +            Long key = (Long) it.next();
  +            if (key == null)
  +                continue;
  +
  +            long l = key.longValue();
  +            if (l > largest)
  +                largest = l;
  +        }
  +
  +        HashMap results = new HashMap();
  +        //Add Keys to the results in order.
  +        long currentPosition = 1;
  +        for (long l = 1; l <= largest; l++) {
  +            boolean present = st.contains(new Long(l));
  +            if (present) {
  +                results.put(new Long(currentPosition), new Long(l));
  +                currentPosition++;
  +            }
  +        }
  +        return results;
       }
   
       /**
  @@ -222,7 +252,6 @@
           if (0 >= messageNumber)
               return;
           Long msgNo = new Long(messageNumber);
  -        
           accessor.addMessageToIncomingSequence(sequenceId, msgNo, 
rmMessageContext);
       }
   
  @@ -345,7 +374,9 @@
       }
   
       public String getOutgoingSeqenceIdOfIncomingMsg(RMMessageContext msg) {
  -        String msgId = msg.getMessageID();
  +        //String msgId = msg.getMessageID();
  +        RelatesTo relatesTo= 
(RelatesTo)msg.getAddressingHeaders().getRelatesTo().get(0);
  +        String msgId=relatesTo.getURI().toString();
           return accessor.searchForSequenceId(msgId);
       }
   
  @@ -400,8 +431,8 @@
           if (callBack != null)
               callBack.onOutgoingMessage(cbData);
       }
  -    
  -    public void clearStorage(){
  +
  +    public void clearStorage() {
           accessor.clear();
       }
   
  
  
  
  1.41      +9 -0      
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.40
  retrieving revision 1.41
  diff -u -r1.40 -r1.41
  --- RMSender.java     9 May 2005 03:45:26 -0000       1.40
  +++ RMSender.java     16 May 2005 06:08:17 -0000      1.41
  @@ -28,7 +28,9 @@
   import org.apache.commons.logging.Log;
   import org.apache.sandesha.Constants;
   import org.apache.sandesha.IStorageManager;
  +import org.apache.sandesha.RMInitiator;
   import org.apache.sandesha.RMMessageContext;
  +import org.apache.sandesha.util.PolicyLoader;
   import org.apache.sandesha.util.RMMessageCreator;
   import org.apache.sandesha.ws.rm.RMHeaders;
   
  @@ -87,9 +89,14 @@
   
               if (reqMsgCtx.isHasResponse()) {
                   RMMessageContext responseMessageContext = null;
  +                long startingTime = System.currentTimeMillis();
  +                long inactivityTimeOut = 
PolicyLoader.getInstance().getInactivityTimeout();
                   while (responseMessageContext == null) {
                       responseMessageContext =
                               checkTheQueueForResponse(tempSeqID, 
reqMsgCtx.getMessageID());
  +                    if ((System.currentTimeMillis() - startingTime) >= 
inactivityTimeOut) {
  +                        RMInitiator.stopClientByForce();
  +                    }
                       
Thread.sleep(Constants.CLIENT_RESPONSE_CHECKING_INTERVAL);
                   }
                   //We need these steps to filter all addressing and rm 
related headers.
  @@ -105,6 +112,8 @@
   
           } catch (Exception ex) {
               log.error(ex);
  +            throw new AxisFault(ex.getLocalizedMessage());
  +
           }
       }
   
  
  
  
  1.27      +27 -19    
ws-fx/sandesha/src/org/apache/sandesha/server/RMInvoker.java
  
  Index: RMInvoker.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/server/RMInvoker.java,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- RMInvoker.java    7 May 2005 08:14:44 -0000       1.26
  +++ RMInvoker.java    16 May 2005 06:08:17 -0000      1.27
  @@ -20,9 +20,7 @@
   import org.apache.axis.components.uuid.UUIDGen;
   import org.apache.axis.components.uuid.UUIDGenFactory;
   import org.apache.axis.message.addressing.AddressingHeaders;
  -import org.apache.axis.message.addressing.MessageID;
   import org.apache.axis.providers.java.JavaProvider;
  -import org.apache.axis.types.URI;
   import org.apache.commons.logging.Log;
   import org.apache.sandesha.Constants;
   import org.apache.sandesha.IStorageManager;
  @@ -59,14 +57,18 @@
                       JavaProvider provider = (JavaProvider) c.newInstance();
                       provider.invoke(rmMessageContext.getMsgContext());
   
  -                    if 
(rmMessageContext.getMsgContext().getOperation().getMethod().getReturnType() != 
Void.TYPE) {
  -                        String oldAction = 
rmMessageContext.getAddressingHeaders().getAction().toString();
  -                        
rmMessageContext.getAddressingHeaders().setAction(oldAction + 
Constants.RESPONSE);
  +                    if 
(rmMessageContext.getMsgContext().getOperation().getMethod().getReturnType() !=
  +                            Void.TYPE) {
  +                        String oldAction = 
rmMessageContext.getAddressingHeaders().getAction()
  +                                .toString();
  +                        rmMessageContext.getAddressingHeaders().setAction(
  +                                oldAction + Constants.RESPONSE);
                           if (rmMessageContext.isLastMessage()) {
                               //Insert Terminate Sequnce.
                               if (addrHeaders.getReplyTo() != null) {
                                   String replyTo = 
addrHeaders.getReplyTo().getAddress().toString();
  -                                RMMessageContext terminateMsg = 
RMMessageCreator.createTerminateSeqMsg(rmMessageContext, Constants.SERVER);
  +                                RMMessageContext terminateMsg = 
RMMessageCreator.createTerminateSeqMsg(
  +                                        rmMessageContext, Constants.SERVER);
                                   terminateMsg.setOutGoingAddress(replyTo);
                                   
storageManager.insertTerminateSeqMessage(terminateMsg);
                               } else {
  @@ -78,31 +80,37 @@
                           // used in this case. This is done by the RMSender.
                           
rmMessageContext.setMessageType(Constants.MSG_TYPE_SERVICE_RESPONSE);
   
  -                        boolean hasResponseSeq = 
storageManager.isResponseSequenceExist(rmMessageContext.getSequenceID());
  +                        boolean hasResponseSeq = 
storageManager.isResponseSequenceExist(
  +                                rmMessageContext.getSequenceID());
                           boolean firstMsgOfResponseSeq = false;
  -                        if (hasResponseSeq == true && 
rmMessageContext.getRMHeaders().getSequence().getMessageNumber().getMessageNumber()
 == 1){
  -
  -                        }
  -                        else
  +                        if (!(hasResponseSeq &&
  +                                
rmMessageContext.getRMHeaders().getSequence().getMessageNumber()
  +                                .getMessageNumber() ==
  +                                1)) {
                               firstMsgOfResponseSeq = !hasResponseSeq;
  +                        }
   
  -
  -                        
rmMessageContext.setMsgNumber(storageManager.getNextMessageNumber(rmMessageContext.getSequenceID()));
  +                        rmMessageContext.setMsgNumber(
  +                                storageManager.getNextMessageNumber(
  +                                        rmMessageContext.getSequenceID()));
                           
storageManager.insertOutgoingMessage(rmMessageContext);
   
   
                           if (firstMsgOfResponseSeq) {
  +                            String msgIdStr = Constants.UUID + 
uuidGen.nextUUID();
   
  -
  -                            String msgIdStr = Constants.UUID 
+uuidGen.nextUUID();
  -
  -                            RMMessageContext csRMMsgCtx = 
RMMessageCreator.createCreateSeqMsg(rmMessageContext, 
Constants.SERVER,msgIdStr,null);
  -                            
csRMMsgCtx.setOutGoingAddress(rmMessageContext.getAddressingHeaders().getReplyTo().getAddress().toString());
  +                            RMMessageContext csRMMsgCtx = 
RMMessageCreator.createCreateSeqMsg(
  +                                    rmMessageContext, Constants.SERVER, 
msgIdStr, null);
  +                            csRMMsgCtx.setOutGoingAddress(
  +                                    
rmMessageContext.getAddressingHeaders().getReplyTo()
  +                                    .getAddress()
  +                                    .toString());
   
                               csRMMsgCtx.addToMsgIdList(msgIdStr);
                               csRMMsgCtx.setMessageID(msgIdStr);
   
  -                            
storageManager.setTemporaryOutSequence(csRMMsgCtx.getSequenceID(), msgIdStr);
  +                            
storageManager.setTemporaryOutSequence(csRMMsgCtx.getSequenceID(),
  +                                    msgIdStr);
                               
storageManager.addCreateSequenceRequest(csRMMsgCtx);
                           }
                       }
  
  
  
  1.10      +5 -1      
ws-fx/sandesha/src/org/apache/sandesha/server/msgprocessors/CompositeProcessor.java
  
  Index: CompositeProcessor.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/server/msgprocessors/CompositeProcessor.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- CompositeProcessor.java   9 May 2005 12:33:14 -0000       1.9
  +++ CompositeProcessor.java   16 May 2005 06:08:17 -0000      1.10
  @@ -93,7 +93,11 @@
   
                   //Send an Ack for every message received by the server.
                   //This should be changed according to the WS-policy.
  -                return ackProcessor.sendAcknowledgement(rmMessageContext);
  +                 if(rmHeaders.getAckRequest()!=null 
||rmHeaders.getSequence().getLastMessage()!=null){
  +                      return 
ackProcessor.sendAcknowledgement(rmMessageContext);
  +                 } else{
  +                     return false;
  +                 }
               }
           }
           return false;
  
  
  
  1.8       +13 -11    
ws-fx/sandesha/src/org/apache/sandesha/storage/queue/IncomingSequence.java
  
  Index: IncomingSequence.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/storage/queue/IncomingSequence.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- IncomingSequence.java     7 May 2005 08:14:44 -0000       1.7
  +++ IncomingSequence.java     16 May 2005 06:08:17 -0000      1.8
  @@ -22,11 +22,7 @@
   import org.apache.commons.logging.Log;
   import org.apache.sandesha.RMMessageContext;
   
  -import java.util.HashMap;
  -import java.util.Iterator;
  -import java.util.List;
  -import java.util.Set;
  -import java.util.Vector;
  +import java.util.*;
   
   /*
    * Created on Aug 4, 2004 at 5:08:29 PM
  @@ -47,6 +43,7 @@
       private long lastMsgNo = -1;
       private String acksTo = null;
       private String offer;
  +    //private Set msgNumbers;
   
       public String getOffer() {
           return offer;
  @@ -56,14 +53,14 @@
           this.offer = offer;
       }
   
  -    public void setAcksTo(String ack){
  +    public void setAcksTo(String ack) {
           acksTo = ack;
       }
  -    
  -    public String getAcksTo(){
  +
  +    public String getAcksTo() {
           return acksTo;
       }
  -    
  +
       private boolean terminateReceived = false;
   
       public boolean isTerminateReceived() {
  @@ -81,6 +78,7 @@
           hasProcessableMessages = false;
           this.sequenceId = sequenceId;
           hash = new HashMap();
  +        //msgNumbers= new HashSet();
       }
   
       public boolean hasProcessableMessages() {
  @@ -100,6 +98,7 @@
        */
       public Object putNewMessage(Long key, RMMessageContext value) {
           Object obj = hash.put(key, value);
  +        //this.msgNumbers.add(key);
           refreshHasProcessableMessages();
           return obj;
       }
  @@ -181,6 +180,8 @@
   
       public Set getAllKeys() {
           return hash.keySet();
  +        //return msgNumbers;
  +
       }
   
       public void setProcessLock(boolean lock) {
  @@ -212,9 +213,10 @@
               if (lst != null) {
                   RelatesTo rl = (RelatesTo) lst.get(0);
                   String uri = rl.getURI().toString();
  -                if (uri.equals(relatesTo))
  +                if (uri.equals(relatesTo)) {
                       msgToSend = msg;
  -                break;
  +                    break;
  +                }
               }
           }
   
  
  
  
  1.20      +5 -11     
ws-fx/sandesha/src/org/apache/sandesha/storage/queue/SandeshaQueue.java
  
  Index: SandeshaQueue.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/storage/queue/SandeshaQueue.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- SandeshaQueue.java        14 May 2005 17:21:10 -0000      1.19
  +++ SandeshaQueue.java        16 May 2005 06:08:17 -0000      1.20
  @@ -90,12 +90,10 @@
       public boolean addMessageToIncomingSequence(String seqId, Long messageNo,
                                                   RMMessageContext msgCon) 
throws QueueException {
           boolean successful = false;
  -        
  +
           if (seqId == null || msgCon == null)
               throw new QueueException(Constants.Queue.ADD_ERROR);
   
  -
  -        
           if (isIncomingSequenceExists(seqId)) {
               IncomingSequence seqHash = (IncomingSequence) 
incomingMap.get(seqId);
   
  @@ -363,15 +361,12 @@
       }
   
       public void clear(boolean yes) {
  -        
           if (!yes)
               return;
  -        
           incomingMap.clear();
           highPriorityQueue.clear();
           outgoingMap.clear();
           queueBin.clear();
  -       
       }
   
       public void removeAllMsgsFromIncomingSeqence(String seqId, boolean yes) {
  @@ -409,8 +404,7 @@
       }
   
       public Set getAllReceivedMsgNumsOfIncomingSeq(String sequenceId) {
  -        Vector v = new Vector();
  -        IncomingSequence sh = (IncomingSequence) incomingMap.get(sequenceId);
  +       IncomingSequence sh = (IncomingSequence) incomingMap.get(sequenceId);
           if (sh != null)
               return sh.getAllKeys();
           else
  @@ -653,9 +647,9 @@
                   if (!hasMsg)
                       key = null;
                   
  -                if(hasMsg){
  -                    return key;
  -                }
  +//                if(hasMsg){
  +//                    break;
  +//                }
               }
   
           }
  
  
  
  1.3       +1 -1      ws-fx/sandesha/src/org/apache/sandesha/ws/rm/Accept.java
  
  Index: Accept.java
  ===================================================================
  RCS file: /home/cvs/ws-fx/sandesha/src/org/apache/sandesha/ws/rm/Accept.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Accept.java       7 May 2005 08:14:44 -0000       1.2
  +++ Accept.java       16 May 2005 06:08:17 -0000      1.3
  @@ -64,7 +64,7 @@
           return acceptElement;
       }
   
  -    public Accept fromSOAPEnvelope(MessageElement bodyElement) throws 
Exception{
  +    public Accept fromSOAPEnvelope(MessageElement bodyElement) throws 
SOAPException{
   
           Iterator iterator = bodyElement.getChildElements();
           MessageElement childElement;
  
  
  
  1.4       +9 -1      ws-fx/sandesha/src/org/apache/sandesha/ws/rm/AcksTo.java
  
  Index: AcksTo.java
  ===================================================================
  RCS file: /home/cvs/ws-fx/sandesha/src/org/apache/sandesha/ws/rm/AcksTo.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- AcksTo.java       2 May 2005 08:38:09 -0000       1.3
  +++ AcksTo.java       16 May 2005 06:08:17 -0000      1.4
  @@ -18,7 +18,9 @@
   package org.apache.sandesha.ws.rm;
   
   import org.apache.axis.message.MessageElement;
  +import org.apache.axis.message.SOAPEnvelope;
   import org.apache.axis.message.addressing.Address;
  +import org.apache.axis.types.URI;
   import org.apache.sandesha.Constants;
   
   import javax.xml.soap.SOAPException;
  @@ -46,9 +48,11 @@
        * @param element
        * @return Nack
        */
  -    public AcksTo fromSOAPEnvelope(MessageElement element) throws Exception {
  +    public AcksTo fromSOAPEnvelope(MessageElement element) throws 
SOAPException{
  +
           Iterator iterator = element.getChildElements();
           MessageElement childElement;
  +        try{
           while (iterator.hasNext()) {
               childElement = (MessageElement) iterator.next();
               if 
(childElement.getName().equals(org.apache.axis.message.addressing.Constants.NS_PREFIX_ADDRESSING
 + Constants.COLON + org.apache.axis.message.addressing.Constants.ADDRESS)) {
  @@ -60,6 +64,9 @@
                   address = new Address(uri);
               }
           }
  +        }catch(Exception e){
  +            throw new SOAPException(e);
  +        }
           return this;
       }
   
  @@ -113,4 +120,5 @@
           this.address = address;
       }
   
  +
   }
  
  
  
  1.17      +1 -1      
ws-fx/sandesha/src/org/apache/sandesha/ws/rm/CreateSequenceResponse.java
  
  Index: CreateSequenceResponse.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/ws/rm/CreateSequenceResponse.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- CreateSequenceResponse.java       7 May 2005 08:14:44 -0000       1.16
  +++ CreateSequenceResponse.java       16 May 2005 06:08:17 -0000      1.17
  @@ -102,7 +102,7 @@
        * @param bodyElement
        * @return CreateSequenceResponse
        */
  -    public CreateSequenceResponse fromSOAPEnveploe(SOAPBodyElement 
bodyElement) throws Exception {
  +    public CreateSequenceResponse fromSOAPEnveploe(SOAPBodyElement 
bodyElement) throws SOAPException {
   
           Iterator iterator = bodyElement.getChildElements();
           MessageElement childElement;
  
  
  
  1.2       +22 -8     
ws-fx/sandesha/src/org/apache/sandesha/ws/rm/Identifier.java
  
  Index: Identifier.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/ws/rm/Identifier.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Identifier.java   2 May 2005 04:34:04 -0000       1.1
  +++ Identifier.java   16 May 2005 06:08:17 -0000      1.2
  @@ -3,9 +3,10 @@
   
   import org.apache.axis.message.MessageElement;
   import org.apache.axis.types.URI;
  -
  +import org.apache.sandesha.Constants;
   
   import javax.xml.soap.SOAPException;
  +import java.util.Iterator;
   
   /**
    * class Identifier
  @@ -31,7 +32,8 @@
        */
       public Identifier() {
           identifierElement = new MessageElement();
  -        identifierElement.setName("wsrm:Identifier");
  +        identifierElement.setName(
  +                Constants.WSRM.NS_PREFIX_RM + Constants.COLON + 
Constants.WSRM.IDENTIFIER);
       }
   
       /**
  @@ -63,10 +65,10 @@
        * @return @throws
        *         SOAPException
        */
  -    public MessageElement toSOAPEnvelope(MessageElement msgElement)
  -            throws SOAPException {
  -
  -        msgElement.addChildElement("Identifier", 
"wsrm").addTextNode(identifier);
  +    public MessageElement toSOAPEnvelope(MessageElement msgElement) throws 
SOAPException {
  +        removeIdentifierElementIfAny(msgElement);
  +        msgElement.addChildElement(Constants.WSRM.IDENTIFIER, 
Constants.WSRM.NS_PREFIX_RM)
  +                .addTextNode(identifier);
           return msgElement;
       }
   
  @@ -109,8 +111,8 @@
       public boolean equals(Object obj) {
   
           if (obj instanceof org.apache.sandesha.ws.rm.Identifier) {
  -            if (this.identifier == ((String) 
(((org.apache.sandesha.ws.rm.Identifier) obj)
  -                    .getIdentifier()))) {
  +            if (this.identifier ==
  +                    ((String) (((org.apache.sandesha.ws.rm.Identifier) 
obj).getIdentifier()))) {
                   return true;
               } else {
                   return false;
  @@ -137,4 +139,16 @@
       public String toString() {
           return identifier;
       }
  +
  +    private void removeIdentifierElementIfAny(MessageElement msgElement) {
  +
  +        Iterator ite = msgElement.getChildElements();
  +        while (ite.hasNext()) {
  +            MessageElement childElement = (MessageElement) ite.next();
  +            if (Constants.WSRM.IDENTIFIER.equals(childElement.getName()) &&
  +                    
(Constants.WSRM.NS_URI_RM.equals(childElement.getNamespaceURI()))) {
  +                childElement.detachNode();
  +            }
  +        }
  +    }
   }
  \ No newline at end of file
  
  
  
  1.5       +2 -5      
ws-fx/sandesha/src/org/apache/sandesha/ws/rm/SequenceOffer.java
  
  Index: SequenceOffer.java
  ===================================================================
  RCS file: 
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/ws/rm/SequenceOffer.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- SequenceOffer.java        7 May 2005 08:14:44 -0000       1.4
  +++ SequenceOffer.java        16 May 2005 06:08:17 -0000      1.5
  @@ -37,8 +37,7 @@
       
       public SequenceOffer (){
           offerElement = new 
MessageElement(Constants.WSRM.SEQUENCE_OFFER,Constants.WSRM.NS_PREFIX_RM,Constants.WSRM.NS_URI_RM);
  -        
//offerElement.setName(Constants.WSRM.NS_PREFIX_RM+Constants.COLON+Constants.WSRM.SEQUENCE_OFFER);
  -    }
  +      }
       
       public void addChildElement(MessageElement element) throws SOAPException 
{
           offerElement.addChildElement(element);
  @@ -71,9 +70,7 @@
           return this;
       }
       
  -    public MessageElement toSOAPEnvelope(MessageElement element)
  -            throws SOAPException {
  -
  +    public MessageElement toSOAPEnvelope(MessageElement element) throws 
SOAPException {
   
          if(identifier!=null)
              identifier.toSOAPEnvelope(offerElement);
  
  
  

Reply via email to