1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.jetty.embedded;
20
21 import java.lang.management.ManagementFactory;
22
23 import org.eclipse.jetty.deploy.DeploymentManager;
24 import org.eclipse.jetty.deploy.providers.ContextProvider;
25 import org.eclipse.jetty.deploy.providers.WebAppProvider;
26 import org.eclipse.jetty.jmx.MBeanContainer;
27 import org.eclipse.jetty.security.HashLoginService;
28 import org.eclipse.jetty.server.AsyncNCSARequestLog;
29 import org.eclipse.jetty.server.Connector;
30 import org.eclipse.jetty.server.Handler;
31 import org.eclipse.jetty.server.NCSARequestLog;
32 import org.eclipse.jetty.server.Server;
33 import org.eclipse.jetty.server.handler.ContextHandlerCollection;
34 import org.eclipse.jetty.server.handler.DefaultHandler;
35 import org.eclipse.jetty.server.handler.HandlerCollection;
36 import org.eclipse.jetty.server.handler.RequestLogHandler;
37 import org.eclipse.jetty.server.handler.StatisticsHandler;
38 import org.eclipse.jetty.server.nio.BlockingChannelConnector;
39 import org.eclipse.jetty.server.nio.SelectChannelConnector;
40 import org.eclipse.jetty.server.ssl.SslSelectChannelConnector;
41 import org.eclipse.jetty.server.ssl.SslSocketConnector;
42 import org.eclipse.jetty.util.log.Log;
43 import org.eclipse.jetty.util.ssl.SslContextFactory;
44 import org.eclipse.jetty.util.thread.QueuedThreadPool;
45
46 public class LikeJettyXml
47 {
48 public static void main(String[] args) throws Exception
49 {
50 String jetty_home = System.getProperty("jetty.home","../jetty-distribution/target/distribution");
51 System.setProperty("jetty.home",jetty_home);
52
53 Server server = new Server();
54 server.setDumpAfterStart(true);
55 server.setDumpBeforeStop(true);
56
57
58 MBeanContainer mbContainer=new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
59 mbContainer.start();
60 server.getContainer().addEventListener(mbContainer);
61 server.addBean(mbContainer,true);
62 mbContainer.addBean(new Log());
63
64
65 QueuedThreadPool threadPool = new QueuedThreadPool();
66 threadPool.setMaxThreads(500);
67 server.setThreadPool(threadPool);
68
69
70 SelectChannelConnector connector = new SelectChannelConnector();
71 connector.setPort(8080);
72 connector.setMaxIdleTime(30000);
73 connector.setConfidentialPort(8443);
74 connector.setStatsOn(false);
75
76 server.setConnectors(new Connector[]
77 { connector });
78
79 BlockingChannelConnector bConnector = new BlockingChannelConnector();
80 bConnector.setPort(8888);
81 bConnector.setMaxIdleTime(30000);
82 bConnector.setConfidentialPort(8443);
83 bConnector.setAcceptors(1);
84 server.addConnector(bConnector);
85
86 SslSelectChannelConnector ssl_connector = new SslSelectChannelConnector();
87 ssl_connector.setPort(8443);
88 SslContextFactory cf = ssl_connector.getSslContextFactory();
89 cf.setKeyStorePath(jetty_home + "/etc/keystore");
90 cf.setKeyStorePassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
91 cf.setKeyManagerPassword("OBF:1u2u1wml1z7s1z7a1wnl1u2g");
92 cf.setTrustStore(jetty_home + "/etc/keystore");
93 cf.setTrustStorePassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
94 cf.setExcludeCipherSuites(
95 new String[] {
96 "SSL_RSA_WITH_DES_CBC_SHA",
97 "SSL_DHE_RSA_WITH_DES_CBC_SHA",
98 "SSL_DHE_DSS_WITH_DES_CBC_SHA",
99 "SSL_RSA_EXPORT_WITH_RC4_40_MD5",
100 "SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
101 "SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
102 "SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA"
103 });
104 ssl_connector.setStatsOn(false);
105 server.addConnector(ssl_connector);
106 ssl_connector.open();
107
108 SslSocketConnector ssl2_connector = new SslSocketConnector(cf);
109 ssl2_connector.setPort(8444);
110 ssl2_connector.setStatsOn(false);
111 server.addConnector(ssl2_connector);
112 ssl2_connector.open();
113
114
115
116
117
118
119
120
121
122
123 HandlerCollection handlers = new HandlerCollection();
124 ContextHandlerCollection contexts = new ContextHandlerCollection();
125 RequestLogHandler requestLogHandler = new RequestLogHandler();
126
127 handlers.setHandlers(new Handler[] { contexts, new DefaultHandler(), requestLogHandler });
128
129 StatisticsHandler stats = new StatisticsHandler();
130 stats.setHandler(handlers);
131
132 server.setHandler(stats);
133
134
135 DeploymentManager deployer = new DeploymentManager();
136 deployer.setContexts(contexts);
137 server.addBean(deployer);
138
139 ContextProvider context_provider = new ContextProvider();
140 context_provider.setMonitoredDirName(jetty_home + "/contexts");
141 context_provider.setScanInterval(2);
142 deployer.addAppProvider(context_provider);
143
144 WebAppProvider webapp_provider = new WebAppProvider();
145 webapp_provider.setMonitoredDirName(jetty_home + "/webapps");
146 webapp_provider.setParentLoaderPriority(false);
147 webapp_provider.setExtractWars(true);
148 webapp_provider.setScanInterval(2);
149 webapp_provider.setDefaultsDescriptor(jetty_home + "/etc/webdefault.xml");
150 webapp_provider.setContextXmlDir(jetty_home + "/contexts");
151 deployer.addAppProvider(webapp_provider);
152
153 HashLoginService login = new HashLoginService();
154 login.setName("Test Realm");
155 login.setConfig(jetty_home + "/etc/realm.properties");
156 server.addBean(login);
157
158 NCSARequestLog requestLog = new AsyncNCSARequestLog();
159 requestLog.setFilename(jetty_home + "/logs/jetty-yyyy_mm_dd.log");
160 requestLog.setExtended(false);
161 requestLogHandler.setRequestLog(requestLog);
162
163 server.setStopAtShutdown(true);
164 server.setSendServerVersion(true);
165
166 server.start();
167
168 server.join();
169 }
170 }