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.ajp.Ajp13SocketConnector;
19 import org.eclipse.jetty.deploy.DeploymentManager;
20 import org.eclipse.jetty.deploy.providers.ContextProvider;
21 import org.eclipse.jetty.deploy.providers.WebAppProvider;
22 import org.eclipse.jetty.http.ssl.SslContextFactory;
23 import org.eclipse.jetty.jmx.MBeanContainer;
24 import org.eclipse.jetty.security.HashLoginService;
25 import org.eclipse.jetty.server.Connector;
26 import org.eclipse.jetty.server.Handler;
27 import org.eclipse.jetty.server.NCSARequestLog;
28 import org.eclipse.jetty.server.Server;
29 import org.eclipse.jetty.server.handler.ContextHandlerCollection;
30 import org.eclipse.jetty.server.handler.DefaultHandler;
31 import org.eclipse.jetty.server.handler.HandlerCollection;
32 import org.eclipse.jetty.server.handler.RequestLogHandler;
33 import org.eclipse.jetty.server.handler.StatisticsHandler;
34 import org.eclipse.jetty.server.nio.SelectChannelConnector;
35 import org.eclipse.jetty.server.ssl.SslSelectChannelConnector;
36 import org.eclipse.jetty.server.ssl.SslSocketConnector;
37 import org.eclipse.jetty.util.log.Log;
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.getLog());
56
57
58
59 QueuedThreadPool threadPool = new QueuedThreadPool();
60 threadPool.setMaxThreads(100);
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(true);
69
70 server.setConnectors(new Connector[]
71 { connector });
72
73 SslSelectChannelConnector ssl_connector = new SslSelectChannelConnector();
74 ssl_connector.setPort(8443);
75 SslContextFactory cf = ssl_connector.getSslContextFactory();
76 cf.setKeyStorePath(jetty_home + "/etc/keystore");
77 cf.setKeyStorePassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
78 cf.setKeyManagerPassword("OBF:1u2u1wml1z7s1z7a1wnl1u2g");
79 cf.setTrustStore(jetty_home + "/etc/keystore");
80 cf.setTrustStorePassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
81 cf.setExcludeCipherSuites(
82 new String[] {
83 "SSL_RSA_WITH_DES_CBC_SHA",
84 "SSL_DHE_RSA_WITH_DES_CBC_SHA",
85 "SSL_DHE_DSS_WITH_DES_CBC_SHA",
86 "SSL_RSA_EXPORT_WITH_RC4_40_MD5",
87 "SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
88 "SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
89 "SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA"
90 });
91 cf.setProtocol("TLSv1.1");
92 cf.addExcludeProtocols(new String[]{"TLSv1","SSLv3"});
93 ssl_connector.setStatsOn(true);
94 server.addConnector(ssl_connector);
95 ssl_connector.open();
96
97
98
99
100 Ajp13SocketConnector ajp = new Ajp13SocketConnector();
101 ajp.setPort(8009);
102 server.addConnector(ajp);
103
104 HandlerCollection handlers = new HandlerCollection();
105 ContextHandlerCollection contexts = new ContextHandlerCollection();
106 RequestLogHandler requestLogHandler = new RequestLogHandler();
107
108 handlers.setHandlers(new Handler[] { contexts, new DefaultHandler(), requestLogHandler });
109
110 StatisticsHandler stats = new StatisticsHandler();
111 stats.setHandler(handlers);
112
113 server.setHandler(stats);
114
115
116 DeploymentManager deployer = new DeploymentManager();
117 deployer.setContexts(contexts);
118 server.addBean(deployer);
119
120 ContextProvider context_provider = new ContextProvider();
121 context_provider.setMonitoredDirName(jetty_home + "/contexts");
122 context_provider.setScanInterval(2);
123 deployer.addAppProvider(context_provider);
124
125 WebAppProvider webapp_provider = new WebAppProvider();
126 webapp_provider.setMonitoredDirName(jetty_home + "/webapps");
127 webapp_provider.setParentLoaderPriority(false);
128 webapp_provider.setExtractWars(true);
129 webapp_provider.setScanInterval(2);
130 webapp_provider.setDefaultsDescriptor(jetty_home + "/etc/webdefault.xml");
131 webapp_provider.setContextXmlDir(jetty_home + "/contexts");
132 deployer.addAppProvider(webapp_provider);
133
134 HashLoginService login = new HashLoginService();
135 login.setName("Test Realm");
136 login.setConfig(jetty_home + "/etc/realm.properties");
137 server.addBean(login);
138
139 NCSARequestLog requestLog = new NCSARequestLog(jetty_home + "/logs/jetty-yyyy_mm_dd.log");
140 requestLog.setExtended(false);
141 requestLogHandler.setRequestLog(requestLog);
142
143 server.setStopAtShutdown(true);
144 server.setSendServerVersion(true);
145
146
147 server.start();
148
149 server.join();
150 }
151
152 }