protected void doPost()

in mail-archive/stats/src/main/java/org/apache/sling/mailarchive/stats/impl/StatsTestServlet.java [58:93]


    protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) 
            throws ServletException, IOException {
        final RequestParameter param = request.getRequestParameter(IMPORT_FILE_ATTRIB_NAME);
        if(param == null) {
            response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Missing required parameter " + IMPORT_FILE_ATTRIB_NAME);
            return;
        }
        
        InputStream is = null;
        final PrintWriter pw = response.getWriter();
        response.setContentType("text/plain");
        response.setCharacterEncoding("UTF-8");
        
        try {
            is = param.getInputStream();
            pw.println("Creating stats from supplied mbox file...");
            int counter=0;
            final Iterator<Message> it = parser.parse(is);
            while(it.hasNext()) {
                final Message m = it.next();
                final String [] to = MailStatsProcessorImpl.toArray(m.getTo());
                final String [] cc = MailStatsProcessorImpl.toArray(m.getCc());
                for(String from : MailStatsProcessorImpl.toArray(m.getFrom())) {
                    processor.computeStats(m.getDate(), from.toString(), to, cc);
                }
                counter++;
            }
            pw.println(counter + " messages parsed");
        } finally {
            processor.flush();
            pw.flush();
            if(is != null) {
                is.close();
            }
        }
    }