001 /*
002 * Copyright (c) 2005 Henri Sivonen
003 * Copyright (c) 2007 Mozilla Foundation
004 *
005 * Permission is hereby granted, free of charge, to any person obtaining a
006 * copy of this software and associated documentation files (the "Software"),
007 * to deal in the Software without restriction, including without limitation
008 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
009 * and/or sell copies of the Software, and to permit persons to whom the
010 * Software is furnished to do so, subject to the following conditions:
011 *
012 * The above copyright notice and this permission notice shall be included in
013 * all copies or substantial portions of the Software.
014 *
015 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
016 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
017 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
018 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
019 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
020 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
021 * DEALINGS IN THE SOFTWARE.
022 */
023
024 package nu.validator.servlet;
025
026
027 import org.apache.log4j.PropertyConfigurator;
028 import org.mortbay.jetty.Connector;
029 import org.mortbay.jetty.Handler;
030 import org.mortbay.jetty.Server;
031 import org.mortbay.jetty.ajp.Ajp13SocketConnector;
032 import org.mortbay.jetty.bio.SocketConnector;
033 import org.mortbay.jetty.handler.ContextHandler;
034 import org.mortbay.jetty.servlet.Context;
035 import org.mortbay.jetty.servlet.FilterHolder;
036 import org.mortbay.jetty.servlet.ServletHandler;
037 import org.mortbay.jetty.servlet.ServletHolder;
038 import org.mortbay.servlet.GzipFilter;
039
040 /**
041 * @version $Id: Main.java 86 2007-10-02 13:14:01Z hsivonen $
042 * @author hsivonen
043 */
044 public class Main {
045
046 public static void main(String[] args) throws Exception {
047 PropertyConfigurator.configure(System.getProperty("nu.validator.servlet.log4j-properties", "log4j.properties"));
048 new VerifierServletTransaction(null, null);
049 Server server = new Server();
050 Connector connector;
051 if (args.length > 0 && "ajp".equals(args[0])) {
052 connector = new Ajp13SocketConnector();
053 int port = Integer.parseInt(args[1]);
054 connector.setPort(port);
055 connector.setHost("127.0.0.1");
056 } else {
057 connector = new SocketConnector();
058 int port = Integer.parseInt(args[0]);
059 connector.setPort(port);
060 }
061 server.addConnector(connector);
062
063 Context context = new Context(server, "/");
064 context.addServlet(new ServletHolder(new VerifierServlet()), "/*");
065 context.addFilter(new FilterHolder(new GzipFilter()), "/*", Handler.REQUEST);
066 context.addFilter(new FilterHolder(new MultipartFormDataFilter()), "/*", Handler.REQUEST);
067 server.start();
068
069 System.in.read(); // XXX do something smarter
070 server.stop();
071 }
072 }