Name: processfetch/testclient.java 
1:
import java.util.ArrayList;
2:
import java.util.Date;
3:
import java.util.List;
4:
import java.io.*;
5:
 
6:
import adventure.messagerouting.AdventureMessage;
7:
import adventure.messagerouting.C;
8:
import adventure.messagerouting.MessageClient;
9:
import adventure.messagerouting.exceptions.MessageRoutingException;
10:
import adventure.messagerouting.interfaces.OnAuthErrorListener;
11:
import adventure.messagerouting.interfaces.OnErrorListener;
12:
import adventure.messagerouting.interfaces.OnHttpMessageListener;
13:
import adventure.messagerouting.interfaces.OnMessageListener;
14:
import adventure.messagerouting.XmppExtensions.HeaderExtension;
15:
import adventure.messagerouting.XmppExtensions.OkExtension;
16:
import adventure.messagerouting.XmppExtensions.OperationExtension;
17:
import adventure.messagerouting.XmppExtensions.PartExtension;
18:
import org.jivesoftware.smack.packet.Message;
19:
import org.jivesoftware.smack.packet.Packet;
20:
import org.jivesoftware.smack.packet.PacketExtension;
21:
 
22:
public class testclient {// {{{
23:
  public static void main(String [] args) {
24:
    try {
25:
      Runtime.getRuntime().addShutdownHook(new clientShutdownThread(new client()));
26:
    } catch (Throwable t) {
27:
      System.out.println("Could not add Shutdown hook. "+t);
28:
    }
29:
 
30:
    try {
31:
      while (true) { Thread.currentThread().sleep(10000); }
32:
    } catch (InterruptedException ie) { }
33:
    System.exit(0);
34:
  }
35:
}// }}}
36:
 
37:
class clientShutdownThread extends Thread {// {{{
38:
  private client mt = null;
39:
 
40:
  public clientShutdownThread(client mt) {
41:
    super();
42:
    this.mt = mt;
43:
    mt.start();
44:
  }
45:
  
46:
  public void run() {
47:
    mt.interrupt();
48:
    System.out.println("Shutting down ...");
49:
  }
50:
}// }}}
51:
 
52:
class client extends Thread {
53:
  private static MessageClient mc1;
54:
  private static MessageClient mc2;
55:
  
56:
  public static AdventureMessage mc1latestMessage;
57:
  public static AdventureMessage mc2latestMessage;
58:
 
59:
  AdventureMessage sentMessage;
60:
 
61:
  public void run() {
62:
    System.out.println("starting testclient");
63:
    System.out.println("logging in to send test message...");
64:
     mc1 = new MessageClient("adventure_processexecution","adventure_processexecution");
65:
     
66:
     System.out.println("logged in");
67:
      System.out.println("sending test message");
68:
      String processReference="51cc50f7e4b0f6769ce8bd5a";
69:
      mc1.login();
70:
     
71:
      
72:
      //test 1, normal messages
73:
      
74:
      /*
75:
      //sending process id, receiving model
76:
      mc1.sendMessage(processReference,"[email protected]", true);
77:
      //wrong id
78:
      mc1.sendMessage("abcdwrongprocessid","[email protected]", true);
79:
      //empty id
80:
      mc1.sendMessage("","[email protected]", true);
81:
 
82:
      mc1.AddOnMessageEventListener(new OnMessageListener(){
83:
        @Override
84:
        public void OnMessage(AdventureMessage message) {
85:
          System.out.println("recevingin response");
86:
          System.out.println("[mc1] Http From:  " + message.getXmppMessage().getFrom() + " To: " + message.getXmppMessage().getTo());      
87:
          if (message.getMessageBody() != null){
88:
            System.out.println("message body: "+message.getMessageBody());
89:
          }
90:
          
91:
        }
92:
      });*/
93:
      
94:
      //test 2, sending http message with correct id
95:
      
96:
         List<PacketExtension> list = new ArrayList<PacketExtension>();
97:
        
98:
        OperationExtension o = new OperationExtension();
99:
        o.setAck(false);
100:
        o.setContent("GET");
101:
        list.add(o);
102:
        
103:
        HeaderExtension h = new HeaderExtension();
104:
        h.setName("myHeaderKey");
105:
        h.setContent("myHeaderValue");
106:
        list.add(h);
107:
        
108:
        HeaderExtension h2 = new HeaderExtension();
109:
        h2.setName("anotherHeaderKey");
110:
        h2.setContent("anotherHeaderValue");
111:
        list.add(h2);
112:
        
113:
        PartExtension p = new PartExtension();
114:
    //    p3.setContentDisposition("riddl-data; name="excellent"; filename="result.txt"");
115:
        p.setContentTransferEncoding("binary");
116:
        p.setContentType("text/plain");
117:
        p.setContent(processReference);
118:
        list.add(p);
119:
        System.out.println("list: "+list);
120:
        mc1.sendHttpMessage("[email protected]", list);
121:
        /*
122:
        //sending wrong process id
123:
      
124:
        list = new ArrayList<PacketExtension>();
125:
        
126:
        o = new OperationExtension();
127:
        o.setAck(false);
128:
        o.setContent("GET");
129:
        list.add(o);
130:
        PartExtension p2 = new PartExtension();
131:
        //    p3.setContentDisposition("riddl-data; name="excellent"; filename="result.txt"");
132:
        p2.setContentTransferEncoding("binary");
133:
        p2.setContentType("text/plain");
134:
        p2.setContent("abcd");
135:
        list.add(p2);
136:
        System.out.println("list: "+list);
137:
        mc1.sendHttpMessage("[email protected]", list);
138:
        
139:
        
140:
        //sendin no/blank process id, wrong structure
141:
        
142:
      list = new ArrayList<PacketExtension>();
143:
       o = new OperationExtension();
144:
      o.setAck(false);
145:
      o.setContent("GET");
146:
      list.add(o);
147:
      p2 = new PartExtension();
148:
       p2.setContentTransferEncoding("binary");
149:
      p2.setContentType("text/plain");
150:
     list.add(p2);
151:
      System.out.println("list: "+list);
152:
      mc1.sendHttpMessage("[email protected]", list);
153:
        */
154:
        
155:
        //receiving response to id: processmodel
156:
         mc1.AddOnHttpMessageEventListener(new OnHttpMessageListener(){
157:
            @Override
158:
            public void OnHttpMessage(AdventureMessage message) {
159:
              System.out.println("http response incoming");
160:
              System.out.println("[mc1] Http From:  " + message.getXmppMessage().getFrom() + " To: " + message.getXmppMessage().getTo());
161:
              if (message.getHeaders() != null)
162:
                for (HeaderExtension header : message.getHeaders())
163:
                System.out.println("[mc1] Header: " + header.toXML());
164:
                //TODO: parse list and parameters to receive http message
165:
              if (message.getParts() != null)
166:
                System.out.println("got some parts");
167:
                for (PartExtension part : message.getParts())
168:
                {
169:
                  System.out.println("part: "+part);  
170:
                  System.out.println("[mc1] Part: " + part.toXML());
171:
                  if(part.getContent()!=null){
172:
                    String processModel=part.getContent();
173:
                    System.out.println("processModel: "+processModel);          
174:
                  }
175:
                  else{
176:
                    System.out.println("no process id received");
177:
                  }
178:
                  
179:
                }
180:
              
181:
            }
182:
          });
183:
      
184:
  }
185:
 
186:
}