All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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