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