Commit 72eef90c15f8bada72e7a97852028eb6417e4eb7
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>(); |