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