View Javadoc
1   package org.kuali.ole.web;
2   
3   import org.apache.commons.lang.StringUtils;
4   import org.kuali.ole.docstore.common.document.content.enums.DocCategory;
5   import org.kuali.ole.docstore.common.document.content.enums.DocFormat;
6   import org.kuali.ole.docstore.common.document.content.enums.DocType;
7   import org.kuali.ole.docstore.engine.service.index.solr.BibConstants;
8   import org.kuali.ole.docstore.metrics.reindex.ReIndexingStatus;
9   import org.kuali.ole.docstore.process.RebuildIndexesHandler;
10  import org.kuali.ole.logger.DocStoreLogger;
11  
12  import javax.servlet.ServletException;
13  import javax.servlet.http.HttpServlet;
14  import javax.servlet.http.HttpServletRequest;
15  import javax.servlet.http.HttpServletResponse;
16  import java.io.IOException;
17  import java.io.PrintWriter;
18  
19  /**
20   * Created by IntelliJ IDEA.
21   * User: pvsubrah
22   * Date: 11/12/11
23   * Time: 3:41 PM
24   * To change this template use File | Settings | File Templates.
25   */
26  public class RebuildIndexServlet extends HttpServlet {
27  
28      private static final long serialVersionUID = 1L;
29      DocStoreLogger docStoreLogger = new DocStoreLogger(getClass().getName());
30  
31      @Override
32      protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
33          doPost(req, resp);
34      }
35  
36      @Override
37      protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
38          try {
39  
40              String docCategory = DocCategory.WORK.getCode();
41              String docType = DocType.BIB.getCode();
42              String docFormat = DocFormat.MARC.getCode();
43              String action = req.getParameter("action");
44              String batchSizeReq = req.getParameter("batchSize");
45              int batchSize = 0;
46              if(StringUtils.isNotEmpty(batchSizeReq)) {
47                  batchSize = Integer.parseInt(batchSizeReq);
48              }
49              RebuildIndexesHandler rebuildIndexesHandler = RebuildIndexesHandler.getInstance();
50  
51              if (action.equalsIgnoreCase("start")) {
52                  String result = rebuildIndexesHandler.startProcess(docCategory, docType, docFormat, batchSize);
53                  outputMessage(resp, result);
54              } else if (action.equalsIgnoreCase("stop")) {
55                  String result = rebuildIndexesHandler.stopProcess();
56                  outputMessage(resp, result);
57              } else if (action.equalsIgnoreCase("status")) {
58  //                ReIndexingStatus reIndexingStatus = ReIndexingStatus.getInstance();
59  //                String result = reIndexingStatus.getJsonString();
60                  String result = rebuildIndexesHandler.showStatus();
61                  outputMessage(resp, result);
62              } else if (action.equalsIgnoreCase("Clear Status")) {
63                  ReIndexingStatus reIndexingStatus = ReIndexingStatus.getInstance();
64                  reIndexingStatus.reset();
65              } else {
66                  String result = "Invalid action :" + action;
67                  outputMessage(resp, result);
68              }
69          } catch (Exception e) {
70              docStoreLogger.log("Error during rebuilding of the indexes from documentstore", e);
71          }
72      }
73  
74      private void outputMessage(HttpServletResponse resp, String s) throws IOException {
75          PrintWriter out = resp.getWriter();
76          out.println(s);
77          out.flush();
78          out.close();
79      }
80  }