📄 extractdeploysite.java
字号:
// // EXTRACT SECTION // //-------------------------------------------------------------------------- //-------------------------------------------------------------------------- /** * Display the list of site the user can choose to extract * * @author Khue Nguyen * * @param request Servlet request. * @param response Servlet response. * @param session Servlet session for the current user. */ private void displayExtract( HttpServletRequest request, HttpServletResponse response, HttpSession session ) throws IOException, ServletException { JahiaConsole.println(CLASS_NAME+".displayExtract","started"); try { Enumeration enum = siteServ.getSites(); request.setAttribute("sitesList", enum); // retrieve previous form values... Vector selSiteIDs = (Vector) session.getAttribute(CLASS_NAME + "selSiteIDs"); String jahiaExtractName = (String) session.getAttribute(CLASS_NAME + "jahiaExtractName"); String jahiaExtractDesc = (String) session.getAttribute(CLASS_NAME + "jahiaExtractDesc"); String warningMsg = (String) session.getAttribute(CLASS_NAME + "warningMsg"); // set default values (if necessary)... if (selSiteIDs == null ) { selSiteIDs = new Vector(); } if(jahiaExtractName == null) { jahiaExtractName = ""; } if(jahiaExtractDesc == null) { jahiaExtractDesc = ""; } if(warningMsg == null) { warningMsg = ""; } // set request attributes... request.setAttribute("selSiteIDs", selSiteIDs); request.setAttribute("jahiaExtractName", jahiaExtractName); request.setAttribute("jahiaExtractDesc", jahiaExtractDesc); request.setAttribute("warningMsg", warningMsg); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "extdep_site_extract.jsp" ); } catch ( JahiaException je ){ request.setAttribute("jahiaDisplayMessage", "An error occured while processing your request"); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "menu.jsp" ); } } //-------------------------------------------------------------------------- /** * Display the extraction confirmation screen * * @author Khue Nguyen * * @param request Servlet request. * @param response Servlet response. * @param session Servlet session for the current user. */ private void displayExtractConfirmation( HttpServletRequest request, HttpServletResponse response, HttpSession session ) throws IOException, ServletException { JahiaConsole.println(CLASS_NAME+".displayExtractConfirmation","started"); try { Enumeration enum = siteServ.getSites(); request.setAttribute("sitesList", enum); // retrieve previous form values... Vector selSiteIDs = (Vector) session.getAttribute(CLASS_NAME + "selSiteIDs"); String jahiaExtractName = (String) session.getAttribute(CLASS_NAME + "jahiaExtractName"); String jahiaExtractDesc = (String) session.getAttribute(CLASS_NAME + "jahiaExtractDesc"); String warningMsg = (String) session.getAttribute(CLASS_NAME + "warningMsg"); // set default values (if necessary)... if (selSiteIDs == null ) { selSiteIDs = new Vector(); } if(jahiaExtractName == null) { jahiaExtractName = ""; } if(jahiaExtractDesc == null) { jahiaExtractDesc = ""; } if(warningMsg == null) { warningMsg = ""; } // set request attributes... request.setAttribute("selSiteIDs", selSiteIDs); request.setAttribute("jahiaExtractName", jahiaExtractName); request.setAttribute("jahiaExtractDesc", jahiaExtractDesc); request.setAttribute("warningMsg", warningMsg); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "extdep_site_extractconfirmation.jsp" ); } catch ( JahiaException je ){ request.setAttribute("jahiaDisplayMessage", "An error occured while processing your request"); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "extdep_site_extractconfirmation.jsp" ); } } //-------------------------------------------------------------------------- /** * Process and check the validity of extraction options. * * @author Khue Nguyen * * @param request Servlet request. * @param response Servlet response. * @param session Servlet session for the current user. */ private void processExtract( HttpServletRequest request, HttpServletResponse response, HttpSession session ) throws IOException, ServletException, JahiaException { JahiaConsole.println(CLASS_NAME+".processExtract","started"); // start the chrono... long startTime = JahiaChrono.getInstance().start(); synchronized (mLock){ // Try to get the excluse lock on Jahia JahiaUser user = (JahiaUser)session.getAttribute(ParamBean.SESSION_USER); if ( user == null || !user.isAdminMember(0) ){ session.setAttribute(CLASS_NAME + "jahiaDisplayMessage", "Illegal Access Operation"); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "menu.jsp" ); return; } byte[] jahiaLock = null; boolean freeLock = true; try { jahiaLock = Jahia.getLock(user,session); if ( jahiaLock == null ){ session.setAttribute(CLASS_NAME + "jahiaDisplayMessage", "Cannot lock jahia in exclusive access mode"); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "menu.jsp" ); return; } } catch ( JahiaException je ){ session.setAttribute(CLASS_NAME + "jahiaDisplayMessage", je.getMessage()); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "menu.jsp" ); return; } try { String confirmExtraction = (String) request.getParameter("confirmExtraction"); // the extraction folder File extFolder = null; // error status boolean err = false; // sites to extract String[] siteIDsArr = null; Vector selSiteIDs = null; String jahiaExtractName = null; String jahiaExtractDesc = null; if ( confirmExtraction == null || !confirmExtraction.equals("yes") ){ // sites to extract siteIDsArr = request.getParameterValues("sitesList"); selSiteIDs = new Vector(); if ( siteIDsArr != null ){ for ( int i=0 ; i<siteIDsArr.length ; i++ ){ int selSiteID = -1; try { selSiteID = Integer.parseInt(siteIDsArr[i]); } catch (Throwable t){ request.setAttribute("jahiaDisplayMessage", "An error occured while processing your request"); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "menu.jsp" ); } selSiteIDs.add(new Integer(selSiteID)); } } jahiaExtractName = (String) request.getParameter("jahiaExtractName"); jahiaExtractDesc = (String) request.getParameter("jahiaExtractDesc"); if ( jahiaExtractDesc == null || jahiaExtractDesc.trim().equals("") ){ jahiaExtractDesc = "No description"; } session.setAttribute(CLASS_NAME + "selSiteIDs",selSiteIDs); session.setAttribute(CLASS_NAME + "jahiaExtractName",jahiaExtractName); session.setAttribute(CLASS_NAME + "jahiaExtractDesc",jahiaExtractDesc); if (selSiteIDs.size()==0){ session.setAttribute(CLASS_NAME + "warningMsg", "At least one site must be selected"); displayExtract(request, response, session); return; } // set default values (if necessary)... if(jahiaExtractName == null) { jahiaExtractName = ""; } if(jahiaExtractDesc == null) { jahiaExtractDesc = ""; } // check user input validity if ( (jahiaExtractName == null) || (jahiaExtractName.trim().length()==0) ){ session.setAttribute(CLASS_NAME + "warningMsg", "Please complete requested informations"); err = true; } else if ( jahiaExtractName.indexOf(" ") != -1 ){ session.setAttribute(CLASS_NAME + "warningMsg", "The extraction name must be a unique word"); err = true; } else if ( !isExtractNameValid(jahiaExtractName) ){ session.setAttribute(CLASS_NAME + "warningMsg", "Invalid Characters in Extraction Name"); err = true; } else if ( checkExtractionFolder(jahiaExtractName) ){ session.setAttribute(CLASS_NAME + "warningMsg", "Please choose another Extraction Name"); err = true; } if ( !err ) { displayExtractConfirmation(request,response,session); } else { displayExtract(request, response, session); } return; } // Get confirmation so start extraction // retrieve previous form values... selSiteIDs = (Vector) session.getAttribute(CLASS_NAME + "selSiteIDs"); jahiaExtractName = (String) session.getAttribute(CLASS_NAME + "jahiaExtractName"); jahiaExtractDesc = (String) session.getAttribute(CLASS_NAME + "jahiaExtractDesc"); if ( selSiteIDs == null || jahiaExtractName == null || jahiaExtractDesc == null ){ request.setAttribute("jahiaDisplayMessage", "An error occured while processing your request\n"); throw new JahiaException("Error occured while processing your request", CLASS_NAME+": Invalid data in session", JahiaException.FILE_ERROR, JahiaException.ERROR); } // create the extraction folder extFolder = createExtractionFolder(jahiaExtractName); if ( !extFolder.isDirectory() ){ request.setAttribute("jahiaDisplayMessage", "An error occured while processing your request\n" +"Cannot create extraction folder"); throw new JahiaException("Error occured while processing your request", CLASS_NAME+": Cannot create extraction folder", JahiaException.FILE_ERROR, JahiaException.ERROR); } mSiteExtractionFolder = extFolder.getAbsolutePath(); // set request attributes... if ( err ){ displayExtract(request, response, session); } else { // change session time out to 1 hour ( the extraction can be very long !) int timeOut = session.getMaxInactiveInterval(); try { session.setMaxInactiveInterval(7200); try { jahiaLock = Jahia.getLock(user,session); if ( jahiaLock == null ){ session.setAttribute(CLASS_NAME + "jahiaDisplayMessage", "Cannot lock jahia in exclusive access mode"); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "menu.jsp" ); return; } } catch ( JahiaException je ){ session.setAttribute(CLASS_NAME + "jahiaDisplayMessage", je.getMessage()); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "menu.jsp" ); return; } // start extraction here JahiaConsole.println(CLASS_NAME+".processExtract", "start extract " + selSiteIDs.size() + " sites");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -