Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.neu.cloud.Controller; import com.amazonaws.AmazonClientException; import com.amazonaws.AmazonServiceException; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3Client; import com.amazonaws.services.s3.model.PutObjectRequest; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.PageSize; import com.lowagie.text.Table; import com.lowagie.text.pdf.PdfWriter; import com.neu.cloud.DAO.DAO; import com.neu.cloud.DAO.ReportsDAO; import com.neu.cloud.DAO.UserDAO; import com.neu.cloud.POJO.User; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; /** * * @author dishujindal */ public class FifthUseCaseController implements Controller { UserDAO userDao = new UserDAO(); ReportsDAO reportsDAO = new ReportsDAO(); @Override public ModelAndView handleRequest(HttpServletRequest hsr, HttpServletResponse hsr1) throws Exception { ModelAndView mv = new ModelAndView(); HttpSession session = hsr.getSession(); String userCount = hsr.getParameter("userCount"); int count = Integer.parseInt(userCount); System.out.println(userCount); List<User> userList = new ArrayList<User>(); List<ArrayList<User>> user1ReportList = new ArrayList<>(); for (int i = 1; i <= count; i++) { User user = new User(); user.setUserID(i); String password = "pass" + i; user.setPassword(password); String username = "user" + i; user.setUsername(username); String product = "product" + i; user.setProductName(product); System.out.println("user" + i + " " + "created"); userList.add(user); } userDao.addUser(userList); session.setAttribute("usernameList", userList); user1ReportList = reportsDAO.generateUseCaseReport(count); generateReports(user1ReportList); mv.setViewName("results"); return mv; } // public void generateReports(List<ArrayList<User>> user1ReportList) throws DocumentException, FileNotFoundException { // // Date date; // for (ArrayList<User> users : user1ReportList) { // date = new Date(); // Document document = new Document(PageSize.A4, 50, 50, 50, 50); // String path = System.getProperty("user.dir") + "//"; // PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(path + "ITextTest" + date.getTime() + ".pdf")); // // document.open(); // // Table table = new Table(4); // table.addCell("userID"); // table.addCell("username"); // table.addCell("password"); // table.addCell("productName"); // // for (User u : users) { // table.addCell(String.valueOf(u.getUserID())); // table.addCell(u.getUsername()); // table.addCell(u.getPassword()); // table.addCell(u.getProductName()); // } // // document.add(table); // document.close(); // } // } public void generateReports(List<ArrayList<User>> user1ReportList) throws DocumentException, FileNotFoundException { Date date; String dateForFolder = String.valueOf(new Date()); for (ArrayList<User> users : user1ReportList) { date = new Date(); Document document = new Document(PageSize.A4, 50, 50, 50, 50); // String path = System.getProperty("user.dir") + "\\reports\\"; String path = System.getProperty("user.dir") + "//"; String fileName = "ITextTest" + date.getTime() + ".pdf"; // PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(path + "ITextTest" + date.getTime() + ".pdf")); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(path + fileName)); document.open(); Table table = new Table(4); table.addCell("userID"); table.addCell("username"); table.addCell("password"); table.addCell("productName"); boolean flag = false; for (User u : users) { System.out.print("1"); System.out.print("1"); System.out.print("1"); System.out.print("1"); if (flag) continue; flag = true; table.addCell(String.valueOf(u.getUserID())); table.addCell(u.getUsername()); table.addCell(u.getPassword()); table.addCell(u.getProductName()); } document.add(table); document.close(); uploadInS3(path, fileName, dateForFolder); File file = new File(path + fileName); if (file.delete()) { System.out.println(file.getName() + " is deleted!"); } else { System.out.println("Delete operation is failed."); } } } private void uploadInS3(String uploadFilePath, String uploadFileName, String dateForFolder) { String bucketName = "reports-sppard"; String keyName = "UseCase5-" + dateForFolder + "/" + uploadFileName; AmazonS3 s3client = new AmazonS3Client( new BasicAWSCredentials("AKIAJ2E67YVFQ5PZSWQA", "xiVuejpUofGonrsiy2owvu/wgeNKq5nYjxYVC0ma")); try { System.out.println("Uploading a new object to S3 from a file\n"); File file = new File(uploadFilePath + uploadFileName); s3client.putObject(new PutObjectRequest(bucketName, keyName, file)); } catch (AmazonServiceException ase) { System.out.println("Caught an AmazonServiceException, which " + "means your request made it " + "to Amazon S3, but was rejected with an error response" + " for some reason."); System.out.println("Error Message: " + ase.getMessage()); System.out.println("HTTP Status Code: " + ase.getStatusCode()); System.out.println("AWS Error Code: " + ase.getErrorCode()); System.out.println("Error Type: " + ase.getErrorType()); System.out.println("Request ID: " + ase.getRequestId()); } catch (AmazonClientException ace) { System.out.println("Caught an AmazonClientException, which " + "means the client encountered " + "an internal error while trying to " + "communicate with S3, " + "such as not being able to access the network."); System.out.println("Error Message: " + ace.getMessage()); } } }