package org.skyscreamer.yoga.demo.util; import java.util.Collections; import org.mortbay.jetty.Server; import org.mortbay.jetty.webapp.WebAppContext; public class JettyServer { public static JettyServer createServer( int port, boolean join ) throws Exception { JettyServer server = new JettyServer( port ); server.run( join ); return server; } Server server; WebAppContext context; public JettyServer() { this( 8082 ); } public JettyServer( int port ) { System.setProperty( "org.mortbay.util.FileResource.checkAliases", "false" ); server = new Server( port ); } public void run() throws Exception { run( true ); } public void run( boolean join ) throws Exception { context = new WebAppContext(); context.setResourceBase( "src/main/webapp" ); context.setContextPath( "/" ); context.setParentLoaderPriority( true ); context.setInitParams( Collections.singletonMap( "org.mortbay.jetty.servlet.Default.aliases", "true" ) ); server.setHandler( context ); server.start(); init(); if ( join ) { server.join(); } } protected void init() { // a child can do something interesting here. } public void stop() throws Exception { server.stop(); } }