private Transformer buildTransformer(String name, File xslDir, TransformerFactory tf) throws Exception { Transformer tr = tf.newTransformer( new StreamSource( new FileReader(xslDir.getAbsolutePath() + File.separatorChar + name + ".xsl"))); tr.setOutputProperty(OutputKeys.INDENT, "yes"); tr.setOutputProperty(OutputKeys.METHOD, "html"); tr.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "3"); return tr; }
public void init(ServletConfig config) throws ServletException { super.init(config); context = config.getServletContext(); TextProcessor tp = new CaseFolder(); try { wikipedia = new Wikipedia( context.getInitParameter("mysql_server"), context.getInitParameter("mysql_database"), context.getInitParameter("mysql_user"), context.getInitParameter("mysql_password")); } catch (Exception e) { throw new ServletException("Could not connect to wikipedia database."); } // Escaper escaper = new Escaper() ; definer = new Definer(this); comparer = new Comparer(this); searcher = new Searcher(this); try { wikifier = new Wikifier(this, tp); } catch (Exception e) { System.err.println("Could not initialize wikifier"); } try { File dataDirectory = new File(context.getInitParameter("data_directory")); if (!dataDirectory.exists() || !dataDirectory.isDirectory()) { throw new Exception(); } cachingThread = new CacherThread(dataDirectory, tp); cachingThread.start(); } catch (Exception e) { throw new ServletException("Could not locate wikipedia data directory."); } try { TransformerFactory tf = TransformerFactory.newInstance(); transformersByName = new HashMap<String, Transformer>(); transformersByName.put( "help", buildTransformer("help", new File("/research/wikipediaminer/web/xsl"), tf)); transformersByName.put( "loading", buildTransformer("loading", new File("/research/wikipediaminer/web/xsl"), tf)); transformersByName.put( "search", buildTransformer("search", new File("/research/wikipediaminer/web/xsl"), tf)); transformersByName.put( "compare", buildTransformer("compare", new File("/research/wikipediaminer/web/xsl"), tf)); transformersByName.put( "wikify", buildTransformer("wikify", new File("/research/wikipediaminer/web/xsl"), tf)); Transformer serializer = TransformerFactory.newInstance().newTransformer(); serializer.setOutputProperty(OutputKeys.INDENT, "yes"); serializer.setOutputProperty(OutputKeys.METHOD, "xml"); serializer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "3"); transformersByName.put("serializer", serializer); } catch (Exception e) { throw new ServletException("Could not load xslt library."); } }