1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 package org.openrdf.elmo.smusher.servlet;
30
31 import java.io.IOException;
32 import java.io.PrintWriter;
33 import java.io.Writer;
34
35 import javax.servlet.ServletException;
36 import javax.servlet.http.HttpServlet;
37 import javax.servlet.http.HttpServletRequest;
38 import javax.servlet.http.HttpServletResponse;
39
40 import org.openrdf.OpenRDFException;
41 import org.openrdf.elmo.sesame.SesameManager;
42 import org.openrdf.elmo.smusher.FastIterativeSmusher;
43 import org.openrdf.elmo.smusher.IFPSmusher;
44 import org.openrdf.elmo.smusher.NameSmusher;
45 import org.openrdf.elmo.smusher.Smusher;
46 import org.openrdf.elmo.smusher.listener.LogListener;
47 import org.openrdf.elmo.smusher.listener.PersonLogListener;
48 import org.openrdf.elmo.smusher.listener.SameAsListener;
49 import org.openrdf.elmo.smusher.Util;
50 import org.openrdf.repository.Repository;
51
52
53
54
55
56
57 public class SmusherServlet extends HttpServlet {
58
59
60
61 private static final long serialVersionUID = -271211078620234650L;
62 private final static String CONTENT_TYPE = "text/html";
63
64
65
66
67 public SmusherServlet() {
68 super();
69
70 }
71
72 public static void smush(Repository repository, Writer log) throws OpenRDFException {
73 FastIterativeSmusher smusher = new FastIterativeSmusher();
74 SameAsListener listener = new SameAsListener(repository);
75 Smusher ifps = new IFPSmusher();
76 ifps.addListener(listener);
77 Smusher ns = new NameSmusher();
78 ns.addListener(listener);
79 smusher.addSmusher(ifps);
80 smusher.addSmusher(ns);
81
82 if (log != null) {
83 smusher.addListener(new PersonLogListener(log, repository));
84 }
85 SesameManager manager= Util.initManager(repository);
86 smusher.smush(manager);
87 }
88
89 public void doGet(HttpServletRequest request, HttpServletResponse response)
90 throws ServletException, IOException {
91
92 PrintWriter out = response.getWriter();
93 response.setContentType(CONTENT_TYPE);
94 out.write("<html>");
95 out.write("<head><title>SmusherServlet</title></head>");
96 out.write("<body>");
97 Repository repository = Util.initRepository(getServletConfig(), request);
98 String verbose = getServletConfig().getInitParameter("verbose");
99 if (verbose == null) {
100 verbose = request.getParameter("verbose");
101 }
102 try {
103 if (verbose == null || verbose.equalsIgnoreCase("true")) {
104 smush(repository,out);
105
106 } else {
107 smush(repository, null);
108 }
109 } catch (OpenRDFException oe) {
110 throw new ServletException(oe);
111 }
112
113 out.write("</body>");
114 out.write("</html>");
115 out.close();
116
117 }
118
119
120
121
122
123
124 public static void main(String[] args) throws Exception {
125 Repository repository = Util.initRepository(args[0], args[1]);
126
127
128
129
130
131
132 smush(repository, new PrintWriter(System.out));
133
134
135 }
136 }