KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > servlets > BuildSearchServlet


1 package com.dotmarketing.servlets;
2
3 import java.io.File JavaDoc;
4 import java.io.FileNotFoundException JavaDoc;
5 import java.io.IOException JavaDoc;
6 import java.io.PrintWriter JavaDoc;
7 import java.net.HttpURLConnection JavaDoc;
8 import java.net.URL JavaDoc;
9
10 import javax.servlet.ServletConfig JavaDoc;
11 import javax.servlet.ServletException JavaDoc;
12 import javax.servlet.http.HttpServlet JavaDoc;
13 import javax.servlet.http.HttpServletRequest JavaDoc;
14 import javax.servlet.http.HttpServletResponse JavaDoc;
15
16 import com.bitmechanic.spindle.Spider;
17 import com.dotmarketing.beans.Host;
18 import com.dotmarketing.factories.HostFactory;
19 import com.dotmarketing.util.Config;
20 import com.dotmarketing.util.Logger;
21
22 /**
23  * Description of the Class
24  *
25  * @author don
26  * @created September 18, 2002
27  */

28
29 public class BuildSearchServlet extends HttpServlet JavaDoc {
30
31     private static final long serialVersionUID = 1L;
32
33     final static boolean VERBOSE = false;
34
35     public void init(ServletConfig JavaDoc config) throws ServletException JavaDoc {
36
37     }
38
39     /***************************************************************************
40      * This Servlet looks at the request, selects the right host (
41      * HostFactory.getCurrentHost(request) ) and then creates a search index for
42      * the host.
43      */

44     public void service(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) throws ServletException JavaDoc, IOException JavaDoc {
45
46         PrintWriter JavaDoc out = response.getWriter();
47         response.setContentType("text/plain");
48
49         Host h = HostFactory.getCurrentHost(request);
50
51         String JavaDoc _serverName = h.getHostname();
52
53         // Verify Directory exists
54

55         File JavaDoc testDirectory = new File JavaDoc(com.dotmarketing.util.Config.CONTEXT.getRealPath("/WEB-INF/spindle/" + _serverName));
56         testDirectory.mkdirs();
57
58         Logger.info(this, "Running spindle indexing");
59         Logger.info(this, "\tUsing HostFactory.getCurrentHost(request) to get servername\n\ttry different url virtual host if this is wrong");
60
61         Logger.info(this, "\n\n\n\n\ncom.dotmarketing.util.Config.CONTEXT.getRealPath(\"/WEB-INF/spindle\")="
62                 + com.dotmarketing.util.Config.CONTEXT.getRealPath("/WEB-INF/spindle"));
63         Logger.info(this, "Indexing: " + "http://" + _serverName + Config.getStringProperty("SPINDLE_PATH_TO_INDEX"));
64
65         // Run spindle on the directory
66
String JavaDoc[] argv = new String JavaDoc[] { "-d", testDirectory.getAbsolutePath(), "-u",
67                 "http://" + _serverName + Config.getStringProperty("SPINDLE_PATH_TO_INDEX"), "-dt", "p", "-dt", "h1", "-dt", "h2", "-dt", "h3", "-e",
68                 "/c/", "-e", "/calendar/", "-e", "/dot/", "-v" };
69
70         try {
71             URL JavaDoc u = new URL JavaDoc("http://" + _serverName + Config.getStringProperty("SPINDLE_PATH_TO_INDEX"));
72             HttpURLConnection JavaDoc uc;
73             String JavaDoc ct = "";
74             uc = (HttpURLConnection JavaDoc) u.openConnection();
75             uc.setAllowUserInteraction(false);
76             ct = uc.getContentType();
77             Logger.info("Detected content type for " + "http://" + _serverName + "/" + ": '" + ct + "'");
78         } catch (FileNotFoundException JavaDoc e) {
79         }
80
81         try {
82             Spider s = new Spider(argv);
83             s.go();
84         } catch (Exception JavaDoc e) {
85             out.println("Exception Searching: " + e);
86             out.println(e.getStackTrace());
87         }
88
89         for (int i = 0; i < argv.length; i++) {
90             out.println(argv[i]);
91         }
92         out.println("------------------------------------------");
93         out.println("SEARCHING");
94         out.println("------------------------------------------");
95
96         out.flush();
97         out.close();
98
99     }
100
101 }
102
Popular Tags