From 45a5b9c8b968755a7b24bedabc02294281ff0211 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Mon, 13 May 2019 11:13:59 -0500 Subject: [PATCH 01/34] Adding TLS mode to websocket BrowserDebugTool. Signed-off-by: Joakim Erdfelt --- .../server/browser/BrowserDebugTool.java | 49 +++++++++++++++++-- 1 file changed, 44 insertions(+), 5 deletions(-) diff --git a/jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/browser/BrowserDebugTool.java b/jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/browser/BrowserDebugTool.java index b0ae23f126d..a0b46bd4fa7 100644 --- a/jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/browser/BrowserDebugTool.java +++ b/jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/browser/BrowserDebugTool.java @@ -21,14 +21,19 @@ package org.eclipse.jetty.websocket.server.browser; import java.util.ArrayList; import java.util.List; +import org.eclipse.jetty.server.HttpConfiguration; +import org.eclipse.jetty.server.HttpConnectionFactory; +import org.eclipse.jetty.server.SecureRequestCustomizer; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; +import org.eclipse.jetty.server.SslConnectionFactory; import org.eclipse.jetty.server.handler.ResourceHandler; +import org.eclipse.jetty.toolchain.test.MavenTestingUtils; import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Logger; +import org.eclipse.jetty.util.ssl.SslContextFactory; import org.eclipse.jetty.websocket.api.extensions.ExtensionConfig; import org.eclipse.jetty.websocket.common.extensions.FrameDebugExtension; -import org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension; import org.eclipse.jetty.websocket.server.WebSocketHandler; import org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest; import org.eclipse.jetty.websocket.servlet.ServletUpgradeResponse; @@ -44,10 +49,12 @@ import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory; public class BrowserDebugTool implements WebSocketCreator { private static final Logger LOG = Log.getLogger(BrowserDebugTool.class); + private ServerConnector secureConnector; public static void main(String[] args) { int port = 8080; + int securePort = 8443; for (int i = 0; i < args.length; i++) { @@ -56,12 +63,17 @@ public class BrowserDebugTool implements WebSocketCreator { port = Integer.parseInt(args[++i]); } + + if ("-sP".equals(a) || "--securePort".equals(a)) + { + securePort = Integer.parseInt(args[++i]); + } } try { BrowserDebugTool tool = new BrowserDebugTool(); - tool.prepare(port); + tool.prepare(port, securePort); tool.start(); } catch (Throwable t) @@ -119,13 +131,39 @@ public class BrowserDebugTool implements WebSocketCreator return connector.getLocalPort(); } - public void prepare(int port) + public int getSecurePort() + { + return secureConnector.getLocalPort(); + } + + public void prepare(int port, int securePort) { server = new Server(); - connector = new ServerConnector(server); + + HttpConfiguration httpConfiguration = new HttpConfiguration(); + httpConfiguration.setSecureScheme("https"); + httpConfiguration.setSecurePort(securePort); + + connector = new ServerConnector(server, new HttpConnectionFactory(httpConfiguration)); connector.setPort(port); server.addConnector(connector); + SslContextFactory sslContextFactory = new SslContextFactory(); + sslContextFactory.setKeyStorePath(MavenTestingUtils.getTestResourceFile("keystore").getAbsolutePath()); + sslContextFactory.setKeyStorePassword("storepwd"); + sslContextFactory.setKeyManagerPassword("keypwd"); + + // SSL HTTP Configuration + HttpConfiguration httpsConfiguration = new HttpConfiguration(httpConfiguration); + httpsConfiguration.addCustomizer(new SecureRequestCustomizer()); + + // SSL Connector + secureConnector = new ServerConnector(server, + new SslConnectionFactory(sslContextFactory,"http/1.1"), + new HttpConnectionFactory(httpsConfiguration)); + secureConnector.setPort(securePort); + server.addConnector(secureConnector); + WebSocketHandler wsHandler = new WebSocketHandler() { @Override @@ -162,7 +200,8 @@ public class BrowserDebugTool implements WebSocketCreator public void start() throws Exception { server.start(); - LOG.info("Server available on port {}",getPort()); + LOG.info("Server available on port {}", getPort()); + LOG.info("Server available on secure (TLS) port {}", getSecurePort()); } public void stop() throws Exception From e665c8f806406ca8c1d8fe37bee740c5b693aed3 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Thu, 24 Oct 2019 15:35:59 -0500 Subject: [PATCH 02/34] Issue #4217 - SslConnection DecryptedEndpoint flush eternal busy loop Signed-off-by: Joakim Erdfelt --- .../jetty/client/HttpClientTLSTest.java | 131 +++++++++++- .../test/resources/jetty-logging.properties | 1 + .../eclipse/jetty/io/ssl/SslConnection.java | 186 ++++++++++++++---- 3 files changed, 282 insertions(+), 36 deletions(-) diff --git a/jetty-client/src/test/java/org/eclipse/jetty/client/HttpClientTLSTest.java b/jetty-client/src/test/java/org/eclipse/jetty/client/HttpClientTLSTest.java index d26d508556b..73328aa7722 100644 --- a/jetty-client/src/test/java/org/eclipse/jetty/client/HttpClientTLSTest.java +++ b/jetty-client/src/test/java/org/eclipse/jetty/client/HttpClientTLSTest.java @@ -23,13 +23,16 @@ import java.io.InputStreamReader; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; +import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutionException; +import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; - +import javax.net.ssl.SSLEngine; +import javax.net.ssl.SSLEngineResult; import javax.net.ssl.SSLException; import javax.net.ssl.SSLSocket; @@ -37,12 +40,20 @@ import org.eclipse.jetty.client.api.ContentResponse; import org.eclipse.jetty.http.HttpHeader; import org.eclipse.jetty.http.HttpScheme; import org.eclipse.jetty.http.HttpStatus; +import org.eclipse.jetty.io.ByteBufferPool; import org.eclipse.jetty.io.ClientConnectionFactory; +import org.eclipse.jetty.io.EndPoint; import org.eclipse.jetty.io.ssl.SslClientConnectionFactory; +import org.eclipse.jetty.io.ssl.SslConnection; import org.eclipse.jetty.io.ssl.SslHandshakeListener; +import org.eclipse.jetty.server.Connector; import org.eclipse.jetty.server.Handler; +import org.eclipse.jetty.server.HttpConfiguration; +import org.eclipse.jetty.server.HttpConnectionFactory; +import org.eclipse.jetty.server.SecureRequestCustomizer; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; +import org.eclipse.jetty.server.SslConnectionFactory; import org.eclipse.jetty.util.ssl.SslContextFactory; import org.eclipse.jetty.util.thread.QueuedThreadPool; import org.hamcrest.Matchers; @@ -50,6 +61,9 @@ import org.junit.After; import org.junit.Assert; import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + public class HttpClientTLSTest { private Server server; @@ -516,4 +530,119 @@ public class HttpClientTLSTest Assert.assertTrue(latch.await(5, TimeUnit.SECONDS)); } } + + @Test + public void testTLSLargeFragments() throws Exception + { + CountDownLatch serverLatch = new CountDownLatch(1); + SslContextFactory serverTLSFactory = createSslContextFactory(); + QueuedThreadPool serverThreads = new QueuedThreadPool(); + serverThreads.setName("server"); + server = new Server(serverThreads); + HttpConfiguration httpConfig = new HttpConfiguration(); + httpConfig.addCustomizer(new SecureRequestCustomizer()); + HttpConnectionFactory http = new HttpConnectionFactory(httpConfig); + SslConnectionFactory ssl = new SslConnectionFactory(serverTLSFactory, http.getProtocol()) + { + @Override + protected SslConnection newSslConnection(Connector connector, EndPoint endPoint, SSLEngine engine) + { + return new SslConnection(connector.getByteBufferPool(), connector.getExecutor(), endPoint, engine, isDirectBuffersForEncryption(), isDirectBuffersForDecryption()) + { + @Override + protected SSLEngineResult unwrap(SSLEngine sslEngine, ByteBuffer input, ByteBuffer output) throws SSLException + { + int inputBytes = input.remaining(); + SSLEngineResult result = super.unwrap(sslEngine, input, output); + if (inputBytes == 5) + serverLatch.countDown(); + return result; + } + }; + } + }; + connector = new ServerConnector(server, 1, 1, ssl, http); + server.addConnector(connector); + server.setHandler(new EmptyServerHandler()); + server.start(); + + long idleTimeout = 2000; + + CountDownLatch clientLatch = new CountDownLatch(1); + SslContextFactory clientTLSFactory = createSslContextFactory(); + QueuedThreadPool clientThreads = new QueuedThreadPool(); + clientThreads.setName("client"); + client = new HttpClient(clientTLSFactory) + { + @Override + protected ClientConnectionFactory newSslClientConnectionFactory(ClientConnectionFactory connectionFactory) + { + SslContextFactory sslContextFactory = getSslContextFactory(); + return new SslClientConnectionFactory(sslContextFactory, getByteBufferPool(), getExecutor(), connectionFactory) + { + @Override + protected SslConnection newSslConnection(ByteBufferPool byteBufferPool, Executor executor, EndPoint endPoint, SSLEngine engine) + { + return new SslConnection(byteBufferPool, executor, endPoint, engine, isDirectBuffersForEncryption(), isDirectBuffersForDecryption()) + { + @Override + protected SSLEngineResult wrap(SSLEngine sslEngine, ByteBuffer[] input, ByteBuffer output) throws SSLException + { + try + { + clientLatch.countDown(); + assertTrue(serverLatch.await(5, TimeUnit.SECONDS)); + return super.wrap(sslEngine, input, output); + } + catch (InterruptedException x) + { + throw new SSLException(x); + } + } + }; + } + }; + } + }; + client.setIdleTimeout(idleTimeout); + client.setExecutor(clientThreads); + client.start(); + + String host = "localhost"; + int port = connector.getLocalPort(); + + CountDownLatch responseLatch = new CountDownLatch(1); + client.newRequest(host, port) + .scheme(HttpScheme.HTTPS.asString()) + .send(result -> + { + assertTrue(result.isSucceeded()); + assertEquals(HttpStatus.OK_200, result.getResponse().getStatus()); + responseLatch.countDown(); + }); + // Wait for the TLS buffers to be acquired by the client, then the + // HTTP request will be paused waiting for the TLS buffer to be expanded. + assertTrue(clientLatch.await(5, TimeUnit.SECONDS)); + + // Send the large frame bytes that will enlarge the TLS buffers. + try (Socket socket = new Socket(host, port)) + { + OutputStream output = socket.getOutputStream(); + byte[] largeFrameBytes = new byte[5]; + largeFrameBytes[0] = 22; // Type = handshake + largeFrameBytes[1] = 3; // Major TLS version + largeFrameBytes[2] = 3; // Minor TLS version + // Frame length is 0x7FFF == 32767, i.e. a "large fragment". + // Maximum allowed by RFC 8446 is 16384, but SSLEngine supports up to 33093. + largeFrameBytes[3] = 0x7F; // Length hi byte + largeFrameBytes[4] = (byte)0xFF; // Length lo byte + output.write(largeFrameBytes); + output.flush(); + // Just close the connection now, the large frame + // length was enough to trigger the buffer expansion. + } + + // The HTTP request will resume and be forced to handle the TLS buffer expansion. + assertTrue(responseLatch.await(5, TimeUnit.SECONDS)); + } } diff --git a/jetty-client/src/test/resources/jetty-logging.properties b/jetty-client/src/test/resources/jetty-logging.properties index 1c19e5331e5..f5deb5cf206 100644 --- a/jetty-client/src/test/resources/jetty-logging.properties +++ b/jetty-client/src/test/resources/jetty-logging.properties @@ -1,3 +1,4 @@ org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog #org.eclipse.jetty.LEVEL=DEBUG #org.eclipse.jetty.client.LEVEL=DEBUG +#org.eclipse.jetty.io.ssl.LEVEL=DEBUG \ No newline at end of file diff --git a/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java b/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java index dba066e2a1a..18e9c46d3ae 100644 --- a/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java +++ b/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java @@ -24,13 +24,14 @@ import java.nio.channels.ClosedChannelException; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Executor; - +import java.util.function.ToIntFunction; import javax.net.ssl.SSLEngine; import javax.net.ssl.SSLEngineResult; import javax.net.ssl.SSLEngineResult.HandshakeStatus; import javax.net.ssl.SSLEngineResult.Status; import javax.net.ssl.SSLException; import javax.net.ssl.SSLHandshakeException; +import javax.net.ssl.SSLSession; import org.eclipse.jetty.io.AbstractConnection; import org.eclipse.jetty.io.AbstractEndPoint; @@ -38,6 +39,7 @@ import org.eclipse.jetty.io.ByteBufferPool; import org.eclipse.jetty.io.Connection; import org.eclipse.jetty.io.EndPoint; import org.eclipse.jetty.io.EofException; +import org.eclipse.jetty.io.RuntimeIOException; import org.eclipse.jetty.io.SelectChannelEndPoint; import org.eclipse.jetty.io.WriteFlusher; import org.eclipse.jetty.util.BufferUtil; @@ -212,6 +214,57 @@ public class SslConnection extends AbstractConnection this._allowMissingCloseMessage = allowMissingCloseMessage; } + private int getApplicationBufferSize() + { + return getBufferSize(SSLSession::getApplicationBufferSize); + } + + private int getPacketBufferSize() + { + return getBufferSize(SSLSession::getPacketBufferSize); + } + + private int getBufferSize(ToIntFunction bufferSizeFn) + { + SSLSession hsSession = _sslEngine.getHandshakeSession(); + SSLSession session = _sslEngine.getSession(); + int size = bufferSizeFn.applyAsInt(session); + if (hsSession == null || hsSession == session) + return size; + int hsSize = bufferSizeFn.applyAsInt(hsSession); + return Math.max(hsSize, size); + } + + private void acquireEncryptedInput() + { + if (_encryptedInput == null) + _encryptedInput = _bufferPool.acquire(getPacketBufferSize(), _encryptedDirectBuffers); + } + + private void acquireEncryptedOutput() + { + if (_encryptedOutput == null) + _encryptedOutput = _bufferPool.acquire(getPacketBufferSize(), _encryptedDirectBuffers); + } + + private void releaseEncryptedInputBuffer() + { + if (_encryptedInput != null && !_encryptedInput.hasRemaining()) + { + _bufferPool.release(_encryptedInput); + _encryptedInput = null; + } + } + + protected void releaseDecryptedInputBuffer() + { + if (_decryptedInput != null && !_decryptedInput.hasRemaining()) + { + _bufferPool.release(_decryptedInput); + _decryptedInput = null; + } + } + @Override public void onOpen() { @@ -298,6 +351,16 @@ public class SslConnection extends AbstractConnection _decryptedEndPoint.getWriteFlusher().onFail(cause); } + protected SSLEngineResult wrap(SSLEngine sslEngine, ByteBuffer[] input, ByteBuffer output) throws SSLException + { + return sslEngine.wrap(input, output); + } + + protected SSLEngineResult unwrap(SSLEngine sslEngine, ByteBuffer input, ByteBuffer output) throws SSLException + { + return sslEngine.unwrap(input, output); + } + @Override public String toString() { @@ -540,9 +603,12 @@ public class SslConnection extends AbstractConnection { if (connection instanceof AbstractConnection) { - AbstractConnection a = (AbstractConnection)connection; - if (a.getInputBufferSize()<_sslEngine.getSession().getApplicationBufferSize()) - a.setInputBufferSize(_sslEngine.getSession().getApplicationBufferSize()); + // This is an optimization to avoid that upper layer connections use small + // buffers and we need to copy decrypted data rather than decrypting in place. + AbstractConnection c = (AbstractConnection)connection; + int appBufferSize = getApplicationBufferSize(); + if (c.getInputBufferSize() < appBufferSize) + c.setInputBufferSize(appBufferSize); } super.setConnection(connection); } @@ -572,18 +638,22 @@ public class SslConnection extends AbstractConnection else BufferUtil.compact(_encryptedInput); - // We also need an app buffer, but can use the passed buffer if it is big enough - ByteBuffer app_in; - if (BufferUtil.space(buffer) > _sslEngine.getSession().getApplicationBufferSize()) - app_in = buffer; - else if (_decryptedInput == null) - app_in = _decryptedInput = _bufferPool.acquire(_sslEngine.getSession().getApplicationBufferSize(), _decryptedDirectBuffers); - else - app_in = _decryptedInput; // loop filling and unwrapping until we have something while (true) { + // We also need an app buffer, but can use the passed buffer if it is big enough + ByteBuffer app_in; + int appBufferSize = getApplicationBufferSize(); + if (BufferUtil.space(buffer) > appBufferSize) + app_in = buffer; + else if (_decryptedInput == null) + app_in = _decryptedInput = _bufferPool.acquire(appBufferSize, _decryptedDirectBuffers); + else + app_in = _decryptedInput; + + acquireEncryptedInput(); + // Let's try reading some encrypted data... even if we have some already. int net_filled = getEndPoint().fill(_encryptedInput); @@ -598,17 +668,20 @@ public class SslConnection extends AbstractConnection SSLEngineResult unwrapResult; try { - unwrapResult = _sslEngine.unwrap(_encryptedInput, app_in); + unwrapResult = unwrap(_sslEngine, _encryptedInput, app_in); } finally { BufferUtil.flipToFlush(app_in, pos); } + if (LOG.isDebugEnabled()) - { - LOG.debug("net={} unwrap {} {}", net_filled, unwrapResult.toString().replace('\n',' '), SslConnection.this); - LOG.debug("filled {} {}",BufferUtil.toHexSummary(buffer), SslConnection.this); - } + LOG.debug("unwrap net_filled={} {} encryptedBuffer={} unwrapBuffer={} appBuffer={}", + net_filled, + unwrapResult.toString().replace('\n',' '), + BufferUtil.toSummaryString(_encryptedInput), + BufferUtil.toDetailString(app_in), + BufferUtil.toDetailString(buffer)); HandshakeStatus handshakeStatus = _sslEngine.getHandshakeStatus(); HandshakeStatus unwrapHandshakeStatus = unwrapResult.getHandshakeStatus(); @@ -662,7 +735,41 @@ public class SslConnection extends AbstractConnection } } } + case BUFFER_OVERFLOW: + // It's possible that SSLSession.applicationBufferSize has been expanded + // by the SSLEngine implementation. Unwrapping a large encrypted buffer + // causes BUFFER_OVERFLOW because the (old) applicationBufferSize is + // too small. Release the decrypted input buffer so it will be re-acquired + // with the larger capacity. + // See also system property "jsse.SSLEngine.acceptLargeFragments". + if (BufferUtil.isEmpty(_decryptedInput) && appBufferSize < getApplicationBufferSize()) + { + releaseDecryptedInputBuffer(); + break decryption; + } + throw new IllegalStateException("Unexpected unwrap result " + unwrapResultStatus); + case BUFFER_UNDERFLOW: + if (net_filled > 0) + break decryption; // try filling some more + _underFlown = true; + if (net_filled < 0 && _sslEngine.getUseClientMode()) + { + try + { + closeInbound(); + } + catch (SSLException closeFailure) + { + Throwable handshakeFailure = new SSLHandshakeException("Abruptly closed by peer"); + if (closeFailure != null) + handshakeFailure.initCause(closeFailure); + throw handshakeFailure; + } + + return -1; + } + return net_filled; case OK: { if (unwrapHandshakeStatus == HandshakeStatus.FINISHED) @@ -671,7 +778,7 @@ public class SslConnection extends AbstractConnection // Check whether re-negotiation is allowed if (!allowRenegotiate(handshakeStatus)) return -1; - + // If bytes were produced, don't bother with the handshake status; // pass the decrypted data to the application, which will perform // another call to fill() or flush(). @@ -769,23 +876,17 @@ public class SslConnection extends AbstractConnection getExecutor().execute(failure == null ? _runCompletWrite : new FailWrite(failure)); } - if (_encryptedInput != null && !_encryptedInput.hasRemaining()) - { - _bufferPool.release(_encryptedInput); - _encryptedInput = null; - } - if (_decryptedInput != null && !_decryptedInput.hasRemaining()) - { - _bufferPool.release(_decryptedInput); - _decryptedInput = null; - } + releaseEncryptedInputBuffer(); + releaseDecryptedInputBuffer(); } } } catch (Throwable x) { close(x); - throw x; + if(x instanceof IOException) + throw (IOException) x; + throw new RuntimeIOException(x); } } @@ -895,19 +996,19 @@ public class SslConnection extends AbstractConnection return false; } - // We will need a network buffer - if (_encryptedOutput == null) - _encryptedOutput = _bufferPool.acquire(_sslEngine.getSession().getPacketBufferSize(), _encryptedDirectBuffers); - while (true) { - // We call sslEngine.wrap to try to take bytes from appOut buffers and encrypt them into the _netOut buffer + int packetBufferSize = getPacketBufferSize(); + acquireEncryptedOutput(); + + // We call sslEngine.wrap to try to take bytes from appOuts + // buffers and encrypt them into the _encryptedOutput buffer. BufferUtil.compact(_encryptedOutput); int pos = BufferUtil.flipToFill(_encryptedOutput); SSLEngineResult wrapResult; try { - wrapResult = _sslEngine.wrap(appOuts, _encryptedOutput); + wrapResult = wrap(_sslEngine, appOuts,_encryptedOutput); } finally { @@ -948,6 +1049,21 @@ public class SslConnection extends AbstractConnection } return allConsumed; } + case BUFFER_OVERFLOW: + { + // It's possible that SSLSession.packetBufferSize has been expanded + // by the SSLEngine implementation. Wrapping a large application buffer + // causes BUFFER_OVERFLOW because the (old) packetBufferSize is + // too small. Release the encrypted output buffer so that it will + // be re-acquired with the larger capacity. + // See also system property "jsse.SSLEngine.acceptLargeFragments". + if (packetBufferSize < getPacketBufferSize()) + { + releaseEncryptedOutputBuffer(); + continue; + } + throw new IllegalStateException("Unexpected wrap result " + wrapResultStatus); + } case BUFFER_UNDERFLOW: { throw new IllegalStateException(); From 93a5ff0b8912e236b74aef041b03a820e5001cb9 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Fri, 25 Oct 2019 16:41:26 -0500 Subject: [PATCH 03/34] Issue #4217 - SslConnection DecryptedEndpoint flush eternal busy loop + Small cleanup of duplicate if statements Signed-off-by: Joakim Erdfelt --- .../eclipse/jetty/io/ssl/SslConnection.java | 21 +------------------ 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java b/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java index 18e9c46d3ae..88e95e8fef4 100644 --- a/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java +++ b/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java @@ -692,14 +692,6 @@ public class SslConnection extends AbstractConnection _underFlown = unwrapResultStatus == Status.BUFFER_UNDERFLOW || unwrapResultStatus == Status.OK && unwrapResult.bytesConsumed() == 0 && unwrapResult.bytesProduced() == 0; - if (_underFlown) - { - if (net_filled < 0 && _sslEngine.getUseClientMode()) - closeInbound(); - if (net_filled <= 0) - return net_filled; - } - switch (unwrapResultStatus) { case CLOSED: @@ -707,32 +699,22 @@ public class SslConnection extends AbstractConnection switch (handshakeStatus) { case NOT_HANDSHAKING: - { // We were not handshaking, so just tell the app we are closed return -1; - } case NEED_TASK: - { _sslEngine.getDelegatedTask().run(); continue; - } case NEED_WRAP: - { // We need to send some handshake data (probably the close handshake). // We return -1 so that the application can drive the close by flushing // or shutting down the output. return -1; - } case NEED_UNWRAP: - { // We expected to read more, but we got closed. // Return -1 to indicate to the application to drive the close. return -1; - } default: - { throw new IllegalStateException(); - } } } case BUFFER_OVERFLOW: @@ -762,8 +744,7 @@ public class SslConnection extends AbstractConnection catch (SSLException closeFailure) { Throwable handshakeFailure = new SSLHandshakeException("Abruptly closed by peer"); - if (closeFailure != null) - handshakeFailure.initCause(closeFailure); + handshakeFailure.initCause(closeFailure); throw handshakeFailure; } From c58fd58e41f8b38208bd041853d64e7f639e1e0f Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Tue, 29 Oct 2019 19:14:07 -0500 Subject: [PATCH 04/34] Testing Large TLS Records for Jetty 9.2.x Signed-off-by: Joakim Erdfelt --- .../jetty/client/HttpClientTLSTest.java | 155 ++++++++++++++++++ .../eclipse/jetty/io/ssl/SslConnection.java | 15 +- 2 files changed, 167 insertions(+), 3 deletions(-) diff --git a/jetty-client/src/test/java/org/eclipse/jetty/client/HttpClientTLSTest.java b/jetty-client/src/test/java/org/eclipse/jetty/client/HttpClientTLSTest.java index fe4de6bfe34..2aa21e9fba6 100644 --- a/jetty-client/src/test/java/org/eclipse/jetty/client/HttpClientTLSTest.java +++ b/jetty-client/src/test/java/org/eclipse/jetty/client/HttpClientTLSTest.java @@ -18,19 +18,45 @@ package org.eclipse.jetty.client; +import java.io.OutputStream; +import java.net.Socket; +import java.nio.ByteBuffer; +import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutionException; +import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; +import javax.net.ssl.SSLEngine; +import javax.net.ssl.SSLEngineResult; +import javax.net.ssl.SSLException; +import org.eclipse.jetty.client.api.Response; +import org.eclipse.jetty.client.api.Result; +import org.eclipse.jetty.client.http.HttpClientTransportOverHTTP; +import org.eclipse.jetty.client.http.HttpDestinationOverHTTP; import org.eclipse.jetty.http.HttpScheme; +import org.eclipse.jetty.http.HttpStatus; +import org.eclipse.jetty.io.ByteBufferPool; +import org.eclipse.jetty.io.ClientConnectionFactory; +import org.eclipse.jetty.io.EndPoint; +import org.eclipse.jetty.io.ssl.SslClientConnectionFactory; +import org.eclipse.jetty.io.ssl.SslConnection; +import org.eclipse.jetty.server.Connector; import org.eclipse.jetty.server.Handler; +import org.eclipse.jetty.server.HttpConfiguration; +import org.eclipse.jetty.server.HttpConnectionFactory; +import org.eclipse.jetty.server.SecureRequestCustomizer; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; +import org.eclipse.jetty.server.SslConnectionFactory; import org.eclipse.jetty.util.ssl.SslContextFactory; import org.eclipse.jetty.util.thread.QueuedThreadPool; import org.junit.After; import org.junit.Assert; import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + public class HttpClientTLSTest { private Server server; @@ -180,4 +206,133 @@ public class HttpClientTLSTest // Expected. } } + + @Test + public void testTLSLargeFragments() throws Exception + { + final CountDownLatch serverLatch = new CountDownLatch(1); + SslContextFactory serverTLSFactory = createSslContextFactory(); + QueuedThreadPool serverThreads = new QueuedThreadPool(); + serverThreads.setName("server"); + server = new Server(serverThreads); + HttpConfiguration httpConfig = new HttpConfiguration(); + httpConfig.addCustomizer(new SecureRequestCustomizer()); + HttpConnectionFactory http = new HttpConnectionFactory(httpConfig); + SslConnectionFactory ssl = new SslConnectionFactory(serverTLSFactory, http.getProtocol()) + { + @Override + protected SslConnection newSslConnection(Connector connector, EndPoint endPoint, SSLEngine engine) + { + return new SslConnection(connector.getByteBufferPool(), connector.getExecutor(), endPoint, engine, isDirectBuffersForEncryption(), isDirectBuffersForDecryption()) + { + @Override + protected SSLEngineResult unwrap(SSLEngine sslEngine, ByteBuffer input, ByteBuffer output) throws SSLException + { + int inputBytes = input.remaining(); + SSLEngineResult result = super.unwrap(sslEngine, input, output); + if (inputBytes == 5) + serverLatch.countDown(); + return result; + } + }; + } + }; + connector = new ServerConnector(server, 1, 1, ssl, http); + server.addConnector(connector); + server.setHandler(new EmptyServerHandler()); + server.start(); + + long idleTimeout = 2000; + + final CountDownLatch clientLatch = new CountDownLatch(1); + final SslContextFactory clientTLSFactory = createSslContextFactory(); + QueuedThreadPool clientThreads = new QueuedThreadPool(); + clientThreads.setName("client"); + client = new HttpClient( + new HttpClientTransportOverHTTP() + { + @Override + public HttpDestination newHttpDestination(Origin origin) + { + return new HttpDestinationOverHTTP(getHttpClient(), origin) + { + @Override + protected ClientConnectionFactory newSslClientConnectionFactory(ClientConnectionFactory connectionFactory) + { + SslContextFactory sslContextFactory = getHttpClient().getSslContextFactory(); + ByteBufferPool bufferPool = getHttpClient().getByteBufferPool(); + Executor executor = getHttpClient().getExecutor(); + return new SslClientConnectionFactory(sslContextFactory, bufferPool, executor, connectionFactory) + { + @Override + protected SslConnection newSslConnection(ByteBufferPool byteBufferPool, Executor executor, EndPoint endPoint, SSLEngine engine) + { + return new SslConnection(byteBufferPool, executor, endPoint, engine, isDirectBuffersForEncryption(), isDirectBuffersForDecryption()) + { + @Override + protected SSLEngineResult wrap(SSLEngine sslEngine, ByteBuffer[] input, ByteBuffer output) throws SSLException + { + try + { + clientLatch.countDown(); + assertTrue(serverLatch.await(5, TimeUnit.SECONDS)); + return super.wrap(sslEngine, input, output); + } + catch (InterruptedException x) + { + throw new SSLException(x); + } + } + }; + } + }; + } + }; + } + }, clientTLSFactory); + client.setIdleTimeout(idleTimeout); + client.setExecutor(clientThreads); + client.start(); + + String host = "localhost"; + int port = connector.getLocalPort(); + + final CountDownLatch responseLatch = new CountDownLatch(1); + client.newRequest(host, port) + .scheme(HttpScheme.HTTPS.asString()) + .send(new Response.CompleteListener() + { + public void onComplete(Result result) + { + assertTrue(result.isSucceeded()); + assertEquals(HttpStatus.OK_200, result.getResponse().getStatus()); + responseLatch.countDown(); + } + } + ); + // Wait for the TLS buffers to be acquired by the client, then the + // HTTP request will be paused waiting for the TLS buffer to be expanded. + assertTrue(clientLatch.await(5, TimeUnit.SECONDS)); + + // Send the large frame bytes that will enlarge the TLS buffers. + try (Socket socket = new Socket(host, port)) + { + OutputStream output = socket.getOutputStream(); + byte[] largeFrameBytes = new byte[5]; + largeFrameBytes[0] = 22; // Type = handshake + largeFrameBytes[1] = 3; // Major TLS version + largeFrameBytes[2] = 3; // Minor TLS version + // Frame length is 0x7FFF == 32767, i.e. a "large fragment". + // Maximum allowed by RFC 8446 is 16384, but SSLEngine supports up to 33093. + largeFrameBytes[3] = 0x7F; // Length hi byte + largeFrameBytes[4] = (byte)0xFF; // Length lo byte + output.write(largeFrameBytes); + output.flush(); + // Just close the connection now, the large frame + // length was enough to trigger the buffer expansion. + } + + // The HTTP request will resume and be forced to handle the TLS buffer expansion. + assertTrue(responseLatch.await(5, TimeUnit.SECONDS)); + } } diff --git a/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java b/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java index 9cb3cf94bda..819e41b4865 100644 --- a/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java +++ b/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java @@ -23,7 +23,6 @@ import java.nio.ByteBuffer; import java.nio.channels.ClosedChannelException; import java.util.Arrays; import java.util.concurrent.Executor; - import javax.net.ssl.SSLEngine; import javax.net.ssl.SSLEngineResult; import javax.net.ssl.SSLEngineResult.HandshakeStatus; @@ -230,6 +229,16 @@ public class SslConnection extends AbstractConnection _decryptedEndPoint.getWriteFlusher().onFail(cause); } + protected SSLEngineResult wrap(SSLEngine sslEngine, ByteBuffer[] input, ByteBuffer output) throws SSLException + { + return sslEngine.wrap(input, output); + } + + protected SSLEngineResult unwrap(SSLEngine sslEngine, ByteBuffer input, ByteBuffer output) throws SSLException + { + return sslEngine.unwrap(input, output); + } + @Override public String toString() { @@ -525,7 +534,7 @@ public class SslConnection extends AbstractConnection SSLEngineResult unwrapResult; try { - unwrapResult = _sslEngine.unwrap(_encryptedInput, app_in); + unwrapResult = unwrap(_sslEngine, _encryptedInput, app_in); } finally { @@ -757,7 +766,7 @@ public class SslConnection extends AbstractConnection SSLEngineResult wrapResult; try { - wrapResult=_sslEngine.wrap(appOuts, _encryptedOutput); + wrapResult = wrap(_sslEngine, appOuts, _encryptedOutput); } finally { From e137ee3cd7eed6972497d150a65d7949ab2f7a75 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Wed, 30 Oct 2019 14:03:16 -0500 Subject: [PATCH 05/34] Issue #4217 - SslConnection DecryptedEndpoint flush eternal busy loop + Cleanup from review Signed-off-by: Joakim Erdfelt --- .../jetty/client/ssl/SslBytesClientTest.java | 5 +++- .../eclipse/jetty/io/ssl/SslConnection.java | 28 ++++++------------- 2 files changed, 13 insertions(+), 20 deletions(-) diff --git a/jetty-client/src/test/java/org/eclipse/jetty/client/ssl/SslBytesClientTest.java b/jetty-client/src/test/java/org/eclipse/jetty/client/ssl/SslBytesClientTest.java index 83684dd8397..1c027ea0c23 100644 --- a/jetty-client/src/test/java/org/eclipse/jetty/client/ssl/SslBytesClientTest.java +++ b/jetty-client/src/test/java/org/eclipse/jetty/client/ssl/SslBytesClientTest.java @@ -30,7 +30,6 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; - import javax.net.ssl.SSLContext; import javax.net.ssl.SSLServerSocket; import javax.net.ssl.SSLSocket; @@ -41,10 +40,12 @@ import org.eclipse.jetty.client.api.Request; import org.eclipse.jetty.client.util.FutureResponseListener; import org.eclipse.jetty.http.HttpScheme; import org.eclipse.jetty.http.HttpStatus; +import org.eclipse.jetty.toolchain.test.JDK; import org.eclipse.jetty.toolchain.test.MavenTestingUtils; import org.eclipse.jetty.util.ssl.SslContextFactory; import org.junit.After; import org.junit.Assert; +import org.junit.Assume; import org.junit.Before; import org.junit.Test; @@ -59,6 +60,8 @@ public class SslBytesClientTest extends SslBytesTest @Before public void init() throws Exception { + // Disable for JDK 9 and above. + Assume.assumeFalse(JDK.IS_9); threadPool = Executors.newCachedThreadPool(); client = new HttpClient(new SslContextFactory(true)); diff --git a/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java b/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java index 88e95e8fef4..b9fde82aa6a 100644 --- a/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java +++ b/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java @@ -645,6 +645,7 @@ public class SslConnection extends AbstractConnection // We also need an app buffer, but can use the passed buffer if it is big enough ByteBuffer app_in; int appBufferSize = getApplicationBufferSize(); + if (BufferUtil.space(buffer) > appBufferSize) app_in = buffer; else if (_decryptedInput == null) @@ -692,6 +693,14 @@ public class SslConnection extends AbstractConnection _underFlown = unwrapResultStatus == Status.BUFFER_UNDERFLOW || unwrapResultStatus == Status.OK && unwrapResult.bytesConsumed() == 0 && unwrapResult.bytesProduced() == 0; + if (_underFlown) + { + if (net_filled < 0 && _sslEngine.getUseClientMode()) + closeInbound(); + if (net_filled <= 0) + return net_filled; + } + switch (unwrapResultStatus) { case CLOSED: @@ -732,25 +741,6 @@ public class SslConnection extends AbstractConnection throw new IllegalStateException("Unexpected unwrap result " + unwrapResultStatus); case BUFFER_UNDERFLOW: - if (net_filled > 0) - break decryption; // try filling some more - _underFlown = true; - if (net_filled < 0 && _sslEngine.getUseClientMode()) - { - try - { - closeInbound(); - } - catch (SSLException closeFailure) - { - Throwable handshakeFailure = new SSLHandshakeException("Abruptly closed by peer"); - handshakeFailure.initCause(closeFailure); - throw handshakeFailure; - } - - return -1; - } - return net_filled; case OK: { if (unwrapHandshakeStatus == HandshakeStatus.FINISHED) From 737144a35e80911fbb9264f5a0ff137f32447065 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Wed, 30 Oct 2019 15:29:20 -0500 Subject: [PATCH 06/34] Issue #4217 - Allowing Large TLS Records in Java 11+ in Jetty 9.2.x Signed-off-by: Joakim Erdfelt --- .../eclipse/jetty/io/ssl/SslConnection.java | 147 ++++++++++++++---- 1 file changed, 117 insertions(+), 30 deletions(-) diff --git a/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java b/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java index 819e41b4865..3d8f1414e25 100644 --- a/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java +++ b/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java @@ -28,6 +28,7 @@ import javax.net.ssl.SSLEngineResult; import javax.net.ssl.SSLEngineResult.HandshakeStatus; import javax.net.ssl.SSLEngineResult.Status; import javax.net.ssl.SSLException; +import javax.net.ssl.SSLSession; import org.eclipse.jetty.io.AbstractConnection; import org.eclipse.jetty.io.AbstractEndPoint; @@ -142,6 +143,57 @@ public class SslConnection extends AbstractConnection this._renegotiationAllowed = renegotiationAllowed; } + private int getApplicationBufferSize() + { + SSLSession hsSession = _sslEngine.getHandshakeSession(); + SSLSession session = _sslEngine.getSession(); + int size = session.getApplicationBufferSize(); + if (hsSession == null || hsSession == session) + return size; + int hsSize = hsSession.getApplicationBufferSize(); + return Math.max(hsSize, size); + } + + private int getPacketBufferSize() + { + SSLSession hsSession = _sslEngine.getHandshakeSession(); + SSLSession session = _sslEngine.getSession(); + int size = session.getPacketBufferSize(); + if (hsSession == null || hsSession == session) + return size; + int hsSize = hsSession.getPacketBufferSize(); + return Math.max(hsSize, size); + } + + private void acquireEncryptedInput() + { + if (_encryptedInput == null) + _encryptedInput = _bufferPool.acquire(getPacketBufferSize(), _encryptedDirectBuffers); + } + + private void acquireEncryptedOutput() + { + if (_encryptedOutput == null) + _encryptedOutput = _bufferPool.acquire(getPacketBufferSize(), _encryptedDirectBuffers); + } + + private void releaseEncryptedInputBuffer() + { + if (_encryptedInput != null && !_encryptedInput.hasRemaining()) + { + _bufferPool.release(_encryptedInput); + _encryptedInput = null; + } + } + + protected void releaseDecryptedInputBuffer() + { + if (_decryptedInput != null && !_decryptedInput.hasRemaining()) + { + _bufferPool.release(_decryptedInput); + _decryptedInput = null; + } + } @Override public void onOpen() { @@ -480,9 +532,12 @@ public class SslConnection extends AbstractConnection { if (connection instanceof AbstractConnection) { - AbstractConnection a = (AbstractConnection)connection; - if (a.getInputBufferSize()<_sslEngine.getSession().getApplicationBufferSize()) - a.setInputBufferSize(_sslEngine.getSession().getApplicationBufferSize()); + // This is an optimization to avoid that upper layer connections use small + // buffers and we need to copy decrypted data rather than decrypting in place. + AbstractConnection c = (AbstractConnection)connection; + int appBufferSize = getApplicationBufferSize(); + if (c.getInputBufferSize() < appBufferSize) + c.setInputBufferSize(appBufferSize); } super.setConnection(connection); } @@ -509,18 +564,22 @@ public class SslConnection extends AbstractConnection else BufferUtil.compact(_encryptedInput); - // We also need an app buffer, but can use the passed buffer if it is big enough - ByteBuffer app_in; - if (BufferUtil.space(buffer) > _sslEngine.getSession().getApplicationBufferSize()) - app_in = buffer; - else if (_decryptedInput == null) - app_in = _decryptedInput = _bufferPool.acquire(_sslEngine.getSession().getApplicationBufferSize(), _decryptedDirectBuffers); - else - app_in = _decryptedInput; - // loop filling and unwrapping until we have something while (true) { + // We also need an app buffer, but can use the passed buffer if it is big enough + ByteBuffer app_in; + int appBufferSize = getApplicationBufferSize(); + + if (BufferUtil.space(buffer) > appBufferSize) + app_in = buffer; + else if (_decryptedInput == null) + app_in = _decryptedInput = _bufferPool.acquire(appBufferSize, _decryptedDirectBuffers); + else + app_in = _decryptedInput; + + acquireEncryptedInput(); + // Let's try reading some encrypted data... even if we have some already. int net_filled = getEndPoint().fill(_encryptedInput); if (DEBUG) @@ -540,8 +599,13 @@ public class SslConnection extends AbstractConnection { BufferUtil.flipToFlush(app_in, pos); } - if (DEBUG) - LOG.debug("{} unwrap {}", SslConnection.this, unwrapResult); + if (LOG.isDebugEnabled()) + LOG.debug("unwrap net_filled={} {} encryptedBuffer={} unwrapBuffer={} appBuffer={}", + net_filled, + unwrapResult.toString().replace('\n',' '), + BufferUtil.toSummaryString(_encryptedInput), + BufferUtil.toDetailString(app_in), + BufferUtil.toDetailString(buffer)); HandshakeStatus handshakeStatus = _sslEngine.getHandshakeStatus(); HandshakeStatus unwrapHandshakeStatus = unwrapResult.getHandshakeStatus(); @@ -594,6 +658,19 @@ public class SslConnection extends AbstractConnection } } } + case BUFFER_OVERFLOW: + // It's possible that SSLSession.applicationBufferSize has been expanded + // by the SSLEngine implementation. Unwrapping a large encrypted buffer + // causes BUFFER_OVERFLOW because the (old) applicationBufferSize is + // too small. Release the decrypted input buffer so it will be re-acquired + // with the larger capacity. + // See also system property "jsse.SSLEngine.acceptLargeFragments". + if (BufferUtil.isEmpty(_decryptedInput) && appBufferSize < getApplicationBufferSize()) + { + releaseDecryptedInputBuffer(); + break decryption; + } + throw new IllegalStateException("Unexpected unwrap result " + unwrapResultStatus); case BUFFER_UNDERFLOW: case OK: { @@ -693,16 +770,9 @@ public class SslConnection extends AbstractConnection getExecutor().execute(_runCompletWrite); } - if (_encryptedInput != null && !_encryptedInput.hasRemaining()) - { - _bufferPool.release(_encryptedInput); - _encryptedInput = null; - } - if (_decryptedInput != null && !_decryptedInput.hasRemaining()) - { - _bufferPool.release(_decryptedInput); - _decryptedInput = null; - } + releaseEncryptedInputBuffer(); + releaseDecryptedInputBuffer(); + if (DEBUG) LOG.debug("{} fill exit", SslConnection.this); } @@ -754,19 +824,20 @@ public class SslConnection extends AbstractConnection return false; } - // We will need a network buffer - if (_encryptedOutput == null) - _encryptedOutput = _bufferPool.acquire(_sslEngine.getSession().getPacketBufferSize(), _encryptedDirectBuffers); - while (true) { - // We call sslEngine.wrap to try to take bytes from appOut buffers and encrypt them into the _netOut buffer + int packetBufferSize = getPacketBufferSize(); + acquireEncryptedOutput(); + + // We call sslEngine.wrap to try to take bytes from appOuts + // buffers and encrypt them into the _encryptedOutput buffer. + BufferUtil.compact(_encryptedOutput); int pos = BufferUtil.flipToFill(_encryptedOutput); SSLEngineResult wrapResult; try { - wrapResult = wrap(_sslEngine, appOuts, _encryptedOutput); + wrapResult = wrap(_sslEngine, appOuts,_encryptedOutput); } finally { @@ -808,6 +879,22 @@ public class SslConnection extends AbstractConnection } return allConsumed; + case BUFFER_OVERFLOW: + { + // It's possible that SSLSession.packetBufferSize has been expanded + // by the SSLEngine implementation. Wrapping a large application buffer + // causes BUFFER_OVERFLOW because the (old) packetBufferSize is + // too small. Release the encrypted output buffer so that it will + // be re-acquired with the larger capacity. + // See also system property "jsse.SSLEngine.acceptLargeFragments". + if (packetBufferSize < getPacketBufferSize()) + { + releaseEncryptedOutputBuffer(); + continue; + } + throw new IllegalStateException("Unexpected wrap result " + wrapResultStatus); + } + case BUFFER_UNDERFLOW: throw new IllegalStateException(); From c04997f7e0aeffed0fc05a0ce1b0ebe8ea3a10cc Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Wed, 30 Oct 2019 17:05:46 -0500 Subject: [PATCH 07/34] Issue #4217 - SslConnection DecryptedEndpoint flush eternal busy loop + Flush on BUFFER_OVERFLOW Signed-off-by: Joakim Erdfelt --- .../org/eclipse/jetty/io/ssl/SslConnection.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java b/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java index b9fde82aa6a..ddf2be5924d 100644 --- a/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java +++ b/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java @@ -1020,6 +1020,10 @@ public class SslConnection extends AbstractConnection } return allConsumed; } + case BUFFER_UNDERFLOW: + { + throw new IllegalStateException(); + } case BUFFER_OVERFLOW: { // It's possible that SSLSession.packetBufferSize has been expanded @@ -1033,11 +1037,14 @@ public class SslConnection extends AbstractConnection releaseEncryptedOutputBuffer(); continue; } - throw new IllegalStateException("Unexpected wrap result " + wrapResultStatus); - } - case BUFFER_UNDERFLOW: - { - throw new IllegalStateException(); + if (BufferUtil.isEmpty(_encryptedOutput)) + { + throw new IllegalStateException( + String.format("Unexpected wrap result %s (packetBufferSize %d < getPacketBufferSize() %d)", + wrapResultStatus, packetBufferSize, getPacketBufferSize() + )); + } + // fall-through default case to flush() } default: { From c980e3dd3424a4b2a1748ca2eae03e0d0e096010 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Wed, 30 Oct 2019 17:18:03 -0500 Subject: [PATCH 08/34] Fixing compilation issue Signed-off-by: Joakim Erdfelt --- .../eclipse/jetty/websocket/server/WebSocketProtocolTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/WebSocketProtocolTest.java b/jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/WebSocketProtocolTest.java index 5500495dcb8..63648a5894a 100644 --- a/jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/WebSocketProtocolTest.java +++ b/jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/WebSocketProtocolTest.java @@ -40,7 +40,7 @@ public class WebSocketProtocolTest public void startServer() throws Exception { server = new BrowserDebugTool(); - server.prepare(0); + server.prepare(0, 0); server.start(); } From f7ab02a5d1d453f5b47aa4e4a184530035fc9a94 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Wed, 30 Oct 2019 17:21:59 -0500 Subject: [PATCH 09/34] Issue #4217 - Fixing OVERFLOW case to allow flush() Signed-off-by: Joakim Erdfelt --- .../java/org/eclipse/jetty/io/ssl/SslConnection.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java b/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java index 3d8f1414e25..905ab7b592b 100644 --- a/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java +++ b/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java @@ -879,6 +879,9 @@ public class SslConnection extends AbstractConnection } return allConsumed; + case BUFFER_UNDERFLOW: + throw new IllegalStateException(); + case BUFFER_OVERFLOW: { // It's possible that SSLSession.packetBufferSize has been expanded @@ -892,12 +895,13 @@ public class SslConnection extends AbstractConnection releaseEncryptedOutputBuffer(); continue; } - throw new IllegalStateException("Unexpected wrap result " + wrapResultStatus); + if (BufferUtil.isEmpty(_encryptedOutput)) + { + throw new IllegalStateException("Unexpected wrap result " + wrapResultStatus); + } + // fall-through default case to flush() } - case BUFFER_UNDERFLOW: - throw new IllegalStateException(); - default: if (DEBUG) LOG.debug("{} {} {}", this, wrapResultStatus, BufferUtil.toDetailString(_encryptedOutput)); From a3f3612fb4c408b2fad72f23d5c618b719b533ee Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Wed, 30 Oct 2019 17:23:08 -0500 Subject: [PATCH 10/34] Issue #4217 - Reverting debug output in IllegalStateException Signed-off-by: Joakim Erdfelt --- .../main/java/org/eclipse/jetty/io/ssl/SslConnection.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java b/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java index ddf2be5924d..1f8d2a93118 100644 --- a/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java +++ b/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java @@ -1039,10 +1039,7 @@ public class SslConnection extends AbstractConnection } if (BufferUtil.isEmpty(_encryptedOutput)) { - throw new IllegalStateException( - String.format("Unexpected wrap result %s (packetBufferSize %d < getPacketBufferSize() %d)", - wrapResultStatus, packetBufferSize, getPacketBufferSize() - )); + throw new IllegalStateException("Unexpected wrap result " + wrapResultStatus); } // fall-through default case to flush() } From e9a8497936a8eaebe8f694988d03bc419922d52f Mon Sep 17 00:00:00 2001 From: Jan Bartel Date: Mon, 4 Nov 2019 17:53:05 +1100 Subject: [PATCH 11/34] Issue #4173 Avoid NPE generating name of tmp dir in WebInfConfiguration Signed-off-by: Jan Bartel --- .../jetty/webapp/WebInfConfiguration.java | 38 ++++++++++++++++--- 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java index aa8fe646814..c01e8caf62d 100644 --- a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java +++ b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java @@ -779,22 +779,25 @@ public class WebInfConfiguration extends AbstractConfiguration resource = context.newResource(context.getWar()); } - String tmp = URIUtil.decodePath(resource.getURI().getPath()); + String tmp = getResourceBasePath(resource); if (tmp.endsWith("/")) tmp = tmp.substring(0, tmp.length() - 1); if (tmp.endsWith("!")) tmp = tmp.substring(0, tmp.length() - 1); //get just the last part which is the filename int i = tmp.lastIndexOf("/"); - canonicalName.append(tmp.substring(i + 1)); + if (i > -1 && tmp.length() > 1) + { + canonicalName.append(tmp.substring(i + 1)); + } canonicalName.append("-"); } - catch (Exception e) + catch (IOException e) { - LOG.warn("Can't generate resourceBase as part of webapp tmp dir name: " + e); - LOG.debug(e); + LOG.warn("Can't get resource for resourceBase", e); + LOG.debug(e); } - + //Context name canonicalName.append(context.getContextPath()); @@ -810,6 +813,29 @@ public class WebInfConfiguration extends AbstractConfiguration return StringUtil.sanitizeFileSystemName(canonicalName.toString()); } + + private static String getResourceBasePath(Resource resource) + { + String tmp = ""; + try + { + tmp = URIUtil.decodePath(resource.getURI().getPath()); + } + catch (Exception e) + { + try + { + tmp = URIUtil.decodePath(resource.getURI().toURL().getPath()); + } + catch (Exception x) + { + LOG.warn("Can't get path for resource", x); + LOG.debug(e); + } + } + + return tmp; + } protected List findClassDirs(WebAppContext context) throws Exception From 2774533150bd7292cfca678f1114843ad5e85f87 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Mon, 4 Nov 2019 14:55:41 -0600 Subject: [PATCH 12/34] Issue #4173 - improved Base Resource Name resolution Signed-off-by: Joakim Erdfelt --- .../jetty/webapp/WebInfConfiguration.java | 93 ++++++++---- .../jetty/webapp/WebInfConfigurationTest.java | 139 ++++++++++++++++++ .../src/test/resources/test-base-resource.jar | Bin 0 -> 2126 bytes 3 files changed, 204 insertions(+), 28 deletions(-) create mode 100644 jetty-webapp/src/test/resources/test-base-resource.jar diff --git a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java index c01e8caf62d..797e171531d 100644 --- a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java +++ b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java @@ -766,7 +766,7 @@ public class WebInfConfiguration extends AbstractConfiguration } } - //Resource base + // Resource base try { Resource resource = context.getBaseResource(); @@ -775,29 +775,20 @@ public class WebInfConfiguration extends AbstractConfiguration if (context.getWar() == null || context.getWar().length() == 0) throw new IllegalStateException("No resourceBase or war set for context"); - // Set dir or WAR + // Set dir or WAR to resource resource = context.newResource(context.getWar()); } - String tmp = getResourceBasePath(resource); - if (tmp.endsWith("/")) - tmp = tmp.substring(0, tmp.length() - 1); - if (tmp.endsWith("!")) - tmp = tmp.substring(0, tmp.length() - 1); - //get just the last part which is the filename - int i = tmp.lastIndexOf("/"); - if (i > -1 && tmp.length() > 1) - { - canonicalName.append(tmp.substring(i + 1)); - } + String resourceBaseName = getResourceBaseName(resource); + canonicalName.append(resourceBaseName); canonicalName.append("-"); } - catch (IOException e) + catch (Exception e) { LOG.warn("Can't get resource for resourceBase", e); - LOG.debug(e); + LOG.debug(e); } - + //Context name canonicalName.append(context.getContextPath()); @@ -813,28 +804,74 @@ public class WebInfConfiguration extends AbstractConfiguration return StringUtil.sanitizeFileSystemName(canonicalName.toString()); } - - private static String getResourceBasePath(Resource resource) + + protected static String getResourceBaseName(Resource resource) { - String tmp = ""; + // Use File System and File interface if present try { - tmp = URIUtil.decodePath(resource.getURI().getPath()); + File resourceFile = resource.getFile(); + if (resourceFile != null) + { + return resourceFile.getName(); + } } - catch (Exception e) + catch (IOException e) { - try + e.printStackTrace(); + } + + // Use URI itself. + URI uri = resource.getURI(); + if (uri == null) + { + throw new RuntimeException("Unable to produce URI from resource: " + resource); + } + return getUriLastPathSegment(uri); + } + + protected static String getUriLastPathSegment(URI uri) + { + String path = uri.getPath(); + + if ("jar".equalsIgnoreCase(uri.getScheme())) + { + String schemeSpecificPart = uri.getRawSchemeSpecificPart(); + URI inner = URI.create(schemeSpecificPart); + if ("file".equalsIgnoreCase(inner.getScheme())) { - tmp = URIUtil.decodePath(resource.getURI().toURL().getPath()); + path = inner.getRawPath(); + int idx = path.lastIndexOf("!/"); + if (idx >= 0) + { + String pathInJar = path.substring(idx + 2); + if (StringUtil.isNotBlank(pathInJar)) + { + URI pathInJarUri = URI.create(pathInJar); + return getUriLastPathSegment(pathInJarUri); + } + else + { + // Strip empty "!/" + path = path.substring(0, idx); + } + } + // if we reached here, we have "jar:file:" but no + // internal jar reference with "!/" present } - catch (Exception x) + else { - LOG.warn("Can't get path for resource", x); - LOG.debug(e); + // inner URI is not "file" + return getUriLastPathSegment(inner); } } - - return tmp; + + if (path.endsWith("/")) + path = path.substring(0, path.length() - 1); + // get just the last part which is the filename + int i = path.lastIndexOf("/"); + + return path.substring(i + 1); } protected List findClassDirs(WebAppContext context) diff --git a/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/WebInfConfigurationTest.java b/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/WebInfConfigurationTest.java index 11b42a515cb..85c53dc90b7 100644 --- a/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/WebInfConfigurationTest.java +++ b/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/WebInfConfigurationTest.java @@ -18,27 +18,56 @@ package org.eclipse.jetty.webapp; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.nio.file.FileSystem; +import java.nio.file.FileSystems; +import java.nio.file.FileVisitOption; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.stream.Stream; +import org.eclipse.jetty.toolchain.test.FS; +import org.eclipse.jetty.toolchain.test.MavenTestingUtils; +import org.eclipse.jetty.toolchain.test.jupiter.WorkDir; +import org.eclipse.jetty.toolchain.test.jupiter.WorkDirExtension; import org.eclipse.jetty.util.JavaVersion; +import org.eclipse.jetty.util.log.Log; +import org.eclipse.jetty.util.log.Logger; +import org.eclipse.jetty.util.resource.PathResource; import org.eclipse.jetty.util.resource.Resource; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.DisabledOnJre; import org.junit.jupiter.api.condition.EnabledIfSystemProperty; import org.junit.jupiter.api.condition.EnabledOnJre; import org.junit.jupiter.api.condition.JRE; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.anyOf; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.endsWith; +import static org.hamcrest.Matchers.is; import static org.junit.jupiter.api.Assertions.assertEquals; /** * WebInfConfigurationTest */ +@ExtendWith(WorkDirExtension.class) public class WebInfConfigurationTest { + private static final Logger LOG = Log.getLogger(WebInfConfigurationTest.class); + private static final String TEST_RESOURCE_JAR = "test-base-resource.jar"; + + public WorkDir workDir; /** * Assume target < jdk9. In this case, we should be able to extract @@ -110,4 +139,114 @@ public class WebInfConfigurationTest assertEquals(1, containerResources.size()); assertThat(containerResources.get(0).toString(), containsString("jetty-util")); } + + public static Stream baseResourceNames() + { + return Stream.of( + Arguments.of("test.war", "test.war"), + Arguments.of("a/b/c/test.war", "test.war"), + Arguments.of("bar%2Fbaz/test.war", "test.war"), + Arguments.of("fizz buzz/test.war", "test.war"), + Arguments.of("another one/bites the dust/", "bites the dust"), + Arguments.of("another+one/bites+the+dust/", "bites+the+dust"), + Arguments.of("another%20one/bites%20the%20dust/", "bites%20the%20dust"), + Arguments.of("spanish/número.war", "número.war"), + Arguments.of("spanish/n\uC3BAmero.war", "n\uC3BAmero.war"), + Arguments.of("spanish/n%C3%BAmero.war", "n%C3%BAmero.war"), + Arguments.of("a/b!/", "b!"), + Arguments.of("a/b!/c/", "c"), + Arguments.of("a/b!/c/d/", "d"), + Arguments.of("a/b%21/", "b%21") + ); + } + + @ParameterizedTest + @MethodSource("baseResourceNames") + public void testPathGetResourceBaseName(String basePath, String expectedName) throws IOException + { + Path root = workDir.getPath(); + Path base = root.resolve(basePath); + if (basePath.endsWith("/")) + { + // we are working with a directory. + FS.ensureDirExists(base); + } + else + { + FS.ensureDirExists(base.getParent()); + FS.touch(base); + } + + Resource resource = new PathResource(base); + assertThat(WebInfConfiguration.getResourceBaseName(resource), is(expectedName)); + } + + /** + * Similar to testPathGetResourceBaseName, but with "file:" URIs + */ + @ParameterizedTest + @MethodSource("baseResourceNames") + public void testFileUriGetUriLastPathSegment(String basePath, String expectedName) throws IOException + { + Path root = workDir.getPath(); + Path base = root.resolve(basePath); + URI uri = base.toUri(); + assertThat(WebInfConfiguration.getUriLastPathSegment(uri), is(expectedName)); + } + + public static Stream jarFileBaseResourceNames() throws URISyntaxException, IOException + { + Path testJar = MavenTestingUtils.getTestResourcePathFile(TEST_RESOURCE_JAR); + URI uri = new URI("jar", testJar.toUri().toASCIIString(), null); + + Map env = new HashMap<>(); + env.put("multi-release", "runtime"); + + List arguments = new ArrayList<>(); + arguments.add(Arguments.of(uri, TEST_RESOURCE_JAR)); + try (FileSystem zipFs = FileSystems.newFileSystem(uri, env)) + { + FileVisitOption[] fileVisitOptions = new FileVisitOption[]{}; + + for (Path root : zipFs.getRootDirectories()) + { + Stream entryStream = Files.find(root, 10, (path, attrs) -> true, fileVisitOptions); + entryStream.forEach((path) -> + { + if (path.toString().endsWith("!/")) + { + // skip - JAR entry type not supported by Jetty + // TODO: re-enable once we start to use zipfs + LOG.warn("Skipping Unsupported entry: " + path.toUri()); + } + else + { + String lastPathSegment = TEST_RESOURCE_JAR; + if (path.getFileName() != null) + { + lastPathSegment = path.getFileName().toString(); + } + // Strip last '/' from directory entries + if (Files.isDirectory(path) && lastPathSegment.endsWith("/")) + { + lastPathSegment = lastPathSegment.substring(0, lastPathSegment.length() - 1); + } + arguments.add(Arguments.of(path.toUri(), lastPathSegment)); + } + }); + } + } + + return arguments.stream(); + } + + /** + * Tests of "jar:file:" based URIs + */ + @ParameterizedTest + @MethodSource("jarFileBaseResourceNames") + public void testJarFileUriGetUriLastPathSegment(URI uri, String expectedName) throws IOException + { + assertThat(WebInfConfiguration.getUriLastPathSegment(uri), is(expectedName)); + } } diff --git a/jetty-webapp/src/test/resources/test-base-resource.jar b/jetty-webapp/src/test/resources/test-base-resource.jar new file mode 100644 index 0000000000000000000000000000000000000000..aa3066909b36f5c46ef450143c03684ef11a17a7 GIT binary patch literal 2126 zcmaKtyH3ME5JfjH9uWcwMSxP7BBF>C=h0H|5)B2RrL*Ipq`(2&5t7Akz=u#GsM1mL z8I*vi05Q8Unc49=8!2*>d+u&_W^TGCg<@HVB_VbK?^KYrDvHAKN70}k)Y{FF-?x8X zgy?4KEns!MJB<1vuwVi2-Z+eq{<_w8gEI)%ft`+BC$_V7Ynl%HBO-ohrt2wja%16OX}_Ri;$;Xu&O7 z`W>FL9rBVRzGv+FqWaz?3XdsDO3~Y%BU${HctkYkB3ne(VB1x|E4lBM?N1)lm-xdf zD%<2@7{``7j%k~4ooo}-u{QZ;rm{_Rv0ljyc5G6~x?V}HB$ZT3RmnP3vOcY3E?*Ye z(+9^QOP{UjEN1f-A%$qdC!IIVCc2rX6AgWMq_djM$ui)&heza+q9AOVUW6wpcv>Xn zO-+dW2RxG5M$9zbh*fh0OU*jE@EMjpf~yNI`s`KBhE4p9kp!qlkJ_ zI-vel>19?RVM+@mJ{6&|BO8(Ffol^I%dr8GS%T2~Lhb@I3k`~y(gpYGQB2Dk+?c0` zOdDKx;D9kfcjlbl_RkuZYI{=};ihjXn72L89KG|Zg<0n%S%p8BlX~YJF_LFjX+fT{ N0 Date: Mon, 4 Nov 2019 15:52:22 -0600 Subject: [PATCH 13/34] Issue #4173 - Improve OSX test expectation (NFD form) Signed-off-by: Joakim Erdfelt --- .../eclipse/jetty/webapp/WebInfConfigurationTest.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/WebInfConfigurationTest.java b/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/WebInfConfigurationTest.java index 85c53dc90b7..74ad7061b29 100644 --- a/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/WebInfConfigurationTest.java +++ b/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/WebInfConfigurationTest.java @@ -26,6 +26,7 @@ import java.nio.file.FileSystems; import java.nio.file.FileVisitOption; import java.nio.file.Files; import java.nio.file.Path; +import java.text.Normalizer; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -46,6 +47,7 @@ import org.junit.jupiter.api.condition.DisabledOnJre; import org.junit.jupiter.api.condition.EnabledIfSystemProperty; import org.junit.jupiter.api.condition.EnabledOnJre; import org.junit.jupiter.api.condition.JRE; +import org.junit.jupiter.api.condition.OS; import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; @@ -150,8 +152,7 @@ public class WebInfConfigurationTest Arguments.of("another one/bites the dust/", "bites the dust"), Arguments.of("another+one/bites+the+dust/", "bites+the+dust"), Arguments.of("another%20one/bites%20the%20dust/", "bites%20the%20dust"), - Arguments.of("spanish/número.war", "número.war"), - Arguments.of("spanish/n\uC3BAmero.war", "n\uC3BAmero.war"), + Arguments.of("spanish/n\u00FAmero.war", "n\u00FAmero.war"), Arguments.of("spanish/n%C3%BAmero.war", "n%C3%BAmero.war"), Arguments.of("a/b!/", "b!"), Arguments.of("a/b!/c/", "c"), @@ -191,6 +192,11 @@ public class WebInfConfigurationTest Path root = workDir.getPath(); Path base = root.resolve(basePath); URI uri = base.toUri(); + if (OS.MAC.isCurrentOs()) + { + // Normalize Unicode to NFD form that OSX Path/FileSystem produces + expectedName = Normalizer.normalize(expectedName, Normalizer.Form.NFD); + } assertThat(WebInfConfiguration.getUriLastPathSegment(uri), is(expectedName)); } From 6ac925631cb342b8cfd0088155c49bb2bcd17e11 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Mon, 4 Nov 2019 16:01:43 -0600 Subject: [PATCH 14/34] Issue #4173 - Adding more testcases for raw root-ish Resources Signed-off-by: Joakim Erdfelt --- .../jetty/webapp/WebInfConfigurationTest.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/WebInfConfigurationTest.java b/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/WebInfConfigurationTest.java index 74ad7061b29..130de381851 100644 --- a/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/WebInfConfigurationTest.java +++ b/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/WebInfConfigurationTest.java @@ -142,6 +142,22 @@ public class WebInfConfigurationTest assertThat(containerResources.get(0).toString(), containsString("jetty-util")); } + public static Stream rawResourceNames() + { + return Stream.of( + Arguments.of("/", ""), + Arguments.of("/a", "a") + ); + } + + @ParameterizedTest + @MethodSource("rawResourceNames") + public void testTinyGetResourceBaseName(String rawPath, String expectedName) throws IOException + { + Resource resource = Resource.newResource(rawPath); + assertThat(WebInfConfiguration.getResourceBaseName(resource), is(expectedName)); + } + public static Stream baseResourceNames() { return Stream.of( From 68cf4f23f1ac8706e805085fa4cffdd4fcbb1e1e Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Mon, 4 Nov 2019 16:03:01 -0600 Subject: [PATCH 15/34] Issue #4173 - Ignore logging of failed Resource.getFile() Signed-off-by: Joakim Erdfelt --- .../main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java index 797e171531d..b8efd3fdfd9 100644 --- a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java +++ b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java @@ -818,7 +818,7 @@ public class WebInfConfiguration extends AbstractConfiguration } catch (IOException e) { - e.printStackTrace(); + LOG.ignore(e); } // Use URI itself. From 36c95fdd43a7cc20e2001269cef7cb5e04dcd1ff Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Tue, 5 Nov 2019 10:43:15 -0600 Subject: [PATCH 16/34] Updating to version 9.2.29.v20191105 --- VERSION.txt | 3 ++- aggregates/jetty-all/pom.xml | 2 +- apache-jsp/pom.xml | 2 +- apache-jstl/pom.xml | 2 +- examples/async-rest/async-rest-jar/pom.xml | 2 +- examples/async-rest/async-rest-webapp/pom.xml | 2 +- examples/async-rest/pom.xml | 2 +- examples/embedded/pom.xml | 2 +- examples/pom.xml | 2 +- jetty-alpn/jetty-alpn-client/pom.xml | 2 +- jetty-alpn/jetty-alpn-server/pom.xml | 2 +- jetty-alpn/pom.xml | 2 +- jetty-annotations/pom.xml | 2 +- jetty-ant/pom.xml | 2 +- jetty-cdi/pom.xml | 2 +- jetty-client/pom.xml | 2 +- jetty-continuation/pom.xml | 2 +- jetty-deploy/pom.xml | 2 +- jetty-distribution/pom.xml | 2 +- jetty-fcgi/fcgi-client/pom.xml | 2 +- jetty-fcgi/fcgi-server/pom.xml | 2 +- jetty-fcgi/pom.xml | 2 +- jetty-http-spi/pom.xml | 2 +- jetty-http/pom.xml | 2 +- jetty-io/pom.xml | 2 +- jetty-jaas/pom.xml | 2 +- jetty-jaspi/pom.xml | 2 +- jetty-jmx/pom.xml | 2 +- jetty-jndi/pom.xml | 2 +- jetty-jsp/pom.xml | 2 +- jetty-jspc-maven-plugin/pom.xml | 2 +- jetty-maven-plugin/pom.xml | 2 +- jetty-monitor/pom.xml | 2 +- jetty-nosql/pom.xml | 2 +- jetty-osgi/jetty-osgi-alpn/pom.xml | 2 +- jetty-osgi/jetty-osgi-boot-jsp/pom.xml | 2 +- jetty-osgi/jetty-osgi-boot-warurl/pom.xml | 2 +- jetty-osgi/jetty-osgi-boot/pom.xml | 2 +- jetty-osgi/jetty-osgi-httpservice/pom.xml | 2 +- jetty-osgi/pom.xml | 2 +- jetty-osgi/test-jetty-osgi-context/pom.xml | 2 +- jetty-osgi/test-jetty-osgi-webapp/pom.xml | 2 +- jetty-osgi/test-jetty-osgi/pom.xml | 2 +- jetty-plus/pom.xml | 2 +- jetty-proxy/pom.xml | 2 +- jetty-quickstart/pom.xml | 2 +- jetty-rewrite/pom.xml | 2 +- jetty-runner/pom.xml | 2 +- jetty-security/pom.xml | 2 +- jetty-server/pom.xml | 2 +- jetty-servlet/pom.xml | 2 +- jetty-servlets/pom.xml | 2 +- jetty-spdy/pom.xml | 2 +- jetty-spdy/spdy-alpn-tests/pom.xml | 2 +- jetty-spdy/spdy-client/pom.xml | 2 +- jetty-spdy/spdy-core/pom.xml | 2 +- jetty-spdy/spdy-example-webapp/pom.xml | 2 +- jetty-spdy/spdy-http-client-transport/pom.xml | 2 +- jetty-spdy/spdy-http-common/pom.xml | 2 +- jetty-spdy/spdy-http-server/pom.xml | 2 +- jetty-spdy/spdy-server/pom.xml | 2 +- jetty-spring/pom.xml | 2 +- jetty-start/pom.xml | 2 +- jetty-util-ajax/pom.xml | 2 +- jetty-util/pom.xml | 2 +- jetty-webapp/pom.xml | 2 +- jetty-websocket/javax-websocket-client-impl/pom.xml | 2 +- jetty-websocket/javax-websocket-server-impl/pom.xml | 2 +- jetty-websocket/pom.xml | 2 +- jetty-websocket/websocket-api/pom.xml | 2 +- jetty-websocket/websocket-client/pom.xml | 2 +- jetty-websocket/websocket-common/pom.xml | 2 +- jetty-websocket/websocket-server/pom.xml | 2 +- jetty-websocket/websocket-servlet/pom.xml | 2 +- jetty-xml/pom.xml | 2 +- pom.xml | 2 +- tests/pom.xml | 2 +- tests/test-continuation/pom.xml | 2 +- tests/test-integration/pom.xml | 2 +- tests/test-jmx/jmx-webapp-it/pom.xml | 2 +- tests/test-jmx/jmx-webapp/pom.xml | 2 +- tests/test-jmx/pom.xml | 2 +- tests/test-loginservice/pom.xml | 2 +- tests/test-quickstart/pom.xml | 2 +- tests/test-sessions/pom.xml | 2 +- tests/test-sessions/test-hash-sessions/pom.xml | 2 +- tests/test-sessions/test-jdbc-sessions/pom.xml | 2 +- tests/test-sessions/test-mongodb-sessions/pom.xml | 2 +- tests/test-sessions/test-sessions-common/pom.xml | 2 +- tests/test-webapps/pom.xml | 2 +- tests/test-webapps/test-jaas-webapp/pom.xml | 2 +- tests/test-webapps/test-jetty-webapp/pom.xml | 2 +- tests/test-webapps/test-jndi-webapp/pom.xml | 2 +- tests/test-webapps/test-mock-resources/pom.xml | 2 +- tests/test-webapps/test-proxy-webapp/pom.xml | 2 +- tests/test-webapps/test-servlet-spec/pom.xml | 2 +- .../test-servlet-spec/test-container-initializer/pom.xml | 2 +- tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml | 2 +- tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml | 2 +- tests/test-webapps/test-webapp-rfc2616/pom.xml | 2 +- 100 files changed, 101 insertions(+), 100 deletions(-) diff --git a/VERSION.txt b/VERSION.txt index f08ebe9b4a3..da388c4f7ff 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1,4 +1,5 @@ -jetty-9.2.29-SNAPSHOT +jetty-9.2.29.v20191105 - 05 November 2019 + + 4217 SslConnection.DecryptedEnpoint.flush eternal busy loop jetty-9.2.28.v20190418 - 18 April 2019 + 3549 Directory Listing on Windows reveals Resource Base path diff --git a/aggregates/jetty-all/pom.xml b/aggregates/jetty-all/pom.xml index 168e6d78c0a..bbbb6bc9915 100644 --- a/aggregates/jetty-all/pom.xml +++ b/aggregates/jetty-all/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 ../../pom.xml 4.0.0 diff --git a/apache-jsp/pom.xml b/apache-jsp/pom.xml index 006e61373a4..a2b28cea7db 100644 --- a/apache-jsp/pom.xml +++ b/apache-jsp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 apache-jsp diff --git a/apache-jstl/pom.xml b/apache-jstl/pom.xml index 9ae27c734b4..5f267c052f4 100644 --- a/apache-jstl/pom.xml +++ b/apache-jstl/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 apache-jstl diff --git a/examples/async-rest/async-rest-jar/pom.xml b/examples/async-rest/async-rest-jar/pom.xml index 7cbdaffa136..fba57d2f4c0 100644 --- a/examples/async-rest/async-rest-jar/pom.xml +++ b/examples/async-rest/async-rest-jar/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty example-async-rest - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 org.eclipse.jetty.example-async-rest diff --git a/examples/async-rest/async-rest-webapp/pom.xml b/examples/async-rest/async-rest-webapp/pom.xml index c90f163748a..616fc72b282 100644 --- a/examples/async-rest/async-rest-webapp/pom.xml +++ b/examples/async-rest/async-rest-webapp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty example-async-rest - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 org.eclipse.jetty.example-async-rest diff --git a/examples/async-rest/pom.xml b/examples/async-rest/pom.xml index e05638616b9..97a0275b3f8 100644 --- a/examples/async-rest/pom.xml +++ b/examples/async-rest/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.examples examples-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 ../pom.xml 4.0.0 diff --git a/examples/embedded/pom.xml b/examples/embedded/pom.xml index aff398e259b..07e6af13e6f 100644 --- a/examples/embedded/pom.xml +++ b/examples/embedded/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.examples examples-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 ../pom.xml 4.0.0 diff --git a/examples/pom.xml b/examples/pom.xml index 7d4b884a66d..64d1263d7ff 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 ../pom.xml org.eclipse.jetty.examples diff --git a/jetty-alpn/jetty-alpn-client/pom.xml b/jetty-alpn/jetty-alpn-client/pom.xml index d259834eab3..33f792c4e4e 100644 --- a/jetty-alpn/jetty-alpn-client/pom.xml +++ b/jetty-alpn/jetty-alpn-client/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-alpn-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-alpn-client diff --git a/jetty-alpn/jetty-alpn-server/pom.xml b/jetty-alpn/jetty-alpn-server/pom.xml index 336ae721017..ea459cb792e 100644 --- a/jetty-alpn/jetty-alpn-server/pom.xml +++ b/jetty-alpn/jetty-alpn-server/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-alpn-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-alpn-server diff --git a/jetty-alpn/pom.xml b/jetty-alpn/pom.xml index 51f340a4e2c..8b0bc1dd453 100644 --- a/jetty-alpn/pom.xml +++ b/jetty-alpn/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-alpn-parent diff --git a/jetty-annotations/pom.xml b/jetty-annotations/pom.xml index 2ee00d6483e..94631acf715 100644 --- a/jetty-annotations/pom.xml +++ b/jetty-annotations/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-annotations diff --git a/jetty-ant/pom.xml b/jetty-ant/pom.xml index fbc7108eded..dbbb6201c05 100644 --- a/jetty-ant/pom.xml +++ b/jetty-ant/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-ant diff --git a/jetty-cdi/pom.xml b/jetty-cdi/pom.xml index 147dc4b29d5..7ac1a13e920 100644 --- a/jetty-cdi/pom.xml +++ b/jetty-cdi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-cdi diff --git a/jetty-client/pom.xml b/jetty-client/pom.xml index 3da5c822b67..7358359fbc9 100644 --- a/jetty-client/pom.xml +++ b/jetty-client/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 diff --git a/jetty-continuation/pom.xml b/jetty-continuation/pom.xml index 7e83ba2e830..4683512ea62 100644 --- a/jetty-continuation/pom.xml +++ b/jetty-continuation/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-continuation diff --git a/jetty-deploy/pom.xml b/jetty-deploy/pom.xml index cfd9ae1952d..14890b0682a 100644 --- a/jetty-deploy/pom.xml +++ b/jetty-deploy/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-deploy diff --git a/jetty-distribution/pom.xml b/jetty-distribution/pom.xml index 927d4c1a2ed..679c8a2f1cc 100644 --- a/jetty-distribution/pom.xml +++ b/jetty-distribution/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 jetty-distribution Jetty :: Distribution Assemblies diff --git a/jetty-fcgi/fcgi-client/pom.xml b/jetty-fcgi/fcgi-client/pom.xml index 97072e9b12f..2246d119461 100644 --- a/jetty-fcgi/fcgi-client/pom.xml +++ b/jetty-fcgi/fcgi-client/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.fcgi fcgi-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 diff --git a/jetty-fcgi/fcgi-server/pom.xml b/jetty-fcgi/fcgi-server/pom.xml index 79c79f15f58..ac20c2b46c3 100644 --- a/jetty-fcgi/fcgi-server/pom.xml +++ b/jetty-fcgi/fcgi-server/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.fcgi fcgi-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 diff --git a/jetty-fcgi/pom.xml b/jetty-fcgi/pom.xml index d7a84f7e5be..7ba4bcde503 100644 --- a/jetty-fcgi/pom.xml +++ b/jetty-fcgi/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 diff --git a/jetty-http-spi/pom.xml b/jetty-http-spi/pom.xml index ca1dd97d56b..1da2e203d66 100644 --- a/jetty-http-spi/pom.xml +++ b/jetty-http-spi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-http-spi diff --git a/jetty-http/pom.xml b/jetty-http/pom.xml index 303079c411f..8b337603200 100644 --- a/jetty-http/pom.xml +++ b/jetty-http/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-http diff --git a/jetty-io/pom.xml b/jetty-io/pom.xml index 3a5c1eaac03..d3c54b0f55b 100644 --- a/jetty-io/pom.xml +++ b/jetty-io/pom.xml @@ -2,7 +2,7 @@ jetty-project org.eclipse.jetty - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-io diff --git a/jetty-jaas/pom.xml b/jetty-jaas/pom.xml index 4b78680ce44..b1271a47275 100644 --- a/jetty-jaas/pom.xml +++ b/jetty-jaas/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-jaas diff --git a/jetty-jaspi/pom.xml b/jetty-jaspi/pom.xml index a678bc4153e..75cf9d1003a 100644 --- a/jetty-jaspi/pom.xml +++ b/jetty-jaspi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-jaspi diff --git a/jetty-jmx/pom.xml b/jetty-jmx/pom.xml index 1af352530ef..554f9879952 100644 --- a/jetty-jmx/pom.xml +++ b/jetty-jmx/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-jmx diff --git a/jetty-jndi/pom.xml b/jetty-jndi/pom.xml index d5bb61af137..97d32b3d729 100644 --- a/jetty-jndi/pom.xml +++ b/jetty-jndi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-jndi diff --git a/jetty-jsp/pom.xml b/jetty-jsp/pom.xml index 350ef153fcb..907217fda22 100644 --- a/jetty-jsp/pom.xml +++ b/jetty-jsp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-jsp diff --git a/jetty-jspc-maven-plugin/pom.xml b/jetty-jspc-maven-plugin/pom.xml index 0f92a45ba3a..d689239f314 100644 --- a/jetty-jspc-maven-plugin/pom.xml +++ b/jetty-jspc-maven-plugin/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-jspc-maven-plugin diff --git a/jetty-maven-plugin/pom.xml b/jetty-maven-plugin/pom.xml index 90b8ea31b96..3a97b320b77 100644 --- a/jetty-maven-plugin/pom.xml +++ b/jetty-maven-plugin/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-maven-plugin diff --git a/jetty-monitor/pom.xml b/jetty-monitor/pom.xml index fc1823aaf3b..6a95f10df04 100644 --- a/jetty-monitor/pom.xml +++ b/jetty-monitor/pom.xml @@ -19,7 +19,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-monitor diff --git a/jetty-nosql/pom.xml b/jetty-nosql/pom.xml index cf9160291e9..7cf8d334282 100644 --- a/jetty-nosql/pom.xml +++ b/jetty-nosql/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-nosql diff --git a/jetty-osgi/jetty-osgi-alpn/pom.xml b/jetty-osgi/jetty-osgi-alpn/pom.xml index 9270ac4fc23..34628822c1d 100644 --- a/jetty-osgi/jetty-osgi-alpn/pom.xml +++ b/jetty-osgi/jetty-osgi-alpn/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-osgi-alpn diff --git a/jetty-osgi/jetty-osgi-boot-jsp/pom.xml b/jetty-osgi/jetty-osgi-boot-jsp/pom.xml index 9d1c1fb4c0d..48255ac5dbc 100644 --- a/jetty-osgi/jetty-osgi-boot-jsp/pom.xml +++ b/jetty-osgi/jetty-osgi-boot-jsp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-osgi-boot-jsp diff --git a/jetty-osgi/jetty-osgi-boot-warurl/pom.xml b/jetty-osgi/jetty-osgi-boot-warurl/pom.xml index 9d53075293a..c54a23e3603 100644 --- a/jetty-osgi/jetty-osgi-boot-warurl/pom.xml +++ b/jetty-osgi/jetty-osgi-boot-warurl/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 ../pom.xml 4.0.0 diff --git a/jetty-osgi/jetty-osgi-boot/pom.xml b/jetty-osgi/jetty-osgi-boot/pom.xml index c3a9fcfba73..3632d73ec28 100644 --- a/jetty-osgi/jetty-osgi-boot/pom.xml +++ b/jetty-osgi/jetty-osgi-boot/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-osgi-boot diff --git a/jetty-osgi/jetty-osgi-httpservice/pom.xml b/jetty-osgi/jetty-osgi-httpservice/pom.xml index 559dfca815d..07abfeef57c 100644 --- a/jetty-osgi/jetty-osgi-httpservice/pom.xml +++ b/jetty-osgi/jetty-osgi-httpservice/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-httpservice diff --git a/jetty-osgi/pom.xml b/jetty-osgi/pom.xml index 1267a8a6768..43be5fa001c 100644 --- a/jetty-osgi/pom.xml +++ b/jetty-osgi/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 org.eclipse.jetty.osgi jetty-osgi-project diff --git a/jetty-osgi/test-jetty-osgi-context/pom.xml b/jetty-osgi/test-jetty-osgi-context/pom.xml index 7b6ffdaa892..4318ceaca15 100644 --- a/jetty-osgi/test-jetty-osgi-context/pom.xml +++ b/jetty-osgi/test-jetty-osgi-context/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 test-jetty-osgi-context diff --git a/jetty-osgi/test-jetty-osgi-webapp/pom.xml b/jetty-osgi/test-jetty-osgi-webapp/pom.xml index cb20d9cd173..919df9e015c 100644 --- a/jetty-osgi/test-jetty-osgi-webapp/pom.xml +++ b/jetty-osgi/test-jetty-osgi-webapp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 ../pom.xml 4.0.0 diff --git a/jetty-osgi/test-jetty-osgi/pom.xml b/jetty-osgi/test-jetty-osgi/pom.xml index 7f8c5f26544..0185ebe8b15 100644 --- a/jetty-osgi/test-jetty-osgi/pom.xml +++ b/jetty-osgi/test-jetty-osgi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 ../pom.xml 4.0.0 diff --git a/jetty-plus/pom.xml b/jetty-plus/pom.xml index cf9a796e3e6..e19d2548027 100644 --- a/jetty-plus/pom.xml +++ b/jetty-plus/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-plus diff --git a/jetty-proxy/pom.xml b/jetty-proxy/pom.xml index 7f0ac07194d..c61f49e0208 100644 --- a/jetty-proxy/pom.xml +++ b/jetty-proxy/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-proxy diff --git a/jetty-quickstart/pom.xml b/jetty-quickstart/pom.xml index 468bcb01b6b..5f306ec5b54 100644 --- a/jetty-quickstart/pom.xml +++ b/jetty-quickstart/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 org.eclipse.jetty diff --git a/jetty-rewrite/pom.xml b/jetty-rewrite/pom.xml index cd2088249d0..722b3532260 100644 --- a/jetty-rewrite/pom.xml +++ b/jetty-rewrite/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-rewrite diff --git a/jetty-runner/pom.xml b/jetty-runner/pom.xml index f771cb8dbf8..6a281bc2fda 100644 --- a/jetty-runner/pom.xml +++ b/jetty-runner/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-runner diff --git a/jetty-security/pom.xml b/jetty-security/pom.xml index 87cd1782caf..161549408c7 100644 --- a/jetty-security/pom.xml +++ b/jetty-security/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-security diff --git a/jetty-server/pom.xml b/jetty-server/pom.xml index 68c6ebc57c3..31e3a614ff9 100644 --- a/jetty-server/pom.xml +++ b/jetty-server/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-server diff --git a/jetty-servlet/pom.xml b/jetty-servlet/pom.xml index 7f72ff2d060..9fb6d0a5c52 100644 --- a/jetty-servlet/pom.xml +++ b/jetty-servlet/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-servlet diff --git a/jetty-servlets/pom.xml b/jetty-servlets/pom.xml index faa5e0bf352..9c9f22f60bf 100644 --- a/jetty-servlets/pom.xml +++ b/jetty-servlets/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-servlets diff --git a/jetty-spdy/pom.xml b/jetty-spdy/pom.xml index fafbbe0fbd9..e0ff6da0336 100644 --- a/jetty-spdy/pom.xml +++ b/jetty-spdy/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 diff --git a/jetty-spdy/spdy-alpn-tests/pom.xml b/jetty-spdy/spdy-alpn-tests/pom.xml index da22d20f7c0..3a5e4a7ec3e 100644 --- a/jetty-spdy/spdy-alpn-tests/pom.xml +++ b/jetty-spdy/spdy-alpn-tests/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 diff --git a/jetty-spdy/spdy-client/pom.xml b/jetty-spdy/spdy-client/pom.xml index cee5578461a..831a77b1a65 100644 --- a/jetty-spdy/spdy-client/pom.xml +++ b/jetty-spdy/spdy-client/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 diff --git a/jetty-spdy/spdy-core/pom.xml b/jetty-spdy/spdy-core/pom.xml index 73e2d24a5b3..913d75cd348 100644 --- a/jetty-spdy/spdy-core/pom.xml +++ b/jetty-spdy/spdy-core/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 diff --git a/jetty-spdy/spdy-example-webapp/pom.xml b/jetty-spdy/spdy-example-webapp/pom.xml index 7227bfa7620..be251dbce42 100644 --- a/jetty-spdy/spdy-example-webapp/pom.xml +++ b/jetty-spdy/spdy-example-webapp/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 spdy-example-webapp diff --git a/jetty-spdy/spdy-http-client-transport/pom.xml b/jetty-spdy/spdy-http-client-transport/pom.xml index 48f9f8465eb..021dbe9f898 100644 --- a/jetty-spdy/spdy-http-client-transport/pom.xml +++ b/jetty-spdy/spdy-http-client-transport/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 diff --git a/jetty-spdy/spdy-http-common/pom.xml b/jetty-spdy/spdy-http-common/pom.xml index 04a932cf70d..389a8d2010a 100644 --- a/jetty-spdy/spdy-http-common/pom.xml +++ b/jetty-spdy/spdy-http-common/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 diff --git a/jetty-spdy/spdy-http-server/pom.xml b/jetty-spdy/spdy-http-server/pom.xml index 30ace5a7beb..82672c96843 100644 --- a/jetty-spdy/spdy-http-server/pom.xml +++ b/jetty-spdy/spdy-http-server/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 spdy-http-server diff --git a/jetty-spdy/spdy-server/pom.xml b/jetty-spdy/spdy-server/pom.xml index abee5b2704d..c5ee1f8fbc8 100644 --- a/jetty-spdy/spdy-server/pom.xml +++ b/jetty-spdy/spdy-server/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 diff --git a/jetty-spring/pom.xml b/jetty-spring/pom.xml index 657041b6176..29fea49994f 100644 --- a/jetty-spring/pom.xml +++ b/jetty-spring/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-spring diff --git a/jetty-start/pom.xml b/jetty-start/pom.xml index 44b27e60f8a..cb4e1bfd035 100644 --- a/jetty-start/pom.xml +++ b/jetty-start/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-start diff --git a/jetty-util-ajax/pom.xml b/jetty-util-ajax/pom.xml index dd61dce4473..73a06f8bacc 100644 --- a/jetty-util-ajax/pom.xml +++ b/jetty-util-ajax/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-util-ajax diff --git a/jetty-util/pom.xml b/jetty-util/pom.xml index 56b4c27c3e5..6cf16fb4b4d 100644 --- a/jetty-util/pom.xml +++ b/jetty-util/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-util diff --git a/jetty-webapp/pom.xml b/jetty-webapp/pom.xml index 6b3885cdd65..f051b308d67 100644 --- a/jetty-webapp/pom.xml +++ b/jetty-webapp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-webapp diff --git a/jetty-websocket/javax-websocket-client-impl/pom.xml b/jetty-websocket/javax-websocket-client-impl/pom.xml index c6e969aeffa..597865a6a22 100644 --- a/jetty-websocket/javax-websocket-client-impl/pom.xml +++ b/jetty-websocket/javax-websocket-client-impl/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 diff --git a/jetty-websocket/javax-websocket-server-impl/pom.xml b/jetty-websocket/javax-websocket-server-impl/pom.xml index 5e57dc6830a..eac662a1a23 100644 --- a/jetty-websocket/javax-websocket-server-impl/pom.xml +++ b/jetty-websocket/javax-websocket-server-impl/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 diff --git a/jetty-websocket/pom.xml b/jetty-websocket/pom.xml index 5907610b08e..76e77d3426a 100644 --- a/jetty-websocket/pom.xml +++ b/jetty-websocket/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 diff --git a/jetty-websocket/websocket-api/pom.xml b/jetty-websocket/websocket-api/pom.xml index 3ee8ba777e9..a3f602c8758 100644 --- a/jetty-websocket/websocket-api/pom.xml +++ b/jetty-websocket/websocket-api/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 diff --git a/jetty-websocket/websocket-client/pom.xml b/jetty-websocket/websocket-client/pom.xml index a1ae2f3c724..e209305220f 100644 --- a/jetty-websocket/websocket-client/pom.xml +++ b/jetty-websocket/websocket-client/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 diff --git a/jetty-websocket/websocket-common/pom.xml b/jetty-websocket/websocket-common/pom.xml index 7ce350495d6..932cd8fba5a 100644 --- a/jetty-websocket/websocket-common/pom.xml +++ b/jetty-websocket/websocket-common/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 diff --git a/jetty-websocket/websocket-server/pom.xml b/jetty-websocket/websocket-server/pom.xml index b5ab49853d8..3cfd1be132a 100644 --- a/jetty-websocket/websocket-server/pom.xml +++ b/jetty-websocket/websocket-server/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 diff --git a/jetty-websocket/websocket-servlet/pom.xml b/jetty-websocket/websocket-servlet/pom.xml index 3b5bea64e63..2eb44732011 100644 --- a/jetty-websocket/websocket-servlet/pom.xml +++ b/jetty-websocket/websocket-servlet/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 diff --git a/jetty-xml/pom.xml b/jetty-xml/pom.xml index 5a3a9c5f1e0..3e27279cdb2 100644 --- a/jetty-xml/pom.xml +++ b/jetty-xml/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jetty-xml diff --git a/pom.xml b/pom.xml index 74a9bb25d90..d88ba6783a3 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ 23 jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 Jetty :: Project http://www.eclipse.org/jetty pom diff --git a/tests/pom.xml b/tests/pom.xml index 263b3c81210..04b60c610ed 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty jetty-project - 9.2.29-SNAPSHOT + 9.2.29.v20191105 ../pom.xml org.eclipse.jetty.tests diff --git a/tests/test-continuation/pom.xml b/tests/test-continuation/pom.xml index 3a02c64ba9d..159e8d9594f 100644 --- a/tests/test-continuation/pom.xml +++ b/tests/test-continuation/pom.xml @@ -20,7 +20,7 @@ org.eclipse.jetty.tests tests-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 ../pom.xml 4.0.0 diff --git a/tests/test-integration/pom.xml b/tests/test-integration/pom.xml index 67e8aa15e01..e8df9e21311 100644 --- a/tests/test-integration/pom.xml +++ b/tests/test-integration/pom.xml @@ -20,7 +20,7 @@ org.eclipse.jetty.tests tests-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 test-integration diff --git a/tests/test-jmx/jmx-webapp-it/pom.xml b/tests/test-jmx/jmx-webapp-it/pom.xml index f6446835386..4006050c42a 100644 --- a/tests/test-jmx/jmx-webapp-it/pom.xml +++ b/tests/test-jmx/jmx-webapp-it/pom.xml @@ -20,7 +20,7 @@ org.eclipse.jetty.tests test-jmx-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 jmx-webapp-it diff --git a/tests/test-jmx/jmx-webapp/pom.xml b/tests/test-jmx/jmx-webapp/pom.xml index 44d41afba24..3348974e657 100644 --- a/tests/test-jmx/jmx-webapp/pom.xml +++ b/tests/test-jmx/jmx-webapp/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-jmx-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 jmx-webapp war diff --git a/tests/test-jmx/pom.xml b/tests/test-jmx/pom.xml index 191c5da855e..81a549b190b 100644 --- a/tests/test-jmx/pom.xml +++ b/tests/test-jmx/pom.xml @@ -20,7 +20,7 @@ org.eclipse.jetty.tests tests-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 4.0.0 test-jmx-parent diff --git a/tests/test-loginservice/pom.xml b/tests/test-loginservice/pom.xml index 24b2ab7d04f..d2b25f9b21a 100644 --- a/tests/test-loginservice/pom.xml +++ b/tests/test-loginservice/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests tests-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 test-loginservice Jetty Tests :: Login Service diff --git a/tests/test-quickstart/pom.xml b/tests/test-quickstart/pom.xml index 8253c131849..92c0a2fd071 100644 --- a/tests/test-quickstart/pom.xml +++ b/tests/test-quickstart/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.tests tests-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 ../pom.xml 4.0.0 diff --git a/tests/test-sessions/pom.xml b/tests/test-sessions/pom.xml index 0994621bbc3..507a5df7a65 100644 --- a/tests/test-sessions/pom.xml +++ b/tests/test-sessions/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests tests-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 test-sessions-parent Jetty Tests :: Sessions :: Parent diff --git a/tests/test-sessions/test-hash-sessions/pom.xml b/tests/test-sessions/test-hash-sessions/pom.xml index 7ff26a30756..dd781c63404 100644 --- a/tests/test-sessions/test-hash-sessions/pom.xml +++ b/tests/test-sessions/test-hash-sessions/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 test-hash-sessions Jetty Tests :: Sessions :: Hash diff --git a/tests/test-sessions/test-jdbc-sessions/pom.xml b/tests/test-sessions/test-jdbc-sessions/pom.xml index 4981295717b..28d08a3ad02 100644 --- a/tests/test-sessions/test-jdbc-sessions/pom.xml +++ b/tests/test-sessions/test-jdbc-sessions/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 test-jdbc-sessions Jetty Tests :: Sessions :: JDBC diff --git a/tests/test-sessions/test-mongodb-sessions/pom.xml b/tests/test-sessions/test-mongodb-sessions/pom.xml index e07351a29fc..0825b35578d 100644 --- a/tests/test-sessions/test-mongodb-sessions/pom.xml +++ b/tests/test-sessions/test-mongodb-sessions/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 test-mongodb-sessions Jetty Tests :: Sessions :: Mongo diff --git a/tests/test-sessions/test-sessions-common/pom.xml b/tests/test-sessions/test-sessions-common/pom.xml index b8118a90e46..6d5fb172559 100644 --- a/tests/test-sessions/test-sessions-common/pom.xml +++ b/tests/test-sessions/test-sessions-common/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 test-sessions-common Jetty Tests :: Sessions :: Common diff --git a/tests/test-webapps/pom.xml b/tests/test-webapps/pom.xml index 78ccd0c921b..4e40ae3ff89 100644 --- a/tests/test-webapps/pom.xml +++ b/tests/test-webapps/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests tests-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 ../pom.xml test-webapps-parent diff --git a/tests/test-webapps/test-jaas-webapp/pom.xml b/tests/test-webapps/test-jaas-webapp/pom.xml index 84d781b59dd..bd4481bd72e 100644 --- a/tests/test-webapps/test-jaas-webapp/pom.xml +++ b/tests/test-webapps/test-jaas-webapp/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 test-jaas-webapp Jetty Tests :: WebApp :: JAAS diff --git a/tests/test-webapps/test-jetty-webapp/pom.xml b/tests/test-webapps/test-jetty-webapp/pom.xml index 6501faf3923..83506c17649 100644 --- a/tests/test-webapps/test-jetty-webapp/pom.xml +++ b/tests/test-webapps/test-jetty-webapp/pom.xml @@ -20,7 +20,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 ../pom.xml 4.0.0 diff --git a/tests/test-webapps/test-jndi-webapp/pom.xml b/tests/test-webapps/test-jndi-webapp/pom.xml index c092a714fdb..fbe5b868f4d 100644 --- a/tests/test-webapps/test-jndi-webapp/pom.xml +++ b/tests/test-webapps/test-jndi-webapp/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 test-jndi-webapp Jetty Tests :: WebApp :: JNDI diff --git a/tests/test-webapps/test-mock-resources/pom.xml b/tests/test-webapps/test-mock-resources/pom.xml index 9af1e9e0d58..60d5535843a 100644 --- a/tests/test-webapps/test-mock-resources/pom.xml +++ b/tests/test-webapps/test-mock-resources/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 Jetty Tests :: WebApp :: Mock Resources test-mock-resources diff --git a/tests/test-webapps/test-proxy-webapp/pom.xml b/tests/test-webapps/test-proxy-webapp/pom.xml index 1dcac9a5cfe..43b10864473 100644 --- a/tests/test-webapps/test-proxy-webapp/pom.xml +++ b/tests/test-webapps/test-proxy-webapp/pom.xml @@ -20,7 +20,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 ../pom.xml 4.0.0 diff --git a/tests/test-webapps/test-servlet-spec/pom.xml b/tests/test-webapps/test-servlet-spec/pom.xml index 439f7d4236b..9c8fb1ad5ba 100644 --- a/tests/test-webapps/test-servlet-spec/pom.xml +++ b/tests/test-webapps/test-servlet-spec/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 test-servlet-spec-parent Jetty Tests :: Spec Test WebApp :: Parent diff --git a/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml b/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml index ebc35b01c67..cebb3747cb7 100644 --- a/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml +++ b/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-servlet-spec-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 test-container-initializer jar diff --git a/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml b/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml index 9c46892ba60..d65d1e7c37e 100644 --- a/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml +++ b/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-servlet-spec-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 Jetty Tests :: Webapps :: Spec Webapp test-spec-webapp diff --git a/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml b/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml index 6ba14ccf375..1c89443455f 100644 --- a/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml +++ b/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-servlet-spec-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 Jetty Tests :: WebApp :: Servlet Spec :: Fragment Jar org.eclipse.jetty.tests diff --git a/tests/test-webapps/test-webapp-rfc2616/pom.xml b/tests/test-webapps/test-webapp-rfc2616/pom.xml index 9fc6313636f..f59ad5f9a58 100644 --- a/tests/test-webapps/test-webapp-rfc2616/pom.xml +++ b/tests/test-webapps/test-webapp-rfc2616/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.2.29-SNAPSHOT + 9.2.29.v20191105 test-webapp-rfc2616 Jetty Tests :: WebApp :: RFC2616 From b17439c73172418242ed60c6b53adb130c74b8a6 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Tue, 5 Nov 2019 11:23:21 -0600 Subject: [PATCH 17/34] Updating to version 9.2.30-SNAPSHOT --- VERSION.txt | 2 ++ aggregates/jetty-all/pom.xml | 2 +- apache-jsp/pom.xml | 2 +- apache-jstl/pom.xml | 2 +- examples/async-rest/async-rest-jar/pom.xml | 2 +- examples/async-rest/async-rest-webapp/pom.xml | 2 +- examples/async-rest/pom.xml | 2 +- examples/embedded/pom.xml | 2 +- examples/pom.xml | 2 +- jetty-alpn/jetty-alpn-client/pom.xml | 2 +- jetty-alpn/jetty-alpn-server/pom.xml | 2 +- jetty-alpn/pom.xml | 2 +- jetty-annotations/pom.xml | 2 +- jetty-ant/pom.xml | 2 +- jetty-cdi/pom.xml | 2 +- jetty-client/pom.xml | 2 +- jetty-continuation/pom.xml | 2 +- jetty-deploy/pom.xml | 2 +- jetty-distribution/pom.xml | 2 +- jetty-fcgi/fcgi-client/pom.xml | 2 +- jetty-fcgi/fcgi-server/pom.xml | 2 +- jetty-fcgi/pom.xml | 2 +- jetty-http-spi/pom.xml | 2 +- jetty-http/pom.xml | 2 +- jetty-io/pom.xml | 2 +- jetty-jaas/pom.xml | 2 +- jetty-jaspi/pom.xml | 2 +- jetty-jmx/pom.xml | 2 +- jetty-jndi/pom.xml | 2 +- jetty-jsp/pom.xml | 2 +- jetty-jspc-maven-plugin/pom.xml | 2 +- jetty-maven-plugin/pom.xml | 2 +- jetty-monitor/pom.xml | 2 +- jetty-nosql/pom.xml | 2 +- jetty-osgi/jetty-osgi-alpn/pom.xml | 2 +- jetty-osgi/jetty-osgi-boot-jsp/pom.xml | 2 +- jetty-osgi/jetty-osgi-boot-warurl/pom.xml | 2 +- jetty-osgi/jetty-osgi-boot/pom.xml | 2 +- jetty-osgi/jetty-osgi-httpservice/pom.xml | 2 +- jetty-osgi/pom.xml | 2 +- jetty-osgi/test-jetty-osgi-context/pom.xml | 2 +- jetty-osgi/test-jetty-osgi-webapp/pom.xml | 2 +- jetty-osgi/test-jetty-osgi/pom.xml | 2 +- jetty-plus/pom.xml | 2 +- jetty-proxy/pom.xml | 2 +- jetty-quickstart/pom.xml | 2 +- jetty-rewrite/pom.xml | 2 +- jetty-runner/pom.xml | 2 +- jetty-security/pom.xml | 2 +- jetty-server/pom.xml | 2 +- jetty-servlet/pom.xml | 2 +- jetty-servlets/pom.xml | 2 +- jetty-spdy/pom.xml | 2 +- jetty-spdy/spdy-alpn-tests/pom.xml | 2 +- jetty-spdy/spdy-client/pom.xml | 2 +- jetty-spdy/spdy-core/pom.xml | 2 +- jetty-spdy/spdy-example-webapp/pom.xml | 2 +- jetty-spdy/spdy-http-client-transport/pom.xml | 2 +- jetty-spdy/spdy-http-common/pom.xml | 2 +- jetty-spdy/spdy-http-server/pom.xml | 2 +- jetty-spdy/spdy-server/pom.xml | 2 +- jetty-spring/pom.xml | 2 +- jetty-start/pom.xml | 2 +- jetty-util-ajax/pom.xml | 2 +- jetty-util/pom.xml | 2 +- jetty-webapp/pom.xml | 2 +- jetty-websocket/javax-websocket-client-impl/pom.xml | 2 +- jetty-websocket/javax-websocket-server-impl/pom.xml | 2 +- jetty-websocket/pom.xml | 2 +- jetty-websocket/websocket-api/pom.xml | 2 +- jetty-websocket/websocket-client/pom.xml | 2 +- jetty-websocket/websocket-common/pom.xml | 2 +- jetty-websocket/websocket-server/pom.xml | 2 +- jetty-websocket/websocket-servlet/pom.xml | 2 +- jetty-xml/pom.xml | 2 +- pom.xml | 2 +- tests/pom.xml | 2 +- tests/test-continuation/pom.xml | 2 +- tests/test-integration/pom.xml | 2 +- tests/test-jmx/jmx-webapp-it/pom.xml | 2 +- tests/test-jmx/jmx-webapp/pom.xml | 2 +- tests/test-jmx/pom.xml | 2 +- tests/test-loginservice/pom.xml | 2 +- tests/test-quickstart/pom.xml | 2 +- tests/test-sessions/pom.xml | 2 +- tests/test-sessions/test-hash-sessions/pom.xml | 2 +- tests/test-sessions/test-jdbc-sessions/pom.xml | 2 +- tests/test-sessions/test-mongodb-sessions/pom.xml | 2 +- tests/test-sessions/test-sessions-common/pom.xml | 2 +- tests/test-webapps/pom.xml | 2 +- tests/test-webapps/test-jaas-webapp/pom.xml | 2 +- tests/test-webapps/test-jetty-webapp/pom.xml | 2 +- tests/test-webapps/test-jndi-webapp/pom.xml | 2 +- tests/test-webapps/test-mock-resources/pom.xml | 2 +- tests/test-webapps/test-proxy-webapp/pom.xml | 2 +- tests/test-webapps/test-servlet-spec/pom.xml | 2 +- .../test-servlet-spec/test-container-initializer/pom.xml | 2 +- tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml | 2 +- tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml | 2 +- tests/test-webapps/test-webapp-rfc2616/pom.xml | 2 +- 100 files changed, 101 insertions(+), 99 deletions(-) diff --git a/VERSION.txt b/VERSION.txt index da388c4f7ff..a22d1598b6a 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1,3 +1,5 @@ +jetty-9.2.30-SNAPSHOT + jetty-9.2.29.v20191105 - 05 November 2019 + 4217 SslConnection.DecryptedEnpoint.flush eternal busy loop diff --git a/aggregates/jetty-all/pom.xml b/aggregates/jetty-all/pom.xml index bbbb6bc9915..563506d5ac3 100644 --- a/aggregates/jetty-all/pom.xml +++ b/aggregates/jetty-all/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/apache-jsp/pom.xml b/apache-jsp/pom.xml index a2b28cea7db..8132fde49dc 100644 --- a/apache-jsp/pom.xml +++ b/apache-jsp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 apache-jsp diff --git a/apache-jstl/pom.xml b/apache-jstl/pom.xml index 5f267c052f4..c7c861b2ada 100644 --- a/apache-jstl/pom.xml +++ b/apache-jstl/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 apache-jstl diff --git a/examples/async-rest/async-rest-jar/pom.xml b/examples/async-rest/async-rest-jar/pom.xml index fba57d2f4c0..25893e2ab1f 100644 --- a/examples/async-rest/async-rest-jar/pom.xml +++ b/examples/async-rest/async-rest-jar/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty example-async-rest - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 org.eclipse.jetty.example-async-rest diff --git a/examples/async-rest/async-rest-webapp/pom.xml b/examples/async-rest/async-rest-webapp/pom.xml index 616fc72b282..849068510ca 100644 --- a/examples/async-rest/async-rest-webapp/pom.xml +++ b/examples/async-rest/async-rest-webapp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty example-async-rest - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 org.eclipse.jetty.example-async-rest diff --git a/examples/async-rest/pom.xml b/examples/async-rest/pom.xml index 97a0275b3f8..c8334e84f84 100644 --- a/examples/async-rest/pom.xml +++ b/examples/async-rest/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.examples examples-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT ../pom.xml 4.0.0 diff --git a/examples/embedded/pom.xml b/examples/embedded/pom.xml index 07e6af13e6f..30e2628e84d 100644 --- a/examples/embedded/pom.xml +++ b/examples/embedded/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.examples examples-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT ../pom.xml 4.0.0 diff --git a/examples/pom.xml b/examples/pom.xml index 64d1263d7ff..cc0662b2081 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT ../pom.xml org.eclipse.jetty.examples diff --git a/jetty-alpn/jetty-alpn-client/pom.xml b/jetty-alpn/jetty-alpn-client/pom.xml index 33f792c4e4e..f1b375e190d 100644 --- a/jetty-alpn/jetty-alpn-client/pom.xml +++ b/jetty-alpn/jetty-alpn-client/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-alpn-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-alpn-client diff --git a/jetty-alpn/jetty-alpn-server/pom.xml b/jetty-alpn/jetty-alpn-server/pom.xml index ea459cb792e..dcef47d6e1c 100644 --- a/jetty-alpn/jetty-alpn-server/pom.xml +++ b/jetty-alpn/jetty-alpn-server/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-alpn-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-alpn-server diff --git a/jetty-alpn/pom.xml b/jetty-alpn/pom.xml index 8b0bc1dd453..ac5fc0b53db 100644 --- a/jetty-alpn/pom.xml +++ b/jetty-alpn/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-alpn-parent diff --git a/jetty-annotations/pom.xml b/jetty-annotations/pom.xml index 94631acf715..01b26343fc4 100644 --- a/jetty-annotations/pom.xml +++ b/jetty-annotations/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-annotations diff --git a/jetty-ant/pom.xml b/jetty-ant/pom.xml index dbbb6201c05..0fe8a2c0398 100644 --- a/jetty-ant/pom.xml +++ b/jetty-ant/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-ant diff --git a/jetty-cdi/pom.xml b/jetty-cdi/pom.xml index 7ac1a13e920..dfa0235e50f 100644 --- a/jetty-cdi/pom.xml +++ b/jetty-cdi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-cdi diff --git a/jetty-client/pom.xml b/jetty-client/pom.xml index 7358359fbc9..595e2d0a748 100644 --- a/jetty-client/pom.xml +++ b/jetty-client/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 diff --git a/jetty-continuation/pom.xml b/jetty-continuation/pom.xml index 4683512ea62..73ca8d503c7 100644 --- a/jetty-continuation/pom.xml +++ b/jetty-continuation/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-continuation diff --git a/jetty-deploy/pom.xml b/jetty-deploy/pom.xml index 14890b0682a..c9234433527 100644 --- a/jetty-deploy/pom.xml +++ b/jetty-deploy/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-deploy diff --git a/jetty-distribution/pom.xml b/jetty-distribution/pom.xml index 679c8a2f1cc..719313643e9 100644 --- a/jetty-distribution/pom.xml +++ b/jetty-distribution/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT jetty-distribution Jetty :: Distribution Assemblies diff --git a/jetty-fcgi/fcgi-client/pom.xml b/jetty-fcgi/fcgi-client/pom.xml index 2246d119461..85a06e23820 100644 --- a/jetty-fcgi/fcgi-client/pom.xml +++ b/jetty-fcgi/fcgi-client/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.fcgi fcgi-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 diff --git a/jetty-fcgi/fcgi-server/pom.xml b/jetty-fcgi/fcgi-server/pom.xml index ac20c2b46c3..24c6cb123bd 100644 --- a/jetty-fcgi/fcgi-server/pom.xml +++ b/jetty-fcgi/fcgi-server/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.fcgi fcgi-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 diff --git a/jetty-fcgi/pom.xml b/jetty-fcgi/pom.xml index 7ba4bcde503..f780881fb4f 100644 --- a/jetty-fcgi/pom.xml +++ b/jetty-fcgi/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 diff --git a/jetty-http-spi/pom.xml b/jetty-http-spi/pom.xml index 1da2e203d66..4fa915c219a 100644 --- a/jetty-http-spi/pom.xml +++ b/jetty-http-spi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-http-spi diff --git a/jetty-http/pom.xml b/jetty-http/pom.xml index 8b337603200..7e49c6af96e 100644 --- a/jetty-http/pom.xml +++ b/jetty-http/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-http diff --git a/jetty-io/pom.xml b/jetty-io/pom.xml index d3c54b0f55b..e8996018472 100644 --- a/jetty-io/pom.xml +++ b/jetty-io/pom.xml @@ -2,7 +2,7 @@ jetty-project org.eclipse.jetty - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-io diff --git a/jetty-jaas/pom.xml b/jetty-jaas/pom.xml index b1271a47275..a4c44a58b4e 100644 --- a/jetty-jaas/pom.xml +++ b/jetty-jaas/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-jaas diff --git a/jetty-jaspi/pom.xml b/jetty-jaspi/pom.xml index 75cf9d1003a..2cac6a3a6dc 100644 --- a/jetty-jaspi/pom.xml +++ b/jetty-jaspi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-jaspi diff --git a/jetty-jmx/pom.xml b/jetty-jmx/pom.xml index 554f9879952..257d3697649 100644 --- a/jetty-jmx/pom.xml +++ b/jetty-jmx/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-jmx diff --git a/jetty-jndi/pom.xml b/jetty-jndi/pom.xml index 97d32b3d729..b6259c06575 100644 --- a/jetty-jndi/pom.xml +++ b/jetty-jndi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-jndi diff --git a/jetty-jsp/pom.xml b/jetty-jsp/pom.xml index 907217fda22..e7a32c2c317 100644 --- a/jetty-jsp/pom.xml +++ b/jetty-jsp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-jsp diff --git a/jetty-jspc-maven-plugin/pom.xml b/jetty-jspc-maven-plugin/pom.xml index d689239f314..6cdf6947121 100644 --- a/jetty-jspc-maven-plugin/pom.xml +++ b/jetty-jspc-maven-plugin/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-jspc-maven-plugin diff --git a/jetty-maven-plugin/pom.xml b/jetty-maven-plugin/pom.xml index 3a97b320b77..35240c79b30 100644 --- a/jetty-maven-plugin/pom.xml +++ b/jetty-maven-plugin/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-maven-plugin diff --git a/jetty-monitor/pom.xml b/jetty-monitor/pom.xml index 6a95f10df04..df866a9ca8c 100644 --- a/jetty-monitor/pom.xml +++ b/jetty-monitor/pom.xml @@ -19,7 +19,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-monitor diff --git a/jetty-nosql/pom.xml b/jetty-nosql/pom.xml index 7cf8d334282..037c67ec8f3 100644 --- a/jetty-nosql/pom.xml +++ b/jetty-nosql/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-nosql diff --git a/jetty-osgi/jetty-osgi-alpn/pom.xml b/jetty-osgi/jetty-osgi-alpn/pom.xml index 34628822c1d..a5916d5f17b 100644 --- a/jetty-osgi/jetty-osgi-alpn/pom.xml +++ b/jetty-osgi/jetty-osgi-alpn/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-osgi-alpn diff --git a/jetty-osgi/jetty-osgi-boot-jsp/pom.xml b/jetty-osgi/jetty-osgi-boot-jsp/pom.xml index 48255ac5dbc..4c2805200ca 100644 --- a/jetty-osgi/jetty-osgi-boot-jsp/pom.xml +++ b/jetty-osgi/jetty-osgi-boot-jsp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-osgi-boot-jsp diff --git a/jetty-osgi/jetty-osgi-boot-warurl/pom.xml b/jetty-osgi/jetty-osgi-boot-warurl/pom.xml index c54a23e3603..e5e9f32414d 100644 --- a/jetty-osgi/jetty-osgi-boot-warurl/pom.xml +++ b/jetty-osgi/jetty-osgi-boot-warurl/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT ../pom.xml 4.0.0 diff --git a/jetty-osgi/jetty-osgi-boot/pom.xml b/jetty-osgi/jetty-osgi-boot/pom.xml index 3632d73ec28..36e61a40e4c 100644 --- a/jetty-osgi/jetty-osgi-boot/pom.xml +++ b/jetty-osgi/jetty-osgi-boot/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-osgi-boot diff --git a/jetty-osgi/jetty-osgi-httpservice/pom.xml b/jetty-osgi/jetty-osgi-httpservice/pom.xml index 07abfeef57c..6da01f40547 100644 --- a/jetty-osgi/jetty-osgi-httpservice/pom.xml +++ b/jetty-osgi/jetty-osgi-httpservice/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-httpservice diff --git a/jetty-osgi/pom.xml b/jetty-osgi/pom.xml index 43be5fa001c..2373c025011 100644 --- a/jetty-osgi/pom.xml +++ b/jetty-osgi/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT org.eclipse.jetty.osgi jetty-osgi-project diff --git a/jetty-osgi/test-jetty-osgi-context/pom.xml b/jetty-osgi/test-jetty-osgi-context/pom.xml index 4318ceaca15..5d85ea59beb 100644 --- a/jetty-osgi/test-jetty-osgi-context/pom.xml +++ b/jetty-osgi/test-jetty-osgi-context/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 test-jetty-osgi-context diff --git a/jetty-osgi/test-jetty-osgi-webapp/pom.xml b/jetty-osgi/test-jetty-osgi-webapp/pom.xml index 919df9e015c..12d3af7890e 100644 --- a/jetty-osgi/test-jetty-osgi-webapp/pom.xml +++ b/jetty-osgi/test-jetty-osgi-webapp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT ../pom.xml 4.0.0 diff --git a/jetty-osgi/test-jetty-osgi/pom.xml b/jetty-osgi/test-jetty-osgi/pom.xml index 0185ebe8b15..dc8b432019c 100644 --- a/jetty-osgi/test-jetty-osgi/pom.xml +++ b/jetty-osgi/test-jetty-osgi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT ../pom.xml 4.0.0 diff --git a/jetty-plus/pom.xml b/jetty-plus/pom.xml index e19d2548027..6830bd6320b 100644 --- a/jetty-plus/pom.xml +++ b/jetty-plus/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-plus diff --git a/jetty-proxy/pom.xml b/jetty-proxy/pom.xml index c61f49e0208..a68318917c9 100644 --- a/jetty-proxy/pom.xml +++ b/jetty-proxy/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-proxy diff --git a/jetty-quickstart/pom.xml b/jetty-quickstart/pom.xml index 5f306ec5b54..9eb5670f1c2 100644 --- a/jetty-quickstart/pom.xml +++ b/jetty-quickstart/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 org.eclipse.jetty diff --git a/jetty-rewrite/pom.xml b/jetty-rewrite/pom.xml index 722b3532260..66878ca11e6 100644 --- a/jetty-rewrite/pom.xml +++ b/jetty-rewrite/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-rewrite diff --git a/jetty-runner/pom.xml b/jetty-runner/pom.xml index 6a281bc2fda..22910e4c718 100644 --- a/jetty-runner/pom.xml +++ b/jetty-runner/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-runner diff --git a/jetty-security/pom.xml b/jetty-security/pom.xml index 161549408c7..f7acdae242b 100644 --- a/jetty-security/pom.xml +++ b/jetty-security/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-security diff --git a/jetty-server/pom.xml b/jetty-server/pom.xml index 31e3a614ff9..95770c1f248 100644 --- a/jetty-server/pom.xml +++ b/jetty-server/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-server diff --git a/jetty-servlet/pom.xml b/jetty-servlet/pom.xml index 9fb6d0a5c52..f774cb5638b 100644 --- a/jetty-servlet/pom.xml +++ b/jetty-servlet/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-servlet diff --git a/jetty-servlets/pom.xml b/jetty-servlets/pom.xml index 9c9f22f60bf..0f8624429c0 100644 --- a/jetty-servlets/pom.xml +++ b/jetty-servlets/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-servlets diff --git a/jetty-spdy/pom.xml b/jetty-spdy/pom.xml index e0ff6da0336..66cacfe3310 100644 --- a/jetty-spdy/pom.xml +++ b/jetty-spdy/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 diff --git a/jetty-spdy/spdy-alpn-tests/pom.xml b/jetty-spdy/spdy-alpn-tests/pom.xml index 3a5e4a7ec3e..3fce39ad84c 100644 --- a/jetty-spdy/spdy-alpn-tests/pom.xml +++ b/jetty-spdy/spdy-alpn-tests/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 diff --git a/jetty-spdy/spdy-client/pom.xml b/jetty-spdy/spdy-client/pom.xml index 831a77b1a65..c3ddfdae674 100644 --- a/jetty-spdy/spdy-client/pom.xml +++ b/jetty-spdy/spdy-client/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 diff --git a/jetty-spdy/spdy-core/pom.xml b/jetty-spdy/spdy-core/pom.xml index 913d75cd348..ef0a504b78c 100644 --- a/jetty-spdy/spdy-core/pom.xml +++ b/jetty-spdy/spdy-core/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 diff --git a/jetty-spdy/spdy-example-webapp/pom.xml b/jetty-spdy/spdy-example-webapp/pom.xml index be251dbce42..0ec8d5d3022 100644 --- a/jetty-spdy/spdy-example-webapp/pom.xml +++ b/jetty-spdy/spdy-example-webapp/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 spdy-example-webapp diff --git a/jetty-spdy/spdy-http-client-transport/pom.xml b/jetty-spdy/spdy-http-client-transport/pom.xml index 021dbe9f898..423e7f58fa4 100644 --- a/jetty-spdy/spdy-http-client-transport/pom.xml +++ b/jetty-spdy/spdy-http-client-transport/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 diff --git a/jetty-spdy/spdy-http-common/pom.xml b/jetty-spdy/spdy-http-common/pom.xml index 389a8d2010a..d8a5b9de38b 100644 --- a/jetty-spdy/spdy-http-common/pom.xml +++ b/jetty-spdy/spdy-http-common/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 diff --git a/jetty-spdy/spdy-http-server/pom.xml b/jetty-spdy/spdy-http-server/pom.xml index 82672c96843..765d258bd32 100644 --- a/jetty-spdy/spdy-http-server/pom.xml +++ b/jetty-spdy/spdy-http-server/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 spdy-http-server diff --git a/jetty-spdy/spdy-server/pom.xml b/jetty-spdy/spdy-server/pom.xml index c5ee1f8fbc8..574f6a6416f 100644 --- a/jetty-spdy/spdy-server/pom.xml +++ b/jetty-spdy/spdy-server/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 diff --git a/jetty-spring/pom.xml b/jetty-spring/pom.xml index 29fea49994f..7813d92c08f 100644 --- a/jetty-spring/pom.xml +++ b/jetty-spring/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-spring diff --git a/jetty-start/pom.xml b/jetty-start/pom.xml index cb4e1bfd035..4264051ac0c 100644 --- a/jetty-start/pom.xml +++ b/jetty-start/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-start diff --git a/jetty-util-ajax/pom.xml b/jetty-util-ajax/pom.xml index 73a06f8bacc..7d540f80eb5 100644 --- a/jetty-util-ajax/pom.xml +++ b/jetty-util-ajax/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-util-ajax diff --git a/jetty-util/pom.xml b/jetty-util/pom.xml index 6cf16fb4b4d..1be5117b114 100644 --- a/jetty-util/pom.xml +++ b/jetty-util/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-util diff --git a/jetty-webapp/pom.xml b/jetty-webapp/pom.xml index f051b308d67..1db6fad5d8e 100644 --- a/jetty-webapp/pom.xml +++ b/jetty-webapp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-webapp diff --git a/jetty-websocket/javax-websocket-client-impl/pom.xml b/jetty-websocket/javax-websocket-client-impl/pom.xml index 597865a6a22..6fb9085d2c6 100644 --- a/jetty-websocket/javax-websocket-client-impl/pom.xml +++ b/jetty-websocket/javax-websocket-client-impl/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 diff --git a/jetty-websocket/javax-websocket-server-impl/pom.xml b/jetty-websocket/javax-websocket-server-impl/pom.xml index eac662a1a23..36151ac90fe 100644 --- a/jetty-websocket/javax-websocket-server-impl/pom.xml +++ b/jetty-websocket/javax-websocket-server-impl/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 diff --git a/jetty-websocket/pom.xml b/jetty-websocket/pom.xml index 76e77d3426a..9e605c880e9 100644 --- a/jetty-websocket/pom.xml +++ b/jetty-websocket/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 diff --git a/jetty-websocket/websocket-api/pom.xml b/jetty-websocket/websocket-api/pom.xml index a3f602c8758..53ed39cf45e 100644 --- a/jetty-websocket/websocket-api/pom.xml +++ b/jetty-websocket/websocket-api/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 diff --git a/jetty-websocket/websocket-client/pom.xml b/jetty-websocket/websocket-client/pom.xml index e209305220f..f28b5b3c300 100644 --- a/jetty-websocket/websocket-client/pom.xml +++ b/jetty-websocket/websocket-client/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 diff --git a/jetty-websocket/websocket-common/pom.xml b/jetty-websocket/websocket-common/pom.xml index 932cd8fba5a..caa0e3f7cd4 100644 --- a/jetty-websocket/websocket-common/pom.xml +++ b/jetty-websocket/websocket-common/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 diff --git a/jetty-websocket/websocket-server/pom.xml b/jetty-websocket/websocket-server/pom.xml index 3cfd1be132a..6dc6c9443fb 100644 --- a/jetty-websocket/websocket-server/pom.xml +++ b/jetty-websocket/websocket-server/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 diff --git a/jetty-websocket/websocket-servlet/pom.xml b/jetty-websocket/websocket-servlet/pom.xml index 2eb44732011..149afc73cc8 100644 --- a/jetty-websocket/websocket-servlet/pom.xml +++ b/jetty-websocket/websocket-servlet/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 diff --git a/jetty-xml/pom.xml b/jetty-xml/pom.xml index 3e27279cdb2..fb7937b436b 100644 --- a/jetty-xml/pom.xml +++ b/jetty-xml/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jetty-xml diff --git a/pom.xml b/pom.xml index d88ba6783a3..8de7b59f043 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ 23 jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT Jetty :: Project http://www.eclipse.org/jetty pom diff --git a/tests/pom.xml b/tests/pom.xml index 04b60c610ed..179ac1eecd8 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty jetty-project - 9.2.29.v20191105 + 9.2.30-SNAPSHOT ../pom.xml org.eclipse.jetty.tests diff --git a/tests/test-continuation/pom.xml b/tests/test-continuation/pom.xml index 159e8d9594f..8dbdc1a6c84 100644 --- a/tests/test-continuation/pom.xml +++ b/tests/test-continuation/pom.xml @@ -20,7 +20,7 @@ org.eclipse.jetty.tests tests-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT ../pom.xml 4.0.0 diff --git a/tests/test-integration/pom.xml b/tests/test-integration/pom.xml index e8df9e21311..2a5e04c96ce 100644 --- a/tests/test-integration/pom.xml +++ b/tests/test-integration/pom.xml @@ -20,7 +20,7 @@ org.eclipse.jetty.tests tests-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 test-integration diff --git a/tests/test-jmx/jmx-webapp-it/pom.xml b/tests/test-jmx/jmx-webapp-it/pom.xml index 4006050c42a..fc0174820eb 100644 --- a/tests/test-jmx/jmx-webapp-it/pom.xml +++ b/tests/test-jmx/jmx-webapp-it/pom.xml @@ -20,7 +20,7 @@ org.eclipse.jetty.tests test-jmx-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 jmx-webapp-it diff --git a/tests/test-jmx/jmx-webapp/pom.xml b/tests/test-jmx/jmx-webapp/pom.xml index 3348974e657..16f615a5b9a 100644 --- a/tests/test-jmx/jmx-webapp/pom.xml +++ b/tests/test-jmx/jmx-webapp/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-jmx-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT jmx-webapp war diff --git a/tests/test-jmx/pom.xml b/tests/test-jmx/pom.xml index 81a549b190b..37a0362f830 100644 --- a/tests/test-jmx/pom.xml +++ b/tests/test-jmx/pom.xml @@ -20,7 +20,7 @@ org.eclipse.jetty.tests tests-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT 4.0.0 test-jmx-parent diff --git a/tests/test-loginservice/pom.xml b/tests/test-loginservice/pom.xml index d2b25f9b21a..d7bca2c5c54 100644 --- a/tests/test-loginservice/pom.xml +++ b/tests/test-loginservice/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests tests-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT test-loginservice Jetty Tests :: Login Service diff --git a/tests/test-quickstart/pom.xml b/tests/test-quickstart/pom.xml index 92c0a2fd071..f803b3fdb48 100644 --- a/tests/test-quickstart/pom.xml +++ b/tests/test-quickstart/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.tests tests-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT ../pom.xml 4.0.0 diff --git a/tests/test-sessions/pom.xml b/tests/test-sessions/pom.xml index 507a5df7a65..0c4f7860756 100644 --- a/tests/test-sessions/pom.xml +++ b/tests/test-sessions/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests tests-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT test-sessions-parent Jetty Tests :: Sessions :: Parent diff --git a/tests/test-sessions/test-hash-sessions/pom.xml b/tests/test-sessions/test-hash-sessions/pom.xml index dd781c63404..2b2e4f40ff0 100644 --- a/tests/test-sessions/test-hash-sessions/pom.xml +++ b/tests/test-sessions/test-hash-sessions/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT test-hash-sessions Jetty Tests :: Sessions :: Hash diff --git a/tests/test-sessions/test-jdbc-sessions/pom.xml b/tests/test-sessions/test-jdbc-sessions/pom.xml index 28d08a3ad02..b575067d034 100644 --- a/tests/test-sessions/test-jdbc-sessions/pom.xml +++ b/tests/test-sessions/test-jdbc-sessions/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT test-jdbc-sessions Jetty Tests :: Sessions :: JDBC diff --git a/tests/test-sessions/test-mongodb-sessions/pom.xml b/tests/test-sessions/test-mongodb-sessions/pom.xml index 0825b35578d..fc36e7dd1b9 100644 --- a/tests/test-sessions/test-mongodb-sessions/pom.xml +++ b/tests/test-sessions/test-mongodb-sessions/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT test-mongodb-sessions Jetty Tests :: Sessions :: Mongo diff --git a/tests/test-sessions/test-sessions-common/pom.xml b/tests/test-sessions/test-sessions-common/pom.xml index 6d5fb172559..cba94f9b101 100644 --- a/tests/test-sessions/test-sessions-common/pom.xml +++ b/tests/test-sessions/test-sessions-common/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT test-sessions-common Jetty Tests :: Sessions :: Common diff --git a/tests/test-webapps/pom.xml b/tests/test-webapps/pom.xml index 4e40ae3ff89..b0d115ffdac 100644 --- a/tests/test-webapps/pom.xml +++ b/tests/test-webapps/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests tests-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT ../pom.xml test-webapps-parent diff --git a/tests/test-webapps/test-jaas-webapp/pom.xml b/tests/test-webapps/test-jaas-webapp/pom.xml index bd4481bd72e..05fa2952602 100644 --- a/tests/test-webapps/test-jaas-webapp/pom.xml +++ b/tests/test-webapps/test-jaas-webapp/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT test-jaas-webapp Jetty Tests :: WebApp :: JAAS diff --git a/tests/test-webapps/test-jetty-webapp/pom.xml b/tests/test-webapps/test-jetty-webapp/pom.xml index 83506c17649..bad137f6e1a 100644 --- a/tests/test-webapps/test-jetty-webapp/pom.xml +++ b/tests/test-webapps/test-jetty-webapp/pom.xml @@ -20,7 +20,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT ../pom.xml 4.0.0 diff --git a/tests/test-webapps/test-jndi-webapp/pom.xml b/tests/test-webapps/test-jndi-webapp/pom.xml index fbe5b868f4d..5d406f425b9 100644 --- a/tests/test-webapps/test-jndi-webapp/pom.xml +++ b/tests/test-webapps/test-jndi-webapp/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT test-jndi-webapp Jetty Tests :: WebApp :: JNDI diff --git a/tests/test-webapps/test-mock-resources/pom.xml b/tests/test-webapps/test-mock-resources/pom.xml index 60d5535843a..682ff948114 100644 --- a/tests/test-webapps/test-mock-resources/pom.xml +++ b/tests/test-webapps/test-mock-resources/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT Jetty Tests :: WebApp :: Mock Resources test-mock-resources diff --git a/tests/test-webapps/test-proxy-webapp/pom.xml b/tests/test-webapps/test-proxy-webapp/pom.xml index 43b10864473..537b6f20791 100644 --- a/tests/test-webapps/test-proxy-webapp/pom.xml +++ b/tests/test-webapps/test-proxy-webapp/pom.xml @@ -20,7 +20,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT ../pom.xml 4.0.0 diff --git a/tests/test-webapps/test-servlet-spec/pom.xml b/tests/test-webapps/test-servlet-spec/pom.xml index 9c8fb1ad5ba..750fde72b0c 100644 --- a/tests/test-webapps/test-servlet-spec/pom.xml +++ b/tests/test-webapps/test-servlet-spec/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT test-servlet-spec-parent Jetty Tests :: Spec Test WebApp :: Parent diff --git a/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml b/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml index cebb3747cb7..541313e9381 100644 --- a/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml +++ b/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-servlet-spec-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT test-container-initializer jar diff --git a/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml b/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml index d65d1e7c37e..111339402f3 100644 --- a/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml +++ b/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-servlet-spec-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT Jetty Tests :: Webapps :: Spec Webapp test-spec-webapp diff --git a/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml b/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml index 1c89443455f..f87b1adde79 100644 --- a/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml +++ b/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-servlet-spec-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT Jetty Tests :: WebApp :: Servlet Spec :: Fragment Jar org.eclipse.jetty.tests diff --git a/tests/test-webapps/test-webapp-rfc2616/pom.xml b/tests/test-webapps/test-webapp-rfc2616/pom.xml index f59ad5f9a58..fe53d11eca9 100644 --- a/tests/test-webapps/test-webapp-rfc2616/pom.xml +++ b/tests/test-webapps/test-webapp-rfc2616/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.2.29.v20191105 + 9.2.30-SNAPSHOT test-webapp-rfc2616 Jetty Tests :: WebApp :: RFC2616 From d7dd68d6e9d8ff06a0130e46886c2db5d70784c1 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Tue, 5 Nov 2019 11:46:40 -0600 Subject: [PATCH 18/34] Updating to version 9.3.28.v20191105 --- VERSION.txt | 5 +- aggregates/jetty-all-compact3/pom.xml | 2 +- aggregates/jetty-all/pom.xml | 2 +- apache-jsp/pom.xml | 2 +- apache-jstl/pom.xml | 2 +- examples/async-rest/async-rest-jar/pom.xml | 2 +- examples/async-rest/async-rest-webapp/pom.xml | 2 +- examples/async-rest/pom.xml | 2 +- examples/embedded/pom.xml | 2 +- examples/pom.xml | 2 +- jetty-alpn/jetty-alpn-client/pom.xml | 2 +- jetty-alpn/jetty-alpn-java-client/pom.xml | 2 +- jetty-alpn/jetty-alpn-java-server/pom.xml | 2 +- jetty-alpn/jetty-alpn-server/pom.xml | 2 +- jetty-alpn/pom.xml | 2 +- jetty-annotations/pom.xml | 2 +- jetty-ant/pom.xml | 2 +- jetty-bom/pom.xml | 104 +++++++++--------- jetty-cdi/cdi-core/pom.xml | 2 +- jetty-cdi/cdi-full-servlet/pom.xml | 2 +- jetty-cdi/cdi-servlet/pom.xml | 2 +- jetty-cdi/cdi-websocket/pom.xml | 2 +- jetty-cdi/pom.xml | 2 +- jetty-cdi/test-cdi-webapp/pom.xml | 2 +- jetty-client/pom.xml | 2 +- jetty-continuation/pom.xml | 2 +- jetty-deploy/pom.xml | 2 +- jetty-distribution/pom.xml | 2 +- jetty-documentation/pom.xml | 2 +- jetty-fcgi/fcgi-client/pom.xml | 2 +- jetty-fcgi/fcgi-server/pom.xml | 2 +- jetty-fcgi/pom.xml | 2 +- .../pom.xml | 2 +- .../jetty-gcloud-session-manager/pom.xml | 2 +- jetty-gcloud/pom.xml | 2 +- jetty-hazelcast/pom.xml | 2 +- jetty-http-spi/pom.xml | 2 +- jetty-http/pom.xml | 2 +- jetty-http2/http2-alpn-tests/pom.xml | 2 +- jetty-http2/http2-client/pom.xml | 2 +- jetty-http2/http2-common/pom.xml | 2 +- jetty-http2/http2-hpack/pom.xml | 2 +- .../http2-http-client-transport/pom.xml | 2 +- jetty-http2/http2-server/pom.xml | 2 +- jetty-http2/pom.xml | 2 +- jetty-infinispan/pom.xml | 2 +- jetty-io/pom.xml | 2 +- jetty-jaas/pom.xml | 2 +- jetty-jaspi/pom.xml | 2 +- jetty-jmx/pom.xml | 2 +- jetty-jndi/pom.xml | 2 +- jetty-jspc-maven-plugin/pom.xml | 2 +- jetty-maven-plugin/pom.xml | 2 +- jetty-monitor/pom.xml | 2 +- jetty-nosql/pom.xml | 2 +- jetty-osgi/jetty-osgi-alpn/pom.xml | 2 +- jetty-osgi/jetty-osgi-boot-jsp/pom.xml | 2 +- jetty-osgi/jetty-osgi-boot-warurl/pom.xml | 2 +- jetty-osgi/jetty-osgi-boot/pom.xml | 2 +- jetty-osgi/jetty-osgi-httpservice/pom.xml | 2 +- jetty-osgi/pom.xml | 2 +- jetty-osgi/test-jetty-osgi-context/pom.xml | 2 +- jetty-osgi/test-jetty-osgi-fragment/pom.xml | 2 +- jetty-osgi/test-jetty-osgi-webapp/pom.xml | 2 +- jetty-osgi/test-jetty-osgi/pom.xml | 2 +- jetty-plus/pom.xml | 2 +- jetty-proxy/pom.xml | 2 +- jetty-quickstart/pom.xml | 2 +- jetty-rewrite/pom.xml | 2 +- jetty-runner/pom.xml | 2 +- jetty-security/pom.xml | 2 +- jetty-server/pom.xml | 2 +- jetty-servlet/pom.xml | 2 +- jetty-servlets/pom.xml | 2 +- jetty-spring/pom.xml | 2 +- jetty-start/pom.xml | 2 +- jetty-util-ajax/pom.xml | 2 +- jetty-util/pom.xml | 2 +- jetty-webapp/pom.xml | 2 +- .../javax-websocket-client-impl/pom.xml | 2 +- .../javax-websocket-server-impl/pom.xml | 2 +- jetty-websocket/pom.xml | 2 +- jetty-websocket/websocket-api/pom.xml | 2 +- jetty-websocket/websocket-client/pom.xml | 2 +- jetty-websocket/websocket-common/pom.xml | 2 +- jetty-websocket/websocket-server/pom.xml | 2 +- jetty-websocket/websocket-servlet/pom.xml | 2 +- jetty-xml/pom.xml | 2 +- pom.xml | 2 +- tests/pom.xml | 2 +- tests/test-continuation/pom.xml | 2 +- tests/test-http-client-transport/pom.xml | 2 +- tests/test-integration/pom.xml | 2 +- tests/test-jmx/jmx-webapp-it/pom.xml | 2 +- tests/test-jmx/jmx-webapp/pom.xml | 2 +- tests/test-jmx/pom.xml | 2 +- tests/test-loginservice/pom.xml | 2 +- tests/test-quickstart/pom.xml | 2 +- tests/test-sessions/pom.xml | 2 +- .../test-gcloud-memcached-sessions/pom.xml | 2 +- .../test-gcloud-sessions/pom.xml | 2 +- .../test-sessions/test-hash-sessions/pom.xml | 2 +- .../test-infinispan-sessions/pom.xml | 2 +- .../test-sessions/test-jdbc-sessions/pom.xml | 2 +- .../test-mongodb-sessions/pom.xml | 2 +- .../test-sessions-common/pom.xml | 2 +- tests/test-webapps/pom.xml | 2 +- tests/test-webapps/test-jaas-webapp/pom.xml | 2 +- tests/test-webapps/test-jetty-webapp/pom.xml | 2 +- tests/test-webapps/test-jndi-webapp/pom.xml | 2 +- .../test-webapps/test-mock-resources/pom.xml | 2 +- tests/test-webapps/test-proxy-webapp/pom.xml | 2 +- tests/test-webapps/test-servlet-spec/pom.xml | 2 +- .../test-container-initializer/pom.xml | 2 +- .../test-spec-webapp/pom.xml | 2 +- .../test-web-fragment/pom.xml | 2 +- .../test-webapps/test-webapp-rfc2616/pom.xml | 2 +- 117 files changed, 171 insertions(+), 168 deletions(-) diff --git a/VERSION.txt b/VERSION.txt index c6dde8cb6cd..e22a86d509c 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1,4 +1,7 @@ -jetty-9.3.28-SNAPSHOT +jetty-9.3.28.v20191105 - 05 November 2019 + + 3989 Inform custom ManagedSelector of dead selector via optional + onFailedSelect() + + 4217 SslConnection.DecryptedEnpoint.flush eternal busy loop jetty-9.3.27.v20190418 - 18 April 2019 + 3549 Directory Listing on Windows reveals Resource Base path diff --git a/aggregates/jetty-all-compact3/pom.xml b/aggregates/jetty-all-compact3/pom.xml index 382597e6f10..56b424868d2 100644 --- a/aggregates/jetty-all-compact3/pom.xml +++ b/aggregates/jetty-all-compact3/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 ../../pom.xml 4.0.0 diff --git a/aggregates/jetty-all/pom.xml b/aggregates/jetty-all/pom.xml index bde1a6fc976..7f0b3fb3451 100644 --- a/aggregates/jetty-all/pom.xml +++ b/aggregates/jetty-all/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 ../../pom.xml 4.0.0 diff --git a/apache-jsp/pom.xml b/apache-jsp/pom.xml index 4eebb25a68e..f920243d3bd 100644 --- a/apache-jsp/pom.xml +++ b/apache-jsp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 apache-jsp diff --git a/apache-jstl/pom.xml b/apache-jstl/pom.xml index 11da92d4391..9727ccbb0de 100644 --- a/apache-jstl/pom.xml +++ b/apache-jstl/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 apache-jstl diff --git a/examples/async-rest/async-rest-jar/pom.xml b/examples/async-rest/async-rest-jar/pom.xml index d019e8f7d45..467b5abb10d 100644 --- a/examples/async-rest/async-rest-jar/pom.xml +++ b/examples/async-rest/async-rest-jar/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty example-async-rest - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 org.eclipse.jetty.example-async-rest diff --git a/examples/async-rest/async-rest-webapp/pom.xml b/examples/async-rest/async-rest-webapp/pom.xml index d4a043f709b..50be634182a 100644 --- a/examples/async-rest/async-rest-webapp/pom.xml +++ b/examples/async-rest/async-rest-webapp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty example-async-rest - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 org.eclipse.jetty.example-async-rest diff --git a/examples/async-rest/pom.xml b/examples/async-rest/pom.xml index 93789c4587d..f4cc7cc43de 100644 --- a/examples/async-rest/pom.xml +++ b/examples/async-rest/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.examples examples-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 ../pom.xml 4.0.0 diff --git a/examples/embedded/pom.xml b/examples/embedded/pom.xml index 050acde9291..9b64fe7722f 100644 --- a/examples/embedded/pom.xml +++ b/examples/embedded/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.examples examples-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 ../pom.xml 4.0.0 diff --git a/examples/pom.xml b/examples/pom.xml index 19a96fc75a0..5f727876c6e 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 ../pom.xml org.eclipse.jetty.examples diff --git a/jetty-alpn/jetty-alpn-client/pom.xml b/jetty-alpn/jetty-alpn-client/pom.xml index 061502b9f84..f3cf4ac5610 100644 --- a/jetty-alpn/jetty-alpn-client/pom.xml +++ b/jetty-alpn/jetty-alpn-client/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-alpn-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-alpn-client diff --git a/jetty-alpn/jetty-alpn-java-client/pom.xml b/jetty-alpn/jetty-alpn-java-client/pom.xml index c6cce70660e..1cc14e37c5e 100644 --- a/jetty-alpn/jetty-alpn-java-client/pom.xml +++ b/jetty-alpn/jetty-alpn-java-client/pom.xml @@ -6,7 +6,7 @@ org.eclipse.jetty jetty-alpn-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-alpn/jetty-alpn-java-server/pom.xml b/jetty-alpn/jetty-alpn-java-server/pom.xml index c63483e6d3c..2f9dcda7aa7 100644 --- a/jetty-alpn/jetty-alpn-java-server/pom.xml +++ b/jetty-alpn/jetty-alpn-java-server/pom.xml @@ -5,7 +5,7 @@ org.eclipse.jetty jetty-alpn-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-alpn/jetty-alpn-server/pom.xml b/jetty-alpn/jetty-alpn-server/pom.xml index eba7a89f2f4..6dde73a10bd 100644 --- a/jetty-alpn/jetty-alpn-server/pom.xml +++ b/jetty-alpn/jetty-alpn-server/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-alpn-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-alpn-server diff --git a/jetty-alpn/pom.xml b/jetty-alpn/pom.xml index b65383a9d1b..cf395c9f100 100644 --- a/jetty-alpn/pom.xml +++ b/jetty-alpn/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-alpn-parent diff --git a/jetty-annotations/pom.xml b/jetty-annotations/pom.xml index 7ebe9a5b758..50d34b0c083 100644 --- a/jetty-annotations/pom.xml +++ b/jetty-annotations/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-annotations diff --git a/jetty-ant/pom.xml b/jetty-ant/pom.xml index 7ea53292796..357ff256332 100644 --- a/jetty-ant/pom.xml +++ b/jetty-ant/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-ant diff --git a/jetty-bom/pom.xml b/jetty-bom/pom.xml index fd53ed219ea..a3b2ea15742 100644 --- a/jetty-bom/pom.xml +++ b/jetty-bom/pom.xml @@ -9,7 +9,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 @@ -53,258 +53,258 @@ org.eclipse.jetty jetty-annotations - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty cdi-core - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty cdi-servlet - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty cdi-websocket - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-client - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-continuation - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty.fcgi fcgi-server - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty.fcgi fcgi-server - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-gcloud-memcached-session-manager - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-gcloud-session-manager - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-hazelcast - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-http - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty.http2 http2-client - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty.http2 http2-common - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty.http2 http2-hpack - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty.http2 http2-http-client-transport - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty.http2 http2-server - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-http-spi - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-infinispan - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-io - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-jaas - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-jaspi - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-jmx - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-jndi - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-monitor - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-nosql - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-osgi-boot - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-osgi-boot-jsp - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-osgi-boot-warurl - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-plus - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-proxy - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-quickstart - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-rewrite - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-security - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-server - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-servlet - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-servlets - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-spring - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-util - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-util-ajax - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-webapp - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty javax-websocket-client-impl - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty javax-websocket-server-impl - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty javax-websocket-api - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty javax-websocket-client - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty javax-websocket-common - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty javax-websocket-server - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty javax-websocket-servlet - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-xml - 9.3.28-SNAPSHOT + 9.3.28.v20191105 org.eclipse.jetty jetty-distribution - 9.3.28-SNAPSHOT + 9.3.28.v20191105 zip org.eclipse.jetty jetty-distribution - 9.3.28-SNAPSHOT + 9.3.28.v20191105 tar.gz diff --git a/jetty-cdi/cdi-core/pom.xml b/jetty-cdi/cdi-core/pom.xml index 674bbedbc1d..3625ecb4353 100644 --- a/jetty-cdi/cdi-core/pom.xml +++ b/jetty-cdi/cdi-core/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.cdi jetty-cdi-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 cdi-core diff --git a/jetty-cdi/cdi-full-servlet/pom.xml b/jetty-cdi/cdi-full-servlet/pom.xml index 72812b8902b..5e8c555d793 100644 --- a/jetty-cdi/cdi-full-servlet/pom.xml +++ b/jetty-cdi/cdi-full-servlet/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.cdi jetty-cdi-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 cdi-full-servlet diff --git a/jetty-cdi/cdi-servlet/pom.xml b/jetty-cdi/cdi-servlet/pom.xml index 2ac058b7381..cfa2fb08fa6 100644 --- a/jetty-cdi/cdi-servlet/pom.xml +++ b/jetty-cdi/cdi-servlet/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.cdi jetty-cdi-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 cdi-servlet diff --git a/jetty-cdi/cdi-websocket/pom.xml b/jetty-cdi/cdi-websocket/pom.xml index 76c5697cd47..ae0edf78b45 100644 --- a/jetty-cdi/cdi-websocket/pom.xml +++ b/jetty-cdi/cdi-websocket/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.cdi jetty-cdi-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 cdi-websocket diff --git a/jetty-cdi/pom.xml b/jetty-cdi/pom.xml index dc60a53d7a1..8e9f2fbb030 100644 --- a/jetty-cdi/pom.xml +++ b/jetty-cdi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 org.eclipse.jetty.cdi diff --git a/jetty-cdi/test-cdi-webapp/pom.xml b/jetty-cdi/test-cdi-webapp/pom.xml index 3b9a494f219..e1a8e5d1306 100644 --- a/jetty-cdi/test-cdi-webapp/pom.xml +++ b/jetty-cdi/test-cdi-webapp/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.cdi jetty-cdi-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 test-cdi-webapp diff --git a/jetty-client/pom.xml b/jetty-client/pom.xml index f92f6f70b8a..ff11ff9f4e0 100644 --- a/jetty-client/pom.xml +++ b/jetty-client/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-continuation/pom.xml b/jetty-continuation/pom.xml index 5ba41c46af7..d6e01ef626b 100644 --- a/jetty-continuation/pom.xml +++ b/jetty-continuation/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-continuation diff --git a/jetty-deploy/pom.xml b/jetty-deploy/pom.xml index dcaa56891b2..dced138555e 100644 --- a/jetty-deploy/pom.xml +++ b/jetty-deploy/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-deploy diff --git a/jetty-distribution/pom.xml b/jetty-distribution/pom.xml index ffe2aea72c1..c1abc8d32c5 100644 --- a/jetty-distribution/pom.xml +++ b/jetty-distribution/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-distribution diff --git a/jetty-documentation/pom.xml b/jetty-documentation/pom.xml index f6f9c9b26e7..205053a7526 100644 --- a/jetty-documentation/pom.xml +++ b/jetty-documentation/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 jetty-documentation Jetty :: Documentation diff --git a/jetty-fcgi/fcgi-client/pom.xml b/jetty-fcgi/fcgi-client/pom.xml index e43b27a6b68..f0a29b8c4fe 100644 --- a/jetty-fcgi/fcgi-client/pom.xml +++ b/jetty-fcgi/fcgi-client/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.fcgi fcgi-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-fcgi/fcgi-server/pom.xml b/jetty-fcgi/fcgi-server/pom.xml index f2b54eec56a..cdce742b858 100644 --- a/jetty-fcgi/fcgi-server/pom.xml +++ b/jetty-fcgi/fcgi-server/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.fcgi fcgi-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-fcgi/pom.xml b/jetty-fcgi/pom.xml index 3a97812f431..0248aacd9ed 100644 --- a/jetty-fcgi/pom.xml +++ b/jetty-fcgi/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-gcloud/jetty-gcloud-memcached-session-manager/pom.xml b/jetty-gcloud/jetty-gcloud-memcached-session-manager/pom.xml index 56f9035b148..de0d0305aac 100644 --- a/jetty-gcloud/jetty-gcloud-memcached-session-manager/pom.xml +++ b/jetty-gcloud/jetty-gcloud-memcached-session-manager/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.gcloud gcloud-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-gcloud/jetty-gcloud-session-manager/pom.xml b/jetty-gcloud/jetty-gcloud-session-manager/pom.xml index 66a84995b52..42665410402 100644 --- a/jetty-gcloud/jetty-gcloud-session-manager/pom.xml +++ b/jetty-gcloud/jetty-gcloud-session-manager/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.gcloud gcloud-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-gcloud/pom.xml b/jetty-gcloud/pom.xml index 9e3cd3b6a26..682db3c62c0 100644 --- a/jetty-gcloud/pom.xml +++ b/jetty-gcloud/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-hazelcast/pom.xml b/jetty-hazelcast/pom.xml index 5948601dc80..f4faef9672a 100644 --- a/jetty-hazelcast/pom.xml +++ b/jetty-hazelcast/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-hazelcast diff --git a/jetty-http-spi/pom.xml b/jetty-http-spi/pom.xml index 79e468f5f78..581e24d0134 100644 --- a/jetty-http-spi/pom.xml +++ b/jetty-http-spi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-http-spi diff --git a/jetty-http/pom.xml b/jetty-http/pom.xml index a3a63ea04c9..0bb460960d1 100644 --- a/jetty-http/pom.xml +++ b/jetty-http/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-http diff --git a/jetty-http2/http2-alpn-tests/pom.xml b/jetty-http2/http2-alpn-tests/pom.xml index a4e6ffdd199..e841505142f 100644 --- a/jetty-http2/http2-alpn-tests/pom.xml +++ b/jetty-http2/http2-alpn-tests/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.http2 http2-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-http2/http2-client/pom.xml b/jetty-http2/http2-client/pom.xml index 7a0cb2f174e..7017ba09dee 100644 --- a/jetty-http2/http2-client/pom.xml +++ b/jetty-http2/http2-client/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.http2 http2-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-http2/http2-common/pom.xml b/jetty-http2/http2-common/pom.xml index cfe94bf72be..b980c4023d3 100644 --- a/jetty-http2/http2-common/pom.xml +++ b/jetty-http2/http2-common/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.http2 http2-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-http2/http2-hpack/pom.xml b/jetty-http2/http2-hpack/pom.xml index 2a2492fcce5..c6ffda44eeb 100644 --- a/jetty-http2/http2-hpack/pom.xml +++ b/jetty-http2/http2-hpack/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.http2 http2-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-http2/http2-http-client-transport/pom.xml b/jetty-http2/http2-http-client-transport/pom.xml index 70faffdad1b..35a0fdeba44 100644 --- a/jetty-http2/http2-http-client-transport/pom.xml +++ b/jetty-http2/http2-http-client-transport/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.http2 http2-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-http2/http2-server/pom.xml b/jetty-http2/http2-server/pom.xml index 345dcf0bd6c..c2d35f74498 100644 --- a/jetty-http2/http2-server/pom.xml +++ b/jetty-http2/http2-server/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.http2 http2-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-http2/pom.xml b/jetty-http2/pom.xml index 6b31243005d..7a634c6bb7e 100644 --- a/jetty-http2/pom.xml +++ b/jetty-http2/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-infinispan/pom.xml b/jetty-infinispan/pom.xml index b5e60311e50..686dce65dcc 100644 --- a/jetty-infinispan/pom.xml +++ b/jetty-infinispan/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-infinispan diff --git a/jetty-io/pom.xml b/jetty-io/pom.xml index 1eedd696a78..bf69e03cc33 100644 --- a/jetty-io/pom.xml +++ b/jetty-io/pom.xml @@ -2,7 +2,7 @@ jetty-project org.eclipse.jetty - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-io diff --git a/jetty-jaas/pom.xml b/jetty-jaas/pom.xml index c0f3f7df0cc..ccad75a8372 100644 --- a/jetty-jaas/pom.xml +++ b/jetty-jaas/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-jaas diff --git a/jetty-jaspi/pom.xml b/jetty-jaspi/pom.xml index 56e3292005b..83c6754f104 100644 --- a/jetty-jaspi/pom.xml +++ b/jetty-jaspi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-jaspi diff --git a/jetty-jmx/pom.xml b/jetty-jmx/pom.xml index 91c7f6f0017..4598f5e0b68 100644 --- a/jetty-jmx/pom.xml +++ b/jetty-jmx/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-jmx diff --git a/jetty-jndi/pom.xml b/jetty-jndi/pom.xml index 7c339d93dd7..e4857100e34 100644 --- a/jetty-jndi/pom.xml +++ b/jetty-jndi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-jndi diff --git a/jetty-jspc-maven-plugin/pom.xml b/jetty-jspc-maven-plugin/pom.xml index f9a2d1b3151..1390f8838e3 100644 --- a/jetty-jspc-maven-plugin/pom.xml +++ b/jetty-jspc-maven-plugin/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-jspc-maven-plugin diff --git a/jetty-maven-plugin/pom.xml b/jetty-maven-plugin/pom.xml index c88cfe87ea4..96c35c8b87d 100644 --- a/jetty-maven-plugin/pom.xml +++ b/jetty-maven-plugin/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-maven-plugin diff --git a/jetty-monitor/pom.xml b/jetty-monitor/pom.xml index 61e92894084..53bc4407128 100644 --- a/jetty-monitor/pom.xml +++ b/jetty-monitor/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-monitor diff --git a/jetty-nosql/pom.xml b/jetty-nosql/pom.xml index d5fc118c4d2..6ebc0c2f131 100644 --- a/jetty-nosql/pom.xml +++ b/jetty-nosql/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-nosql diff --git a/jetty-osgi/jetty-osgi-alpn/pom.xml b/jetty-osgi/jetty-osgi-alpn/pom.xml index 3bccbfd5157..01c80dce267 100644 --- a/jetty-osgi/jetty-osgi-alpn/pom.xml +++ b/jetty-osgi/jetty-osgi-alpn/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-osgi-alpn diff --git a/jetty-osgi/jetty-osgi-boot-jsp/pom.xml b/jetty-osgi/jetty-osgi-boot-jsp/pom.xml index e56f80285b3..e9a44762dbd 100644 --- a/jetty-osgi/jetty-osgi-boot-jsp/pom.xml +++ b/jetty-osgi/jetty-osgi-boot-jsp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-osgi-boot-jsp diff --git a/jetty-osgi/jetty-osgi-boot-warurl/pom.xml b/jetty-osgi/jetty-osgi-boot-warurl/pom.xml index bc2af9d56b2..4c19b9ef479 100644 --- a/jetty-osgi/jetty-osgi-boot-warurl/pom.xml +++ b/jetty-osgi/jetty-osgi-boot-warurl/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 ../pom.xml 4.0.0 diff --git a/jetty-osgi/jetty-osgi-boot/pom.xml b/jetty-osgi/jetty-osgi-boot/pom.xml index 6b20abe0858..b0ed9841110 100644 --- a/jetty-osgi/jetty-osgi-boot/pom.xml +++ b/jetty-osgi/jetty-osgi-boot/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-osgi-boot diff --git a/jetty-osgi/jetty-osgi-httpservice/pom.xml b/jetty-osgi/jetty-osgi-httpservice/pom.xml index ad56d13b768..a7e8ed156fb 100644 --- a/jetty-osgi/jetty-osgi-httpservice/pom.xml +++ b/jetty-osgi/jetty-osgi-httpservice/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-httpservice diff --git a/jetty-osgi/pom.xml b/jetty-osgi/pom.xml index da2afea2400..652cf4eced4 100644 --- a/jetty-osgi/pom.xml +++ b/jetty-osgi/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-osgi/test-jetty-osgi-context/pom.xml b/jetty-osgi/test-jetty-osgi-context/pom.xml index e44827dd38e..ccd061ee907 100644 --- a/jetty-osgi/test-jetty-osgi-context/pom.xml +++ b/jetty-osgi/test-jetty-osgi-context/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 test-jetty-osgi-context diff --git a/jetty-osgi/test-jetty-osgi-fragment/pom.xml b/jetty-osgi/test-jetty-osgi-fragment/pom.xml index 3e5956ce98a..591558496d2 100644 --- a/jetty-osgi/test-jetty-osgi-fragment/pom.xml +++ b/jetty-osgi/test-jetty-osgi-fragment/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 ../pom.xml 4.0.0 diff --git a/jetty-osgi/test-jetty-osgi-webapp/pom.xml b/jetty-osgi/test-jetty-osgi-webapp/pom.xml index e3e976188c2..669594dd73e 100644 --- a/jetty-osgi/test-jetty-osgi-webapp/pom.xml +++ b/jetty-osgi/test-jetty-osgi-webapp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 ../pom.xml 4.0.0 diff --git a/jetty-osgi/test-jetty-osgi/pom.xml b/jetty-osgi/test-jetty-osgi/pom.xml index 2a2f1bb4dd1..61bcae62628 100644 --- a/jetty-osgi/test-jetty-osgi/pom.xml +++ b/jetty-osgi/test-jetty-osgi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 ../pom.xml 4.0.0 diff --git a/jetty-plus/pom.xml b/jetty-plus/pom.xml index 96a295be0a1..5501d415e9f 100644 --- a/jetty-plus/pom.xml +++ b/jetty-plus/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-plus diff --git a/jetty-proxy/pom.xml b/jetty-proxy/pom.xml index 14b4c0eeab1..ec87ed62b9e 100644 --- a/jetty-proxy/pom.xml +++ b/jetty-proxy/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-proxy diff --git a/jetty-quickstart/pom.xml b/jetty-quickstart/pom.xml index c57715f888e..e51de508268 100644 --- a/jetty-quickstart/pom.xml +++ b/jetty-quickstart/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 org.eclipse.jetty diff --git a/jetty-rewrite/pom.xml b/jetty-rewrite/pom.xml index 5088e3fcf41..97da9cc4347 100644 --- a/jetty-rewrite/pom.xml +++ b/jetty-rewrite/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-rewrite diff --git a/jetty-runner/pom.xml b/jetty-runner/pom.xml index 77d1b464dcd..1d85d8b4ac3 100644 --- a/jetty-runner/pom.xml +++ b/jetty-runner/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-runner diff --git a/jetty-security/pom.xml b/jetty-security/pom.xml index 43651ee9439..d594293acfc 100644 --- a/jetty-security/pom.xml +++ b/jetty-security/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-security diff --git a/jetty-server/pom.xml b/jetty-server/pom.xml index 90380727f15..00cffd6cfdb 100644 --- a/jetty-server/pom.xml +++ b/jetty-server/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-server diff --git a/jetty-servlet/pom.xml b/jetty-servlet/pom.xml index 4fd6b7d7f01..8d8bbc0ca88 100644 --- a/jetty-servlet/pom.xml +++ b/jetty-servlet/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-servlet diff --git a/jetty-servlets/pom.xml b/jetty-servlets/pom.xml index 53e8ab75ff9..1515ee26616 100644 --- a/jetty-servlets/pom.xml +++ b/jetty-servlets/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-servlets diff --git a/jetty-spring/pom.xml b/jetty-spring/pom.xml index 4faa1e7e016..4c1d3fa5240 100644 --- a/jetty-spring/pom.xml +++ b/jetty-spring/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-spring diff --git a/jetty-start/pom.xml b/jetty-start/pom.xml index 1c9742e7e6d..6f14b5fa92c 100644 --- a/jetty-start/pom.xml +++ b/jetty-start/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-start diff --git a/jetty-util-ajax/pom.xml b/jetty-util-ajax/pom.xml index de1f18bef36..41fd1b2fc6a 100644 --- a/jetty-util-ajax/pom.xml +++ b/jetty-util-ajax/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-util-ajax diff --git a/jetty-util/pom.xml b/jetty-util/pom.xml index 2d1f934ffdd..4bc3a2e3c88 100644 --- a/jetty-util/pom.xml +++ b/jetty-util/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-util diff --git a/jetty-webapp/pom.xml b/jetty-webapp/pom.xml index dfb72d12f58..c358eb461a7 100644 --- a/jetty-webapp/pom.xml +++ b/jetty-webapp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-webapp diff --git a/jetty-websocket/javax-websocket-client-impl/pom.xml b/jetty-websocket/javax-websocket-client-impl/pom.xml index b87cecead1f..245cf4289c6 100644 --- a/jetty-websocket/javax-websocket-client-impl/pom.xml +++ b/jetty-websocket/javax-websocket-client-impl/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-websocket/javax-websocket-server-impl/pom.xml b/jetty-websocket/javax-websocket-server-impl/pom.xml index 905bced4401..620c664486d 100644 --- a/jetty-websocket/javax-websocket-server-impl/pom.xml +++ b/jetty-websocket/javax-websocket-server-impl/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-websocket/pom.xml b/jetty-websocket/pom.xml index 0ba0e8b3cfe..14ce2695bbb 100644 --- a/jetty-websocket/pom.xml +++ b/jetty-websocket/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-websocket/websocket-api/pom.xml b/jetty-websocket/websocket-api/pom.xml index 5cbe76512c0..59167474934 100644 --- a/jetty-websocket/websocket-api/pom.xml +++ b/jetty-websocket/websocket-api/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-websocket/websocket-client/pom.xml b/jetty-websocket/websocket-client/pom.xml index dba31ff3af6..1a825126ffc 100644 --- a/jetty-websocket/websocket-client/pom.xml +++ b/jetty-websocket/websocket-client/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-websocket/websocket-common/pom.xml b/jetty-websocket/websocket-common/pom.xml index bc44345795b..f94a9945940 100644 --- a/jetty-websocket/websocket-common/pom.xml +++ b/jetty-websocket/websocket-common/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-websocket/websocket-server/pom.xml b/jetty-websocket/websocket-server/pom.xml index 947f875313c..fb37f2fdeee 100644 --- a/jetty-websocket/websocket-server/pom.xml +++ b/jetty-websocket/websocket-server/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-websocket/websocket-servlet/pom.xml b/jetty-websocket/websocket-servlet/pom.xml index 0588522bc9b..b3aa45003b9 100644 --- a/jetty-websocket/websocket-servlet/pom.xml +++ b/jetty-websocket/websocket-servlet/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/jetty-xml/pom.xml b/jetty-xml/pom.xml index 4c11c7c113f..6d4ceb18163 100644 --- a/jetty-xml/pom.xml +++ b/jetty-xml/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jetty-xml diff --git a/pom.xml b/pom.xml index b4fb5feed81..32e0ab1ea0e 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ 4.0.0 jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 Jetty :: Project http://www.eclipse.org/jetty pom diff --git a/tests/pom.xml b/tests/pom.xml index 9caf7af0dba..41cf0757060 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty jetty-project - 9.3.28-SNAPSHOT + 9.3.28.v20191105 ../pom.xml org.eclipse.jetty.tests diff --git a/tests/test-continuation/pom.xml b/tests/test-continuation/pom.xml index 1e734f1dc21..bccaf487046 100644 --- a/tests/test-continuation/pom.xml +++ b/tests/test-continuation/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests tests-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 ../pom.xml 4.0.0 diff --git a/tests/test-http-client-transport/pom.xml b/tests/test-http-client-transport/pom.xml index 68a9f729f16..a5e898a954b 100644 --- a/tests/test-http-client-transport/pom.xml +++ b/tests/test-http-client-transport/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests tests-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 diff --git a/tests/test-integration/pom.xml b/tests/test-integration/pom.xml index 4b300ba8470..13c2f0d3208 100644 --- a/tests/test-integration/pom.xml +++ b/tests/test-integration/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests tests-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 test-integration diff --git a/tests/test-jmx/jmx-webapp-it/pom.xml b/tests/test-jmx/jmx-webapp-it/pom.xml index 73356446691..be01a2afed4 100644 --- a/tests/test-jmx/jmx-webapp-it/pom.xml +++ b/tests/test-jmx/jmx-webapp-it/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-jmx-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 jmx-webapp-it diff --git a/tests/test-jmx/jmx-webapp/pom.xml b/tests/test-jmx/jmx-webapp/pom.xml index ec4c0253d85..2f4d4993157 100644 --- a/tests/test-jmx/jmx-webapp/pom.xml +++ b/tests/test-jmx/jmx-webapp/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-jmx-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 jmx-webapp war diff --git a/tests/test-jmx/pom.xml b/tests/test-jmx/pom.xml index 13813c75ed4..dcf2cb4ce20 100644 --- a/tests/test-jmx/pom.xml +++ b/tests/test-jmx/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests tests-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 4.0.0 test-jmx-parent diff --git a/tests/test-loginservice/pom.xml b/tests/test-loginservice/pom.xml index f041e7c384e..1d717f5c83b 100644 --- a/tests/test-loginservice/pom.xml +++ b/tests/test-loginservice/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests tests-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 test-loginservice Jetty Tests :: Login Service diff --git a/tests/test-quickstart/pom.xml b/tests/test-quickstart/pom.xml index 8d7c4c9720f..52eb9e250a5 100644 --- a/tests/test-quickstart/pom.xml +++ b/tests/test-quickstart/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.tests tests-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 ../pom.xml 4.0.0 diff --git a/tests/test-sessions/pom.xml b/tests/test-sessions/pom.xml index b29e16d6270..dc81ecfb463 100644 --- a/tests/test-sessions/pom.xml +++ b/tests/test-sessions/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests tests-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 test-sessions-parent Jetty Tests :: Sessions :: Parent diff --git a/tests/test-sessions/test-gcloud-memcached-sessions/pom.xml b/tests/test-sessions/test-gcloud-memcached-sessions/pom.xml index adfe6e24f2f..4833aeb495a 100644 --- a/tests/test-sessions/test-gcloud-memcached-sessions/pom.xml +++ b/tests/test-sessions/test-gcloud-memcached-sessions/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 test-gcloud-memcached-sessions Jetty Tests :: Sessions :: GCloud with Memcached diff --git a/tests/test-sessions/test-gcloud-sessions/pom.xml b/tests/test-sessions/test-gcloud-sessions/pom.xml index f8bae1e0526..40f49001aaf 100644 --- a/tests/test-sessions/test-gcloud-sessions/pom.xml +++ b/tests/test-sessions/test-gcloud-sessions/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 test-gcloud-sessions Jetty Tests :: Sessions :: GCloud diff --git a/tests/test-sessions/test-hash-sessions/pom.xml b/tests/test-sessions/test-hash-sessions/pom.xml index 37c41ca1499..7c8108dc278 100644 --- a/tests/test-sessions/test-hash-sessions/pom.xml +++ b/tests/test-sessions/test-hash-sessions/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 test-hash-sessions Jetty Tests :: Sessions :: Hash diff --git a/tests/test-sessions/test-infinispan-sessions/pom.xml b/tests/test-sessions/test-infinispan-sessions/pom.xml index a71a101ea10..811960741ba 100644 --- a/tests/test-sessions/test-infinispan-sessions/pom.xml +++ b/tests/test-sessions/test-infinispan-sessions/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 test-infinispan-sessions Jetty Tests :: Sessions :: Infinispan diff --git a/tests/test-sessions/test-jdbc-sessions/pom.xml b/tests/test-sessions/test-jdbc-sessions/pom.xml index fb7d07574d0..772d35c9ccb 100644 --- a/tests/test-sessions/test-jdbc-sessions/pom.xml +++ b/tests/test-sessions/test-jdbc-sessions/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 test-jdbc-sessions Jetty Tests :: Sessions :: JDBC diff --git a/tests/test-sessions/test-mongodb-sessions/pom.xml b/tests/test-sessions/test-mongodb-sessions/pom.xml index 0aca145eb43..fed1e9446cb 100644 --- a/tests/test-sessions/test-mongodb-sessions/pom.xml +++ b/tests/test-sessions/test-mongodb-sessions/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 test-mongodb-sessions Jetty Tests :: Sessions :: Mongo diff --git a/tests/test-sessions/test-sessions-common/pom.xml b/tests/test-sessions/test-sessions-common/pom.xml index 0679885f0bc..f3b3cdb45b5 100644 --- a/tests/test-sessions/test-sessions-common/pom.xml +++ b/tests/test-sessions/test-sessions-common/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 test-sessions-common Jetty Tests :: Sessions :: Common diff --git a/tests/test-webapps/pom.xml b/tests/test-webapps/pom.xml index 1194682202c..8d7c35d0615 100644 --- a/tests/test-webapps/pom.xml +++ b/tests/test-webapps/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests tests-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 ../pom.xml test-webapps-parent diff --git a/tests/test-webapps/test-jaas-webapp/pom.xml b/tests/test-webapps/test-jaas-webapp/pom.xml index 7b83acf9fb3..bd7cbb72044 100644 --- a/tests/test-webapps/test-jaas-webapp/pom.xml +++ b/tests/test-webapps/test-jaas-webapp/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 test-jaas-webapp Jetty Tests :: WebApp :: JAAS diff --git a/tests/test-webapps/test-jetty-webapp/pom.xml b/tests/test-webapps/test-jetty-webapp/pom.xml index 265ee6d54ab..c543277b56d 100644 --- a/tests/test-webapps/test-jetty-webapp/pom.xml +++ b/tests/test-webapps/test-jetty-webapp/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 ../pom.xml 4.0.0 diff --git a/tests/test-webapps/test-jndi-webapp/pom.xml b/tests/test-webapps/test-jndi-webapp/pom.xml index f7617ad84f6..95e318624ed 100644 --- a/tests/test-webapps/test-jndi-webapp/pom.xml +++ b/tests/test-webapps/test-jndi-webapp/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 test-jndi-webapp Jetty Tests :: WebApp :: JNDI diff --git a/tests/test-webapps/test-mock-resources/pom.xml b/tests/test-webapps/test-mock-resources/pom.xml index 57a1efa55e0..c948c507f1e 100644 --- a/tests/test-webapps/test-mock-resources/pom.xml +++ b/tests/test-webapps/test-mock-resources/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 Jetty Tests :: WebApp :: Mock Resources test-mock-resources diff --git a/tests/test-webapps/test-proxy-webapp/pom.xml b/tests/test-webapps/test-proxy-webapp/pom.xml index c5c1f69b10a..b9358f9a08d 100644 --- a/tests/test-webapps/test-proxy-webapp/pom.xml +++ b/tests/test-webapps/test-proxy-webapp/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 ../pom.xml 4.0.0 diff --git a/tests/test-webapps/test-servlet-spec/pom.xml b/tests/test-webapps/test-servlet-spec/pom.xml index afeaeb604e9..ea05e1ba61e 100644 --- a/tests/test-webapps/test-servlet-spec/pom.xml +++ b/tests/test-webapps/test-servlet-spec/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 test-servlet-spec-parent Jetty Tests :: Spec Test WebApp :: Parent diff --git a/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml b/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml index 4ab92d31865..8a4faf7d56a 100644 --- a/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml +++ b/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-servlet-spec-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 test-container-initializer jar diff --git a/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml b/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml index 872621793cd..d17b85e6ea6 100644 --- a/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml +++ b/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-servlet-spec-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 Jetty Tests :: Webapps :: Spec Webapp test-spec-webapp diff --git a/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml b/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml index 02e8baf8e91..f4331690dae 100644 --- a/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml +++ b/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-servlet-spec-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 Jetty Tests :: WebApp :: Servlet Spec :: Fragment Jar diff --git a/tests/test-webapps/test-webapp-rfc2616/pom.xml b/tests/test-webapps/test-webapp-rfc2616/pom.xml index 22f693f04ca..d8d627c3337 100644 --- a/tests/test-webapps/test-webapp-rfc2616/pom.xml +++ b/tests/test-webapps/test-webapp-rfc2616/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.3.28-SNAPSHOT + 9.3.28.v20191105 test-webapp-rfc2616 Jetty Tests :: WebApp :: RFC2616 From 43d95cd984d2150dbd8b402747d47b82dfc4e282 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Tue, 5 Nov 2019 13:02:10 -0600 Subject: [PATCH 19/34] Updating to version 9.3.29-SNAPSHOT --- VERSION.txt | 2 + aggregates/jetty-all-compact3/pom.xml | 2 +- aggregates/jetty-all/pom.xml | 2 +- apache-jsp/pom.xml | 2 +- apache-jstl/pom.xml | 2 +- examples/async-rest/async-rest-jar/pom.xml | 2 +- examples/async-rest/async-rest-webapp/pom.xml | 2 +- examples/async-rest/pom.xml | 2 +- examples/embedded/pom.xml | 2 +- examples/pom.xml | 2 +- jetty-alpn/jetty-alpn-client/pom.xml | 2 +- jetty-alpn/jetty-alpn-java-client/pom.xml | 2 +- jetty-alpn/jetty-alpn-java-server/pom.xml | 2 +- jetty-alpn/jetty-alpn-server/pom.xml | 2 +- jetty-alpn/pom.xml | 2 +- jetty-annotations/pom.xml | 2 +- jetty-ant/pom.xml | 2 +- jetty-bom/pom.xml | 104 +++++++++--------- jetty-cdi/cdi-core/pom.xml | 2 +- jetty-cdi/cdi-full-servlet/pom.xml | 2 +- jetty-cdi/cdi-servlet/pom.xml | 2 +- jetty-cdi/cdi-websocket/pom.xml | 2 +- jetty-cdi/pom.xml | 2 +- jetty-cdi/test-cdi-webapp/pom.xml | 2 +- jetty-client/pom.xml | 2 +- jetty-continuation/pom.xml | 2 +- jetty-deploy/pom.xml | 2 +- jetty-distribution/pom.xml | 2 +- jetty-documentation/pom.xml | 2 +- jetty-fcgi/fcgi-client/pom.xml | 2 +- jetty-fcgi/fcgi-server/pom.xml | 2 +- jetty-fcgi/pom.xml | 2 +- .../pom.xml | 2 +- .../jetty-gcloud-session-manager/pom.xml | 2 +- jetty-gcloud/pom.xml | 2 +- jetty-hazelcast/pom.xml | 2 +- jetty-http-spi/pom.xml | 2 +- jetty-http/pom.xml | 2 +- jetty-http2/http2-alpn-tests/pom.xml | 2 +- jetty-http2/http2-client/pom.xml | 2 +- jetty-http2/http2-common/pom.xml | 2 +- jetty-http2/http2-hpack/pom.xml | 2 +- .../http2-http-client-transport/pom.xml | 2 +- jetty-http2/http2-server/pom.xml | 2 +- jetty-http2/pom.xml | 2 +- jetty-infinispan/pom.xml | 2 +- jetty-io/pom.xml | 2 +- jetty-jaas/pom.xml | 2 +- jetty-jaspi/pom.xml | 2 +- jetty-jmx/pom.xml | 2 +- jetty-jndi/pom.xml | 2 +- jetty-jspc-maven-plugin/pom.xml | 2 +- jetty-maven-plugin/pom.xml | 2 +- jetty-monitor/pom.xml | 2 +- jetty-nosql/pom.xml | 2 +- jetty-osgi/jetty-osgi-alpn/pom.xml | 2 +- jetty-osgi/jetty-osgi-boot-jsp/pom.xml | 2 +- jetty-osgi/jetty-osgi-boot-warurl/pom.xml | 2 +- jetty-osgi/jetty-osgi-boot/pom.xml | 2 +- jetty-osgi/jetty-osgi-httpservice/pom.xml | 2 +- jetty-osgi/pom.xml | 2 +- jetty-osgi/test-jetty-osgi-context/pom.xml | 2 +- jetty-osgi/test-jetty-osgi-fragment/pom.xml | 2 +- jetty-osgi/test-jetty-osgi-webapp/pom.xml | 2 +- jetty-osgi/test-jetty-osgi/pom.xml | 2 +- jetty-plus/pom.xml | 2 +- jetty-proxy/pom.xml | 2 +- jetty-quickstart/pom.xml | 2 +- jetty-rewrite/pom.xml | 2 +- jetty-runner/pom.xml | 2 +- jetty-security/pom.xml | 2 +- jetty-server/pom.xml | 2 +- jetty-servlet/pom.xml | 2 +- jetty-servlets/pom.xml | 2 +- jetty-spring/pom.xml | 2 +- jetty-start/pom.xml | 2 +- jetty-util-ajax/pom.xml | 2 +- jetty-util/pom.xml | 2 +- jetty-webapp/pom.xml | 2 +- .../javax-websocket-client-impl/pom.xml | 2 +- .../javax-websocket-server-impl/pom.xml | 2 +- jetty-websocket/pom.xml | 2 +- jetty-websocket/websocket-api/pom.xml | 2 +- jetty-websocket/websocket-client/pom.xml | 2 +- jetty-websocket/websocket-common/pom.xml | 2 +- jetty-websocket/websocket-server/pom.xml | 2 +- jetty-websocket/websocket-servlet/pom.xml | 2 +- jetty-xml/pom.xml | 2 +- pom.xml | 2 +- tests/pom.xml | 2 +- tests/test-continuation/pom.xml | 2 +- tests/test-http-client-transport/pom.xml | 2 +- tests/test-integration/pom.xml | 2 +- tests/test-jmx/jmx-webapp-it/pom.xml | 2 +- tests/test-jmx/jmx-webapp/pom.xml | 2 +- tests/test-jmx/pom.xml | 2 +- tests/test-loginservice/pom.xml | 2 +- tests/test-quickstart/pom.xml | 2 +- tests/test-sessions/pom.xml | 2 +- .../test-gcloud-memcached-sessions/pom.xml | 2 +- .../test-gcloud-sessions/pom.xml | 2 +- .../test-sessions/test-hash-sessions/pom.xml | 2 +- .../test-infinispan-sessions/pom.xml | 2 +- .../test-sessions/test-jdbc-sessions/pom.xml | 2 +- .../test-mongodb-sessions/pom.xml | 2 +- .../test-sessions-common/pom.xml | 2 +- tests/test-webapps/pom.xml | 2 +- tests/test-webapps/test-jaas-webapp/pom.xml | 2 +- tests/test-webapps/test-jetty-webapp/pom.xml | 2 +- tests/test-webapps/test-jndi-webapp/pom.xml | 2 +- .../test-webapps/test-mock-resources/pom.xml | 2 +- tests/test-webapps/test-proxy-webapp/pom.xml | 2 +- tests/test-webapps/test-servlet-spec/pom.xml | 2 +- .../test-container-initializer/pom.xml | 2 +- .../test-spec-webapp/pom.xml | 2 +- .../test-web-fragment/pom.xml | 2 +- .../test-webapps/test-webapp-rfc2616/pom.xml | 2 +- 117 files changed, 169 insertions(+), 167 deletions(-) diff --git a/VERSION.txt b/VERSION.txt index e22a86d509c..e421cd7c378 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1,3 +1,5 @@ +jetty-9.3.29-SNAPSHOT + jetty-9.3.28.v20191105 - 05 November 2019 + 3989 Inform custom ManagedSelector of dead selector via optional onFailedSelect() diff --git a/aggregates/jetty-all-compact3/pom.xml b/aggregates/jetty-all-compact3/pom.xml index 56b424868d2..39542c5eda1 100644 --- a/aggregates/jetty-all-compact3/pom.xml +++ b/aggregates/jetty-all-compact3/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/aggregates/jetty-all/pom.xml b/aggregates/jetty-all/pom.xml index 7f0b3fb3451..3ca431a8b9e 100644 --- a/aggregates/jetty-all/pom.xml +++ b/aggregates/jetty-all/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/apache-jsp/pom.xml b/apache-jsp/pom.xml index f920243d3bd..3e48b20654c 100644 --- a/apache-jsp/pom.xml +++ b/apache-jsp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 apache-jsp diff --git a/apache-jstl/pom.xml b/apache-jstl/pom.xml index 9727ccbb0de..689d792e1a7 100644 --- a/apache-jstl/pom.xml +++ b/apache-jstl/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 apache-jstl diff --git a/examples/async-rest/async-rest-jar/pom.xml b/examples/async-rest/async-rest-jar/pom.xml index 467b5abb10d..8cdee041b71 100644 --- a/examples/async-rest/async-rest-jar/pom.xml +++ b/examples/async-rest/async-rest-jar/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty example-async-rest - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 org.eclipse.jetty.example-async-rest diff --git a/examples/async-rest/async-rest-webapp/pom.xml b/examples/async-rest/async-rest-webapp/pom.xml index 50be634182a..01d0d6b7647 100644 --- a/examples/async-rest/async-rest-webapp/pom.xml +++ b/examples/async-rest/async-rest-webapp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty example-async-rest - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 org.eclipse.jetty.example-async-rest diff --git a/examples/async-rest/pom.xml b/examples/async-rest/pom.xml index f4cc7cc43de..6351d3121e1 100644 --- a/examples/async-rest/pom.xml +++ b/examples/async-rest/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.examples examples-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT ../pom.xml 4.0.0 diff --git a/examples/embedded/pom.xml b/examples/embedded/pom.xml index 9b64fe7722f..b8c4b3023dc 100644 --- a/examples/embedded/pom.xml +++ b/examples/embedded/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.examples examples-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT ../pom.xml 4.0.0 diff --git a/examples/pom.xml b/examples/pom.xml index 5f727876c6e..b37513ce886 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT ../pom.xml org.eclipse.jetty.examples diff --git a/jetty-alpn/jetty-alpn-client/pom.xml b/jetty-alpn/jetty-alpn-client/pom.xml index f3cf4ac5610..9be80f5f4ea 100644 --- a/jetty-alpn/jetty-alpn-client/pom.xml +++ b/jetty-alpn/jetty-alpn-client/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-alpn-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-alpn-client diff --git a/jetty-alpn/jetty-alpn-java-client/pom.xml b/jetty-alpn/jetty-alpn-java-client/pom.xml index 1cc14e37c5e..3907aff3a68 100644 --- a/jetty-alpn/jetty-alpn-java-client/pom.xml +++ b/jetty-alpn/jetty-alpn-java-client/pom.xml @@ -6,7 +6,7 @@ org.eclipse.jetty jetty-alpn-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-alpn/jetty-alpn-java-server/pom.xml b/jetty-alpn/jetty-alpn-java-server/pom.xml index 2f9dcda7aa7..c3e527de30e 100644 --- a/jetty-alpn/jetty-alpn-java-server/pom.xml +++ b/jetty-alpn/jetty-alpn-java-server/pom.xml @@ -5,7 +5,7 @@ org.eclipse.jetty jetty-alpn-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-alpn/jetty-alpn-server/pom.xml b/jetty-alpn/jetty-alpn-server/pom.xml index 6dde73a10bd..5be9d698912 100644 --- a/jetty-alpn/jetty-alpn-server/pom.xml +++ b/jetty-alpn/jetty-alpn-server/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-alpn-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-alpn-server diff --git a/jetty-alpn/pom.xml b/jetty-alpn/pom.xml index cf395c9f100..5d2ac1cbfb5 100644 --- a/jetty-alpn/pom.xml +++ b/jetty-alpn/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-alpn-parent diff --git a/jetty-annotations/pom.xml b/jetty-annotations/pom.xml index 50d34b0c083..178d9cf4df0 100644 --- a/jetty-annotations/pom.xml +++ b/jetty-annotations/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-annotations diff --git a/jetty-ant/pom.xml b/jetty-ant/pom.xml index 357ff256332..0390bb78ed3 100644 --- a/jetty-ant/pom.xml +++ b/jetty-ant/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-ant diff --git a/jetty-bom/pom.xml b/jetty-bom/pom.xml index a3b2ea15742..351482f6972 100644 --- a/jetty-bom/pom.xml +++ b/jetty-bom/pom.xml @@ -9,7 +9,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT @@ -53,258 +53,258 @@ org.eclipse.jetty jetty-annotations - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty cdi-core - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty cdi-servlet - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty cdi-websocket - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-client - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-continuation - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty.fcgi fcgi-server - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty.fcgi fcgi-server - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-gcloud-memcached-session-manager - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-gcloud-session-manager - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-hazelcast - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-http - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty.http2 http2-client - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty.http2 http2-common - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty.http2 http2-hpack - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty.http2 http2-http-client-transport - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty.http2 http2-server - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-http-spi - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-infinispan - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-io - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-jaas - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-jaspi - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-jmx - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-jndi - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-monitor - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-nosql - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-osgi-boot - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-osgi-boot-jsp - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-osgi-boot-warurl - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-plus - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-proxy - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-quickstart - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-rewrite - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-security - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-server - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-servlet - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-servlets - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-spring - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-util - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-util-ajax - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-webapp - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty javax-websocket-client-impl - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty javax-websocket-server-impl - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty javax-websocket-api - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty javax-websocket-client - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty javax-websocket-common - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty javax-websocket-server - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty javax-websocket-servlet - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-xml - 9.3.28.v20191105 + 9.3.29-SNAPSHOT org.eclipse.jetty jetty-distribution - 9.3.28.v20191105 + 9.3.29-SNAPSHOT zip org.eclipse.jetty jetty-distribution - 9.3.28.v20191105 + 9.3.29-SNAPSHOT tar.gz diff --git a/jetty-cdi/cdi-core/pom.xml b/jetty-cdi/cdi-core/pom.xml index 3625ecb4353..59c36443375 100644 --- a/jetty-cdi/cdi-core/pom.xml +++ b/jetty-cdi/cdi-core/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.cdi jetty-cdi-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 cdi-core diff --git a/jetty-cdi/cdi-full-servlet/pom.xml b/jetty-cdi/cdi-full-servlet/pom.xml index 5e8c555d793..73c5d8ebf26 100644 --- a/jetty-cdi/cdi-full-servlet/pom.xml +++ b/jetty-cdi/cdi-full-servlet/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.cdi jetty-cdi-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 cdi-full-servlet diff --git a/jetty-cdi/cdi-servlet/pom.xml b/jetty-cdi/cdi-servlet/pom.xml index cfa2fb08fa6..9cf39b048e1 100644 --- a/jetty-cdi/cdi-servlet/pom.xml +++ b/jetty-cdi/cdi-servlet/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.cdi jetty-cdi-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 cdi-servlet diff --git a/jetty-cdi/cdi-websocket/pom.xml b/jetty-cdi/cdi-websocket/pom.xml index ae0edf78b45..f8505ead0e9 100644 --- a/jetty-cdi/cdi-websocket/pom.xml +++ b/jetty-cdi/cdi-websocket/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.cdi jetty-cdi-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 cdi-websocket diff --git a/jetty-cdi/pom.xml b/jetty-cdi/pom.xml index 8e9f2fbb030..df93ce3d8af 100644 --- a/jetty-cdi/pom.xml +++ b/jetty-cdi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 org.eclipse.jetty.cdi diff --git a/jetty-cdi/test-cdi-webapp/pom.xml b/jetty-cdi/test-cdi-webapp/pom.xml index e1a8e5d1306..9425921f454 100644 --- a/jetty-cdi/test-cdi-webapp/pom.xml +++ b/jetty-cdi/test-cdi-webapp/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.cdi jetty-cdi-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 test-cdi-webapp diff --git a/jetty-client/pom.xml b/jetty-client/pom.xml index ff11ff9f4e0..c44fe3748c0 100644 --- a/jetty-client/pom.xml +++ b/jetty-client/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-continuation/pom.xml b/jetty-continuation/pom.xml index d6e01ef626b..fac65ea0bc8 100644 --- a/jetty-continuation/pom.xml +++ b/jetty-continuation/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-continuation diff --git a/jetty-deploy/pom.xml b/jetty-deploy/pom.xml index dced138555e..b9239a20093 100644 --- a/jetty-deploy/pom.xml +++ b/jetty-deploy/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-deploy diff --git a/jetty-distribution/pom.xml b/jetty-distribution/pom.xml index c1abc8d32c5..59212957f15 100644 --- a/jetty-distribution/pom.xml +++ b/jetty-distribution/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-distribution diff --git a/jetty-documentation/pom.xml b/jetty-documentation/pom.xml index 205053a7526..bc5d8c59d4f 100644 --- a/jetty-documentation/pom.xml +++ b/jetty-documentation/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT jetty-documentation Jetty :: Documentation diff --git a/jetty-fcgi/fcgi-client/pom.xml b/jetty-fcgi/fcgi-client/pom.xml index f0a29b8c4fe..2a1f2241526 100644 --- a/jetty-fcgi/fcgi-client/pom.xml +++ b/jetty-fcgi/fcgi-client/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.fcgi fcgi-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-fcgi/fcgi-server/pom.xml b/jetty-fcgi/fcgi-server/pom.xml index cdce742b858..2cb46464421 100644 --- a/jetty-fcgi/fcgi-server/pom.xml +++ b/jetty-fcgi/fcgi-server/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.fcgi fcgi-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-fcgi/pom.xml b/jetty-fcgi/pom.xml index 0248aacd9ed..a9028cadad7 100644 --- a/jetty-fcgi/pom.xml +++ b/jetty-fcgi/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-gcloud/jetty-gcloud-memcached-session-manager/pom.xml b/jetty-gcloud/jetty-gcloud-memcached-session-manager/pom.xml index de0d0305aac..e3ffc6b8dca 100644 --- a/jetty-gcloud/jetty-gcloud-memcached-session-manager/pom.xml +++ b/jetty-gcloud/jetty-gcloud-memcached-session-manager/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.gcloud gcloud-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-gcloud/jetty-gcloud-session-manager/pom.xml b/jetty-gcloud/jetty-gcloud-session-manager/pom.xml index 42665410402..f1419a7f384 100644 --- a/jetty-gcloud/jetty-gcloud-session-manager/pom.xml +++ b/jetty-gcloud/jetty-gcloud-session-manager/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.gcloud gcloud-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-gcloud/pom.xml b/jetty-gcloud/pom.xml index 682db3c62c0..f02b6c229fb 100644 --- a/jetty-gcloud/pom.xml +++ b/jetty-gcloud/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-hazelcast/pom.xml b/jetty-hazelcast/pom.xml index f4faef9672a..94ded5b5529 100644 --- a/jetty-hazelcast/pom.xml +++ b/jetty-hazelcast/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-hazelcast diff --git a/jetty-http-spi/pom.xml b/jetty-http-spi/pom.xml index 581e24d0134..0d5efa74ebe 100644 --- a/jetty-http-spi/pom.xml +++ b/jetty-http-spi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-http-spi diff --git a/jetty-http/pom.xml b/jetty-http/pom.xml index 0bb460960d1..b2012e9c2cd 100644 --- a/jetty-http/pom.xml +++ b/jetty-http/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-http diff --git a/jetty-http2/http2-alpn-tests/pom.xml b/jetty-http2/http2-alpn-tests/pom.xml index e841505142f..4b38d727072 100644 --- a/jetty-http2/http2-alpn-tests/pom.xml +++ b/jetty-http2/http2-alpn-tests/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.http2 http2-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-http2/http2-client/pom.xml b/jetty-http2/http2-client/pom.xml index 7017ba09dee..ce2f4c64424 100644 --- a/jetty-http2/http2-client/pom.xml +++ b/jetty-http2/http2-client/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.http2 http2-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-http2/http2-common/pom.xml b/jetty-http2/http2-common/pom.xml index b980c4023d3..1afed248569 100644 --- a/jetty-http2/http2-common/pom.xml +++ b/jetty-http2/http2-common/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.http2 http2-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-http2/http2-hpack/pom.xml b/jetty-http2/http2-hpack/pom.xml index c6ffda44eeb..2e26b0b9ef0 100644 --- a/jetty-http2/http2-hpack/pom.xml +++ b/jetty-http2/http2-hpack/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.http2 http2-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-http2/http2-http-client-transport/pom.xml b/jetty-http2/http2-http-client-transport/pom.xml index 35a0fdeba44..8a65cdbeaa9 100644 --- a/jetty-http2/http2-http-client-transport/pom.xml +++ b/jetty-http2/http2-http-client-transport/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.http2 http2-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-http2/http2-server/pom.xml b/jetty-http2/http2-server/pom.xml index c2d35f74498..e5271d9e4dc 100644 --- a/jetty-http2/http2-server/pom.xml +++ b/jetty-http2/http2-server/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.http2 http2-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-http2/pom.xml b/jetty-http2/pom.xml index 7a634c6bb7e..3cb77b09209 100644 --- a/jetty-http2/pom.xml +++ b/jetty-http2/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-infinispan/pom.xml b/jetty-infinispan/pom.xml index 686dce65dcc..3fba719c772 100644 --- a/jetty-infinispan/pom.xml +++ b/jetty-infinispan/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-infinispan diff --git a/jetty-io/pom.xml b/jetty-io/pom.xml index bf69e03cc33..37caf331e85 100644 --- a/jetty-io/pom.xml +++ b/jetty-io/pom.xml @@ -2,7 +2,7 @@ jetty-project org.eclipse.jetty - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-io diff --git a/jetty-jaas/pom.xml b/jetty-jaas/pom.xml index ccad75a8372..b4ddae911a5 100644 --- a/jetty-jaas/pom.xml +++ b/jetty-jaas/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-jaas diff --git a/jetty-jaspi/pom.xml b/jetty-jaspi/pom.xml index 83c6754f104..419a649b47d 100644 --- a/jetty-jaspi/pom.xml +++ b/jetty-jaspi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-jaspi diff --git a/jetty-jmx/pom.xml b/jetty-jmx/pom.xml index 4598f5e0b68..77189a19183 100644 --- a/jetty-jmx/pom.xml +++ b/jetty-jmx/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-jmx diff --git a/jetty-jndi/pom.xml b/jetty-jndi/pom.xml index e4857100e34..df203c9c4ca 100644 --- a/jetty-jndi/pom.xml +++ b/jetty-jndi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-jndi diff --git a/jetty-jspc-maven-plugin/pom.xml b/jetty-jspc-maven-plugin/pom.xml index 1390f8838e3..8c18ac3b7c4 100644 --- a/jetty-jspc-maven-plugin/pom.xml +++ b/jetty-jspc-maven-plugin/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-jspc-maven-plugin diff --git a/jetty-maven-plugin/pom.xml b/jetty-maven-plugin/pom.xml index 96c35c8b87d..263cb581f0f 100644 --- a/jetty-maven-plugin/pom.xml +++ b/jetty-maven-plugin/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-maven-plugin diff --git a/jetty-monitor/pom.xml b/jetty-monitor/pom.xml index 53bc4407128..8f311722922 100644 --- a/jetty-monitor/pom.xml +++ b/jetty-monitor/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-monitor diff --git a/jetty-nosql/pom.xml b/jetty-nosql/pom.xml index 6ebc0c2f131..94e34c816ab 100644 --- a/jetty-nosql/pom.xml +++ b/jetty-nosql/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-nosql diff --git a/jetty-osgi/jetty-osgi-alpn/pom.xml b/jetty-osgi/jetty-osgi-alpn/pom.xml index 01c80dce267..1423eed4eff 100644 --- a/jetty-osgi/jetty-osgi-alpn/pom.xml +++ b/jetty-osgi/jetty-osgi-alpn/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-osgi-alpn diff --git a/jetty-osgi/jetty-osgi-boot-jsp/pom.xml b/jetty-osgi/jetty-osgi-boot-jsp/pom.xml index e9a44762dbd..213fedc9cb3 100644 --- a/jetty-osgi/jetty-osgi-boot-jsp/pom.xml +++ b/jetty-osgi/jetty-osgi-boot-jsp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-osgi-boot-jsp diff --git a/jetty-osgi/jetty-osgi-boot-warurl/pom.xml b/jetty-osgi/jetty-osgi-boot-warurl/pom.xml index 4c19b9ef479..5966f59ab1d 100644 --- a/jetty-osgi/jetty-osgi-boot-warurl/pom.xml +++ b/jetty-osgi/jetty-osgi-boot-warurl/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT ../pom.xml 4.0.0 diff --git a/jetty-osgi/jetty-osgi-boot/pom.xml b/jetty-osgi/jetty-osgi-boot/pom.xml index b0ed9841110..d9896cbfbbe 100644 --- a/jetty-osgi/jetty-osgi-boot/pom.xml +++ b/jetty-osgi/jetty-osgi-boot/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-osgi-boot diff --git a/jetty-osgi/jetty-osgi-httpservice/pom.xml b/jetty-osgi/jetty-osgi-httpservice/pom.xml index a7e8ed156fb..2336bc29671 100644 --- a/jetty-osgi/jetty-osgi-httpservice/pom.xml +++ b/jetty-osgi/jetty-osgi-httpservice/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-httpservice diff --git a/jetty-osgi/pom.xml b/jetty-osgi/pom.xml index 652cf4eced4..1583dab6ccc 100644 --- a/jetty-osgi/pom.xml +++ b/jetty-osgi/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-osgi/test-jetty-osgi-context/pom.xml b/jetty-osgi/test-jetty-osgi-context/pom.xml index ccd061ee907..aff28c95d30 100644 --- a/jetty-osgi/test-jetty-osgi-context/pom.xml +++ b/jetty-osgi/test-jetty-osgi-context/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 test-jetty-osgi-context diff --git a/jetty-osgi/test-jetty-osgi-fragment/pom.xml b/jetty-osgi/test-jetty-osgi-fragment/pom.xml index 591558496d2..aaff8876c1e 100644 --- a/jetty-osgi/test-jetty-osgi-fragment/pom.xml +++ b/jetty-osgi/test-jetty-osgi-fragment/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT ../pom.xml 4.0.0 diff --git a/jetty-osgi/test-jetty-osgi-webapp/pom.xml b/jetty-osgi/test-jetty-osgi-webapp/pom.xml index 669594dd73e..572f8d343bf 100644 --- a/jetty-osgi/test-jetty-osgi-webapp/pom.xml +++ b/jetty-osgi/test-jetty-osgi-webapp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT ../pom.xml 4.0.0 diff --git a/jetty-osgi/test-jetty-osgi/pom.xml b/jetty-osgi/test-jetty-osgi/pom.xml index 61bcae62628..372e8a53494 100644 --- a/jetty-osgi/test-jetty-osgi/pom.xml +++ b/jetty-osgi/test-jetty-osgi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT ../pom.xml 4.0.0 diff --git a/jetty-plus/pom.xml b/jetty-plus/pom.xml index 5501d415e9f..91d64509c29 100644 --- a/jetty-plus/pom.xml +++ b/jetty-plus/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-plus diff --git a/jetty-proxy/pom.xml b/jetty-proxy/pom.xml index ec87ed62b9e..7aadea5cba0 100644 --- a/jetty-proxy/pom.xml +++ b/jetty-proxy/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-proxy diff --git a/jetty-quickstart/pom.xml b/jetty-quickstart/pom.xml index e51de508268..fc7b27aaf5f 100644 --- a/jetty-quickstart/pom.xml +++ b/jetty-quickstart/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 org.eclipse.jetty diff --git a/jetty-rewrite/pom.xml b/jetty-rewrite/pom.xml index 97da9cc4347..aa5fb3b3d0d 100644 --- a/jetty-rewrite/pom.xml +++ b/jetty-rewrite/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-rewrite diff --git a/jetty-runner/pom.xml b/jetty-runner/pom.xml index 1d85d8b4ac3..223323b7051 100644 --- a/jetty-runner/pom.xml +++ b/jetty-runner/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-runner diff --git a/jetty-security/pom.xml b/jetty-security/pom.xml index d594293acfc..a908b6ca635 100644 --- a/jetty-security/pom.xml +++ b/jetty-security/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-security diff --git a/jetty-server/pom.xml b/jetty-server/pom.xml index 00cffd6cfdb..2f21057cee0 100644 --- a/jetty-server/pom.xml +++ b/jetty-server/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-server diff --git a/jetty-servlet/pom.xml b/jetty-servlet/pom.xml index 8d8bbc0ca88..fc3372d1555 100644 --- a/jetty-servlet/pom.xml +++ b/jetty-servlet/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-servlet diff --git a/jetty-servlets/pom.xml b/jetty-servlets/pom.xml index 1515ee26616..e3448252533 100644 --- a/jetty-servlets/pom.xml +++ b/jetty-servlets/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-servlets diff --git a/jetty-spring/pom.xml b/jetty-spring/pom.xml index 4c1d3fa5240..5513f23e649 100644 --- a/jetty-spring/pom.xml +++ b/jetty-spring/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-spring diff --git a/jetty-start/pom.xml b/jetty-start/pom.xml index 6f14b5fa92c..fcfab1c0841 100644 --- a/jetty-start/pom.xml +++ b/jetty-start/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-start diff --git a/jetty-util-ajax/pom.xml b/jetty-util-ajax/pom.xml index 41fd1b2fc6a..eeaf05cbf1e 100644 --- a/jetty-util-ajax/pom.xml +++ b/jetty-util-ajax/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-util-ajax diff --git a/jetty-util/pom.xml b/jetty-util/pom.xml index 4bc3a2e3c88..17db349cb6c 100644 --- a/jetty-util/pom.xml +++ b/jetty-util/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-util diff --git a/jetty-webapp/pom.xml b/jetty-webapp/pom.xml index c358eb461a7..7c8eb1ce33e 100644 --- a/jetty-webapp/pom.xml +++ b/jetty-webapp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-webapp diff --git a/jetty-websocket/javax-websocket-client-impl/pom.xml b/jetty-websocket/javax-websocket-client-impl/pom.xml index 245cf4289c6..d28307f3b3d 100644 --- a/jetty-websocket/javax-websocket-client-impl/pom.xml +++ b/jetty-websocket/javax-websocket-client-impl/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-websocket/javax-websocket-server-impl/pom.xml b/jetty-websocket/javax-websocket-server-impl/pom.xml index 620c664486d..289bc1978bd 100644 --- a/jetty-websocket/javax-websocket-server-impl/pom.xml +++ b/jetty-websocket/javax-websocket-server-impl/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-websocket/pom.xml b/jetty-websocket/pom.xml index 14ce2695bbb..e4729b2281e 100644 --- a/jetty-websocket/pom.xml +++ b/jetty-websocket/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-websocket/websocket-api/pom.xml b/jetty-websocket/websocket-api/pom.xml index 59167474934..211e0afe2b6 100644 --- a/jetty-websocket/websocket-api/pom.xml +++ b/jetty-websocket/websocket-api/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-websocket/websocket-client/pom.xml b/jetty-websocket/websocket-client/pom.xml index 1a825126ffc..fd93a00a19c 100644 --- a/jetty-websocket/websocket-client/pom.xml +++ b/jetty-websocket/websocket-client/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-websocket/websocket-common/pom.xml b/jetty-websocket/websocket-common/pom.xml index f94a9945940..a123bfa673c 100644 --- a/jetty-websocket/websocket-common/pom.xml +++ b/jetty-websocket/websocket-common/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-websocket/websocket-server/pom.xml b/jetty-websocket/websocket-server/pom.xml index fb37f2fdeee..1421e4add5a 100644 --- a/jetty-websocket/websocket-server/pom.xml +++ b/jetty-websocket/websocket-server/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-websocket/websocket-servlet/pom.xml b/jetty-websocket/websocket-servlet/pom.xml index b3aa45003b9..f3355aeaada 100644 --- a/jetty-websocket/websocket-servlet/pom.xml +++ b/jetty-websocket/websocket-servlet/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/jetty-xml/pom.xml b/jetty-xml/pom.xml index 6d4ceb18163..1c168b00837 100644 --- a/jetty-xml/pom.xml +++ b/jetty-xml/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jetty-xml diff --git a/pom.xml b/pom.xml index 32e0ab1ea0e..f369c298594 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ 4.0.0 jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT Jetty :: Project http://www.eclipse.org/jetty pom diff --git a/tests/pom.xml b/tests/pom.xml index 41cf0757060..ce483b77eee 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty jetty-project - 9.3.28.v20191105 + 9.3.29-SNAPSHOT ../pom.xml org.eclipse.jetty.tests diff --git a/tests/test-continuation/pom.xml b/tests/test-continuation/pom.xml index bccaf487046..2c29f2077bf 100644 --- a/tests/test-continuation/pom.xml +++ b/tests/test-continuation/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests tests-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT ../pom.xml 4.0.0 diff --git a/tests/test-http-client-transport/pom.xml b/tests/test-http-client-transport/pom.xml index a5e898a954b..b23a133d79a 100644 --- a/tests/test-http-client-transport/pom.xml +++ b/tests/test-http-client-transport/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests tests-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 diff --git a/tests/test-integration/pom.xml b/tests/test-integration/pom.xml index 13c2f0d3208..5b677fbe93e 100644 --- a/tests/test-integration/pom.xml +++ b/tests/test-integration/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests tests-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 test-integration diff --git a/tests/test-jmx/jmx-webapp-it/pom.xml b/tests/test-jmx/jmx-webapp-it/pom.xml index be01a2afed4..58cc8ab0fd1 100644 --- a/tests/test-jmx/jmx-webapp-it/pom.xml +++ b/tests/test-jmx/jmx-webapp-it/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-jmx-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 jmx-webapp-it diff --git a/tests/test-jmx/jmx-webapp/pom.xml b/tests/test-jmx/jmx-webapp/pom.xml index 2f4d4993157..b964135c3fd 100644 --- a/tests/test-jmx/jmx-webapp/pom.xml +++ b/tests/test-jmx/jmx-webapp/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-jmx-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT jmx-webapp war diff --git a/tests/test-jmx/pom.xml b/tests/test-jmx/pom.xml index dcf2cb4ce20..16142b372ce 100644 --- a/tests/test-jmx/pom.xml +++ b/tests/test-jmx/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests tests-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT 4.0.0 test-jmx-parent diff --git a/tests/test-loginservice/pom.xml b/tests/test-loginservice/pom.xml index 1d717f5c83b..cf44c2af4f6 100644 --- a/tests/test-loginservice/pom.xml +++ b/tests/test-loginservice/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests tests-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT test-loginservice Jetty Tests :: Login Service diff --git a/tests/test-quickstart/pom.xml b/tests/test-quickstart/pom.xml index 52eb9e250a5..93ddcede29e 100644 --- a/tests/test-quickstart/pom.xml +++ b/tests/test-quickstart/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.tests tests-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT ../pom.xml 4.0.0 diff --git a/tests/test-sessions/pom.xml b/tests/test-sessions/pom.xml index dc81ecfb463..f85b1021783 100644 --- a/tests/test-sessions/pom.xml +++ b/tests/test-sessions/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests tests-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT test-sessions-parent Jetty Tests :: Sessions :: Parent diff --git a/tests/test-sessions/test-gcloud-memcached-sessions/pom.xml b/tests/test-sessions/test-gcloud-memcached-sessions/pom.xml index 4833aeb495a..5f42667e4c4 100644 --- a/tests/test-sessions/test-gcloud-memcached-sessions/pom.xml +++ b/tests/test-sessions/test-gcloud-memcached-sessions/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT test-gcloud-memcached-sessions Jetty Tests :: Sessions :: GCloud with Memcached diff --git a/tests/test-sessions/test-gcloud-sessions/pom.xml b/tests/test-sessions/test-gcloud-sessions/pom.xml index 40f49001aaf..e9bb9248f51 100644 --- a/tests/test-sessions/test-gcloud-sessions/pom.xml +++ b/tests/test-sessions/test-gcloud-sessions/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT test-gcloud-sessions Jetty Tests :: Sessions :: GCloud diff --git a/tests/test-sessions/test-hash-sessions/pom.xml b/tests/test-sessions/test-hash-sessions/pom.xml index 7c8108dc278..45313a829f2 100644 --- a/tests/test-sessions/test-hash-sessions/pom.xml +++ b/tests/test-sessions/test-hash-sessions/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT test-hash-sessions Jetty Tests :: Sessions :: Hash diff --git a/tests/test-sessions/test-infinispan-sessions/pom.xml b/tests/test-sessions/test-infinispan-sessions/pom.xml index 811960741ba..4961cbbe56d 100644 --- a/tests/test-sessions/test-infinispan-sessions/pom.xml +++ b/tests/test-sessions/test-infinispan-sessions/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT test-infinispan-sessions Jetty Tests :: Sessions :: Infinispan diff --git a/tests/test-sessions/test-jdbc-sessions/pom.xml b/tests/test-sessions/test-jdbc-sessions/pom.xml index 772d35c9ccb..2f37c8f8ea9 100644 --- a/tests/test-sessions/test-jdbc-sessions/pom.xml +++ b/tests/test-sessions/test-jdbc-sessions/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT test-jdbc-sessions Jetty Tests :: Sessions :: JDBC diff --git a/tests/test-sessions/test-mongodb-sessions/pom.xml b/tests/test-sessions/test-mongodb-sessions/pom.xml index fed1e9446cb..09c62b4ae61 100644 --- a/tests/test-sessions/test-mongodb-sessions/pom.xml +++ b/tests/test-sessions/test-mongodb-sessions/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT test-mongodb-sessions Jetty Tests :: Sessions :: Mongo diff --git a/tests/test-sessions/test-sessions-common/pom.xml b/tests/test-sessions/test-sessions-common/pom.xml index f3b3cdb45b5..32df845d3cd 100644 --- a/tests/test-sessions/test-sessions-common/pom.xml +++ b/tests/test-sessions/test-sessions-common/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT test-sessions-common Jetty Tests :: Sessions :: Common diff --git a/tests/test-webapps/pom.xml b/tests/test-webapps/pom.xml index 8d7c35d0615..83d56e675a2 100644 --- a/tests/test-webapps/pom.xml +++ b/tests/test-webapps/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests tests-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT ../pom.xml test-webapps-parent diff --git a/tests/test-webapps/test-jaas-webapp/pom.xml b/tests/test-webapps/test-jaas-webapp/pom.xml index bd7cbb72044..2421904b769 100644 --- a/tests/test-webapps/test-jaas-webapp/pom.xml +++ b/tests/test-webapps/test-jaas-webapp/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT test-jaas-webapp Jetty Tests :: WebApp :: JAAS diff --git a/tests/test-webapps/test-jetty-webapp/pom.xml b/tests/test-webapps/test-jetty-webapp/pom.xml index c543277b56d..cac99c205ef 100644 --- a/tests/test-webapps/test-jetty-webapp/pom.xml +++ b/tests/test-webapps/test-jetty-webapp/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT ../pom.xml 4.0.0 diff --git a/tests/test-webapps/test-jndi-webapp/pom.xml b/tests/test-webapps/test-jndi-webapp/pom.xml index 95e318624ed..858376e3c7b 100644 --- a/tests/test-webapps/test-jndi-webapp/pom.xml +++ b/tests/test-webapps/test-jndi-webapp/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT test-jndi-webapp Jetty Tests :: WebApp :: JNDI diff --git a/tests/test-webapps/test-mock-resources/pom.xml b/tests/test-webapps/test-mock-resources/pom.xml index c948c507f1e..1a44e990e98 100644 --- a/tests/test-webapps/test-mock-resources/pom.xml +++ b/tests/test-webapps/test-mock-resources/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT Jetty Tests :: WebApp :: Mock Resources test-mock-resources diff --git a/tests/test-webapps/test-proxy-webapp/pom.xml b/tests/test-webapps/test-proxy-webapp/pom.xml index b9358f9a08d..8a07adb2723 100644 --- a/tests/test-webapps/test-proxy-webapp/pom.xml +++ b/tests/test-webapps/test-proxy-webapp/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT ../pom.xml 4.0.0 diff --git a/tests/test-webapps/test-servlet-spec/pom.xml b/tests/test-webapps/test-servlet-spec/pom.xml index ea05e1ba61e..64e9443fe32 100644 --- a/tests/test-webapps/test-servlet-spec/pom.xml +++ b/tests/test-webapps/test-servlet-spec/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT test-servlet-spec-parent Jetty Tests :: Spec Test WebApp :: Parent diff --git a/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml b/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml index 8a4faf7d56a..16fbe72124b 100644 --- a/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml +++ b/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-servlet-spec-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT test-container-initializer jar diff --git a/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml b/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml index d17b85e6ea6..204106f89c8 100644 --- a/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml +++ b/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-servlet-spec-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT Jetty Tests :: Webapps :: Spec Webapp test-spec-webapp diff --git a/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml b/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml index f4331690dae..00ea4629c8e 100644 --- a/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml +++ b/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-servlet-spec-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT Jetty Tests :: WebApp :: Servlet Spec :: Fragment Jar diff --git a/tests/test-webapps/test-webapp-rfc2616/pom.xml b/tests/test-webapps/test-webapp-rfc2616/pom.xml index d8d627c3337..d9dbca2d3dc 100644 --- a/tests/test-webapps/test-webapp-rfc2616/pom.xml +++ b/tests/test-webapps/test-webapp-rfc2616/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.3.28.v20191105 + 9.3.29-SNAPSHOT test-webapp-rfc2616 Jetty Tests :: WebApp :: RFC2616 From 6fabbccf8b5729c5d632b4a31ed40849bdf73882 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Tue, 5 Nov 2019 16:23:49 -0600 Subject: [PATCH 20/34] Updating http to https --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2d529b0275a..969435deb35 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Documentation Project documentation is available on the Jetty Eclipse website. -- [http://www.eclipse.org/jetty/documentation](http://www.eclipse.org/jetty/documentation) +- [https://www.eclipse.org/jetty/documentation](https://www.eclipse.org/jetty/documentation) Building ======== @@ -45,4 +45,4 @@ It is possible to bypass tests by building with `mvn clean install -DskipTests`. Professional Services --------------------- -Expert advice and production support are available through [Webtide.com](http://webtide.com). +Expert advice and production support are available through [Webtide.com](https://webtide.com). From b455b8abcceae586054b09a45f840a10f1e6f3b0 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Tue, 5 Nov 2019 14:29:45 -0600 Subject: [PATCH 21/34] Eliminating 9.3.0.RC0 dependency Signed-off-by: Joakim Erdfelt --- .../test-webapps/test-servlet-spec/test-spec-webapp/pom.xml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml b/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml index d748f0a5c13..97014620b37 100644 --- a/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml +++ b/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml @@ -219,11 +219,5 @@ test-container-initializer ${project.version} - - org.eclipse.jetty - jetty-util - - 9.3.0.RC0 - From 2d9f1284103fa7d769ad9bc18d7107acc59072ab Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Wed, 6 Nov 2019 16:02:00 -0600 Subject: [PATCH 22/34] Issue #4173 - simplify base name lookup + Some cleanup of logging + Exception during getResourceBaseName() results in empty canonical segment Signed-off-by: Joakim Erdfelt --- .../jetty/webapp/WebInfConfiguration.java | 73 +++++++++---------- .../jetty/webapp/WebInfConfigurationTest.java | 54 +++++++++----- 2 files changed, 69 insertions(+), 58 deletions(-) diff --git a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java index b8efd3fdfd9..08fcccbe4dc 100644 --- a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java +++ b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java @@ -785,8 +785,11 @@ public class WebInfConfiguration extends AbstractConfiguration } catch (Exception e) { - LOG.warn("Can't get resource for resourceBase", e); - LOG.debug(e); + if (LOG.isDebugEnabled()) + { + LOG.debug("Can't get resource base name", e); + } + canonicalName.append("-"); // empty resourceBaseName segment } //Context name @@ -818,60 +821,50 @@ public class WebInfConfiguration extends AbstractConfiguration } catch (IOException e) { - LOG.ignore(e); + if (LOG.isDebugEnabled()) + { + LOG.debug("Resource has no File reference: {}", resource); + } } // Use URI itself. URI uri = resource.getURI(); if (uri == null) { - throw new RuntimeException("Unable to produce URI from resource: " + resource); + if (LOG.isDebugEnabled()) + { + LOG.debug("Resource has no URI reference: {}", resource); + } + return ""; } + return getUriLastPathSegment(uri); } protected static String getUriLastPathSegment(URI uri) { - String path = uri.getPath(); - - if ("jar".equalsIgnoreCase(uri.getScheme())) + String ssp = uri.getSchemeSpecificPart(); + // strip off deep jar:file: reference information + int idx = ssp.indexOf("!/"); + if (idx != -1) { - String schemeSpecificPart = uri.getRawSchemeSpecificPart(); - URI inner = URI.create(schemeSpecificPart); - if ("file".equalsIgnoreCase(inner.getScheme())) - { - path = inner.getRawPath(); - int idx = path.lastIndexOf("!/"); - if (idx >= 0) - { - String pathInJar = path.substring(idx + 2); - if (StringUtil.isNotBlank(pathInJar)) - { - URI pathInJarUri = URI.create(pathInJar); - return getUriLastPathSegment(pathInJarUri); - } - else - { - // Strip empty "!/" - path = path.substring(0, idx); - } - } - // if we reached here, we have "jar:file:" but no - // internal jar reference with "!/" present - } - else - { - // inner URI is not "file" - return getUriLastPathSegment(inner); - } + ssp = ssp.substring(0, idx); } - if (path.endsWith("/")) - path = path.substring(0, path.length() - 1); - // get just the last part which is the filename - int i = path.lastIndexOf("/"); + // Strip off trailing '/' if present + if (ssp.endsWith("/")) + { + ssp = ssp.substring(0, ssp.length() - 1); + } - return path.substring(i + 1); + // Only interested in last segment + idx = ssp.lastIndexOf('/'); + if (idx != -1) + { + ssp = ssp.substring(idx + 1); + } + + return ssp; } protected List findClassDirs(WebAppContext context) diff --git a/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/WebInfConfigurationTest.java b/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/WebInfConfigurationTest.java index 130de381851..28c1f5a0aa7 100644 --- a/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/WebInfConfigurationTest.java +++ b/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/WebInfConfigurationTest.java @@ -158,7 +158,7 @@ public class WebInfConfigurationTest assertThat(WebInfConfiguration.getResourceBaseName(resource), is(expectedName)); } - public static Stream baseResourceNames() + public static Stream fileBaseResourceNames() { return Stream.of( Arguments.of("test.war", "test.war"), @@ -178,7 +178,7 @@ public class WebInfConfigurationTest } @ParameterizedTest - @MethodSource("baseResourceNames") + @MethodSource("fileBaseResourceNames") public void testPathGetResourceBaseName(String basePath, String expectedName) throws IOException { Path root = workDir.getPath(); @@ -198,15 +198,43 @@ public class WebInfConfigurationTest assertThat(WebInfConfiguration.getResourceBaseName(resource), is(expectedName)); } + public static Stream fileUriBaseResourceNames() + { + return Stream.of( + Arguments.of("test.war", "test.war"), + Arguments.of("a/b/c/test.war", "test.war"), + Arguments.of("bar%2Fbaz/test.war", "test.war"), + Arguments.of("fizz buzz/test.war", "test.war"), + Arguments.of("another one/bites the dust/", "bites the dust"), + Arguments.of("another+one/bites+the+dust/", "bites+the+dust"), + Arguments.of("another%20one/bites%20the%20dust/", "bites%20the%20dust"), + Arguments.of("spanish/n\u00FAmero.war", "n\u00FAmero.war"), + Arguments.of("spanish/n%C3%BAmero.war", "n%C3%BAmero.war"), + Arguments.of("a/b!/", "b"), + Arguments.of("a/b!/c/", "b"), + Arguments.of("a/b!/c/d/", "b"), + Arguments.of("a/b%21/", "b%21") + ); + } + /** * Similar to testPathGetResourceBaseName, but with "file:" URIs */ @ParameterizedTest - @MethodSource("baseResourceNames") + @MethodSource("fileUriBaseResourceNames") public void testFileUriGetUriLastPathSegment(String basePath, String expectedName) throws IOException { Path root = workDir.getPath(); Path base = root.resolve(basePath); + if (basePath.endsWith("/")) + { + FS.ensureDirExists(base); + } + else + { + FS.ensureDirExists(base.getParent()); + FS.touch(base); + } URI uri = base.toUri(); if (OS.MAC.isCurrentOs()) { @@ -216,7 +244,7 @@ public class WebInfConfigurationTest assertThat(WebInfConfiguration.getUriLastPathSegment(uri), is(expectedName)); } - public static Stream jarFileBaseResourceNames() throws URISyntaxException, IOException + public static Stream uriLastSegmentSource() throws URISyntaxException, IOException { Path testJar = MavenTestingUtils.getTestResourcePathFile(TEST_RESOURCE_JAR); URI uri = new URI("jar", testJar.toUri().toASCIIString(), null); @@ -243,17 +271,7 @@ public class WebInfConfigurationTest } else { - String lastPathSegment = TEST_RESOURCE_JAR; - if (path.getFileName() != null) - { - lastPathSegment = path.getFileName().toString(); - } - // Strip last '/' from directory entries - if (Files.isDirectory(path) && lastPathSegment.endsWith("/")) - { - lastPathSegment = lastPathSegment.substring(0, lastPathSegment.length() - 1); - } - arguments.add(Arguments.of(path.toUri(), lastPathSegment)); + arguments.add(Arguments.of(path.toUri(), TEST_RESOURCE_JAR)); } }); } @@ -263,11 +281,11 @@ public class WebInfConfigurationTest } /** - * Tests of "jar:file:" based URIs + * Tests of URIs last segment, including "jar:file:" based URIs. */ @ParameterizedTest - @MethodSource("jarFileBaseResourceNames") - public void testJarFileUriGetUriLastPathSegment(URI uri, String expectedName) throws IOException + @MethodSource("uriLastSegmentSource") + public void testGetUriLastPathSegment(URI uri, String expectedName) throws IOException { assertThat(WebInfConfiguration.getUriLastPathSegment(uri), is(expectedName)); } From 13a574557b994f1777ebe2fb83d8fa56d178865b Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Wed, 6 Nov 2019 16:09:54 -0600 Subject: [PATCH 23/34] JarFileResource.getFile() now returns the Jar's java.io.File object Signed-off-by: Joakim Erdfelt --- .../org/eclipse/jetty/util/resource/JarFileResource.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarFileResource.java b/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarFileResource.java index cf6252f6bc1..eea92e9f19d 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarFileResource.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarFileResource.java @@ -404,4 +404,12 @@ public class JarFileResource extends JarResource URL url = new URL(string); return url.sameFile(resource.getURI().toURL()); } + + @Override + public File getFile() + { + if (_file != null) + return _file; + return null; + } } From 070d2b235efcf07ab9f48e99df9d0ffaa0290dc6 Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Thu, 7 Nov 2019 09:31:52 +1100 Subject: [PATCH 24/34] Issue #4264 Revert doError signature revert the doError signature. Signed-off-by: Greg Wilkins --- .../jetty/server/handler/ErrorHandler.java | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ErrorHandler.java b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ErrorHandler.java index 4e7a245535b..4cc5389b1b2 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ErrorHandler.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ErrorHandler.java @@ -27,11 +27,9 @@ import java.nio.ByteBuffer; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.stream.Collectors; - import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -95,7 +93,7 @@ public class ErrorHandler extends AbstractHandler } @Override - public void doError(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException + public void doError(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException { String cacheControl = getCacheControl(); if (cacheControl != null) @@ -113,15 +111,23 @@ public class ErrorHandler extends AbstractHandler { if (errorDispatcher != null) { - errorDispatcher.error(request, response); - } - else - { - String message = (String)request.getAttribute(Dispatcher.ERROR_MESSAGE); - if (message == null) - message = baseRequest.getResponse().getReason(); - generateAcceptableResponse(baseRequest, request, response, response.getStatus(), message); + try + { + errorDispatcher.error(request, response); + return; + } + catch (ServletException e) + { + LOG.debug(e); + if (response.isCommitted()) + return; + } } + + String message = (String)request.getAttribute(Dispatcher.ERROR_MESSAGE); + if (message == null) + message = baseRequest.getResponse().getReason(); + generateAcceptableResponse(baseRequest, request, response, response.getStatus(), message); } finally { From 18e7ee594003e27bd4f453389a4d0a2b2e902050 Mon Sep 17 00:00:00 2001 From: Lachlan Date: Thu, 7 Nov 2019 10:53:25 +1100 Subject: [PATCH 25/34] Issue #4237 - allow openid module to be configured without context xml (#4244) Signed-off-by: Lachlan Roberts --- jetty-jaspi/pom.xml | 18 +++++ ...lipse.jetty.security.Authenticator$Factory | 1 + jetty-openid/pom.xml | 18 +++++ .../openid/OpenIdAuthenticatorFactory.java | 5 +- ...lipse.jetty.security.Authenticator$Factory | 1 + jetty-security/pom.xml | 17 +++++ .../jetty/security/SecurityHandler.java | 72 ++++++++++++++++--- 7 files changed, 120 insertions(+), 12 deletions(-) create mode 100644 jetty-jaspi/src/main/resources/META-INF/services/org.eclipse.jetty.security.Authenticator$Factory create mode 100644 jetty-openid/src/main/resources/META-INF/services/org.eclipse.jetty.security.Authenticator$Factory diff --git a/jetty-jaspi/pom.xml b/jetty-jaspi/pom.xml index d446a891fdb..9cb18cfc744 100644 --- a/jetty-jaspi/pom.xml +++ b/jetty-jaspi/pom.xml @@ -23,6 +23,24 @@ org.eclipse.jetty.jaspi.* + + org.apache.felix + maven-bundle-plugin + true + + + + manifest + + + + osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)" + osgi.serviceloader;osgi.serviceloader=org.eclipse.jetty.security.Authenticator$Factory + + + + + diff --git a/jetty-jaspi/src/main/resources/META-INF/services/org.eclipse.jetty.security.Authenticator$Factory b/jetty-jaspi/src/main/resources/META-INF/services/org.eclipse.jetty.security.Authenticator$Factory new file mode 100644 index 00000000000..2e24fa8ca2a --- /dev/null +++ b/jetty-jaspi/src/main/resources/META-INF/services/org.eclipse.jetty.security.Authenticator$Factory @@ -0,0 +1 @@ +org.eclipse.jetty.security.jaspi.JaspiAuthenticatorFactory \ No newline at end of file diff --git a/jetty-openid/pom.xml b/jetty-openid/pom.xml index 1100f4dc10f..6c2943a636b 100644 --- a/jetty-openid/pom.xml +++ b/jetty-openid/pom.xml @@ -24,6 +24,24 @@ org.eclipse.jetty.security.openid.* + + org.apache.felix + maven-bundle-plugin + true + + + + manifest + + + + osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)" + osgi.serviceloader;osgi.serviceloader=org.eclipse.jetty.security.Authenticator$Factory + + + + + diff --git a/jetty-openid/src/main/java/org/eclipse/jetty/security/openid/OpenIdAuthenticatorFactory.java b/jetty-openid/src/main/java/org/eclipse/jetty/security/openid/OpenIdAuthenticatorFactory.java index 86eea6cdbde..20af7a7ed0e 100644 --- a/jetty-openid/src/main/java/org/eclipse/jetty/security/openid/OpenIdAuthenticatorFactory.java +++ b/jetty-openid/src/main/java/org/eclipse/jetty/security/openid/OpenIdAuthenticatorFactory.java @@ -21,13 +21,12 @@ package org.eclipse.jetty.security.openid; import javax.servlet.ServletContext; import org.eclipse.jetty.security.Authenticator; -import org.eclipse.jetty.security.DefaultAuthenticatorFactory; import org.eclipse.jetty.security.IdentityService; import org.eclipse.jetty.security.LoginService; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.util.security.Constraint; -public class OpenIdAuthenticatorFactory extends DefaultAuthenticatorFactory +public class OpenIdAuthenticatorFactory implements Authenticator.Factory { @Override public Authenticator getAuthenticator(Server server, ServletContext context, Authenticator.AuthConfiguration configuration, IdentityService identityService, LoginService loginService) @@ -35,6 +34,6 @@ public class OpenIdAuthenticatorFactory extends DefaultAuthenticatorFactory String auth = configuration.getAuthMethod(); if (Constraint.__OPENID_AUTH.equalsIgnoreCase(auth)) return new OpenIdAuthenticator(); - return super.getAuthenticator(server, context, configuration, identityService, loginService); + return null; } } \ No newline at end of file diff --git a/jetty-openid/src/main/resources/META-INF/services/org.eclipse.jetty.security.Authenticator$Factory b/jetty-openid/src/main/resources/META-INF/services/org.eclipse.jetty.security.Authenticator$Factory new file mode 100644 index 00000000000..cc53212a57b --- /dev/null +++ b/jetty-openid/src/main/resources/META-INF/services/org.eclipse.jetty.security.Authenticator$Factory @@ -0,0 +1 @@ +org.eclipse.jetty.security.openid.OpenIdAuthenticatorFactory \ No newline at end of file diff --git a/jetty-security/pom.xml b/jetty-security/pom.xml index 13008a7b235..b2fd3b06d53 100644 --- a/jetty-security/pom.xml +++ b/jetty-security/pom.xml @@ -21,6 +21,23 @@ org.eclipse.jetty.security.* + + org.apache.felix + maven-bundle-plugin + true + + + + manifest + + + + osgi.serviceloader; filter:="(osgi.serviceloader=org.eclipse.jetty.security.Authenticator$Factory)";resolution:=optional;cardinality:=multiple, osgi.extender; filter:="(osgi.extender=osgi.serviceloader.processor)";resolution:=optional + + + + + diff --git a/jetty-security/src/main/java/org/eclipse/jetty/security/SecurityHandler.java b/jetty-security/src/main/java/org/eclipse/jetty/security/SecurityHandler.java index 62df3199fd7..d5b74b488f2 100644 --- a/jetty-security/src/main/java/org/eclipse/jetty/security/SecurityHandler.java +++ b/jetty-security/src/main/java/org/eclipse/jetty/security/SecurityHandler.java @@ -20,10 +20,13 @@ package org.eclipse.jetty.security; import java.io.IOException; import java.security.Principal; +import java.util.ArrayList; import java.util.Collection; import java.util.Enumeration; import java.util.HashMap; +import java.util.List; import java.util.Map; +import java.util.ServiceLoader; import java.util.Set; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -38,6 +41,7 @@ import org.eclipse.jetty.server.UserIdentity; import org.eclipse.jetty.server.handler.ContextHandler; import org.eclipse.jetty.server.handler.ContextHandler.Context; import org.eclipse.jetty.server.handler.HandlerWrapper; +import org.eclipse.jetty.util.component.DumpableCollection; import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Logger; @@ -58,20 +62,31 @@ import org.eclipse.jetty.util.log.Logger; public abstract class SecurityHandler extends HandlerWrapper implements Authenticator.AuthConfiguration { private static final Logger LOG = Log.getLogger(SecurityHandler.class); + private static final List __knownAuthenticatorFactories = new ArrayList<>(); private boolean _checkWelcomeFiles = false; private Authenticator _authenticator; - private Authenticator.Factory _authenticatorFactory = new DefaultAuthenticatorFactory(); + private Authenticator.Factory _authenticatorFactory; private String _realmName; private String _authMethod; - private final Map _initParameters = new HashMap(); + private final Map _initParameters = new HashMap<>(); private LoginService _loginService; private IdentityService _identityService; private boolean _renewSession = true; + static + { + for (Authenticator.Factory factory : ServiceLoader.load(Authenticator.Factory.class)) + { + __knownAuthenticatorFactories.add(factory); + } + + __knownAuthenticatorFactories.add(new DefaultAuthenticatorFactory()); + } + protected SecurityHandler() { - addBean(_authenticatorFactory); + addBean(new DumpableCollection("knownAuthenticatorFactories", __knownAuthenticatorFactories)); } /** @@ -163,6 +178,14 @@ public abstract class SecurityHandler extends HandlerWrapper implements Authenti _authenticatorFactory = authenticatorFactory; } + /** + * @return the list of discovered authenticatorFactories + */ + public List getKnownAuthenticatorFactories() + { + return __knownAuthenticatorFactories; + } + /** * @return the realmName */ @@ -241,12 +264,12 @@ public abstract class SecurityHandler extends HandlerWrapper implements Authenti * @param key the init key * @param value the init value * @return previous value - * @throws IllegalStateException if the SecurityHandler is running + * @throws IllegalStateException if the SecurityHandler is started */ public String setInitParameter(String key, String value) { - if (isRunning()) - throw new IllegalStateException("running"); + if (isStarted()) + throw new IllegalStateException("started"); return _initParameters.put(key, value); } @@ -336,9 +359,40 @@ public abstract class SecurityHandler extends HandlerWrapper implements Authenti throw new IllegalStateException("LoginService has different IdentityService to " + this); } - Authenticator.Factory authenticatorFactory = getAuthenticatorFactory(); - if (_authenticator == null && authenticatorFactory != null && _identityService != null) - setAuthenticator(authenticatorFactory.getAuthenticator(getServer(), ContextHandler.getCurrentContext(), this, _identityService, _loginService)); + if (_authenticator == null && _identityService != null) + { + // If someone has set an authenticator factory only use that, otherwise try the list of discovered factories. + if (_authenticatorFactory != null) + { + Authenticator authenticator = _authenticatorFactory.getAuthenticator(getServer(), ContextHandler.getCurrentContext(), + this, _identityService, _loginService); + + if (authenticator != null) + { + if (LOG.isDebugEnabled()) + LOG.debug("Created authenticator {} with {}", authenticator, _authenticatorFactory); + + setAuthenticator(authenticator); + } + } + else + { + for (Authenticator.Factory factory : getKnownAuthenticatorFactories()) + { + Authenticator authenticator = factory.getAuthenticator(getServer(), ContextHandler.getCurrentContext(), + this, _identityService, _loginService); + + if (authenticator != null) + { + if (LOG.isDebugEnabled()) + LOG.debug("Created authenticator {} with {}", authenticator, factory); + + setAuthenticator(authenticator); + break; + } + } + } + } if (_authenticator != null) _authenticator.setConfiguration(this); From 2310196532ac9994ffd88a12519e9733bbd39a6f Mon Sep 17 00:00:00 2001 From: Lachlan Date: Thu, 7 Nov 2019 11:02:25 +1100 Subject: [PATCH 26/34] Issue #1777 - configuration for jetty-10 WebSocketClient to be stopped at shutdown Signed-off-by: Lachlan Roberts --- .../websocket/client/WebSocketClient.java | 29 ++++++++++++++++++- .../core/client/WebSocketCoreClient.java | 12 -------- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/jetty-websocket/jetty-websocket-client/src/main/java/org/eclipse/jetty/websocket/client/WebSocketClient.java b/jetty-websocket/jetty-websocket-client/src/main/java/org/eclipse/jetty/websocket/client/WebSocketClient.java index 1a90957dddf..fd07a8c0eb3 100644 --- a/jetty-websocket/jetty-websocket-client/src/main/java/org/eclipse/jetty/websocket/client/WebSocketClient.java +++ b/jetty-websocket/jetty-websocket-client/src/main/java/org/eclipse/jetty/websocket/client/WebSocketClient.java @@ -41,6 +41,7 @@ import org.eclipse.jetty.util.component.ContainerLifeCycle; import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Logger; import org.eclipse.jetty.util.ssl.SslContextFactory; +import org.eclipse.jetty.util.thread.ShutdownThread; import org.eclipse.jetty.websocket.api.Session; import org.eclipse.jetty.websocket.api.UpgradeRequest; import org.eclipse.jetty.websocket.api.WebSocketBehavior; @@ -65,7 +66,8 @@ public class WebSocketClient extends ContainerLifeCycle implements WebSocketPoli private final List sessionListeners = new CopyOnWriteArrayList<>(); private final SessionTracker sessionTracker = new SessionTracker(); private final FrameHandler.ConfigurationCustomizer configurationCustomizer = new FrameHandler.ConfigurationCustomizer(); - private WebSocketComponents components = new WebSocketComponents(); + private final WebSocketComponents components = new WebSocketComponents(); + private boolean stopAtShutdown = false; /** * Instantiate a WebSocketClient with defaults @@ -340,6 +342,31 @@ public class WebSocketClient extends ContainerLifeCycle implements WebSocketPoli return getHttpClient().getSslContextFactory(); } + /** + * Set JVM shutdown behavior. + * @param stop If true, this client instance will be explicitly stopped when the + * JVM is shutdown. Otherwise the application is responsible for maintaining the WebSocketClient lifecycle. + * @see Runtime#addShutdownHook(Thread) + * @see ShutdownThread + */ + public synchronized void setStopAtShutdown(boolean stop) + { + if (stop) + { + if (!stopAtShutdown && !ShutdownThread.isRegistered(this)) + ShutdownThread.register(this); + } + else + ShutdownThread.deregister(this); + + stopAtShutdown = stop; + } + + public boolean isStopAtShutdown() + { + return stopAtShutdown; + } + @Override public String toString() { diff --git a/jetty-websocket/websocket-core/src/main/java/org/eclipse/jetty/websocket/core/client/WebSocketCoreClient.java b/jetty-websocket/websocket-core/src/main/java/org/eclipse/jetty/websocket/core/client/WebSocketCoreClient.java index 2d13e76fcc3..1c89cdcc871 100644 --- a/jetty-websocket/websocket-core/src/main/java/org/eclipse/jetty/websocket/core/client/WebSocketCoreClient.java +++ b/jetty-websocket/websocket-core/src/main/java/org/eclipse/jetty/websocket/core/client/WebSocketCoreClient.java @@ -28,7 +28,6 @@ import org.eclipse.jetty.util.DecoratedObjectFactory; import org.eclipse.jetty.util.component.ContainerLifeCycle; import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Logger; -import org.eclipse.jetty.util.thread.ShutdownThread; import org.eclipse.jetty.websocket.core.ExtensionConfig; import org.eclipse.jetty.websocket.core.FrameHandler; import org.eclipse.jetty.websocket.core.WebSocketComponents; @@ -92,20 +91,9 @@ public class WebSocketCoreClient extends ContainerLifeCycle if (LOG.isDebugEnabled()) LOG.debug("connect to websocket {}", request.getURI()); - init(); - return request.sendAsync(); } - // TODO: review need for this. - private synchronized void init() throws IOException - { - if (!ShutdownThread.isRegistered(this)) - { - ShutdownThread.register(this); - } - } - public WebSocketExtensionRegistry getExtensionRegistry() { return components.getExtensionRegistry(); From d0f74c553211e936006b5b8d6f989c6ed2a62db2 Mon Sep 17 00:00:00 2001 From: Lachlan Date: Thu, 7 Nov 2019 11:06:14 +1100 Subject: [PATCH 27/34] Issue #4124 - autobahn tests for jetty, javax websocket APIs (#4147) - do not select duplicate extensions in javax default Configurator - correctly copy payload for ping frames in jetty & javax frame handlers - add ByteBuffer to javadoc for onMessage in jetty api - cleaned up some test logging for EventSocket - add autoFragment and maxFrameSize settings to WebSocketPolicy - fix early validation for multiple extensions in setExtensions Signed-off-by: Lachlan Roberts --- .../common/JavaxWebSocketFrameHandler.java | 8 +- .../config/ContainerDefaultConfigurator.java | 13 +- .../javax-websocket-tests/fuzzingclient.json | 18 ++ .../javax-websocket-tests/fuzzingserver.json | 10 + .../websocket/javax/tests/EventSocket.java | 12 +- .../tests/autobahn/JavaxAutobahnClient.java | 200 +++++++++++++++ .../tests/autobahn/JavaxAutobahnServer.java | 82 +++++++ .../tests/autobahn/JavaxAutobahnSocket.java | 76 ++++++ .../jetty/websocket/api/WebSocketPolicy.java | 31 +++ .../api/annotations/OnWebSocketMessage.java | 2 + .../websocket/client/WebSocketClient.java | 24 ++ .../common/JettyWebSocketFrameHandler.java | 7 +- .../websocket/common/WebSocketSession.java | 24 ++ .../common/OutgoingMessageCapture.java | 22 ++ .../server/JettyWebSocketServerContainer.java | 24 ++ .../server/JettyWebSocketServletFactory.java | 28 +-- .../jetty-websocket-tests/fuzzingclient.json | 18 ++ .../jetty-websocket-tests/fuzzingserver.json | 10 + .../jetty/websocket/tests/EventSocket.java | 15 +- .../tests/autobahn/JettyAutobahnClient.java | 227 ++++++++++++++++++ .../tests/autobahn/JettyAutobahnServer.java | 82 +++++++ .../tests/autobahn/JettyAutobahnSocket.java | 37 +++ jetty-websocket/websocket-core/pom.xml | 2 +- .../core/WebSocketNegotiationTest.java | 19 ++ ...ketClient.java => CoreAutobahnClient.java} | 12 +- ...ketServer.java => CoreAutobahnServer.java} | 2 +- .../servlet/ServletUpgradeResponse.java | 2 +- 27 files changed, 953 insertions(+), 54 deletions(-) create mode 100644 jetty-websocket/javax-websocket-tests/fuzzingclient.json create mode 100644 jetty-websocket/javax-websocket-tests/fuzzingserver.json create mode 100644 jetty-websocket/javax-websocket-tests/src/test/java/org/eclipse/jetty/websocket/javax/tests/autobahn/JavaxAutobahnClient.java create mode 100644 jetty-websocket/javax-websocket-tests/src/test/java/org/eclipse/jetty/websocket/javax/tests/autobahn/JavaxAutobahnServer.java create mode 100644 jetty-websocket/javax-websocket-tests/src/test/java/org/eclipse/jetty/websocket/javax/tests/autobahn/JavaxAutobahnSocket.java create mode 100644 jetty-websocket/jetty-websocket-tests/fuzzingclient.json create mode 100644 jetty-websocket/jetty-websocket-tests/fuzzingserver.json create mode 100644 jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/autobahn/JettyAutobahnClient.java create mode 100644 jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/autobahn/JettyAutobahnServer.java create mode 100644 jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/autobahn/JettyAutobahnSocket.java rename jetty-websocket/websocket-core/src/test/java/org/eclipse/jetty/websocket/core/autobahn/{AutobahnWebSocketClient.java => CoreAutobahnClient.java} (95%) rename jetty-websocket/websocket-core/src/test/java/org/eclipse/jetty/websocket/core/autobahn/{AutobahnWebSocketServer.java => CoreAutobahnServer.java} (98%) diff --git a/jetty-websocket/javax-websocket-common/src/main/java/org/eclipse/jetty/websocket/javax/common/JavaxWebSocketFrameHandler.java b/jetty-websocket/javax-websocket-common/src/main/java/org/eclipse/jetty/websocket/javax/common/JavaxWebSocketFrameHandler.java index 033cc270aa2..8356e064163 100644 --- a/jetty-websocket/javax-websocket-common/src/main/java/org/eclipse/jetty/websocket/javax/common/JavaxWebSocketFrameHandler.java +++ b/jetty-websocket/javax-websocket-common/src/main/java/org/eclipse/jetty/websocket/javax/common/JavaxWebSocketFrameHandler.java @@ -545,13 +545,7 @@ public class JavaxWebSocketFrameHandler implements FrameHandler public void onPing(Frame frame, Callback callback) { - ByteBuffer payload = BufferUtil.EMPTY_BUFFER; - - if (frame.hasPayload()) - { - payload = ByteBuffer.allocate(frame.getPayloadLength()); - BufferUtil.put(frame.getPayload(), payload); - } + ByteBuffer payload = BufferUtil.copy(frame.getPayload()); coreSession.sendFrame(new Frame(OpCode.PONG).setPayload(payload), Callback.NOOP, false); callback.succeeded(); } diff --git a/jetty-websocket/javax-websocket-server/src/main/java/org/eclipse/jetty/websocket/javax/server/config/ContainerDefaultConfigurator.java b/jetty-websocket/javax-websocket-server/src/main/java/org/eclipse/jetty/websocket/javax/server/config/ContainerDefaultConfigurator.java index 9906438cc3f..4a5ac1bb7e6 100644 --- a/jetty-websocket/javax-websocket-server/src/main/java/org/eclipse/jetty/websocket/javax/server/config/ContainerDefaultConfigurator.java +++ b/jetty-websocket/javax-websocket-server/src/main/java/org/eclipse/jetty/websocket/javax/server/config/ContainerDefaultConfigurator.java @@ -18,6 +18,7 @@ package org.eclipse.jetty.websocket.javax.server.config; +import java.util.ArrayList; import java.util.List; import java.util.ServiceLoader; import javax.websocket.Extension; @@ -28,6 +29,7 @@ import javax.websocket.server.ServerEndpointConfig.Configurator; import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Logger; +import org.eclipse.jetty.websocket.core.ExtensionConfig; /** * The "Container Default Configurator" per the JSR-356 spec. @@ -78,7 +80,16 @@ public final class ContainerDefaultConfigurator extends Configurator @Override public List getNegotiatedExtensions(List installed, List requested) { - return requested; + List negotiatedExtensions = new ArrayList<>(); + for (Extension ext : requested) + { + // Only choose the first extension if multiple with the same name. + long matches = negotiatedExtensions.stream().filter(e -> e.getName().equals(ext.getName())).count(); + if (matches == 0) + negotiatedExtensions.add(ext); + } + + return negotiatedExtensions; } @Override diff --git a/jetty-websocket/javax-websocket-tests/fuzzingclient.json b/jetty-websocket/javax-websocket-tests/fuzzingclient.json new file mode 100644 index 00000000000..fbe1ce7e85e --- /dev/null +++ b/jetty-websocket/javax-websocket-tests/fuzzingclient.json @@ -0,0 +1,18 @@ +{ + "options": { + "failByDrop": false + }, + "outdir": "./target/reports/servers", + "servers": [ + { + "agent": "Jetty-10.0.0-SNAPSHOT", + "url": "ws://127.0.0.1:9001", + "options": { + "version": 18 + } + } + ], + "cases": ["*"], + "exclude-cases": [], + "exclude-agent-cases": {} +} diff --git a/jetty-websocket/javax-websocket-tests/fuzzingserver.json b/jetty-websocket/javax-websocket-tests/fuzzingserver.json new file mode 100644 index 00000000000..ade31281937 --- /dev/null +++ b/jetty-websocket/javax-websocket-tests/fuzzingserver.json @@ -0,0 +1,10 @@ +{ + "options": { + "failByDrop": false + }, + "url": "ws://127.0.0.1:9001", + "outdir": "./target/reports/clients", + "cases": ["*"], + "exclude-cases": [], + "exclude-agent-cases": {} +} diff --git a/jetty-websocket/javax-websocket-tests/src/main/java/org/eclipse/jetty/websocket/javax/tests/EventSocket.java b/jetty-websocket/javax-websocket-tests/src/main/java/org/eclipse/jetty/websocket/javax/tests/EventSocket.java index 86828f5ac72..45d373eed81 100644 --- a/jetty-websocket/javax-websocket-tests/src/main/java/org/eclipse/jetty/websocket/javax/tests/EventSocket.java +++ b/jetty-websocket/javax-websocket-tests/src/main/java/org/eclipse/jetty/websocket/javax/tests/EventSocket.java @@ -52,28 +52,32 @@ public class EventSocket public void onOpen(Session session) { this.session = session; - LOG.info("{} onOpen(): {}", toString(), session); + if (LOG.isDebugEnabled()) + LOG.debug("{} onOpen(): {}", toString(), session); openLatch.countDown(); } @OnMessage public void onMessage(String message) throws IOException { - LOG.info("{} onMessage(): {}", toString(), message); + if (LOG.isDebugEnabled()) + LOG.debug("{} onMessage(): {}", toString(), message); messageQueue.offer(message); } @OnClose public void onClose(CloseReason reason) { - LOG.info("{} onClose(): {}", toString(), reason); + if (LOG.isDebugEnabled()) + LOG.debug("{} onClose(): {}", toString(), reason); closeLatch.countDown(); } @OnError public void onError(Throwable cause) { - LOG.info("{} onError(): {}", toString(), cause); + if (LOG.isDebugEnabled()) + LOG.debug("{} onError(): {}", toString(), cause); error = cause; } } diff --git a/jetty-websocket/javax-websocket-tests/src/test/java/org/eclipse/jetty/websocket/javax/tests/autobahn/JavaxAutobahnClient.java b/jetty-websocket/javax-websocket-tests/src/test/java/org/eclipse/jetty/websocket/javax/tests/autobahn/JavaxAutobahnClient.java new file mode 100644 index 00000000000..f722737e4af --- /dev/null +++ b/jetty-websocket/javax-websocket-tests/src/test/java/org/eclipse/jetty/websocket/javax/tests/autobahn/JavaxAutobahnClient.java @@ -0,0 +1,200 @@ +// +// ======================================================================== +// Copyright (c) 1995-2019 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.websocket.javax.tests.autobahn; + +import java.net.URI; +import java.util.concurrent.TimeUnit; +import javax.websocket.CloseReason; + +import org.eclipse.jetty.util.Jetty; +import org.eclipse.jetty.util.UrlEncoded; +import org.eclipse.jetty.util.component.LifeCycle; +import org.eclipse.jetty.util.log.Log; +import org.eclipse.jetty.util.log.Logger; +import org.eclipse.jetty.websocket.javax.client.JavaxWebSocketClientContainer; +import org.eclipse.jetty.websocket.javax.tests.EventSocket; + +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +/** + * WebSocket Client for use with autobahn websocket testsuite (wstest). + *

+ * Installing Autobahn: + *

+ *
+ *    # For Debian / Ubuntu
+ *    $ sudo apt-get install python python-dev python-twisted
+ *    $ sudo apt-get install python-pip
+ *    $ sudo pip install autobahntestsuite
+ *
+ *    # For Fedora / Redhat
+ *    $ sudo yum install python python-dev python-pip twisted
+ *    $ sudo yum install libffi-devel
+ *    $ sudo pip install autobahntestsuite
+ * 
+ *

+ * Upgrading an existing installation of autobahntestsuite + *

+ *
+ *     $ sudo pip install -U autobahntestsuite
+ * 
+ *

+ * Running Autobahn Fuzzing Server (which you run this client implementation against): + *

+ *
+ *     # Change to javax-websocket-tests directory first.
+ *     $ cd jetty-websocket/javax-websocket-tests/
+ *     $ wstest --mode=fuzzingserver --spec=fuzzingserver.json
+ *
+ *     # Report output is configured (in the fuzzingserver.json) at location:
+ *     $ ls target/reports/clients/
+ * 
+ */ +public class JavaxAutobahnClient +{ + public static void main(String[] args) + { + String hostname = "localhost"; + int port = 9001; + + if (args.length > 0) + hostname = args[0]; + if (args.length > 1) + port = Integer.parseInt(args[1]); + + // Optional case numbers + // NOTE: these are url query parameter case numbers (whole integers, eg "6"), not the case ids (eg "7.3.1") + int[] caseNumbers = null; + if (args.length > 2) + { + int offset = 2; + caseNumbers = new int[args.length - offset]; + for (int i = offset; i < args.length; i++) + { + caseNumbers[i - offset] = Integer.parseInt(args[i]); + } + } + + JavaxAutobahnClient client = null; + try + { + String userAgent = "JettyWebsocketClient/" + Jetty.VERSION; + client = new JavaxAutobahnClient(hostname, port, userAgent); + + LOG.info("Running test suite..."); + LOG.info("Using Fuzzing Server: {}:{}", hostname, port); + LOG.info("User Agent: {}", userAgent); + + if (caseNumbers == null) + { + int caseCount = client.getCaseCount(); + LOG.info("Will run all {} cases ...", caseCount); + for (int caseNum = 1; caseNum <= caseCount; caseNum++) + { + LOG.info("Running case {} (of {}) ...", caseNum, caseCount); + client.runCaseByNumber(caseNum); + } + } + else + { + LOG.info("Will run %d cases ...", caseNumbers.length); + for (int caseNum : caseNumbers) + { + client.runCaseByNumber(caseNum); + } + } + LOG.info("All test cases executed."); + client.updateReports(); + } + catch (Throwable t) + { + LOG.warn("Test Failed", t); + } + finally + { + if (client != null) + client.stop(); + } + } + + private static final Logger LOG = Log.getLogger(JavaxAutobahnClient.class); + private URI baseWebsocketUri; + private JavaxWebSocketClientContainer clientContainer; + private String userAgent; + + public JavaxAutobahnClient(String hostname, int port, String userAgent) throws Exception + { + this.userAgent = userAgent; + this.baseWebsocketUri = new URI("ws://" + hostname + ":" + port); + this.clientContainer = new JavaxWebSocketClientContainer(); + clientContainer.start(); + } + + public void stop() + { + LifeCycle.stop(clientContainer); + } + + public int getCaseCount() + { + URI wsUri = baseWebsocketUri.resolve("/getCaseCount"); + EventSocket onCaseCount = new EventSocket(); + + try + { + clientContainer.connectToServer(onCaseCount, wsUri); + String msg = onCaseCount.messageQueue.poll(10, TimeUnit.SECONDS); + onCaseCount.session.close(new CloseReason(CloseReason.CloseCodes.GOING_AWAY, null)); + assertTrue(onCaseCount.closeLatch.await(2, TimeUnit.SECONDS)); + assertNotNull(msg); + return Integer.decode(msg); + } + catch (Throwable t) + { + throw new IllegalStateException("Unable to get Case Count", t); + } + } + + public void runCaseByNumber(int caseNumber) throws Exception + { + URI wsUri = baseWebsocketUri.resolve("/runCase?case=" + caseNumber + "&agent=" + UrlEncoded.encodeString(userAgent)); + LOG.info("test uri: {}", wsUri); + + JavaxAutobahnSocket echoHandler = new JavaxAutobahnSocket(); + clientContainer.connectToServer(echoHandler, wsUri); + + // Wait up to 5 min as some of the tests can take a while + if (!echoHandler.closeLatch.await(5, TimeUnit.MINUTES)) + { + LOG.warn("could not close {}, closing session", echoHandler); + echoHandler.session.close(new CloseReason(CloseReason.CloseCodes.GOING_AWAY, null)); + } + } + + public void updateReports() throws Exception + { + URI wsUri = baseWebsocketUri.resolve("/updateReports?agent=" + UrlEncoded.encodeString(userAgent)); + EventSocket onUpdateReports = new EventSocket(); + clientContainer.connectToServer(onUpdateReports, wsUri); + assertTrue(onUpdateReports.closeLatch.await(15, TimeUnit.SECONDS)); + LOG.info("Reports updated."); + LOG.info("Test suite finished!"); + } +} diff --git a/jetty-websocket/javax-websocket-tests/src/test/java/org/eclipse/jetty/websocket/javax/tests/autobahn/JavaxAutobahnServer.java b/jetty-websocket/javax-websocket-tests/src/test/java/org/eclipse/jetty/websocket/javax/tests/autobahn/JavaxAutobahnServer.java new file mode 100644 index 00000000000..543d6812794 --- /dev/null +++ b/jetty-websocket/javax-websocket-tests/src/test/java/org/eclipse/jetty/websocket/javax/tests/autobahn/JavaxAutobahnServer.java @@ -0,0 +1,82 @@ +// +// ======================================================================== +// Copyright (c) 1995-2019 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.websocket.javax.tests.autobahn; + +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.server.ServerConnector; +import org.eclipse.jetty.servlet.ServletContextHandler; +import org.eclipse.jetty.websocket.javax.server.config.JavaxWebSocketServletContainerInitializer; + +/** + * WebSocket Server for use with autobahn websocket testsuite (wstest). + *

+ * Installing Autobahn: + *

+ *
+ *    # For Debian / Ubuntu
+ *    $ sudo apt-get install python python-dev python-twisted
+ *    $ sudo apt-get install python-pip
+ *    $ sudo pip install autobahntestsuite
+ *
+ *    # For Fedora / Redhat
+ *    $ sudo yum install python python-dev python-pip twisted
+ *    $ sudo yum install libffi-devel
+ *    $ sudo pip install autobahntestsuite
+ * 
+ *

+ * Upgrading an existing installation of autobahntestsuite + *

+ *
+ *     $ sudo pip install -U autobahntestsuite
+ * 
+ *

+ * Running Autobahn Fuzzing Client (against this server implementation): + *

+ *
+ *     # Change to javax-websocket-tests directory first.
+ *     $ cd jetty-websocket/javax-websocket-tests/
+ *     $ wstest --mode=fuzzingclient --spec=fuzzingclient.json
+ *
+ *     # Report output is configured (in the fuzzingclient.json) at location:
+ *     $ ls target/reports/servers/
+ * 
+ */ +public class JavaxAutobahnServer +{ + public static void main(String[] args) throws Exception + { + int port = 9001; // same port as found in fuzzing-client.json + if (args != null && args.length > 0) + port = Integer.parseInt(args[0]); + + Server server = new Server(port); + ServerConnector connector = new ServerConnector(server); + connector.setIdleTimeout(10000); + server.addConnector(connector); + ServletContextHandler context = new ServletContextHandler(); + context.setContextPath("/"); + server.setHandler(context); + + JavaxWebSocketServletContainerInitializer.configure(context, (servletContext, container)-> + container.addEndpoint(JavaxAutobahnSocket.class)); + + server.start(); + server.join(); + } +} diff --git a/jetty-websocket/javax-websocket-tests/src/test/java/org/eclipse/jetty/websocket/javax/tests/autobahn/JavaxAutobahnSocket.java b/jetty-websocket/javax-websocket-tests/src/test/java/org/eclipse/jetty/websocket/javax/tests/autobahn/JavaxAutobahnSocket.java new file mode 100644 index 00000000000..be746df58b3 --- /dev/null +++ b/jetty-websocket/javax-websocket-tests/src/test/java/org/eclipse/jetty/websocket/javax/tests/autobahn/JavaxAutobahnSocket.java @@ -0,0 +1,76 @@ +// +// ======================================================================== +// Copyright (c) 1995-2019 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.websocket.javax.tests.autobahn; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.util.concurrent.CountDownLatch; +import javax.websocket.ClientEndpoint; +import javax.websocket.OnClose; +import javax.websocket.OnError; +import javax.websocket.OnMessage; +import javax.websocket.OnOpen; +import javax.websocket.Session; +import javax.websocket.server.ServerEndpoint; + +import org.eclipse.jetty.util.log.Log; +import org.eclipse.jetty.util.log.Logger; + +@ClientEndpoint +@ServerEndpoint("/") +public class JavaxAutobahnSocket +{ + private static final Logger LOG = Log.getLogger(JavaxAutobahnSocket.class); + + public Session session; + public CountDownLatch closeLatch = new CountDownLatch(1); + + @OnOpen + public void onConnect(Session session) + { + this.session = session; + session.setMaxTextMessageBufferSize(Integer.MAX_VALUE); + session.setMaxBinaryMessageBufferSize(Integer.MAX_VALUE); + } + + @OnMessage + public void onText(String message) throws IOException + { + session.getBasicRemote().sendText(message); + } + + @OnMessage + public void onBinary(ByteBuffer message) throws IOException + { + session.getBasicRemote().sendBinary(message); + } + + @OnError + public void onError(Throwable t) + { + if (LOG.isDebugEnabled()) + LOG.debug("onError()", t); + } + + @OnClose + public void onClose() + { + closeLatch.countDown(); + } +} diff --git a/jetty-websocket/jetty-websocket-api/src/main/java/org/eclipse/jetty/websocket/api/WebSocketPolicy.java b/jetty-websocket/jetty-websocket-api/src/main/java/org/eclipse/jetty/websocket/api/WebSocketPolicy.java index 8b089fdbcba..f043b864cb6 100644 --- a/jetty-websocket/jetty-websocket-api/src/main/java/org/eclipse/jetty/websocket/api/WebSocketPolicy.java +++ b/jetty-websocket/jetty-websocket-api/src/main/java/org/eclipse/jetty/websocket/api/WebSocketPolicy.java @@ -84,6 +84,20 @@ public interface WebSocketPolicy */ long getMaxTextMessageSize(); + /** + * The maximum payload size of any WebSocket Frame which can be received. + * + * @return the maximum size of a WebSocket Frame. + */ + long getMaxFrameSize(); + + /** + * If true, frames are automatically fragmented to respect the maximum frame size. + * + * @return whether to automatically fragment incoming WebSocket Frames. + */ + boolean isAutoFragment(); + /** * The duration that a websocket may be idle before being closed by the implementation * @@ -123,4 +137,21 @@ public interface WebSocketPolicy * @param size the maximum allowed size of a text message. */ void setMaxTextMessageSize(long size); + + /** + * The maximum payload size of any WebSocket Frame which can be received. + *

+ * WebSocket Frames over this maximum will result in a close code 1009 {@link StatusCode#MESSAGE_TOO_LARGE} + *

+ * + * @param maxFrameSize the maximum allowed size of a WebSocket Frame. + */ + void setMaxFrameSize(long maxFrameSize); + + /** + * If set to true, frames are automatically fragmented to respect the maximum frame size. + * + * @param autoFragment whether to automatically fragment incoming WebSocket Frames. + */ + void setAutoFragment(boolean autoFragment); } diff --git a/jetty-websocket/jetty-websocket-api/src/main/java/org/eclipse/jetty/websocket/api/annotations/OnWebSocketMessage.java b/jetty-websocket/jetty-websocket-api/src/main/java/org/eclipse/jetty/websocket/api/annotations/OnWebSocketMessage.java index 00483883708..064fce15d83 100644 --- a/jetty-websocket/jetty-websocket-api/src/main/java/org/eclipse/jetty/websocket/api/annotations/OnWebSocketMessage.java +++ b/jetty-websocket/jetty-websocket-api/src/main/java/org/eclipse/jetty/websocket/api/annotations/OnWebSocketMessage.java @@ -45,6 +45,8 @@ import org.eclipse.jetty.websocket.api.Session; *

* Binary Message Versions *

    + *
  1. {@code public void methodName(ByteBuffer message)}
  2. + *
  3. public void methodName({@link Session} session, ByteBuffer message)
  4. *
  5. {@code public void methodName(byte buf[], int offset, int length)}
  6. *
  7. public void methodName({@link Session} session, byte buf[], int offset, int length)
  8. *
  9. {@code public void methodName(InputStream stream)}
  10. diff --git a/jetty-websocket/jetty-websocket-client/src/main/java/org/eclipse/jetty/websocket/client/WebSocketClient.java b/jetty-websocket/jetty-websocket-client/src/main/java/org/eclipse/jetty/websocket/client/WebSocketClient.java index fd07a8c0eb3..c37ff27ecb9 100644 --- a/jetty-websocket/jetty-websocket-client/src/main/java/org/eclipse/jetty/websocket/client/WebSocketClient.java +++ b/jetty-websocket/jetty-websocket-client/src/main/java/org/eclipse/jetty/websocket/client/WebSocketClient.java @@ -237,6 +237,18 @@ public class WebSocketClient extends ContainerLifeCycle implements WebSocketPoli return configurationCustomizer.getMaxTextMessageSize(); } + @Override + public long getMaxFrameSize() + { + return configurationCustomizer.getMaxFrameSize(); + } + + @Override + public boolean isAutoFragment() + { + return configurationCustomizer.isAutoFragment(); + } + @Override public void setIdleTimeout(Duration duration) { @@ -268,6 +280,18 @@ public class WebSocketClient extends ContainerLifeCycle implements WebSocketPoli configurationCustomizer.setMaxTextMessageSize(size); } + @Override + public void setMaxFrameSize(long maxFrameSize) + { + configurationCustomizer.setMaxFrameSize(maxFrameSize); + } + + @Override + public void setAutoFragment(boolean autoFragment) + { + configurationCustomizer.setAutoFragment(autoFragment); + } + public SocketAddress getBindAddress() { return getHttpClient().getBindAddress(); diff --git a/jetty-websocket/jetty-websocket-common/src/main/java/org/eclipse/jetty/websocket/common/JettyWebSocketFrameHandler.java b/jetty-websocket/jetty-websocket-common/src/main/java/org/eclipse/jetty/websocket/common/JettyWebSocketFrameHandler.java index 6ce9a1fe59f..9a2ccaa23e7 100644 --- a/jetty-websocket/jetty-websocket-common/src/main/java/org/eclipse/jetty/websocket/common/JettyWebSocketFrameHandler.java +++ b/jetty-websocket/jetty-websocket-common/src/main/java/org/eclipse/jetty/websocket/common/JettyWebSocketFrameHandler.java @@ -29,6 +29,7 @@ import org.eclipse.jetty.util.log.Logger; import org.eclipse.jetty.websocket.api.BatchMode; import org.eclipse.jetty.websocket.api.UpgradeRequest; import org.eclipse.jetty.websocket.api.UpgradeResponse; +import org.eclipse.jetty.websocket.api.WriteCallback; import org.eclipse.jetty.websocket.common.invoke.InvalidSignatureException; import org.eclipse.jetty.websocket.core.BadPayloadException; import org.eclipse.jetty.websocket.core.CloseException; @@ -359,10 +360,8 @@ public class JettyWebSocketFrameHandler implements FrameHandler else { // Automatically respond - Frame pong = new Frame(OpCode.PONG); - if (frame.hasPayload()) - pong.setPayload(frame.getPayload()); - getSession().getRemote().getCoreSession().sendFrame(pong, Callback.NOOP, false); + ByteBuffer payload = BufferUtil.copy(frame.getPayload()); + getSession().getRemote().sendPong(payload, WriteCallback.NOOP); } callback.succeeded(); } diff --git a/jetty-websocket/jetty-websocket-common/src/main/java/org/eclipse/jetty/websocket/common/WebSocketSession.java b/jetty-websocket/jetty-websocket-common/src/main/java/org/eclipse/jetty/websocket/common/WebSocketSession.java index e136ac32562..80a5fcc2493 100644 --- a/jetty-websocket/jetty-websocket-common/src/main/java/org/eclipse/jetty/websocket/common/WebSocketSession.java +++ b/jetty-websocket/jetty-websocket-common/src/main/java/org/eclipse/jetty/websocket/common/WebSocketSession.java @@ -117,6 +117,18 @@ public class WebSocketSession extends AbstractLifeCycle implements Session, Susp return coreSession.getMaxTextMessageSize(); } + @Override + public long getMaxFrameSize() + { + return coreSession.getMaxFrameSize(); + } + + @Override + public boolean isAutoFragment() + { + return coreSession.isAutoFragment(); + } + @Override public void setIdleTimeout(Duration duration) { @@ -147,6 +159,18 @@ public class WebSocketSession extends AbstractLifeCycle implements Session, Susp coreSession.setMaxTextMessageSize(size); } + @Override + public void setMaxFrameSize(long maxFrameSize) + { + coreSession.setMaxFrameSize(maxFrameSize); + } + + @Override + public void setAutoFragment(boolean autoFragment) + { + coreSession.setAutoFragment(autoFragment); + } + @Override public String getProtocolVersion() { diff --git a/jetty-websocket/jetty-websocket-common/src/test/java/org/eclipse/jetty/websocket/common/OutgoingMessageCapture.java b/jetty-websocket/jetty-websocket-common/src/test/java/org/eclipse/jetty/websocket/common/OutgoingMessageCapture.java index 5955296793f..76164af7236 100644 --- a/jetty-websocket/jetty-websocket-common/src/test/java/org/eclipse/jetty/websocket/common/OutgoingMessageCapture.java +++ b/jetty-websocket/jetty-websocket-common/src/test/java/org/eclipse/jetty/websocket/common/OutgoingMessageCapture.java @@ -295,6 +295,18 @@ public class OutgoingMessageCapture extends FrameHandler.CoreSession.Empty imple return maxMessageSize; } + @Override + public long getMaxFrameSize() + { + return 0; + } + + @Override + public boolean isAutoFragment() + { + return false; + } + @Override public void setIdleTimeout(Duration duration) { @@ -319,6 +331,16 @@ public class OutgoingMessageCapture extends FrameHandler.CoreSession.Empty imple public void setMaxTextMessageSize(long size) { } + + @Override + public void setMaxFrameSize(long maxFrameSize) + { + } + + @Override + public void setAutoFragment(boolean autoFragment) + { + } }; } } diff --git a/jetty-websocket/jetty-websocket-server/src/main/java/org/eclipse/jetty/websocket/server/JettyWebSocketServerContainer.java b/jetty-websocket/jetty-websocket-server/src/main/java/org/eclipse/jetty/websocket/server/JettyWebSocketServerContainer.java index b6b7938f11f..cb2b886e879 100644 --- a/jetty-websocket/jetty-websocket-server/src/main/java/org/eclipse/jetty/websocket/server/JettyWebSocketServerContainer.java +++ b/jetty-websocket/jetty-websocket-server/src/main/java/org/eclipse/jetty/websocket/server/JettyWebSocketServerContainer.java @@ -206,6 +206,18 @@ public class JettyWebSocketServerContainer extends ContainerLifeCycle implements return customizer.getMaxTextMessageSize(); } + @Override + public long getMaxFrameSize() + { + return customizer.getMaxFrameSize(); + } + + @Override + public boolean isAutoFragment() + { + return customizer.isAutoFragment(); + } + @Override public void setIdleTimeout(Duration duration) { @@ -235,4 +247,16 @@ public class JettyWebSocketServerContainer extends ContainerLifeCycle implements { customizer.setMaxTextMessageSize(size); } + + @Override + public void setMaxFrameSize(long maxFrameSize) + { + customizer.setMaxFrameSize(maxFrameSize); + } + + @Override + public void setAutoFragment(boolean autoFragment) + { + customizer.setAutoFragment(autoFragment); + } } diff --git a/jetty-websocket/jetty-websocket-server/src/main/java/org/eclipse/jetty/websocket/server/JettyWebSocketServletFactory.java b/jetty-websocket/jetty-websocket-server/src/main/java/org/eclipse/jetty/websocket/server/JettyWebSocketServletFactory.java index 0c424b494d0..15c313eddc9 100644 --- a/jetty-websocket/jetty-websocket-server/src/main/java/org/eclipse/jetty/websocket/server/JettyWebSocketServletFactory.java +++ b/jetty-websocket/jetty-websocket-server/src/main/java/org/eclipse/jetty/websocket/server/JettyWebSocketServletFactory.java @@ -22,7 +22,6 @@ import java.time.Duration; import java.util.Set; import org.eclipse.jetty.http.pathmap.PathSpec; -import org.eclipse.jetty.websocket.api.StatusCode; import org.eclipse.jetty.websocket.api.WebSocketBehavior; import org.eclipse.jetty.websocket.api.WebSocketPolicy; import org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest; @@ -50,44 +49,25 @@ public class JettyWebSocketServletFactory implements WebSocketPolicy return WebSocketBehavior.SERVER; } - /** - * If true, frames are automatically fragmented to respect the maximum frame size. - * - * @return whether to automatically fragment incoming WebSocket Frames. - */ + @Override public boolean isAutoFragment() { return factory.isAutoFragment(); } - /** - * If set to true, frames are automatically fragmented to respect the maximum frame size. - * - * @param autoFragment whether to automatically fragment incoming WebSocket Frames. - */ + @Override public void setAutoFragment(boolean autoFragment) { factory.setAutoFragment(autoFragment); } - /** - * The maximum payload size of any WebSocket Frame which can be received. - * - * @return the maximum size of a WebSocket Frame. - */ + @Override public long getMaxFrameSize() { return factory.getMaxFrameSize(); } - /** - * The maximum payload size of any WebSocket Frame which can be received. - *

    - * WebSocket Frames over this maximum will result in a close code 1009 {@link StatusCode#MESSAGE_TOO_LARGE} - *

    - * - * @param maxFrameSize the maximum allowed size of a WebSocket Frame. - */ + @Override public void setMaxFrameSize(long maxFrameSize) { factory.setMaxFrameSize(maxFrameSize); diff --git a/jetty-websocket/jetty-websocket-tests/fuzzingclient.json b/jetty-websocket/jetty-websocket-tests/fuzzingclient.json new file mode 100644 index 00000000000..fbe1ce7e85e --- /dev/null +++ b/jetty-websocket/jetty-websocket-tests/fuzzingclient.json @@ -0,0 +1,18 @@ +{ + "options": { + "failByDrop": false + }, + "outdir": "./target/reports/servers", + "servers": [ + { + "agent": "Jetty-10.0.0-SNAPSHOT", + "url": "ws://127.0.0.1:9001", + "options": { + "version": 18 + } + } + ], + "cases": ["*"], + "exclude-cases": [], + "exclude-agent-cases": {} +} diff --git a/jetty-websocket/jetty-websocket-tests/fuzzingserver.json b/jetty-websocket/jetty-websocket-tests/fuzzingserver.json new file mode 100644 index 00000000000..ade31281937 --- /dev/null +++ b/jetty-websocket/jetty-websocket-tests/fuzzingserver.json @@ -0,0 +1,10 @@ +{ + "options": { + "failByDrop": false + }, + "url": "ws://127.0.0.1:9001", + "outdir": "./target/reports/clients", + "cases": ["*"], + "exclude-cases": [], + "exclude-agent-cases": {} +} diff --git a/jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/EventSocket.java b/jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/EventSocket.java index ae660da1c09..cafa1e41044 100644 --- a/jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/EventSocket.java +++ b/jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/EventSocket.java @@ -57,14 +57,16 @@ public class EventSocket { this.session = session; behavior = session.getPolicy().getBehavior().name(); - LOG.info("{} onOpen(): {}", toString(), session); + if (LOG.isDebugEnabled()) + LOG.debug("{} onOpen(): {}", toString(), session); openLatch.countDown(); } @OnWebSocketMessage public void onMessage(String message) throws IOException { - LOG.info("{} onMessage(): {}", toString(), message); + if (LOG.isDebugEnabled()) + LOG.debug("{} onMessage(): {}", toString(), message); messageQueue.offer(message); } @@ -72,14 +74,16 @@ public class EventSocket public void onMessage(byte buf[], int offset, int len) { ByteBuffer message = ByteBuffer.wrap(buf, offset, len); - LOG.info("{} onMessage(): {}", toString(), message); + if (LOG.isDebugEnabled()) + LOG.debug("{} onMessage(): {}", toString(), message); binaryMessageQueue.offer(message); } @OnWebSocketClose public void onClose(int statusCode, String reason) { - LOG.info("{} onClose(): {}:{}", toString(), statusCode, reason); + if (LOG.isDebugEnabled()) + LOG.debug("{} onClose(): {}:{}", toString(), statusCode, reason); this.statusCode = statusCode; this.reason = reason; closeLatch.countDown(); @@ -88,7 +92,8 @@ public class EventSocket @OnWebSocketError public void onError(Throwable cause) { - LOG.info("{} onError(): {}", toString(), cause); + if (LOG.isDebugEnabled()) + LOG.debug("{} onError(): {}", toString(), cause); error = cause; errorLatch.countDown(); } diff --git a/jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/autobahn/JettyAutobahnClient.java b/jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/autobahn/JettyAutobahnClient.java new file mode 100644 index 00000000000..166860784f4 --- /dev/null +++ b/jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/autobahn/JettyAutobahnClient.java @@ -0,0 +1,227 @@ +// +// ======================================================================== +// Copyright (c) 1995-2019 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.websocket.tests.autobahn; + +import java.io.IOException; +import java.net.URI; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; + +import org.eclipse.jetty.util.Jetty; +import org.eclipse.jetty.util.UrlEncoded; +import org.eclipse.jetty.util.log.Log; +import org.eclipse.jetty.util.log.Logger; +import org.eclipse.jetty.websocket.api.Session; +import org.eclipse.jetty.websocket.api.StatusCode; +import org.eclipse.jetty.websocket.client.WebSocketClient; +import org.eclipse.jetty.websocket.tests.EchoSocket; +import org.eclipse.jetty.websocket.tests.EventSocket; + +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +/** + * WebSocket Client for use with autobahn websocket testsuite (wstest). + *

    + * Installing Autobahn: + *

    + *
    + *    # For Debian / Ubuntu
    + *    $ sudo apt-get install python python-dev python-twisted
    + *    $ sudo apt-get install python-pip
    + *    $ sudo pip install autobahntestsuite
    + *
    + *    # For Fedora / Redhat
    + *    $ sudo yum install python python-dev python-pip twisted
    + *    $ sudo yum install libffi-devel
    + *    $ sudo pip install autobahntestsuite
    + * 
    + *

    + * Upgrading an existing installation of autobahntestsuite + *

    + *
    + *     $ sudo pip install -U autobahntestsuite
    + * 
    + *

    + * Running Autobahn Fuzzing Server (which you run this client implementation against): + *

    + *
    + *     # Change to jetty-websocket-tests directory first.
    + *     $ cd jetty-websocket/jetty-websocket-tests/
    + *     $ wstest --mode=fuzzingserver --spec=fuzzingserver.json
    + *
    + *     # Report output is configured (in the fuzzingserver.json) at location:
    + *     $ ls target/reports/clients/
    + * 
    + */ +public class JettyAutobahnClient +{ + public static void main(String[] args) + { + String hostname = "localhost"; + int port = 9001; + + if (args.length > 0) + hostname = args[0]; + if (args.length > 1) + port = Integer.parseInt(args[1]); + + // Optional case numbers + // NOTE: these are url query parameter case numbers (whole integers, eg "6"), not the case ids (eg "7.3.1") + int[] caseNumbers = null; + if (args.length > 2) + { + int offset = 2; + caseNumbers = new int[args.length - offset]; + for (int i = offset; i < args.length; i++) + { + caseNumbers[i - offset] = Integer.parseInt(args[i]); + } + } + + JettyAutobahnClient client = null; + try + { + String userAgent = "JettyWebsocketClient/" + Jetty.VERSION; + client = new JettyAutobahnClient(hostname, port, userAgent); + + LOG.info("Running test suite..."); + LOG.info("Using Fuzzing Server: {}:{}", hostname, port); + LOG.info("User Agent: {}", userAgent); + + if (caseNumbers == null) + { + int caseCount = client.getCaseCount(); + LOG.info("Will run all {} cases ...", caseCount); + for (int caseNum = 1; caseNum <= caseCount; caseNum++) + { + LOG.info("Running case {} (of {}) ...", caseNum, caseCount); + client.runCaseByNumber(caseNum); + } + } + else + { + LOG.info("Will run %d cases ...", caseNumbers.length); + for (int caseNum : caseNumbers) + { + client.runCaseByNumber(caseNum); + } + } + LOG.info("All test cases executed."); + client.updateReports(); + } + catch (Throwable t) + { + LOG.warn("Test Failed", t); + } + finally + { + if (client != null) + client.shutdown(); + } + } + + private static final Logger LOG = Log.getLogger(JettyAutobahnClient.class); + private URI baseWebsocketUri; + private WebSocketClient client; + private String userAgent; + + public JettyAutobahnClient(String hostname, int port, String userAgent) throws Exception + { + this.userAgent = userAgent; + this.baseWebsocketUri = new URI("ws://" + hostname + ":" + port); + this.client = new WebSocketClient(); + this.client.start(); + } + + public int getCaseCount() throws IOException, InterruptedException + { + URI wsUri = baseWebsocketUri.resolve("/getCaseCount"); + EventSocket onCaseCount = new EventSocket(); + CompletableFuture response = client.connect(onCaseCount, wsUri); + + if (waitForUpgrade(wsUri, response)) + { + String msg = onCaseCount.messageQueue.poll(10, TimeUnit.SECONDS); + onCaseCount.session.close(StatusCode.SHUTDOWN, null); + assertTrue(onCaseCount.closeLatch.await(2, TimeUnit.SECONDS)); + assertNotNull(msg); + return Integer.decode(msg); + } + throw new IllegalStateException("Unable to get Case Count"); + } + + public void runCaseByNumber(int caseNumber) throws IOException, InterruptedException + { + URI wsUri = baseWebsocketUri.resolve("/runCase?case=" + caseNumber + "&agent=" + UrlEncoded.encodeString(userAgent)); + LOG.info("test uri: {}", wsUri); + + EchoSocket echoHandler = new JettyAutobahnSocket(); + Future response = client.connect(echoHandler, wsUri); + if (waitForUpgrade(wsUri, response)) + { + // Wait up to 5 min as some of the tests can take a while + if (!echoHandler.closeLatch.await(5, TimeUnit.MINUTES)) + { + LOG.warn("could not close {}, aborting session", echoHandler); + echoHandler.session.disconnect(); + } + } + } + + public void shutdown() + { + try + { + client.stop(); + } + catch (Exception e) + { + LOG.warn("Unable to stop WebSocketClient", e); + } + } + + public void updateReports() throws IOException, InterruptedException, ExecutionException, TimeoutException + { + URI wsUri = baseWebsocketUri.resolve("/updateReports?agent=" + UrlEncoded.encodeString(userAgent)); + EventSocket onUpdateReports = new EventSocket(); + Future response = client.connect(onUpdateReports, wsUri); + response.get(5, TimeUnit.SECONDS); + assertTrue(onUpdateReports.closeLatch.await(15, TimeUnit.SECONDS)); + LOG.info("Reports updated."); + LOG.info("Test suite finished!"); + } + + private boolean waitForUpgrade(URI wsUri, Future response) + { + try + { + response.get(10, TimeUnit.SECONDS); + return true; + } + catch (Throwable t) + { + LOG.warn("Unable to connect to: " + wsUri, t); + return false; + } + } +} diff --git a/jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/autobahn/JettyAutobahnServer.java b/jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/autobahn/JettyAutobahnServer.java new file mode 100644 index 00000000000..bc5eb25c26a --- /dev/null +++ b/jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/autobahn/JettyAutobahnServer.java @@ -0,0 +1,82 @@ +// +// ======================================================================== +// Copyright (c) 1995-2019 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.websocket.tests.autobahn; + +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.server.ServerConnector; +import org.eclipse.jetty.servlet.ServletContextHandler; +import org.eclipse.jetty.websocket.server.config.JettyWebSocketServletContainerInitializer; + +/** + * WebSocket Server for use with autobahn websocket testsuite (wstest). + *

    + * Installing Autobahn: + *

    + *
    + *    # For Debian / Ubuntu
    + *    $ sudo apt-get install python python-dev python-twisted
    + *    $ sudo apt-get install python-pip
    + *    $ sudo pip install autobahntestsuite
    + *
    + *    # For Fedora / Redhat
    + *    $ sudo yum install python python-dev python-pip twisted
    + *    $ sudo yum install libffi-devel
    + *    $ sudo pip install autobahntestsuite
    + * 
    + *

    + * Upgrading an existing installation of autobahntestsuite + *

    + *
    + *     $ sudo pip install -U autobahntestsuite
    + * 
    + *

    + * Running Autobahn Fuzzing Client (against this server implementation): + *

    + *
    + *     # Change to jetty-websocket-tests directory first.
    + *     $ cd jetty-websocket/jetty-websocket-tests/
    + *     $ wstest --mode=fuzzingclient --spec=fuzzingclient.json
    + *
    + *     # Report output is configured (in the fuzzingclient.json) at location:
    + *     $ ls target/reports/servers/
    + * 
    + */ +public class JettyAutobahnServer +{ + public static void main(String[] args) throws Exception + { + int port = 9001; // same port as found in fuzzing-client.json + if (args != null && args.length > 0) + port = Integer.parseInt(args[0]); + + Server server = new Server(port); + ServerConnector connector = new ServerConnector(server); + connector.setIdleTimeout(10000); + server.addConnector(connector); + ServletContextHandler context = new ServletContextHandler(); + context.setContextPath("/"); + server.setHandler(context); + + JettyWebSocketServletContainerInitializer.configure(context, (servletContext, container)-> + container.addMapping("/", (req, resp) -> new JettyAutobahnSocket())); + + server.start(); + server.join(); + } +} diff --git a/jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/autobahn/JettyAutobahnSocket.java b/jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/autobahn/JettyAutobahnSocket.java new file mode 100644 index 00000000000..d1d99cf659a --- /dev/null +++ b/jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/autobahn/JettyAutobahnSocket.java @@ -0,0 +1,37 @@ +// +// ======================================================================== +// Copyright (c) 1995-2019 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.websocket.tests.autobahn; + +import org.eclipse.jetty.websocket.api.Session; +import org.eclipse.jetty.websocket.api.annotations.WebSocket; +import org.eclipse.jetty.websocket.core.WebSocketConstants; +import org.eclipse.jetty.websocket.tests.EchoSocket; + +@WebSocket +public class JettyAutobahnSocket extends EchoSocket +{ + @Override + public void onOpen(Session session) + { + super.onOpen(session); + session.setMaxTextMessageSize(Long.MAX_VALUE); + session.setMaxBinaryMessageSize(Long.MAX_VALUE); + session.setMaxFrameSize(WebSocketConstants.DEFAULT_MAX_FRAME_SIZE*2); + } +} diff --git a/jetty-websocket/websocket-core/pom.xml b/jetty-websocket/websocket-core/pom.xml index 1e3067f593b..60879dcaa46 100644 --- a/jetty-websocket/websocket-core/pom.xml +++ b/jetty-websocket/websocket-core/pom.xml @@ -141,7 +141,7 @@ - org.eclipse.jetty.websocket.core.autobahn.AutobahnWebSocketServer + org.eclipse.jetty.websocket.core.autobahn.CoreAutobahnServer diff --git a/jetty-websocket/websocket-core/src/test/java/org/eclipse/jetty/websocket/core/WebSocketNegotiationTest.java b/jetty-websocket/websocket-core/src/test/java/org/eclipse/jetty/websocket/core/WebSocketNegotiationTest.java index 848724c5e05..ce78b1cf86f 100644 --- a/jetty-websocket/websocket-core/src/test/java/org/eclipse/jetty/websocket/core/WebSocketNegotiationTest.java +++ b/jetty-websocket/websocket-core/src/test/java/org/eclipse/jetty/websocket/core/WebSocketNegotiationTest.java @@ -48,6 +48,7 @@ import org.junit.jupiter.api.Test; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.not; import static org.hamcrest.Matchers.startsWith; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -104,6 +105,7 @@ public class WebSocketNegotiationTest extends WebSocketTester break; case "test": + case "testExtensionThatDoesNotExist": case "testInvalidExtensionParameter": case "testAcceptTwoExtensionsOfSameName": case "testInvalidUpgradeRequest": @@ -239,6 +241,23 @@ public class WebSocketNegotiationTest extends WebSocketTester assertNull(extensionHeader.get(5, TimeUnit.SECONDS)); } + @Test + public void testExtensionThatDoesNotExist() throws Exception + { + Socket client = new Socket(); + client.connect(new InetSocketAddress("127.0.0.1", server.getLocalPort())); + + HttpFields httpFields = newUpgradeRequest("nonExistentExtensionName"); + String upgradeRequest = "GET / HTTP/1.1\r\n" + httpFields; + client.getOutputStream().write(upgradeRequest.getBytes(StandardCharsets.ISO_8859_1)); + String response = getUpgradeResponse(client.getInputStream()); + + assertThat(response, startsWith("HTTP/1.1 101 Switching Protocols")); + assertThat(response, containsString("Sec-WebSocket-Protocol: test")); + assertThat(response, containsString("Sec-WebSocket-Accept: +WahVcVmeMLKQUMm0fvPrjSjwzI=")); + assertThat(response, not(containsString(HttpHeader.SEC_WEBSOCKET_EXTENSIONS.asString()))); + } + @Test public void testAcceptTwoExtensionsOfSameName() throws Exception { diff --git a/jetty-websocket/websocket-core/src/test/java/org/eclipse/jetty/websocket/core/autobahn/AutobahnWebSocketClient.java b/jetty-websocket/websocket-core/src/test/java/org/eclipse/jetty/websocket/core/autobahn/CoreAutobahnClient.java similarity index 95% rename from jetty-websocket/websocket-core/src/test/java/org/eclipse/jetty/websocket/core/autobahn/AutobahnWebSocketClient.java rename to jetty-websocket/websocket-core/src/test/java/org/eclipse/jetty/websocket/core/autobahn/CoreAutobahnClient.java index 62291bb8684..6503abf72ea 100644 --- a/jetty-websocket/websocket-core/src/test/java/org/eclipse/jetty/websocket/core/autobahn/AutobahnWebSocketClient.java +++ b/jetty-websocket/websocket-core/src/test/java/org/eclipse/jetty/websocket/core/autobahn/CoreAutobahnClient.java @@ -62,7 +62,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; * Running Autobahn Fuzzing Server (which you run this client implementation against): *

    *
    - *     # Change to websocket-core
    + *     # Change to websocket-core first
      *     $ cd jetty-websocket/websocket-core
      *     $ wstest --mode=fuzzingserver --spec=fuzzingserver.json
      *
    @@ -70,7 +70,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
      *     $ ls target/reports/clients/
      * 
    */ -public class AutobahnWebSocketClient +public class CoreAutobahnClient { public static void main(String[] args) { @@ -95,11 +95,11 @@ public class AutobahnWebSocketClient } } - AutobahnWebSocketClient client = null; + CoreAutobahnClient client = null; try { String userAgent = "JettyWebsocketClient/" + Jetty.VERSION; - client = new AutobahnWebSocketClient(hostname, port, userAgent); + client = new CoreAutobahnClient(hostname, port, userAgent); LOG.info("Running test suite..."); LOG.info("Using Fuzzing Server: {}:{}", hostname, port); @@ -137,12 +137,12 @@ public class AutobahnWebSocketClient } } - private static final Logger LOG = Log.getLogger(AutobahnWebSocketClient.class); + private static final Logger LOG = Log.getLogger(CoreAutobahnClient.class); private URI baseWebsocketUri; private WebSocketCoreClient client; private String userAgent; - public AutobahnWebSocketClient(String hostname, int port, String userAgent) throws Exception + public CoreAutobahnClient(String hostname, int port, String userAgent) throws Exception { this.userAgent = userAgent; this.baseWebsocketUri = new URI("ws://" + hostname + ":" + port); diff --git a/jetty-websocket/websocket-core/src/test/java/org/eclipse/jetty/websocket/core/autobahn/AutobahnWebSocketServer.java b/jetty-websocket/websocket-core/src/test/java/org/eclipse/jetty/websocket/core/autobahn/CoreAutobahnServer.java similarity index 98% rename from jetty-websocket/websocket-core/src/test/java/org/eclipse/jetty/websocket/core/autobahn/AutobahnWebSocketServer.java rename to jetty-websocket/websocket-core/src/test/java/org/eclipse/jetty/websocket/core/autobahn/CoreAutobahnServer.java index 9f1978534d1..93ba4f58346 100644 --- a/jetty-websocket/websocket-core/src/test/java/org/eclipse/jetty/websocket/core/autobahn/AutobahnWebSocketServer.java +++ b/jetty-websocket/websocket-core/src/test/java/org/eclipse/jetty/websocket/core/autobahn/CoreAutobahnServer.java @@ -57,7 +57,7 @@ import org.eclipse.jetty.websocket.core.server.WebSocketUpgradeHandler; * $ ls target/reports/servers/ * */ -public class AutobahnWebSocketServer +public class CoreAutobahnServer { public static void main(String[] args) throws Exception { diff --git a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/ServletUpgradeResponse.java b/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/ServletUpgradeResponse.java index 15ac69ba78e..af915587669 100644 --- a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/ServletUpgradeResponse.java +++ b/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/ServletUpgradeResponse.java @@ -176,7 +176,7 @@ public class ServletUpgradeResponse if (matches < 1) throw new IllegalArgumentException("Extension not a requested extension"); - matches = negotiation.getNegotiatedExtensions().stream().filter(e -> e.getName().equals(config.getName())).count(); + matches = configs.stream().filter(e -> e.getName().equals(config.getName())).count(); if (matches > 1) throw new IllegalArgumentException("Multiple extensions of the same name"); } From 64a916e6eca54c1006079c194210bbe818a0c1a5 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Thu, 7 Nov 2019 05:11:48 -0600 Subject: [PATCH 28/34] Issue #4173 - use JarFileResource's Jar java.io.File object if present Signed-off-by: Joakim Erdfelt --- .../org/eclipse/jetty/util/resource/JarFileResource.java | 3 +-- .../java/org/eclipse/jetty/webapp/WebInfConfiguration.java | 6 ++++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarFileResource.java b/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarFileResource.java index eea92e9f19d..0e8b7c42d27 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarFileResource.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarFileResource.java @@ -405,8 +405,7 @@ public class JarFileResource extends JarResource return url.sameFile(resource.getURI().toURL()); } - @Override - public File getFile() + public File getJarFile() { if (_file != null) return _file; diff --git a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java index 08fcccbe4dc..0d3205f5fed 100644 --- a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java +++ b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebInfConfiguration.java @@ -42,6 +42,7 @@ import org.eclipse.jetty.util.StringUtil; import org.eclipse.jetty.util.URIUtil; import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Logger; +import org.eclipse.jetty.util.resource.JarFileResource; import org.eclipse.jetty.util.resource.JarResource; import org.eclipse.jetty.util.resource.Resource; import org.eclipse.jetty.util.resource.ResourceCollection; @@ -814,6 +815,11 @@ public class WebInfConfiguration extends AbstractConfiguration try { File resourceFile = resource.getFile(); + if ((resourceFile != null) && (resource instanceof JarFileResource)) + { + resourceFile = ((JarFileResource)resource).getJarFile(); + } + if (resourceFile != null) { return resourceFile.getName(); From c8e09a1026f60f88f9b324d92c378d0b661411d2 Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Fri, 8 Nov 2019 07:13:51 +1100 Subject: [PATCH 29/34] Issue #4284 NPE guard on exception Signed-off-by: Greg Wilkins --- jetty-start/src/main/java/org/eclipse/jetty/start/Main.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/Main.java b/jetty-start/src/main/java/org/eclipse/jetty/start/Main.java index 5e4a86b8a19..18bee82f722 100644 --- a/jetty-start/src/main/java/org/eclipse/jetty/start/Main.java +++ b/jetty-start/src/main/java/org/eclipse/jetty/start/Main.java @@ -603,11 +603,11 @@ public class Main } catch (ConnectException e) { - usageExit(e, ERR_NOT_STOPPED, jsvcStartArgs.isTestingModeEnabled()); + usageExit(e, ERR_NOT_STOPPED, jsvcStartArgs != null && jsvcStartArgs.isTestingModeEnabled()); } catch (Exception e) { - usageExit(e, ERR_UNKNOWN, jsvcStartArgs.isTestingModeEnabled()); + usageExit(e, ERR_UNKNOWN, jsvcStartArgs != null && jsvcStartArgs.isTestingModeEnabled()); } } From b119a8f59f064877cb54cc11efe8e9320431994b Mon Sep 17 00:00:00 2001 From: Simone Bordet Date: Thu, 7 Nov 2019 22:24:08 +0100 Subject: [PATCH 30/34] Fixed tests that were trying to connecting to 0.0.0.1. On new Linux kernels, at least, trying to connect to 0.0.0.1 hangs, while before it was failing immediately. The tests have now a short connect timeout to avoid to hang. Signed-off-by: Simone Bordet --- .../jetty/http/client/HttpClientStreamTest.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tests/test-http-client-transport/src/test/java/org/eclipse/jetty/http/client/HttpClientStreamTest.java b/tests/test-http-client-transport/src/test/java/org/eclipse/jetty/http/client/HttpClientStreamTest.java index d413a29972f..f56e260a255 100644 --- a/tests/test-http-client-transport/src/test/java/org/eclipse/jetty/http/client/HttpClientStreamTest.java +++ b/tests/test-http-client-transport/src/test/java/org/eclipse/jetty/http/client/HttpClientStreamTest.java @@ -988,7 +988,9 @@ public class HttpClientStreamTest extends AbstractTest public void testUploadWithOutputStreamFailureToConnect(Transport transport) throws Exception { init(transport); - scenario.start(new EmptyServerHandler()); + + long connectTimeout = 1000; + scenario.start(new EmptyServerHandler(), httpClient -> httpClient.setConnectTimeout(connectTimeout)); final byte[] data = new byte[512]; final CountDownLatch latch = new CountDownLatch(1); @@ -1013,7 +1015,7 @@ public class HttpClientStreamTest extends AbstractTest } }); - assertTrue(latch.await(5, TimeUnit.SECONDS)); + assertTrue(latch.await(2 * connectTimeout, TimeUnit.SECONDS)); } @ParameterizedTest @@ -1070,7 +1072,9 @@ public class HttpClientStreamTest extends AbstractTest public void testUploadWithConnectFailureClosesStream(Transport transport) throws Exception { init(transport); - scenario.start(new EmptyServerHandler()); + + long connectTimeout = 1000; + scenario.start(new EmptyServerHandler(), httpClient -> httpClient.setConnectTimeout(connectTimeout)); final CountDownLatch closeLatch = new CountDownLatch(1); InputStream stream = new ByteArrayInputStream("test".getBytes(StandardCharsets.UTF_8)) @@ -1097,7 +1101,7 @@ public class HttpClientStreamTest extends AbstractTest completeLatch.countDown(); }); - assertTrue(completeLatch.await(5, TimeUnit.SECONDS)); + assertTrue(completeLatch.await(2 * connectTimeout, TimeUnit.SECONDS)); assertTrue(closeLatch.await(5, TimeUnit.SECONDS)); } From e37524c8a75de04839d28f9a4c72ea46a171cb88 Mon Sep 17 00:00:00 2001 From: Simone Bordet Date: Fri, 8 Nov 2019 08:54:49 +0100 Subject: [PATCH 31/34] Code cleanup. Signed-off-by: Simone Bordet --- .../eclipse/jetty/http/HttpParserTest.java | 700 +++++++++--------- 1 file changed, 349 insertions(+), 351 deletions(-) diff --git a/jetty-http/src/test/java/org/eclipse/jetty/http/HttpParserTest.java b/jetty-http/src/test/java/org/eclipse/jetty/http/HttpParserTest.java index 3a90155b8a9..b6244fa6143 100644 --- a/jetty-http/src/test/java/org/eclipse/jetty/http/HttpParserTest.java +++ b/jetty-http/src/test/java/org/eclipse/jetty/http/HttpParserTest.java @@ -42,6 +42,7 @@ import static org.hamcrest.Matchers.nullValue; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; import static org.junit.jupiter.api.Assertions.assertTrue; public class HttpParserTest @@ -97,7 +98,7 @@ public class HttpParserTest } @Test - public void testLineParseMockIP() throws Exception + public void testLineParseMockIP() { ByteBuffer buffer = BufferUtil.toBuffer("POST /mock/127.0.0.1 HTTP/1.1\r\n" + "\r\n"); @@ -111,7 +112,7 @@ public class HttpParserTest } @Test - public void testLineParse0() throws Exception + public void testLineParse0() { ByteBuffer buffer = BufferUtil.toBuffer("POST /foo HTTP/1.0\r\n" + "\r\n"); @@ -125,7 +126,7 @@ public class HttpParserTest } @Test - public void testLineParse1RFC2616() throws Exception + public void testLineParse1RFC2616() { ByteBuffer buffer = BufferUtil.toBuffer("GET /999\r\n"); @@ -142,7 +143,7 @@ public class HttpParserTest } @Test - public void testLineParse1() throws Exception + public void testLineParse1() { ByteBuffer buffer = BufferUtil.toBuffer("GET /999\r\n"); @@ -154,7 +155,7 @@ public class HttpParserTest } @Test - public void testLineParse2RFC2616() throws Exception + public void testLineParse2RFC2616() { ByteBuffer buffer = BufferUtil.toBuffer("POST /222 \r\n"); @@ -171,7 +172,7 @@ public class HttpParserTest } @Test - public void testLineParse2() throws Exception + public void testLineParse2() { ByteBuffer buffer = BufferUtil.toBuffer("POST /222 \r\n"); @@ -184,7 +185,7 @@ public class HttpParserTest } @Test - public void testLineParse3() throws Exception + public void testLineParse3() { ByteBuffer buffer = BufferUtil.toBuffer("POST /fo\u0690 HTTP/1.0\r\n" + "\r\n", StandardCharsets.UTF_8); @@ -198,7 +199,7 @@ public class HttpParserTest } @Test - public void testLineParse4() throws Exception + public void testLineParse4() { ByteBuffer buffer = BufferUtil.toBuffer("POST /foo?param=\u0690 HTTP/1.0\r\n" + "\r\n", StandardCharsets.UTF_8); @@ -212,7 +213,7 @@ public class HttpParserTest } @Test - public void testLongURLParse() throws Exception + public void testLongURLParse() { ByteBuffer buffer = BufferUtil.toBuffer("POST /123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/ HTTP/1.0\r\n" + "\r\n"); @@ -226,7 +227,7 @@ public class HttpParserTest } @Test - public void testAllowedLinePreamble() throws Exception + public void testAllowedLinePreamble() { ByteBuffer buffer = BufferUtil.toBuffer("\r\n\r\nGET / HTTP/1.0\r\n"); @@ -240,7 +241,7 @@ public class HttpParserTest } @Test - public void testDisallowedLinePreamble() throws Exception + public void testDisallowedLinePreamble() { ByteBuffer buffer = BufferUtil.toBuffer("\r\n \r\nGET / HTTP/1.0\r\n"); @@ -251,7 +252,7 @@ public class HttpParserTest } @Test - public void testConnect() throws Exception + public void testConnect() { ByteBuffer buffer = BufferUtil.toBuffer("CONNECT 192.168.1.2:80 HTTP/1.1\r\n" + "\r\n"); HttpParser.RequestHandler handler = new Handler(); @@ -264,7 +265,7 @@ public class HttpParserTest } @Test - public void testSimple() throws Exception + public void testSimple() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.0\r\n" + @@ -289,7 +290,7 @@ public class HttpParserTest } @Test - public void testFoldedField2616() throws Exception + public void testFoldedField2616() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.0\r\n" + @@ -316,7 +317,7 @@ public class HttpParserTest } @Test - public void testFoldedField7230() throws Exception + public void testFoldedField7230() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.0\r\n" + @@ -335,7 +336,7 @@ public class HttpParserTest } @Test - public void testWhiteSpaceInName() throws Exception + public void testWhiteSpaceInName() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.0\r\n" + @@ -352,7 +353,7 @@ public class HttpParserTest } @Test - public void testWhiteSpaceAfterName() throws Exception + public void testWhiteSpaceAfterName() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.0\r\n" + @@ -393,10 +394,8 @@ public class HttpParserTest {" \r \t \r\n\r\n\r\n", "Illegal character SPACE"} }; - for (int i = 0; i < compliances.length; i++) + for (HttpCompliance compliance : compliances) { - HttpCompliance compliance = compliances[i]; - for (int j = 0; j < whitespaces.length; j++) { String request = @@ -424,7 +423,7 @@ public class HttpParserTest } @Test - public void testNoValue() throws Exception + public void testNoValue() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.0\r\n" + @@ -452,7 +451,7 @@ public class HttpParserTest } @Test - public void testSpaceinNameCustom0() throws Exception + public void testSpaceinNameCustom0() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.0\r\n" + @@ -470,7 +469,7 @@ public class HttpParserTest } @Test - public void testNoColonCustom0() throws Exception + public void testNoColonCustom0() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.0\r\n" + @@ -488,7 +487,7 @@ public class HttpParserTest } @Test - public void testTrailingSpacesInHeaderNameInCustom0Mode() throws Exception + public void testTrailingSpacesInHeaderNameInCustom0Mode() { ByteBuffer buffer = BufferUtil.toBuffer( "HTTP/1.1 204 No Content\r\n" + @@ -506,7 +505,7 @@ public class HttpParserTest assertEquals("HTTP/1.1", _methodOrVersion); assertEquals("204", _uriOrStatus); assertEquals("No Content", _versionOrReason); - assertEquals(null, _content); + assertNull(_content); assertEquals(1, _headers); System.out.println(Arrays.asList(_hdr)); @@ -520,7 +519,7 @@ public class HttpParserTest } @Test - public void testTrailingSpacesInHeaderNameNoCustom0() throws Exception + public void testTrailingSpacesInHeaderNameNoCustom0() { ByteBuffer buffer = BufferUtil.toBuffer( "HTTP/1.1 204 No Content\r\n" + @@ -539,7 +538,7 @@ public class HttpParserTest } @Test - public void testNoColon7230() throws Exception + public void testNoColon7230() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.0\r\n" + @@ -555,7 +554,7 @@ public class HttpParserTest } @Test - public void testHeaderParseDirect() throws Exception + public void testHeaderParseDirect() { ByteBuffer b0 = BufferUtil.toBuffer( "GET / HTTP/1.0\r\n" + @@ -606,7 +605,7 @@ public class HttpParserTest } @Test - public void testHeaderParseCRLF() throws Exception + public void testHeaderParseCRLF() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.0\r\n" + @@ -652,7 +651,7 @@ public class HttpParserTest } @Test - public void testHeaderParseLF() throws Exception + public void testHeaderParseLF() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.0\n" + @@ -698,7 +697,7 @@ public class HttpParserTest } @Test - public void testQuoted() throws Exception + public void testQuoted() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.0\n" + @@ -723,7 +722,7 @@ public class HttpParserTest } @Test - public void testEncodedHeader() throws Exception + public void testEncodedHeader() { ByteBuffer buffer = BufferUtil.allocate(4096); BufferUtil.flipToFill(buffer); @@ -749,11 +748,11 @@ public class HttpParserTest assertEquals("Header2", _hdr[1]); assertEquals("" + (char)255, _val[1]); assertEquals(1, _headers); - assertEquals(null, _bad); + assertNull(_bad); } @Test - public void testResponseBufferUpgradeFrom() throws Exception + public void testResponseBufferUpgradeFrom() { ByteBuffer buffer = BufferUtil.toBuffer( "HTTP/1.1 101 Upgrade\r\n" + @@ -775,7 +774,7 @@ public class HttpParserTest } @Test - public void testBadMethodEncoding() throws Exception + public void testBadMethodEncoding() { ByteBuffer buffer = BufferUtil.toBuffer( "G\u00e6T / HTTP/1.0\r\nHeader0: value0\r\n\n\n"); @@ -787,7 +786,7 @@ public class HttpParserTest } @Test - public void testBadVersionEncoding() throws Exception + public void testBadVersionEncoding() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / H\u00e6P/1.0\r\nHeader0: value0\r\n\n\n"); @@ -799,12 +798,12 @@ public class HttpParserTest } @Test - public void testBadHeaderEncoding() throws Exception + public void testBadHeaderEncoding() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.0\r\n" + - "H\u00e6der0: value0\r\n" + - "\n\n"); + "H\u00e6der0: value0\r\n" + + "\n\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -813,7 +812,7 @@ public class HttpParserTest } @Test // TODO: Parameterize Test - public void testBadHeaderNames() throws Exception + public void testBadHeaderNames() { String[] bad = new String[] { @@ -832,22 +831,22 @@ public class HttpParserTest "Foo/Bar: value\r\n", "Foo]Bar: value\r\n", "Foo[Bar: value\r\n", - }; + }; - for (int i = 0; i < bad.length; i++) + for (String s : bad) { ByteBuffer buffer = BufferUtil.toBuffer( - "GET / HTTP/1.0\r\n" + bad[i] + "\r\n"); + "GET / HTTP/1.0\r\n" + s + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); parseAll(parser, buffer); - assertThat(bad[i], _bad, Matchers.notNullValue()); + assertThat(s, _bad, Matchers.notNullValue()); } } @Test - public void testHeaderTab() throws Exception + public void testHeaderTab() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.1\r\n" + @@ -869,7 +868,7 @@ public class HttpParserTest } @Test - public void testCaseSensitiveMethod() throws Exception + public void testCaseSensitiveMethod() { ByteBuffer buffer = BufferUtil.toBuffer( "gEt / http/1.0\r\n" + @@ -885,7 +884,7 @@ public class HttpParserTest } @Test - public void testCaseSensitiveMethodLegacy() throws Exception + public void testCaseSensitiveMethodLegacy() { ByteBuffer buffer = BufferUtil.toBuffer( "gEt / http/1.0\r\n" + @@ -901,7 +900,7 @@ public class HttpParserTest } @Test - public void testCaseInsensitiveHeader() throws Exception + public void testCaseInsensitiveHeader() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / http/1.0\r\n" + @@ -924,7 +923,7 @@ public class HttpParserTest } @Test - public void testCaseInSensitiveHeaderLegacy() throws Exception + public void testCaseInSensitiveHeaderLegacy() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / http/1.0\r\n" + @@ -947,7 +946,7 @@ public class HttpParserTest } @Test - public void testSplitHeaderParse() throws Exception + public void testSplitHeaderParse() { ByteBuffer buffer = BufferUtil.toBuffer( "XXXXSPLIT / HTTP/1.0\r\n" + @@ -1000,19 +999,19 @@ public class HttpParserTest } @Test - public void testChunkParse() throws Exception + public void testChunkParse() { ByteBuffer buffer = BufferUtil.toBuffer( "GET /chunk HTTP/1.0\r\n" + - "Header1: value1\r\n" + - "Transfer-Encoding: chunked\r\n" + - "\r\n" + - "a;\r\n" + - "0123456789\r\n" + - "1a\r\n" + - "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n" + - "0\r\n" + - "\r\n"); + "Header1: value1\r\n" + + "Transfer-Encoding: chunked\r\n" + + "\r\n" + + "a;\r\n" + + "0123456789\r\n" + + "1a\r\n" + + "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n" + + "0\r\n" + + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); parseAll(parser, buffer); @@ -1030,19 +1029,19 @@ public class HttpParserTest } @Test - public void testBadChunkParse() throws Exception + public void testBadChunkParse() { ByteBuffer buffer = BufferUtil.toBuffer( - "GET /chunk HTTP/1.0\r\n" + - "Header1: value1\r\n" + - "Transfer-Encoding: chunked, identity\r\n" + - "\r\n" + - "a;\r\n" + - "0123456789\r\n" + - "1a\r\n" + - "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n" + - "0\r\n" + - "\r\n"); + "GET /chunk HTTP/1.0\r\n" + + "Header1: value1\r\n" + + "Transfer-Encoding: chunked, identity\r\n" + + "\r\n" + + "a;\r\n" + + "0123456789\r\n" + + "1a\r\n" + + "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n" + + "0\r\n" + + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); parseAll(parser, buffer); @@ -1054,20 +1053,20 @@ public class HttpParserTest } @Test - public void testChunkParseTrailer() throws Exception + public void testChunkParseTrailer() { ByteBuffer buffer = BufferUtil.toBuffer( "GET /chunk HTTP/1.0\r\n" + - "Header1: value1\r\n" + - "Transfer-Encoding: chunked\r\n" + - "\r\n" + - "a;\r\n" + - "0123456789\r\n" + - "1a\r\n" + - "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n" + - "0\r\n" + - "Trailer: value\r\n" + - "\r\n"); + "Header1: value1\r\n" + + "Transfer-Encoding: chunked\r\n" + + "\r\n" + + "a;\r\n" + + "0123456789\r\n" + + "1a\r\n" + + "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n" + + "0\r\n" + + "Trailer: value\r\n" + + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); parseAll(parser, buffer); @@ -1089,20 +1088,20 @@ public class HttpParserTest } @Test - public void testChunkParseTrailers() throws Exception + public void testChunkParseTrailers() { ByteBuffer buffer = BufferUtil.toBuffer( "GET /chunk HTTP/1.0\r\n" + - "Transfer-Encoding: chunked\r\n" + - "\r\n" + - "a;\r\n" + - "0123456789\r\n" + - "1a\r\n" + - "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n" + - "0\r\n" + - "Trailer: value\r\n" + - "Foo: bar\r\n" + - "\r\n"); + "Transfer-Encoding: chunked\r\n" + + "\r\n" + + "a;\r\n" + + "0123456789\r\n" + + "1a\r\n" + + "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n" + + "0\r\n" + + "Trailer: value\r\n" + + "Foo: bar\r\n" + + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); parseAll(parser, buffer); @@ -1127,19 +1126,19 @@ public class HttpParserTest } @Test - public void testChunkParseBadTrailer() throws Exception + public void testChunkParseBadTrailer() { ByteBuffer buffer = BufferUtil.toBuffer( "GET /chunk HTTP/1.0\r\n" + - "Header1: value1\r\n" + - "Transfer-Encoding: chunked\r\n" + - "\r\n" + - "a;\r\n" + - "0123456789\r\n" + - "1a\r\n" + - "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n" + - "0\r\n" + - "Trailer: value"); + "Header1: value1\r\n" + + "Transfer-Encoding: chunked\r\n" + + "\r\n" + + "a;\r\n" + + "0123456789\r\n" + + "1a\r\n" + + "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n" + + "0\r\n" + + "Trailer: value"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); parseAll(parser, buffer); @@ -1159,18 +1158,18 @@ public class HttpParserTest } @Test - public void testChunkParseNoTrailer() throws Exception + public void testChunkParseNoTrailer() { ByteBuffer buffer = BufferUtil.toBuffer( "GET /chunk HTTP/1.0\r\n" + - "Header1: value1\r\n" + - "Transfer-Encoding: chunked\r\n" + - "\r\n" + - "a;\r\n" + - "0123456789\r\n" + - "1a\r\n" + - "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n" + - "0\r\n"); + "Header1: value1\r\n" + + "Transfer-Encoding: chunked\r\n" + + "\r\n" + + "a;\r\n" + + "0123456789\r\n" + + "1a\r\n" + + "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n" + + "0\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); parseAll(parser, buffer); @@ -1190,7 +1189,7 @@ public class HttpParserTest } @Test - public void testStartEOF() throws Exception + public void testStartEOF() { HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -1198,17 +1197,17 @@ public class HttpParserTest parser.parseNext(BufferUtil.EMPTY_BUFFER); assertTrue(_early); - assertEquals(null, _bad); + assertNull(_bad); } @Test - public void testEarlyEOF() throws Exception + public void testEarlyEOF() { ByteBuffer buffer = BufferUtil.toBuffer( "GET /uri HTTP/1.0\r\n" + - "Content-Length: 20\r\n" + - "\r\n" + - "0123456789"); + "Content-Length: 20\r\n" + + "\r\n" + + "0123456789"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); parser.atEOF(); @@ -1223,15 +1222,15 @@ public class HttpParserTest } @Test - public void testChunkEarlyEOF() throws Exception + public void testChunkEarlyEOF() { ByteBuffer buffer = BufferUtil.toBuffer( "GET /chunk HTTP/1.0\r\n" + - "Header1: value1\r\n" + - "Transfer-Encoding: chunked\r\n" + - "\r\n" + - "a;\r\n" + - "0123456789\r\n"); + "Header1: value1\r\n" + + "Transfer-Encoding: chunked\r\n" + + "\r\n" + + "a;\r\n" + + "0123456789\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); parser.atEOF(); @@ -1249,34 +1248,34 @@ public class HttpParserTest } @Test - public void testMultiParse() throws Exception + public void testMultiParse() { ByteBuffer buffer = BufferUtil.toBuffer( "GET /mp HTTP/1.0\r\n" + - "Connection: Keep-Alive\r\n" + - "Header1: value1\r\n" + - "Transfer-Encoding: chunked\r\n" + - "\r\n" + - "a;\r\n" + - "0123456789\r\n" + - "1a\r\n" + - "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n" + - "0\r\n" + + "Connection: Keep-Alive\r\n" + + "Header1: value1\r\n" + + "Transfer-Encoding: chunked\r\n" + + "\r\n" + + "a;\r\n" + + "0123456789\r\n" + + "1a\r\n" + + "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n" + + "0\r\n" + - "\r\n" + + "\r\n" + - "POST /foo HTTP/1.0\r\n" + - "Connection: Keep-Alive\r\n" + - "Header2: value2\r\n" + - "Content-Length: 0\r\n" + - "\r\n" + + "POST /foo HTTP/1.0\r\n" + + "Connection: Keep-Alive\r\n" + + "Header2: value2\r\n" + + "Content-Length: 0\r\n" + + "\r\n" + - "PUT /doodle HTTP/1.0\r\n" + - "Connection: close\r\n" + - "Header3: value3\r\n" + - "Content-Length: 10\r\n" + - "\r\n" + - "0123456789\r\n"); + "PUT /doodle HTTP/1.0\r\n" + + "Connection: close\r\n" + + "Header3: value3\r\n" + + "Content-Length: 10\r\n" + + "\r\n" + + "0123456789\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -1298,7 +1297,7 @@ public class HttpParserTest assertEquals(2, _headers); assertEquals("Header2", _hdr[1]); assertEquals("value2", _val[1]); - assertEquals(null, _content); + assertNull(_content); parser.reset(); init(); @@ -1314,34 +1313,34 @@ public class HttpParserTest } @Test - public void testMultiParseEarlyEOF() throws Exception + public void testMultiParseEarlyEOF() { ByteBuffer buffer0 = BufferUtil.toBuffer( "GET /mp HTTP/1.0\r\n" + - "Connection: Keep-Alive\r\n"); + "Connection: Keep-Alive\r\n"); ByteBuffer buffer1 = BufferUtil.toBuffer("Header1: value1\r\n" + - "Transfer-Encoding: chunked\r\n" + - "\r\n" + - "a;\r\n" + - "0123456789\r\n" + - "1a\r\n" + - "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n" + - "0\r\n" + + "Transfer-Encoding: chunked\r\n" + + "\r\n" + + "a;\r\n" + + "0123456789\r\n" + + "1a\r\n" + + "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n" + + "0\r\n" + - "\r\n" + + "\r\n" + - "POST /foo HTTP/1.0\r\n" + - "Connection: Keep-Alive\r\n" + - "Header2: value2\r\n" + - "Content-Length: 0\r\n" + - "\r\n" + + "POST /foo HTTP/1.0\r\n" + + "Connection: Keep-Alive\r\n" + + "Header2: value2\r\n" + + "Content-Length: 0\r\n" + + "\r\n" + - "PUT /doodle HTTP/1.0\r\n" + - "Connection: close\r\n" + "Header3: value3\r\n" + - "Content-Length: 10\r\n" + - "\r\n" + - "0123456789\r\n"); + "PUT /doodle HTTP/1.0\r\n" + + "Connection: close\r\n" + "Header3: value3\r\n" + + "Content-Length: 10\r\n" + + "\r\n" + + "0123456789\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -1365,7 +1364,7 @@ public class HttpParserTest assertEquals(2, _headers); assertEquals("Header2", _hdr[1]); assertEquals("value2", _val[1]); - assertEquals(null, _content); + assertNull(_content); parser.reset(); init(); @@ -1380,14 +1379,14 @@ public class HttpParserTest } @Test - public void testResponseParse0() throws Exception + public void testResponseParse0() { ByteBuffer buffer = BufferUtil.toBuffer( "HTTP/1.1 200 Correct\r\n" + - "Content-Length: 10\r\n" + - "Content-Type: text/plain\r\n" + - "\r\n" + - "0123456789\r\n"); + "Content-Length: 10\r\n" + + "Content-Type: text/plain\r\n" + + "\r\n" + + "0123456789\r\n"); HttpParser.ResponseHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -1401,12 +1400,12 @@ public class HttpParserTest } @Test - public void testResponseParse1() throws Exception + public void testResponseParse1() { ByteBuffer buffer = BufferUtil.toBuffer( "HTTP/1.1 304 Not-Modified\r\n" + - "Connection: close\r\n" + - "\r\n"); + "Connection: close\r\n" + + "\r\n"); HttpParser.ResponseHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -1419,18 +1418,18 @@ public class HttpParserTest } @Test - public void testResponseParse2() throws Exception + public void testResponseParse2() { ByteBuffer buffer = BufferUtil.toBuffer( "HTTP/1.1 204 No-Content\r\n" + - "Header: value\r\n" + - "\r\n" + + "Header: value\r\n" + + "\r\n" + - "HTTP/1.1 200 Correct\r\n" + - "Content-Length: 10\r\n" + - "Content-Type: text/plain\r\n" + - "\r\n" + - "0123456789\r\n"); + "HTTP/1.1 200 Correct\r\n" + + "Content-Length: 10\r\n" + + "Content-Type: text/plain\r\n" + + "\r\n" + + "0123456789\r\n"); HttpParser.ResponseHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -1455,55 +1454,55 @@ public class HttpParserTest } @Test - public void testResponseParse3() throws Exception + public void testResponseParse3() { ByteBuffer buffer = BufferUtil.toBuffer( "HTTP/1.1 200\r\n" + - "Content-Length: 10\r\n" + - "Content-Type: text/plain\r\n" + - "\r\n" + - "0123456789\r\n"); + "Content-Length: 10\r\n" + + "Content-Type: text/plain\r\n" + + "\r\n" + + "0123456789\r\n"); HttpParser.ResponseHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); parser.parseNext(buffer); assertEquals("HTTP/1.1", _methodOrVersion); assertEquals("200", _uriOrStatus); - assertEquals(null, _versionOrReason); + assertNull(_versionOrReason); assertEquals(_content.length(), 10); assertTrue(_headerCompleted); assertTrue(_messageCompleted); } @Test - public void testResponseParse4() throws Exception + public void testResponseParse4() { ByteBuffer buffer = BufferUtil.toBuffer( "HTTP/1.1 200 \r\n" + - "Content-Length: 10\r\n" + - "Content-Type: text/plain\r\n" + - "\r\n" + - "0123456789\r\n"); + "Content-Length: 10\r\n" + + "Content-Type: text/plain\r\n" + + "\r\n" + + "0123456789\r\n"); HttpParser.ResponseHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); parser.parseNext(buffer); assertEquals("HTTP/1.1", _methodOrVersion); assertEquals("200", _uriOrStatus); - assertEquals(null, _versionOrReason); + assertNull(_versionOrReason); assertEquals(_content.length(), 10); assertTrue(_headerCompleted); assertTrue(_messageCompleted); } @Test - public void testResponseEOFContent() throws Exception + public void testResponseEOFContent() { ByteBuffer buffer = BufferUtil.toBuffer( "HTTP/1.1 200 \r\n" + - "Content-Type: text/plain\r\n" + - "\r\n" + - "0123456789\r\n"); + "Content-Type: text/plain\r\n" + + "\r\n" + + "0123456789\r\n"); HttpParser.ResponseHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -1512,7 +1511,7 @@ public class HttpParserTest assertEquals("HTTP/1.1", _methodOrVersion); assertEquals("200", _uriOrStatus); - assertEquals(null, _versionOrReason); + assertNull(_versionOrReason); assertEquals(12, _content.length()); assertEquals("0123456789\r\n", _content); assertTrue(_headerCompleted); @@ -1520,12 +1519,12 @@ public class HttpParserTest } @Test - public void testResponse304WithContentLength() throws Exception + public void testResponse304WithContentLength() { ByteBuffer buffer = BufferUtil.toBuffer( "HTTP/1.1 304 found\r\n" + - "Content-Length: 10\r\n" + - "\r\n"); + "Content-Length: 10\r\n" + + "\r\n"); HttpParser.ResponseHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -1533,18 +1532,18 @@ public class HttpParserTest assertEquals("HTTP/1.1", _methodOrVersion); assertEquals("304", _uriOrStatus); assertEquals("found", _versionOrReason); - assertEquals(null, _content); + assertNull(_content); assertTrue(_headerCompleted); assertTrue(_messageCompleted); } @Test - public void testResponse101WithTransferEncoding() throws Exception + public void testResponse101WithTransferEncoding() { ByteBuffer buffer = BufferUtil.toBuffer( "HTTP/1.1 101 switching protocols\r\n" + - "Transfer-Encoding: chunked\r\n" + - "\r\n"); + "Transfer-Encoding: chunked\r\n" + + "\r\n"); HttpParser.ResponseHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -1552,18 +1551,18 @@ public class HttpParserTest assertEquals("HTTP/1.1", _methodOrVersion); assertEquals("101", _uriOrStatus); assertEquals("switching protocols", _versionOrReason); - assertEquals(null, _content); + assertNull(_content); assertTrue(_headerCompleted); assertTrue(_messageCompleted); } @Test - public void testResponseReasonIso8859_1() throws Exception + public void testResponseReasonIso8859_1() { ByteBuffer buffer = BufferUtil.toBuffer( "HTTP/1.1 302 déplacé temporairement\r\n" + - "Content-Length: 0\r\n" + - "\r\n", StandardCharsets.ISO_8859_1); + "Content-Length: 0\r\n" + + "\r\n", StandardCharsets.ISO_8859_1); HttpParser.ResponseHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -1574,15 +1573,15 @@ public class HttpParserTest } @Test - public void testSeekEOF() throws Exception + public void testSeekEOF() { ByteBuffer buffer = BufferUtil.toBuffer( "HTTP/1.1 200 OK\r\n" + - "Content-Length: 0\r\n" + - "Connection: close\r\n" + - "\r\n" + - "\r\n" + // extra CRLF ignored - "HTTP/1.1 400 OK\r\n"); // extra data causes close ?? + "Content-Length: 0\r\n" + + "Connection: close\r\n" + + "\r\n" + + "\r\n" + // extra CRLF ignored + "HTTP/1.1 400 OK\r\n"); // extra data causes close ?? HttpParser.ResponseHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -1591,7 +1590,7 @@ public class HttpParserTest assertEquals("HTTP/1.1", _methodOrVersion); assertEquals("200", _uriOrStatus); assertEquals("OK", _versionOrReason); - assertEquals(null, _content); + assertNull(_content); assertTrue(_headerCompleted); assertTrue(_messageCompleted); @@ -1606,19 +1605,19 @@ public class HttpParserTest } @Test - public void testNoURI() throws Exception + public void testNoURI() { ByteBuffer buffer = BufferUtil.toBuffer( "GET\r\n" + - "Content-Length: 0\r\n" + - "Connection: close\r\n" + - "\r\n"); + "Content-Length: 0\r\n" + + "Connection: close\r\n" + + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); parser.parseNext(buffer); - assertEquals(null, _methodOrVersion); + assertNull(_methodOrVersion); assertEquals("No URI", _bad); assertFalse(buffer.hasRemaining()); assertEquals(HttpParser.State.CLOSE, parser.getState()); @@ -1628,19 +1627,19 @@ public class HttpParserTest } @Test - public void testNoURI2() throws Exception + public void testNoURI2() { ByteBuffer buffer = BufferUtil.toBuffer( "GET \r\n" + - "Content-Length: 0\r\n" + - "Connection: close\r\n" + - "\r\n"); + "Content-Length: 0\r\n" + + "Connection: close\r\n" + + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); parser.parseNext(buffer); - assertEquals(null, _methodOrVersion); + assertNull(_methodOrVersion); assertEquals("No URI", _bad); assertFalse(buffer.hasRemaining()); assertEquals(HttpParser.State.CLOSE, parser.getState()); @@ -1650,19 +1649,19 @@ public class HttpParserTest } @Test - public void testUnknownReponseVersion() throws Exception + public void testUnknownReponseVersion() { ByteBuffer buffer = BufferUtil.toBuffer( "HPPT/7.7 200 OK\r\n" + - "Content-Length: 0\r\n" + - "Connection: close\r\n" + - "\r\n"); + "Content-Length: 0\r\n" + + "Connection: close\r\n" + + "\r\n"); HttpParser.ResponseHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); parser.parseNext(buffer); - assertEquals(null, _methodOrVersion); + assertNull(_methodOrVersion); assertEquals("Unknown Version", _bad); assertFalse(buffer.hasRemaining()); assertEquals(HttpParser.State.CLOSE, parser.getState()); @@ -1672,19 +1671,19 @@ public class HttpParserTest } @Test - public void testNoStatus() throws Exception + public void testNoStatus() { ByteBuffer buffer = BufferUtil.toBuffer( "HTTP/1.1\r\n" + - "Content-Length: 0\r\n" + - "Connection: close\r\n" + - "\r\n"); + "Content-Length: 0\r\n" + + "Connection: close\r\n" + + "\r\n"); HttpParser.ResponseHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); parser.parseNext(buffer); - assertEquals(null, _methodOrVersion); + assertNull(_methodOrVersion); assertEquals("No Status", _bad); assertFalse(buffer.hasRemaining()); assertEquals(HttpParser.State.CLOSE, parser.getState()); @@ -1694,19 +1693,19 @@ public class HttpParserTest } @Test - public void testNoStatus2() throws Exception + public void testNoStatus2() { ByteBuffer buffer = BufferUtil.toBuffer( "HTTP/1.1 \r\n" + - "Content-Length: 0\r\n" + - "Connection: close\r\n" + - "\r\n"); + "Content-Length: 0\r\n" + + "Connection: close\r\n" + + "\r\n"); HttpParser.ResponseHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); parser.parseNext(buffer); - assertEquals(null, _methodOrVersion); + assertNull(_methodOrVersion); assertEquals("No Status", _bad); assertFalse(buffer.hasRemaining()); assertEquals(HttpParser.State.CLOSE, parser.getState()); @@ -1716,19 +1715,19 @@ public class HttpParserTest } @Test - public void testBadRequestVersion() throws Exception + public void testBadRequestVersion() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HPPT/7.7\r\n" + - "Content-Length: 0\r\n" + - "Connection: close\r\n" + - "\r\n"); + "Content-Length: 0\r\n" + + "Connection: close\r\n" + + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); parser.parseNext(buffer); - assertEquals(null, _methodOrVersion); + assertNull(_methodOrVersion); assertEquals("Unknown Version", _bad); assertFalse(buffer.hasRemaining()); assertEquals(HttpParser.State.CLOSE, parser.getState()); @@ -1738,15 +1737,15 @@ public class HttpParserTest buffer = BufferUtil.toBuffer( "GET / HTTP/1.01\r\n" + - "Content-Length: 0\r\n" + - "Connection: close\r\n" + - "\r\n"); + "Content-Length: 0\r\n" + + "Connection: close\r\n" + + "\r\n"); handler = new Handler(); parser = new HttpParser(handler); parser.parseNext(buffer); - assertEquals(null, _methodOrVersion); + assertNull(_methodOrVersion); assertEquals("Unknown Version", _bad); assertFalse(buffer.hasRemaining()); assertEquals(HttpParser.State.CLOSE, parser.getState()); @@ -1756,13 +1755,13 @@ public class HttpParserTest } @Test - public void testBadCR() throws Exception + public void testBadCR() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.0\r\n" + - "Content-Length: 0\r" + - "Connection: close\r" + - "\r"); + "Content-Length: 0\r" + + "Connection: close\r" + + "\r"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -1777,9 +1776,9 @@ public class HttpParserTest buffer = BufferUtil.toBuffer( "GET / HTTP/1.0\r" + - "Content-Length: 0\r" + - "Connection: close\r" + - "\r"); + "Content-Length: 0\r" + + "Connection: close\r" + + "\r"); handler = new Handler(); parser = new HttpParser(handler); @@ -1794,13 +1793,13 @@ public class HttpParserTest } @Test - public void testBadContentLength0() throws Exception + public void testBadContentLength0() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.0\r\n" + - "Content-Length: abc\r\n" + - "Connection: close\r\n" + - "\r\n"); + "Content-Length: abc\r\n" + + "Connection: close\r\n" + + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -1816,13 +1815,13 @@ public class HttpParserTest } @Test - public void testBadContentLength1() throws Exception + public void testBadContentLength1() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.0\r\n" + - "Content-Length: 9999999999999999999999999999999999999999999999\r\n" + - "Connection: close\r\n" + - "\r\n"); + "Content-Length: 9999999999999999999999999999999999999999999999\r\n" + + "Connection: close\r\n" + + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -1838,13 +1837,13 @@ public class HttpParserTest } @Test - public void testBadContentLength2() throws Exception + public void testBadContentLength2() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.0\r\n" + - "Content-Length: 1.5\r\n" + - "Connection: close\r\n" + - "\r\n"); + "Content-Length: 1.5\r\n" + + "Connection: close\r\n" + + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -1864,11 +1863,11 @@ public class HttpParserTest { ByteBuffer buffer = BufferUtil.toBuffer( "POST / HTTP/1.1\r\n" + - "Content-Length: 2\r\n" + - "Content-Length: 1\r\n" + - "Connection: close\r\n" + - "\r\n" + - "X"); + "Content-Length: 2\r\n" + + "Content-Length: 1\r\n" + + "Connection: close\r\n" + + "\r\n" + + "X"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -1888,11 +1887,11 @@ public class HttpParserTest { ByteBuffer buffer = BufferUtil.toBuffer( "POST / HTTP/1.1\r\n" + - "Content-Length: 1\r\n" + - "Content-Length: 2\r\n" + - "Connection: close\r\n" + - "\r\n" + - "X"); + "Content-Length: 1\r\n" + + "Content-Length: 2\r\n" + + "Connection: close\r\n" + + "\r\n" + + "X"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -1912,14 +1911,14 @@ public class HttpParserTest { ByteBuffer buffer = BufferUtil.toBuffer( "POST /chunk HTTP/1.1\r\n" + - "Host: localhost\r\n" + - "Transfer-Encoding: chunked\r\n" + - "Content-Length: 1\r\n" + - "\r\n" + - "1\r\n" + - "X\r\n" + - "0\r\n" + - "\r\n"); + "Host: localhost\r\n" + + "Transfer-Encoding: chunked\r\n" + + "Content-Length: 1\r\n" + + "\r\n" + + "1\r\n" + + "X\r\n" + + "0\r\n" + + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler, HttpCompliance.RFC2616_LEGACY); @@ -1941,15 +1940,14 @@ public class HttpParserTest { ByteBuffer buffer = BufferUtil.toBuffer( "POST /chunk HTTP/1.1\r\n" + - "Host: localhost\r\n" + - "Content-Length: 1\r\n" + - "Transfer-Encoding: chunked\r\n" + - "\r\n" + - "1\r\n" + - "X\r\n" + - "0\r\n" + - "\r\n"); - + "Host: localhost\r\n" + + "Content-Length: 1\r\n" + + "Transfer-Encoding: chunked\r\n" + + "\r\n" + + "1\r\n" + + "X\r\n" + + "0\r\n" + + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler, HttpCompliance.RFC2616_LEGACY); @@ -1967,13 +1965,13 @@ public class HttpParserTest } @Test - public void testHost() throws Exception + public void testHost() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.1\r\n" + - "Host: host\r\n" + - "Connection: close\r\n" + - "\r\n"); + "Host: host\r\n" + + "Connection: close\r\n" + + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -1983,12 +1981,12 @@ public class HttpParserTest } @Test - public void testUriHost11() throws Exception + public void testUriHost11() { ByteBuffer buffer = BufferUtil.toBuffer( "GET http://host/ HTTP/1.1\r\n" + - "Connection: close\r\n" + - "\r\n"); + "Connection: close\r\n" + + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -1999,11 +1997,11 @@ public class HttpParserTest } @Test - public void testUriHost10() throws Exception + public void testUriHost10() { ByteBuffer buffer = BufferUtil.toBuffer( "GET http://host/ HTTP/1.0\r\n" + - "\r\n"); + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -2014,12 +2012,12 @@ public class HttpParserTest } @Test - public void testNoHost() throws Exception + public void testNoHost() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.1\r\n" + - "Connection: close\r\n" + - "\r\n"); + "Connection: close\r\n" + + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -2028,13 +2026,13 @@ public class HttpParserTest } @Test - public void testIPHost() throws Exception + public void testIPHost() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.1\r\n" + - "Host: 192.168.0.1\r\n" + - "Connection: close\r\n" + - "\r\n"); + "Host: 192.168.0.1\r\n" + + "Connection: close\r\n" + + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -2044,14 +2042,14 @@ public class HttpParserTest } @Test - public void testIPv6Host() throws Exception + public void testIPv6Host() { Assumptions.assumeTrue(Net.isIpv6InterfaceAvailable()); ByteBuffer buffer = BufferUtil.toBuffer( - "GET / HTTP/1.1\r\n" + - "Host: [::1]\r\n" + - "Connection: close\r\n" + - "\r\n"); + "GET / HTTP/1.1\r\n" + + "Host: [::1]\r\n" + + "Connection: close\r\n" + + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -2061,15 +2059,15 @@ public class HttpParserTest } @Test - public void testBadIPv6Host() throws Exception + public void testBadIPv6Host() { try (StacklessLogging s = new StacklessLogging(HttpParser.class)) { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.1\r\n" + - "Host: [::1\r\n" + - "Connection: close\r\n" + - "\r\n"); + "Host: [::1\r\n" + + "Connection: close\r\n" + + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -2079,13 +2077,13 @@ public class HttpParserTest } @Test - public void testHostPort() throws Exception + public void testHostPort() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.1\r\n" + - "Host: myhost:8888\r\n" + - "Connection: close\r\n" + - "\r\n"); + "Host: myhost:8888\r\n" + + "Connection: close\r\n" + + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -2095,13 +2093,13 @@ public class HttpParserTest } @Test - public void testHostBadPort() throws Exception + public void testHostBadPort() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.1\r\n" + - "Host: myhost:testBadPort\r\n" + - "Connection: close\r\n" + - "\r\n"); + "Host: myhost:testBadPort\r\n" + + "Connection: close\r\n" + + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -2110,13 +2108,13 @@ public class HttpParserTest } @Test - public void testIPHostPort() throws Exception + public void testIPHostPort() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.1\r\n" + - "Host: 192.168.0.1:8888\r\n" + - "Connection: close\r\n" + - "\r\n"); + "Host: 192.168.0.1:8888\r\n" + + "Connection: close\r\n" + + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -2126,14 +2124,14 @@ public class HttpParserTest } @Test - public void testIPv6HostPort() throws Exception + public void testIPv6HostPort() { Assumptions.assumeTrue(Net.isIpv6InterfaceAvailable()); ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.1\r\n" + - "Host: [::1]:8888\r\n" + - "Connection: close\r\n" + - "\r\n"); + "Host: [::1]:8888\r\n" + + "Connection: close\r\n" + + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); @@ -2143,24 +2141,24 @@ public class HttpParserTest } @Test - public void testEmptyHostPort() throws Exception + public void testEmptyHostPort() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.1\r\n" + - "Host:\r\n" + - "Connection: close\r\n" + - "\r\n"); + "Host:\r\n" + + "Connection: close\r\n" + + "\r\n"); HttpParser.RequestHandler handler = new Handler(); HttpParser parser = new HttpParser(handler); parser.parseNext(buffer); - assertEquals(null, _host); - assertEquals(null, _bad); + assertNull(_host); + assertNull(_bad); } @Test @SuppressWarnings("ReferenceEquality") - public void testCachedField() throws Exception + public void testCachedField() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.1\r\n" + @@ -2175,11 +2173,11 @@ public class HttpParserTest buffer.position(0); parseAll(parser, buffer); - assertTrue(field == _fields.get(0)); + assertSame(field, _fields.get(0)); } @Test - public void testParseRequest() throws Exception + public void testParseRequest() { ByteBuffer buffer = BufferUtil.toBuffer( "GET / HTTP/1.1\r\n" + @@ -2208,7 +2206,7 @@ public class HttpParserTest } @Test - public void testHTTP2Preface() throws Exception + public void testHTTP2Preface() { ByteBuffer buffer = BufferUtil.toBuffer( "PRI * HTTP/2.0\r\n" + @@ -2226,7 +2224,7 @@ public class HttpParserTest assertEquals("*", _uriOrStatus); assertEquals("HTTP/2.0", _versionOrReason); assertEquals(-1, _headers); - assertEquals(null, _bad); + assertNull(_bad); } @BeforeEach From 1d8a2fe03a7fca6d9b5bcc99f2743851981a40e3 Mon Sep 17 00:00:00 2001 From: Simone Bordet Date: Fri, 8 Nov 2019 09:56:36 +0100 Subject: [PATCH 32/34] Code cleanup. Signed-off-by: Simone Bordet --- .../org/eclipse/jetty/http/HttpParser.java | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java b/jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java index 4435610086b..e5b09b69714 100644 --- a/jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java +++ b/jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java @@ -237,7 +237,7 @@ public class HttpParser private static HttpCompliance compliance() { - Boolean strict = Boolean.getBoolean(__STRICT); + boolean strict = Boolean.getBoolean(__STRICT); if (strict) { LOG.warn("Deprecated property used: " + __STRICT); @@ -564,9 +564,8 @@ public class HttpParser { boolean handleHeader = _handler.headerComplete(); _headerComplete = true; - boolean handleContent = _handler.contentComplete(); - boolean handleMessage = _handler.messageComplete(); - return handleHeader || handleContent || handleMessage; + boolean handleContentMessage = handleContentMessage(); + return handleHeader || handleContentMessage; } private boolean handleContentMessage() @@ -744,7 +743,7 @@ public class HttpParser case LF: setState(State.HEADER); - handle |= _responseHandler.startResponse(_version, _responseStatus, null); + handle = _responseHandler.startResponse(_version, _responseStatus, null); break; default: @@ -842,7 +841,7 @@ public class HttpParser if (_responseHandler != null) { setState(State.HEADER); - handle |= _responseHandler.startResponse(_version, _responseStatus, null); + handle = _responseHandler.startResponse(_version, _responseStatus, null); } else { @@ -874,15 +873,13 @@ public class HttpParser checkVersion(); // Should we try to cache header fields? - if (_fieldCache == null && _version.getVersion() >= HttpVersion.HTTP_1_1.getVersion() && _handler.getHeaderCacheSize() > 0) - { - int headerCache = _handler.getHeaderCacheSize(); + int headerCache = _handler.getHeaderCacheSize(); + if (_fieldCache == null && _version.getVersion() >= HttpVersion.HTTP_1_1.getVersion() && headerCache > 0) _fieldCache = new ArrayTernaryTrie<>(headerCache); - } setState(State.HEADER); - handle |= _requestHandler.startRequest(_methodString, _uri.toString(), _version); + handle = _requestHandler.startRequest(_methodString, _uri.toString(), _version); continue; case ALPHA: @@ -904,7 +901,7 @@ public class HttpParser case LF: String reason = takeString(); setState(State.HEADER); - handle |= _responseHandler.startResponse(_version, _responseStatus, reason); + handle = _responseHandler.startResponse(_version, _responseStatus, reason); continue; case ALPHA: @@ -1628,7 +1625,6 @@ public class HttpParser } // Handle _content - byte ch; while (_state.ordinal() < State.TRAILER.ordinal() && remaining > 0) { switch (_state) From 089dd479c7afde789b6aecdd6e237e34e15210f3 Mon Sep 17 00:00:00 2001 From: Lachlan Roberts Date: Fri, 8 Nov 2019 21:06:51 +1100 Subject: [PATCH 33/34] add module-info lines to use ServiceLoader with Authenticator.Factory Signed-off-by: Lachlan Roberts --- jetty-jaspi/src/main/java/module-info.java | 5 +++++ jetty-security/src/main/java/module-info.java | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/jetty-jaspi/src/main/java/module-info.java b/jetty-jaspi/src/main/java/module-info.java index cc3333e34dd..703d93d261e 100644 --- a/jetty-jaspi/src/main/java/module-info.java +++ b/jetty-jaspi/src/main/java/module-info.java @@ -16,6 +16,9 @@ // ======================================================================== // +import org.eclipse.jetty.security.Authenticator; +import org.eclipse.jetty.security.jaspi.JaspiAuthenticatorFactory; + module org.eclipse.jetty.security.jaspi { exports org.eclipse.jetty.security.jaspi; @@ -28,4 +31,6 @@ module org.eclipse.jetty.security.jaspi requires org.eclipse.jetty.security; requires org.eclipse.jetty.server; requires org.eclipse.jetty.util; + + provides Authenticator.Factory with JaspiAuthenticatorFactory; } diff --git a/jetty-security/src/main/java/module-info.java b/jetty-security/src/main/java/module-info.java index d5a8d543724..bf823d5ee4c 100644 --- a/jetty-security/src/main/java/module-info.java +++ b/jetty-security/src/main/java/module-info.java @@ -16,6 +16,8 @@ // ======================================================================== // +import org.eclipse.jetty.security.Authenticator; + module org.eclipse.jetty.security { exports org.eclipse.jetty.security; @@ -30,4 +32,6 @@ module org.eclipse.jetty.security requires static java.sql; // Only required if using SPNEGO. requires static java.security.jgss; + + uses Authenticator.Factory; } From d043cf6318b07cadfb2010c786e7c553c06814ad Mon Sep 17 00:00:00 2001 From: Chris Walker Date: Fri, 8 Nov 2019 12:23:17 -0500 Subject: [PATCH 34/34] Fixed links for linking separate guides --- jetty-documentation/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jetty-documentation/pom.xml b/jetty-documentation/pom.xml index 16ece04c3ea..5a0e52c7510 100644 --- a/jetty-documentation/pom.xml +++ b/jetty-documentation/pom.xml @@ -100,8 +100,8 @@ https://github.com/eclipse/jetty.project/tree/jetty-10.0.x-doc-refactor/jetty-documentation/src/main/asciidoc ../distribution-guide/index.html ../embedded-guide/index.html - ../quickstart-guideindex.html - ../contribution-guideindex.html + ../quickstart-guide/index.html + ../contribution-guide/index.html http://central.maven.org/maven2 ${project.version} ${maven.build.timestamp}