chamikara    2005/01/10 15:00:37

  Modified:    sandesha/src/org/apache/sandesha/server Sender.java
  Log:
  procesing of th eterminate sequence message
  
  Revision  Changes    Path
  1.17      +54 -1     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.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- Sender.java       24 Dec 2004 04:17:42 -0000      1.16
  +++ Sender.java       10 Jan 2005 23:00:37 -0000      1.17
  @@ -83,7 +83,14 @@
                           break;
                       }
                       case Constants.MSG_TYPE_TERMINATE_SEQUENCE: {
  -                        //TODO TODO
  +                        System.out.println("INFO: SENDING TERMINATE SEQUENCE 
REQUEST ....");
  +                        if ((rmMessageContext.getReTransmissionCount() <= 
Constants.MAXIMUM_RETRANSMISSION_COUNT)
  +                                && ((System.currentTimeMillis() - 
rmMessageContext
  +                                        .getLastPrecessedTime()) > 
Constants.RETRANSMISSION_INTERVAL)) {
  +                            sendTerminateSequenceRequest(rmMessageContext);
  +                        } else {
  +                            //TODO REPORT ERROR
  +                        }
                           break;
                       }
                       case Constants.MSG_TYPE_ACKNOWLEDGEMENT: {
  @@ -138,6 +145,48 @@
           }
       }
   
  +    /**
  +     * @param rmMessageContext
  +     */
  +    private void sendTerminateSequenceRequest(RMMessageContext 
rmMessageContext) {
  +
  +        if (rmMessageContext.getMsgContext().getRequestMessage() == null) {
  +            //The code should not come to this point.
  +            System.err.println("ERROR: NULL REQUEST MESSAGE");
  +        } else {
  +            Call call;
  +            try {
  +                
rmMessageContext.setLastPrecessedTime(System.currentTimeMillis());
  +                rmMessageContext
  +                        
.setReTransmissionCount(rmMessageContext.getReTransmissionCount() + 1);
  +                call = prepareCall(rmMessageContext);
  +                call.invoke();
  +                if (call.getResponseMessage() != null) {
  +                    RMHeaders rmHeaders = new RMHeaders();
  +                    
rmHeaders.fromSOAPEnvelope(call.getResponseMessage().getSOAPEnvelope());
  +                    rmMessageContext.setRMHeaders(rmHeaders);
  +                    AddressingHeaders addrHeaders = new 
AddressingHeaders(call.getResponseMessage()
  +                            .getSOAPEnvelope());
  +                    rmMessageContext.setAddressingHeaders(addrHeaders);
  +                    
rmMessageContext.getMsgContext().setResponseMessage(call.getResponseMessage());
  +                    IRMMessageProcessor messagePrcessor = 
RMMessageProcessorIdentifier
  +                            .getMessageProcessor(rmMessageContext, 
storageManager);
  +                    messagePrcessor.processMessage(rmMessageContext);
  +                }
  +            } catch (AxisFault e) {
  +                // TODO Auto-generated catch block
  +                e.printStackTrace();
  +            } catch (SOAPException e) {
  +                // TODO Auto-generated catch block
  +                e.printStackTrace();
  +            } catch (Exception e) {
  +                // TODO Auto-generated catch block
  +                e.printStackTrace();
  +            }
  +        }
  +    
  +    }
  +
       private void sendServiceResponse(RMMessageContext rmMessageContext) {
           SOAPEnvelope responseEnvelope = null;
           //This sho
  @@ -322,7 +371,11 @@
               }
   
           }
  +        
  +        
   
       }
  +    
  +    
   
   }
  
  
  

Reply via email to