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.WebAppProvider;
25 import org.eclipse.jetty.jmx.MBeanContainer;
26 import org.eclipse.jetty.security.HashLoginService;
27 import org.eclipse.jetty.server.Handler;
28 import org.eclipse.jetty.server.HttpConnectionFactory;
29 import org.eclipse.jetty.server.NCSARequestLog;
30 import org.eclipse.jetty.server.Server;
31 import org.eclipse.jetty.server.ServerConnector;
32 import org.eclipse.jetty.server.handler.ContextHandlerCollection;
33 import org.eclipse.jetty.server.handler.DefaultHandler;
34 import org.eclipse.jetty.server.handler.HandlerCollection;
35 import org.eclipse.jetty.server.handler.RequestLogHandler;
36 import org.eclipse.jetty.server.handler.StatisticsHandler;
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
48 QueuedThreadPool threadPool = new QueuedThreadPool();
49 threadPool.setMaxThreads(500);
50
51 Server server = new Server(threadPool);
52 server.manage(threadPool);
53 server.setDumpAfterStart(false);
54 server.setDumpBeforeStop(false);
55
56
57 MBeanContainer mbContainer=new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
58 server.addBean(mbContainer);
59
60
61 HttpConnectionFactory http = new HttpConnectionFactory();
62 http.getHttpConfiguration().setSecurePort(8443);
63 http.getHttpConfiguration().setSendServerVersion(true);
64 ServerConnector connector = new ServerConnector(server,http);
65 connector.setPort(8080);
66 connector.setIdleTimeout(30000);
67
68 server.addConnector(connector);
69
70 SslContextFactory sslContextFactory = new SslContextFactory();
71 sslContextFactory.setKeyStorePath(jetty_home + "/etc/keystore");
72 sslContextFactory.setKeyStorePassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
73 sslContextFactory.setKeyManagerPassword("OBF:1u2u1wml1z7s1z7a1wnl1u2g");
74 sslContextFactory.setTrustStorePath(jetty_home + "/etc/keystore");
75 sslContextFactory.setTrustStorePassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
76 sslContextFactory.setExcludeCipherSuites(
77 "SSL_RSA_WITH_DES_CBC_SHA",
78 "SSL_DHE_RSA_WITH_DES_CBC_SHA",
79 "SSL_DHE_DSS_WITH_DES_CBC_SHA",
80 "SSL_RSA_EXPORT_WITH_RC4_40_MD5",
81 "SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
82 "SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
83 "SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA");
84 ServerConnector sslConnector = new ServerConnector(server,sslContextFactory);
85 sslConnector.setPort(8443);
86 server.addConnector(sslConnector);
87 sslConnector.open();
88
89 HandlerCollection handlers = new HandlerCollection();
90 ContextHandlerCollection contexts = new ContextHandlerCollection();
91 RequestLogHandler requestLogHandler = new RequestLogHandler();
92
93 handlers.setHandlers(new Handler[] { contexts, new DefaultHandler(), requestLogHandler });
94
95 StatisticsHandler stats = new StatisticsHandler();
96 stats.setHandler(handlers);
97
98 server.setHandler(stats);
99
100
101 DeploymentManager deployer = new DeploymentManager();
102 deployer.setContexts(contexts);
103 server.addBean(deployer);
104
105 WebAppProvider webapp_provider = new WebAppProvider();
106 webapp_provider.setMonitoredDirName(jetty_home + "/webapps");
107 webapp_provider.setParentLoaderPriority(false);
108 webapp_provider.setExtractWars(true);
109 webapp_provider.setScanInterval(2);
110
111 deployer.addAppProvider(webapp_provider);
112
113 HashLoginService login = new HashLoginService();
114 login.setName("Test Realm");
115 login.setConfig(jetty_home + "/etc/realm.properties");
116 server.addBean(login);
117
118 NCSARequestLog requestLog = new NCSARequestLog(jetty_home + "/logs/jetty-yyyy_mm_dd.log");
119 requestLog.setExtended(false);
120 requestLogHandler.setRequestLog(requestLog);
121
122 server.setStopAtShutdown(true);
123
124 server.start();
125 server.join();
126 }
127 }