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 javax.management.MBeanConstructorInfo;
19 import javax.management.MBeanServer;
20
21 import org.eclipse.jetty.deploy.ContextDeployer;
22 import org.eclipse.jetty.deploy.WebAppDeployer;
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.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","..");
43 System.setProperty("jetty.home",jetty_home);
44
45 Server server = new Server();
46
47
48 MBeanContainer mbContainer=new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
49 server.getContainer().addEventListener(mbContainer);
50 server.addBean(mbContainer);
51 mbContainer.addBean(Log.getLog());
52
53
54
55 QueuedThreadPool threadPool = new QueuedThreadPool();
56 threadPool.setMaxThreads(100);
57 server.setThreadPool(threadPool);
58
59
60 SelectChannelConnector connector = new SelectChannelConnector();
61 connector.setPort(8080);
62 connector.setMaxIdleTime(30000);
63 connector.setConfidentialPort(8443);
64 server.setConnectors(new Connector[]
65 { connector });
66
67 SslSelectChannelConnector ssl_connector = new SslSelectChannelConnector();
68 ssl_connector.setPort(8443);
69 ssl_connector.setKeystore(jetty_home + "/etc/keystore");
70 ssl_connector.setPassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
71 ssl_connector.setKeyPassword("OBF:1u2u1wml1z7s1z7a1wnl1u2g");
72 ssl_connector.setTruststore(jetty_home + "/etc/keystore");
73 ssl_connector.setTrustPassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
74 server.addConnector(ssl_connector);
75
76 HandlerCollection handlers = new HandlerCollection();
77 ContextHandlerCollection contexts = new ContextHandlerCollection();
78 RequestLogHandler requestLogHandler = new RequestLogHandler();
79 handlers.setHandlers(new Handler[]
80 { contexts, new DefaultHandler(), requestLogHandler });
81 server.setHandler(handlers);
82
83
84
85
86 ContextDeployer deployer0 = new ContextDeployer();
87 deployer0.setContexts(contexts);
88 deployer0.setConfigurationDir(jetty_home + "/contexts");
89 deployer0.setScanInterval(1);
90 server.addBean(deployer0);
91
92 WebAppDeployer deployer1 = new WebAppDeployer();
93 deployer1.setContexts(contexts);
94 deployer1.setWebAppDir(jetty_home + "/webapps");
95 deployer1.setParentLoaderPriority(false);
96 deployer1.setExtract(true);
97 deployer1.setAllowDuplicates(false);
98 deployer1.setDefaultsDescriptor(jetty_home + "/etc/webdefault.xml");
99 server.addBean(deployer1);
100
101 HashLoginService login = new HashLoginService();
102 login.setName("Test Realm");
103 login.setConfig(jetty_home + "/etc/realm.properties");
104 server.addBean(login);
105
106 NCSARequestLog requestLog = new NCSARequestLog(jetty_home + "/logs/jetty-yyyy_mm_dd.log");
107 requestLog.setExtended(false);
108 requestLogHandler.setRequestLog(requestLog);
109
110 server.setStopAtShutdown(true);
111 server.setSendServerVersion(true);
112
113 server.start();
114 server.join();
115 }
116
117 }