chamikara    2005/05/10 09:16:57

  Added:       sandesha/interop/org/apache/sandesha/samples/interop/testclient
                        InteropBean.java InteropCallback.java
                        InteropStub.java ResponseWriter.java
                        TestRunnerThread.java
  Log:
  These classes will be used by interop test client.
  
  Revision  Changes    Path
  1.1                  
ws-fx/sandesha/interop/org/apache/sandesha/samples/interop/testclient/InteropBean.java
  
  Index: InteropBean.java
  ===================================================================
  package org.apache.sandesha.samples.interop.testclient;
  
  import java.io.Serializable;
  
  
  public class InteropBean implements Serializable {
        
        private String target;
        private String operation;
        private String from;
        private String replyto;
        private int noOfMsgs;
        private String terminate;
        private String acks;
        
        
        
  
        /**
         * @return
         */
        public String getAcks() {
                return acks;
        }
  
        /**
         * @return
         */
        public String getFrom() {
                return from;
        }
  
        /**
         * @return
         */
        public int getNoOfMsgs() {
                return noOfMsgs;
        }
  
        /**
         * @return
         */
        public String getOperation() {
                return operation;
        }
  
        /**
         * @return
         */
        public String getReplyto() {
                return replyto;
        }
  
        /**
         * @return
         */
        public String getTarget() {
                return target;
        }
  
        /**
         * @return
         */
        public String getTerminate() {
                return terminate;
        }
  
        /**
         * @param string
         */
        public void setAcks(String string) {
                acks = string;
        }
  
        /**
         * @param string
         */
        public void setFrom(String string) {
                from = string;
        }
  
        /**
         * @param i
         */
        public void setNoOfMsgs(int i) {
                noOfMsgs = i;
        }
  
        /**
         * @param string
         */
        public void setOperation(String string) {
                operation = string;
        }
  
        /**
         * @param string
         */
        public void setReplyto(String string) {
                replyto = string;
        }
  
        /**
         * @param string
         */
        public void setTarget(String string) {
                target = string;
        }
  
        /**
         * @param string
         */
        public void setTerminate(String string) {
                terminate = string;
        }
  
  }
  
  
  
  1.1                  
ws-fx/sandesha/interop/org/apache/sandesha/samples/interop/testclient/InteropCallback.java
  
  Index: InteropCallback.java
  ===================================================================
  /*
   * Created on Apr 15, 2005
   *
   * To change the template for this generated file go to
   * Window>Preferences>Java>Code Generation>Code and Comments
   */
  package org.apache.sandesha.samples.interop.testclient;
  
  import java.io.IOException;
  import java.util.ArrayList;
  
  import javax.swing.JOptionPane;
  
  import org.apache.sandesha.Constants;
  import org.apache.sandesha.storage.Callback;
  import org.apache.sandesha.storage.CallbackData;
  
  /**
   * @author root
   *
   * To change the template for this generated type comment go to
   * Window>Preferences>Java>Code Generation>Code and Comments
   */
  public class InteropCallback extends Callback {
  
        private ResponseWriter writer = null;
        private boolean testFinished = false;
        
        public synchronized void setTestFinished(boolean finished){
                this.testFinished = finished;   
        }
        
        public synchronized boolean isTestFinished(){
                return testFinished;
        }
        
        public InteropCallback (ResponseWriter  writer){
                this.writer = writer;
        }
        
        public synchronized void onIncomingMessage(CallbackData result) {
                
                String action = result.getAction();
                String msgType = action;
                if(action!=null) {
                        if(action.equals(Constants.WSRM.ACTION_CREATE_SEQUENCE))
                                msgType = "create sequence";
                        else 
if(action.equals(Constants.WSRM.ACTION_CREATE_SEQUENCE_RESPONSE))   
                        msgType = "create sequence response";
                        else 
if(action.equals(Constants.WSRM.ACTION_TERMINATE_SEQUENCE))  
                        msgType = "terminate sequence";
                        else 
if(action.equals(Constants.WSRM.SEQUENCE_ACKNOWLEDGEMENT_ACTION))
                        msgType = "acknowledgement";
                }else{
                        msgType = "service response";
                }
                
                        String entry = "<br /><font color='red'> Got " + 
msgType +" message. ID : " + result.getMessageId() + "</font>";  // + 
result.getSequenceId() + " </font>";
                        
                        boolean b = writer.write(entry);
                        if(!b)
                                setTestFinished(true);
        }
  
        public synchronized void onOutgoingMessage(CallbackData result) {
                
            int type = result.getMessageType();
        String msgType = null;
        
        if(type==Constants.MSG_TYPE_CREATE_SEQUENCE_REQUEST)
            msgType = "create sequence";
        else if(type==Constants.MSG_TYPE_CREATE_SEQUENCE_RESPONSE)   
            msgType = "create sequence response";
        else if(type==Constants.MSG_TYPE_TERMINATE_SEQUENCE)  
            msgType = "terminate sequence";
        else if(type==Constants.MSG_TYPE_ACKNOWLEDGEMENT)
            msgType = "acknowledgement";
        else if(type==Constants.MSG_TYPE_SERVICE_REQUEST)
            msgType = "service request";        
        else if(type==Constants.MSG_TYPE_SERVICE_RESPONSE)
            msgType = "service response";  
        
        String entry = "<br /><font color='blue'> Sent " + msgType +" message. 
ID : " + result.getMessageId() + "</font>";// + result.getSequenceId() + " 
</font>";
                
                boolean b = writer.write(entry);
                if(!b)
                        setTestFinished(true);
                        
                if(result.getMessageType()==6)
                        setTestFinished(true);
                
        }
  
  }
  
  
  
  1.1                  
ws-fx/sandesha/interop/org/apache/sandesha/samples/interop/testclient/InteropStub.java
  
  Index: InteropStub.java
  ===================================================================
  /*
   * Created on Apr 15, 2005
   *
   * To change the template for this generated file go to
   * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
   */
  package org.apache.sandesha.samples.interop.testclient;
  
  
  
  import javax.xml.namespace.QName;
  import javax.xml.rpc.ParameterMode;
  
  import org.apache.axis.client.Call;
  import org.apache.axis.client.Service;
  import org.apache.axis.encoding.XMLType;
  import org.apache.axis.utils.XMLUtils;
  import org.apache.sandesha.Constants;
  import org.apache.sandesha.RMInitiator;
  import org.apache.sandesha.RMTransport;
  
  
  
  /**
   * @author root
   *
   * To change the template for this generated type comment go to
   * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
   */
  public class InteropStub {
        
        public void runPingSync(InteropBean bean){
                String target = bean.getTarget();
                String from = bean.getFrom();
                String replyTo = bean.getReplyto();
                String acks = bean.getAcks();
                String terminate = bean.getTerminate();
                String operation = bean.getOperation();
                int messages = bean.getNoOfMsgs();
                        
                //String targetURL = 
"http://127.0.0.1:"+"8070"+"/axis/services/RMInteropService?wsdl";;
  
                try {
  
                        System.out.println("********Running ping sync");
                        RMInitiator.initClient(true);
  
                        Service service = new Service();
                        Call call = (Call) service.createCall();
  
                        call.setProperty(Constants.ClientProperties.SYNC, new 
Boolean(true));
                        call.setProperty(Constants.ClientProperties.ACTION, 
"sandesha:ping");
  
                        //These two are additional
                        
//call.setProperty("from","http://schemas.xmlsoap.org/ws/2003/03/addressing/role/anonymous";);
                        
//call.setProperty("replyTo","http://10.10.0.4:8080/axis/services/MyService";);
                        
//http://schemas.xmlsoap.org/ws/2003/03/addressing/role/anonymous
  
                        
call.setProperty(Constants.ClientProperties.FROM,org.apache.axis.message.addressing.Constants.NS_URI_ANONYMOUS);
                        
                        call.setTargetEndpointAddress(target);
                        call.setOperationName(new QName("RMInteropService", 
operation));
                        call.setTransport(new RMTransport(target, ""));
  
                        call.addParameter("arg1", XMLType.XSD_STRING, 
ParameterMode.IN);
  
                        for(int i=1;i<=messages;i++){
                                
call.setProperty(Constants.ClientProperties.MSG_NUMBER, new Long((i)));
                                String msg = "Ping Message Number " + i;
                                call.invoke(new Object[]{msg});
                                
                                if(i==messages){
                                        
call.setProperty(Constants.ClientProperties.LAST_MESSAGE, new Boolean(true));
                                }
                        }
                        //First Message
                        
/*call.setProperty(Constants.ClientProperties.MSG_NUMBER, new Long(1));
                        call.invoke(new Object[]{"Ping Message Number One"});
  
                        //Second Message
                        call.setProperty(Constants.ClientProperties.MSG_NUMBER, 
new Long(2));
                        call.invoke(new Object[]{"Ping Message Number Two"});
  
                        //Third Message
                        call.setProperty(Constants.ClientProperties.MSG_NUMBER, 
new Long(3));
                        
call.setProperty(Constants.ClientProperties.LAST_MESSAGE, new Boolean(true)); 
//For last message.
                        call.invoke(new Object[]{"Ping Message Number 
Three"});*/
  
                        RMInitiator.stopClient();
  
                        } catch (Exception e) {
                                //System.err.println(e.toString());
                                e.printStackTrace();
                        }       
                        
        }
        
        public void runPingAsync(InteropBean bean){
              try {
  
                        String target = bean.getTarget();
                        String from = bean.getFrom();
                        String replyTo = bean.getReplyto();
                        String acks = bean.getAcks();
                        String terminate = bean.getTerminate();
                        String operation = bean.getOperation();
                        int messages = bean.getNoOfMsgs();
                        
                        
                  RMInitiator.initClient(false);
  
                  Service service = new Service();
                  Call call = (Call) service.createCall();
  
                  call.setProperty(Constants.ClientProperties.SYNC, new 
Boolean(false));
                  call.setProperty(Constants.ClientProperties.ACTION, 
"sandesha:ping");
  
                  //These two are additional
                  call.setProperty("from","http://127.0.0.1:"; + "9070" + 
"/axis/services/RMService");
                  
//call.setProperty("replyTo","http://127.0.0.1:"+defaultClientPort+"/axis/services/RMService";);
                  
//http://schemas.xmlsoap.org/ws/2003/03/addressing/role/anonymous
  
                  call.setTargetEndpointAddress(target);
                  call.setOperationName(new QName("RMInteropService", "ping"));
                  call.setTransport(new RMTransport(target, ""));
  
                  call.addParameter("arg1", XMLType.XSD_STRING, 
ParameterMode.IN);
                        
                                for(int i=1;i<=messages;i++){
                                        
call.setProperty(Constants.ClientProperties.MSG_NUMBER, new Long((i)));
                                        String msg = "Ping Message Number " + i;
                                        
                                        if(i==messages){
                                                
call.setProperty(Constants.ClientProperties.LAST_MESSAGE, new Boolean(true));
                                        }
                                        
                                        call.invoke(new Object[]{msg});
                                }
  
                  RMInitiator.stopClient();
  
              } catch (Exception e) {
                  //System.err.println(e.toString());
                  e.printStackTrace();
              }     
        }
        
        public void runEchoStringSync(InteropBean bean){
               try {
                   
                        String target = bean.getTarget();
                        String from = bean.getFrom();
                        String replyTo = bean.getReplyto();
                        String acks = bean.getAcks();
                        String terminate = bean.getTerminate();
                        String operation = bean.getOperation();
                        int messages = bean.getNoOfMsgs();
                        
                        //A separate listner will be started if the value of 
the input parameter for the mehthod
                    // 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();
  
  
                    Service service = new Service();
                    Call call = (Call) service.createCall();
  
                    //Action is required.
                    call.setProperty(Constants.ClientProperties.SYNC, new 
Boolean(false));
                    call.setProperty(Constants.ClientProperties.ACTION, 
"sandesha:echo");
  
                    //These two are additional, We need them since we need to 
monitor the messages using TCPMonitor.
                    
call.setProperty(Constants.ClientProperties.FROM,org.apache.axis.message.addressing.Constants.NS_URI_ANONYMOUS);
                    
call.setProperty(Constants.ClientProperties.REPLY_TO,"http://127.0.0.1:"; + 
"9070" + "/axis/services/RMService");
                                
                                
                    call.setTargetEndpointAddress(target);
                    call.setOperationName(new QName("RMInteropService", 
"echoString"));
                    call.setTransport(new RMTransport(target, ""));
  
                    call.addParameter("arg1", XMLType.XSD_STRING, 
ParameterMode.IN);
                    call.addParameter("arg2", XMLType.XSD_STRING, 
ParameterMode.IN);
                    
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
  
                                for(int i=1;i<=messages;i++){
                                        
call.setProperty(Constants.ClientProperties.MSG_NUMBER, new Long((i)));
                                        String msg = "ECHO " + i;
                                        
  
                                        if(i==messages){
                                                
call.setProperty(Constants.ClientProperties.LAST_MESSAGE, new Boolean(true));
                                        }
                                        
                                        String ret = (String) call.invoke(new 
Object[]{msg,"abcdef"});
                                        System.out.println("Got response from 
server " + ret);
                                }
  
                    RMInitiator.stopClient();
                } catch (Exception e) {
                    e.printStackTrace();
                }               
        }       
        
        public void runEchoStringAsync(InteropBean bean){
          try {
              
              System.out.println("********* Running ECHO STRING Async");
              
              System.out.println("e11111");
                        String target = bean.getTarget();
                        String from = bean.getFrom();
                        String replyTo = bean.getReplyto();
                        String acks = bean.getAcks();
                        String terminate = bean.getTerminate();
                        String operation = bean.getOperation();
                        int messages = bean.getNoOfMsgs();
                
              //A separate listner will be started if the value of the input 
parameter for the mehthod
              // 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();
  
  
              Service service = new Service();
              Call call = (Call) service.createCall();
              System.out.println("e22222");
              //To obtain the
              call.setProperty(Constants.ClientProperties.SYNC, new 
Boolean(false));
              call.setProperty(Constants.ClientProperties.ACTION, 
"sandesha:echo");
  
              //These two are additional
              
//call.setProperty("from","http://schemas.xmlsoap.org/ws/2003/03/addressing/role/anonymous";);
              
call.setProperty(Constants.ClientProperties.FROM,"http://127.0.0.1:"; + "9070" + 
"/axis/services/RMService");
              
call.setProperty(Constants.ClientProperties.REPLY_TO,"http://127.0.0.1:"; + 
"9070" + "/axis/services/RMService");
  
              call.setTargetEndpointAddress(target);
              call.setOperationName(new QName("RMInteropService", 
"echoString"));
              call.setTransport(new RMTransport(target, ""));
  
              call.addParameter("arg1", XMLType.XSD_STRING, ParameterMode.IN);
              call.addParameter("arg2", XMLType.XSD_STRING, ParameterMode.IN);
              call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
              System.out.println("e3333");
                        for(int i=1;i<=messages;i++){
                                
call.setProperty(Constants.ClientProperties.MSG_NUMBER, new Long((i)));
                                String msg = "ECHO " + i;
                                
  
                                if(i==messages){
                                        
call.setProperty(Constants.ClientProperties.LAST_MESSAGE, new Boolean(true));
                                }
                                
                                String ret = (String) call.invoke(new 
Object[]{msg,"abcdef"});
                                System.out.println("Got response from server " 
+ ret);
                                System.out.println("e44444");
                        }
                        System.out.println("e55555");
              RMInitiator.stopClient();
              System.out.println("e66666");
          } catch (Exception e) {
              e.printStackTrace();
          }             
        }
        
  }
  
  
  
  1.1                  
ws-fx/sandesha/interop/org/apache/sandesha/samples/interop/testclient/ResponseWriter.java
  
  Index: ResponseWriter.java
  ===================================================================
  /*
   * Created on Apr 17, 2005
   *
   * To change the template for this generated file go to
   * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
   */
  package org.apache.sandesha.samples.interop.testclient;
  
  import java.io.PrintWriter;
  
  
  /**
   * @author root
   *
   * To change the template for this generated type comment go to
   * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
   */
  public class ResponseWriter {
        
        private PrintWriter writer;
        
        public ResponseWriter(PrintWriter writer){
                        this.writer = writer;
        }
        
        public synchronized boolean write(String s){ 
                try{
                        writer.println(s);
                        flush();
                        return true;
                }catch(Exception e){
                        System.out.println("Exception: In method 'write' of 
'ResponseWriter'");
                        return false;
                }
        }
        
        public synchronized void flush(){
                writer.flush();
        }
  }
  
  
  
  1.1                  
ws-fx/sandesha/interop/org/apache/sandesha/samples/interop/testclient/TestRunnerThread.java
  
  Index: TestRunnerThread.java
  ===================================================================
  /*
   * Created on Apr 15, 2005
   *
   * To change the template for this generated file go to
   * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
   */
  package org.apache.sandesha.samples.interop.testclient;
  
  import javax.swing.JOptionPane;
  
  /**
   * @author root
   *
   * To change the template for this generated type comment go to
   * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
   */
  public class TestRunnerThread extends Thread {
        private int method = 0;
        private InteropBean bean;
        
        public void setMethod(int method){
                this.method = method;
        }
        
        public void setBean(InteropBean bean){
                this.bean = bean;
        }
        
        public void run(){
                
                InteropStub stub = new InteropStub ();
                String operation = bean.getOperation();
                
                
                if(operation.equalsIgnoreCase("ping")){
                        //JOptionPane.showMessageDialog(null,"RUNNING PING");
                        String from = bean.getFrom();
                        if(from==null || from.equalsIgnoreCase("anonymous 
URI")){
                                //JOptionPane.showMessageDialog(null,"RUNNING 
SYNC");
                                stub.runPingSync(bean);
                        }else {
                                //JOptionPane.showMessageDialog(null,"RUNNING 
ASYNC");
                                stub.runPingAsync(bean);
                        }
                        
                }else if(operation.equalsIgnoreCase("echoString") ){
                        String from = bean.getFrom();
                        if(from==null || from.equalsIgnoreCase("anonymous 
URI")){
                                stub.runEchoStringSync(bean);
                        }else {
                                stub.runEchoStringAsync(bean);
                        }
                        
                }
                
        }
        
        
  }
  
  
  

Reply via email to