1
2
3
4
5
6
7
8
9
10
11
12
13
14 package org.eclipse.jetty.embedded;
15
16 import java.lang.management.ManagementFactory;
17
18 import org.eclipse.jetty.deploy.DeploymentManager;
19 import org.eclipse.jetty.deploy.providers.ContextProvider;
20 import org.eclipse.jetty.deploy.providers.WebAppProvider;
21 import org.eclipse.jetty.jmx.MBeanContainer;
22 import org.eclipse.jetty.security.HashLoginService;
23 import org.eclipse.jetty.server.Connector;
24 import org.eclipse.jetty.server.Handler;
25 import org.eclipse.jetty.server.NCSARequestLog;
26 import org.eclipse.jetty.server.Server;
27 import org.eclipse.jetty.server.handler.ContextHandlerCollection;
28 import org.eclipse.jetty.server.handler.DefaultHandler;
29 import org.eclipse.jetty.server.handler.HandlerCollection;
30 import org.eclipse.jetty.server.handler.RequestLogHandler;
31 import org.eclipse.jetty.server.handler.StatisticsHandler;
32 import org.eclipse.jetty.server.nio.SelectChannelConnector;
33 import org.eclipse.jetty.server.ssl.SslSelectChannelConnector;
34 import org.eclipse.jetty.util.log.Log;
35 import org.eclipse.jetty.util.thread.QueuedThreadPool;
36
37 public class LikeJettyXml
38 {
39 public static void main(String[] args) throws Exception
40 {
41 String jetty_home = System.getProperty("jetty.home","../jetty-distribution/target/distribution");
42 System.setProperty("jetty.home",jetty_home);
43
44 Server server = new Server();
45
46
47 MBeanContainer mbContainer=new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
48 server.getContainer().addEventListener(mbContainer);
49 server.addBean(mbContainer);
50 mbContainer.addBean(Log.getLog());
51
52
53
54 QueuedThreadPool threadPool = new QueuedThreadPool();
55 threadPool.setMaxThreads(100);
56 server.setThreadPool(threadPool);
57
58
59 SelectChannelConnector connector = new SelectChannelConnector();
60 connector.setPort(8080);
61 connector.setMaxIdleTime(30000);
62 connector.setConfidentialPort(8443);
63 connector.setStatsOn(true);
64
65 server.setConnectors(new Connector[]
66 { connector });
67
68 SslSelectChannelConnector ssl_connector = new SslSelectChannelConnector();
69 ssl_connector.setPort(8443);
70 ssl_connector.setKeystore(jetty_home + "/etc/keystore");
71 ssl_connector.setPassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
72 ssl_connector.setKeyPassword("OBF:1u2u1wml1z7s1z7a1wnl1u2g");
73 ssl_connector.setTruststore(jetty_home + "/etc/keystore");
74 ssl_connector.setTrustPassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
75 ssl_connector.setStatsOn(true);
76 server.addConnector(ssl_connector);
77
78 HandlerCollection handlers = new HandlerCollection();
79 ContextHandlerCollection contexts = new ContextHandlerCollection();
80 RequestLogHandler requestLogHandler = new RequestLogHandler();
81 handlers.setHandlers(new Handler[]
82 { contexts, new DefaultHandler(), requestLogHandler });
83
84 StatisticsHandler stats = new StatisticsHandler();
85 stats.setHandler(handlers);
86
87 server.setHandler(stats);
88
89
90 DeploymentManager deployer = new DeploymentManager();
91 deployer.setContexts(contexts);
92 server.addBean(deployer);
93
94 ContextProvider context_provider = new ContextProvider();
95 context_provider.setMonitoredDir(jetty_home + "/contexts");
96 context_provider.setScanInterval(2);
97 server.addBean(context_provider);
98 deployer.addAppProvider(context_provider);
99
100 WebAppProvider webapp_provider = new WebAppProvider();
101 webapp_provider.setMonitoredDir(jetty_home + "/webapps");
102 webapp_provider.setParentLoaderPriority(false);
103 webapp_provider.setExtractWars(true);
104 webapp_provider.setScanInterval(2);
105 webapp_provider.setDefaultsDescriptor(jetty_home + "/etc/webdefault.xml");
106 webapp_provider.setContextXmlDir(jetty_home + "/contexts");
107 deployer.addAppProvider(webapp_provider);
108
109 HashLoginService login = new HashLoginService();
110 login.setName("Test Realm");
111 login.setConfig(jetty_home + "/etc/realm.properties");
112 server.addBean(login);
113
114 NCSARequestLog requestLog = new NCSARequestLog(jetty_home + "/logs/jetty-yyyy_mm_dd.log");
115 requestLog.setExtended(false);
116 requestLogHandler.setRequestLog(requestLog);
117
118 server.setStopAtShutdown(true);
119 server.setSendServerVersion(true);
120
121 server.start();
122 server.join();
123 }
124
125 }