public static boolean hasUpdate(int projectID, String version) { try { HttpURLConnection con = (HttpURLConnection) (new URL("https://api.curseforge.com/servermods/files?projectIds=" + projectID)) .openConnection(); con.setRequestMethod("GET"); con.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; JVM)"); con.setRequestProperty("Pragma", "no-cache"); con.connect(); JSONArray json = (JSONArray) JSONValue.parse(new InputStreamReader(con.getInputStream())); String[] cdigits = ((String) ((JSONObject) json.get(json.size() - 1)).get("name")) .toLowerCase() .split("\\."); String[] vdigits = version.toLowerCase().split("\\."); int max = vdigits.length > cdigits.length ? cdigits.length : vdigits.length; int a; int b; for (int i = 0; i < max; i++) { a = b = 0; try { a = Integer.parseInt(cdigits[i]); } catch (Throwable t1) { char[] c = cdigits[i].toCharArray(); for (int j = 0; j < c.length; j++) { a += (c[j] << ((c.length - (j + 1)) * 8)); } } try { b = Integer.parseInt(vdigits[i]); } catch (Throwable t1) { char[] c = vdigits[i].toCharArray(); for (int j = 0; j < c.length; j++) { b += (c[j] << ((c.length - (j + 1)) * 8)); } } if (a > b) { return true; } else if (a < b) { return false; } else if ((i == max - 1) && (cdigits.length > vdigits.length)) { return true; } } } catch (Throwable t) { } return false; }
public Map getTaskMapBatch(String objectId) throws Exception { Map map = new HashMap(); String apiURL = "https://rally1.rallydev.com/slm/webservice/1.34/adhoc"; String requestJSON = "{" + "\"task\" : \"/task?query=(ObjectID%20=%20" + objectId + ")&fetch=true\"," + "\"userstory\" : \"/hierarchicalrequirement?query=(ObjectID%20=%20${task.WorkProduct.ObjectID})&fetch=FormattedID\"," + "\"timeentryitem\":\"/timeentryitem?query=(Task.ObjectID%20=%20" + objectId + ")&fetch=Values\"," + "\"timespent\":\"${timeentryitem.Values.Hours}\"" + "}"; log.info("apiURL=" + apiURL); log.info("requestJSON=" + requestJSON); String responseJSON = postRallyXML(apiURL, requestJSON); // log.info("responseJSON="+responseJSON); // Map jsonMap=JsonUtil.jsonToMap(responseJSON); JSONParser parser = new JSONParser(); Map jsonMap = (Map) parser.parse(responseJSON); // log.info("jsonMap="+jsonMap); String taskObjId = ""; String taskFormattedId = ""; String taskName = ""; String estimate = ""; String toDo = ""; String taskState = ""; String taskOwner = ""; String userstoryFormattedId = ""; // Get task info JSONObject taskMap = (JSONObject) jsonMap.get("task"); JSONArray taskArray = (JSONArray) taskMap.get("Results"); if (taskArray != null && taskArray.size() > 0) { JSONObject taskInfo = (JSONObject) taskArray.get(0); // log.info("taskMap="+taskMap); // log.info("taskInfo="+taskInfo); taskObjId = (taskInfo.get("ObjectID")).toString(); taskFormattedId = (taskInfo.get("FormattedID")).toString(); taskState = (taskInfo.get("State")).toString(); Object taskNameObj = taskInfo.get("Name"); taskName = taskNameObj == null ? "" : taskNameObj.toString(); Object estimateObject = taskInfo.get("Estimate"); estimate = estimateObject == null ? "" : estimateObject.toString(); Object toDoObject = taskInfo.get("ToDo"); toDo = toDoObject == null ? "" : toDoObject.toString(); JSONObject ownerMap = (JSONObject) taskInfo.get("Owner"); log.info("ownerMap=" + ownerMap); if (ownerMap != null) { taskOwner = (String) ownerMap.get("_refObjectName"); if (taskOwner == null) { taskOwner = ""; } } } // Get user story info JSONObject userstoryMap = (JSONObject) jsonMap.get("userstory"); JSONArray userstoryArray = (JSONArray) userstoryMap.get("Results"); if (userstoryArray != null && userstoryArray.size() > 0) { JSONObject userstoryInfo = (JSONObject) userstoryArray.get(0); userstoryFormattedId = (userstoryInfo.get("FormattedID")).toString(); log.info("userstoryFormattedId=" + userstoryFormattedId); } // Calculate timeSpent JSONArray timeSpentList = (JSONArray) jsonMap.get("timespent"); log.info("timeSpentList=" + timeSpentList); double timeSpent = 0.0; for (int i = 0; i < timeSpentList.size(); i++) { String timeSpentString = (String) timeSpentList.get(i); if (timeSpentString != null) { timeSpent += Double.parseDouble(timeSpentString); } } map.put("type", "task"); map.put("formattedId", taskFormattedId); map.put("usId", userstoryFormattedId); map.put("name", taskName); map.put("taskStatus", taskState); map.put("owner", taskOwner); map.put("taskEstimateTotal", estimate); map.put("taskRemainingTotal", toDo); map.put("taskTimeSpentTotal", "" + timeSpent); return map; }
public double getTimeSpentByTask(String taskNo) throws Exception { double timeSpent = 0.0D; String apiURL = "https://rally1.rallydev.com/slm/webservice/1.34/adhoc"; String requestJSON = "{" + "\"task\" : \"/task?query=(FormattedID%20=%20" + taskNo + ")&fetch=true\"," + "\"timeentryitem\":\"/timeentryitem?query=(Task.FormattedID%20=%20" + taskNo + ")&fetch=Values\"," + "\"timespent\":\"${timeentryitem.Values.Hours}\"" + "}"; log.info("apiURL=" + apiURL); log.info("requestJSON=" + requestJSON); String responseJSON = postRallyXML(apiURL, requestJSON); // log.info("responseJSON="+responseJSON); // Map jsonMap=JsonUtil.jsonToMap(responseJSON); JSONParser parser = new JSONParser(); Map jsonMap = (Map) parser.parse(responseJSON); /* //log.info("jsonMap="+jsonMap); String taskObjId=""; String taskFormattedId=""; String taskName=""; String estimate=""; String toDo=""; String taskState=""; String taskOwner=""; String userstoryFormattedId=""; //Get task info JSONObject taskMap=(JSONObject)jsonMap.get("task"); JSONArray taskArray=(JSONArray)taskMap.get("Results"); if(taskArray!=null && taskArray.size()>0) { JSONObject taskInfo=(JSONObject)taskArray.get(0); //log.info("taskMap="+taskMap); //log.info("taskInfo="+taskInfo); taskObjId=(taskInfo.get("ObjectID")).toString(); taskFormattedId=(taskInfo.get("FormattedID")).toString(); taskState=(taskInfo.get("State")).toString(); Object taskNameObj=taskInfo.get("Name"); taskName=taskNameObj==null ? "" : taskNameObj.toString(); Object estimateObject=taskInfo.get("Estimate"); estimate=estimateObject==null ? "" : estimateObject.toString(); Object toDoObject=taskInfo.get("ToDo"); toDo=toDoObject==null ? "" : toDoObject.toString(); JSONObject ownerMap=(JSONObject)taskInfo.get("Owner"); log.info("ownerMap="+ownerMap); if(ownerMap!=null) { taskOwner=(String)ownerMap.get("_refObjectName"); if(taskOwner==null) { taskOwner=""; } } } //Get user story info JSONObject userstoryMap=(JSONObject)jsonMap.get("userstory"); JSONArray userstoryArray=(JSONArray)userstoryMap.get("Results"); if(userstoryArray!=null && userstoryArray.size()>0) { JSONObject userstoryInfo=(JSONObject)userstoryArray.get(0); userstoryFormattedId=(userstoryInfo.get("FormattedID")).toString(); log.info("userstoryFormattedId="+userstoryFormattedId); } */ // Calculate timeSpent JSONArray timeSpentList = (JSONArray) jsonMap.get("timespent"); log.info("timeSpentList=" + timeSpentList); // double timeSpent=0.0; for (int i = 0; i < timeSpentList.size(); i++) { String timeSpentString = (String) timeSpentList.get(i); if (timeSpentString != null) { timeSpent += Double.parseDouble(timeSpentString); } } return timeSpent; }
public Map getUserStoryTaskMap(String timeEntryItemRef) throws Exception { Map taskMap = new HashMap(); String[] objectIdArr = timeEntryItemRef.split("/"); String objectId = objectIdArr[objectIdArr.length - 1]; log.info("objectId=" + objectId); String apiURL = "https://rally1.rallydev.com/slm/webservice/1.34/adhoc"; String requestJSON = "{" + "\"timeentryitem\" : \"/timeentryitem?query=(ObjectID%20=%20" + objectId + ")&fetch=true\"," + "\"task\" : \"/task?query=(ObjectID%20=%20${timeentryitem.Task.ObjectID})&fetch=true\"," + "\"userstory\" : \"/hierarchicalrequirement?query=(ObjectID%20=%20${task.WorkProduct.ObjectID})&fetch=true\"," + "\"defect\" : \"/defect?query=(ObjectID%20=%20${task.WorkProduct.ObjectID})&fetch=true\"" + "}"; log.info("apiURL=" + apiURL); log.info("requestJSON=" + requestJSON); String responseJSON = postRallyXML(apiURL, requestJSON); // Bypass"%;" to avoid exception responseJSON = responseJSON.replace("%;", ";"); responseJSON = responseJSON.replace("%", ""); Map jsonMap = JsonUtil.jsonToMap(responseJSON); String usRef = ""; String usName = ""; String usFormattedId = ""; String usPlanEstimate = ""; String usTaskEstimateTotal = ""; String usTaskRemainingTotal = ""; String usState = ""; String usOwner = ""; Map usMap = new HashMap(); // Get user story info JSONObject userstoryMap = (JSONObject) jsonMap.get("userstory"); JSONArray userstoryArray = (JSONArray) userstoryMap.get("Results"); if (userstoryArray == null || userstoryArray.size() == 0) { userstoryMap = (JSONObject) jsonMap.get("defect"); userstoryArray = (JSONArray) userstoryMap.get("Results"); } if (userstoryArray != null && userstoryArray.size() > 0) { JSONObject userstoryInfo = (JSONObject) userstoryArray.get(0); // log.info("userstoryInfo="+userstoryInfo); usRef = (userstoryInfo.get("_ref")).toString(); usFormattedId = (userstoryInfo.get("FormattedID")).toString(); usName = (userstoryInfo.get("Name")).toString(); usState = (userstoryInfo.get("ScheduleState")).toString(); if (userstoryInfo.get("PlanEstimate") != null) usPlanEstimate = (userstoryInfo.get("PlanEstimate")).toString(); if (userstoryInfo.get("TaskEstimateTotal") != null) usTaskEstimateTotal = (userstoryInfo.get("TaskEstimateTotal")).toString(); if (userstoryInfo.get("TaskRemainingTotal") != null) usTaskRemainingTotal = (userstoryInfo.get("TaskRemainingTotal")).toString(); JSONObject ownerMap = (JSONObject) userstoryInfo.get("Owner"); if (ownerMap != null) { usOwner = (String) ownerMap.get("_refObjectName"); if (usOwner == null) { usOwner = ""; } } } Map usDetailMap = new HashMap(); usDetailMap.put("usFormattedId", usFormattedId); usDetailMap.put("usName", usName); usDetailMap.put("usPlanEstimate", usPlanEstimate); usDetailMap.put("usTaskEstimateTotal", usTaskEstimateTotal); usDetailMap.put("usTaskRemainingTotal", usTaskRemainingTotal); usDetailMap.put("usOwner", usOwner); usDetailMap.put("usState", usState); usMap.put(usRef, usDetailMap); // log.info("usMap="+usMap); String taskObjId = ""; String taskFormattedId = ""; String taskName = ""; String estimate = ""; String toDo = ""; String taskState = ""; String taskOwner = ""; String projectName = ""; String iterationName = ""; String workProductRef = ""; List taskList = new ArrayList(); // Get task info JSONObject taskJsonMap = (JSONObject) jsonMap.get("task"); JSONArray taskArray = (JSONArray) taskJsonMap.get("Results"); if (taskArray != null && taskArray.size() > 0) { for (int i = 0; i < taskArray.size(); i++) { JSONObject taskInfo = (JSONObject) taskArray.get(0); // log.info("taskMap="+taskMap); // log.info("taskInfo="+taskInfo); taskObjId = (taskInfo.get("ObjectID")).toString(); taskFormattedId = (taskInfo.get("FormattedID")).toString(); taskState = (taskInfo.get("State")).toString(); Object taskNameObj = taskInfo.get("Name"); taskName = taskNameObj == null ? "" : taskNameObj.toString(); Object estimateObject = taskInfo.get("Estimate"); estimate = estimateObject == null ? "" : estimateObject.toString(); Object toDoObject = taskInfo.get("ToDo"); toDo = toDoObject == null ? "" : toDoObject.toString(); JSONObject ownerMap = (JSONObject) taskInfo.get("Owner"); // log.info("ownerMap="+ownerMap); if (ownerMap != null) { taskOwner = (String) ownerMap.get("_refObjectName"); if (taskOwner == null) { taskOwner = ""; } } JSONObject workProductMap = (JSONObject) taskInfo.get("WorkProduct"); // log.info("workProductMap="+workProductMap); if (workProductMap != null) { workProductRef = (String) workProductMap.get("_ref"); if (workProductRef == null) { workProductRef = ""; } } JSONObject projectMap = (JSONObject) taskInfo.get("Project"); // log.info("projectMap="+projectMap); if (projectMap != null) { projectName = (String) projectMap.get("_refObjectName"); if (projectName == null) { projectName = ""; } } JSONObject iterationMap = (JSONObject) taskInfo.get("Iteration"); // log.info("iterationMap="+iterationMap); if (iterationMap != null) { iterationName = (String) iterationMap.get("_refObjectName"); if (iterationName == null) { iterationName = ""; } } taskMap.put("taskFormattedId", taskFormattedId); taskMap.put("taskName", taskName); taskMap.put("taskState", taskState); taskMap.put("owner", taskOwner); taskMap.put("taskEstimate", estimate); taskMap.put("taskRemaining", toDo); taskMap.put("projectName", projectName); taskMap.put("iterationName", iterationName); Map map = (Map) usMap.get(workProductRef); taskMap.put("usName", map.get("usFormattedId") + " " + map.get("usName")); log.info("taskMap=" + taskMap); } // for taskArray } return taskMap; }
/** * tries to parse the given json message into a query object * * @param json_file a json that fulfills the exchange format between frontend and middleware * @return a query object that holds the information in the json message */ public static Query parse(String json_file) { try { Query query = new Query(); Object obj = JSONValue.parse(json_file); // System.out.println(obj); JSONObject j = (JSONObject) obj; // System.out.println(j); // sources if (j.get("source") != null) { /* JSONArray jArray = (JSONArray)j.get("sources"); ArrayList<String> sources = new ArrayList<String>(); for (int i = 0; i < jArray.size(); i++){ sources.add(jArray.get(i).toString()); } */ if (((String) (j.get("source"))).equals("dbSNP")) { query.s_Source = (short) 0; } if (((String) (j.get("source"))).equals("1000GenomesProject")) { query.s_Source = (short) 1; } } // chromosome if (j.get("chromosome") != null) { if (((String) j.get("chromosome")).equals("X")) { query.s_Chromosome = 23; } else if (((String) j.get("chromosome")).equals("Y")) { query.s_Chromosome = 24; } else if (((String) j.get("chromosome")).equals("MT")) { query.s_Chromosome = 25; } else { query.s_Chromosome = (short) Integer.parseInt((String) j.get("chromosome")); } } // position if (j.get("intervall") != null) { JSONObject pos_obj = (JSONObject) j.get("intervall"); query.i_Start = (int) (long) pos_obj.get("from"); query.i_End = (int) (long) pos_obj.get("to"); query.i_ZoomLevel = (int) (long) pos_obj.get("size"); } // gene search if (j.get("search") != null) { query.x_Search = (String) j.get("search"); } // prefix if (j.get("prefix") != null) { query.b_isPrefix = (boolean) j.get("prefix"); } else { query.b_isPrefix = false; } /* // subintervals if (j.get("subintervals") != null){ query.subintervals = (int)(long) j.get("subintervals"); } */ // hasDetail flag if (j.get("hasDetail") != null) { query.b_hasDetail = (boolean) j.get("hasDetail"); } if (j.get("filter") != null) { JSONObject fil_obj = (JSONObject) j.get("filter"); if (((boolean) fil_obj.get("male")) && !((boolean) fil_obj.get("female"))) { query.s_Gender = (short) 0; } else if (!((boolean) fil_obj.get("male")) && ((boolean) fil_obj.get("female"))) { query.s_Gender = (short) 1; } query.i_RelFrq = (int) (long) fil_obj.get("relfrq"); JSONArray orig_array = (JSONArray) fil_obj.get("origin"); query.s_Country = new short[orig_array.size()]; for (int i = 0; i < orig_array.size(); i++) { query.s_Country[i] = IndexController.getNumber((String) orig_array.get(i)); } } return query; } catch (Exception e) { System.out.println("Unknown query format"); return null; } /* try{ Query query = new Query(); Integer randomID = get_random_number(); query.queryID = randomID; queryID_pool.remove(randomID); Object obj = JSONValue.parse(json_file); //System.out.println(obj); JSONObject j = (JSONObject) obj; //System.out.println(j); // sources if (j.get("source") != null){ query.source = (String)j.get("source"); } // chromosome if (j.get("chromosome") != null){ query.chromosome = (int) (long) j.get("chromosome"); } // position if (j.get("intervall") != null){ JSONObject pos_obj = (JSONObject) j.get("intervall"); Integer[] pos = new Integer[2]; pos[0] = (int)(long)pos_obj.get("from"); pos[1] = (int)(long)pos_obj.get("to"); query.zoom_level = (int)(long)pos_obj.get("size"); query.position = pos; } // gene search if (j.get("search") != null){ query.search = (String) j.get("search"); } // prefix if (j.get("prefix") != null){ query.isPrefix = (boolean)j.get("prefix"); } else{ query.isPrefix = false; } // hasDetail flag if (j.get("hasDetail") != null){ query.hasDetail = (boolean) j.get("hasDetail"); } if (j.get("filter") != null){ Filter fil = new Filter(); JSONObject fil_obj = (JSONObject)j.get("filter"); fil.male = (boolean)fil_obj.get("male"); fil.female = (boolean) fil_obj.get("female"); fil.relfrq = (int) (long)fil_obj.get("origin"); JSONArray orig_array = (JSONArray) fil_obj.get("origin"); String[] orig = new String[orig_array.size()]; for (int i = 0; i < orig_array.size(); i++){ orig[i] = (String)orig_array.get(i); } fil.origin = orig; query.filter = fil; } return query; } catch(Exception e){ System.out.println("Unknown query format"); return null; } */ }