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
21
22
23
24
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
59
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 }