diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2012-10-23 23:23:47 +0200 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2012-10-23 23:23:47 +0200 |
commit | bd96f0ee905af27a408eb202b8ccb08c6ee4355f (patch) | |
tree | e556efab6a49239459a1c45261a1aed90824ee9f /src/main/java/io/trygvis/appsh/booter/jetty8/JettyWebServer.java | |
parent | afd6cd235449af5387d5b243b1d57b8824e4b893 (diff) | |
download | app.sh-booter-jetty-bd96f0ee905af27a408eb202b8ccb08c6ee4355f.tar.gz app.sh-booter-jetty-bd96f0ee905af27a408eb202b8ccb08c6ee4355f.tar.bz2 app.sh-booter-jetty-bd96f0ee905af27a408eb202b8ccb08c6ee4355f.tar.xz app.sh-booter-jetty-bd96f0ee905af27a408eb202b8ccb08c6ee4355f.zip |
o Renaming packages.
Diffstat (limited to 'src/main/java/io/trygvis/appsh/booter/jetty8/JettyWebServer.java')
-rw-r--r-- | src/main/java/io/trygvis/appsh/booter/jetty8/JettyWebServer.java | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/src/main/java/io/trygvis/appsh/booter/jetty8/JettyWebServer.java b/src/main/java/io/trygvis/appsh/booter/jetty8/JettyWebServer.java deleted file mode 100644 index b0a3fef..0000000 --- a/src/main/java/io/trygvis/appsh/booter/jetty8/JettyWebServer.java +++ /dev/null @@ -1,108 +0,0 @@ -package io.trygvis.appsh.booter.jetty8; - -import org.eclipse.jetty.server.Connector; -import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.server.handler.ContextHandler; -import org.eclipse.jetty.server.handler.ContextHandlerCollection; -import org.eclipse.jetty.server.nio.SelectChannelConnector; -import org.eclipse.jetty.util.log.StdErrLog; -import org.eclipse.jetty.webapp.WebAppContext; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -public class JettyWebServer { - private File basedir = new File("").getAbsoluteFile(); - private File tmp, extraClasspath; - private int httpPort = 8080; - - List<Context> contexts = new ArrayList<Context>(); - - public void setBasedir(File basedir) { - this.basedir = basedir; - } - - public void setHttpPort(int port) { - this.httpPort = port; - } - - public Context addContext(String contextPath, File webapp) throws Exception { - Context context = new Context(); - context.setContextPath(contextPath); - context.setWebapp(webapp); - contexts.add(context); - return context; - } - - public void run() throws Exception { - tmp = new File(basedir, "tmp"); - - if (!tmp.isDirectory() && !tmp.mkdirs()) { - throw new IOException("Could not create temp directory: " + tmp); - } - - extraClasspath = new File(basedir, "etc"); - - if (!extraClasspath.isDirectory()) { - extraClasspath = null; - } - - System.setProperty("org.mortbay.log.class", StdErrLog.class.getName()); - - Server server = new Server(); - if (httpPort != 0) { - Connector connector = new SelectChannelConnector(); - connector.setPort(httpPort); - server.addConnector(connector); - } - - ContextHandlerCollection handler = new ContextHandlerCollection(); - server.setHandler(handler); - for (Context context : contexts) { - handler.addHandler(context.toJetty()); - } - - server.start(); - server.join(); - } - - public class Context { - private File webapp; - private String contextPath; - - public void setWebapp(File webapp) throws IOException { - if (!webapp.exists()) { - throw new IOException("File has to exist: " + webapp); - } - this.webapp = webapp; - } - - public void setContextPath(String contextPath) { - if (!contextPath.startsWith("/")) { - throw new RuntimeException("The context path has to start with '/'."); - } - - this.contextPath = contextPath; - } - - public ContextHandler toJetty() { - WebAppContext context = new WebAppContext(); - context.setContextPath(this.contextPath); - context.setWar(webapp.getAbsolutePath()); - if (extraClasspath != null) { - context.setExtraClasspath(extraClasspath.getAbsolutePath()); - } - - context.setExtractWAR(true); - // TODO: Should the temp directory be cleaned out before starting? - String dir = contextPath.substring(1); - if (dir.length() == 0) { - dir = "ROOT"; - } - context.setTempDirectory(new File(tmp, dir)); - return context; - } - } -} |