li.rudin.mavenjs.plugin.server.ServerTask Maven / Gradle / Ivy
package li.rudin.mavenjs.plugin.server;
import li.rudin.mavenjs.server.HTTPServer;
import li.rudin.mavenjs.servlet.Servlet;
import org.apache.maven.plugin.logging.Log;
import org.eclipse.jetty.servlet.ServletHolder;
public class ServerTask implements Runnable
{
public ServerTask(ServerMojo mojo)
{
logger = mojo.getLog();
server = new HTTPServer(mojo.port);
if (mojo.urlMappings != null)
{
for (URLMapping mapping: mojo.urlMappings)
{
logger.info("Mapping path: '" + mapping.getPath() + "' to target: '" + mapping.getTarget() + "'");
ServletHolder holder = new ServletHolder(CustomProxyServlet.class);
holder.setInitParameter("targetUri", mapping.getTarget());
holder.setInitParameter("log", "true");
server.map(holder, mapping.getPath());
}
}
server.map(Servlet.class, "/*");
}
private final Log logger;
private final HTTPServer server;
@Override
public void run()
{
try
{
server.start();
System.out.println("Server listening on port: " + server.getPort());
System.out.println("Press enter to stop...");
//TODO: implement stop() method
System.in.read();
server.stop();
}
catch (Exception e)
{
logger.error(e);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy