List of usage examples for org.w3c.dom Text getData
public String getData() throws DOMException;
From source file:com.enonic.vertical.adminweb.ContentObjectHandlerServlet.java
public void handlerCopy(HttpServletRequest request, HttpServletResponse response, HttpSession session, AdminService admin, ExtendedMap formItems, User user, int key) throws VerticalAdminException, VerticalEngineException { String xmlCO = admin.getContentObject(Integer.parseInt(request.getParameter("key"))); Document doc = XMLTool.domparse(xmlCO); Element nameElem = (Element) XMLTool.selectNode(doc, "/contentobjects/contentobject/name"); Node[] nameArray = XMLTool.filterNodes(nameElem.getChildNodes(), Node.TEXT_NODE); Text name = (Text) nameArray[0]; AdminConsoleTranslationService languageMap = AdminConsoleTranslationService.getInstance(); Map translationMap = languageMap.getTranslationMap(user.getSelectedLanguageCode()); name.setData(name.getData() + " (" + translationMap.get("%txtCopy%") + ")"); Element coElem = (Element) XMLTool.selectNode(doc, "/contentobjects/contentobject"); coElem.removeAttribute("key"); Element docRoot = doc.getDocumentElement(); doc.replaceChild(coElem, docRoot);//from w w w . j av a 2 s . c o m key = admin.createContentObject(user, XMLTool.documentToString(doc)); redirectClientToReferer(request, response); }
From source file:com.enonic.vertical.engine.handlers.PageTemplateHandler.java
public int copyPageTemplate(User user, PageTemplateKey pageTemplateKey) throws VerticalCopyException { Document doc = getPageTemplate(pageTemplateKey).getAsDOMDocument(); Element root = doc.getDocumentElement(); Element pagetemplateElem = XMLTool.getFirstElement(root); int newPageTemplateKey = -1; if (pagetemplateElem != null) { // rename copy Map translationMap = languageMap.getTranslationMap(user.getSelectedLanguageCode()); Element nameElem = XMLTool.getElement(pagetemplateElem, "name"); Text nameNode = (Text) nameElem.getFirstChild(); nameNode.setData(nameNode.getData() + " (" + translationMap.get("%txtCopy%") + ")"); // remove old parameter keys and save position Map<String, String> paramKeyMap = new HashMap<String, String>(); Element[] paramElems = XMLTool .getElements(XMLTool.getElement(pagetemplateElem, "pagetemplateparameters")); for (int i = 0; i < paramElems.length; i++) { String key = paramElems[i].getAttribute("key"); paramKeyMap.put(key, "_" + i); paramElems[i].removeAttribute("key"); }/*from ww w. j a va 2 s. c o m*/ // replace old parameter keys with saved position Element[] contentobjectElems = XMLTool .getElements(XMLTool.getElement(pagetemplateElem, "contentobjects")); for (Element contentobjectElem : contentobjectElems) { String key = contentobjectElem.getAttribute("parameterkey"); contentobjectElem.setAttribute("parameterkey", paramKeyMap.get(key)); } try { int[] keys = createPageTemplate(null, doc, false); if (keys != null && keys.length == 1) { newPageTemplateKey = keys[0]; } } catch (VerticalCreateException vce) { String message = "Failed to create copy of framework: %t"; VerticalEngineLogger.errorCopy(this.getClass(), 0, message, vce); } } return newPageTemplateKey; }
From source file:com.konakart.actions.gateways.CommideaVanguardBaseAction.java
/** * Method that manages the VGTOKENREGISTRATIONREQUEST and the VGTOKENREGISTRATIONRESPONSE. * //from w ww .j av a2s . c o m * @param kkAppEng * @param order * @param ipnHistory * @return Returns "1" or "0" depending on whether the authentication enrollment check request * should be made. i.e. Should be "0" for AMEX cards * @throws Exception */ protected String vgtokenregistrationrequest(KKAppEng kkAppEng, OrderIf order, IpnHistoryIf ipnHistory) throws Exception { StringBuffer msg = new StringBuffer(); msg.append(getHeader("VGTOKENREGISTRATIONREQUEST", order, /* sendAttempt */0)); // Token expiration date formatted to DDMMCCYY (e.g. 14092011) long timeInMillis = System.currentTimeMillis(); Date expiryDate = new Date(timeInMillis + (DAY_IN_MILLIS * 365L)); GregorianCalendar expiryGC = new GregorianCalendar(); expiryGC.setTime(expiryDate); int day = expiryGC.get(Calendar.DAY_OF_MONTH); int month = expiryGC.get(Calendar.MONTH) + 1; int year = expiryGC.get(Calendar.YEAR); String dayStr = (day < 10) ? "0" + day : "" + day; String monthStr = (month < 10) ? "0" + month : "" + month; String dateStr = dayStr + monthStr + year; String req = "<vgtokenregistrationrequest xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " + "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " + "xmlns=\"VANGUARD\">" + "<sessionguid>" + getSessionId(order.getPaymentDetails().getCustom1()) + "</sessionguid>" + "<purchase>" + "true" + "</purchase>" + "<refund>" + "true" + "</refund>" + "<cashback>" + "false" + "</cashback>" + "<tokenexpirationdate>" + dateStr + "</tokenexpirationdate>" + "</vgtokenregistrationrequest>"; msg.append(req); msg.append(getFooter()); if (log.isDebugEnabled()) { log.debug("GatewayRequest (VGTOKENREGISTRATIONREQUEST) =\n" + RegExpUtils.maskCreditCard(PrettyXmlPrinter.printXml(msg.toString()))); } String gatewayResp = null; try { gatewayResp = postData(msg, order.getPaymentDetails(), null); } catch (Exception e) { if (log.isDebugEnabled()) { log.debug("Problem posting request to " + order.getPaymentDetails().getRequestUrl() + " : " + e.getMessage()); } throw e; } if (log.isDebugEnabled()) { log.debug("Unformatted GatewayResp (VGTOKENREGISTRATIONRESPONSE) =\n" + gatewayResp); try { log.debug("Formatted GatewayResp (VGTOKENREGISTRATIONRESPONSE) =\n" + PrettyXmlPrinter.printXml(gatewayResp)); } catch (Exception e) { log.debug("Exception pretty-printing gateway response (VGTOKENREGISTRATIONRESPONSE) : " + e.getMessage()); } } // Now process the XML response String sessionguid = null; String tokenid = null; String errorcode = null; String errordescription = null; if (gatewayResp != null) { try { DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = builderFactory.newDocumentBuilder(); ByteArrayInputStream bais = new ByteArrayInputStream(gatewayResp.getBytes()); Document doc = builder.parse(bais); // get the root node Node rootnode = doc.getDocumentElement(); String rootName = rootnode.getNodeName(); if (rootName != "soap:Envelope") { throw new KKException("Unexpected root element in VGTOKENREGISTRATIONRESPONSE: " + rootName); } // get all elements NodeList list = doc.getElementsByTagName("*"); for (int i = 0; i < list.getLength(); i++) { Node node = list.item(i); String name = node.getNodeName(); if (name != null && name.equals("MsgData")) { Text datanode = (Text) node.getFirstChild(); String xml = kkAppEng.removeCData(datanode.getData()); ByteArrayInputStream bais1 = new ByteArrayInputStream(xml.getBytes()); Document doc1 = builder.parse(bais1); NodeList list1 = doc1.getElementsByTagName("*"); for (int j = 0; j < list1.getLength(); j++) { Node node1 = list1.item(j); String name1 = node1.getNodeName(); if (name1.equals("sessionguid")) { sessionguid = getNodeValue(node1); } else if (name1.equals("errorcode")) { errorcode = getNodeValue(node1); } else if (name1.equals("errordescription")) { errordescription = getNodeValue(node1); } else if (name1.equals("tokenid")) { tokenid = getNodeValue(node1); } } } } if (log.isDebugEnabled()) { log.debug("Commidea VGTOKENREGISTRATIONRESPONSE response data:" + "\n sessionguid = " + sessionguid + "\n errorcode = " + errorcode + "\n errordescription = " + errordescription + "\n tokenId = " + tokenid); } } catch (Exception e) { // Problems parsing the XML if (log.isDebugEnabled()) { log.debug("Problems parsing Commidea VGTOKENREGISTRATIONRESPONSE response: " + e.getMessage()); } throw e; } } /* * Save the IPN History record */ String codePlusTxt = getResultDescription( RET1_DESC + errorcode + ((errordescription == null) ? "" : " : " + errordescription)); if (errorcode != null && errorcode.equals("0")) { ipnHistory.setKonakartResultDescription(RET0_DESC); ipnHistory.setKonakartResultId(RET0); ipnHistory.setGatewayResult(tokenid); } else { ipnHistory.setKonakartResultDescription(codePlusTxt); ipnHistory.setKonakartResultId(RET1); ipnHistory.setGatewayResult("ERROR"); } ipnHistory.setGatewayTransactionId("vgtokenregistrationrequest"); ipnHistory.setGatewayFullResponse(gatewayResp); kkAppEng.getEng().saveIpnHistory(kkAppEng.getSessionId(), ipnHistory); return errorcode; }
From source file:com.konakart.actions.gateways.CommideaVanguardBaseAction.java
/** * Method that manages the VGTRANSACTIONREQUEST and the VGTRANSACTIONRESPONSE. The method places * the following data in the custom fields of the PaymentDetails object. * <ul>/*from ww w. j av a 2 s. co m*/ * <li>Custom2 - authcode</li> * </ul> * * @param kkAppEng * @param order * @param ipnHistory * @return Returns the Commidea error code * @throws Exception */ protected String vgtransactionrequest(KKAppEng kkAppEng, OrderIf order, IpnHistoryIf ipnHistory) throws Exception { StringBuffer msg = new StringBuffer(); msg.append(getHeader("VGTRANSACTIONREQUEST", order, /* sendAttempt */0)); String req = "<vgtransactionrequest xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " + "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " + "xmlns=\"VANGUARD\">" + "<sessionguid>" + getSessionId(order.getPaymentDetails().getCustom1()) + "</sessionguid>" + "<accountid>" + parmMap.get("mkaccountid") + "</accountid>" + "<txntype>" + "01" + "</txntype>" + "<transactioncurrencycode>" + parmMap.get("transactioncurrencycode") + "</transactioncurrencycode>" + "<apacsterminalcapabilities>" + "4298" + "</apacsterminalcapabilities>" + "<capturemethod>" + "12" + "</capturemethod>" + "<processingidentifier>" + parmMap.get("processingidentifier") + "</processingidentifier>" + "<txnvalue>" + parmMap.get("transactiondisplayamount") + "</txnvalue>" + "<terminalcountrycode>" + parmMap.get("terminalcountrycode") + "</terminalcountrycode>" + "<accountpasscode>" + parmMap.get("accountpasscode") + "</accountpasscode>" + "<returnhash>" + "1" + "</returnhash>" + "</vgtransactionrequest>"; msg.append(req); msg.append(getFooter()); if (log.isDebugEnabled()) { log.debug("GatewayRequest (VGTRANSACTIONREQUEST) =\n" + RegExpUtils.maskCreditCard(PrettyXmlPrinter.printXml(msg.toString()))); } String gatewayResp = null; try { gatewayResp = postData(msg, order.getPaymentDetails(), null); } catch (Exception e) { if (log.isDebugEnabled()) { log.debug("Problem posting request to " + order.getPaymentDetails().getRequestUrl() + " : " + e.getMessage()); } throw e; } if (log.isDebugEnabled()) { log.debug("Unformatted GatewayResp (VGTRANSACTIONRESPONSE) =\n" + gatewayResp); try { log.debug("Formatted GatewayResp (VGTRANSACTIONRESPONSE) =\n" + PrettyXmlPrinter.printXml(gatewayResp)); } catch (Exception e) { log.debug("Exception pretty-printing gateway response (VGTRANSACTIONRESPONSE) : " + e.getMessage()); } } // Now process the XML response String sessionguid = null; String transactionid = null; String errormsg = null; String authcode = null; String authmessage = null; String txnresult = null; String errorMsgCode = null; String errorMsgTxt = null; if (gatewayResp != null) { try { DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = builderFactory.newDocumentBuilder(); ByteArrayInputStream bais = new ByteArrayInputStream(gatewayResp.getBytes()); Document doc = builder.parse(bais); // get the root node Node rootnode = doc.getDocumentElement(); String rootName = rootnode.getNodeName(); if (rootName != "soap:Envelope") { throw new KKException("Unexpected root element in VGTRANSACTIONRESPONSE: " + rootName); } // get all elements NodeList list = doc.getElementsByTagName("*"); for (int i = 0; i < list.getLength(); i++) { Node node = list.item(i); String name = node.getNodeName(); if (name != null && name.equals("MsgData")) { Text datanode = (Text) node.getFirstChild(); String xml = kkAppEng.removeCData(datanode.getData()); ByteArrayInputStream bais1 = new ByteArrayInputStream(xml.getBytes()); Document doc1 = builder.parse(bais1); NodeList list1 = doc1.getElementsByTagName("*"); for (int j = 0; j < list1.getLength(); j++) { Node node1 = list1.item(j); String name1 = node1.getNodeName(); if (name1.equals("sessionguid")) { sessionguid = getNodeValue(node1); } else if (name1.equals("transactionid")) { transactionid = getNodeValue(node1); } else if (name1.equals("errormsg")) { errormsg = getNodeValue(node1); } else if (name1.equals("authcode")) { authcode = getNodeValue(node1); } else if (name1.equals("authmessage")) { authmessage = getNodeValue(node1); } else if (name1.equals("txnresult")) { txnresult = getNodeValue(node1); } else if (name1.equals("CODE")) { errorMsgCode = getNodeValue(node1); } else if (name1.equals("MSGTXT")) { errorMsgTxt = getNodeValue(node1); } } } } order.getPaymentDetails().setCustom2(authcode); if (log.isDebugEnabled()) { log.debug("Commidea VGTRANSACTIONRESPONSE response data:" + "\n transactionid = " + transactionid + "\n errormsg = " + errormsg + "\n authcode = " + authcode + "\n authmessage = " + authmessage + "\n txnresult = " + txnresult + "\n sessionguid = " + sessionguid + "\n errorMsgCode = " + errorMsgCode + "\n errorMsgTxt = " + errorMsgTxt); } } catch (Exception e) { // Problems parsing the XML if (log.isDebugEnabled()) { log.debug("Problems parsing Commidea VGTRANSACTIONRESPONSE response: " + e.getMessage()); } throw e; } } /* * Save the IPN History record */ if (errorMsgCode != null) { ipnHistory.setKonakartResultDescription(RET1_DESC + errorMsgCode); ipnHistory.setKonakartResultId(RET1); } else { ipnHistory.setKonakartResultDescription(RET0_DESC); ipnHistory.setKonakartResultId(RET0); } ipnHistory.setGatewayResult("Authcode=" + authcode + " Authmessage=" + authmessage); ipnHistory.setGatewayTransactionId((transactionid == null) ? "vgtransactionrequest" : transactionid); ipnHistory.setGatewayFullResponse(gatewayResp); kkAppEng.getEng().saveIpnHistory(kkAppEng.getSessionId(), ipnHistory); return txnresult; }
From source file:com.konakart.actions.gateways.CommideaVanguardBaseAction.java
/** * Method that manages the VGGENERATESESSIONREQUEST and the VGGENERATESESSIONRESPONSE. The * method places the following data in the custom fields of the PaymentDetails object so that * they can be picked up by the JSP that posts the credit card details to Commidea. * <ul>//from w w w. j av a 2 s .c o m * <li>Custom1 - sessionguid + ";" + processingDB</li> * <li>Custom2 - sessionpasscode</li> * <li>Custom4 - ccDetailPostUrl</li> * </ul> * * @param kkAppEng * @param order * @param ipnHistory * @return Returns the Commidea error code * @throws Exception */ protected String vggeneratesessionrequest(KKAppEng kkAppEng, OrderIf order, IpnHistoryIf ipnHistory) throws Exception { StringBuffer msg = new StringBuffer(); msg.append(getHeader("VGGENERATESESSIONREQUEST", order, /* sendAttempt */0)); String req = "<vggeneratesessionrequest xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" + " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns=\"VANGUARD\">" + "<returnurl>" + parmMap.get("returnurl") + "</returnurl>" + "<fullcapture>true</fullcapture>" + "</vggeneratesessionrequest>"; msg.append(req); msg.append(getFooter()); if (log.isDebugEnabled()) { log.debug("GatewayRequest (VGGENERATESESSIONREQUEST) =\n" + RegExpUtils.maskCreditCard(PrettyXmlPrinter.printXml(msg.toString()))); } String gatewayResp = null; try { gatewayResp = postData(msg, order.getPaymentDetails(), null); } catch (Exception e) { if (log.isDebugEnabled()) { log.debug("Problem posting request to " + order.getPaymentDetails().getRequestUrl() + " : " + e.getMessage()); } throw e; } if (log.isDebugEnabled()) { log.debug("Unformatted GatewayResp (VGGENERATESESSIONRESPONSE) =\n" + gatewayResp); try { log.debug("Formatted GatewayResp (VGGENERATESESSIONRESPONSE) =\n" + PrettyXmlPrinter.printXml(gatewayResp)); } catch (Exception e) { log.debug("Exception pretty-printing gateway response (VGGENERATESESSIONRESPONSE) : " + e.getMessage()); } } // Now process the XML response String sessionguid = null; String sessionpasscode = null; String errorcode = null; String errordescription = null; String processingDB = null; String errorMsgCode = null; String errorMsgTxt = null; if (gatewayResp != null) { try { DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = builderFactory.newDocumentBuilder(); ByteArrayInputStream bais = new ByteArrayInputStream(gatewayResp.getBytes()); Document doc = builder.parse(bais); // get the root node Node rootnode = doc.getDocumentElement(); String rootName = rootnode.getNodeName(); if (rootName != "soap:Envelope") { throw new KKException("Unexpected root element in VGGENERATESESSIONRESPONSE: " + rootName); } // get all elements NodeList list = doc.getElementsByTagName("*"); for (int i = 0; i < list.getLength(); i++) { Node node = list.item(i); String name = node.getNodeName(); if (name != null && name.equals("ClientHeader")) { NodeList nodeList = node.getChildNodes(); int listLength = nodeList.getLength(); for (int j = 0; j < listLength; j++) { Node innerNode = nodeList.item(j); if (innerNode.getNodeName().equals("ProcessingDB")) { processingDB = innerNode.getFirstChild().getNodeValue(); } } } else if (name != null && name.equals("MsgData")) { Text datanode = (Text) node.getFirstChild(); String xml = kkAppEng.removeCData(datanode.getData()); ByteArrayInputStream bais1 = new ByteArrayInputStream(xml.getBytes()); Document doc1 = builder.parse(bais1); NodeList list1 = doc1.getElementsByTagName("*"); for (int j = 0; j < list1.getLength(); j++) { Node node1 = list1.item(j); String name1 = node1.getNodeName(); if (name1.equals("sessionguid")) { sessionguid = getNodeValue(node1); } else if (name1.equals("sessionpasscode")) { sessionpasscode = getNodeValue(node1); } else if (name1.equals("errorcode")) { errorcode = getNodeValue(node1); } else if (name1.equals("errordescription")) { errordescription = getNodeValue(node1); } else if (name1.equals("errormessage")) { errordescription = getNodeValue(node1); } else if (name1.equals("CODE")) { errorMsgCode = getNodeValue(node1); } else if (name1.equals("MSGTXT")) { errorMsgTxt = getNodeValue(node1); } } } } if (log.isDebugEnabled()) { log.debug("Commidea VGGENERATESESSIONRESPONSE response data:" + "\n sessionguid = " + sessionguid + "\n sessionpasscode = " + sessionpasscode + "\n ProcessingDB = " + processingDB + "\n errorcode = " + errorcode + "\n errordescription = " + errordescription + "\n errorMsgCode = " + errorMsgCode + "\n errorMsgTxt = " + errorMsgTxt); } } catch (Exception e) { // Problems parsing the XML if (log.isDebugEnabled()) { log.debug("Problems parsing Commidea VGGENERATESESSIONRESPONSE response: " + e.getMessage()); } throw e; } } /* * Add response data to PaymentDetails Object so that this data can be picked up by the JSP * that will post the credit card details to commidea */ order.getPaymentDetails().setCustom1(sessionguid + ";" + processingDB); order.getPaymentDetails().setCustom2(sessionpasscode); order.getPaymentDetails().setCustom4(parmMap.get("ccDetailPostUrl")); /* * Save the IPN History record */ errorMsgCode = (errorMsgCode != null) ? errorMsgCode : errorcode; errorMsgTxt = (errorMsgTxt != null) ? errorMsgTxt : errordescription; String codePlusTxt = getResultDescription( RET1_DESC + errorMsgCode + ((errorMsgTxt == null) ? "" : " : " + errorMsgTxt)); if (errorMsgCode != null && errorMsgCode.equals("0")) { ipnHistory.setKonakartResultDescription(RET0_DESC); ipnHistory.setKonakartResultId(RET0); } else { ipnHistory.setKonakartResultDescription(codePlusTxt); ipnHistory.setKonakartResultId(RET1); } ipnHistory.setGatewayResult(sessionguid); ipnHistory.setGatewayTransactionId("vggeneratesessionrequest"); ipnHistory.setGatewayFullResponse(gatewayResp); kkAppEng.getEng().saveIpnHistory(kkAppEng.getSessionId(), ipnHistory); return errorMsgCode; }
From source file:com.konakart.actions.gateways.CommideaVanguardBaseAction.java
/** * Method that manages the VGGETCARDDETAILSREQUEST and the VGGETCARDDETAILSRESPONSE. * /*w w w. j a v a 2 s. co m*/ * @param kkAppEng * @param order * @param ipnHistory * @return Returns "1" or "0" depending on whether the authentication enrollment check request * should be made. i.e. Should be "0" for AMEX cards * @throws Exception */ protected String vggetcarddetailsrequest(KKAppEng kkAppEng, OrderIf order, IpnHistoryIf ipnHistory) throws Exception { StringBuffer msg = new StringBuffer(); msg.append(getHeader("VGGETCARDDETAILSREQUEST", order, /* sendAttempt */0)); String req = "<vggetcarddetailsrequest xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " + "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " + "xmlns=\"VANGUARD\">" + "<sessionguid>" + getSessionId(order.getPaymentDetails().getCustom1()) + "</sessionguid>" + "</vggetcarddetailsrequest>"; msg.append(req); msg.append(getFooter()); if (log.isDebugEnabled()) { log.debug("GatewayRequest (VGGETCARDDETAILSREQUEST) =\n" + RegExpUtils.maskCreditCard(PrettyXmlPrinter.printXml(msg.toString()))); } String gatewayResp = null; try { gatewayResp = postData(msg, order.getPaymentDetails(), null); } catch (Exception e) { if (log.isDebugEnabled()) { log.debug("Problem posting request to " + order.getPaymentDetails().getRequestUrl() + " : " + e.getMessage()); } throw e; } if (log.isDebugEnabled()) { log.debug("Unformatted GatewayResp (VGGETCARDDETAILSRESPONSE) =\n" + gatewayResp); try { log.debug("Formatted GatewayResp (VGGETCARDDETAILSRESPONSE) =\n" + PrettyXmlPrinter.printXml(gatewayResp)); } catch (Exception e) { log.debug("Exception pretty-printing gateway response (VGGETCARDDETAILSRESPONSE) : " + e.getMessage()); } } // Now process the XML response String sessionguid = null; String mkcardschemeid = null; String issuenolength = null; String startdaterequired = null; String csclength = null; String allowpayerauth = null; String cpcoption = null; String errorcode = null; String errordescription = null; String errorMsgCode = null; String errorMsgTxt = null; if (gatewayResp != null) { try { DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = builderFactory.newDocumentBuilder(); ByteArrayInputStream bais = new ByteArrayInputStream(gatewayResp.getBytes()); Document doc = builder.parse(bais); // get the root node Node rootnode = doc.getDocumentElement(); String rootName = rootnode.getNodeName(); if (rootName != "soap:Envelope") { throw new KKException("Unexpected root element in VGGETCARDDETAILSRESPONSE: " + rootName); } // get all elements NodeList list = doc.getElementsByTagName("*"); for (int i = 0; i < list.getLength(); i++) { Node node = list.item(i); String name = node.getNodeName(); if (name != null && name.equals("MsgData")) { Text datanode = (Text) node.getFirstChild(); String xml = kkAppEng.removeCData(datanode.getData()); ByteArrayInputStream bais1 = new ByteArrayInputStream(xml.getBytes()); Document doc1 = builder.parse(bais1); NodeList list1 = doc1.getElementsByTagName("*"); for (int j = 0; j < list1.getLength(); j++) { Node node1 = list1.item(j); String name1 = node1.getNodeName(); if (name1.equals("sessionguid")) { sessionguid = getNodeValue(node1); } else if (name1.equals("errorcode")) { errorcode = getNodeValue(node1); } else if (name1.equals("errordescription")) { errordescription = getNodeValue(node1); } else if (name1.equals("mkcardschemeid")) { mkcardschemeid = getNodeValue(node1); } else if (name1.equals("issuenolength")) { issuenolength = getNodeValue(node1); } else if (name1.equals("startdaterequired")) { startdaterequired = getNodeValue(node1); } else if (name1.equals("csclength")) { csclength = getNodeValue(node1); } else if (name1.equals("allowpayerauth")) { allowpayerauth = getNodeValue(node1); } else if (name1.equals("cpcoption")) { cpcoption = getNodeValue(node1); } else if (name1.equals("CODE")) { errorMsgCode = getNodeValue(node1); } else if (name1.equals("MSGTXT")) { errorMsgTxt = getNodeValue(node1); } } } } if (log.isDebugEnabled()) { log.debug("Commidea VGGETCARDDETAILSRESPONSE response data:" + "\n mkcardschemeid = " + mkcardschemeid + "\n issuenolength = " + issuenolength + "\n startdaterequired = " + startdaterequired + "\n csclength = " + csclength + "\n allowpayerauth = " + allowpayerauth + "\n cpcoption = " + cpcoption + "\n sessionguid = " + sessionguid + "\n errorcode = " + errorcode + "\n errordescription = " + errordescription + "\n errorMsgCode = " + errorMsgCode + "\n errorMsgTxt = " + errorMsgTxt); } } catch (Exception e) { // Problems parsing the XML if (log.isDebugEnabled()) { log.debug("Problems parsing Commidea VGGETCARDDETAILSRESPONSE response: " + e.getMessage()); } throw e; } } /* * Save the IPN History record */ errorMsgCode = (errorMsgCode != null) ? errorMsgCode : errorcode; errorMsgTxt = (errorMsgTxt != null) ? errorMsgTxt : errordescription; String codePlusTxt = getResultDescription( RET1_DESC + errorMsgCode + ((errorMsgTxt == null) ? "" : " : " + errorMsgTxt)); if (errorMsgCode != null && errorMsgCode.equals("0")) { ipnHistory.setKonakartResultDescription(RET0_DESC); ipnHistory.setKonakartResultId(RET0); } else { ipnHistory.setKonakartResultDescription(codePlusTxt); ipnHistory.setKonakartResultId(RET1); } ipnHistory.setGatewayResult(allowpayerauth); ipnHistory.setGatewayTransactionId("vggetcarddetailsrequest"); ipnHistory.setGatewayFullResponse(gatewayResp); kkAppEng.getEng().saveIpnHistory(kkAppEng.getSessionId(), ipnHistory); if (errorMsgCode != null && errorMsgCode.equals("0")) { return allowpayerauth; } return errorMsgCode; }
From source file:com.enonic.vertical.engine.handlers.PageTemplateHandler.java
public void copyPageTemplatesPostOp(int oldMenuKey, CopyContext copyContext) throws VerticalCopyException { int newMenuKey = copyContext.getMenuKey(oldMenuKey); Document doc = getPageTemplatesByMenu(newMenuKey, null); Element[] pageTemplateElems = XMLTool.getElements(doc.getDocumentElement()); try {//from www . j ava 2s . c o m for (Element pageTemplateElem : pageTemplateElems) { // datasource NodeList parameterList = XMLTool.selectNodes(pageTemplateElem, "datasources/datasource/parameters/parameter"); for (int j = 0; j < parameterList.getLength(); j++) { Element parameterElem = (Element) parameterList.item(j); String name = parameterElem.getAttribute("name"); if ("cat".equalsIgnoreCase(name)) { Text text = (Text) parameterElem.getFirstChild(); if (text != null) { String oldCategoryKey = text.getData(); if (oldCategoryKey != null && oldCategoryKey.length() > 0) { int newCategoryKey = copyContext.getCategoryKey(Integer.parseInt(oldCategoryKey)); if (newCategoryKey >= 0) { text.setData(String.valueOf(newCategoryKey)); } } } } else if ("menu".equalsIgnoreCase(name)) { Text text = (Text) parameterElem.getFirstChild(); if (text != null) { String oldKey = text.getData(); if (oldKey != null && oldKey.length() > 0) { int newKey = copyContext.getMenuKey(Integer.parseInt(oldKey)); if (newKey >= 0) { text.setData(String.valueOf(newKey)); } } } } } } updatePageTemplate(doc); } catch (VerticalUpdateException vue) { String message = "Failed to copy page templates (post operation): %t"; VerticalEngineLogger.errorCopy(this.getClass(), 0, message, vue); } }
From source file:com.konakart.actions.gateways.CommideaVanguardBaseAction.java
/** * Method that manages the VGPAYERAUTHAUTHENTICATIONCHECKREQUEST and the * VGPAYERAUTHAUTHENTICATIONCHECKRESPONSE. * // w w w . j a v a 2 s .c om * @param kkAppEng * @param order * @param ipnHistory * @param paRes * @param enrolled * @return Returns the Commidea error code if there is an error, otherwise returns "Y" or "N" or * some other value depending whether the customer was authenticated or not * @throws Exception */ protected String vgpayerauthauthenticationcheckrequest(KKAppEng kkAppEng, OrderIf order, IpnHistoryIf ipnHistory, String paRes, String enrolled) throws Exception { StringBuffer msg = new StringBuffer(); msg.append(getHeader("VGPAYERAUTHAUTHENTICATIONCHECKREQUEST", order, /* sendAttempt */0)); String req = "<vgpayerauthauthenticationcheckrequest xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " + "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " + "xmlns=\"VANGUARD\">" + "<sessionguid>" + getSessionId(order.getPaymentDetails().getCustom1()) + "</sessionguid>" + "<payerauthrequestid>" + order.getPaymentDetails().getCustom2() + "</payerauthrequestid>" + "<enrolled>" + enrolled + "</enrolled>" + ((paRes == null) ? "" : "<pares>" + paRes + "</pares>") + "</vgpayerauthauthenticationcheckrequest>"; msg.append(req); msg.append(getFooter()); if (log.isDebugEnabled()) { log.debug("GatewayRequest (VGPAYERAUTHAUTHENTICATIONCHECKREQUEST) =\n" + RegExpUtils.maskCreditCard(PrettyXmlPrinter.printXml(msg.toString()))); } String gatewayResp = null; try { gatewayResp = postData(msg, order.getPaymentDetails(), null); } catch (Exception e) { if (log.isDebugEnabled()) { log.debug("Problem posting request to " + order.getPaymentDetails().getRequestUrl() + " : " + e.getMessage()); } throw e; } if (log.isDebugEnabled()) { log.debug("Unformatted GatewayResp (VGPAYERAUTHAUTHENTICATIONCHECKRESPONSE) =\n" + gatewayResp); try { log.debug("Formatted GatewayResp (VGPAYERAUTHAUTHENTICATIONCHECKRESPONSE) =\n" + PrettyXmlPrinter.printXml(gatewayResp)); } catch (Exception e) { log.debug("Exception pretty-printing gateway response (VGPAYERAUTHAUTHENTICATIONCHECKRESPONSE) : " + e.getMessage()); } } // Now process the XML response String sessionguid = null; String payerauthrequestid = null; String atsdata = null; String authenticationstatus = null; String authenticationcertificate = null; String authenticationcavv = null; String authenticationeci = null; String authenticationtime = null; String errorcode = null; String errordescription = null; String errorMsgCode = null; String errorMsgTxt = null; if (gatewayResp != null) { try { DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = builderFactory.newDocumentBuilder(); ByteArrayInputStream bais = new ByteArrayInputStream(gatewayResp.getBytes()); Document doc = builder.parse(bais); // get the root node Node rootnode = doc.getDocumentElement(); String rootName = rootnode.getNodeName(); if (rootName != "soap:Envelope") { throw new KKException( "Unexpected root element in VGPAYERAUTHAUTHENTICATIONCHECKRESPONSE: " + rootName); } // get all elements NodeList list = doc.getElementsByTagName("*"); for (int i = 0; i < list.getLength(); i++) { Node node = list.item(i); String name = node.getNodeName(); if (name != null && name.equals("MsgData")) { Text datanode = (Text) node.getFirstChild(); String xml = kkAppEng.removeCData(datanode.getData()); ByteArrayInputStream bais1 = new ByteArrayInputStream(xml.getBytes()); Document doc1 = builder.parse(bais1); NodeList list1 = doc1.getElementsByTagName("*"); for (int j = 0; j < list1.getLength(); j++) { Node node1 = list1.item(j); String name1 = node1.getNodeName(); if (name1.equals("sessionguid")) { sessionguid = getNodeValue(node1); } else if (name1.equals("errorcode")) { errorcode = getNodeValue(node1); } else if (name1.equals("errordescription")) { errordescription = getNodeValue(node1); } else if (name1.equals("payerauthrequestid")) { payerauthrequestid = getNodeValue(node1); } else if (name1.equals("atsdata")) { atsdata = getNodeValue(node1); } else if (name1.equals("authenticationstatus")) { authenticationstatus = getNodeValue(node1); } else if (name1.equals("authenticationcertificate")) { authenticationcertificate = getNodeValue(node1); } else if (name1.equals("authenticationcavv")) { authenticationcavv = getNodeValue(node1); } else if (name1.equals("authenticationeci")) { authenticationeci = getNodeValue(node1); } else if (name1.equals("authenticationtime")) { authenticationtime = getNodeValue(node1); } else if (name1.equals("CODE")) { errorMsgCode = getNodeValue(node1); } else if (name1.equals("MSGTXT")) { errorMsgTxt = getNodeValue(node1); } } } } if (log.isDebugEnabled()) { log.debug("Commidea VGPAYERAUTHAUTHENTICATIONCHECKRESPONSE response data:" + "\n payerauthrequestid = " + payerauthrequestid + "\n atsdata = " + atsdata + "\n authenticationstatus = " + authenticationstatus + "\n authenticationcertificate = " + authenticationcertificate + "\n authenticationcavv = " + authenticationcavv + "\n authenticationeci = " + authenticationeci + "\n authenticationtime = " + authenticationtime + "\n sessionguid = " + sessionguid + "\n errorcode = " + errorcode + "\n errordescription = " + errordescription + "\n errorMsgCode = " + errorMsgCode + "\n errorMsgTxt = " + errorMsgTxt); } } catch (Exception e) { // Problems parsing the XML if (log.isDebugEnabled()) { log.debug("Problems parsing Commidea VGPAYERAUTHAUTHENTICATIONCHECKRESPONSE response: " + e.getMessage()); } throw e; } } /* * Save the IPN History record */ errorMsgCode = (errorMsgCode != null) ? errorMsgCode : errorcode; errorMsgTxt = (errorMsgTxt != null) ? errorMsgTxt : errordescription; String codePlusTxt = getResultDescription( RET1_DESC + errorMsgCode + ((errorMsgTxt == null) ? "" : " : " + errorMsgTxt)); if (errorMsgCode != null && errorMsgCode.equals("0")) { ipnHistory.setKonakartResultDescription(RET0_DESC); ipnHistory.setKonakartResultId(RET0); } else { ipnHistory.setKonakartResultDescription(codePlusTxt); ipnHistory.setKonakartResultId(RET1); } ipnHistory.setGatewayResult(authenticationstatus); ipnHistory.setGatewayTransactionId("vgpayerauthauthenticationcheckrequest"); ipnHistory.setGatewayFullResponse(gatewayResp); kkAppEng.getEng().saveIpnHistory(kkAppEng.getSessionId(), ipnHistory); if (errorMsgCode != null && errorMsgCode.equals("0")) { return authenticationstatus; } return errorMsgCode; }
From source file:com.konakart.actions.gateways.CommideaVanguardBaseAction.java
/** * Method that manages the VGPAYERAUTHENROLLMENTCHECKREQUEST and the * VGPAYERAUTHENROLLMENTCHECKRESPONSE. The method places the following data in the custom fields * of the PaymentDetails object.// w w w . j av a2s. co m * <ul> * <li>Custom2 - payerauthrequestid</li> * <li>Custom3 - acsurl</li> * <li>Custom4 - pareq</li> * <li>Custom5 - TermUrl</li> * </ul> * * @param kkAppEng * @param order * @param ipnHistory * @return Returns the Commidea error code if there is an error, otherwise returns "Y" or "N" * depending whether the customer is enrolled or not * @throws Exception */ protected String vgpayerauthenrollmentcheckrequest(KKAppEng kkAppEng, OrderIf order, IpnHistoryIf ipnHistory) throws Exception { StringBuffer msg = new StringBuffer(); msg.append(getHeader("VGPAYERAUTHENROLLMENTCHECKREQUEST", order, /* sendAttempt */0)); String visamerchantbankid = parmMap.get("visamerchantbankid"); String visamerchantnumber = parmMap.get("visamerchantnumber"); String visamerchantpassword = parmMap.get("visamerchantpassword"); String mcmmerchantbankid = parmMap.get("mcmmerchantbankid"); String mcmmerchantnumber = parmMap.get("mcmmerchantnumber"); String mcmmerchantpassword = parmMap.get("mcmmerchantpassword"); String req = "<vgpayerauthenrollmentcheckrequest xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " + "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " + "xmlns=\"VANGUARD\">" + "<sessionguid>" + getSessionId(order.getPaymentDetails().getCustom1()) + "</sessionguid>" + "<mkaccountid>" + parmMap.get("mkaccountid") + "</mkaccountid>" + "<mkacquirerid>" + parmMap.get("mkacquirerid") + "</mkacquirerid>" + "<merchantname>" + parmMap.get("merchantname") + "</merchantname>" + "<merchantcountrycode>" + parmMap.get("merchantcountrycode") + "</merchantcountrycode>" + "<merchanturl>" + parmMap.get("merchanturl") + "</merchanturl>" + ((visamerchantbankid == null || visamerchantbankid.length() == 0) ? "" : "<visamerchantbankid>" + visamerchantbankid + "</visamerchantbankid>") + ((visamerchantnumber == null || visamerchantnumber.length() == 0) ? "" : "<visamerchantnumber>" + visamerchantnumber + "</visamerchantnumber>") + ((visamerchantpassword == null || visamerchantpassword.length() == 0) ? "" : "<visamerchantpassword>" + visamerchantpassword + "</visamerchantpassword>") + ((mcmmerchantbankid == null || mcmmerchantbankid.length() == 0) ? "" : "<mcmmerchantbankid>" + mcmmerchantbankid + "</mcmmerchantbankid>") + ((mcmmerchantnumber == null || mcmmerchantnumber.length() == 0) ? "" : "<mcmmerchantnumber>" + mcmmerchantnumber + "</mcmmerchantnumber>") + ((mcmmerchantpassword == null || mcmmerchantpassword.length() == 0) ? "" : "<mcmmerchantpassword>" + mcmmerchantpassword + "</mcmmerchantpassword>") + "<currencycode>" + parmMap.get("currencycode") + "</currencycode>" + "<currencyexponent>" + parmMap.get("currencyexponent") + "</currencyexponent>" // + "<browseracceptheader>" + "xxx" + "</browseracceptheader>" // + "<browseruseragentheader>" + "xxx" + "</browseruseragentheader>" + "<transactionamount>" + parmMap.get("transactionamount") + "</transactionamount>" + "<transactiondisplayamount>" + parmMap.get("transactiondisplayamount") + "</transactiondisplayamount>" + "</vgpayerauthenrollmentcheckrequest>"; msg.append(req); msg.append(getFooter()); if (log.isDebugEnabled()) { log.debug("GatewayRequest (VGPAYERAUTHENROLLMENTCHECKREQUEST) =\n" + RegExpUtils.maskCreditCard(PrettyXmlPrinter.printXml(msg.toString()))); } String gatewayResp = null; try { gatewayResp = postData(msg, order.getPaymentDetails(), null); } catch (Exception e) { if (log.isDebugEnabled()) { log.debug("Problem posting request to " + order.getPaymentDetails().getRequestUrl() + " : " + e.getMessage()); } throw e; } if (log.isDebugEnabled()) { log.debug("Unformatted GatewayResp (VGPAYERAUTHENROLLMENTCHECKRESPONSE) =\n" + gatewayResp); try { log.debug("Formatted GatewayResp (VGPAYERAUTHENROLLMENTCHECKRESPONSE) =\n" + PrettyXmlPrinter.printXml(gatewayResp)); } catch (Exception e) { log.debug("Exception pretty-printing gateway response (VGPAYERAUTHENROLLMENTCHECKRESPONSE) : " + e.getMessage()); } } // Now process the XML response String sessionguid = null; String payerauthrequestid = null; String enrolled = null; String acsurl = null; String pareq = null; String errorcode = null; String errordescription = null; String errorMsgCode = null; String errorMsgTxt = null; if (gatewayResp != null) { try { DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = builderFactory.newDocumentBuilder(); ByteArrayInputStream bais = new ByteArrayInputStream(gatewayResp.getBytes()); Document doc = builder.parse(bais); // get the root node Node rootnode = doc.getDocumentElement(); String rootName = rootnode.getNodeName(); if (rootName != "soap:Envelope") { throw new KKException( "Unexpected root element in VGPAYERAUTHENROLLMENTCHECKRESPONSE: " + rootName); } // get all elements NodeList list = doc.getElementsByTagName("*"); for (int i = 0; i < list.getLength(); i++) { Node node = list.item(i); String name = node.getNodeName(); if (name != null && name.equals("MsgData")) { Text datanode = (Text) node.getFirstChild(); String xml = kkAppEng.removeCData(datanode.getData()); ByteArrayInputStream bais1 = new ByteArrayInputStream(xml.getBytes()); Document doc1 = builder.parse(bais1); NodeList list1 = doc1.getElementsByTagName("*"); for (int j = 0; j < list1.getLength(); j++) { Node node1 = list1.item(j); String name1 = node1.getNodeName(); if (name1.equals("sessionguid")) { sessionguid = getNodeValue(node1); } else if (name1.equals("errorcode")) { errorcode = getNodeValue(node1); } else if (name1.equals("errordescription")) { errordescription = getNodeValue(node1); } else if (name1.equals("payerauthrequestid")) { payerauthrequestid = getNodeValue(node1); } else if (name1.equals("enrolled")) { enrolled = getNodeValue(node1); } else if (name1.equals("acsurl")) { acsurl = getNodeValue(node1); } else if (name1.equals("pareq")) { pareq = getNodeValue(node1); } else if (name1.equals("CODE")) { errorMsgCode = getNodeValue(node1); } else if (name1.equals("MSGTXT")) { errorMsgTxt = getNodeValue(node1); } } } } order.getPaymentDetails().setCustom2(payerauthrequestid); order.getPaymentDetails().setCustom3(acsurl); order.getPaymentDetails().setCustom4(pareq); order.getPaymentDetails().setCustom5(parmMap.get("TermUrl")); if (log.isDebugEnabled()) { log.debug("Commidea VGPAYERAUTHENROLLMENTCHECKRESPONSE response data:" + "\n payerauthrequestid = " + payerauthrequestid + "\n enrolled = " + enrolled + "\n acsurl = " + acsurl + "\n pareq = " + pareq + "\n sessionguid = " + sessionguid + "\n errorcode = " + errorcode + "\n errordescription = " + errordescription + "\n errorMsgCode = " + errorMsgCode + "\n errorMsgTxt = " + errorMsgTxt); } } catch (Exception e) { // Problems parsing the XML if (log.isDebugEnabled()) { log.debug("Problems parsing Commidea VGPAYERAUTHENROLLMENTCHECKRESPONSE response: " + e.getMessage()); } throw e; } } /* * Save the IPN History record */ errorMsgCode = (errorMsgCode != null) ? errorMsgCode : errorcode; errorMsgTxt = (errorMsgTxt != null) ? errorMsgTxt : errordescription; String codePlusTxt = getResultDescription( RET1_DESC + errorMsgCode + ((errorMsgTxt == null) ? "" : " : " + errorMsgTxt)); if (errorMsgCode != null && errorMsgCode.equals("0")) { ipnHistory.setKonakartResultDescription(RET0_DESC); ipnHistory.setKonakartResultId(RET0); } else { ipnHistory.setKonakartResultDescription(codePlusTxt); ipnHistory.setKonakartResultId(RET1); } ipnHistory.setGatewayResult(enrolled); ipnHistory.setGatewayTransactionId("vgpayerauthenrollmentcheckrequest"); ipnHistory.setGatewayFullResponse(gatewayResp); kkAppEng.getEng().saveIpnHistory(kkAppEng.getSessionId(), ipnHistory); if (errorMsgCode != null && errorMsgCode.equals("0")) { return enrolled; } return errorMsgCode; }
From source file:com.enonic.vertical.engine.handlers.MenuHandler.java
private void copyMenu(CopyContext copyContext, Element menuElem) throws VerticalCopyException, VerticalCreateException, VerticalUpdateException, VerticalSecurityException { if (menuElem != null) { User user = copyContext.getUser(); int oldMenuKey = Integer.parseInt(menuElem.getAttribute("key")); //if (copyContext.getOldSiteKey() != copyContext.getNewSiteKey()) // menuElem.setAttribute("sitekey", String.valueOf(copyContext.getNewSiteKey())); //else {/*w ww . j a v a2s . c o m*/ Element nameElem = XMLTool.getElement(menuElem, "name"); Text text = (Text) nameElem.getFirstChild(); Map translationMap = languageMap.getTranslationMap(user.getSelectedLanguageCode()); text.setData(text.getData() + " (" + translationMap.get("%txtCopy%") + ")"); //} Element elem = XMLTool.getElement(menuElem, "firstpage"); String oldFirstPageKey = elem.getAttribute("key"); elem.removeAttribute("key"); elem = XMLTool.getElement(menuElem, "loginpage"); String oldLoginPageKey = elem.getAttribute("key"); elem.removeAttribute("key"); elem = XMLTool.getElement(menuElem, "errorpage"); String oldErrorPageKey = elem.getAttribute("key"); elem.removeAttribute("key"); String oldDefaultPageTemplateKey = null; elem = XMLTool.getElement(menuElem, "defaultpagetemplate"); if (elem != null) { oldDefaultPageTemplateKey = elem.getAttribute("pagetemplatekey"); elem.removeAttribute("pagetemplatekey"); } Document newDoc = XMLTool.createDocument(); Element newMenuElem = (Element) newDoc.importNode(menuElem, true); newDoc.appendChild(newMenuElem); Element menuitemsElem = XMLTool.getElement(newMenuElem, "menuitems"); newMenuElem.removeChild(menuitemsElem); SiteKey menuKey = createMenu(user, copyContext, newDoc, false); // copy content objects and page templates ContentObjectHandler contentObjectHandler = getContentObjectHandler(); contentObjectHandler.copyContentObjects(oldMenuKey, copyContext); PageTemplateHandler pageTemplateHandler = getPageTemplateHandler(); pageTemplateHandler.copyPageTemplates(oldMenuKey, copyContext); Document doc = getMenu(user, menuKey.toInt(), true, true); Element docElem = doc.getDocumentElement(); newMenuElem = (Element) docElem.getFirstChild(); doc.replaceChild(newMenuElem, docElem); Element newMenuitemsElem = (Element) doc.importNode(menuitemsElem, true); menuitemsElem = XMLTool.getElement(newMenuElem, "menuitems"); newMenuElem.replaceChild(newMenuitemsElem, menuitemsElem); // prepare copy of menu items prepareCopy(newMenuitemsElem, copyContext); updateMenu(user, copyContext, doc, false); if (oldFirstPageKey != null && oldFirstPageKey.length() > 0) { elem = XMLTool.createElementIfNotPresent(doc, newMenuElem, "firstpage"); elem.setAttribute("key", String.valueOf(copyContext.getMenuItemKey(Integer.parseInt(oldFirstPageKey)))); } if (oldLoginPageKey != null && oldLoginPageKey.length() > 0) { elem = XMLTool.createElementIfNotPresent(doc, newMenuElem, "loginpage"); elem.setAttribute("key", String.valueOf(copyContext.getMenuItemKey(Integer.parseInt(oldLoginPageKey)))); } if (oldErrorPageKey != null && oldErrorPageKey.length() > 0) { elem = XMLTool.createElementIfNotPresent(doc, newMenuElem, "errorpage"); elem.setAttribute("key", String.valueOf(copyContext.getMenuItemKey(Integer.parseInt(oldErrorPageKey)))); } if (oldDefaultPageTemplateKey != null && oldDefaultPageTemplateKey.length() > 0) { elem = XMLTool.createElement(doc, newMenuElem, "defaultpagetemplate"); elem.setAttribute("pagetemplatekey", String .valueOf(copyContext.getPageTemplateKey(Integer.parseInt(oldDefaultPageTemplateKey)))); } if (copyContext.isIncludeContents()) { menuitemsElem = XMLTool.getElement(newMenuElem, "menuitems"); prepareUpdate(menuitemsElem); } // update default css Element menudataElem = XMLTool.getElement(newMenuElem, "menudata"); Element defaultcssElem = XMLTool.getElement(menudataElem, "defaultcss"); if (defaultcssElem != null) { String cssKey = defaultcssElem.getAttribute("key"); if (cssKey != null && cssKey.length() > 0) { defaultcssElem.setAttribute("key", cssKey); } } updateMenu(user, copyContext, doc, true); // post-process content objects and page templates contentObjectHandler.copyContentObjectsPostOp(oldMenuKey, copyContext); pageTemplateHandler.copyPageTemplatesPostOp(oldMenuKey, copyContext); } }