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));