@Override protected final void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); final JSONArray jsonArray = new JSONArray(); try { for (Map.Entry<String, TagDataConverter> entry : this.tagDataConverters.entrySet()) { final JSONObject jsonObject = new JSONObject(); jsonObject.put("label", entry.getValue().getLabel()); jsonObject.put("value", entry.getKey()); jsonArray.put(jsonObject); } response.getWriter().print(jsonArray.toString()); } catch (JSONException e) { response.setStatus(SlingHttpServletResponse.SC_INTERNAL_SERVER_ERROR); } }
/** * Constructor by value. * * @param name * @param title * @param number * @param resolutionWidth * @param resolutionHeight * @param folioProperties * @throws DPSException * @throws JSONException */ public FolioImpl( String name, String title, String number, int resolutionWidth, int resolutionHeight, Map<String, DPSValue> folioProperties) throws DPSException, JSONException { this(folioProperties); data.put(FolioProperty.NAME.getName(), getSafeName(name)); data.put(FolioProperty.TITLE.getName(), title); data.put(FolioProperty.NUMBER.getName(), number); data.put(FolioProperty.RESOLUTION_WIDTH.getName(), String.valueOf(resolutionWidth)); data.put(FolioProperty.RESOLUTION_HEIGHT.getName(), String.valueOf(resolutionHeight)); }
private void addMessage(JSONObject jsonObject, String message) { try { jsonObject.put("message", message); } catch (JSONException e) { log.error("Could not formulate JSON Response", e); } }
private void migrateFollowUsImage( Element followUsEle, Node midSizeLowerRightNode, String locale, Map<String, String> urlMap) throws PathNotFoundException, RepositoryException, JSONException { if (followUsEle != null) { if (midSizeLowerRightNode.hasNode("followus")) { Node followUsNode = midSizeLowerRightNode.getNode("followus"); Element title = followUsEle.getElementsByTag("h2").first(); if (title != null) { followUsNode.setProperty("title", title.text()); } else { sb.append(Constants.FOLLOWUS_TITLE_NOT_FOUND); } Elements list = followUsEle.getElementsByTag("li"); if (list != null) { List<String> listAdd = new ArrayList<String>(); for (Element li : list) { Element a = li.getElementsByTag("a").first(); if (a != null) { String aURL = a.absUrl("href"); if (aURL.equals("")) { aURL = a.attr("href"); } aURL = FrameworkUtils.getLocaleReference(aURL, urlMap, locale, sb); JSONObject obj = new JSONObject(); obj.put("linktext", a.text()); obj.put("linkurl", aURL); obj.put("icon", li.className()); listAdd.add(obj.toString()); } else { sb.append(Constants.FOLLOW_US_ANCHOR_ELEMENT_NOT_FOUND); } } followUsNode.setProperty("links", listAdd.toArray(new String[listAdd.size()])); } else { sb.append(Constants.FOLLOW_US_ANCHOR_ELEMENT_NOT_FOUND); } } else { sb.append(Constants.FOLLOWUS_NODE_NOT_FOUND); } } else { sb.append(Constants.FOLLOWUS_ELEMENT_NOT_FOUND); } }
/** * Constructor by properties * * @param folioProperties * @throws DPSException * @throws JSONException */ public FolioImpl(Map<String, DPSValue> folioProperties) throws DPSException, JSONException { data = new JSONObject(); for (Map.Entry<String, DPSValue> entry : folioProperties.entrySet()) { switch (entry.getValue().getType()) { case DPSValue.BOOLEAN: data.put(entry.getKey(), entry.getValue().getString()); break; case DPSValue.DATE: data.put(entry.getKey(), getDateAsDPSString(entry.getValue().getDate().getTime())); break; case DPSValue.LONG: data.put(entry.getKey(), entry.getValue().getLong()); break; default: data.put(entry.getKey(), entry.getValue().getString()); break; } } }
@Override protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException { final Session session = createAdminSession(); try { String statusFilter = req.getParameter("status"); if (statusFilter == null) { // By default, only approved posts are returned. statusFilter = RelatedUgcNodeIndexerExtension.FIELD_STATE_APPROVED; } final List<Post> mltPosts = RelatedSearchUtil.getRelatedPosts( getResourceResolver(session), req.getParameter("q"), statusFilter, req.getParameter("resource-type"), req.getParameter("component-path"), MLT_FIELDS, Integer.valueOf(req.getParameter("max-results")), MIN_TERM_FREQ, MIN_DOC_FREQ); if (mltPosts == null) { return; } final JSONObject json = new JSONObject(); JSONObject match; final List<JSONObject> matches = new ArrayList<JSONObject>(); for (final Post p : mltPosts) { match = new JSONObject(); match.put("subject", xssProtectionService.protectFromXSS(p.getSubject())); match.put("replyCount", p.getRepliesCount()); match.put("url", p.getUrl()); match.put("id", p.getId()); match.put("created", p.getCreated()); match.put("createdBy", xssProtectionService.protectFromXSS(p.getCreatedBy().getFullName())); matches.add(match); } json.put("mlt", matches); resp.setContentType("application/json"); resp.getWriter().write(json.toString()); } catch (final Exception e) { throw new ServletException(e); } finally { if (session != null) { session.logout(); } } }
/** list collection from user home in JSONArray */ private JSONArray list(SlingHttpServletRequest request, SlingHttpServletResponse response) throws RepositoryException, JSONException { final Session userSession = request.getResourceResolver().adaptTo(Session.class); Node collHome = getCollectionHome(userSession); List<JSONObject> jsonObjList = new ArrayList<JSONObject>(); NodeIterator itr = collHome.getNodes(); while (itr.hasNext()) { JSONObject jsonObject = new JSONObject(); jsonObject.put(PATH, itr.nextNode().getPath()); jsonObjList.add(jsonObject); } return new JSONArray(jsonObjList); }
@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { response.setHeader("Content-Type", "application/json"); // response.getWriter().print("{\"coming\":\"soon\"}"); String[] keys = repository.getDescriptorKeys(); JSONObject jsonObj = new JSONObject(); for (String key : keys) { try { jsonObj.put(key, repository.getDescriptor(key)); } catch (JSONException e) { e.printStackTrace(); } } response.getWriter().print(jsonObj.toString()); }
/** * creates empty collection. collection name is retrieved from request parameter * * @param request * @param response * @return * @throws ServletException * @throws IOException * @throws RepositoryException * @throws JSONException */ private JSONObject create(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException, RepositoryException, JSONException { final RequestParameter nameParam = request.getRequestParameter(REQ_PRM_COLL_NAME); final Session userSession = request.getResourceResolver().adaptTo(Session.class); JSONObject jsonObject = new JSONObject(); Node collHome = getCollectionHome(userSession); if (collHome.hasNode(nameParam.getString())) { throw new ServletException( "cannot create collection. '" + nameParam.getString() + "' already exists"); } else { Node coll = collHome.addNode(nameParam.getString(), JcrConstants.NT_UNSTRUCTURED); coll.setProperty("sling:resourceType", "cq/collections"); userSession.save(); jsonObject.put(PATH, coll.getPath()); } return jsonObject; }
// start setting of list in right rail public void rightRailList( Node listNode, Element rightListEle, Map<String, String> urlMap, String locale) { try { Element title; Element description; Elements headElements = rightListEle.getElementsByTag("h2"); if (headElements.size() > 1) { title = rightListEle.getElementsByTag("h2").last(); description = rightListEle.getElementsByTag("p").last(); sb.append("<li>Mismatch in count of list panel component in right rail.</li>"); } else { title = rightListEle.getElementsByTag("h2").first(); description = rightListEle.getElementsByTag("p").first(); } listNode.setProperty("title", title.text()); javax.jcr.Node introNode = listNode.getNode("intro"); introNode.setProperty("paragraph_rte", description.text()); javax.jcr.Node eleListNode = listNode.getNode("element_list_0"); Elements ulList = rightListEle.getElementsByTag("ul"); for (Element element : ulList) { java.util.List<String> list = new ArrayList<String>(); Elements menuLiList = element.getElementsByTag("li"); for (Element li : menuLiList) { JSONObject jsonObjrr = new JSONObject(); Element listItemAnchor = li.getElementsByTag("a").first(); String anchorText = listItemAnchor != null ? listItemAnchor.text() : ""; String anchorHref = listItemAnchor.absUrl("href"); if (StringUtil.isBlank(anchorHref)) { anchorHref = listItemAnchor.attr("href"); } // Start extracting valid href log.debug("Before right list LinkUrl" + anchorHref + "\n"); anchorHref = FrameworkUtils.getLocaleReference(anchorHref, urlMap, locale, sb); log.debug("after right list LinkUrl" + anchorHref + "\n"); // End extracting valid href jsonObjrr.put("linktext", anchorText); jsonObjrr.put("linkurl", anchorHref); jsonObjrr.put("icon", "none"); jsonObjrr.put("size", ""); jsonObjrr.put("description", ""); jsonObjrr.put("openInNewWindow", "false"); list.add(jsonObjrr.toString()); } eleListNode.setProperty("listitems", list.toArray(new String[list.size()])); } log.debug("Updated title, descriptoin and linktext at " + listNode.getPath()); } catch (Exception e) { e.printStackTrace(); } }
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws IOException { PrintWriter out = response.getWriter(); try { response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); String coffee = request.getParameter("coffee"); String sugar = request.getParameter("sugar"); String milk = request.getParameter("milk"); int coffee_price, sugar_price, milk_price, bill; JSONObject jsonObject = new JSONObject(); JSONArray jsonArray = new JSONArray(); if (coffee.equals("Latte")) { coffee_price = 150; } else if (coffee.equals("Cappuccino")) { coffee_price = 100; } else { coffee_price = 120; } if (sugar.equals("Sugar Free")) { sugar_price = 50; } else if (sugar.equals("Brown Sugar")) { sugar_price = 40; } else { sugar_price = 20; } if (milk.equals("Full Cream")) { milk_price = 50; } else if (milk.equals("Normal Milk")) { milk_price = 40; } else { milk_price = 30; } bill = coffee_price + sugar_price + milk_price; jsonObject.put("bill", bill); response.getWriter().write(jsonObject.toString()); } catch (Exception e) { } }
/** * @param queryNode * @param queryOptions * @return * @throws RepositoryException * @throws ValueFormatException * @throws PathNotFoundException * @throws JSONException */ private JSONObject accumulateQueryOptions(Node queryNode) throws RepositoryException, ValueFormatException, PathNotFoundException, JSONException { JSONObject queryOptions = null; if (queryNode.hasProperty(SAKAI_QUERY_TEMPLATE_OPTIONS)) { // process the options as JSON string String optionsProp = queryNode.getProperty(SAKAI_QUERY_TEMPLATE_OPTIONS).getString(); queryOptions = new JSONObject(optionsProp); } else if (queryNode.hasNode(SAKAI_QUERY_TEMPLATE_OPTIONS)) { // process the options as a sub-node Node optionsNode = queryNode.getNode(SAKAI_QUERY_TEMPLATE_OPTIONS); if (optionsNode.hasProperties()) { queryOptions = new JSONObject(); PropertyIterator props = optionsNode.getProperties(); while (props.hasNext()) { javax.jcr.Property prop = props.nextProperty(); if (!prop.getName().startsWith("jcr:")) { queryOptions.put(prop.getName(), prop.getString()); } } } } return queryOptions; }
@Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { String path = request.getResource().getPath(); // check path is a valid DAM root folder path for asset service if (!damPathHandler.isAllowedDataVersionPath(path)) { log.debug("Path not allowed to get data version {}", path); response.sendError(HttpServletResponse.SC_NOT_FOUND); return; } // return data version as JSON try { JSONObject jsonResponse = new JSONObject(); jsonResponse.put("dataVersion", damPathHandler.getDataVersion()); response.setContentType(ContentType.JSON); response.setCharacterEncoding(CharEncoding.UTF_8); response.getWriter().write(jsonResponse.toString()); } catch (JSONException ex) { throw new ServletException("Unable to generate JSON.", ex); } }
// start setting of selectorbar public void selectorBarTranslate( Node selectorBarPanelNode, Element ele, Map<String, String> urlMap, String locale) { try { String title = (ele != null ? ele.getElementsByTag("a").first().text() : ""); String titleUrl = ele.getElementsByTag("a").first().absUrl("href"); if (StringUtil.isBlank(titleUrl)) { titleUrl = ele.getElementsByTag("a").first().attr("href"); } // Start extracting valid href log.debug("Before selector bar title LinkUrl" + titleUrl + "\n"); titleUrl = FrameworkUtils.getLocaleReference(titleUrl, urlMap, locale, sb); log.debug("after selector bar title LinkUrl" + titleUrl + "\n"); // End extracting valid href log.debug("selector component titleUrl: " + titleUrl); selectorBarPanelNode.setProperty("title", title); selectorBarPanelNode.setProperty("titleurl", titleUrl); if (ele.childNodeSize() >= 2) { log.debug("Child node size is greater than 1."); if (ele.select("div.menu").isEmpty()) { log.debug("Menu is not available."); sb.append( "<li>Selector bar drop down menu elements does not exist on the locale page.</li>"); } else { log.debug("Menu is available."); Element menuEle = ele.child(1); if (menuEle != null) { log.debug("selector component menuEle: " + menuEle.toString()); Element anchor = menuEle.getElementsByTag("a").last(); String allLinkText = anchor != null ? anchor.text() : ""; String allLinkUrl = anchor != null ? anchor.absUrl("href") : ""; if (StringUtil.isBlank(allLinkUrl)) { allLinkUrl = anchor.attr("href"); } // Start extracting valid href log.debug("Before selector bar menu LinkUrl" + allLinkUrl + "\n"); allLinkUrl = FrameworkUtils.getLocaleReference(allLinkUrl, urlMap, locale, sb); log.debug("after selector bar menu LinkUrl" + allLinkUrl + "\n"); // End extracting valid href selectorBarPanelNode.setProperty("alllinktext", allLinkText); selectorBarPanelNode.setProperty("alllinkurl", allLinkUrl); Elements menuUlList = menuEle.getElementsByTag("ul"); for (Element element : menuUlList) { java.util.List<String> list = new ArrayList<String>(); Elements menuLiList = element.getElementsByTag("li"); System.out.println(menuLiList.size()); for (Element li : menuLiList) { JSONObject jsonObj = new JSONObject(); Element listItemAnchor = li.getElementsByTag("a").first(); String anchorText = listItemAnchor != null ? listItemAnchor.text() : ""; String anchorHref = listItemAnchor.absUrl("href"); if (StringUtil.isBlank(anchorHref)) { anchorHref = listItemAnchor.attr("href"); } // Start extracting valid href log.debug("Before selectorbarLinkUrl" + anchorHref + "\n"); anchorHref = FrameworkUtils.getLocaleReference(anchorHref, urlMap, locale, sb); log.debug("after selectorbarLinkUrl" + anchorHref + "\n"); // End extracting valid href jsonObj.put("linktext", anchorText); jsonObj.put("linkurl", anchorHref); jsonObj.put("size", ""); list.add(jsonObj.toString()); } selectorBarPanelNode.setProperty("panelitems", list.toArray(new String[list.size()])); } } else { sb.append( "<li>Selector bar drop down menu elements does not exist on the locale page.</li>"); } } } else { sb.append( "<li>Selector bar drop down menu elements does not exist on the locale page.</li>"); } } catch (Exception e) { e.printStackTrace(); } }
private void setListElements( Element ele, Node rightListNode, Session session, String locale, Map<String, String> urlMap) { try { String ownPdfText = ""; String pdfIcon = ""; String pdfSize = ""; Elements h2Ele = ele.getElementsByTag("h2"); Elements h3Ele = ele.getElementsByTag("h3"); Elements ulEle = ele.getElementsByTag("ul"); String h2Text = null; String h3Text = null; // start of handling title of list component if (!h2Ele.isEmpty()) { h2Text = h2Ele.first().text(); rightListNode.setProperty("title", h2Text); if (h2Ele.size() > 1) { sb.append(Constants.MISMATCH_IN_RIGHT_LIST_COUNT); } } else { sb.append(Constants.LIST_HEADING_COMPONENT_NOT_FOUND); } // end of handling title of list component // start of handling title of list component NodeIterator h3Iterator = rightListNode.hasNode("element_subtitle_0") ? rightListNode.getNodes("element_subtitle*") : null; if (h3Iterator != null) { if (!h3Ele.isEmpty()) { int eleSize = h3Ele.size(); int nodeSize = (int) h3Iterator.getSize(); Node h3nodeList; if (eleSize == nodeSize) { for (Element h3Itr : h3Ele) { h3nodeList = (Node) h3Iterator.next(); h3Text = h3Itr.text(); h3nodeList.setProperty("subtitle", h3Text); } } if (nodeSize < eleSize) { for (Element h3Itr : h3Ele) { if (h3Iterator.hasNext()) { h3nodeList = (Node) h3Iterator.next(); h3Text = h3Itr.text(); h3nodeList.setProperty("subtitle", h3Text); } } sb.append( Constants.MISMATCH_IN_LIST_ELEMENT + nodeSize + Constants.SPOTLIGHT_ELEMENT_COUNT + eleSize); } if (nodeSize > eleSize) { for (Element h3Itr : h3Ele) { h3nodeList = (Node) h3Iterator.next(); h3Text = h3Itr.text(); h3nodeList.setProperty("subtitle", h3Text); } sb.append( Constants.LIST_ELEMENTS_COUNT_MISMATCH + nodeSize + Constants.SPOTLIGHT_ELEMENT_COUNT + eleSize); } } else { sb.append(Constants.LIST_HEADING_COMPONENT_NOT_FOUND); log.debug("h3 text is not avalable"); } } else { if (!h3Ele.isEmpty()) { log.debug("subtitle node doesnot exist but ele exist"); sb.append(Constants.LIST_COMPONENT_NOT_FOUND); } } // end of handling title of list component // Element List NodeIterator ulNodeIterator = rightListNode.hasNode("element_list_0") ? rightListNode.getNodes("element_list*") : null; if (ulNodeIterator != null) { Node ulnodeList; for (Element ulItr : ulEle) { if (ulNodeIterator.hasNext()) { ulnodeList = (Node) ulNodeIterator.next(); Elements list = ulItr.getElementsByTag("li"); List<String> listAdd = new ArrayList<String>(); for (Element li : list) { pdfIcon = ""; pdfSize = ""; boolean openNewWindow = false; // pdf content try { ownPdfText = li.ownText(); if (StringUtils.isNotEmpty(ownPdfText)) { log.debug("OWn text is:" + ownPdfText); if (ownPdfText.toLowerCase().contains("pdf") || ownPdfText.toLowerCase().contains("video")) { pdfIcon = "pdf"; if (ownPdfText.toLowerCase().contains("video")) { pdfIcon = "video"; } int i = 0; for (; i < ownPdfText.length(); i++) { char character = ownPdfText.charAt(i); boolean isDigit = Character.isDigit(character); if (isDigit) { break; } } pdfSize = ownPdfText.substring(i, ownPdfText.length() - 1); pdfSize = pdfSize.replace(")", ""); pdfSize = pdfSize.trim(); } } } catch (Exception e) { sb.append(Constants.Exception_BY_SPECIAL_CHARACTER); log.error("Exception : ", e); } // fix for new win icon Elements newwinCheck = li.select("span.newwin"); if (!newwinCheck.isEmpty()) { log.debug("extra new win icon found"); sb.append(Constants.EXTRA_ICON_FOUND_IN_LIST); } // check for the lock icon Elements imgInList = li.getElementsByTag("img"); if (!imgInList.isEmpty()) { String altImg = imgInList.attr("alt"); if (altImg.equals("lock_icon")) { log.debug("lock icon found in the list"); sb.append(Constants.EXTRA_LOCK_IMG_FOUND_IN_LIST); } } if (!li.getElementsByTag("a").isEmpty()) { Element a = li.getElementsByTag("a").first(); String aHref = a.absUrl("href"); if (StringUtil.isBlank(aHref)) { aHref = a.attr("href"); } // Start extracting valid href log.debug("Before anchorHref" + a.absUrl("href") + "\n"); String anchorHref = FrameworkUtils.getLocaleReference(aHref, urlMap, locale, sb); log.debug("after anchorHref" + anchorHref + "\n"); // End extracting valid href JSONObject obj = new JSONObject(); obj.put("linktext", a.text()); obj.put("linkurl", anchorHref); obj.put("icon", pdfIcon); obj.put("size", pdfSize); obj.put("description", ""); obj.put("openInNewWindow", openNewWindow); listAdd.add(obj.toString()); } } ulnodeList.setProperty("listitems", listAdd.toArray(new String[listAdd.size()])); } } if (ulNodeIterator.hasNext()) { sb.append(Constants.MISMATCH_IN_RIGHT_LIST_COUNT); } } else { sb.append(Constants.NO_LIST_NODES_FOUND); } // End of Element List } catch (Exception e) { sb.append(Constants.UNABLE_TO_MIGRATE_LIST_COMPONENT); log.error("Exception : ", e); } }
@Override protected final void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); final JSONObject jsonResponse = new JSONObject(); final TagManager tagManager = request.getResourceResolver().adaptTo(TagManager.class); final RequestParameter charsetParam = request.getRequestParameter("charset"); final RequestParameter cleanParam = request.getRequestParameter("clean"); final RequestParameter delimiterParam = request.getRequestParameter("delimiter"); final RequestParameter fileParameter = request.getRequestParameter("file"); final RequestParameter separatorParam = request.getRequestParameter("separator"); final RequestParameter converterParam = request.getRequestParameter("converter"); final RequestParameter fallbackConverterParam = request.getRequestParameter("fallbackConverter"); boolean clean = DEFAULT_CLEAN; if (cleanParam != null) { clean = Boolean.valueOf( StringUtils.defaultIfEmpty(cleanParam.toString(), String.valueOf(DEFAULT_CLEAN))); } String converter = DEFAULT_CONVERTER; if (converterParam != null) { converter = StringUtils.defaultIfEmpty(converterParam.toString(), DEFAULT_CONVERTER); } String fallbackConverter = NONE_CONVERTER; if (fallbackConverterParam != null) { fallbackConverter = StringUtils.defaultIfEmpty(fallbackConverterParam.toString(), NONE_CONVERTER); } String charset = DEFAULT_CHARSET; if (charsetParam != null) { charset = StringUtils.defaultIfEmpty(charsetParam.toString(), DEFAULT_CHARSET); } Character delimiter = null; if (delimiterParam != null && StringUtils.isNotBlank(delimiterParam.toString())) { delimiter = delimiterParam.toString().charAt(0); } Character separator = null; if (separatorParam != null && StringUtils.isNotBlank(separatorParam.toString())) { separator = separatorParam.toString().charAt(0); } final List<TagDataConverter> tagDataConverters = new ArrayList<TagDataConverter>(); final TagDataConverter primaryTagConverter = this.getTagDataConverter(converter); if (primaryTagConverter != null) { tagDataConverters.add(primaryTagConverter); } final TagDataConverter fallbackTagConverter = this.getTagDataConverter(fallbackConverter); if (fallbackTagConverter != null) { tagDataConverters.add(fallbackTagConverter); } if (tagDataConverters.isEmpty()) { log.error("Could not find Tag Data Converter [ {} ]", converter); response.setStatus(SlingHttpServletResponse.SC_INTERNAL_SERVER_ERROR); } else if (fileParameter != null && fileParameter.getInputStream() != null) { InputStream is = fileParameter.getInputStream(); final Csv csv = new Csv(); if (delimiter != null) { log.debug("Setting Field Delimiter to [ {} ]", delimiter); csv.setFieldDelimiter(delimiter); } if (separator != null) { log.debug("Setting Field Separator to [ {} ]", separator); csv.setFieldSeparatorRead(separator); } if (clean) { is = this.stripLineEnds(is, charset, csv.getFieldSeparatorRead()); } final Iterator<String[]> rows = csv.read(is, charset); try { final List<String> result = this.makeTags(tagManager, tagDataConverters, rows); try { jsonResponse.put("tagIds", result); } catch (JSONException e) { log.error("Could not serialized Tag Maker results into JSON", e); } this.addMessage(jsonResponse, result.size() + " tags were processed"); } catch (InvalidTagFormatException e) { log.error("Could not create Tag due to illegal formatting", e); this.addMessage(jsonResponse, "Could not create tags due to illegal formatting"); response.setStatus(SlingHttpServletResponse.SC_INTERNAL_SERVER_ERROR); } catch (RepositoryException e) { log.error("Could not save Tags to JCR", e); this.addMessage(jsonResponse, "Could not save tags"); response.setStatus(SlingHttpServletResponse.SC_INTERNAL_SERVER_ERROR); } } else { log.error("Could not find CSV file in request."); this.addMessage(jsonResponse, "CSV file is missing"); response.setStatus(SlingHttpServletResponse.SC_INTERNAL_SERVER_ERROR); } response.getWriter().print(jsonResponse.toString()); }
public String translate( String host, String loc, String prod, String type, String catType, String locale, Session session, Map<String, String> urlMap) throws IOException, ValueFormatException, VersionException, LockException, ConstraintViolationException, RepositoryException { log.debug("In the translate method"); log.debug("In the translate method, catType is :" + catType); String pagePropertiesPath = "/content/<locale>/" + catType + "/<prod>/index/jcr:content"; String indexLeft = "/content/<locale>/" + catType + "/<prod>/index/jcr:content/content_parsys/overview/layout-overview/gd12v2/gd12v2-left"; String indexRight = "/content/<locale>/" + catType + "/<prod>/index/jcr:content/content_parsys/overview/layout-overview/gd12v2/gd12v2-right"; String pageUrl = host + "/content/<locale>/" + catType + "/<prod>/index.html"; pageUrl = pageUrl.replace("<locale>", locale).replace("<prod>", prod); pagePropertiesPath = pagePropertiesPath.replace("<locale>", locale).replace("<prod>", prod); sb.append("<td>" + "<a href=" + pageUrl + ">" + pageUrl + "</a>" + "</td>"); sb.append("<td>" + "<a href=" + loc + ">" + loc + "</a>" + "</td>"); sb.append("<td><ul>"); indexLeft = indexLeft.replace("<locale>", locale).replace("<prod>", prod); indexRight = indexRight.replace("<locale>", locale).replace("<prod>", prod); javax.jcr.Node indexLeftNode = null; javax.jcr.Node indexRightNode = null; javax.jcr.Node pageJcrNode = null; try { indexLeftNode = session.getNode(indexLeft); indexRightNode = session.getNode(indexRight); pageJcrNode = session.getNode(pagePropertiesPath); try { // doc = Jsoup.connect(loc).get(); doc = getConnection(loc); if (doc != null) { log.debug("Connected to the provided URL"); // ------------------------------------------------------------------------------------------------------------------------------------------ // start set page properties. FrameworkUtils.setPageProperties(pageJcrNode, doc, session, sb); // end set page properties. // ------------------------------------------------------------------------------------------------------------------------------------------ // start set hero large component properties. try { log.debug("Start of Hero component"); Elements heroElements = doc.select("div.frame"); Node heroNode = indexLeftNode.hasNode("hero_large") ? indexLeftNode.getNode("hero_large") : null; if (heroNode != null) { log.debug("hero node found: " + heroNode.getPath()); if (heroElements.isEmpty()) { log.debug("No hero element found with div class name frame."); sb.append( "<li>Hero component with class name 'frame' does not exist on locale page.</li>"); } else { int eleSize = heroElements.size(); log.debug("hero node element size: " + eleSize); NodeIterator heroPanelNodeIterator = heroNode.getNodes("heropanel*"); int nodeSize = (int) heroPanelNodeIterator.getSize(); log.debug("hero node nodeSize : " + nodeSize); if (eleSize == nodeSize) { setForHero(heroElements, heroNode, locale, urlMap); } else if (nodeSize < eleSize) { setForHero(heroElements, heroNode, locale, urlMap); sb.append( "<li>Mismatch in the count of hero panels. Additional panel(s) found on locale page. Locale page has " + eleSize + " panels and there are " + nodeSize + " nodes.</li>"); } else if (nodeSize > eleSize) { setForHero(heroElements, heroNode, locale, urlMap); sb.append( "<li>Mismatch in the count of hero panels. Additional node(s) found. Locale page has " + eleSize + " panels and there are " + nodeSize + " nodes.</li>"); } } } else { log.debug("No hero node found at " + indexLeftNode); sb.append("<li>Node for hero large component does not exist.</li>"); } log.debug("End of Hero component"); } catch (Exception e) { sb.append("<li>Unable to update hero large component.</li>"); } // end set Hero Large component properties. // start set selectorbar large component properties. try { Elements selectorBarLargeElements = doc.select("div.selectorbarpanel"); if (selectorBarLargeElements.size() == 0) { selectorBarLargeElements = doc.select("div.c58-pilot") .select("div.left,div.mid,div.right"); // ("div.selectorbarpanel"); } Node selectorBarNode = indexLeftNode.hasNode("selectorbarlarge_0") ? indexLeftNode.getNode("selectorbarlarge_0") : null; if (selectorBarNode != null) { if (selectorBarLargeElements.isEmpty()) { log.debug("No selector bar element found with div class name selectorbarpanel."); sb.append( "<li>Selector bar component with class name 'selectorbarpanel' does not exist on locale page.</li>"); } else { log.debug("selector bar node component found at : " + indexLeftNode.getPath()); int eleSize = selectorBarLargeElements.size(); log.debug("selector component element size: " + eleSize); NodeIterator selectorBarPanel = selectorBarNode.getNodes("selectorbarpanel*"); int nodeSize = (int) selectorBarPanel.getSize(); log.debug("selector component nodeSize : " + nodeSize); if (eleSize == nodeSize) { for (Element ele : selectorBarLargeElements) { Node selectorBarPanelNode; if (selectorBarPanel.hasNext()) { selectorBarPanelNode = (Node) selectorBarPanel.next(); selectorBarTranslate(selectorBarPanelNode, ele, urlMap, locale); } else { log.debug("Next node not found"); } } } else if (eleSize > nodeSize) { for (Element ele : selectorBarLargeElements) { Node selectorBarPanelNode; if (selectorBarPanel.hasNext()) { selectorBarPanelNode = (Node) selectorBarPanel.next(); selectorBarTranslate(selectorBarPanelNode, ele, urlMap, locale); } else { log.debug("Next node not found"); sb.append( "<li>Mismatch in the count of selector bar panel. Additional panel(s) found on locale page. Locale page has " + eleSize + " panels and there are " + nodeSize + " nodes.</li>"); break; } } } else if (eleSize < nodeSize) { for (Element ele : selectorBarLargeElements) { Node selectorBarPanelNode; if (selectorBarPanel.hasNext()) { selectorBarPanelNode = (Node) selectorBarPanel.next(); selectorBarTranslate(selectorBarPanelNode, ele, urlMap, locale); } } sb.append( "<li>Mismatch in the count of selector bar panels. Additional node(s) found. Locale page has " + eleSize + " panels and there are " + nodeSize + " nodes.</li>"); } } } else { log.debug("No selector bar node found at " + indexLeftNode); sb.append("<li>Node for selector bar component does not exist.</li>"); } } catch (Exception e) { sb.append("<li>Unable to update Selecotr bar large component." + e + "</li>"); } // end set Selector bar. // Start of button Node textNode2 = null; try { textNode2 = indexLeftNode.hasNode("gd22v2") ? indexLeftNode.getNode("gd22v2").getNode("gd22v2-right") : null; Element a00v1CqElement = !doc.select("div.cl-grids").isEmpty() ? !doc.select("div.cl-grids").select("div.a00v1-cq").isEmpty() ? doc.select("div.cl-grids").select("div.a00v1-cq").first() : null : null; if (a00v1CqElement == null) { a00v1CqElement = !doc.select("div.cl-grids").isEmpty() ? !doc.select("div.cl-grids").select("a.a00v1").isEmpty() ? doc.select("div.cl-grids").select("a.a00v1").first() : null : null; } if (textNode2 != null) { Node buttonNode = textNode2.getNode("a00v1_cq"); if (buttonNode != null) { if (a00v1CqElement != null) { Element cqAnchor = a00v1CqElement.getElementsByTag("a").first(); String anchorText = cqAnchor != null ? cqAnchor.text() : ""; String anchorHref = cqAnchor.absUrl("href"); if (StringUtil.isBlank(anchorHref)) { anchorHref = cqAnchor.attr("href"); } // Start extracting valid href log.debug("Before ButtonLinkUrl" + anchorHref + "\n"); anchorHref = FrameworkUtils.getLocaleReference(anchorHref, urlMap, locale, sb); log.debug("after ButtonLinkUrl" + anchorHref + "\n"); // End extracting valid href buttonNode.setProperty("linkText", anchorText); buttonNode.setProperty("linkUrl", anchorHref); a00v1CqElement.remove(); // // doc.select("div.gd22v2-right").first().getElementsByTag("ul").first().remove(); } else { sb.append("<li>Button is not available on the locale page.</li>"); log.debug("This button does not exist."); } } else { if (a00v1CqElement != null) { sb.append("<li>Additional button is available on the locale page.</li>"); } } } else { if (a00v1CqElement != null) { sb.append("<li>Additional button is available on the locale page.</li>"); } } } catch (Exception e) { sb.append("<li>Unable to update button component." + e + "</li>"); } // End of button // start of text component try { Elements textElements = doc.select("div.gd-left").select("div.c00-pilot"); Node textNode1 = indexLeftNode.hasNode("gd22v2") ? indexLeftNode.getNode("gd22v2").getNode("gd22v2-left").getNode("text") : indexLeftNode.getNode("text"); if (textNode1 != null) { if (textElements.isEmpty()) { sb.append("<li>The first text element is not available on the locale page.</li>"); } else { if (textElements.first().html() != null) { textNode1.setProperty("text", textElements.first().html()); } else { sb.append("<li>The first text element is not available on the locale page.</li>"); } } } else { if (textElements.first().html() != null) { sb.append("<li>The first text node is not available on the locale page.</li>"); } } if (textNode2 != null) { Node textChildNode = textNode2.hasNode("text") ? textNode2.getNode("text") : null; if (textElements.size() >= 2) { if (textElements.get(1).html() != null) { textChildNode.setProperty("text", textElements.get(1).html()); } else { sb.append( "<li>The second text element is not available on the locale page.</li>"); } } else { sb.append("<li>The second text element is not available on the locale page.</li>"); } } else { if (textElements.size() >= 2) { if (textElements.get(1).html() != null) { sb.append("<li>The second text node is not available on the locale page.</li>"); } } } } catch (Exception e) { log.error("Exception " + e); sb.append("<li>Unable to update text components.</li>"); } // end of text component // start set spotlight component. try { Elements spotLightElements = doc.select("div.c11-pilot"); if (indexLeftNode != null) { log.debug("Spotlight node found: " + indexLeftNode.getPath()); if (spotLightElements.isEmpty()) { log.debug("No spot light element found with div class name c11-pilot."); sb.append( "<li>Spot light component with class name 'c11-pilot' does not exist on locale page.</li>"); } else { int eleSize = spotLightElements.size(); log.debug("Spotlight node element size: " + eleSize); NodeIterator slNodeIterator = indexLeftNode.getNodes("spotlight_large_v2*"); int nodeSize = (int) slNodeIterator.getSize(); log.debug("Spotlight node nodeSize : " + nodeSize); if (eleSize == nodeSize) { for (Element spElement : spotLightElements) { Node slNode; if (slNodeIterator.hasNext()) { slNode = (Node) slNodeIterator.next(); spotLightTranslate(slNode, spElement, locale, urlMap); } else { log.debug("Next node not found"); } } } else if (nodeSize < eleSize) { for (Element spElement : spotLightElements) { Node slNode; if (slNodeIterator.hasNext()) { slNode = (Node) slNodeIterator.next(); spotLightTranslate(slNode, spElement, locale, urlMap); } else { log.debug("Next node not found"); sb.append( "<li>Mismatch in the count of spot light panels. Additional panel(s) found on locale page. Locale page has " + eleSize + " panels and there are " + nodeSize + " nodes.</li>"); break; } } } else if (nodeSize > eleSize) { for (Element spElement : spotLightElements) { Node slNode; if (slNodeIterator.hasNext()) { slNode = (Node) slNodeIterator.next(); spotLightTranslate(slNode, spElement, locale, urlMap); } else { log.debug("Next node not found"); } } sb.append( "<li>Mismatch in the count of spot light panels. Additional node(s) found. Locale page has " + eleSize + " panels and there are " + nodeSize + " nodes.</li>"); } } } else { log.debug("No spot light node found at " + indexLeftNode); sb.append("<li>Node for spot light component does not exist.</li>"); } } catch (Exception e) { sb.append("<li>Unable to update Spot light component.</li>"); log.error("Exception : " + e); } // end set spotlight properties. // start right rail properties try { boolean migrate = true; Elements rightRailList = doc.select("div.gd-right").select("div.mlb-pilot").select("div.c00-pilot"); if (rightRailList.isEmpty()) { rightRailList = doc.select("div.gd-right").select("div.n13-pilot"); if (rightRailList != null) { int eleSize = rightRailList.size(); if (eleSize == 1) { Element rightListElem = rightRailList.first(); if (rightListElem != null) { Elements ulElements = rightListElem.getElementsByTag("ul"); if (ulElements.size() > 1) { sb.append( "<li>The HTML structure for list component in right rail on the locale page is different and hence migration needs to be done manually.</li>"); migrate = false; } } } } } if (migrate) { if (rightRailList.isEmpty()) { log.debug( "No right rail elements found with div class name c00-pilot or n13-pilot."); sb.append( "<li>Right rail component with class name 'c00-pilot' or 'n13-pilot' does not exist on locale page.</li>"); } else { int eleSize = rightRailList.size(); NodeIterator listIterator = indexRightNode.getNodes("list*"); int nodeSize = (int) listIterator.getSize(); if (eleSize == nodeSize) { for (Element rightListEle : rightRailList) { Node listNode; if (listIterator.hasNext()) { listNode = (Node) listIterator.next(); rightRailList(listNode, rightListEle, urlMap, locale); } } } else if (eleSize > nodeSize) { for (Element rightListEle : rightRailList) { Node listNode; if (listIterator.hasNext()) { listNode = (Node) listIterator.next(); rightRailList(listNode, rightListEle, urlMap, locale); } } sb.append( "<li>Mismatch in the count of list panels. Additional panel(s) found on locale page. Locale page has " + eleSize + " panels and there are " + nodeSize + " nodes.</li>"); } else if (eleSize < nodeSize) { for (Element rightListEle : rightRailList) { Node listNode; if (listIterator.hasNext()) { listNode = (Node) listIterator.next(); rightRailList(listNode, rightListEle, urlMap, locale); } } sb.append( "<li>Mismatch in the count of list panels. Additional node(s) found. Locale page has " + eleSize + " panels and there are " + nodeSize + " nodes.</li>"); } } } } catch (Exception e) { sb.append("<li>Unable to update benefits tile_bordered component.</li>"); log.error("Exception : ", e); } // end set index list. // start of follow us component try { String h2Content = ""; boolean followUsEle = true; boolean followUsNode = true; List<String> list = new ArrayList<String>(); Elements rightRailPilotElements = doc.select("div.gd-right").select("div.s14-pilot"); if (rightRailPilotElements != null) { Element rightRailPilotElement = rightRailPilotElements.first(); if (rightRailPilotElement != null) { Elements h2Elements = rightRailPilotElement.getElementsByTag("h2"); if (h2Elements != null) { Element h2Element = h2Elements.first(); h2Content = h2Element.text(); } else { sb.append("<li>h2 of right rail with class 'div.s14-pilot' is blank.</li>"); } Elements liElements = rightRailPilotElement.getElementsByTag("li"); for (Element ele : liElements) { JSONObject obj = new JSONObject(); String icon = ele.attr("class"); obj.put("icon", icon); Elements aElements = ele.getElementsByTag("a"); if (aElements != null) { Element aElement = aElements.first(); String title = aElement.attr("title"); String href = aElement.absUrl("href"); if (StringUtil.isBlank(href)) { href = aElement.attr("href"); } // Start extracting valid href log.debug("Before pilotLinkUrl" + href + "\n"); href = FrameworkUtils.getLocaleReference(href, urlMap, locale, sb); log.debug("after pilotLinkUrl" + href + "\n"); // End extracting valid href obj.put("linktext", title); obj.put("linkurl", href); } else { sb.append("<li>No anchor tag found in the right rail social links</li>"); } list.add(obj.toString()); } } else { followUsEle = false; } } else { followUsEle = false; } if (indexRightNode.hasNode("followus")) { Node followus = indexRightNode.getNode("followus"); if (StringUtils.isNotBlank(h2Content)) { followus.setProperty("title", h2Content); } if (list.size() > 1) { followus.setProperty("links", list.toArray(new String[list.size()])); } } else { followUsNode = false; } if (followUsEle) { if (followUsNode) { log.debug("Follow us element and node are available."); } else { sb.append( "<li>Additional follow us element found in right rail on the locale page.</li>"); } } else { if (followUsNode) { sb.append("<li>No follow us element found in right rail on the locale page.</li>"); } else { log.debug("Follow us element and node are not available."); } } } catch (Exception e) { sb.append("<li>Unable to update follow us component.</li>"); log.error("Exception : ", e); } // end of follow us component // start of image Elements aEle = !doc.select("div.gd12-pilot").select("div.gd-right").isEmpty() ? doc.select("div.gd12-pilot").select("div.gd-right").select("a") : null; log.debug("Image check:" + aEle); if (!aEle.isEmpty() && aEle != null) { for (Element aEl : aEle) { Element imgEle = aEl.getElementsByTag("img").first(); if (imgEle != null) { sb.append("<li>Extra Image found in web page.</li>"); } } } /*if(aEle != null && !aEle.isEmpty() && aEle.size() > 1){ sb.append("<li>Extra Image found in web page.</li>"); }*/ // end of image // start of c42-pilot component Elements c42Ele = doc.select("div.c42-pilot"); if (!c42Ele.isEmpty()) { sb.append("<li>Extra component mbwtile found on web page</li>"); } // end of c42-pilot component } else { sb.append(Constants.URL_CONNECTION_EXCEPTION); } } catch (Exception e) { // doc = getConnection(loc); log.error("Exception : ", e); } } catch (Exception e) { sb.append("<li>Exception " + e + "</li>"); } sb.append("</ul></td>"); session.save(); return sb.toString(); }
/** * Set Data property * * @param propertyName * @param value * @throws JSONException */ public void setProperty(String propertyName, Calendar value) throws JSONException { data.put(propertyName, value); }
/** * Set boolean property * * @param propertyName * @param value * @throws JSONException */ public void setProperty(String propertyName, boolean value) throws JSONException { data.put(propertyName, value); }