1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package org.jumpmind.symmetric.web;
25
26 import javax.servlet.http.HttpServletRequest;
27 import javax.servlet.http.HttpServletResponse;
28
29 import org.apache.commons.lang.StringUtils;
30 import org.apache.commons.logging.Log;
31 import org.apache.commons.logging.LogFactory;
32 import org.jumpmind.symmetric.transport.handler.BatchResourceHandler;
33
34 /***
35 * Allows for the request of a batch by id.
36 */
37 public class BatchServlet extends AbstractTransportResourceServlet<BatchResourceHandler> {
38
39 private static final Log logger = LogFactory.getLog(BatchServlet.class);
40
41 private static final long serialVersionUID = 1L;
42
43 @Override
44 public boolean isContainerCompatible() {
45 return true;
46 }
47
48 @Override
49 public void handleGet(HttpServletRequest req, HttpServletResponse resp) throws Exception {
50 handlePost(req, resp);
51 }
52
53 @Override
54 protected void handlePost(HttpServletRequest req, HttpServletResponse resp) throws Exception {
55 resp.setContentType("text/plain");
56 String path = req.getPathInfo();
57 if (!StringUtils.isBlank(path)) {
58 int batchIdStartIndex = path.lastIndexOf("/")+1;
59 String batchId = path.substring(batchIdStartIndex);
60 if (!getTransportResourceHandler().write(batchId, resp.getOutputStream())) {
61 resp.sendError(HttpServletResponse.SC_NOT_FOUND);
62 }
63 } else {
64 resp.sendError(HttpServletResponse.SC_NOT_FOUND);
65 }
66 }
67
68 @Override
69 protected Log getLogger() {
70 return logger;
71 }
72
73 }