FELIX-3197 Add org.apache.felix.http.host configuration property to configure the interface on which Jetty is to listen
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1197013 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyConfig.java b/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyConfig.java
index d3ba32e..177412a 100644
--- a/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyConfig.java
+++ b/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyConfig.java
@@ -26,6 +26,9 @@
public final class JettyConfig
{
+ /** Felix specific property to set the interface to listen on. Applies to both HTTP and HTTP */
+ private static final String FELIX_HOST = "org.apache.felix.http.host";
+
/** Standard OSGi port property for HTTP service */
private static final String HTTP_PORT = "org.osgi.service.http.port";
@@ -75,6 +78,7 @@
private final BundleContext context;
private boolean debug;
+ private String host;
private int httpPort;
private int httpsPort;
private String keystore;
@@ -145,6 +149,11 @@
return this.registerMBeans;
}
+ public String getHost()
+ {
+ return this.host;
+ }
+
public int getHttpPort()
{
return this.httpPort;
@@ -197,6 +206,7 @@
}
this.debug = getBooleanProperty(props, FELIX_HTTP_DEBUG, getBooleanProperty(props, HTTP_DEBUG, false));
+ this.host = getProperty(props, FELIX_HOST, null);
this.httpPort = getIntProperty(props, HTTP_PORT, 8080);
this.httpsPort = getIntProperty(props, HTTPS_PORT, 8443);
this.keystore = getProperty(props, FELIX_KEYSTORE, this.context.getProperty(OSCAR_KEYSTORE));
diff --git a/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyService.java b/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyService.java
index 949af3f..b709395 100644
--- a/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyService.java
+++ b/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/JettyService.java
@@ -201,7 +201,7 @@
? new SelectChannelConnector()
: new SocketConnector();
connector.setPort(this.config.getHttpPort());
- connector.setMaxIdleTime(60000);
+ configureConnector(connector);
this.server.addConnector(connector);
}
@@ -298,12 +298,24 @@
}
connector.setPort(this.config.getHttpsPort());
- connector.setMaxIdleTime(60000);
+ configureConnector(connector);
this.server.addConnector(connector);
}
- private void configureSessionManager(final Context context) {
+ private void configureConnector(final Connector connector)
+ {
+ connector.setMaxIdleTime(60000);
+ connector.setHost(this.config.getHost());
+ connector.setStatsOn(this.config.isRegisterMBeans());
+
+ // connector.setLowResourceMaxIdleTime(ms);
+ // connector.setRequestBufferSize(requestBufferSize);
+ // connector.setResponseBufferSize(responseBufferSize);
+ }
+
+ private void configureSessionManager(final Context context)
+ {
final SessionManager manager = context.getSessionHandler().getSessionManager();
manager.setSessionCookie(this.config.getProperty(SessionManager.__SessionCookieProperty, SessionManager.__DefaultSessionCookie));
manager.setSessionURL(this.config.getProperty(SessionManager.__SessionURLProperty, SessionManager.__DefaultSessionURL));