Commit 72eef90c15f8bada72e7a97852028eb6417e4eb7

Authored by Sumate Kongpui
1 parent 5d7692c4
Exists in master

update mockup

Showing 1 changed file with 113 additions and 17 deletions   Show diff stats
src/main/java/sourcecode/MockUp/MockUp.java
@@ -4,8 +4,12 @@ import java.io.IOException; @@ -4,8 +4,12 @@ import java.io.IOException;
4 import java.io.OutputStream; 4 import java.io.OutputStream;
5 import java.net.InetSocketAddress; 5 import java.net.InetSocketAddress;
6 import java.net.URLDecoder; 6 import java.net.URLDecoder;
  7 +import java.nio.charset.Charset;
  8 +import java.nio.charset.StandardCharsets;
  9 +import java.sql.Date;
7 import java.util.ArrayList; 10 import java.util.ArrayList;
8 import java.util.HashMap; 11 import java.util.HashMap;
  12 +import java.util.Iterator;
9 13
10 import org.apache.commons.io.IOUtils; 14 import org.apache.commons.io.IOUtils;
11 import org.apache.http.Consts; 15 import org.apache.http.Consts;
@@ -14,6 +18,7 @@ import org.json.JSONArray; @@ -14,6 +18,7 @@ import org.json.JSONArray;
14 import org.json.JSONObject; 18 import org.json.JSONObject;
15 19
16 import com.google.gson.Gson; 20 import com.google.gson.Gson;
  21 +import com.google.gson.JsonObject;
17 import com.mongodb.BasicDBObject; 22 import com.mongodb.BasicDBObject;
18 import com.mongodb.MongoClient; 23 import com.mongodb.MongoClient;
19 import com.mongodb.MongoClientOptions; 24 import com.mongodb.MongoClientOptions;
@@ -34,12 +39,15 @@ public class MockUp @@ -34,12 +39,15 @@ public class MockUp
34 private final static String POST = "POST"; 39 private final static String POST = "POST";
35 private final static String PUT = "PUT"; 40 private final static String PUT = "PUT";
36 private final static String DELETE = "DELETE"; 41 private final static String DELETE = "DELETE";
37 - private static String DBNAME = "spw";  
38 - private static String DBHOST = "10.1.2.155:27017"; 42 + private static int port = 6300;
  43 + private static String DBNAME = "coop_mockup";
  44 + private static String DBHOST = "10.1.2.144:27017";
  45 + private static String DBUSERNAME = "";
  46 + private static String DBPASSWORD = "";
  47 +
39 48
40 public static void main(String[] args) throws Exception { 49 public static void main(String[] args) throws Exception {
41 50
42 - int port = 6300;  
43 try { 51 try {
44 if(args.length>0) 52 if(args.length>0)
45 port = Integer.parseInt(args[0]); 53 port = Integer.parseInt(args[0]);
@@ -50,6 +58,12 @@ public class MockUp @@ -50,6 +58,12 @@ public class MockUp
50 if(args.length>2) 58 if(args.length>2)
51 DBHOST = args[2]; 59 DBHOST = args[2];
52 60
  61 + if(args.length>3)
  62 + DBUSERNAME = args[3];
  63 +
  64 + if(args.length>4)
  65 + DBPASSWORD = args[4];
  66 +
53 //connect mongo 67 //connect mongo
54 MongoConnector(DBNAME); 68 MongoConnector(DBNAME);
55 69
@@ -65,6 +79,9 @@ public class MockUp @@ -65,6 +79,9 @@ public class MockUp
65 } 79 }
66 80
67 static class MyHandler implements HttpHandler { 81 static class MyHandler implements HttpHandler {
  82 + JSONObject resHeader = null;
  83 + int resEcode = 200;
  84 +
68 public void handle(HttpExchange t) throws IOException{ 85 public void handle(HttpExchange t) throws IOException{
69 String response = ""; 86 String response = "";
70 try 87 try
@@ -217,6 +234,16 @@ public class MockUp @@ -217,6 +234,16 @@ public class MockUp
217 responsJSON.put("resultCode", "20000"); 234 responsJSON.put("resultCode", "20000");
218 responsJSON.put("resultDescription", "Success"); 235 responsJSON.put("resultDescription", "Success");
219 } 236 }
  237 +
  238 + if(rowJSON.has("header"))
  239 + resHeader = rowJSON.getJSONObject("header");
  240 + else
  241 + resHeader = null;
  242 +
  243 + if(rowJSON.has("ecode"))
  244 + resEcode = rowJSON.getInt("ecode");
  245 + else
  246 + resEcode = 200;
220 } 247 }
221 } 248 }
222 249
@@ -246,12 +273,44 @@ public class MockUp @@ -246,12 +273,44 @@ public class MockUp
246 System.out.println("System error "+e.getMessage()); 273 System.out.println("System error "+e.getMessage());
247 274
248 } 275 }
  276 + if(resHeader != null)
  277 + {
  278 + Iterator<String> keys = resHeader.keys();
  279 + while(keys.hasNext()) {
  280 + String key = keys.next();
  281 + t.getResponseHeaders().set(key, resHeader.getString(key));
  282 + }
  283 +
  284 + }
  285 +
  286 + String ret = response.toString();
  287 + t.getResponseHeaders().set("Content-Type", "application/json");
  288 +
  289 + t.getResponseHeaders().set("Access-Control-Allow-Origin", "https://localhost:"+port);
  290 + t.getResponseHeaders().set("Access-Control-Allow-Credentials", "true");
  291 + t.getResponseHeaders().set("Access-Control-Allow-Headers", "content-Type");
  292 + t.getResponseHeaders().set("Access-Control-Allow-Methods", "POST, PUT, GET, DELETE, OPTIONS");
  293 +
  294 +
  295 +
  296 +
  297 + //ret= URLDecoder.decode(ret, "UTF-8");
  298 + byte[] bytes = ret.getBytes(StandardCharsets.UTF_8);
  299 + t.sendResponseHeaders(resEcode, bytes.length);
  300 +// System.out.println(ret);
  301 + OutputStream os = t.getResponseBody();
  302 + os.write(bytes);
  303 + os.close();
  304 +
249 305
250 - t.getResponseHeaders().set("Content-Type", "application/json");  
251 - t.sendResponseHeaders(200, response.length());  
252 - OutputStream os = t.getResponseBody();  
253 - os.write(response.getBytes());  
254 - os.close(); 306 +
  307 +
  308 +// t.getResponseHeaders().set("Content-Type", "application/json");
  309 +// t.sendResponseHeaders(200, response.length());
  310 +// OutputStream os = t.getResponseBody();
  311 +// os.write(response.getBytes(Charset.forName("US-ASCII")));
  312 +//// os.write(response.getBytes());
  313 +// os.close();
255 } 314 }
256 } 315 }
257 316
@@ -266,16 +325,24 @@ public class MockUp @@ -266,16 +325,24 @@ public class MockUp
266 break; 325 break;
267 } 326 }
268 } 327 }
  328 + if(value == null)
  329 + value = arrData[arrData.length-1];
  330 + if(value.contains("?"))
  331 + {
  332 + arrData = value.split("\\?");
  333 + value = arrData[0];
  334 + }
  335 +
269 return value; 336 return value;
270 } 337 }
271 338
272 private static void MongoConnector(String db) { 339 private static void MongoConnector(String db) {
273 340
274 - String username = "";  
275 - String password = ""; 341 + String username = DBUSERNAME;
  342 + String password = DBPASSWORD.replace("@", "%40");
276 String address = DBHOST; 343 String address = DBHOST;
277 String dbname = db; 344 String dbname = db;
278 - String authSource = db; 345 + String authSource = "admin";
279 int timeoutMongoDB = 10000; 346 int timeoutMongoDB = 10000;
280 347
281 MongoClientOptions.Builder optionsBuilder = MongoClientOptions.builder(); 348 MongoClientOptions.Builder optionsBuilder = MongoClientOptions.builder();
@@ -285,7 +352,7 @@ public class MockUp @@ -285,7 +352,7 @@ public class MockUp
285 352
286 // optionsBuilder.connectionsPerHost(maxPoolSize); 353 // optionsBuilder.connectionsPerHost(maxPoolSize);
287 // optionsBuilder.minConnectionsPerHost(minPoolSize); 354 // optionsBuilder.minConnectionsPerHost(minPoolSize);
288 - 355 +// mongodb://root:password123@198.174.21.23:27017,198.342.121.23:27017,142.32.32.21:3001/databasename?replicaSet=rs01&ssl=false&connectTimeoutMS=100000
289 MongoClientURI uri = new MongoClientURI("mongodb://"+username+":"+password+"@"+address+"/?authSource="+authSource, optionsBuilder); 356 MongoClientURI uri = new MongoClientURI("mongodb://"+username+":"+password+"@"+address+"/?authSource="+authSource, optionsBuilder);
290 if(username.equals("")) 357 if(username.equals(""))
291 uri = new MongoClientURI("mongodb://"+address+"/?authSource="+authSource, optionsBuilder); 358 uri = new MongoClientURI("mongodb://"+address+"/?authSource="+authSource, optionsBuilder);
@@ -311,6 +378,7 @@ public class MockUp @@ -311,6 +378,7 @@ public class MockUp
311 // collectionName = method.toLowerCase()+"_"+collectionName; 378 // collectionName = method.toLowerCase()+"_"+collectionName;
312 System.out.println("===> Find Normal"); 379 System.out.println("===> Find Normal");
313 BasicDBObject basicDBObject = new BasicDBObject(); 380 BasicDBObject basicDBObject = new BasicDBObject();
  381 +// System.out.println(keyData);
314 basicDBObject.put("key", keyData); 382 basicDBObject.put("key", keyData);
315 returnData = getDB(basicDBObject,method.toLowerCase()+"_"+collectionName); 383 returnData = getDB(basicDBObject,method.toLowerCase()+"_"+collectionName);
316 384
@@ -352,11 +420,21 @@ public class MockUp @@ -352,11 +420,21 @@ public class MockUp
352 break; 420 break;
353 case POST: 421 case POST:
354 case PUT: 422 case PUT:
355 - JSONObject body = new JSONObject(bodyData);  
356 - String[] a = bodyData.split(",");  
357 - String[] b = a[0].split(":");  
358 - String c = b[0].replace("{", "").trim().replace("\"", "");  
359 - returnData = (String) body.get(c); 423 + try
  424 + {
  425 + JSONObject body = new JSONObject(bodyData);
  426 + String[] a = bodyData.split(",");
  427 + String[] b = a[0].split(":");
  428 + String c = b[0].replace("{", "").trim().replace("\"", "");
  429 +
  430 + returnData = findKeyObject(body.get(c));
  431 + // returnData = (String) body.get(c);
  432 + }catch(Exception e)
  433 + {
  434 + returnData = "";
  435 + }
  436 +
  437 +
360 break; 438 break;
361 439
362 default: 440 default:
@@ -366,6 +444,24 @@ public class MockUp @@ -366,6 +444,24 @@ public class MockUp
366 return returnData; 444 return returnData;
367 } 445 }
368 446
  447 + private static String findKeyObject(Object obj)
  448 + {
  449 + String returnData = "";
  450 + if(obj instanceof JSONObject)
  451 + {
  452 + returnData = obj.toString();
  453 +// JSONObject json = (JSONObject) obj;
  454 +// String bodyData = obj.toString();
  455 +// String[] a = bodyData.split(",");
  456 +// String[] b = a[0].split(":");
  457 +// String c = b[0].replace("{", "").trim().replace("\"", "");
  458 +// returnData = findKeyObject(json.get(c));
  459 + }else
  460 + returnData = (String) obj;
  461 +
  462 + return returnData;
  463 + }
  464 +
369 private static ArrayList<String> findRetry(String method,String keyData) 465 private static ArrayList<String> findRetry(String method,String keyData)
370 { 466 {
371 ArrayList<String> returnData = new ArrayList<String>(); 467 ArrayList<String> returnData = new ArrayList<String>();