396460 Make ServerConnector configurable with jetty-maven-plugin
This commit is contained in:
parent
0c16c774ca
commit
d9b34930d5
|
@ -85,16 +85,6 @@ public abstract class AbstractJettyMojo extends AbstractMojo
|
|||
protected String[] excludedGoals;
|
||||
|
||||
|
||||
/**
|
||||
* List of connectors to use. If none are configured
|
||||
* then the default is a single SelectChannelConnector at port 8080. You can
|
||||
* override this default port number by using the system property jetty.port
|
||||
* on the command line, eg: mvn -Djetty.port=9999 jetty:run. Consider using instead
|
||||
* the <jettyXml> element to specify external jetty xml config file.
|
||||
*
|
||||
* @parameter
|
||||
*/
|
||||
protected Connector[] connectors;
|
||||
|
||||
|
||||
/**
|
||||
|
@ -283,10 +273,18 @@ public abstract class AbstractJettyMojo extends AbstractMojo
|
|||
protected List pluginArtifacts;
|
||||
|
||||
|
||||
/**
|
||||
* A ServerConnector to use.
|
||||
*
|
||||
* @parameter
|
||||
*/
|
||||
protected MavenServerConnector httpConnector;
|
||||
|
||||
|
||||
/**
|
||||
* A wrapper for the Server object
|
||||
*/
|
||||
protected JettyServer server;
|
||||
protected JettyServer server = JettyServer.getInstance();
|
||||
|
||||
|
||||
/**
|
||||
|
@ -473,28 +471,38 @@ public abstract class AbstractJettyMojo extends AbstractMojo
|
|||
getLog().debug("Starting Jetty Server ...");
|
||||
|
||||
printSystemProperties();
|
||||
this.server = new JettyServer();
|
||||
|
||||
//apply any config from a jetty.xml file first which is able to
|
||||
//be overwritten by config in the pom.xml
|
||||
applyJettyXml ();
|
||||
|
||||
// if the user hasn't configured their project's pom to use a
|
||||
// different set of connectors,
|
||||
// use the default
|
||||
// if a <httpConnector> was specified in the pom, use it
|
||||
if (httpConnector != null)
|
||||
{
|
||||
// check that its port was set
|
||||
if (httpConnector.getPort() <= 0)
|
||||
{
|
||||
//use any jetty.port settings provided
|
||||
String tmp = System.getProperty(PORT_SYSPROPERTY, MavenServerConnector.DEFAULT_PORT_STR);
|
||||
httpConnector.setPort(Integer.parseInt(tmp.trim()));
|
||||
}
|
||||
this.server.addConnector(httpConnector);
|
||||
}
|
||||
|
||||
// if the user hasn't configured the connectors in a jetty.xml file so use a default one
|
||||
Connector[] connectors = this.server.getConnectors();
|
||||
if (connectors == null|| connectors.length == 0)
|
||||
{
|
||||
//try using ones configured in pom
|
||||
this.server.setConnectors(this.connectors);
|
||||
|
||||
connectors = this.server.getConnectors();
|
||||
if (connectors == null || connectors.length == 0)
|
||||
//if <httpConnector> not configured in the pom, create one
|
||||
if (httpConnector == null)
|
||||
{
|
||||
//if a SystemProperty -Djetty.port=<portnum> has been supplied, use that as the default port
|
||||
this.connectors = new Connector[] { this.server.createDefaultConnector(System.getProperty(PORT_SYSPROPERTY, null)) };
|
||||
this.server.setConnectors(this.connectors);
|
||||
httpConnector = new MavenServerConnector();
|
||||
//use any jetty.port settings provided
|
||||
String tmp = System.getProperty(PORT_SYSPROPERTY, MavenServerConnector.DEFAULT_PORT_STR);
|
||||
httpConnector.setPort(Integer.parseInt(tmp.trim()));
|
||||
}
|
||||
|
||||
this.server.setConnectors(new Connector[] {httpConnector});
|
||||
}
|
||||
|
||||
//set up a RequestLog if one is provided
|
||||
|
@ -565,12 +573,12 @@ public abstract class AbstractJettyMojo extends AbstractMojo
|
|||
*/
|
||||
public void configureWebApplication () throws Exception
|
||||
{
|
||||
//As of jetty-7, you must use a <webAppConfig> element
|
||||
//As of jetty-7, you must use a <webApp> element
|
||||
if (webApp == null)
|
||||
webApp = new JettyWebAppContext();
|
||||
|
||||
//Apply any context xml file to set up the webapp
|
||||
//CAUTION: if you've defined a <webAppConfig> element then the
|
||||
//CAUTION: if you've defined a <webApp> element then the
|
||||
//context xml file can OVERRIDE those settings
|
||||
if (contextXml != null)
|
||||
{
|
||||
|
|
|
@ -38,15 +38,27 @@ import org.eclipse.jetty.webapp.WebAppContext;
|
|||
*/
|
||||
public class JettyServer extends org.eclipse.jetty.server.Server
|
||||
{
|
||||
public static int DEFAULT_PORT = 8080;
|
||||
public static int DEFAULT_MAX_IDLE_TIME = 30000;
|
||||
public static final JettyServer __instance = new JettyServer();
|
||||
|
||||
/**
|
||||
* Singleton instance
|
||||
* @return
|
||||
*/
|
||||
public static JettyServer getInstance()
|
||||
{
|
||||
return __instance;
|
||||
}
|
||||
|
||||
|
||||
private RequestLog requestLog;
|
||||
private ContextHandlerCollection contexts;
|
||||
|
||||
|
||||
public JettyServer()
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private JettyServer()
|
||||
{
|
||||
super();
|
||||
setStopAtShutdown(true);
|
||||
|
@ -109,19 +121,4 @@ public class JettyServer extends org.eclipse.jetty.server.Server
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public Connector createDefaultConnector(String portnum) throws Exception
|
||||
{
|
||||
ServerConnector connector = new ServerConnector(this);
|
||||
int port = ((portnum==null||portnum.equals(""))?DEFAULT_PORT:Integer.parseInt(portnum.trim()));
|
||||
connector.setPort(port);
|
||||
// connector.setMaxIdleTime(DEFAULT_MAX_IDLE_TIME);
|
||||
|
||||
return connector;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
//
|
||||
// ========================================================================
|
||||
// Copyright (c) 1995-2012 Mort Bay Consulting Pty. Ltd.
|
||||
// ------------------------------------------------------------------------
|
||||
// All rights reserved. This program and the accompanying materials
|
||||
// are made available under the terms of the Eclipse Public License v1.0
|
||||
// and Apache License v2.0 which accompanies this distribution.
|
||||
//
|
||||
// The Eclipse Public License is available at
|
||||
// http://www.eclipse.org/legal/epl-v10.html
|
||||
//
|
||||
// The Apache License v2.0 is available at
|
||||
// http://www.opensource.org/licenses/apache2.0.php
|
||||
//
|
||||
// You may elect to redistribute this code under either of these licenses.
|
||||
// ========================================================================
|
||||
//
|
||||
|
||||
|
||||
package org.eclipse.jetty.maven.plugin;
|
||||
|
||||
import org.eclipse.jetty.server.ServerConnector;
|
||||
|
||||
/**
|
||||
* MavenServerConnector
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class MavenServerConnector extends ServerConnector
|
||||
{
|
||||
public static int DEFAULT_PORT = 8080;
|
||||
public static String DEFAULT_PORT_STR = String.valueOf(DEFAULT_PORT);
|
||||
public static int DEFAULT_MAX_IDLE_TIME = 30000;
|
||||
|
||||
public MavenServerConnector()
|
||||
{
|
||||
super(JettyServer.getInstance());
|
||||
}
|
||||
}
|
|
@ -120,7 +120,7 @@ public class Starter
|
|||
{
|
||||
LOG.debug("Starting Jetty Server ...");
|
||||
|
||||
this.server = new JettyServer();
|
||||
this.server = JettyServer.getInstance();
|
||||
|
||||
//apply any configs from jetty.xml files first
|
||||
applyJettyXml ();
|
||||
|
@ -131,7 +131,10 @@ public class Starter
|
|||
if (connectors == null|| connectors.length == 0)
|
||||
{
|
||||
//if a SystemProperty -Djetty.port=<portnum> has been supplied, use that as the default port
|
||||
connectors = new Connector[] { this.server.createDefaultConnector(System.getProperty(PORT_SYSPROPERTY, null)) };
|
||||
MavenServerConnector httpConnector = new MavenServerConnector();
|
||||
String tmp = System.getProperty(PORT_SYSPROPERTY, MavenServerConnector.DEFAULT_PORT_STR);
|
||||
httpConnector.setPort(Integer.parseInt(tmp.trim()));
|
||||
connectors = new Connector[] {httpConnector};
|
||||
this.server.setConnectors(connectors);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue