1 6 7 package org.jfox.jetty; 8 9 import java.io.File ; 10 11 import org.jfox.ioc.ComponentContext; 12 import org.jfox.ioc.annotation.Managable; 13 import org.jfox.ioc.ext.ActiveComponent; 14 import org.jfox.ioc.ext.ManagableComponent; 15 import org.jfox.ioc.ext.ServicableComponent; 16 import org.mortbay.http.HttpContext; 17 import org.mortbay.j2ee.session.Manager; 18 19 22 23 public class JettyWebContainer implements ManagableComponent, ServicableComponent, ActiveComponent, Runnable { 24 private JettyServer server; 25 private String jettyConfig = "./conf/jetty.xml"; 26 27 private boolean started = false; 28 29 public JettyWebContainer() { 30 31 } 32 33 39 @Managable 40 public void start() throws Exception { 41 Thread thread = new Thread (this); 42 thread.start(); 43 44 started = true; 45 thread.join(); 46 } 47 48 @Managable 49 public void stop() throws Exception { 50 server.stop(); 51 started = false; 52 } 53 54 55 public void run() { 56 Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader()); 58 try { 59 File conf = new File (System.getProperty("jetty.home") + "/" + jettyConfig); 60 server = new JettyServer(conf.toURL()); 61 if(server.getRootWebApp() == "null" || server.getRootWebApp().equals("")) { 62 server.setRootWebApp("root"); 63 } 64 server.start(); 65 66 } 67 catch(Exception e) { 68 e.printStackTrace(); 69 } 70 } 71 72 @Managable 73 public boolean isStarted() { 74 return started && server.isStarted(); 75 } 76 77 @Managable 78 public String getConfiguration() { 79 return server == null ? null : server.getConfiguration(); 80 } 81 82 public String getRootWebApp() { 83 return server == null ? null : server.getRootWebApp(); 84 } 85 86 public void addContext(HttpContext context){ 87 server.addContext(context); 88 } 89 90 91 public HttpContext getContext(String context){ 92 return server.getContext(context); 93 } 94 95 public boolean removeContext(HttpContext context){ 96 return server.removeContext(context); 97 } 98 99 public void setComponentContext(ComponentContext ctx) { 100 System.setProperty("jetty.home", ctx.getModuleDir()); 101 102 } 103 public Manager getDistributableSessionManagerPrototype() { 104 return server.getDistributableSessionManagerPrototype(); 105 } 106 107 public boolean getForceDistributable() { 108 return server.getForceDistributable(); 109 } 110 public static void main(String [] args) throws Exception { 111 System.setProperty("jetty.home","."); 112 JettyWebContainer jetty = new JettyWebContainer(); 113 jetty.start(); 114 } 115 } 116 117 118 | Popular Tags |