View Javadoc

1   //========================================================================
2   //Copyright 2006 Mort Bay Consulting Pty. Ltd.
3   //------------------------------------------------------------------------
4   //Licensed under the Apache License, Version 2.0 (the "License");
5   //you may not use this file except in compliance with the License.
6   //You may obtain a copy of the License at 
7   //http://www.apache.org/licenses/LICENSE-2.0
8   //Unless required by applicable law or agreed to in writing, software
9   //distributed under the License is distributed on an "AS IS" BASIS,
10  //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11  //See the License for the specific language governing permissions and
12  //limitations under the License.
13  //========================================================================
14  
15  package org.mortbay.jetty.example;
16  
17  import org.mortbay.jetty.Connector;
18  import org.mortbay.jetty.Handler;
19  import org.mortbay.jetty.NCSARequestLog;
20  import org.mortbay.jetty.Server;
21  import org.mortbay.jetty.deployer.ContextDeployer;
22  import org.mortbay.jetty.deployer.WebAppDeployer;
23  import org.mortbay.jetty.handler.ContextHandlerCollection;
24  import org.mortbay.jetty.handler.DefaultHandler;
25  import org.mortbay.jetty.handler.HandlerCollection;
26  import org.mortbay.jetty.handler.RequestLogHandler;
27  import org.mortbay.jetty.nio.SelectChannelConnector;
28  import org.mortbay.jetty.security.HashUserRealm;
29  import org.mortbay.jetty.security.SslSelectChannelConnector;
30  import org.mortbay.jetty.security.SslSocketConnector;
31  import org.mortbay.jetty.security.UserRealm;
32  import org.mortbay.jetty.webapp.WebAppContext;
33  import org.mortbay.thread.BoundedThreadPool;
34  import org.mortbay.thread.QueuedThreadPool;
35  
36  public class LikeJettyXml
37  {
38      public static void main(String[] args)
39          throws Exception
40      {
41          String jetty_default=new java.io.File("./start.jar").exists()?".":"../..";;
42          String jetty_home = System.getProperty("jetty.home",jetty_default);
43          
44          Server server = new Server();
45          
46          QueuedThreadPool threadPool = new QueuedThreadPool();
47          threadPool.setMaxThreads(100);
48          server.setThreadPool(threadPool);
49               
50          SelectChannelConnector connector=new SelectChannelConnector();
51          connector.setPort(8080);
52          connector.setMaxIdleTime(30000);
53          connector.setConfidentialPort(8443);
54          server.setConnectors(new Connector[]{connector});
55  
56          SslSelectChannelConnector ssl_connector=new SslSelectChannelConnector();
57          ssl_connector.setPort(8443);
58          ssl_connector.setKeystore(jetty_home+"/etc/keystore");
59          ssl_connector.setPassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
60          ssl_connector.setKeyPassword("OBF:1u2u1wml1z7s1z7a1wnl1u2g");
61          ssl_connector.setTruststore(jetty_home+"/etc/keystore");
62          ssl_connector.setTrustPassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
63          server.addConnector(ssl_connector);  
64          
65          HandlerCollection handlers = new HandlerCollection();
66          ContextHandlerCollection contexts = new ContextHandlerCollection();
67          RequestLogHandler requestLogHandler = new RequestLogHandler();
68          handlers.setHandlers(new Handler[]{contexts,new DefaultHandler(),requestLogHandler});
69          server.setHandler(handlers);
70          
71          ContextDeployer deployer0 = new ContextDeployer();
72          deployer0.setContexts(contexts);
73          deployer0.setConfigurationDir(jetty_home+"/contexts");
74          deployer0.setScanInterval(1);
75          server.addLifeCycle(deployer0);   
76          
77          WebAppDeployer deployer1 = new WebAppDeployer();
78          deployer1.setContexts(contexts);
79          deployer1.setWebAppDir(jetty_home+"/webapps");
80          deployer1.setParentLoaderPriority(false);
81          deployer1.setExtract(true);
82          deployer1.setAllowDuplicates(false);
83          deployer1.setDefaultsDescriptor(jetty_home+"/etc/webdefault.xml");
84          server.addLifeCycle(deployer1);
85            
86          HashUserRealm userRealm = new HashUserRealm();
87          userRealm.setName("Test Realm");
88          userRealm.setConfig(jetty_home+"/etc/realm.properties");
89          server.setUserRealms(new UserRealm[]{userRealm});
90          
91          NCSARequestLog requestLog = new NCSARequestLog(jetty_home+"/logs/jetty-yyyy_mm_dd.log");
92          requestLog.setExtended(false);
93          requestLogHandler.setRequestLog(requestLog);
94          
95          server.setStopAtShutdown(true);
96          server.setSendServerVersion(true);
97          
98          server.start();
99          server.join();
100     }
101     
102 }