View Javadoc

1   // ========================================================================
2   // Copyright (c) 2006-2009 Mort Bay Consulting Pty. Ltd.
3   // ------------------------------------------------------------------------
4   // All rights reserved. This program and the accompanying materials
5   // are made available under the terms of the Eclipse Public License v1.0
6   // and Apache License v2.0 which accompanies this distribution.
7   // The Eclipse Public License is available at 
8   // http://www.eclipse.org/legal/epl-v10.html
9   // The Apache License v2.0 is available at
10  // http://www.opensource.org/licenses/apache2.0.php
11  // You may elect to redistribute this code under either of these licenses. 
12  // ========================================================================
13  
14  package org.eclipse.jetty.embedded;
15  
16  import org.eclipse.jetty.security.HashLoginService;
17  import org.eclipse.jetty.security.LoginService;
18  import org.eclipse.jetty.server.Connector;
19  import org.eclipse.jetty.server.Handler;
20  import org.eclipse.jetty.server.NCSARequestLog;
21  import org.eclipse.jetty.server.Server;
22  import org.eclipse.jetty.deploy.ContextDeployer;
23  import org.eclipse.jetty.deploy.WebAppDeployer;
24  import org.eclipse.jetty.server.handler.ContextHandlerCollection;
25  import org.eclipse.jetty.server.handler.DefaultHandler;
26  import org.eclipse.jetty.server.handler.HandlerCollection;
27  import org.eclipse.jetty.server.handler.RequestLogHandler;
28  import org.eclipse.jetty.server.nio.SelectChannelConnector;
29  import org.eclipse.jetty.server.ssl.SslSelectChannelConnector;
30  import org.eclipse.jetty.util.thread.QueuedThreadPool;
31  
32  public class LikeJettyXml
33  {
34      public static void main(String[] args)
35          throws Exception
36      {
37          String jetty_home = System.getProperty("jetty.home","../jetty-distribution/target/distribution");
38          System.setProperty("jetty.home",jetty_home);
39          
40          Server server = new Server();
41          
42          QueuedThreadPool threadPool = new QueuedThreadPool();
43          threadPool.setMaxThreads(100);
44          server.setThreadPool(threadPool);
45               
46          Connector connector=new SelectChannelConnector();
47          connector.setPort(8080);
48          connector.setMaxIdleTime(30000);
49          server.setConnectors(new Connector[]{connector});
50  
51          SslSelectChannelConnector ssl_connector=new SslSelectChannelConnector();
52          ssl_connector.setPort(8443);
53          ssl_connector.setKeystore(jetty_home+"/etc/keystore");
54          ssl_connector.setPassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
55          ssl_connector.setKeyPassword("OBF:1u2u1wml1z7s1z7a1wnl1u2g");
56          ssl_connector.setTruststore(jetty_home+"/etc/keystore");
57          ssl_connector.setTrustPassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
58          server.addConnector(ssl_connector);
59          
60          HandlerCollection handlers = new HandlerCollection();
61          ContextHandlerCollection contexts = new ContextHandlerCollection();
62          RequestLogHandler requestLogHandler = new RequestLogHandler();
63          handlers.setHandlers(new Handler[]{contexts,new DefaultHandler(),requestLogHandler});
64          server.setHandler(handlers);
65          
66          ContextDeployer deployer0 = new ContextDeployer();
67          deployer0.setContexts(contexts);
68          deployer0.setConfigurationDir(jetty_home+"/contexts");
69          deployer0.setScanInterval(1);
70          server.addBean(deployer0);   
71          
72          WebAppDeployer deployer1 = new WebAppDeployer();
73          deployer1.setContexts(contexts);
74          deployer1.setWebAppDir(jetty_home+"/webapps");
75          deployer1.setParentLoaderPriority(false);
76          deployer1.setExtract(true);
77          deployer1.setAllowDuplicates(false);
78          deployer1.setDefaultsDescriptor(jetty_home+"/etc/webdefault.xml");
79          server.addBean(deployer1);
80            
81          HashLoginService login = new HashLoginService();
82          login.setName("Test Realm");
83          login.setConfig(jetty_home+"/etc/realm.properties");
84          server.addBean(login);
85          
86          NCSARequestLog requestLog = new NCSARequestLog(jetty_home+"/logs/jetty-yyyy_mm_dd.log");
87          requestLog.setExtended(false);
88          requestLogHandler.setRequestLog(requestLog);
89          
90          server.setStopAtShutdown(true);
91          server.setSendServerVersion(true);
92          
93          server.start();
94          server.join();
95      }
96      
97  }