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