diff --git a/jetty-alpn/jetty-alpn-server/src/main/config/etc/protonego-alpn.xml b/jetty-alpn/jetty-alpn-server/src/main/config/etc/protonego-alpn.xml index 3c1ed6daacc..657f8836e37 100644 --- a/jetty-alpn/jetty-alpn-server/src/main/config/etc/protonego-alpn.xml +++ b/jetty-alpn/jetty-alpn-server/src/main/config/etc/protonego-alpn.xml @@ -1,19 +1,29 @@ - - - - spdy/3 - spdy/2 - http/1.1 - + + + + + + + + + + + + + + + + + + + - http/1.1 - - - + + diff --git a/jetty-alpn/jetty-alpn-server/src/main/config/modules/protonego-impl/alpn.mod b/jetty-alpn/jetty-alpn-server/src/main/config/modules/protonego-impl/alpn.mod index 0e399f05cb1..ca51179c269 100644 --- a/jetty-alpn/jetty-alpn-server/src/main/config/modules/protonego-impl/alpn.mod +++ b/jetty-alpn/jetty-alpn-server/src/main/config/modules/protonego-impl/alpn.mod @@ -27,9 +27,6 @@ protonego-impl/alpn-${java.version} lib/jetty-alpn-client-${jetty.version}.jar lib/jetty-alpn-server-${jetty.version}.jar -[xml] -etc/protonego-alpn.xml - [files] lib/ lib/alpn/ diff --git a/jetty-alpn/jetty-alpn-server/src/main/java/org/eclipse/jetty/alpn/server/ALPNServerConnectionFactory.java b/jetty-alpn/jetty-alpn-server/src/main/java/org/eclipse/jetty/alpn/server/ALPNServerConnectionFactory.java index a6e386b7bda..3a0e50853a5 100644 --- a/jetty-alpn/jetty-alpn-server/src/main/java/org/eclipse/jetty/alpn/server/ALPNServerConnectionFactory.java +++ b/jetty-alpn/jetty-alpn-server/src/main/java/org/eclipse/jetty/alpn/server/ALPNServerConnectionFactory.java @@ -34,6 +34,11 @@ public class ALPNServerConnectionFactory extends NegotiatingServerConnectionFact { private static final Logger LOG = Log.getLogger(ALPNServerConnectionFactory.class); + public ALPNServerConnectionFactory() + { + this(new String[]{}); + } + public ALPNServerConnectionFactory(@Name("protocols") String... protocols) { super("alpn", protocols); diff --git a/jetty-distribution/src/main/resources/modules/ssl-protonego.mod b/jetty-distribution/src/main/resources/modules/ssl-protonego.mod new file mode 100644 index 00000000000..4a348a68297 --- /dev/null +++ b/jetty-distribution/src/main/resources/modules/ssl-protonego.mod @@ -0,0 +1,11 @@ +# +# SSL Protonegotiate module +# + +[depend] +ssl +protonego + +[xml] +etc/protonego-${protonego}.xml + diff --git a/jetty-http2/http2-server/src/main/config/etc/jetty-http2.xml b/jetty-http2/http2-server/src/main/config/etc/jetty-http2.xml index 038f3d1371a..b0ad6581e10 100644 --- a/jetty-http2/http2-server/src/main/config/etc/jetty-http2.xml +++ b/jetty-http2/http2-server/src/main/config/etc/jetty-http2.xml @@ -2,60 +2,16 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + diff --git a/jetty-http2/http2-server/src/main/config/modules/http2.mod b/jetty-http2/http2-server/src/main/config/modules/http2.mod index b0d4bc8910a..f1a43941a97 100644 --- a/jetty-http2/http2-server/src/main/config/modules/http2.mod +++ b/jetty-http2/http2-server/src/main/config/modules/http2.mod @@ -3,8 +3,7 @@ # [depend] -ssl -protonego +ssl-protonego [lib] lib/http2/*.jar @@ -15,8 +14,3 @@ etc/jetty-http2.xml [ini-template] ## HTTP2 Configuration -# Port for HTTP2 connections -http2.port=8443 - -# HTTP2 idle timeout in milliseconds -http2.timeout=30000 diff --git a/jetty-npn/jetty-npn-server/src/main/config/etc/protonego-npn.xml b/jetty-npn/jetty-npn-server/src/main/config/etc/protonego-npn.xml index 743a5ecd6f1..2a24f6ca2d4 100644 --- a/jetty-npn/jetty-npn-server/src/main/config/etc/protonego-npn.xml +++ b/jetty-npn/jetty-npn-server/src/main/config/etc/protonego-npn.xml @@ -1,16 +1,28 @@ - - - - spdy/3 - spdy/2 - http/1.1 - - - - http/1.1 + + + + + + + + + + + + + + + + + + + + + + diff --git a/jetty-npn/jetty-npn-server/src/main/config/modules/protonego-impl/npn.mod b/jetty-npn/jetty-npn-server/src/main/config/modules/protonego-impl/npn.mod index f9d02061fb1..a1bbc46ee46 100644 --- a/jetty-npn/jetty-npn-server/src/main/config/modules/protonego-impl/npn.mod +++ b/jetty-npn/jetty-npn-server/src/main/config/modules/protonego-impl/npn.mod @@ -27,9 +27,6 @@ protonego-impl/npn-${java.version} lib/jetty-npn-client-${jetty.version}.jar lib/jetty-npn-server-${jetty.version}.jar -[xml] -etc/protonego-npn.xml - [files] lib/ lib/npn/ diff --git a/jetty-npn/jetty-npn-server/src/main/java/org/eclipse/jetty/npn/server/NPNServerConnectionFactory.java b/jetty-npn/jetty-npn-server/src/main/java/org/eclipse/jetty/npn/server/NPNServerConnectionFactory.java index 8c1cb190c54..39da0c404c9 100644 --- a/jetty-npn/jetty-npn-server/src/main/java/org/eclipse/jetty/npn/server/NPNServerConnectionFactory.java +++ b/jetty-npn/jetty-npn-server/src/main/java/org/eclipse/jetty/npn/server/NPNServerConnectionFactory.java @@ -34,6 +34,11 @@ public class NPNServerConnectionFactory extends NegotiatingServerConnectionFacto { private static final Logger LOG = Log.getLogger(NPNServerConnectionFactory.class); + public NPNServerConnectionFactory() + { + this(new String[]{}); + } + public NPNServerConnectionFactory(@Name("protocols") String... protocols) { super("npn", protocols); diff --git a/jetty-server/src/main/config/etc/jetty-https.xml b/jetty-server/src/main/config/etc/jetty-https.xml index 419f8d19ee6..f27cec070bd 100644 --- a/jetty-server/src/main/config/etc/jetty-https.xml +++ b/jetty-server/src/main/config/etc/jetty-https.xml @@ -6,43 +6,23 @@ - + - - - - - - - - - - - - + - - - - - - - http/1.1 - - - - - - - - - - - - - - - + + http/1.1 + + + + + + + + + + + diff --git a/jetty-server/src/main/config/etc/jetty-ssl.xml b/jetty-server/src/main/config/etc/jetty-ssl.xml index 4ac2d3e240b..1014c8507a0 100644 --- a/jetty-server/src/main/config/etc/jetty-ssl.xml +++ b/jetty-server/src/main/config/etc/jetty-ssl.xml @@ -2,21 +2,45 @@ - - - + + + - - / - - - / - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + / + + + + + + SSL_RSA_WITH_DES_CBC_SHA SSL_DHE_RSA_WITH_DES_CBC_SHA SSL_DHE_DSS_WITH_DES_CBC_SHA @@ -24,9 +48,10 @@ SSL_RSA_EXPORT_WITH_DES40_CBC_SHA SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA - - - + + + + diff --git a/jetty-server/src/main/config/modules/https.mod b/jetty-server/src/main/config/modules/https.mod index bd1b718081c..d576c56258d 100644 --- a/jetty-server/src/main/config/modules/https.mod +++ b/jetty-server/src/main/config/modules/https.mod @@ -10,10 +10,4 @@ etc/jetty-https.xml [ini-template] ## HTTPS Configuration -# HTTP port to listen on -https.port=8443 -# HTTPS idle timeout in milliseconds -https.timeout=30000 -# HTTPS Socket.soLingerTime in seconds. (-1 to disable) -# https.soLingerTime=-1 diff --git a/jetty-server/src/main/config/modules/ssl.mod b/jetty-server/src/main/config/modules/ssl.mod index 449f58104fb..fa3229e245e 100644 --- a/jetty-server/src/main/config/modules/ssl.mod +++ b/jetty-server/src/main/config/modules/ssl.mod @@ -16,6 +16,13 @@ http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/plain/jetty-server/ # define the port to use for secure redirection jetty.secure.port=8443 +# SSL port to listen on +ssl.port=8443 +# SSL idle timeout in milliseconds +ssl.timeout=30000 +# HTTPS Socket.soLingerTime in seconds. (-1 to disable) +# ssl.soLingerTime=-1 + # Setup a demonstration keystore and truststore jetty.keystore=etc/keystore jetty.truststore=etc/keystore diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/AbstractConnector.java b/jetty-server/src/main/java/org/eclipse/jetty/server/AbstractConnector.java index 027f5a26075..89d22129cce 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/AbstractConnector.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/AbstractConnector.java @@ -337,7 +337,7 @@ public abstract class AbstractConnector extends ContainerLifeCycle implements Co { synchronized (_factories) { - return _factories.get(protocol.toLowerCase(Locale.ENGLISH)); + return _factories.get(protocol); } } @@ -357,13 +357,20 @@ public abstract class AbstractConnector extends ContainerLifeCycle implements Co { synchronized (_factories) { - ConnectionFactory old=_factories.remove(factory.getProtocol()); + String key=factory.getProtocol(); + ConnectionFactory old=_factories.remove(key); if (old!=null) + { + if (old.getProtocol().equals(_defaultProtocol)) + _defaultProtocol=null; removeBean(old); - _factories.put(factory.getProtocol().toLowerCase(Locale.ENGLISH), factory); + LOG.info("{} removed {}",this,old); + } + _factories.put(key, factory); addBean(factory); if (_defaultProtocol==null) _defaultProtocol=factory.getProtocol(); + LOG.info("{} added {}",this,factory); } } @@ -371,12 +378,17 @@ public abstract class AbstractConnector extends ContainerLifeCycle implements Co { synchronized (_factories) { - if (_factories.containsKey(factory.getProtocol())) - return; - _factories.put(factory.getProtocol().toLowerCase(Locale.ENGLISH), factory); - addBean(factory); - if (_defaultProtocol==null) - _defaultProtocol=factory.getProtocol(); + String key=factory.getProtocol(); + if (_factories.containsKey(key)) + LOG.info("{} addIfAbsent ignored {}",this,factory); + else + { + _factories.put(key, factory); + addBean(factory); + if (_defaultProtocol==null) + _defaultProtocol=factory.getProtocol(); + LOG.info("{} addIfAbsent added {}",this,factory); + } } } @@ -384,7 +396,7 @@ public abstract class AbstractConnector extends ContainerLifeCycle implements Co { synchronized (_factories) { - ConnectionFactory factory= _factories.remove(protocol.toLowerCase(Locale.ENGLISH)); + ConnectionFactory factory= _factories.remove(protocol); removeBean(factory); return factory; } @@ -439,7 +451,7 @@ public abstract class AbstractConnector extends ContainerLifeCycle implements Co public void setDefaultProtocol(String defaultProtocol) { - _defaultProtocol = defaultProtocol.toLowerCase(Locale.ENGLISH); + _defaultProtocol = defaultProtocol; if (isRunning()) _defaultConnectionFactory=getConnectionFactory(_defaultProtocol); } diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/NegotiatingServerConnectionFactory.java b/jetty-server/src/main/java/org/eclipse/jetty/server/NegotiatingServerConnectionFactory.java index 08c8817189e..2daafb80f48 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/NegotiatingServerConnectionFactory.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/NegotiatingServerConnectionFactory.java @@ -18,9 +18,11 @@ package org.eclipse.jetty.server; +import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; + import javax.net.ssl.SSLEngine; import org.eclipse.jetty.io.AbstractConnection; @@ -58,7 +60,7 @@ public abstract class NegotiatingServerConnectionFactory extends AbstractConnect public NegotiatingServerConnectionFactory(String protocol, String... protocols) { super(protocol); - this.protocols = Arrays.asList(protocols); + this.protocols = new ArrayList(Arrays.asList(protocols)); } public String getDefaultProtocol() @@ -75,6 +77,11 @@ public abstract class NegotiatingServerConnectionFactory extends AbstractConnect { return protocols; } + + public void adProtocol(String protocol) + { + protocols.add(protocol); + } @Override public Connection newConnection(Connector connector, EndPoint endPoint) @@ -87,8 +94,7 @@ public abstract class NegotiatingServerConnectionFactory extends AbstractConnect while (i.hasNext()) { String protocol = i.next(); - String prefix = "ssl-"; - if (protocol.regionMatches(true, 0, prefix, 0, prefix.length()) || protocol.equalsIgnoreCase("alpn")) + if ("SSL".equalsIgnoreCase(protocol) || "alpn".equalsIgnoreCase("protocol")) { i.remove(); } diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/SslConnectionFactory.java b/jetty-server/src/main/java/org/eclipse/jetty/server/SslConnectionFactory.java index 5fcc1038da6..29c06b27171 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/SslConnectionFactory.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/SslConnectionFactory.java @@ -47,7 +47,7 @@ public class SslConnectionFactory extends AbstractConnectionFactory public SslConnectionFactory(@Name("sslContextFactory") SslContextFactory factory, @Name("next") String nextProtocol) { - super("SSL-"+nextProtocol); + super("SSL"); _sslContextFactory=factory==null?new SslContextFactory():factory; _nextProtocol=nextProtocol; addBean(_sslContextFactory); @@ -97,6 +97,7 @@ public class SslConnectionFactory extends AbstractConnectionFactory @Override public String toString() { - return String.format("%s@%x{%s}",this.getClass().getSimpleName(),hashCode(),getProtocol()); + return String.format("%s@%x{%s->%s}",this.getClass().getSimpleName(),hashCode(),getProtocol(),_nextProtocol); } + } diff --git a/jetty-spdy/spdy-http-server/src/main/config/etc/jetty-spdy.xml b/jetty-spdy/spdy-http-server/src/main/config/etc/jetty-spdy.xml index b094d7ce85b..fbaca7d5ef7 100644 --- a/jetty-spdy/spdy-http-server/src/main/config/etc/jetty-spdy.xml +++ b/jetty-spdy/spdy-http-server/src/main/config/etc/jetty-spdy.xml @@ -2,138 +2,76 @@ - - - + - + + + + + + + + + + + + - - - - - - - - - - - - - - 5000 - 32 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - - - - - - - - - - - - - - - 2 - - - - - - - - - - - - - - - - - - - - - - - - - - + + + 5000 + 32 + + + + + + + + + + 3 + + + + + + + + + + + + + + + 2 + + + + + + + + diff --git a/jetty-spdy/spdy-http-server/src/main/config/modules/spdy.mod b/jetty-spdy/spdy-http-server/src/main/config/modules/spdy.mod index cf79dfa0f20..cb4cf971c7d 100644 --- a/jetty-spdy/spdy-http-server/src/main/config/modules/spdy.mod +++ b/jetty-spdy/spdy-http-server/src/main/config/modules/spdy.mod @@ -3,8 +3,7 @@ # [depend] -ssl -protonego +ssl-protonego [lib] lib/spdy/*.jar @@ -16,11 +15,5 @@ etc/jetty-spdy.xml [ini-template] ## SPDY Configuration -# Port for SPDY connections -spdy.port=8443 - -# SPDY idle timeout in milliseconds -spdy.timeout=30000 - # Initial Window Size for SPDY #spdy.initialWindowSize=65536 diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/Modules.java b/jetty-start/src/main/java/org/eclipse/jetty/start/Modules.java index 804d63ae325..c0570a36041 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/Modules.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/Modules.java @@ -313,9 +313,10 @@ public class Modules implements Iterable if (module.isEnabled()) { // already enabled, skip + module.addSources(sources); return; } - + StartLog.debug("Enabling module: %s (via %s)",module.getName(),Main.join(sources,", ")); module.setEnabled(true); args.parseModule(module); @@ -348,7 +349,7 @@ public class Modules implements Iterable } if (parent != null) { - enableModule(parent,sources); + enableModule(parent,new ArrayList()); } } } diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java b/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java index 4aff293052b..06b92461dd7 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java @@ -425,6 +425,7 @@ public class StartArgs for (String xmlRef : module.getXmls()) { // Straight Reference + xmlRef=properties.expand(xmlRef); Path xmlfile = baseHome.getPath(xmlRef); addUniqueXmlFile(xmlRef,xmlfile); }