/** * Deletes a meeting from the database * * <p>- Requires a cookie for the session user - Requires a meetingId request parameter for the * HTTP GET * * @param req The HTTP Request * @param res The HTTP Response */ public void deletemeetingAction(HttpServletRequest req, HttpServletResponse res) { // Ensure there is a cookie for the session user if (AccountController.redirectIfNoCookie(req, res)) return; if (req.getMethod() == HttpMethod.Get) { // Get the meeting int meetingId = Integer.parseInt(req.getParameter("meetingId")); MeetingManager meetingMan = new MeetingManager(); Meeting meeting = meetingMan.get(meetingId); meetingMan.deleteMeeting(meetingId); // Update the User Session to remove meeting HttpSession session = req.getSession(); Session userSession = (Session) session.getAttribute("userSession"); List<Meeting> adminMeetings = userSession.getUser().getMeetings(); for (int i = 0; i < adminMeetings.size(); i++) { Meeting m = adminMeetings.get(i); if (m.getId() == meeting.getId()) { adminMeetings.remove(i); break; } } redirectToLocal(req, res, "/home/dashboard"); return; } else if (req.getMethod() == HttpMethod.Post) { httpNotFound(req, res); } }
public void init() throws ServletException { super.init(); // allow = ThreddsConfig.getBoolean("NetcdfSubsetService.allow", true); // String radarLevel2Dir = ThreddsConfig.get("NetcdfSubsetService.radarLevel2DataDir", // "/data/ldm/pub/native/radar/level2/"); // if (!allow) return; contentPath = ServletUtil.getContentPath(); rm = new RadarMethods(contentPath, logServerStartup); // read in radarCollections.xml catalog InvCatalogFactory factory = InvCatalogFactory.getDefaultFactory(false); // no validation cat = readCatalog(factory, getPath() + catName, contentPath + getPath() + catName); if (cat == null) { logServerStartup.info("cat initialization failed"); return; } // URI tmpURI = cat.getBaseURI(); cat.setBaseURI(catURI); // get path and location from cat List parents = cat.getDatasets(); for (int i = 0; i < parents.size(); i++) { InvDataset top = (InvDataset) parents.get(i); datasets = top.getDatasets(); // dataset scans for (int j = 0; j < datasets.size(); j++) { InvDatasetScan ds = (InvDatasetScan) datasets.get(j); if (ds.getPath() != null) { dataLocation.put(ds.getPath(), ds.getScanLocation()); logServerStartup.info("path =" + ds.getPath() + " location =" + ds.getScanLocation()); } ds.setXlinkHref(ds.getPath() + "/dataset.xml"); } } logServerStartup.info(getClass().getName() + " initialization complete "); } // end init
/** * Returns the values of the named parameter as a String array, or null if the parameter was not * sent. The array has one entry for each parameter field sent. If any field was sent without a * value that entry is stored in the array as a null. The values are guaranteed to be in their * normal, decoded form. A single value is returned as a one-element array. * * @param name the parameter name. * @return the parameter values. */ public String[] getParameterValues(String name) { List<String> values = parameters.get(name); if (values == null || values.size() == 0) { return null; } else { return values.toArray(new String[values.size()]); } }
/** * Returns the value of the named parameter as a String, or null if the parameter was not sent or * was sent without a value. The value is guaranteed to be in its normal, decoded form. If the * parameter has multiple values, only the last one is returned (for backward compatibility). For * parameters with multiple values, it's possible the last "value" may be null. * * @param name the parameter name. * @return the parameter value. */ public String getParameter(String name) { try { List<String> values = parameters.get(name); if (values == null || values.size() == 0) { return null; } return values.get(values.size() - 1); } catch (Exception e) { return null; } }
public static UIComponent findPersistent( FacesContext context, ServletRequest req, UIComponent parent, String id) throws Exception { if (context == null) context = FacesContext.getCurrentInstance(); BodyContent body = null; if (parent == null) { UIComponentClassicTagBase parentTag = (UIComponentClassicTagBase) req.getAttribute("caucho.jsf.parent"); parent = parentTag.getComponentInstance(); body = parentTag.getBodyContent(); } if (parent != null) { List<UIComponent> children = parent.getChildren(); int size = children.size(); String prevId = null; for (int i = 0; i < size; i++) { UIComponent child = children.get(i); if (id.equals(child.getId())) { if (body != null) addVerbatim(parent, prevId, body); return child; } if (child.getId() != null) prevId = child.getId(); } } return null; }
void setFormData(WObject.FormData formData) { if (!(formData.values.length == 0)) { List<String> attributes = new ArrayList<String>(); attributes = new ArrayList<String>(Arrays.asList(formData.values[0].split(";"))); if (attributes.size() == 6) { try { this.volume_ = Double.parseDouble(attributes.get(0)); } catch (RuntimeException e) { this.volume_ = -1; } try { this.current_ = Double.parseDouble(attributes.get(1)); } catch (RuntimeException e) { this.current_ = -1; } try { this.duration_ = Double.parseDouble(attributes.get(2)); } catch (RuntimeException e) { this.duration_ = -1; } this.playing_ = attributes.get(3).equals("0"); this.ended_ = attributes.get(4).equals("1"); try { this.readyState_ = intToReadyState(Integer.parseInt(attributes.get(5))); } catch (RuntimeException e) { throw new WException( "WAbstractMedia: error parsing: " + formData.values[0] + ": " + e.toString()); } } else { throw new WException("WAbstractMedia: error parsing: " + formData.values[0]); } } }
@Nonnull protected MBeanAttributeInfo[] getMBeanAttributesFor() { final List<MBeanAttributeInfo> attributes = new ArrayList<>(); for (ScopeMapping mapping : _patternToMapping.values()) { for (String name : mapping.getAllNames()) { attributes.add( new MBeanAttributeInfo( name != null ? name + "." + REQUESTS_PER_SECOND_ATTRIBUTE_NAME : REQUESTS_PER_SECOND_ATTRIBUTE_NAME, Double.class.getName(), null, true, false, false)); attributes.add( new MBeanAttributeInfo( name != null ? name + "." + AVERAGE_REQUEST_DURATION_ATTRIBUTE_NAME : AVERAGE_REQUEST_DURATION_ATTRIBUTE_NAME, Double.class.getName(), null, true, false, false)); } } return attributes.toArray(new MBeanAttributeInfo[attributes.size()]); }
static void decodeTouches(String str, List<Touch> result) { if (str.length() == 0) { return; } List<String> s = new ArrayList<String>(); s = new ArrayList<String>(Arrays.asList(str.split(";"))); if (s.size() % 9 != 0) { logger.error( new StringWriter() .append("Could not parse touches array '") .append(str) .append("'") .toString()); return; } try { for (int i = 0; i < s.size(); i += 9) { result.add( new Touch( asUInt(s.get(i + 0)), asInt(s.get(i + 1)), asInt(s.get(i + 2)), asInt(s.get(i + 3)), asInt(s.get(i + 4)), asInt(s.get(i + 5)), asInt(s.get(i + 6)), asInt(s.get(i + 7)), asInt(s.get(i + 8)))); } } catch (NumberFormatException ee) { logger.error( new StringWriter() .append("Could not parse touches array '") .append(str) .append("'") .toString()); return; } }
public StringBuilder listToCSV(List list) { StringBuilder csv = new StringBuilder(); csv.append( "Work Product,,Name,State,Owner,Plan Estimate,Task Estimate,Task Remaining,Time Spent\n"); for (int i = 0; i < list.size(); i++) { Map map = (Map) list.get(i); String type = (String) map.get("type"); String formattedId = (String) map.get("formattedId"); String name = (String) map.get("name"); String taskStatus = (String) map.get("taskStatus"); String owner = (String) map.get("owner"); String planEstimate = (String) map.get("planEstimate"); String taskEstimateTotal = (String) map.get("taskEstimateTotal"); String taskRemainingTotal = (String) map.get("taskRemainingTotal"); String taskTimeSpentTotal = (String) map.get("taskTimeSpentTotal"); if ("task".equals(type)) { csv.append("," + formattedId + ","); } else if ("userstory".equals(type)) { csv.append(formattedId + ",,"); } else if ("iteration".equals(type)) { csv.append(",,"); } if (planEstimate == null) { planEstimate = ""; } if (taskEstimateTotal == null) { taskEstimateTotal = ""; } if (taskRemainingTotal == null) { taskRemainingTotal = ""; } csv.append("\"" + name + "\","); csv.append(taskStatus + ","); csv.append(owner + ","); csv.append(planEstimate + ","); csv.append(taskEstimateTotal + ","); csv.append(taskRemainingTotal + ","); csv.append(taskTimeSpentTotal + "\n"); } return csv; }
private void expand(int row, int column, int rowSpan, int columnSpan) { int newRowCount = Math.max(this.getRowCount(), row + rowSpan); int newColumnCount = Math.max(this.getColumnCount(), column + columnSpan); int extraRows = newRowCount - this.getRowCount(); int extraColumns = newColumnCount - this.getColumnCount(); if (extraColumns > 0) { for (int a_row = 0; a_row < this.getRowCount(); ++a_row) { { int insertPos = this.grid_.items_.get(a_row).size(); for (int ii = 0; ii < (extraColumns); ++ii) this.grid_.items_.get(a_row).add(insertPos + ii, new Grid.Item()); } ; } { int insertPos = this.grid_.columns_.size(); for (int ii = 0; ii < (extraColumns); ++ii) this.grid_.columns_.add(insertPos + ii, new Grid.Section()); } ; } if (extraRows > 0) { { int insertPos = this.grid_.items_.size(); for (int ii = 0; ii < (extraRows); ++ii) this.grid_.items_.add(insertPos + ii, new ArrayList<Grid.Item>()); } ; for (int i = 0; i < extraRows; ++i) { final List<Grid.Item> items = this.grid_.items_.get(this.grid_.items_.size() - extraRows + i); { int insertPos = items.size(); for (int ii = 0; ii < (newColumnCount); ++ii) items.add(insertPos + ii, new Grid.Item()); } ; } { int insertPos = this.grid_.rows_.size(); for (int ii = 0; ii < (extraRows); ++ii) this.grid_.rows_.add(insertPos + ii, new Grid.Section()); } ; } }
private static void addChild(UIComponent parent, String prevId, UIComponent child) { if (parent != null) { List<UIComponent> children = parent.getChildren(); int size = children.size(); boolean hasPrev = prevId == null; int i = 0; for (; i < size; i++) { UIComponent oldChild = children.get(i); if (hasPrev && oldChild.getId() != null) { children.add(i, child); return; } else if (prevId != null && prevId.equals(oldChild.getId())) hasPrev = true; } parent.getChildren().add(child); } }
public String buildServiceOptions(String rule) throws SQLException { List services = NotificationFactory.getInstance().getServiceNames(); Collections.sort( services, new Comparator() { public int compare(Object o1, Object o2) { return ((String) o1).compareToIgnoreCase((String) o2); } }); StringBuffer buffer = new StringBuffer(); for (int i = 0; i < services.size(); i++) { if (rule != null && rule.indexOf((String) services.get(i)) > 0) { buffer.append( "<option selected VALUE='" + services.get(i) + "'>" + services.get(i) + "</option>"); } else { buffer.append("<option VALUE='" + services.get(i) + "'>" + services.get(i) + "</option>"); } } return buffer.toString(); }
public StringBuilder listToCSVForUserView(List list) { StringBuilder csv = new StringBuilder(); csv.append( "Project,Iteration,Work Product,Name,State,Owner,Task Estimate,Task Remaining,Time Spent\n"); for (int i = 0; i < list.size(); i++) { Map map = (Map) list.get(i); String projectName = (String) map.get("projectName"); String iterationName = (String) map.get("iterationName"); String formattedId = (String) map.get("taskFormattedId"); String taskName = (String) map.get("taskName"); String taskState = (String) map.get("taskState"); String owner = (String) map.get("owner"); String taskEstimate = (String) map.get("taskEstimate"); String taskRemaining = (String) map.get("taskRemaining"); String taskTimeSpent = (String) map.get("hours"); if (taskEstimate == null) { taskEstimate = ""; } if (taskRemaining == null) { taskRemaining = ""; } csv.append("" + projectName + ","); csv.append("\"" + iterationName + "\","); csv.append(formattedId + ","); csv.append(taskName + ","); csv.append(taskState + ","); csv.append(owner + ","); csv.append(taskEstimate + ","); csv.append(taskRemaining + ","); csv.append(taskTimeSpent + "\n"); } return csv; }
public String buildServiceList(String rule) throws SQLException { if (rule == null) { return ""; } List services = NotificationFactory.getInstance().getServiceNames(); Collections.sort( services, new Comparator() { public int compare(Object o1, Object o2) { return ((String) o1).compareToIgnoreCase((String) o2); } }); StringBuffer buffer = new StringBuffer(); for (int i = 0; i < services.size(); i++) { if (rule.indexOf((String) services.get(i)) > 0) { buffer.append(services.get(i)).append("</br>"); } } return buffer.toString(); }
/** * Creates REST request. * * @param cmd Command. * @param params Parameters. * @return REST request. * @throws GridException If creation failed. */ @Nullable private GridRestRequest createRequest( GridRestCommand cmd, Map<String, Object> params, ServletRequest req) throws GridException { GridRestRequest restReq; switch (cmd) { case CACHE_GET: case CACHE_GET_ALL: case CACHE_PUT: case CACHE_PUT_ALL: case CACHE_REMOVE: case CACHE_REMOVE_ALL: case CACHE_ADD: case CACHE_CAS: case CACHE_METRICS: case CACHE_REPLACE: case CACHE_DECREMENT: case CACHE_INCREMENT: case CACHE_APPEND: case CACHE_PREPEND: { GridRestCacheRequest restReq0 = new GridRestCacheRequest(); restReq0.cacheName((String) params.get("cacheName")); restReq0.key(params.get("key")); restReq0.value(params.get("val")); restReq0.value2(params.get("val2")); Object val1 = params.get("val1"); if (val1 != null) restReq0.value(val1); restReq0.cacheFlags(intValue("cacheFlags", params, 0)); restReq0.ttl(longValue("exp", params, null)); restReq0.initial(longValue("init", params, null)); restReq0.delta(longValue("delta", params, null)); if (cmd == CACHE_GET_ALL || cmd == CACHE_PUT_ALL || cmd == CACHE_REMOVE_ALL) { List<Object> keys = values("k", params); List<Object> vals = values("v", params); if (keys.size() < vals.size()) throw new GridException( "Number of keys must be greater or equals to number of values."); Map<Object, Object> map = U.newHashMap(keys.size()); Iterator<Object> keyIt = keys.iterator(); Iterator<Object> valIt = vals.iterator(); while (keyIt.hasNext()) map.put(keyIt.next(), valIt.hasNext() ? valIt.next() : null); restReq0.values(map); } restReq = restReq0; break; } case TOPOLOGY: case NODE: { GridRestTopologyRequest restReq0 = new GridRestTopologyRequest(); restReq0.includeMetrics(Boolean.parseBoolean((String) params.get("mtr"))); restReq0.includeAttributes(Boolean.parseBoolean((String) params.get("attr"))); restReq0.nodeIp((String) params.get("ip")); restReq0.nodeId(uuidValue("id", params)); restReq = restReq0; break; } case EXE: case RESULT: case NOOP: { GridRestTaskRequest restReq0 = new GridRestTaskRequest(); restReq0.taskId((String) params.get("id")); restReq0.taskName((String) params.get("name")); restReq0.params(values("p", params)); restReq0.async(Boolean.parseBoolean((String) params.get("async"))); restReq0.timeout(longValue("timeout", params, 0L)); restReq = restReq0; break; } case LOG: { GridRestLogRequest restReq0 = new GridRestLogRequest(); restReq0.path((String) params.get("path")); restReq0.from(intValue("from", params, -1)); restReq0.to(intValue("to", params, -1)); restReq = restReq0; break; } case VERSION: { restReq = new GridRestRequest(); break; } default: throw new GridException("Invalid command: " + cmd); } restReq.address(new InetSocketAddress(req.getRemoteAddr(), req.getRemotePort())); restReq.command(cmd); if (params.containsKey("gridgain.login") || params.containsKey("gridgain.password")) { GridSecurityCredentials cred = new GridSecurityCredentials( (String) params.get("gridgain.login"), (String) params.get("gridgain.password")); restReq.credentials(cred); } String clientId = (String) params.get("clientId"); try { if (clientId != null) restReq.clientId(UUID.fromString(clientId)); } catch (Exception ignored) { // Ignore invalid client id. Rest handler will process this logic. } String destId = (String) params.get("destId"); try { if (destId != null) restReq.destinationId(UUID.fromString(destId)); } catch (IllegalArgumentException ignored) { // Don't fail - try to execute locally. } String sesTokStr = (String) params.get("sessionToken"); try { if (sesTokStr != null) restReq.sessionToken(U.hexString2ByteArray(sesTokStr)); } catch (IllegalArgumentException ignored) { // Ignore invalid session token. } return restReq; }
/** * Search for pages matching a query, eliminating excessive hits with matching values for a named * field. Hits after the first <code>maxHitsPerDup</code> are removed from results. The remaining * hits have {@link Hit#moreFromDupExcluded()} set. * * <p>If maxHitsPerDup is zero then all hits are returned. * * @param query query * @param numHits number of requested hits * @param maxHitsPerDup the maximum hits returned with matching values, or zero * @param dedupField field name to check for duplicates * @param sortField Field to sort on (or null if no sorting). * @param reverse True if we are to reverse sort by <code>sortField</code>. * @return Hits the matching hits * @throws IOException */ public Hits search( Query query, int numHits, int maxHitsPerDup, String dedupField, String sortField, boolean reverse) throws IOException { if (maxHitsPerDup <= 0) // disable dup checking return search(query, numHits, dedupField, sortField, reverse); final float rawHitsFactor = this.conf.getFloat("searcher.hostgrouping.rawhits.factor", 2.0f); int numHitsRaw = (int) (numHits * rawHitsFactor); if (LOG.isInfoEnabled()) { LOG.info("searching for " + numHitsRaw + " raw hits"); } Hits hits = searchBean.search(query, numHitsRaw, dedupField, sortField, reverse); final long total = hits.getTotal(); final Map<String, DupHits> dupToHits = new HashMap<String, DupHits>(); final List<Hit> resultList = new ArrayList<Hit>(); final Set<Hit> seen = new HashSet<Hit>(); final List<String> excludedValues = new ArrayList<String>(); boolean totalIsExact = true; for (int rawHitNum = 0; rawHitNum < hits.getTotal(); rawHitNum++) { // get the next raw hit if (rawHitNum >= hits.getLength()) { // optimize query by prohibiting more matches on some excluded values final Query optQuery = (Query) query.clone(); for (int i = 0; i < excludedValues.size(); i++) { if (i == MAX_PROHIBITED_TERMS) break; optQuery.addProhibitedTerm(excludedValues.get(i), dedupField); } numHitsRaw = (int) (numHitsRaw * rawHitsFactor); if (LOG.isInfoEnabled()) { LOG.info("re-searching for " + numHitsRaw + " raw hits, query: " + optQuery); } hits = searchBean.search(optQuery, numHitsRaw, dedupField, sortField, reverse); if (LOG.isInfoEnabled()) { LOG.info("found " + hits.getTotal() + " raw hits"); } rawHitNum = -1; continue; } final Hit hit = hits.getHit(rawHitNum); if (seen.contains(hit)) continue; seen.add(hit); // get dup hits for its value final String value = hit.getDedupValue(); DupHits dupHits = dupToHits.get(value); if (dupHits == null) dupToHits.put(value, dupHits = new DupHits()); // does this hit exceed maxHitsPerDup? if (dupHits.size() == maxHitsPerDup) { // yes -- ignore the hit if (!dupHits.maxSizeExceeded) { // mark prior hits with moreFromDupExcluded for (int i = 0; i < dupHits.size(); i++) { dupHits.get(i).setMoreFromDupExcluded(true); } dupHits.maxSizeExceeded = true; excludedValues.add(value); // exclude dup } totalIsExact = false; } else { // no -- collect the hit resultList.add(hit); dupHits.add(hit); // are we done? // we need to find one more than asked for, so that we can tell if // there are more hits to be shown if (resultList.size() > numHits) break; } } final Hits results = new Hits(total, resultList.toArray(new Hit[resultList.size()])); results.setTotalIsExact(totalIsExact); return results; }
public synchronized void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { HttpSession dbSession = request.getSession(); JspFactory _jspxFactory = JspFactory.getDefaultFactory(); PageContext pageContext = _jspxFactory.getPageContext(this, request, response, "", true, 8192, true); ServletContext dbApplication = dbSession.getServletContext(); try { PrintWriter out = response.getWriter(); nseer_db_backup1 stock_db = new nseer_db_backup1(dbApplication); nseer_db_backup1 crm_db = new nseer_db_backup1(dbApplication); if (stock_db.conn((String) dbSession.getAttribute("unit_db_name")) && crm_db.conn((String) dbSession.getAttribute("unit_db_name"))) { FileKind FileKind = new FileKind(); ValidataNumber validata = new ValidataNumber(); ValidataRecord vr = new ValidataRecord(); counter count = new counter(dbApplication); ValidataTag vt = new ValidataTag(); String register_ID = (String) dbSession.getAttribute("human_IDD"); String config_id = request.getParameter("config_id"); String pay_ID = request.getParameter("pay_ID"); String product_amount = request.getParameter("product_amount"); int num = Integer.parseInt(product_amount); String payer_name = request.getParameter("payer_name"); String payer_ID = request.getParameter("payer_ID"); String reason = request.getParameter("reason"); String not_return_tag = request.getParameter("not_return_tag"); String register = request.getParameter("register"); String register_time = request.getParameter("register_time"); String demand_return_time = request.getParameter("demand_return_time"); String sales_name = request.getParameter("sales_name"); String sales_ID = request.getParameter("sales_ID"); String bodyc = new String(request.getParameter("remark").getBytes("UTF-8"), "UTF-8"); String remark = exchange.toHtml(bodyc); String time = ""; java.util.Date now = new java.util.Date(); SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd"); time = formatter.format(now); String[] product_IDn = request.getParameterValues("product_ID"); String[] amountn = request.getParameterValues("amount"); if (num == 0 && product_IDn.length == 1) { response.sendRedirect("draft/crm/credit_ok_a.jsp?pay_ID=" + pay_ID); } else { int p = 0; for (int i = 1; i <= num; i++) { String tem_amount = "amount" + i; String amount = request.getParameter(tem_amount); if (amount.equals("")) amount = "0"; if (!validata.validata(amount)) { p++; } } int n = 0; String product_ID_group = ""; for (int j = 1; j < product_IDn.length; j++) { product_ID_group += product_IDn[j] + ","; if (amountn[j].equals("")) amountn[j] = "0"; if (!validata.validata(amountn[j])) { p++; } } for (int i = 1; i <= num; i++) { String tem_product_ID = "product_ID" + i; String product_ID = request.getParameter(tem_product_ID); if (product_ID_group.indexOf(product_ID) != -1) n++; } if (vt.validata( (String) dbSession.getAttribute("unit_db_name"), "stock_apply_pay", "pay_ID", pay_ID, "check_tag") .equals("9") || vt.validata( (String) dbSession.getAttribute("unit_db_name"), "stock_apply_pay", "pay_ID", pay_ID, "check_tag") .equals("5")) { if (p == 0) { try { if (n == 0) { boolean flag = false; List rsList = GetWorkflow.getList(crm_db, "crm_config_workflow", "05"); String[] elem = new String[3]; if (rsList.size() == 0) { flag = true; } String sqll = ""; String[] aaa1 = FileKind.getKind( (String) dbSession.getAttribute("unit_db_name"), "crm_file", "customer_ID", payer_ID); String stock_pay_ID = NseerId.getId("stock/pay", (String) dbSession.getAttribute("unit_db_name")); double demand_amount = 0.0d; double list_price_sum = 0.0d; double cost_price_sum = 0.0d; for (int i = 1; i <= num; i++) { String tem_product_name = "product_name" + i; String tem_product_ID = "product_ID" + i; String tem_available_amount = "available_amount" + i; String tem_amount = "amount" + i; String tem_list_price = "list_price" + i; String tem_cost_price = "cost_price" + i; String tem_type = "type" + i; String tem_amount_unit = "amount_unit" + i; String product_name = request.getParameter(tem_product_name); String product_ID = request.getParameter(tem_product_ID); String available_amount = request.getParameter(tem_available_amount); String amount = request.getParameter(tem_amount); if (amount.equals("")) amount = "0"; String list_price2 = request.getParameter(tem_list_price); String cost_price = request.getParameter(tem_cost_price); String type = request.getParameter(tem_type); StringTokenizer tokenTO3 = new StringTokenizer(list_price2, ","); String list_price = ""; while (tokenTO3.hasMoreTokens()) { String list_price1 = tokenTO3.nextToken(); list_price += list_price1; } String amount_unit = request.getParameter(tem_amount_unit); double list_price_subtotal = Double.parseDouble(list_price) * Double.parseDouble(amount); list_price_sum += list_price_subtotal; double cost_price_subtotal = Double.parseDouble(cost_price) * Double.parseDouble(amount); cost_price_sum += cost_price_subtotal; demand_amount += Double.parseDouble(amount); String sql1 = "update stock_apply_pay_details set amount='" + amount + "',list_price='" + list_price + "',list_price_subtotal='" + list_price_subtotal + "',cost_price='" + cost_price + "',subtotal='" + cost_price_subtotal + "' where pay_ID='" + pay_ID + "' and details_number='" + i + "'"; stock_db.executeUpdate(sql1); if (flag) { if (type.equals("物料") || type.equals("外购商品")) { String sql2 = "insert into stock_pay_details(pay_ID,details_number,product_ID,product_name,type,list_price,list_price_subtotal,cost_price,subtotal,amount,unpay_amount,apply_manufacture_amount,apply_purchase_amount) values('" + stock_pay_ID + "','" + i + "','" + product_ID + "','" + product_name + "','" + type + "','" + list_price + "','" + list_price_subtotal + "','" + cost_price + "','" + cost_price_subtotal + "','" + amount + "','" + amount + "','0','" + amount + "')"; stock_db.executeUpdate(sql2); } else if (type.equals("商品") || type.equals("部件") || type.equals("委外部件")) { String sql2 = "insert into stock_pay_details(pay_ID,details_number,product_ID,product_name,type,list_price,list_price_subtotal,cost_price,subtotal,amount,unpay_amount,apply_manufacture_amount,apply_purchase_amount) values('" + stock_pay_ID + "','" + i + "','" + product_ID + "','" + product_name + "','" + type + "','" + list_price + "','" + list_price_subtotal + "','" + cost_price + "','" + cost_price_subtotal + "','" + amount + "','" + amount + "','" + amount + "','0')"; stock_db.executeUpdate(sql2); } String sql97 = "select * from crm_salecredit_balance_details where crediter_ID='" + payer_ID + "' and product_ID='" + product_ID + "'"; ResultSet rs97 = crm_db.executeQuery(sql97); if (rs97.next()) { double balance_amount = rs97.getDouble("amount") + Double.parseDouble(amount); double balance_cost_price_subtotal = rs97.getDouble("subtotal") + cost_price_subtotal; double balance_list_price_subtotal = rs97.getDouble("list_price_subtotal") + list_price_subtotal; String sql96 = "update crm_salecredit_balance_details set amount='" + balance_amount + "',check_tag='1',subtotal='" + balance_cost_price_subtotal + "',list_price_subtotal='" + balance_list_price_subtotal + "' where crediter_ID='" + payer_ID + "' and product_ID='" + product_ID + "'"; crm_db.executeUpdate(sql96); } else { String[] aaa = FileKind.getKind( (String) dbSession.getAttribute("unit_db_name"), "design_file", "product_ID", product_ID); String sql95 = "insert into crm_salecredit_balance_details(chain_ID,chain_name,crediter_chain_ID,crediter_chain_name,product_ID,product_name,list_price,list_price_subtotal,cost_price,subtotal,amount,crediter_ID,crediter_name) values('" + aaa[0] + "','" + aaa[1] + "','" + aaa1[0] + "','" + aaa1[1] + "','" + product_ID + "','" + product_name + "','" + list_price + "','" + list_price_subtotal + "','" + cost_price + "','" + cost_price_subtotal + "','" + amount + "','" + payer_ID + "','" + payer_name + "')"; crm_db.executeUpdate(sql95); } } } String[] cost_pricen = request.getParameterValues("cost_price"); String[] list_pricen = request.getParameterValues("list_price"); String[] product_namen = request.getParameterValues("product_name"); String[] product_describen = request.getParameterValues("product_describe"); String[] amount_unitn = request.getParameterValues("amount_unit"); String[] typen = request.getParameterValues("type"); for (int i = 1; i < product_IDn.length; i++) { StringTokenizer tokenTO3 = new StringTokenizer(list_pricen[i], ","); String list_price = ""; while (tokenTO3.hasMoreTokens()) { String list_price1 = tokenTO3.nextToken(); list_price += list_price1; } if (!amountn[i].equals("") && Double.parseDouble(amountn[i]) != 0) { double list_price_subtotal = Double.parseDouble(list_price) * Double.parseDouble(amountn[i]); list_price_sum += list_price_subtotal; double subtotal = Double.parseDouble(cost_pricen[i]) * Double.parseDouble(amountn[i]); cost_price_sum += subtotal; demand_amount += Double.parseDouble(amountn[i]); num++; String sql1 = "insert into stock_apply_pay_details(payer_chain_ID,payer_chain_name,sales_ID,sales_name,payer_ID,payer_name,payer_type,pay_ID,details_number,product_ID,product_name,product_describe,amount,amount_unit,list_price,list_price_subtotal,cost_price,subtotal,type) values ('" + aaa1[0] + "','" + aaa1[1] + "','" + sales_ID + "','" + sales_name + "','" + payer_ID + "','" + payer_name + "','销售赊货','" + pay_ID + "','" + num + "','" + product_IDn[i] + "','" + product_namen[i] + "','" + product_describen[i] + "','" + amountn[i] + "','" + amount_unitn[i] + "','" + list_price + "','" + list_price_subtotal + "','" + cost_pricen[i] + "','" + subtotal + "','" + typen[i] + "')"; stock_db.executeUpdate(sql1); // ********************** if (rsList.size() == 0) { if (typen[i].equals("物料") || typen[i].equals("外购商品")) { String sql2 = "insert into stock_pay_details(pay_ID,details_number,product_ID,product_name,type,list_price,list_price_subtotal,cost_price,subtotal,amount,unpay_amount,apply_manufacture_amount,apply_purchase_amount) values('" + stock_pay_ID + "','" + num + "','" + product_IDn[i] + "','" + product_namen[i] + "','" + typen[i] + "','" + list_price + "','" + list_price_subtotal + "','" + cost_pricen[i] + "','" + subtotal + "','" + amountn[i] + "','" + amountn[i] + "','0','" + amountn[i] + "')"; stock_db.executeUpdate(sql2); } else if (typen[i].equals("商品") || typen[i].equals("部件") || typen[i].equals("委外部件")) { String sql2 = "insert into stock_pay_details(pay_ID,details_number,product_ID,product_name,type,list_price,list_price_subtotal,cost_price,subtotal,amount,unpay_amount,apply_manufacture_amount,apply_purchase_amount) values('" + stock_pay_ID + "','" + num + "','" + product_IDn[i] + "','" + product_namen[i] + "','" + typen[i] + "','" + list_price + "','" + list_price_subtotal + "','" + cost_pricen[i] + "','" + subtotal + "','" + amountn[i] + "','" + amountn[i] + "','" + amountn[i] + "','0')"; stock_db.executeUpdate(sql2); } String sql97 = "select * from crm_salecredit_balance_details where crediter_ID='" + payer_ID + "' and product_ID='" + product_IDn[i] + "'"; ResultSet rs97 = crm_db.executeQuery(sql97); if (rs97.next()) { double balance_amount = rs97.getDouble("amount") + Double.parseDouble(amountn[i]); double balance_cost_price_subtotal = rs97.getDouble("subtotal") + subtotal; double balance_list_price_subtotal = rs97.getDouble("list_price_subtotal") + list_price_subtotal; String sql96 = "update crm_salecredit_balance_details set amount='" + balance_amount + "',check_tag='1',subtotal='" + balance_cost_price_subtotal + "',list_price_subtotal='" + balance_list_price_subtotal + "' where crediter_ID='" + payer_ID + "' and product_ID='" + product_IDn[i] + "'"; crm_db.executeUpdate(sql96); } else { String[] aaa = FileKind.getKind( (String) dbSession.getAttribute("unit_db_name"), "design_file", "product_ID", product_IDn[i]); String sql95 = "insert into crm_salecredit_balance_details(chain_ID,chain_name,crediter_chain_ID,crediter_chain_name,product_ID,product_name,list_price,list_price_subtotal,cost_price,subtotal,amount,crediter_ID,crediter_name) values('" + aaa[0] + "','" + aaa[1] + "','" + aaa1[0] + "','" + aaa1[1] + "','" + product_IDn[i] + "','" + product_namen[i] + "','" + list_price + "','" + list_price_subtotal + "','" + cost_pricen[i] + "','" + subtotal + "','" + amountn[i] + "','" + payer_ID + "','" + payer_name + "')"; crm_db.executeUpdate(sql95); } } // *************************** } } String sql = "update stock_apply_pay set reason='" + reason + "',register='" + register + "',register_time='" + register_time + "',demand_return_time='" + demand_return_time + "',register_time='" + register_time + "',register='" + register + "',remark='" + remark + "',demand_amount='" + demand_amount + "',list_price_sum='" + list_price_sum + "',cost_price_sum='" + cost_price_sum + "',not_return_tag='" + not_return_tag + "' where pay_ID='" + pay_ID + "'"; stock_db.executeUpdate(sql); if (flag) { sql = "update stock_apply_pay set check_tag='1' where pay_ID='" + pay_ID + "'"; stock_db.executeUpdate(sql); if (!vr.validata( (String) dbSession.getAttribute("unit_db_name"), "stock_pay", "reasonexact", pay_ID)) { String sql4 = "insert into stock_pay(pay_ID,reason,reasonexact,reasonexact_details,demand_amount,list_price_sum,cost_price_sum,register,register_time) values('" + stock_pay_ID + "','" + reason + "','" + pay_ID + "','" + payer_name + "','" + demand_amount + "','" + list_price_sum + "','" + cost_price_sum + "','" + register + "','" + register_time + "')"; stock_db.executeUpdate(sql4); } String sql98 = "select * from crm_file where customer_ID='" + payer_ID + "'"; ResultSet rs98 = crm_db.executeQuery(sql98); if (rs98.next()) { double salecredit_list_price_sum = rs98.getDouble("salecredit_list_price_sum") + list_price_sum; double salecredit_cost_price_sum = rs98.getDouble("salecredit_cost_price_sum") + cost_price_sum; String sql99 = "update crm_file set credit_yes_or_not_tag='1',salecredit_list_price_sum='" + salecredit_list_price_sum + "',salecredit_cost_price_sum='" + salecredit_cost_price_sum + "' where customer_ID='" + payer_ID + "' "; crm_db.executeUpdate(sql99); } } else { sql = "update stock_apply_pay set check_tag='0' where pay_ID='" + pay_ID + "'"; stock_db.executeUpdate(sql); Iterator ite = rsList.iterator(); while (ite.hasNext()) { elem = (String[]) ite.next(); sql = "insert into crm_workflow(config_id,object_ID,describe1,describe2) values ('" + elem[0] + "','" + pay_ID + "','" + elem[1] + "','" + elem[2] + "')"; crm_db.executeUpdate(sql); } } response.sendRedirect("draft/crm/credit_ok.jsp?finished_tag=8"); } else { response.sendRedirect( "draft/crm/credit_ok.jsp?finished_tag=7&pay_ID=" + pay_ID + ""); } } catch (Exception ex) { ex.printStackTrace(); } } else { response.sendRedirect("draft/crm/credit_ok.jsp?finished_tag=6&pay_ID=" + pay_ID + ""); } } else { response.sendRedirect("draft/crm/credit_ok.jsp?finished_tag=9"); } } stock_db.commit(); crm_db.commit(); stock_db.close(); crm_db.close(); } else { response.sendRedirect("error_conn.htm"); } } catch (Exception ex) { ex.printStackTrace(); } }
private void datasetInfoXml(RadarType radarType, String pathInfo, PrintWriter pw) throws IOException { try { pw.println( "<catalog xmlns=\"http://www.unidata.ucar.edu/namespaces/thredds/InvCatalog/v1.0\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" name=\"Radar Data\" version=\"1.0.1\">\n"); // add service pw.println( " <service name=\"radarServer\" base=\"/thredds/radarServer/\" serviceType=\"DQC\" />\n"); pathInfo = pathInfo.replace("/dataset.xml", ""); pathInfo = pathInfo.replace("/catalog.xml", ""); if (pathInfo.startsWith("/")) pathInfo = pathInfo.substring(1); for (int i = 0; i < datasets.size(); i++) { InvDatasetScan ds = (InvDatasetScan) datasets.get(i); if (!(pathInfo.equals(ds.getPath()))) { continue; } pw.println(" <dataset ID=\"" + ds.getID() + "\" serviceName=\"radarServer\">"); pw.println(" <urlpath>" + ds.getPath() + "</urlpath>"); pw.println(" <dataType>" + ds.getDataType() + "</dataType>"); pw.println(" <dataFormat>" + ds.getDataFormatType() + "</dataFormat>"); pw.println(" <serviceName>radarServer</serviceName>"); pw.println(" <metadata inherited=\"true\">"); pw.println(" <documentation type=\"summary\">" + ds.getSummary() + "</documentation>"); CalendarDateRange dr = ds.getCalendarDateCoverage(); pw.println(" <TimeSpan>"); pw.print(" <start>"); if (pathInfo.contains("IDD")) { pw.print(rm.getStartDateTime(ds.getPath())); } else { pw.print(dr.getStart().toString()); } pw.println("</start>"); pw.println(" <end>" + dr.getEnd().toString() + "</end>"); pw.println(" </TimeSpan>"); ThreddsMetadata.GeospatialCoverage gc = ds.getGeospatialCoverage(); LatLonRect bb = new LatLonRect(); gc.setBoundingBox(bb); pw.println(" <LatLonBox>"); pw.println(" <north>" + gc.getLatNorth() + "</north>"); pw.println(" <south>" + gc.getLatSouth() + "</south>"); pw.println(" <east>" + gc.getLonEast() + "</east>"); pw.println(" <west>" + gc.getLonWest() + "</west>"); pw.println(" </LatLonBox>"); ThreddsMetadata.Variables cvs = (ThreddsMetadata.Variables) ds.getVariables().get(0); List vl = cvs.getVariableList(); pw.println(" <Variables>"); for (int j = 0; j < vl.size(); j++) { ThreddsMetadata.Variable v = (ThreddsMetadata.Variable) vl.get(j); pw.println( " <variable name=\"" + v.getName() + "\" vocabulary_name=\"" + v.getVocabularyName() + "\" units=\"" + v.getUnits() + "\" />"); } pw.println(" </Variables>"); String[] stations = rm.stationsDS(radarType, dataLocation.get(ds.getPath())); rm.printStations(stations, pw, radarType); pw.println(" </metadata>"); pw.println(" </dataset>"); } pw.println("</catalog>"); pw.flush(); } catch (Throwable e) { log.error("RadarServer.datasetInfoXml", e); } return; }
// public List getUserStoryList(String sessionId,String iterationId,ServletOutputStream out) { public List getUserStoryList(String sessionId, String iterationId, PrintWriter out) { List<Map> list = new ArrayList<Map>(); statusMap.put(sessionId, "0"); try { String apiURL = rallyApiHost + "/hierarchicalrequirement?" + "query=(Iteration%20=%20" + rallyApiHost + "/iteration/" + iterationId + ")&fetch=true&start=1&pagesize=100"; log.info("getUserStoryList apiURL=" + apiURL); String responseXML = getRallyXML(apiURL); org.jdom.input.SAXBuilder bSAX = new org.jdom.input.SAXBuilder(); org.jdom.Document doc = bSAX.build(new StringReader(responseXML)); Element root = doc.getRootElement(); XPath xpath = XPath.newInstance("//Object"); List xlist = xpath.selectNodes(root); int totalSteps = xlist.size() + 1; int currentStep = 0; List taskRefLink = new ArrayList(); Iterator iter = xlist.iterator(); while (iter.hasNext()) { double totalTimeSpent = 0.0D; Map map = new HashMap(); Element item = (Element) iter.next(); String objId = item.getChildText("ObjectID"); String name = item.getChildText("Name"); String planEstimate = item.getChildText("PlanEstimate"); String formattedId = item.getChildText("FormattedID"); String taskActualTotal = item.getChildText("TaskActualTotal"); String taskEstimateTotal = item.getChildText("TaskEstimateTotal"); String taskRemainingTotal = item.getChildText("TaskRemainingTotal"); String scheduleState = item.getChildText("ScheduleState"); Element ownerElement = item.getChild("Owner"); String owner = ""; String ownerRef = ""; if (ownerElement != null) { owner = ownerElement.getAttributeValue("refObjectName"); } Element taskElements = item.getChild("Tasks"); // List taskElementList=taskElements.getContent(); List taskElementList = taskElements.getChildren(); List taskList = new ArrayList(); log.info("taskElements.getChildren=" + taskElements); log.info("taskList=" + taskElementList); for (int i = 0; i < taskElementList.size(); i++) { Element taskElement = (Element) taskElementList.get(i); String taskRef = taskElement.getAttributeValue("ref"); String[] objectIdArr = taskRef.split("/"); String objectId = objectIdArr[objectIdArr.length - 1]; log.info("objectId=" + objectId); // Map taskMap=getTaskMap(taskRef); Map taskMap = getTaskMapBatch(objectId); double taskTimeSpentTotal = Double.parseDouble((String) taskMap.get("taskTimeSpentTotal")); totalTimeSpent += taskTimeSpentTotal; taskList.add(taskMap); } map.put("type", "userstory"); map.put("formattedId", formattedId); map.put("name", name); map.put("taskStatus", scheduleState); map.put("owner", owner); map.put("planEstimate", planEstimate); map.put("taskEstimateTotal", taskEstimateTotal); map.put("taskRemainingTotal", taskRemainingTotal); map.put("taskTimeSpentTotal", "" + totalTimeSpent); list.add(map); list.addAll(taskList); ++currentStep; double percentage = 100.0D * currentStep / totalSteps; String status = "" + Math.round(percentage); statusMap.put(sessionId, status); out.println("<script>parent.updateProcessStatus('" + status + "%')</script>" + status); out.flush(); log.info("out.flush..." + status); // log.info("status="+status+" sessionId="+sessionId); // log.info("L1 statusMap="+statusMap+" "+statusMap.hashCode()); } double planEstimate = 0.0D; double taskEstimateTotal = 0.0D; double taskRemainingTotal = 0.0D; double taskTimeSpentTotal = 0.0D; Map iterationMap = new HashMap(); for (Map map : list) { String type = (String) map.get("type"); String planEstimateStr = (String) map.get("planEstimate"); log.info("planEstimateStr=" + planEstimateStr); if ("userstory".equals(type)) { if (planEstimateStr != null) { planEstimate += Double.parseDouble(planEstimateStr); } taskEstimateTotal += Double.parseDouble((String) map.get("taskEstimateTotal")); taskRemainingTotal += Double.parseDouble((String) map.get("taskRemainingTotal")); taskTimeSpentTotal += Double.parseDouble((String) map.get("taskTimeSpentTotal")); } } apiURL = rallyApiHost + "/iteration/" + iterationId + "?fetch=true"; log.info("iteration apiURL=" + apiURL); responseXML = getRallyXML(apiURL); bSAX = new org.jdom.input.SAXBuilder(); doc = bSAX.build(new StringReader(responseXML)); root = doc.getRootElement(); xpath = XPath.newInstance("//Iteration"); xlist = xpath.selectNodes(root); String projName = ""; String iterName = ""; String iterState = ""; iter = xlist.iterator(); while (iter.hasNext()) { Element item = (Element) iter.next(); iterName = item.getChildText("Name"); iterState = item.getChildText("State"); Element projElement = item.getChild("Project"); projName = projElement.getAttributeValue("refObjectName"); } iterationMap.put("type", "iteration"); iterationMap.put("formattedId", ""); iterationMap.put("name", projName + " - " + iterName); iterationMap.put("taskStatus", iterState); iterationMap.put("owner", ""); iterationMap.put("planEstimate", "" + planEstimate); iterationMap.put("taskEstimateTotal", "" + taskEstimateTotal); iterationMap.put("taskRemainingTotal", "" + taskRemainingTotal); iterationMap.put("taskTimeSpentTotal", "" + taskTimeSpentTotal); list.add(0, iterationMap); statusMap.put(sessionId, "100"); log.info("L2 statusMap=" + statusMap); log.info("L2 verify=" + getProcessStatus(sessionId)); log.info("-----------"); // String jsonData=JsonUtil.encodeObj(list); String jsonData = JSONValue.toJSONString(list); out.println("<script>parent.tableResult=" + jsonData + "</script>"); out.println("<script>parent.showTableResult()</script>"); } catch (Exception ex) { log.error("ERROR: ", ex); } return list; }
public List getUserTimeSpentByDate(String userObjectId, String startDate, String endDate) { List list = new ArrayList(); log.info("userObjectId=" + userObjectId); log.info("startDate=" + startDate); log.info("endDate=" + endDate); try { String apiUrl = rallyApiHost + "/timeentryvalue?query=((TimeEntryItem.User.ObjectId%20=%20" + userObjectId + ")" + "%20and%20((DateVal%20%3E=%20" + startDate + ")%20and%20(DateVal%20%3C=%20" + endDate + ")))" + "&start=1&pagesize=100&fetch=true"; log.info("apiUrl=" + apiUrl); String responseXML = getRallyXML(apiUrl); log.info("responseXML=" + responseXML); org.jdom.input.SAXBuilder bSAX = new org.jdom.input.SAXBuilder(); org.jdom.Document doc = bSAX.build(new StringReader(responseXML)); Element root = doc.getRootElement(); XPath xpath = XPath.newInstance("//Object"); List xlist = xpath.selectNodes(root); Iterator iter = xlist.iterator(); while (iter.hasNext()) { // Map map=new HashMap(); Element item = (Element) iter.next(); String hours = item.getChildText("Hours"); Element timeEntryItemElement = item.getChild("TimeEntryItem"); String timeEntryItemRef = timeEntryItemElement.getAttributeValue("ref"); Map map = getUserStoryTaskMap(timeEntryItemRef); String checkTaskId = (String) map.get("taskFormattedId"); boolean isExist = false; for (int i = 0; i < list.size(); i++) { Map existMap = (Map) list.get(i); log.info("existMap=" + existMap); String existTaskId = (String) existMap.get("taskFormattedId"); log.info("existTaskId=" + existTaskId); log.info("checkTaskId=" + checkTaskId); if (existTaskId != null && existTaskId.equals(checkTaskId)) { isExist = true; String existHours = (String) existMap.get("hours"); double eHour = 0.0D; if (!"".equals(existHours)) { eHour = Double.parseDouble(existHours); } double nHour = 0.0D; if (!"".equals(hours)) { nHour = Double.parseDouble(hours); } log.info("nHour=" + nHour); log.info("eHour=" + eHour); nHour += eHour; log.info("2 nHour=" + nHour); existMap.put("hours", "" + nHour); break; } } if (!isExist) { map.put("hours", hours); list.add(map); } log.info("hours=" + hours); log.info("timeEntryItemRef=" + timeEntryItemRef); // list.add(map); } Collections.sort( list, new Comparator<Map<String, String>>() { public int compare(Map<String, String> m1, Map<String, String> m2) { if (m1.get("projectName") == null || m2.get("projectName") == null) return -1; return m1.get("projectName").compareTo(m2.get("projectName")); } }); // Sum up the total time double totalTaskEstimate = 0.0D; double totalTaskRemaining = 0.0D; double totalHours = 0.0D; for (int i = 0; i < list.size(); i++) { Map map = (Map) list.get(i); log.info("taskEstimate=" + (String) map.get("taskEstimate")); log.info("taskRemaining=" + (String) map.get("taskRemaining")); log.info("hours=" + (String) map.get("hours")); log.info("map==" + map); try { double taskEstimate = Double.parseDouble((String) map.get("taskEstimate")); double taskRemaining = Double.parseDouble((String) map.get("taskRemaining")); double hours = Double.parseDouble((String) map.get("hours")); totalTaskEstimate += taskEstimate; totalTaskRemaining += taskRemaining; totalHours += hours; } catch (Exception e) { log.info("ERROR in parsing number" + e); } } Map firstMap = new HashMap(); firstMap.put("taskFormattedId", ""); firstMap.put("taskName", ""); firstMap.put("taskState", ""); firstMap.put("owner", ""); firstMap.put("taskEstimate", "" + totalTaskEstimate); firstMap.put("taskRemaining", "" + totalTaskRemaining); firstMap.put("hours", "" + totalHours); firstMap.put("projectName", ""); firstMap.put("iterationName", ""); list.add(0, firstMap); } catch (Exception ex) { log.error("", ex); } return list; }
public void _jspService( javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException { com.caucho.jsp.QPageContext pageContext = (com.caucho.jsp.QPageContext) com.caucho.jsp.QJspFactory.create() .getPageContext(this, request, response, "/error.jsp", true, 8192, true); javax.servlet.jsp.JspWriter out = (javax.servlet.jsp.JspWriter) pageContext.getOut(); javax.servlet.ServletConfig config = getServletConfig(); javax.servlet.Servlet page = this; javax.servlet.http.HttpSession session = pageContext.getSession(); javax.servlet.ServletContext application = pageContext.getServletContext(); response.setContentType("text/html;charset=UTF-8"); request.setCharacterEncoding("UTF-8"); org.myconf.AuthTag _jsp_tag0 = null; org.apache.struts.taglib.bean.MessageTag _jsp_tag1 = null; org.apache.struts.taglib.html.RewriteTag _jsp_tag2 = null; org.apache.struts.taglib.bean.MessageTag _jsp_tag3 = null; try { // ********************************* // security // ********************************* pageContext.write(_jsp_string0, 0, _jsp_string0.length); pageContext.write(_jsp_string0, 0, _jsp_string0.length); if (_jsp_tag0 == null) { _jsp_tag0 = new org.myconf.AuthTag(); _jsp_tag0.setPageContext(pageContext); _jsp_tag0.setParent((javax.servlet.jsp.tagext.Tag) null); _jsp_tag0.setModule("admin"); } _jsp_tag0.doStartTag(); _jsp_tag0.setBodyContent(null); int _jsp_endTagVar3 = _jsp_tag0.doEndTag(); if (_jsp_endTagVar3 == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) return; pageContext.write(_jsp_string0, 0, _jsp_string0.length); // ********************************* // define // ********************************* pageContext.write(_jsp_string0, 0, _jsp_string0.length); pageContext.write(_jsp_string0, 0, _jsp_string0.length); pageContext.write(_jsp_string0, 0, _jsp_string0.length); pageContext.write(_jsp_string0, 0, _jsp_string0.length); pageContext.write(_jsp_string0, 0, _jsp_string0.length); pageContext.write(_jsp_string0, 0, _jsp_string0.length); pageContext.write(_jsp_string0, 0, _jsp_string0.length); pageContext.write(_jsp_string0, 0, _jsp_string0.length); pageContext.write(_jsp_string0, 0, _jsp_string0.length); pageContext.write(_jsp_string0, 0, _jsp_string0.length); // ********************************* // variable // ********************************* pageContext.write(_jsp_string0, 0, _jsp_string0.length); // bbs data int id = RequestUtils.getParam(request, "id", 0); List list = BBSDAO.getDiscuss(id); if ((list == null) || (list.size() == 0)) { response.sendRedirect( Globals.root(request) + "/bbs/index2.jsp?page=" + StringUtils.exportString(request.getParameter("page"))); return; } String defaultTitle = null; BBSBean bbs = null; pageContext.write(_jsp_string1, 0, _jsp_string1.length); // ********************************* // head // ********************************* pageContext.write(_jsp_string0, 0, _jsp_string0.length); pageContext.include("/inc/head.jsp"); pageContext.write(_jsp_string2, 0, _jsp_string2.length); // ********************************* // top // ********************************* pageContext.write(_jsp_string0, 0, _jsp_string0.length); pageContext.include("/inc/logo_admin.jsp"); pageContext.write(_jsp_string0, 0, _jsp_string0.length); // ********************************* // content // ********************************* pageContext.write(_jsp_string3, 0, _jsp_string3.length); if (_jsp_tag1 == null) { _jsp_tag1 = new org.apache.struts.taglib.bean.MessageTag(); _jsp_tag1.setPageContext(pageContext); _jsp_tag1.setParent((javax.servlet.jsp.tagext.Tag) null); } _jsp_tag1.setKey("error.staritem.not.null"); _jsp_tag1.doStartTag(); pageContext.write(_jsp_string4, 0, _jsp_string4.length); _jsp_tag1.setKey("error.staritem.not.null"); _jsp_tag1.doStartTag(); pageContext.write(_jsp_string5, 0, _jsp_string5.length); _jsp_tag1.setKey("common.title.bbs"); _jsp_tag1.doStartTag(); pageContext.write(_jsp_string6, 0, _jsp_string6.length); if (((BBSBean) list.get(0)).getIsTop() == BBSBean.TRUE) { pageContext.write(_jsp_string7, 0, _jsp_string7.length); if (_jsp_tag2 == null) { _jsp_tag2 = new org.apache.struts.taglib.html.RewriteTag(); _jsp_tag2.setPageContext(pageContext); _jsp_tag2.setParent((javax.servlet.jsp.tagext.Tag) null); } _jsp_tag2.setPage("/bbs.do"); int _jspEval15 = _jsp_tag2.doStartTag(); int _jsp_endTagVar16 = _jsp_tag2.doEndTag(); if (_jsp_endTagVar16 == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) return; pageContext.write(_jsp_string8, 0, _jsp_string8.length); out.print((id)); pageContext.write(_jsp_string9, 0, _jsp_string9.length); out.print((id)); pageContext.write(_jsp_string10, 0, _jsp_string10.length); out.print((StringUtils.exportString(request.getParameter("page")))); pageContext.write(_jsp_string11, 0, _jsp_string11.length); if (_jsp_tag1 == null) { _jsp_tag1 = new org.apache.struts.taglib.bean.MessageTag(); _jsp_tag1.setPageContext(pageContext); _jsp_tag1.setParent((javax.servlet.jsp.tagext.Tag) null); } _jsp_tag1.setKey("common.text.bbs.cancel.top"); _jsp_tag1.doStartTag(); pageContext.write(_jsp_string12, 0, _jsp_string12.length); } else { pageContext.write(_jsp_string13, 0, _jsp_string13.length); if (_jsp_tag2 == null) { _jsp_tag2 = new org.apache.struts.taglib.html.RewriteTag(); _jsp_tag2.setPageContext(pageContext); _jsp_tag2.setParent((javax.servlet.jsp.tagext.Tag) null); } _jsp_tag2.setPage("/bbs.do"); int _jspEval22 = _jsp_tag2.doStartTag(); int _jsp_endTagVar23 = _jsp_tag2.doEndTag(); if (_jsp_endTagVar23 == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) return; pageContext.write(_jsp_string8, 0, _jsp_string8.length); out.print((id)); pageContext.write(_jsp_string9, 0, _jsp_string9.length); out.print((id)); pageContext.write(_jsp_string10, 0, _jsp_string10.length); out.print((StringUtils.exportString(request.getParameter("page")))); pageContext.write(_jsp_string14, 0, _jsp_string14.length); if (_jsp_tag1 == null) { _jsp_tag1 = new org.apache.struts.taglib.bean.MessageTag(); _jsp_tag1.setPageContext(pageContext); _jsp_tag1.setParent((javax.servlet.jsp.tagext.Tag) null); } _jsp_tag1.setKey("common.text.bbs.top.article"); _jsp_tag1.doStartTag(); pageContext.write(_jsp_string12, 0, _jsp_string12.length); } pageContext.write(_jsp_string15, 0, _jsp_string15.length); if (_jsp_tag2 == null) { _jsp_tag2 = new org.apache.struts.taglib.html.RewriteTag(); _jsp_tag2.setPageContext(pageContext); _jsp_tag2.setParent((javax.servlet.jsp.tagext.Tag) null); } _jsp_tag2.setPage("/bbs.do"); int _jspEval29 = _jsp_tag2.doStartTag(); int _jsp_endTagVar30 = _jsp_tag2.doEndTag(); if (_jsp_endTagVar30 == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) return; pageContext.write(_jsp_string16, 0, _jsp_string16.length); out.print((id)); pageContext.write(_jsp_string17, 0, _jsp_string17.length); out.print((list.size())); pageContext.write(_jsp_string18, 0, _jsp_string18.length); out.print((StringUtils.exportString(request.getParameter("page")))); pageContext.write(_jsp_string19, 0, _jsp_string19.length); for (int i = 0; i < list.size(); i++) { bbs = (BBSBean) list.get(i); if (i == 0) { defaultTitle = "RE:" + bbs.getTitle(); } pageContext.write(_jsp_string20, 0, _jsp_string20.length); out.print((i)); pageContext.write(_jsp_string21, 0, _jsp_string21.length); out.print((i)); pageContext.write(_jsp_string22, 0, _jsp_string22.length); out.print((bbs.getId())); pageContext.write(_jsp_string23, 0, _jsp_string23.length); out.print((bbs.getTitle())); pageContext.write(_jsp_string24, 0, _jsp_string24.length); if (i == 0) { if (_jsp_tag1 == null) { _jsp_tag1 = new org.apache.struts.taglib.bean.MessageTag(); _jsp_tag1.setPageContext(pageContext); _jsp_tag1.setParent((javax.servlet.jsp.tagext.Tag) null); } _jsp_tag1.setKey("common.text.bbs.master"); _jsp_tag1.doStartTag(); } else { if (_jsp_tag3 == null) { _jsp_tag3 = new org.apache.struts.taglib.bean.MessageTag(); _jsp_tag3.setPageContext(pageContext); _jsp_tag3.setParent((javax.servlet.jsp.tagext.Tag) null); _jsp_tag3.setKey("common.text.bbs.ceng"); } _jsp_tag3.setArg0(String.valueOf(i)); _jsp_tag3.doStartTag(); } pageContext.write(_jsp_string25, 0, _jsp_string25.length); out.print((bbs.getContent().replaceAll("\r", "<br>"))); pageContext.write(_jsp_string26, 0, _jsp_string26.length); if (i == 0) { if (_jsp_tag1 == null) { _jsp_tag1 = new org.apache.struts.taglib.bean.MessageTag(); _jsp_tag1.setPageContext(pageContext); _jsp_tag1.setParent((javax.servlet.jsp.tagext.Tag) null); } _jsp_tag1.setKey("common.text.bbs.beginer"); _jsp_tag1.doStartTag(); } else { if (_jsp_tag1 == null) { _jsp_tag1 = new org.apache.struts.taglib.bean.MessageTag(); _jsp_tag1.setPageContext(pageContext); _jsp_tag1.setParent((javax.servlet.jsp.tagext.Tag) null); } _jsp_tag1.setKey("common.text.bbs.replyer"); _jsp_tag1.doStartTag(); } pageContext.write(_jsp_string27, 0, _jsp_string27.length); out.print((bbs.getAuthorName())); pageContext.write(_jsp_string28, 0, _jsp_string28.length); if (_jsp_tag1 == null) { _jsp_tag1 = new org.apache.struts.taglib.bean.MessageTag(); _jsp_tag1.setPageContext(pageContext); _jsp_tag1.setParent((javax.servlet.jsp.tagext.Tag) null); } _jsp_tag1.setKey("common.bbs.title.issue.time"); _jsp_tag1.doStartTag(); out.print((StringUtils.exportDate(bbs.getCreateTime(), "yyyy-MM-dd HH:mm"))); pageContext.write(_jsp_string29, 0, _jsp_string29.length); _jsp_tag1.setKey("ins.confirm.delete"); _jsp_tag1.doStartTag(); pageContext.write(_jsp_string30, 0, _jsp_string30.length); _jsp_tag1.setKey("common.button.bbs.delete"); _jsp_tag1.doStartTag(); pageContext.write(_jsp_string31, 0, _jsp_string31.length); } pageContext.write(_jsp_string32, 0, _jsp_string32.length); if (_jsp_tag2 == null) { _jsp_tag2 = new org.apache.struts.taglib.html.RewriteTag(); _jsp_tag2.setPageContext(pageContext); _jsp_tag2.setParent((javax.servlet.jsp.tagext.Tag) null); } _jsp_tag2.setPage("/bbs.do"); int _jspEval54 = _jsp_tag2.doStartTag(); int _jsp_endTagVar55 = _jsp_tag2.doEndTag(); if (_jsp_endTagVar55 == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) return; pageContext.write(_jsp_string33, 0, _jsp_string33.length); out.print((id)); pageContext.write(_jsp_string34, 0, _jsp_string34.length); out.print((id)); pageContext.write(_jsp_string35, 0, _jsp_string35.length); out.print((StringUtils.exportString(request.getParameter("page")))); pageContext.write(_jsp_string36, 0, _jsp_string36.length); _jsp_tag2.setPage("/images/orange_arrow.gif"); int _jspEval58 = _jsp_tag2.doStartTag(); int _jsp_endTagVar59 = _jsp_tag2.doEndTag(); if (_jsp_endTagVar59 == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) return; pageContext.write(_jsp_string37, 0, _jsp_string37.length); if (_jsp_tag1 == null) { _jsp_tag1 = new org.apache.struts.taglib.bean.MessageTag(); _jsp_tag1.setPageContext(pageContext); _jsp_tag1.setParent((javax.servlet.jsp.tagext.Tag) null); } _jsp_tag1.setKey("common.text.bbs.reply"); _jsp_tag1.doStartTag(); pageContext.write(_jsp_string38, 0, _jsp_string38.length); _jsp_tag1.setKey("common.bbs.title.subject"); _jsp_tag1.doStartTag(); pageContext.write(_jsp_string39, 0, _jsp_string39.length); out.print((defaultTitle)); pageContext.write(_jsp_string40, 0, _jsp_string40.length); _jsp_tag1.setKey("common.bbs.title.content"); _jsp_tag1.doStartTag(); pageContext.write(_jsp_string41, 0, _jsp_string41.length); _jsp_tag1.setKey("common.text.bbs.reply"); _jsp_tag1.doStartTag(); pageContext.write(_jsp_string42, 0, _jsp_string42.length); _jsp_tag2.setPage("/bbs/index2.jsp?page="); int _jspEval74 = _jsp_tag2.doStartTag(); int _jsp_endTagVar75 = _jsp_tag2.doEndTag(); if (_jsp_endTagVar75 == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) return; out.print((StringUtils.exportString(request.getParameter("page")))); pageContext.write(_jsp_string43, 0, _jsp_string43.length); _jsp_tag1.setKey("common.button.back"); _jsp_tag1.doStartTag(); pageContext.write(_jsp_string44, 0, _jsp_string44.length); // ********************************* // end content // ********************************* pageContext.write(_jsp_string0, 0, _jsp_string0.length); // ********************************** // footer // ********************************** pageContext.write(_jsp_string0, 0, _jsp_string0.length); pageContext.include("/inc/footer.jsp"); pageContext.write(_jsp_string45, 0, _jsp_string45.length); } catch (java.lang.Throwable _jsp_e) { pageContext.handlePageException(_jsp_e); } finally { if (_jsp_tag0 != null) _jsp_tag0.release(); if (_jsp_tag1 != null) _jsp_tag1.release(); if (_jsp_tag2 != null) _jsp_tag2.release(); if (_jsp_tag3 != null) _jsp_tag3.release(); JspFactory.getDefaultFactory().releasePageContext(pageContext); } }
private void processRequestStatistics( HttpServletRequest request, HttpServletResponse response, String type) throws ServletException, IOException { String cancerStudyIds = request.getParameter(QueryBuilder.CANCER_STUDY_ID); try { boolean includeMut = "mut".equalsIgnoreCase(type); boolean includeCna = "cna".equalsIgnoreCase(type); Map<String, Map<String, Object>> data = new HashMap<String, Map<String, Object>>(); // get list of cancer studies AccessControl accessControl = getaccessControl(); List<CancerStudy> cancerStudies; if (cancerStudyIds == null || cancerStudyIds.isEmpty()) { cancerStudies = accessControl.getCancerStudies(); } else { cancerStudies = new ArrayList<CancerStudy>(); for (String studyId : cancerStudyIds.split("[ ,]+")) { CancerStudy study = DaoCancerStudy.getCancerStudyByStableId(studyId); if (study != null && !accessControl.isAccessibleCancerStudy(studyId).isEmpty()) { cancerStudies.add(study); } } } for (CancerStudy cancerStudy : cancerStudies) { if (cancerStudy.getCancerStudyStableId().equalsIgnoreCase("all")) { continue; } Map<String, Object> row = new HashMap<String, Object>(); data.put(cancerStudy.getCancerStudyStableId(), row); if (!includeMut && !includeMut) { row.put("name", cancerStudy.getName()); String pmid = cancerStudy.getPmid(); if (pmid != null) { row.put("pmid", pmid); } String citation = cancerStudy.getCitation(); if (citation != null) { row.put("citation", citation); } row.put( "cases", DaoPatient.getPatientsByCancerStudyId(cancerStudy.getInternalId()).size()); } if (includeMut) { GeneticProfile mutProfile = cancerStudy.getMutationProfile(); if (mutProfile == null) { row.put("mut", 0); } else { int mutEvents = DaoMutation.countMutationEvents(mutProfile.getGeneticProfileId()); int samplesWithMut = DaoSampleProfile.countSamplesInProfile(mutProfile.getGeneticProfileId()); row.put("mut", 1.0 * mutEvents / samplesWithMut); } } if (includeCna) { GeneticProfile cnaProfile = cancerStudy.getCopyNumberAlterationProfile(false); if (cnaProfile == null) { row.put("cna", 0); } else { List<Integer> samples = DaoSampleProfile.getAllSampleIdsInProfile(cnaProfile.getGeneticProfileId()); Map<Integer, Double> fracs = DaoCopyNumberSegment.getCopyNumberActeredFraction( samples, cnaProfile.getCancerStudyId(), GlobalProperties.getPatientViewGenomicOverviewCnaCutoff()[0]); double aveFrac = 0; for (double frac : fracs.values()) { aveFrac += frac; } aveFrac /= samples.size(); row.put("cna", aveFrac); } } } response.setContentType("application/json"); PrintWriter out = response.getWriter(); try { JSONValue.writeJSONString(data, out); } finally { out.close(); } } catch (DaoException ex) { throw new ServletException(ex); } catch (ProtocolException ex) { throw new ServletException(ex); } }
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { JSONParser parser = new JSONParser(); String originalRouteJsonString = request.getParameter("originalroutejsontext"); JSONObject originalRouteJsonObject = (JSONObject) parser.parse(originalRouteJsonString); JSONObject routes = (JSONObject) ((JSONArray) originalRouteJsonObject.get("routes")).get(0); JSONArray legs = (JSONArray) routes.get("legs"); JSONArray steps = (JSONArray) ((JSONObject) legs.get(0)).get("steps"); String routeID = request.getParameter("routeid"); // System.out.println("Route steps loaded in a JSONArray...size is " + steps.size()); List<Double> stepLats = new ArrayList<Double>(); List<Double> stepLngs = new ArrayList<Double>(); for (int i = 0; i < steps.size(); i++) { JSONObject temp = (JSONObject) ((JSONObject) steps.get(i)).get("end_location"); // System.out.println("Lat of end_location of step " + i + " " + temp.get("lat")); stepLats.add(Double.parseDouble(temp.get("lat").toString())); stepLngs.add(Double.parseDouble(temp.get("lng").toString())); } // System.out.println("All steps set with size " + stepLngs.size() + " and " + // stepLats.size()); // System.out.println("Skipping route boxer..."); // RouteBoxer routeBoxer = new RouteBoxer(stepLats, stepLngs, // Double.parseDouble(request.getParameter("radius"))); // if(routeBoxer.getFlag()) // throw new RuntimeException("Could not create boxes for the route"); // List<Double> boxLats = routeBoxer.getLats(); // List<Double> boxLngs = routeBoxer.getLngs(); // System.out.println("Calculated boxes with number of lats " + boxLats.size() + " and number // of lngs " + boxLngs.size()); double r = Double.parseDouble(request.getParameter("radius").toString()); int radius = r > RADIUS_TO_LOOK_FOR_PLACES ? RADIUS_TO_LOOK_FOR_PLACES : (int) r; String[] types = request.getParameter("keywords").split(","); System.out.println("Size of types is " + types.length); JSONObject finalPlacesJSONObject = new JSONObject(); for (int j = 0; j < types.length; j++) { JSONArray jsonArrayForType = new JSONArray(); for (int i = 0; i < stepLats.size(); i++) { JSONObject placesAroundLocationJSONObject = (JSONObject) parser.parse( GoogleMap.getPlacesAroundLocation( stepLats.get(i), stepLngs.get(i), radius, types[j])); JSONArray placesAroundLocationJSONArray = (JSONArray) placesAroundLocationJSONObject.get("results"); if (!placesAroundLocationJSONArray.isEmpty()) { jsonArrayForType.addAll(placesAroundLocationJSONArray); } } finalPlacesJSONObject.put(types[j], jsonArrayForType); } List<String> place_ids = new ArrayList<String>(); finalPlacesJSONObject = removeDuplicatePlaces(finalPlacesJSONObject); finalPlacesJSONObject = filterPlacesRandomly(finalPlacesJSONObject, FINAL_PLACES_NUMBER_PER_REQUEST, place_ids); // System.out.println("MAGIC " + place_ids.toString()); DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); MemcacheService syncCache = MemcacheServiceFactory.getMemcacheService(); // add places as a property of original route entity Entity originalRouteEntity = datastore.get(KeyFactory.createKey("Route", Long.parseLong(routeID))); Text placesJsonAsText = new Text(finalPlacesJSONObject.toJSONString()); originalRouteEntity.setProperty("placesJSON", placesJsonAsText); datastore.put(originalRouteEntity); // System.out.println("SUCCESS written places to datastore"); // add task for fetching place reviews to queue QueueFactory.getDefaultQueue() .add( TaskOptions.Builder.withUrl("/waypointsreview") .param("places", place_ids.toString())); System.out.println("Task to get reviews added to queue"); // We cache the route entity String cacheKey = "route-" + routeID; syncCache.put(cacheKey, originalRouteEntity); } catch (Exception e) { System.out.println("ERROR " + e.getMessage()); e.printStackTrace(); } }
public void generateFileChunks(JspWriter out, HttpServletRequest req, Configuration conf) throws IOException, InterruptedException { long startOffset = 0; int datanodePort = 0; int chunkSizeToView = 0; String namenodeInfoPortStr = req.getParameter("namenodeInfoPort"); int namenodeInfoPort = -1; if (namenodeInfoPortStr != null) namenodeInfoPort = Integer.parseInt(namenodeInfoPortStr); String filename = HtmlQuoting.unquoteHtmlChars(req.getParameter("filename")); if (filename == null) { out.print("Invalid input (filename absent)"); return; } String blockIdStr = null; long blockId = 0; blockIdStr = req.getParameter("blockId"); if (blockIdStr == null) { out.print("Invalid input (blockId absent)"); return; } blockId = Long.parseLong(blockIdStr); String tokenString = req.getParameter(JspHelper.DELEGATION_PARAMETER_NAME); UserGroupInformation ugi = JspHelper.getUGI(req, conf); final DFSClient dfs = JspHelper.getDFSClient(ugi, jspHelper.nameNodeAddr, conf); Token<BlockTokenIdentifier> accessToken = BlockTokenSecretManager.DUMMY_TOKEN; if (conf.getBoolean(DFSConfigKeys.DFS_BLOCK_ACCESS_TOKEN_ENABLE_KEY, false)) { List<LocatedBlock> blks = dfs.namenode.getBlockLocations(filename, 0, Long.MAX_VALUE).getLocatedBlocks(); if (blks == null || blks.size() == 0) { out.print("Can't locate file blocks"); dfs.close(); return; } for (int i = 0; i < blks.size(); i++) { if (blks.get(i).getBlock().getBlockId() == blockId) { accessToken = blks.get(i).getBlockToken(); break; } } } String blockGenStamp = null; long genStamp = 0; blockGenStamp = req.getParameter("genstamp"); if (blockGenStamp == null) { out.print("Invalid input (genstamp absent)"); return; } genStamp = Long.parseLong(blockGenStamp); String blockSizeStr; long blockSize = 0; blockSizeStr = req.getParameter("blockSize"); if (blockSizeStr == null) { out.print("Invalid input (blockSize absent)"); return; } blockSize = Long.parseLong(blockSizeStr); String chunkSizeToViewStr = req.getParameter("chunkSizeToView"); if (chunkSizeToViewStr != null && Integer.parseInt(chunkSizeToViewStr) > 0) chunkSizeToView = Integer.parseInt(chunkSizeToViewStr); else chunkSizeToView = JspHelper.getDefaultChunkSize(conf); String startOffsetStr = req.getParameter("startOffset"); if (startOffsetStr == null || Long.parseLong(startOffsetStr) < 0) startOffset = 0; else startOffset = Long.parseLong(startOffsetStr); String datanodePortStr = req.getParameter("datanodePort"); if (datanodePortStr == null) { out.print("Invalid input (datanodePort absent)"); return; } datanodePort = Integer.parseInt(datanodePortStr); out.print("<h3>File: "); JspHelper.printPathWithLinks( HtmlQuoting.quoteHtmlChars(filename), out, namenodeInfoPort, tokenString); out.print("</h3><hr>"); String parent = new File(filename).getParent(); JspHelper.printGotoForm(out, namenodeInfoPort, tokenString, HtmlQuoting.quoteHtmlChars(parent)); out.print("<hr>"); out.print( "<a href=\"http://" + req.getServerName() + ":" + req.getServerPort() + "/browseDirectory.jsp?dir=" + URLEncoder.encode(parent, "UTF-8") + "&namenodeInfoPort=" + namenodeInfoPort + "\"><i>Go back to dir listing</i></a><br>"); out.print("<a href=\"#viewOptions\">Advanced view/download options</a><br>"); out.print("<hr>"); // Determine the prev & next blocks long nextStartOffset = 0; long nextBlockSize = 0; String nextBlockIdStr = null; String nextGenStamp = null; String nextHost = req.getServerName(); int nextPort = req.getServerPort(); int nextDatanodePort = datanodePort; // determine data for the next link if (startOffset + chunkSizeToView >= blockSize) { // we have to go to the next block from this point onwards List<LocatedBlock> blocks = dfs.namenode.getBlockLocations(filename, 0, Long.MAX_VALUE).getLocatedBlocks(); for (int i = 0; i < blocks.size(); i++) { if (blocks.get(i).getBlock().getBlockId() == blockId) { if (i != blocks.size() - 1) { LocatedBlock nextBlock = blocks.get(i + 1); nextBlockIdStr = Long.toString(nextBlock.getBlock().getBlockId()); nextGenStamp = Long.toString(nextBlock.getBlock().getGenerationStamp()); nextStartOffset = 0; nextBlockSize = nextBlock.getBlock().getNumBytes(); DatanodeInfo d = jspHelper.bestNode(nextBlock); String datanodeAddr = d.getName(); nextDatanodePort = Integer.parseInt( datanodeAddr.substring(datanodeAddr.indexOf(':') + 1, datanodeAddr.length())); nextHost = InetAddress.getByName(d.getHost()).getCanonicalHostName(); nextPort = d.getInfoPort(); } } } } else { // we are in the same block nextBlockIdStr = blockIdStr; nextStartOffset = startOffset + chunkSizeToView; nextBlockSize = blockSize; nextGenStamp = blockGenStamp; } String nextUrl = null; if (nextBlockIdStr != null) { nextUrl = "http://" + nextHost + ":" + nextPort + "/browseBlock.jsp?blockId=" + nextBlockIdStr + "&blockSize=" + nextBlockSize + "&startOffset=" + nextStartOffset + "&genstamp=" + nextGenStamp + "&filename=" + URLEncoder.encode(filename, "UTF-8") + "&chunkSizeToView=" + chunkSizeToView + "&datanodePort=" + nextDatanodePort + "&namenodeInfoPort=" + namenodeInfoPort + JspHelper.getDelegationTokenUrlParam(tokenString); out.print("<a href=\"" + nextUrl + "\">View Next chunk</a> "); } // determine data for the prev link String prevBlockIdStr = null; String prevGenStamp = null; long prevStartOffset = 0; long prevBlockSize = 0; String prevHost = req.getServerName(); int prevPort = req.getServerPort(); int prevDatanodePort = datanodePort; if (startOffset == 0) { List<LocatedBlock> blocks = dfs.namenode.getBlockLocations(filename, 0, Long.MAX_VALUE).getLocatedBlocks(); for (int i = 0; i < blocks.size(); i++) { if (blocks.get(i).getBlock().getBlockId() == blockId) { if (i != 0) { LocatedBlock prevBlock = blocks.get(i - 1); prevBlockIdStr = Long.toString(prevBlock.getBlock().getBlockId()); prevGenStamp = Long.toString(prevBlock.getBlock().getGenerationStamp()); prevStartOffset = prevBlock.getBlock().getNumBytes() - chunkSizeToView; if (prevStartOffset < 0) prevStartOffset = 0; prevBlockSize = prevBlock.getBlock().getNumBytes(); DatanodeInfo d = jspHelper.bestNode(prevBlock); String datanodeAddr = d.getName(); prevDatanodePort = Integer.parseInt( datanodeAddr.substring(datanodeAddr.indexOf(':') + 1, datanodeAddr.length())); prevHost = InetAddress.getByName(d.getHost()).getCanonicalHostName(); prevPort = d.getInfoPort(); } } } } else { // we are in the same block prevBlockIdStr = blockIdStr; prevStartOffset = startOffset - chunkSizeToView; if (prevStartOffset < 0) prevStartOffset = 0; prevBlockSize = blockSize; prevGenStamp = blockGenStamp; } String prevUrl = null; if (prevBlockIdStr != null) { prevUrl = "http://" + prevHost + ":" + prevPort + "/browseBlock.jsp?blockId=" + prevBlockIdStr + "&blockSize=" + prevBlockSize + "&startOffset=" + prevStartOffset + "&filename=" + URLEncoder.encode(filename, "UTF-8") + "&chunkSizeToView=" + chunkSizeToView + "&genstamp=" + prevGenStamp + "&datanodePort=" + prevDatanodePort + "&namenodeInfoPort=" + namenodeInfoPort + JspHelper.getDelegationTokenUrlParam(tokenString); out.print("<a href=\"" + prevUrl + "\">View Prev chunk</a> "); } out.print("<hr>"); out.print("<textarea cols=\"100\" rows=\"25\" wrap=\"virtual\" style=\"width:100%\" READONLY>"); try { jspHelper.streamBlockInAscii( new InetSocketAddress(req.getServerName(), datanodePort), blockId, accessToken, genStamp, blockSize, startOffset, chunkSizeToView, out, conf); } catch (Exception e) { out.print(e); } out.print("</textarea>"); dfs.close(); }
public void generateFileDetails(JspWriter out, HttpServletRequest req, Configuration conf) throws IOException, InterruptedException { int chunkSizeToView = 0; long startOffset = 0; int datanodePort; String blockIdStr = null; long currBlockId = 0; blockIdStr = req.getParameter("blockId"); if (blockIdStr == null) { out.print("Invalid input (blockId absent)"); return; } currBlockId = Long.parseLong(blockIdStr); String datanodePortStr = req.getParameter("datanodePort"); if (datanodePortStr == null) { out.print("Invalid input (datanodePort absent)"); return; } datanodePort = Integer.parseInt(datanodePortStr); String namenodeInfoPortStr = req.getParameter("namenodeInfoPort"); int namenodeInfoPort = -1; if (namenodeInfoPortStr != null) namenodeInfoPort = Integer.parseInt(namenodeInfoPortStr); String chunkSizeToViewStr = req.getParameter("chunkSizeToView"); if (chunkSizeToViewStr != null && Integer.parseInt(chunkSizeToViewStr) > 0) { chunkSizeToView = Integer.parseInt(chunkSizeToViewStr); } else { chunkSizeToView = JspHelper.getDefaultChunkSize(conf); } String startOffsetStr = req.getParameter("startOffset"); if (startOffsetStr == null || Long.parseLong(startOffsetStr) < 0) startOffset = 0; else startOffset = Long.parseLong(startOffsetStr); String filename = HtmlQuoting.unquoteHtmlChars(req.getParameter("filename")); if (filename == null || filename.length() == 0) { out.print("Invalid input"); return; } String blockSizeStr = req.getParameter("blockSize"); long blockSize = 0; if (blockSizeStr == null || blockSizeStr.length() == 0) { out.print("Invalid input"); return; } blockSize = Long.parseLong(blockSizeStr); String tokenString = req.getParameter(JspHelper.DELEGATION_PARAMETER_NAME); UserGroupInformation ugi = JspHelper.getUGI(req, conf); DFSClient dfs = JspHelper.getDFSClient(ugi, jspHelper.nameNodeAddr, conf); List<LocatedBlock> blocks = dfs.namenode.getBlockLocations(filename, 0, Long.MAX_VALUE).getLocatedBlocks(); // Add the various links for looking at the file contents // URL for downloading the full file String downloadUrl = "http://" + req.getServerName() + ":" + +req.getServerPort() + "/streamFile" + URLEncoder.encode(filename, "UTF-8") + "?" + JspHelper.DELEGATION_PARAMETER_NAME + "=" + tokenString; out.print("<a name=\"viewOptions\"></a>"); out.print("<a href=\"" + downloadUrl + "\">Download this file</a><br>"); DatanodeInfo chosenNode; // URL for TAIL LocatedBlock lastBlk = blocks.get(blocks.size() - 1); long blockId = lastBlk.getBlock().getBlockId(); try { chosenNode = jspHelper.bestNode(lastBlk); } catch (IOException e) { out.print(e.toString()); dfs.close(); return; } String fqdn = InetAddress.getByName(chosenNode.getHost()).getCanonicalHostName(); String tailUrl = "http://" + fqdn + ":" + chosenNode.getInfoPort() + "/tail.jsp?filename=" + URLEncoder.encode(filename, "UTF-8") + "&namenodeInfoPort=" + namenodeInfoPort + "&chunkSizeToView=" + chunkSizeToView + "&referrer=" + URLEncoder.encode(req.getRequestURL() + "?" + req.getQueryString(), "UTF-8") + JspHelper.getDelegationTokenUrlParam(tokenString); out.print("<a href=\"" + tailUrl + "\">Tail this file</a><br>"); out.print("<form action=\"/browseBlock.jsp\" method=GET>"); out.print("<b>Chunk size to view (in bytes, up to file's DFS block size): </b>"); out.print("<input type=\"hidden\" name=\"blockId\" value=\"" + currBlockId + "\">"); out.print("<input type=\"hidden\" name=\"blockSize\" value=\"" + blockSize + "\">"); out.print("<input type=\"hidden\" name=\"startOffset\" value=\"" + startOffset + "\">"); out.print("<input type=\"hidden\" name=\"filename\" value=\"" + filename + "\">"); out.print("<input type=\"hidden\" name=\"datanodePort\" value=\"" + datanodePort + "\">"); out.print( "<input type=\"hidden\" name=\"namenodeInfoPort\" value=\"" + namenodeInfoPort + "\">"); out.print( "<input type=\"text\" name=\"chunkSizeToView\" value=" + chunkSizeToView + " size=10 maxlength=10>"); out.print(" <input type=\"submit\" name=\"submit\" value=\"Refresh\">"); out.print("</form>"); out.print("<hr>"); out.print("<a name=\"blockDetails\"></a>"); out.print("<B>Total number of blocks: " + blocks.size() + "</B><br>"); // generate a table and dump the info out.println("\n<table>"); for (LocatedBlock cur : blocks) { out.print("<tr>"); blockId = cur.getBlock().getBlockId(); blockSize = cur.getBlock().getNumBytes(); String blk = "blk_" + Long.toString(blockId); out.print("<td>" + Long.toString(blockId) + ":</td>"); DatanodeInfo[] locs = cur.getLocations(); for (int j = 0; j < locs.length; j++) { String datanodeAddr = locs[j].getName(); datanodePort = Integer.parseInt( datanodeAddr.substring(datanodeAddr.indexOf(':') + 1, datanodeAddr.length())); fqdn = InetAddress.getByName(locs[j].getHost()).getCanonicalHostName(); String blockUrl = "http://" + fqdn + ":" + locs[j].getInfoPort() + "/browseBlock.jsp?blockId=" + Long.toString(blockId) + "&blockSize=" + blockSize + "&filename=" + URLEncoder.encode(filename, "UTF-8") + "&datanodePort=" + datanodePort + "&genstamp=" + cur.getBlock().getGenerationStamp() + "&namenodeInfoPort=" + namenodeInfoPort + "&chunkSizeToView=" + chunkSizeToView; out.print( "<td> </td>" + "<td><a href=\"" + blockUrl + "\">" + datanodeAddr + "</a></td>"); } out.println("</tr>"); } out.println("</table>"); out.print("<hr>"); String namenodeHost = jspHelper.nameNodeAddr.getHostName(); out.print( "<br><a href=\"http://" + InetAddress.getByName(namenodeHost).getCanonicalHostName() + ":" + namenodeInfoPort + "/dfshealth.jsp\">Go back to DFS home</a>"); dfs.close(); }
private void dnaCommand(HttpServletRequest req, DazzleResponse resp, DazzleDataSource dds) throws IOException, DataSourceException, ServletException, DazzleException { DazzleReferenceSource drs = (DazzleReferenceSource) dds; List segments = DazzleTools.getSegments(dds, req, resp); if (segments.size() == 0) { throw new DazzleException( DASStatus.STATUS_BAD_COMMAND_ARGUMENTS, "No segments specified for dna command"); } // Fetch and validate the requests. Map segmentResults = new HashMap(); for (Iterator i = segments.iterator(); i.hasNext(); ) { Segment seg = (Segment) i.next(); try { Sequence seq = drs.getSequence(seg.getReference()); if (seq.getAlphabet() != DNATools.getDNA()) { throw new DazzleException( DASStatus.STATUS_SERVER_ERROR, "Sequence " + seg.toString() + " is not in the DNA alphabet"); } if (seg.isBounded()) { if (seg.getMin() < 1 || seg.getMax() > seq.length()) { throw new DazzleException( DASStatus.STATUS_BAD_COORDS, "Segment " + seg.toString() + " doesn't fit sequence of length " + seq.length()); } } segmentResults.put(seg, seq); } catch (NoSuchElementException ex) { throw new DazzleException(DASStatus.STATUS_BAD_REFERENCE, ex); } catch (DataSourceException ex) { throw new DazzleException(DASStatus.STATUS_SERVER_ERROR, ex); } } // // Looks okay -- generate the response document // XMLWriter xw = resp.startDasXML("DASDNA", "dasdna.dtd"); try { xw.openTag("DASDNA"); for (Iterator i = segmentResults.entrySet().iterator(); i.hasNext(); ) { Map.Entry me = (Map.Entry) i.next(); Segment seg = (Segment) me.getKey(); Sequence seq = (Sequence) me.getValue(); xw.openTag("SEQUENCE"); xw.attribute("id", seg.getReference()); xw.attribute("version", drs.getLandmarkVersion(seg.getReference())); if (seg.isBounded()) { xw.attribute("start", "" + seg.getStart()); xw.attribute("stop", "" + seg.getStop()); } else { xw.attribute("start", "" + 1); xw.attribute("stop", "" + seq.length()); } SymbolList syms = seq; if (seg.isBounded()) { syms = syms.subList(seg.getMin(), seg.getMax()); } if (seg.isInverted()) { syms = DNATools.reverseComplement(syms); } xw.openTag("DNA"); xw.attribute("length", "" + syms.length()); for (int pos = 1; pos <= syms.length(); pos += 60) { int maxPos = Math.min(syms.length(), pos + 59); xw.println(syms.subStr(pos, maxPos)); } xw.closeTag("DNA"); xw.closeTag("SEQUENCE"); } xw.closeTag("DASDNA"); xw.close(); } catch (Exception ex) { throw new DazzleException(ex, "Error writing DNA document"); } }
public void generateFileChunks(JspWriter out, HttpServletRequest req) throws IOException { long startOffset = 0; int chunkSizeToView = 0; String referrer = req.getParameter("referrer"); boolean noLink = false; if (referrer == null) { noLink = true; } String filename = req.getParameter("filename"); if (filename == null) { out.print("Invalid input (file name absent)"); return; } String namenodeInfoPortStr = req.getParameter("namenodeInfoPort"); int namenodeInfoPort = -1; if (namenodeInfoPortStr != null) namenodeInfoPort = Integer.parseInt(namenodeInfoPortStr); String chunkSizeToViewStr = req.getParameter("chunkSizeToView"); if (chunkSizeToViewStr != null && Integer.parseInt(chunkSizeToViewStr) > 0) chunkSizeToView = Integer.parseInt(chunkSizeToViewStr); else chunkSizeToView = jspHelper.defaultChunkSizeToView; if (!noLink) { out.print("<h3>Tail of File: "); JspHelper.printPathWithLinks(filename, out, namenodeInfoPort); out.print("</h3><hr>"); out.print("<a href=\"" + referrer + "\">Go Back to File View</a><hr>"); } else { out.print("<h3>" + filename + "</h3>"); } out.print("<b>Chunk size to view (in bytes, up to file's DFS block size): </b>"); out.print( "<input type=\"text\" name=\"chunkSizeToView\" value=" + chunkSizeToView + " size=10 maxlength=10>"); out.print(" <input type=\"submit\" name=\"submit\" value=\"Refresh\"><hr>"); out.print("<input type=\"hidden\" name=\"filename\" value=\"" + filename + "\">"); out.print( "<input type=\"hidden\" name=\"namenodeInfoPort\" value=\"" + namenodeInfoPort + "\">"); if (!noLink) out.print("<input type=\"hidden\" name=\"referrer\" value=\"" + referrer + "\">"); // fetch the block from the datanode that has the last block for this file DFSClient dfs = new DFSClient(jspHelper.nameNodeAddr, jspHelper.conf); List<LocatedBlock> blocks = dfs.namenode.getBlockLocations(filename, 0, Long.MAX_VALUE).getLocatedBlocks(); if (blocks == null || blocks.size() == 0) { out.print("No datanodes contain blocks of file " + filename); dfs.close(); return; } LocatedBlock lastBlk = blocks.get(blocks.size() - 1); long blockSize = lastBlk.getBlock().getNumBytes(); long blockId = lastBlk.getBlock().getBlockId(); long genStamp = lastBlk.getBlock().getGenerationStamp(); DatanodeInfo chosenNode; try { chosenNode = jspHelper.bestNode(lastBlk); } catch (IOException e) { out.print(e.toString()); dfs.close(); return; } InetSocketAddress addr = NetUtils.createSocketAddr(chosenNode.getName()); // view the last chunkSizeToView bytes while Tailing if (blockSize >= chunkSizeToView) startOffset = blockSize - chunkSizeToView; else startOffset = 0; out.print("<textarea cols=\"100\" rows=\"25\" wrap=\"virtual\" style=\"width:100%\" READONLY>"); jspHelper.streamBlockInAscii( addr, blockId, genStamp, blockSize, startOffset, chunkSizeToView, out); out.print("</textarea>"); dfs.close(); }
private void datasetInfoHtml( RadarType radarType, String pathInfo, PrintWriter pw, HttpServletResponse res) throws IOException { pathInfo = pathInfo.replace("/dataset.html", ""); pathInfo = pathInfo.replace("/catalog.html", ""); Element root = new Element("RadarNexrad"); Document doc = new Document(root); if (pathInfo.startsWith("/")) pathInfo = pathInfo.substring(1); for (int i = 0; i < datasets.size(); i++) { InvDatasetScan ds = (InvDatasetScan) datasets.get(i); if (!(pathInfo.equals(ds.getPath()))) { continue; } // at this point a valid dataset // fix the location root.setAttribute("location", "/thredds/radarServer/" + ds.getPath()); // spatial range ThreddsMetadata.GeospatialCoverage gc = ds.getGeospatialCoverage(); LatLonRect bb = new LatLonRect(); gc.setBoundingBox(bb); String north = Double.toString(gc.getLatNorth()); String south = Double.toString(gc.getLatSouth()); String east = Double.toString(gc.getLonEast()); String west = Double.toString(gc.getLonWest()); Element LatLonBox = new Element("LatLonBox"); LatLonBox.addContent(new Element("north").addContent(north)); LatLonBox.addContent(new Element("south").addContent(south)); LatLonBox.addContent(new Element("east").addContent(east)); LatLonBox.addContent(new Element("west").addContent(west)); root.addContent(LatLonBox); // get the time range Element timeSpan = new Element("TimeSpan"); CalendarDateRange dr = ds.getCalendarDateCoverage(); timeSpan.addContent(new Element("begin").addContent(dr.getStart().toString())); timeSpan.addContent(new Element("end").addContent(dr.getEnd().toString())); root.addContent(timeSpan); ThreddsMetadata.Variables cvs = (ThreddsMetadata.Variables) ds.getVariables().get(0); List vl = cvs.getVariableList(); for (int j = 0; j < vl.size(); j++) { ThreddsMetadata.Variable v = (ThreddsMetadata.Variable) vl.get(j); Element variable = new Element("variable"); variable.setAttribute("name", v.getName()); root.addContent(variable); } // add pointer to the station list XML /* Element stnList = new Element("stationList"); stnList.setAttribute("title", "Available Stations", XMLEntityResolver.xlinkNS); stnList.setAttribute("href", "/thredds/radarServer/"+ pathInfo +"/stations.xml", XMLEntityResolver.xlinkNS); root.addContent(stnList); */ // String[] stations = rns.stationsDS( dataLocation.get( ds.getPath() )); // rns.printStations( stations ); // add accept list Element a = new Element("AcceptList"); a.addContent(new Element("accept").addContent("xml")); a.addContent(new Element("accept").addContent("html")); root.addContent(a); } ServerMethods sm = new ServerMethods(log); InputStream xslt = sm.getInputStream(contentPath + getPath() + "radar.xsl", RadarServer.class); try { // what's wrong here xslt = getXSLT( "radar.xsl" ); XSLTransformer transformer = new XSLTransformer(xslt); Document html = transformer.transform(doc); XMLOutputter fmt = new XMLOutputter(Format.getPrettyFormat()); String infoString = fmt.outputString(html); res.setContentType("text/html; charset=iso-8859-1"); pw = res.getWriter(); pw.println(infoString); pw.flush(); } catch (Exception e) { log.error("radarServer reading " + contentPath + getPath() + "radar.xsl"); log.error("radarServer XSLTransformer problem for web form ", e); } finally { if (xslt != null) { try { xslt.close(); } catch (IOException e) { log.error("radarServer radar.xsl: error closing" + contentPath + getPath() + "radar.xsl"); } } } return; }
public boolean handleSAML11UnsolicitedResponse( HttpServletRequest request, HttpServletResponse response) throws IOException { String samlResponse = request.getParameter(GeneralConstants.SAML_RESPONSE_KEY); Principal principal = request.getUserPrincipal(); // If we have already authenticated the user and there is no request from IDP or logout from // user if (principal != null) { return true; } HttpSession session = request.getSession(true); // See if we got a response from IDP if (isNotNull(samlResponse)) { boolean isValid = false; try { isValid = validate(request); } catch (Exception e) { logger.samlSPHandleRequestError(e); throw new IOException(); } if (!isValid) { throw new IOException(ErrorCodes.VALIDATION_CHECK_FAILED); } try { InputStream base64DecodedResponse = null; if ("GET".equalsIgnoreCase(request.getMethod())) { base64DecodedResponse = RedirectBindingUtil.base64DeflateDecode(samlResponse); } else { base64DecodedResponse = PostBindingUtil.base64DecodeAsStream(samlResponse); } SAMLParser parser = new SAMLParser(); SAML11ResponseType saml11Response = (SAML11ResponseType) parser.parse(base64DecodedResponse); List<SAML11AssertionType> assertions = saml11Response.get(); if (assertions.size() > 1) { logger.trace("More than one assertion from IDP. Considering the first one."); } String username = null; List<String> roles = new ArrayList<String>(); SAML11AssertionType assertion = assertions.get(0); if (assertion != null) { // Get the subject List<SAML11StatementAbstractType> statements = assertion.getStatements(); for (SAML11StatementAbstractType statement : statements) { if (statement instanceof SAML11AuthenticationStatementType) { SAML11AuthenticationStatementType subStat = (SAML11AuthenticationStatementType) statement; SAML11SubjectType subject = subStat.getSubject(); username = subject.getChoice().getNameID().getValue(); } } roles = AssertionUtil.getRoles(assertion, null); } return true; } catch (Exception e) { logger.samlSPHandleRequestError(e); } } return false; }
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // set the response Shepherd myShepherd = new Shepherd(); Vector rEncounters = new Vector(); // setup data dir String rootWebappPath = getServletContext().getRealPath("/"); File webappsDir = new File(rootWebappPath).getParentFile(); File shepherdDataDir = new File(webappsDir, CommonConfiguration.getDataDirectoryName()); // if(!shepherdDataDir.exists()){shepherdDataDir.mkdir();} File encountersDir = new File(shepherdDataDir.getAbsolutePath() + "/encounters"); // if(!encountersDir.exists()){encountersDir.mkdir();} // set up the files String gisFilename = "geneGIS_export_" + request.getRemoteUser() + ".csv"; File gisFile = new File(encountersDir.getAbsolutePath() + "/" + gisFilename); myShepherd.beginDBTransaction(); try { // set up the output stream FileOutputStream fos = new FileOutputStream(gisFile); OutputStreamWriter outp = new OutputStreamWriter(fos); try { EncounterQueryResult queryResult = EncounterQueryProcessor.processQuery( myShepherd, request, "year descending, month descending, day descending"); rEncounters = queryResult.getResult(); int numMatchingEncounters = rEncounters.size(); // build the CSV file header StringBuffer locusString = new StringBuffer(""); int numLoci = 2; // most covered species will be loci try { numLoci = (new Integer(CommonConfiguration.getProperty("numLoci"))).intValue(); } catch (Exception e) { System.out.println("numPloids configuration value did not resolve to an integer."); e.printStackTrace(); } for (int j = 0; j < numLoci; j++) { locusString.append(",Locus" + (j + 1) + " A1,Locus" + (j + 1) + " A2"); } // out.println("<html><body>"); // out.println("Individual ID,Other ID 1,Date,Time,Latitude,Longitude,Area,Sub // Area,Sex,Haplotype"+locusString.toString()); outp.write( "Individual ID,Other ID 1,Date,Time,Latitude,Longitude,Area,Sub Area,Sex,Haplotype" + locusString.toString() + "\n"); for (int i = 0; i < numMatchingEncounters; i++) { Encounter enc = (Encounter) rEncounters.get(i); String assembledString = ""; if (enc.getIndividualID() != null) { assembledString += enc.getIndividualID(); } if (enc.getAlternateID() != null) { assembledString += "," + enc.getAlternateID(); } else { assembledString += ","; } String dateString = ","; if (enc.getYear() > 0) { dateString += enc.getYear(); if (enc.getMonth() > 0) { dateString += ("-" + enc.getMonth()); if (enc.getDay() > 0) { dateString += ("-" + enc.getDay()); } } } assembledString += dateString; String timeString = ","; if (enc.getHour() > -1) { timeString += enc.getHour() + ":" + enc.getMinutes(); } assembledString += timeString; if ((enc.getDecimalLatitude() != null) && (enc.getDecimalLongitude() != null)) { assembledString += "," + enc.getDecimalLatitude(); assembledString += "," + enc.getDecimalLongitude(); } else { assembledString += ",,"; } assembledString += "," + enc.getVerbatimLocality(); assembledString += "," + enc.getLocationID(); assembledString += "," + enc.getSex(); // find and print the haplotype String haplotypeString = ","; if (enc.getHaplotype() != null) { haplotypeString += enc.getHaplotype(); } // find and print the ms markers String msMarkerString = ""; List<TissueSample> samples = enc.getTissueSamples(); int numSamples = samples.size(); boolean foundMsMarkers = false; for (int k = 0; k < numSamples; k++) { if (!foundMsMarkers) { TissueSample t = samples.get(k); List<GeneticAnalysis> analyses = t.getGeneticAnalyses(); int aSize = analyses.size(); for (int l = 0; l < aSize; l++) { GeneticAnalysis ga = analyses.get(l); if (ga.getAnalysisType().equals("MicrosatelliteMarkers")) { foundMsMarkers = true; MicrosatelliteMarkersAnalysis ga2 = (MicrosatelliteMarkersAnalysis) ga; List<Locus> loci = ga2.getLoci(); int localLoci = loci.size(); for (int m = 0; m < localLoci; m++) { Locus locus = loci.get(m); if (locus.getAllele0() != null) { msMarkerString += "," + locus.getAllele0(); } else { msMarkerString += ","; } if (locus.getAllele1() != null) { msMarkerString += "," + locus.getAllele1(); } else { msMarkerString += ","; } } } } } } // out.println("<p>"+assembledString+haplotypeString+msMarkerString+"</p>"); outp.write(assembledString + haplotypeString + msMarkerString + "\n"); } outp.close(); outp = null; // now write out the file response.setContentType("text/csv"); response.setHeader("Content-Disposition", "attachment;filename=" + gisFilename); ServletContext ctx = getServletContext(); // InputStream is = ctx.getResourceAsStream("/encounters/"+gisFilename); InputStream is = new FileInputStream(gisFile); int read = 0; byte[] bytes = new byte[BYTES_DOWNLOAD]; OutputStream os = response.getOutputStream(); while ((read = is.read(bytes)) != -1) { os.write(bytes, 0, read); } os.flush(); os.close(); } catch (Exception ioe) { ioe.printStackTrace(); response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(ServletUtilities.getHeader(request)); out.println( "<html><body><p><strong>Error encountered</strong> with file writing. Check the relevant log.</p>"); out.println( "<p>Please let the webmaster know you encountered an error at: EncounterSearchExportGeneGISFormat servlet</p></body></html>"); out.println(ServletUtilities.getFooter()); out.close(); outp.close(); outp = null; } } catch (Exception e) { e.printStackTrace(); response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(ServletUtilities.getHeader(request)); out.println("<html><body><p><strong>Error encountered</strong></p>"); out.println( "<p>Please let the webmaster know you encountered an error at: EncounterSearchExportGeneGISFormat servlet</p></body></html>"); out.println(ServletUtilities.getFooter()); out.close(); } myShepherd.rollbackDBTransaction(); myShepherd.closeDBTransaction(); }