List of usage examples for org.apache.commons.fileupload.servlet ServletFileUpload setSizeMax
public void setSizeMax(long sizeMax)
From source file:psiprobe.controllers.deploy.UploadWarController.java
@Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { if (FileUploadBase.isMultipartContent(new ServletRequestContext(request))) { File tmpWar = null;/*from www . j a va2s.c om*/ String contextName = null; boolean update = false; boolean compile = false; boolean discard = false; // parse multipart request and extract the file FileItemFactory factory = new DiskFileItemFactory(1048000, new File(System.getProperty("java.io.tmpdir"))); ServletFileUpload upload = new ServletFileUpload(factory); upload.setSizeMax(-1); upload.setHeaderEncoding(StandardCharsets.UTF_8.name()); try { List<FileItem> fileItems = upload.parseRequest(request); for (FileItem fi : fileItems) { if (!fi.isFormField()) { if (fi.getName() != null && fi.getName().length() > 0) { tmpWar = new File(System.getProperty("java.io.tmpdir"), FilenameUtils.getName(fi.getName())); fi.write(tmpWar); } } else if ("context".equals(fi.getFieldName())) { contextName = fi.getString(); } else if ("update".equals(fi.getFieldName()) && "yes".equals(fi.getString())) { update = true; } else if ("compile".equals(fi.getFieldName()) && "yes".equals(fi.getString())) { compile = true; } else if ("discard".equals(fi.getFieldName()) && "yes".equals(fi.getString())) { discard = true; } } } catch (Exception e) { logger.error("Could not process file upload", e); request.setAttribute("errorMessage", getMessageSourceAccessor() .getMessage("probe.src.deploy.war.uploadfailure", new Object[] { e.getMessage() })); if (tmpWar != null && tmpWar.exists() && !tmpWar.delete()) { logger.error("Unable to delete temp war file"); } tmpWar = null; } String errMsg = null; if (tmpWar != null) { try { if (tmpWar.getName().endsWith(".war")) { if (contextName == null || contextName.length() == 0) { String warFileName = tmpWar.getName().replaceAll("\\.war$", ""); contextName = "/" + warFileName; } contextName = getContainerWrapper().getTomcatContainer().formatContextName(contextName); /* * pass the name of the newly deployed context to the presentation layer using this name * the presentation layer can render a url to view compilation details */ String visibleContextName = "".equals(contextName) ? "/" : contextName; request.setAttribute("contextName", visibleContextName); if (update && getContainerWrapper().getTomcatContainer().findContext(contextName) != null) { logger.debug("updating {}: removing the old copy", contextName); getContainerWrapper().getTomcatContainer().remove(contextName); } if (getContainerWrapper().getTomcatContainer().findContext(contextName) == null) { // move the .war to tomcat application base dir String destWarFilename = getContainerWrapper().getTomcatContainer() .formatContextFilename(contextName); File destWar = new File(getContainerWrapper().getTomcatContainer().getAppBase(), destWarFilename + ".war"); FileUtils.moveFile(tmpWar, destWar); // let Tomcat know that the file is there getContainerWrapper().getTomcatContainer().installWar(contextName, new URL("jar:" + destWar.toURI().toURL().toString() + "!/")); Context ctx = getContainerWrapper().getTomcatContainer().findContext(contextName); if (ctx == null) { errMsg = getMessageSourceAccessor().getMessage("probe.src.deploy.war.notinstalled", new Object[] { visibleContextName }); } else { request.setAttribute("success", Boolean.TRUE); // Logging action Authentication auth = SecurityContextHolder.getContext().getAuthentication(); String name = auth.getName(); // get username logger logger.info(getMessageSourceAccessor().getMessage("probe.src.log.deploywar"), name, contextName); if (discard) { getContainerWrapper().getTomcatContainer().discardWorkDir(ctx); logger.info(getMessageSourceAccessor().getMessage("probe.src.log.discardwork"), name, contextName); } if (compile) { Summary summary = new Summary(); summary.setName(ctx.getName()); getContainerWrapper().getTomcatContainer().listContextJsps(ctx, summary, true); request.getSession(false).setAttribute(DisplayJspController.SUMMARY_ATTRIBUTE, summary); request.setAttribute("compileSuccess", Boolean.TRUE); } } } else { errMsg = getMessageSourceAccessor().getMessage("probe.src.deploy.war.alreadyExists", new Object[] { visibleContextName }); } } else { errMsg = getMessageSourceAccessor().getMessage("probe.src.deploy.war.notWar.failure"); } } catch (Exception e) { errMsg = getMessageSourceAccessor().getMessage("probe.src.deploy.war.failure", new Object[] { e.getMessage() }); logger.error("Tomcat throw an exception when trying to deploy", e); } finally { if (errMsg != null) { request.setAttribute("errorMessage", errMsg); } if (tmpWar.exists() && !tmpWar.delete()) { logger.error("Unable to delete temp war file"); } } } } return new ModelAndView(new InternalResourceView(getViewName())); }
From source file:rva.administrator.ASRepFileUpload.java
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { // Check that we have a file upload request isMultipart = ServletFileUpload.isMultipartContent(request); response.setContentType("text/html"); java.io.PrintWriter out = response.getWriter(); if (!isMultipart) { out.println("<html>"); out.println("<head>"); out.println("<title>Servlet upload</title>"); out.println("</head>"); out.println("<body>"); out.println("<p>No file uploaded</p>"); out.println("</body>"); out.println("</html>"); return;/*w ww . j av a 2 s . c om*/ } DiskFileItemFactory factory = new DiskFileItemFactory(); // maximum size that will be stored in memory factory.setSizeThreshold(maxMemSize); // Location to save data that is larger than maxMemSize. factory.setRepository(new File("c:\\temp")); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // maximum file size to be uploaded. upload.setSizeMax(maxFileSize); try { // Parse the request to get file items. List fileItems = upload.parseRequest(request); // Process the uploaded file items Iterator i = fileItems.iterator(); out.println("<html>"); out.println("<head>"); out.println("<title>Servlet upload</title>"); out.println("</head>"); out.println("<body>"); while (i.hasNext()) { FileItem fi = (FileItem) i.next(); if (!fi.isFormField()) { // Get the uploaded file parameters String fieldName = fi.getFieldName(); String fileName = fi.getName(); String contentType = fi.getContentType(); boolean isInMemory = fi.isInMemory(); long sizeInBytes = fi.getSize(); // Write the file if (fileName.lastIndexOf("\\") >= 0) { file = new File(filePath + fileName.substring(fileName.lastIndexOf("\\"))); } else { file = new File(filePath + fileName.substring(fileName.lastIndexOf("\\") + 1)); } fi.write(file); String upfile = filePath + fileName; ReadExcels.readExcels(upfile); out.println("<html>"); out.println("<body>"); HttpSession session = request.getSession(); response.sendRedirect("fileuploading.jsp"); session.setAttribute("filepathas", upfile); // RequestDispatcher rd=request.getRequestDispatcher("fileuploading.jsp"); // rd.include(request, response); //out.println("Uploaded Filename:" +upfile+ "<br>"); out.println("</body>"); out.println("</html>"); } } out.println("</body>"); out.println("</html>"); } catch (Exception ex) { System.out.println(ex); } }
From source file:rva.administrator.DTTRepFileUpload.java
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { // Check that we have a file upload request isMultipart = ServletFileUpload.isMultipartContent(request); response.setContentType("text/html"); java.io.PrintWriter out = response.getWriter(); if (!isMultipart) { out.println("<html>"); out.println("<head>"); out.println("<title>Servlet upload</title>"); out.println("</head>"); out.println("<body>"); out.println("<p>No file uploaded</p>"); out.println("</body>"); out.println("</html>"); return;// ww w .ja v a2s .c o m } DiskFileItemFactory factory = new DiskFileItemFactory(); // maximum size that will be stored in memory factory.setSizeThreshold(maxMemSize); // Location to save data that is larger than maxMemSize. factory.setRepository(new File("c:\\temp")); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // maximum file size to be uploaded. upload.setSizeMax(maxFileSize); try { // Parse the request to get file items. List fileItems = upload.parseRequest(request); // Process the uploaded file items Iterator i = fileItems.iterator(); out.println("<html>"); out.println("<head>"); out.println("<title>Servlet upload</title>"); out.println("</head>"); out.println("<body>"); while (i.hasNext()) { FileItem fi = (FileItem) i.next(); if (!fi.isFormField()) { // Get the uploaded file parameters String fieldName = fi.getFieldName(); String fileName = fi.getName(); String contentType = fi.getContentType(); boolean isInMemory = fi.isInMemory(); long sizeInBytes = fi.getSize(); // Write the file if (fileName.lastIndexOf("\\") >= 0) { file = new File(filePath + fileName.substring(fileName.lastIndexOf("\\"))); } else { file = new File(filePath + fileName.substring(fileName.lastIndexOf("\\") + 1)); } fi.write(file); String upfile = filePath + fileName; new ReadDttReport().readDTTReport(upfile); out.println("<html>"); out.println("<body>"); HttpSession session = request.getSession(); response.sendRedirect("dttreportfileupload.jsp"); session.setAttribute("filepathdtt", upfile); // RequestDispatcher rd=request.getRequestDispatcher("fileuploading.jsp"); // rd.include(request, response); //out.println("Uploaded Filename:" +upfile+ "<br>"); out.println("</body>"); out.println("</html>"); } } out.println("</body>"); out.println("</html>"); } catch (Exception ex) { System.out.println(ex); } }
From source file:rva.taskinsert.RetelLog.java
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { // Check that we have a file upload request HttpSession session = request.getSession(); LogBean lb = (LogBean) session.getAttribute("currloginsession"); String performdate = (String) session.getAttribute("logindate"); String empname = lb.getAuditorname(); isMultipart = ServletFileUpload.isMultipartContent(request); response.setContentType("text/html"); java.io.PrintWriter out = response.getWriter(); // out.println(isMultipart); if (!isMultipart) { out.println("<html>"); out.println("<head>"); out.println("<title>Servlet upload</title>"); out.println("</head>"); out.println("<body>"); out.println("<p>No file uploaded</p>"); out.println("</body>"); out.println("</html>"); return;/*from w ww. ja va 2 s . c o m*/ } DiskFileItemFactory factory = new DiskFileItemFactory(); // maximum size that will be stored in memory factory.setSizeThreshold(maxMemSize); // Location to save data that is larger than maxMemSize. factory.setRepository(new File("c:\\temp")); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // maximum file size to be uploaded. upload.setSizeMax(maxFileSize); try { // Parse the request to get file items. List fileItems = upload.parseRequest(request); // Process the uploaded file items Iterator i = fileItems.iterator(); out.println("<html>"); out.println("<head>"); out.println("<title>Servlet upload</title>"); out.println("</head>"); out.println("<body>"); while (i.hasNext()) { FileItem fi = (FileItem) i.next(); if (!fi.isFormField()) { // Get the uploaded file parameters String fieldName = fi.getFieldName(); String fileName = fi.getName(); String contentType = fi.getContentType(); boolean isInMemory = fi.isInMemory(); long sizeInBytes = fi.getSize(); // Write the file if (fileName.lastIndexOf("\\") >= 0) { file = new File(filePath + fileName.substring(fileName.lastIndexOf("\\"))); } else { file = new File(filePath + fileName.substring(fileName.lastIndexOf("\\") + 1)); } fi.write(file); String upfile = filePath + fileName; RetFileRead.readExcels(upfile, empname, performdate); out.println("<html>"); out.println("<body>"); //HttpSession session=request.getSession(); response.sendRedirect("reteltaskinsert.jsp"); session.setAttribute("filepathret", upfile); // RequestDispatcher rd=request.getRequestDispatcher("fileuploading.jsp"); // rd.include(request, response); //out.println("Uploaded Filename:" +upfile+ "<br>"); out.println("</body>"); out.println("</html>"); } } out.println("File3"); out.println("</body>"); out.println("</html>"); } catch (Exception ex) { System.out.println(ex); } }
From source file:sai_cas.servlet.CrossMatchServlet.java
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { PrintWriter out = response.getWriter(); String cat = null, tab = null, radString = null, raColumn = null, decColumn = null, formatString = null; formats format;// w w w. java 2 s . com List<FileItem> fileItemList = null; FileItemFactory factory = new DiskFileItemFactory(); try { ServletFileUpload sfu = new ServletFileUpload(factory); sfu.setSizeMax(50000000); /* Request size <= 50Mb */ fileItemList = sfu.parseRequest(request); } catch (FileUploadException e) { throw new ServletException(e.getMessage()); /* Nothing ...*/ } FileItem fi = null; for (FileItem fi0 : fileItemList) { if (fi0.getFieldName().equals("file"))//(!fi0.isFormField()) { fi = fi0; } if (fi0.getFieldName().equals("tab"))//(!fi0.isFormField()) { tab = fi0.getString(); } if (fi0.getFieldName().equals("cat"))//(!fi0.isFormField()) { cat = fi0.getString(); } if (fi0.getFieldName().equals("rad"))//(!fi0.isFormField()) { radString = fi0.getString(); } if (fi0.getFieldName().equals("racol"))//(!fi0.isFormField()) { raColumn = fi0.getString(); } if (fi0.getFieldName().equals("deccol"))//(!fi0.isFormField()) { decColumn = fi0.getString(); } if (fi0.getFieldName().equals("format"))//(!fi0.isFormField()) { formatString = fi0.getString(); } } if ((formatString == null) || (formatString.equalsIgnoreCase("votable"))) { format = formats.VOTABLE; } else if (formatString.equalsIgnoreCase("CSV")) { format = formats.CSV; } else { format = formats.VOTABLE; } QueryResultsOutputter qro = null; CSVQueryResultsOutputter csvqro = null; VOTableQueryResultsOutputter voqro = null; switch (format) { case CSV: response.setContentType("text/csv"); csvqro = new CSVQueryResultsOutputter(null); qro = csvqro; break; case VOTABLE: response.setContentType("text/xml"); voqro = new VOTableQueryResultsOutputter(); qro = voqro; break; } File uploadedFile = null; Connection conn = null; DBInterface dbi = null; try { double rad = 0; String inputFilename = fi.getName(); rad = Double.parseDouble(radString); if (fi == null) { throw new CrossMatchServletException("File should be specified" + fileItemList.size()); } long size = fi.getSize(); if (size > 10000000) { throw new CrossMatchServletException("File is too big"); } if (size == 0) { throw new CrossMatchServletException("File must not be empty"); } if (format.equals(formats.CSV)) { if ((raColumn == null) || (decColumn == null)) { throw new CrossMatchServletException( "When you use the CSV format, you must specify which columns contain RA and DEC"); } } uploadedFile = File.createTempFile("crossmatch", ".dat", new File("/tmp/")); try { fi.write(uploadedFile); } catch (Exception e) { throw new CrossMatchServletException("Error in writing your data in the temporary file"); } logger.debug("File written"); String[] userPasswd = sai_cas.Parameters.getDefaultTempDBUserPasswd(); String tempUser = userPasswd[0]; String tempPasswd = userPasswd[1]; conn = DBConnection.getPooledPerUserConnection(tempUser, tempPasswd); dbi = new DBInterface(conn, tempUser); Votable vot = null; switch (format) { case CSV: vot = Votable.getVOTableFromCSV(uploadedFile); if ((!vot.checkColumnExistance(raColumn)) || (!vot.checkColumnExistance(decColumn))) { throw new CrossMatchServletException( "The column names specified as RA and DEC should be present in the CSV file"); } break; case VOTABLE: vot = new Votable(uploadedFile); break; } vot.randomizeResourceName(); vot.randomizeTableName(); String userDataSchema = dbi.getUserDataSchemaName(); String tableName = vot.insertDataToDB(dbi, userDataSchema); dbi.analyze(userDataSchema, tableName); String[] raDecArray = dbi.getRaDecColumns(cat, tab); String[] raDecArray1 = null; switch (format) { case VOTABLE: raDecArray1 = dbi.getRaDecColumnsFromUCD(userDataSchema, tableName); if (raDecArray1 == null) { throw new CrossMatchServletException("Error occured: " + "You must have the columns in the table having the UCD of alpha or delta ('POS_EQ_RA_MAIN', 'POS_EQ_DEC_MAIN') to do the crossmatch"); } break; case CSV: raDecArray1 = new String[2]; raDecArray1[0] = raColumn; raDecArray1[1] = decColumn; } String outputFilename = cat + "." + (tab == null ? "" : tab) + "_" + String.format(Locale.US, "%.4f", rad) + "_" + inputFilename; response.setHeader("Content-Disposition", "attachment; filename=" + outputFilename); dbi.executeQuery("select * from " + userDataSchema + "." + tableName + " AS a LEFT JOIN " + cat + "." + tab + " AS b " + "ON q3c_join(a." + raDecArray1[0] + ",a." + raDecArray1[1] + ",b." + raDecArray[0] + ",b." + raDecArray[1] + "," + rad + ")"); if (format.equals(formats.VOTABLE)) { voqro.setResource(cat + "_" + fi.getName()); voqro.setResourceDescription("This is the table obtained by " + "crossmatching the table " + cat + "." + tab + " with the " + "user supplied table from the file " + fi.getName() + "\n" + "Radius of the crossmatch: " + rad + "deg"); voqro.setTable("main"); } qro.print(out, dbi); } catch (VotableException e) { qro.printError(out, "Error occured: " + e.getMessage() + "Cannot read the VOTable, probably it is not well formed (remember that you must have 'xmlns=\"http://www.ivoa.net/xml/VOTable/v1.1\"' in the VOTABLE tag)"); } catch (NumberFormatException e) { qro.printError(out, "Error occured: " + e.getMessage()); } catch (CrossMatchServletException e) { qro.printError(out, "Error occured: " + e.getMessage()); } catch (DBException e) { logger.error("DBException " + e); StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); e.printStackTrace(pw); qro.printError(out, "Error occured: " + e + "\nCause: " + e.getCause() + "\nTrace: " + sw); } catch (SQLException e) { logger.error("SQLException " + e); StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); e.printStackTrace(pw); qro.printError(out, "Error occured: " + e + "\nCause: " + e.getCause() + "\nTrace: " + sw); } finally { DBInterface.close(dbi, conn, false); /* Always rollback */ try { if (uploadedFile != null) { uploadedFile.delete(); } } catch (Exception e) { logger.error("Failed to delete the temporary file: " + uploadedFile.getCanonicalPath()); } } }
From source file:sai_cas.servlet.UploadServlet.java
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { PrintWriter out = response.getWriter(); String user = null, password = null; String catalogString = null, formatString = null; File uploadedFile = null;// w w w. j a va 2s . com Connection conn = null; DBInterface dbi = null; List<FileItem> fileItemList = null; FileItemFactory factory = new DiskFileItemFactory(); try { ServletFileUpload sfu = new ServletFileUpload(factory); sfu.setSizeMax(50000000); /* Request size <= 50Mb */ fileItemList = sfu.parseRequest(request); } catch (FileUploadException e) { throw new ServletException(e.getMessage()); /* Nothing ...*/ } FileItem fi = null; for (FileItem fi0 : fileItemList) { if (fi0.getFieldName().equals("file"))//(!fi0.isFormField()) { fi = fi0; } if (fi0.getFieldName().equals("user"))//(!fi0.isFormField()) { user = fi0.getString(); } if (fi0.getFieldName().equals("password"))//(!fi0.isFormField()) { password = fi0.getString(); } /* if (fi0.getFieldName().equals("rad"))//(!fi0.isFormField()) { radString = fi0.getString(); } if (fi0.getFieldName().equals("racol"))//(!fi0.isFormField()) { raColumn = fi0.getString(); } if (fi0.getFieldName().equals("deccol"))//(!fi0.isFormField()) { decColumn = fi0.getString(); } */ if (fi0.getFieldName().equals("format"))//(!fi0.isFormField()) { formatString = fi0.getString(); } } try { Votable vot; if (fi == null) { throw new ServletException("File must be specified" + fileItemList.size()); } if (user == null) { throw new ServletException("User name must be specified" + fileItemList.size()); } if (password == null) { throw new ServletException("Password must be specified" + fileItemList.size()); } long size = fi.getSize(); if (size > 10000000) { throw new UploadServletException("File is too big"); } if (size == 0) { throw new UploadServletException("File must not be empty"); } uploadedFile = File.createTempFile("crossmatch", ".dat", new File("/tmp/")); try { fi.write(uploadedFile); } catch (Exception e) { throw new UploadServletException("Error in writing your data in the temporary file"); } logger.debug("File written"); try { conn = DBConnection.getPooledPerUserConnection(user, password); dbi = new DBInterface(conn, user); String userDataSchema = dbi.getUserDataSchemaName(); vot = new Votable(uploadedFile); vot.insertDataToDB(dbi, userDataSchema); } catch (SQLException e) { logger.error("Got an exception... ", e); throw new UploadServletException(e.getMessage()); } catch (VotableException e) { logger.error("Got an Votable exception... ", e); throw new UploadServletException(e.getMessage()); } catch (DBException e) { logger.error("Got an DB exception... ", e); throw new UploadServletException(e.getMessage()); } DBInterface.close(dbi, conn); out.println("Success"); } catch (UploadServletException e) { out.println("Upload failed: " + e.getMessage()); DBInterface.close(dbi, conn, false); } finally { try { uploadedFile.delete(); } catch (Exception e) { } } }
From source file:sbml.test.UploadUnzipTest.java
/** * Interface function invoked by uploadresults.jsp. *///from www. j av a2s. c om public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Store these because they're unique per session & we need them often. httpRequest = request; httpResponse = response; OnlineSTS.logInvocation(request); // An upload from uploadresults.jsp is supposed to be a multipart // request. If that's not what we got here, toss an error. if (!ServletFileUpload.isMultipartContent(request)) { propagateError(SERVER_ERROR, "Didn't get multipart content."); return; } // Create the user's upload directory. uploadDir = createUploadDir(); // Set up objects that will extract the user's upload. refCasesDir = getReferenceCasesDir(); DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setRepository(uploadDir); factory.setSizeThreshold(1 * 1024 * 1024); // In bytes. ServletFileUpload reqHandler = new ServletFileUpload(factory); // Result files for the current 927 test suite cases adds up to ~1 // MB. Adding some room for growth, if we get something > 10 MB, // something's wrong. reqHandler.setSizeMax(10 * 1024 * 1024); // Unzip the user's uploaded archive. This returns an ordered list // of the CSV file names extracted as a result. TreeSet<UserTestCase> userCases = unzipUserArchive(reqHandler); // If we managed to extract data files from the user's upload, test // them, get the results, & dispatch them to the results JSP page. if (userCases != null) try { TreeMap<Integer, UserTestResult> results = performAnalysis(userCases); OnlineSTS.logInfo(request, "Returning results to user."); httpRequest.setAttribute("testResults", results); RequestDispatcher dispatcher = httpRequest.getRequestDispatcher(RESULTS_PAGE); dispatcher.forward(httpRequest, httpResponse); /* In the future, if rewrite things to use a redirect: String where = OnlineSTS.getServiceRootURL(request) + RESULTS_PAGE; response.setStatus(307); response.setHeader("Location", where); response.sendRedirect(where); */ } catch (Exception e) { e.printStackTrace(); httpResponse.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); } }
From source file:servlet.BPMNAnimationServlet.java
@Override protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { PrintWriter out = null;/*from www . j a va 2 s. c om*/ List<Log> logs = new ArrayList<>(); Set<XLog> xlogs = new HashSet<>(); //Set<XLog> optimizedLogs = new HashSet<>(); String jsonData = ""; Definitions bpmnDefinition = null; if (!ServletFileUpload.isMultipartContent(req)) { res.getWriter().println("Does not support!"); // if not, we stop here return; } /* * ------------------------------------------ * Import event log files * logs variable contains list of imported logs * ------------------------------------------ */ // configures some settings DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(THRESHOLD_SIZE); factory.setRepository(new File(System.getProperty("java.io.tmpdir"))); ServletFileUpload upload = new ServletFileUpload(factory); upload.setFileSizeMax(MAX_FILE_SIZE); upload.setSizeMax(REQUEST_SIZE); // constructs the directory path to store upload file String uploadPath = getServletContext().getRealPath("") + File.separator + UPLOAD_DIRECTORY; // creates the directory if it does not exist File uploadDir = new File(uploadPath); if (!uploadDir.exists()) { uploadDir.mkdir(); } try { // parses the request's content to extract file data List<FileItem> formItems = upload.parseRequest(req); Iterator iter = formItems.iterator(); // iterates over form's fields while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); // processes only fields that are not form fields if (!item.isFormField()) { String fileName = new File(item.getName()).getName(); String filePath = uploadPath + File.separator + fileName; File storeFile = new File(filePath); // saves the file on disk item.write(storeFile); LOGGER.info("Finish writing uploaded file to temp dir: " + filePath); LOGGER.info("Start importing file: " + filePath); item.getInputStream(); OpenLogFilePlugin logImporter = new OpenLogFilePlugin(); XLog xlog = (XLog) logImporter.importFile(storeFile); // color field must follow the log file item = (FileItem) iter.next(); assert item.isFormField(); assert "color".equals(item.getFieldName()); LOGGER.info("Log color: " + item.getString()); String color = item.getString(); // Record the log Log log = new Log(); log.fileName = fileName; log.xlog = xlog; log.color = item.getString(); logs.add(log); xlogs.add(xlog); } else { if (item.getFieldName().equals("json")) { jsonData = item.getString(); } } } /* * ------------------------------------------ * Convert JSON map to BPMN objects * ------------------------------------------ */ LOGGER.info("Then, convert JSON to BPMN map objects"); if (!jsonData.equals("")) { bpmnDefinition = this.getBPMNfromJson(jsonData); LOGGER.info("BPMN Diagram Definition" + bpmnDefinition.toString()); } else { LOGGER.info("JSON data sent to server is empty"); } /* * ------------------------------------------ * Optimize logs and process model * ------------------------------------------ */ Optimizer optimizer = new Optimizer(); for (Log log : logs) { //optimizedLogs.add(optimizer.optimizeLog(log.xlog)); log.xlog = optimizer.optimizeLog(log.xlog); } bpmnDefinition = optimizer.optimizeProcessModel(bpmnDefinition); /* * ------------------------------------------ * Check BPMN diagram validity and replay log * ------------------------------------------ */ //Reading backtracking properties for testing String propertyFile = "/editor/animation/properties.xml"; InputStream is = getServletContext().getResourceAsStream(propertyFile); Properties props = new Properties(); props.loadFromXML(is); ReplayParams params = new ReplayParams(); params.setMaxCost(Double.valueOf(props.getProperty("MaxCost")).doubleValue()); params.setMaxDepth(Integer.valueOf(props.getProperty("MaxDepth")).intValue()); params.setMinMatchPercent(Double.valueOf(props.getProperty("MinMatchPercent")).doubleValue()); params.setMaxMatchPercent(Double.valueOf(props.getProperty("MaxMatchPercent")).doubleValue()); params.setMaxConsecutiveUnmatch(Integer.valueOf(props.getProperty("MaxConsecutiveUnmatch")).intValue()); params.setActivityMatchCost(Double.valueOf(props.getProperty("ActivityMatchCost")).doubleValue()); params.setActivitySkipCost(Double.valueOf(props.getProperty("ActivitySkipCost")).doubleValue()); params.setEventSkipCost(Double.valueOf(props.getProperty("EventSkipCost")).doubleValue()); params.setNonActivityMoveCost(Double.valueOf(props.getProperty("NonActivityMoveCost")).doubleValue()); params.setTraceChunkSize(Integer.valueOf(props.getProperty("TraceChunkSize")).intValue()); params.setMaxNumberOfNodesVisited( Integer.valueOf(props.getProperty("MaxNumberOfNodesVisited")).intValue()); params.setMaxActivitySkipPercent( Double.valueOf(props.getProperty("MaxActivitySkipPercent")).doubleValue()); params.setMaxNodeDistance(Integer.valueOf(props.getProperty("MaxNodeDistance")).intValue()); params.setTimelineSlots(Integer.valueOf(props.getProperty("TimelineSlots")).intValue()); params.setTotalEngineSeconds(Integer.valueOf(props.getProperty("TotalEngineSeconds")).intValue()); params.setProgressCircleBarRadius( Integer.valueOf(props.getProperty("ProgressCircleBarRadius")).intValue()); params.setSequenceTokenDiffThreshold( Integer.valueOf(props.getProperty("SequenceTokenDiffThreshold")).intValue()); params.setMaxTimePerTrace(Long.valueOf(props.getProperty("MaxTimePerTrace")).longValue()); params.setMaxTimeShortestPathExploration( Long.valueOf(props.getProperty("MaxTimeShortestPathExploration")).longValue()); params.setExactTraceFitnessCalculation(props.getProperty("ExactTraceFitnessCalculation")); params.setBacktrackingDebug(props.getProperty("BacktrackingDebug")); params.setExploreShortestPathDebug(props.getProperty("ExploreShortestPathDebug")); params.setCheckViciousCycle(props.getProperty("CheckViciousCycle")); params.setStartEventToFirstEventDuration( Integer.valueOf(props.getProperty("StartEventToFirstEventDuration")).intValue()); params.setLastEventToEndEventDuration( Integer.valueOf(props.getProperty("LastEventToEndEventDuration")).intValue()); Replayer replayer = new Replayer(bpmnDefinition, params); ArrayList<AnimationLog> replayedLogs = new ArrayList(); if (replayer.isValidProcess()) { LOGGER.info("Process " + bpmnDefinition.getId() + " is valid"); EncodeTraces.getEncodeTraces().read(xlogs); //build a mapping from traceId to charstream for (Log log : logs) { AnimationLog animationLog = replayer.replay(log.xlog, log.color); //AnimationLog animationLog = replayer.replayWithMultiThreading(log.xlog, log.color); if (animationLog != null && !animationLog.isEmpty()) { replayedLogs.add(animationLog); } } } else { LOGGER.info(replayer.getProcessCheckingMsg()); } /* * ------------------------------------------ * Return Json animation * ------------------------------------------ */ LOGGER.info("Start sending back JSON animation script to browser"); if (replayedLogs.size() > 0) { out = res.getWriter(); res.setContentType("text/html"); // Ext2JS's file upload requires this rather than "application/json" res.setStatus(200); //To be replaced AnimationJSONBuilder jsonBuilder = new AnimationJSONBuilder(replayedLogs, replayer, params); JSONObject json = jsonBuilder.parseLogCollection(); json.put("success", true); // Ext2JS's file upload requires this flag String string = json.toString(); //LOGGER.info(string); jsonBuilder.clear(); out.write(string); } else { /* out = res.getWriter(); res.setContentType("text/html"); res.setStatus(204); out.write(""); */ String json = "{success:false, errors: {errormsg: '" + "No logs can be played." + "'}}"; res.setContentType("text/html; charset=UTF-8"); res.getWriter().print(json); } } catch (Exception e) { try { LOGGER.severe(e.toString()); /* res.setStatus(500); res.setContentType("text/plain"); PrintWriter writer = new PrintWriter(out); writer.println("Failed to generate animation JSON script " + e); e.printStackTrace(writer); e.printStackTrace(); res.getWriter().write(e.toString()); */ String json = "{success:false, errors: {errormsg: '" + e.getMessage() + "'}}"; res.setContentType("text/html; charset=UTF-8"); res.getWriter().print(json); } catch (Exception el) { System.err.println("Original exception was:"); e.printStackTrace(); System.err.println("Exception in exception handler was:"); el.printStackTrace(); } } }
From source file:servlet.itemdescription.java
/** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> * methods./*from ww w . ja v a 2s . c o m*/ * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // location to store file uploaded final String UPLOAD_DIRECTORY = "upload"; // upload settings final int MEMORY_THRESHOLD = 1024 * 1024 * 3; // 3MB final int MAX_FILE_SIZE = 1024 * 1024 * 40; // 40MB final int MAX_REQUEST_SIZE = 1024 * 1024 * 50; // 50MB //---------------------------------------------------------------------- //response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); EntityManagerFactory emf = null; EntityManager em = null; try { emf = Persistence.createEntityManagerFactory(cons.entityName); em = emf.createEntityManager(); ItemDescriptionJpaController controller = new ItemDescriptionJpaController(emf); boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (isMultipart) { String id = ""; String code = ""; String description = ""; String itemType = ""; String fileName = ""; String unitId = ""; String generId = ""; String operation = ""; //------------------------------------------------------------------------------------------------------------------------------------- // File upload try { // Create a factory for disk-based file items DiskFileItemFactory factory = new DiskFileItemFactory(); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); upload.setFileSizeMax(MAX_FILE_SIZE); // sets maximum size of request (include file + form data) upload.setSizeMax(MAX_REQUEST_SIZE); // constructs the directory path to store upload file // this path is relative to application's directory // String uploadPath = getServletContext().getRealPath("") // + File.separator + UPLOAD_DIRECTORY; String uploadPath = "E:\\insiderUploads"; // creates the directory if it does not exist File uploadDir = new File(uploadPath); if (!uploadDir.exists()) { uploadDir.mkdir(); } // Parse the request List<FileItem> items = upload.parseRequest(request); Iterator<FileItem> iter = items.iterator(); while (iter.hasNext()) { FileItem item = iter.next(); if (item.isFormField()) { //These are form fields String fieldName = item.getFieldName(); String fieldValue = item.getString(); if (fieldName.equalsIgnoreCase("honga")) { operation = request.getParameter("honga"); System.out.println("operation: " + operation); } else if (fieldName.equalsIgnoreCase("operation")) { operation = request.getParameter("operation"); System.out.println("operation: " + operation); } //----------------- Check Add Fields ------------------------- else if (fieldName.equalsIgnoreCase("id")) { id = request.getParameter("id"); System.out.println("id " + id); } else if (fieldName.equalsIgnoreCase("code")) { code = fieldValue; System.out.println("code " + code); } else if (fieldName.equalsIgnoreCase("description")) { description = fieldValue; System.out.println("description: " + description); } else if (fieldName.equalsIgnoreCase("item_type")) { itemType = fieldValue; System.out.println("item_type: " + itemType); } else if (fieldName.equalsIgnoreCase("unit_id")) { unitId = fieldValue; System.out.println("unit_id: " + itemType); } if (fieldName.equalsIgnoreCase("gener_id")) { generId = fieldValue; System.out.println("Genre: " + generId); } //----------------- Check Edit Fields ------------------------ else if (fieldName.equalsIgnoreCase("editItemDescriptionId")) { id = request.getParameter("editItemDescriptionId"); System.out.println("editItemDescriptionId: " + id); } else if (fieldName.equalsIgnoreCase("editItemCode")) { code = fieldValue; System.out.println("editItemCode " + code); } else if (fieldName.equalsIgnoreCase("editDescription")) { description = fieldValue; System.out.println("editDescription: " + description); } else if (fieldName.equalsIgnoreCase("editItemType")) { itemType = fieldValue; System.out.println("editItemType: " + itemType); } else if (fieldName.equalsIgnoreCase("editUnitId")) { unitId = fieldValue; System.out.println("editUnitId: " + itemType); } if (fieldName.equalsIgnoreCase("generId")) { generId = fieldValue; System.out.println("generId: " + generId); } } else // This is a file { fileName = item.getName(); System.out.println("FILE NAME: " + fileName); if (fileName != null && !fileName.isEmpty()) { String filePath = uploadPath + File.separator + fileName; File storeFile = new File(filePath); // saves the file on disk item.write(storeFile); request.setAttribute("message", "Upload has been done successfully!"); out.println("File Name: " + fileName); } else { continue; } } } // add the item to the database // if (operation.equalsIgnoreCase("add")) { em.getTransaction().begin(); ItemDescription itemDescription = new ItemDescription(); if (code != null) { itemDescription.setItemCode(new Integer(code)); } itemDescription.setItemDesc(description); itemDescription.setItemTypeId(new Integer(itemType)); itemDescription.setUnitId(new Integer(unitId)); itemDescription.setGenerId(new Integer(generId)); // itemDescription.setUpload(request.getParameter("file").getBytes()); itemDescription.setUploadFileName(fileName); controller.create(itemDescription); em.getTransaction().commit(); // } else if (operation.equalsIgnoreCase("edit")) { // em.getTransaction().begin(); // ItemDescription itemDescription = new ItemDescription(); // if (code != null) { // itemDescription.setItemCode(new Integer(code)); // } // // itemDescription.setItemDesc(description); // itemDescription.setItemTypeId(new Integer(itemType)); // itemDescription.setUnitId(new Integer(unitId)); // itemDescription.setGenerId(new Integer(generId)); //// itemDescription.setUpload(request.getParameter("file").getBytes()); // controller.edit(itemDescription); // em.getTransaction().commit(); // } response.sendRedirect("itemdesc.jsp"); } catch (FileUploadException ex) { Logger.getLogger(itemdescription.class.getName()).log(Level.SEVERE, null, ex); } //------------------------------------------------------------------------------------------------------------------------------------- } else if (request.getParameter("operation") != null && !request.getParameter("operation").isEmpty()) { String id = ""; String code = ""; String description = ""; String itemType = ""; String fileName = ""; String unitId = ""; String generId = ""; String operation = request.getParameter("operation"); String operationId = request.getParameter("operationId"); response.setContentType("application/json"); if (operation.equalsIgnoreCase("edit")) { //This is update operation System.out.println("UPDATE OPERATION"); operationId = request.getParameter("editItemDescriptionId"); code = request.getParameter("editItemCode"); description = request.getParameter("editDescription"); itemType = request.getParameter("editItemType"); unitId = request.getParameter("editUnitId"); generId = request.getParameter("generId"); System.out.println("Item ID: " + operationId + "Item Code: " + code + " | Desc: " + description + " | Item type: " + itemType + " | UnitId: " + unitId + " | Genre Id: " + generId); ItemDescription itemDescription = controller.findItemDescription(new Integer(operationId)); if (code != null) { itemDescription.setItemCode(new Integer(code)); } em.getTransaction().begin(); itemDescription.setItemDesc(description); itemDescription.setItemTypeId(new Integer(itemType)); itemDescription.setUnitId(new Integer(unitId)); itemDescription.setGenerId(new Integer(generId)); // itemDescription.setUpload(request.getParameter("file").getBytes()); controller.edit(itemDescription); em.getTransaction().commit(); response.sendRedirect("itemdesc.jsp"); } else if (operation.equalsIgnoreCase("delete")) {//This is delete operation System.out.println("DELETE OPERATION"); controller.destroy(new Integer(operationId)); ItemDescription item = controller.findItemDescription(new Integer(operationId)); if (item == null) {//Item is deleted from the database System.out.println("RECORD has been deleted"); out.print(convertMessageIntoJSON( new CustomMessage(100, "Record has been deleted successfully"))); } else {//couldn't delete item System.out.println("COULDN'T DELETE RECORD"); out.print(convertMessageIntoJSON(new CustomMessage(0, "Error, couldn't delete record"))); } } else if (operation.equalsIgnoreCase("showItemDescriptionDetails")) { int itemDescriptionId = Integer.parseInt(request.getParameter("operationId")); ItemDescription itemDescription = controller.findItemDescription(itemDescriptionId); if (itemDescription == null) {//Record not found out.print(JSONUtils .convertMessageIntoJSON(new dto.CustomMessage(404, "Error, No Such record!"))); } else {//Record found out.print(JSONUtils.convertItemDescriptionIntoJSON(ItemDescriptionWrapper .getItemDescriptionWrapper(100, "Record found successfully", itemDescription))); } } } else if (request.getParameter("save") != null) { em.getTransaction().begin(); ItemDescription id = new ItemDescription(); id.setItemCode(new Integer(request.getParameter("item_code"))); id.setItemDesc(request.getParameter("item_desc")); id.setItemTypeId(new Integer(request.getParameter("item_type_id"))); id.setUnitId(new Integer(request.getParameter("unit_id"))); id.setGenerId(new Integer(request.getParameter("gener_id"))); id.setUpload(request.getParameter("file").getBytes()); controller.create(id); em.getTransaction().commit(); response.sendRedirect("itemdesc.jsp"); } else if (request.getParameter("update") != null) { em.getTransaction().begin(); ItemDescription id = new ItemDescription(); id = controller.findItemDescription(new Integer(request.getParameter("edit_material_id").trim())); id.setItemCode(new Integer(request.getParameter("item_code"))); id.setItemDesc(request.getParameter("item_desc")); id.setItemTypeId(new Integer(request.getParameter("item_type_id"))); id.setUnitId(new Integer(request.getParameter("unit_id"))); id.setGenerId(new Integer(request.getParameter("gener_id"))); id.setUpload(request.getParameter("file").getBytes()); controller.edit(id); em.getTransaction().commit(); response.sendRedirect("itemdesc.jsp"); } else if (request.getParameter("del_item") != null) { if (request.getParameter("id_value_del").trim() != null) { em.getTransaction().begin(); controller.destroy(new Integer(request.getParameter("id_value_del").trim())); em.getTransaction().commit(); response.sendRedirect("itemdesc.jsp"); } } // request.setAttribute("generlist",findGenerEntities); // request.getRequestDispatcher("/gener.jsp").forward(request, response); } catch (Exception ex) { Logger.getLogger(itemdescription.class.getName()).log(Level.SEVERE, null, ex); } finally { out.close(); em.close(); emf.close(); } }
From source file:servlet.PreProcessServlet.java
/** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> * methods./*from w ww .j a va 2s .co m*/ * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { uploadRootPath = getServletContext().getInitParameter("file-upload"); File upload = new File(uploadRootPath); if (upload.exists()) { deleteFolderContent(upload); } createDirectoryIfNotExisting(uploadRootPath); String programRootPath = getServletContext().getInitParameter("program-root-path"); boolean isGeneral = false; String copyrightStoplist = ""; String customizedPackageList = ""; String projectName = ""; int topicCount = -1; String inputRootFilePath = uploadRootPath; String outputFilePath = programRootPath + "preprocessOutput/PreProcessTool"; File outputFile = new File(outputFilePath); if (outputFile.exists()) { deleteFolderContent(outputFile); } response.setContentType("text/html;charset=UTF-8"); try (PrintWriter out = response.getWriter()) { /* TODO output your page here. You may use following sample code. */ out.println("<!DOCTYPE html>"); out.println("<html lang=\"en\">"); out.println("<head>" + "<meta charset=\"utf-8\">" + "<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">" + "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">" + "<meta name=\"description\" content=\"\">" + "<meta name=\"author\" content=\"\">" + "<link rel=\"icon\" href=\"./image/analysis.jpg\">" + "<title>Programmer Assistor</title>" + "<link href=\"./css/bootstrap.min.css\" rel=\"stylesheet\">" + "<script src=\"./js/ie-emulation-modes-warning.js\">" + "</script><!-- Custom styles for this template -->" + "<link href=\"./css/list.css\" rel=\"stylesheet\">" + "</head>"); out.println("<body>" + "<div class=\"navbar-wrapper\">" + "<div class=\"container\">" + "<nav class=\"navbar navbar-inverse navbar-static-top\" role=\"navigation\">" + "<div class=\"container\">" + "<div class=\"navbar-header\">" + "<a class=\"navbar-brand\" href=\"home.html\">Programmer Assistor</a>" + "</div>" + "<div id=\"navbar\" class=\"navbar-collapse collapse\">" + "<ul class=\"nav navbar-nav\">" + "<li>" + "<a href=\"home.html\">Home </a>" + "</li>" + "<li>" + "<a href=\"help.html\">Help </a>" + "</li>" + "<li>" + "<a href=\"show.html\">Show </a>" + "</li>" + "<li>" + "<a href=\"search.html\">Search </a>" + "</li>" + "</ul>" + "</div>" + "</div>" + "</nav>" + "</div>" + "</div>"); out.println("<div class=\"container marketing\">"); out.println("<div class=\"row featurette files\" id=\"fileList\">"); out.println("<h2>1. Preprocessing </h2>"); out.println("<h3>Preprocessed Data Directory: </h3>"); out.println("<p>"); out.println(programRootPath + "preprocessOutput/PreProcessTool"); out.println("</p>"); out.println("<h3>Uploaded Files: </h3>"); isMultipart = ServletFileUpload.isMultipartContent(request); if (!isMultipart) { out.println("<p>the request isn't multipart</p>"); return; } DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(maxMemSize); // Location to save data that is larger than maxMemSize. factory.setRepository(new File(programRootPath, "temp")); ServletFileUpload uploadProcess = new ServletFileUpload(factory); uploadProcess.setSizeMax(maxFileSize); try { List fileItems = uploadProcess.parseRequest(request); Iterator i = fileItems.iterator(); while (i.hasNext()) { FileItem fi = (FileItem) i.next(); if (!fi.isFormField()) { String fileName = fi.getName(); file = new File(inputRootFilePath + fileName.replace('/', '-'));//replace all / to - fi.write(file); out.println("<p>"); out.println(fileName); out.println("</p>"); } else { String fieldName = fi.getFieldName(); String fieldValue = fi.getString(); if (fieldName.equals("general") && fieldValue.equals("on")) { isGeneral = true; } else if (fieldName.equals("project_type")) { if (fieldValue.equals("Drawing")) { libraryTypeCondition.remove("Drawing"); libraryTypeCondition.put("Drawing", true); } else if (fieldValue.equals("Modeling")) { libraryTypeCondition.remove("Modeling"); libraryTypeCondition.put("Modeling", true); } } else if (fieldName.equals("customizePackageInfoContent")) { String customizePackageInfoContent = fieldValue; customizedPackageList = customizePackageInfoContent.toLowerCase() .replaceAll("\\*|\n|[0-9]|,|;|`|'|\"", ""); customizedPackageList = customizedPackageList.replaceAll("\\(|\\)|-|//|:|~|/|\\.", " "); } else if (fieldName.equals("copyrightInfoContent")) { String copyrightInfoContent = fieldValue; copyrightInfoContent = copyrightInfoContent.replaceAll(".java", "java"); copyrightStoplist = copyrightInfoContent.toLowerCase() .replaceAll("\\*|\n|[0-9]|,|;|`|'|\"", ""); copyrightStoplist = copyrightStoplist.replaceAll("\\(|\\)|-|//|:|~|/|\\.", " "); } else if (fieldName.equals("projectNameContent")) { projectName = fieldValue; } else if (fieldName.equals("topicCountContent")) { topicCount = Integer.parseInt(fieldValue); } } } // out.println("<p>"+ copyrightStoplist.toString() +"</p>"); } catch (FileUploadException e) { // TODO Auto-generated catch block out.println("The size of files is too much, please upload files less than 50MB"); e.printStackTrace(); } catch (Exception ex) { out.println(ex); } PreProcessTool preProcessTool = new PreProcessTool(inputRootFilePath, outputFilePath, isGeneral, libraryTypeCondition, copyrightStoplist, customizedPackageList); preProcessTool.preProcess(); out.println("<h3 id = \"success\" class=\"fileHead\"> Successful Uploading and preprocessing!</h3>"); //topic modeling out.println("<p></p>"); out.println("<h2>2. Topic Modeling: </h2>"); out.println("<p>The project name: "); out.println(projectName); out.println("</p>"); out.println("<p> The number of topics: "); out.println(topicCount); out.println("</p>"); out.println("<h3 id=\"topModelingLogHeader\">Start Topic Modeling: </h3>"); out.println("<script>" + "window.wtx = window.setInterval(function () {" + "var div = document.getElementById('topModelingLog'); " + "div.scrollTop = div.scrollHeight; " + "div.scrollIntoView(true); " + "}, 100);" + "</script>"); out.println("<div id=\"topModelingLog\" style=\"height: 300px; overflow:scroll;\">"); Executor executor = new Executor(projectName, topicCount, new ProcessPrinter(out::println)); executor.run(); out.println("</div>"); out.println("<script>window.clearInterval(window.wtx);</script>"); //prepare for search File compositeFile = new File(programRootPath + "showFile/composition.txt"); String top3DocumentsFilePath = programRootPath + "showFile/top3Documents.txt"; Map<String, String> top3Documents = new HashMap<>(); Map<Integer, String[]> top3DocAndPer = new HashMap<>(); int totalFileNo = 0; try (InputStream inComposite = new FileInputStream(compositeFile.getPath()); BufferedReader readerComposite = new BufferedReader(new InputStreamReader(inComposite))) { String compositeLine = ""; while ((compositeLine = readerComposite.readLine()) != null) { totalFileNo++; } } try (InputStream inComposite = new FileInputStream(compositeFile.getPath()); BufferedReader readerComposite = new BufferedReader(new InputStreamReader(inComposite))) { String compositeLine = ""; Double[][] topicDocMatrix = new Double[topicCount][totalFileNo]; String[] fileNameList = new String[totalFileNo]; int fileNo = 0; while ((compositeLine = readerComposite.readLine()) != null) { String[] linePart = compositeLine.split("\t| "); String[] nameParts = linePart[1].split("/"); String textName = nameParts[nameParts.length - 1]; int lastIndexOfStrigula = textName.lastIndexOf('-'); if (lastIndexOfStrigula >= 0) { String fileName = textName.substring(0, lastIndexOfStrigula); fileNameList[fileNo] = fileName; } for (int i = 2; i < linePart.length; i++) { topicDocMatrix[i - 2][fileNo] = Double.parseDouble(linePart[i]); } fileNo++; } //find top3 document for each topic for (int i = 0; i < topicDocMatrix.length; i++) { double max1 = 0; String file1 = ""; double max2 = 0; String file2 = ""; double max3 = 0; String file3 = ""; for (int j = 0; j < topicDocMatrix[i].length; j++) { if (topicDocMatrix[i][j] > max1) { max3 = max2; max2 = max1; max1 = topicDocMatrix[i][j]; file1 = fileNameList[j]; } else if (topicDocMatrix[i][j] > max2) { max3 = max2; max2 = topicDocMatrix[i][j]; file2 = fileNameList[j]; } else if (topicDocMatrix[i][j] > max3) { max3 = topicDocMatrix[i][j]; file3 = fileNameList[j]; } } String[] docAndPerList = new String[3]; docAndPerList[0] = file1 + "\t" + max1; docAndPerList[1] = file2 + "\t" + max2; docAndPerList[2] = file3 + "\t" + max3; top3DocAndPer.put(i, docAndPerList); } } File top3DocumentsFile = new File(top3DocumentsFilePath); if (top3DocumentsFile.createNewFile()) { System.out.println("Create successful: " + top3DocumentsFile.getName()); } writeMapIntStrAToFile(top3DocumentsFile, top3DocAndPer); out.println("<h3 id = \"success\" class=\"fileHead\">Successful Topic Modeling!</h3>"); out.println( "<h2 id = \"success\" class=\"fileHead\">Now, you can start using the \"Show\" function and the \"Search\" function.</h2>"); out.println("</div>"); out.println("<hr class=\"featurette-divider\">"); out.println("<footer>" + "<p class=\"pull-right\">" + "<a href=\"#\">Back to top</a>" + "</p>" + "<p>2017 @Tianxia, Wang</p>" + "</footer>"); out.println("</div>"); out.println("<script src=\"./js/jquery.min.js\"></script>"); out.println("<script src=\"./js/bootstrap.min.js\"></script>"); out.println("<script src=\"./js/docs.min.js\"></script>"); out.println("<script src=\"./js/ie10-viewport-bug-workaround.js\"></script>"); out.println("<script src=\"./js/home.js\"></script>"); out.println("</body>"); out.println("</html>"); } }