Merge remote-tracking branch 'jetty-11.0.x' into `jetty-12.0.x`
This commit is contained in:
commit
385f00f72b
|
@ -57,12 +57,14 @@ updates:
|
|||
versions: [ ">=4.0.0" ]
|
||||
- dependency-name: "jakarta.enterprise:jakarta.enterprise.cdi-api:*"
|
||||
versions: [ ">=3.0.0" ]
|
||||
- dependency-name: "com.sun.xml.ws:jaxws*"
|
||||
- dependency-name: "com.sun.xml.ws:jaxws-rt"
|
||||
versions: [ ">=3.0.0" ]
|
||||
- dependency-name: "jakarta.transaction:*"
|
||||
versions: [ ">=2.0.0" ]
|
||||
- dependency-name: "org.infinispan:*"
|
||||
versions: [ ">=12" ]
|
||||
- dependency-name: "jakarta.xml.bind:*"
|
||||
versions: [ ">=3.0.0" ]
|
||||
|
||||
- package-ecosystem: "maven"
|
||||
directory: "/"
|
||||
|
|
|
@ -17,19 +17,12 @@
|
|||
<groupId>org.apache.felix</groupId>
|
||||
<artifactId>maven-bundle-plugin</artifactId>
|
||||
<extensions>true</extensions>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>manifest</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Import-Package>${osgi.slf4j.import.packages},org.eclipse.jetty.alpn;resolution:=optional,*</Import-Package>
|
||||
<Require-Capability>osgi.extender; filter:="(osgi.extender=osgi.serviceloader.processor)";resolution:=optional, osgi.serviceloader; filter:="(osgi.serviceloader=org.eclipse.jetty.io.ssl.ALPNProcessor$Client)";resolution:=optional;cardinality:=multiple</Require-Capability>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Import-Package>${osgi.slf4j.import.packages},org.eclipse.jetty.alpn;resolution:=optional,*</Import-Package>
|
||||
<Require-Capability>osgi.extender; filter:="(osgi.extender=osgi.serviceloader.processor)";resolution:=optional, osgi.serviceloader; filter:="(osgi.serviceloader=org.eclipse.jetty.io.ssl.ALPNProcessor$Client)";resolution:=optional;cardinality:=multiple</Require-Capability>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<!-- always include the sources to be able to prepare the eclipse-jetty-SDK feature
|
||||
with a snapshot. -->
|
||||
|
|
|
@ -104,13 +104,11 @@ public class HttpStreamOverHTTP2 implements HttpStream, HTTP2Channel.Server
|
|||
{
|
||||
if (LOG.isDebugEnabled())
|
||||
LOG.debug("onRequest", x);
|
||||
onBadMessage(x);
|
||||
return null;
|
||||
return () -> onBadMessage(x);
|
||||
}
|
||||
catch (Throwable x)
|
||||
{
|
||||
onBadMessage(new BadMessageException(HttpStatus.INTERNAL_SERVER_ERROR_500, null, x));
|
||||
return null;
|
||||
return () -> onBadMessage(new BadMessageException(HttpStatus.INTERNAL_SERVER_ERROR_500, null, x));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -432,13 +430,11 @@ public class HttpStreamOverHTTP2 implements HttpStream, HTTP2Channel.Server
|
|||
}
|
||||
catch (BadMessageException x)
|
||||
{
|
||||
onBadMessage(x);
|
||||
return null;
|
||||
return () -> onBadMessage(x);
|
||||
}
|
||||
catch (Throwable x)
|
||||
{
|
||||
onBadMessage(new BadMessageException(HttpStatus.INTERNAL_SERVER_ERROR_500, null, x));
|
||||
return null;
|
||||
return () -> onBadMessage(new BadMessageException(HttpStatus.INTERNAL_SERVER_ERROR_500, null, x));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,148 @@
|
|||
//
|
||||
// ========================================================================
|
||||
// Copyright (c) 1995-2022 Mort Bay Consulting Pty Ltd and others.
|
||||
//
|
||||
// This program and the accompanying materials are made available under the
|
||||
// terms of the Eclipse Public License v. 2.0 which is available at
|
||||
// https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
|
||||
// which is available at https://www.apache.org/licenses/LICENSE-2.0.
|
||||
//
|
||||
// SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
|
||||
// ========================================================================
|
||||
//
|
||||
|
||||
package org.eclipse.jetty.http2.tests;
|
||||
|
||||
import java.io.OutputStream;
|
||||
import java.net.Socket;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.HashMap;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.eclipse.jetty.http.HostPortHttpField;
|
||||
import org.eclipse.jetty.http.HttpFields;
|
||||
import org.eclipse.jetty.http.HttpMethod;
|
||||
import org.eclipse.jetty.http.HttpScheme;
|
||||
import org.eclipse.jetty.http.HttpVersion;
|
||||
import org.eclipse.jetty.http.MetaData;
|
||||
import org.eclipse.jetty.http2.frames.HeadersFrame;
|
||||
import org.eclipse.jetty.http2.frames.PrefaceFrame;
|
||||
import org.eclipse.jetty.http2.frames.SettingsFrame;
|
||||
import org.eclipse.jetty.http2.internal.generator.Generator;
|
||||
import org.eclipse.jetty.http2.server.HTTP2CServerConnectionFactory;
|
||||
import org.eclipse.jetty.io.ByteBufferPool;
|
||||
import org.eclipse.jetty.server.Handler;
|
||||
import org.eclipse.jetty.server.HttpConfiguration;
|
||||
import org.eclipse.jetty.server.Request;
|
||||
import org.eclipse.jetty.server.Response;
|
||||
import org.eclipse.jetty.server.Server;
|
||||
import org.eclipse.jetty.server.ServerConnector;
|
||||
import org.eclipse.jetty.server.handler.ErrorProcessor;
|
||||
import org.eclipse.jetty.util.BufferUtil;
|
||||
import org.eclipse.jetty.util.Callback;
|
||||
import org.eclipse.jetty.util.component.LifeCycle;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
public class BadURITest
|
||||
{
|
||||
private Server server;
|
||||
private ServerConnector connector;
|
||||
|
||||
protected void startServer(Handler handler) throws Exception
|
||||
{
|
||||
server = new Server();
|
||||
connector = new ServerConnector(server, 1, 1, new HTTP2CServerConnectionFactory(new HttpConfiguration()));
|
||||
server.addConnector(connector);
|
||||
server.setHandler(handler);
|
||||
server.start();
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
public void dispose()
|
||||
{
|
||||
LifeCycle.stop(server);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled("TODO: need to fix ErrorProcessor")
|
||||
public void testBadURI() throws Exception
|
||||
{
|
||||
CountDownLatch handlerLatch = new CountDownLatch(1);
|
||||
startServer(new Handler.Processor()
|
||||
{
|
||||
@Override
|
||||
public void process(Request request, Response response, Callback callback)
|
||||
{
|
||||
handlerLatch.countDown();
|
||||
callback.succeeded();
|
||||
}
|
||||
});
|
||||
|
||||
// Remove existing ErrorHandlers.
|
||||
server.getBeans(ErrorProcessor.class).forEach(server::removeBean);
|
||||
|
||||
server.addBean(new ErrorProcessor()
|
||||
{
|
||||
@Override
|
||||
public ByteBuffer badMessageError(int status, String reason, HttpFields.Mutable fields)
|
||||
{
|
||||
// Return a very large buffer that will cause HTTP/2 flow control exhaustion and/or TCP congestion.
|
||||
return ByteBuffer.allocateDirect(128 * 1024 * 1024);
|
||||
}
|
||||
});
|
||||
|
||||
ByteBufferPool byteBufferPool = connector.getByteBufferPool();
|
||||
Generator generator = new Generator(byteBufferPool);
|
||||
|
||||
// Craft a request with a bad URI, it will not hit the Handler.
|
||||
MetaData.Request metaData1 = new MetaData.Request(
|
||||
HttpMethod.GET.asString(),
|
||||
HttpScheme.HTTP.asString(),
|
||||
new HostPortHttpField("localhost:" + connector.getLocalPort()),
|
||||
// Use an ambiguous path parameter so that the URI is invalid.
|
||||
"/foo/..;/bar",
|
||||
HttpVersion.HTTP_2,
|
||||
HttpFields.EMPTY,
|
||||
-1
|
||||
);
|
||||
ByteBufferPool.Lease lease = new ByteBufferPool.Lease(byteBufferPool);
|
||||
generator.control(lease, new PrefaceFrame());
|
||||
generator.control(lease, new SettingsFrame(new HashMap<>(), false));
|
||||
generator.control(lease, new HeadersFrame(1, metaData1, null, true));
|
||||
|
||||
try (Socket client = new Socket("localhost", connector.getLocalPort()))
|
||||
{
|
||||
OutputStream output = client.getOutputStream();
|
||||
for (ByteBuffer buffer : lease.getByteBuffers())
|
||||
{
|
||||
output.write(BufferUtil.toArray(buffer));
|
||||
}
|
||||
|
||||
// Wait for the first request be processed on the server.
|
||||
Thread.sleep(1000);
|
||||
|
||||
// Send a second request and verify that it hits the Handler.
|
||||
lease.recycle();
|
||||
MetaData.Request metaData2 = new MetaData.Request(
|
||||
HttpMethod.GET.asString(),
|
||||
HttpScheme.HTTP.asString(),
|
||||
new HostPortHttpField("localhost:" + connector.getLocalPort()),
|
||||
"/valid",
|
||||
HttpVersion.HTTP_2,
|
||||
HttpFields.EMPTY,
|
||||
-1
|
||||
);
|
||||
generator.control(lease, new HeadersFrame(3, metaData2, null, true));
|
||||
for (ByteBuffer buffer : lease.getByteBuffers())
|
||||
{
|
||||
output.write(BufferUtil.toArray(buffer));
|
||||
}
|
||||
assertTrue(handlerLatch.await(5, TimeUnit.SECONDS));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -36,19 +36,11 @@
|
|||
<groupId>org.apache.felix</groupId>
|
||||
<artifactId>maven-bundle-plugin</artifactId>
|
||||
<extensions>true</extensions>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>generate-manifest</id>
|
||||
<goals>
|
||||
<goal>manifest</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Export-Package>*,org.eclipse.jetty.websocket.core.client.internal.*</Export-Package>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Export-Package>*,org.eclipse.jetty.websocket.core.client.internal.*</Export-Package>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
|
|
@ -35,25 +35,18 @@
|
|||
<groupId>org.apache.felix</groupId>
|
||||
<artifactId>maven-bundle-plugin</artifactId>
|
||||
<extensions>true</extensions>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>generate-manifest</id>
|
||||
<goals>
|
||||
<goal>manifest</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Export-Package>*,org.eclipse.jetty.websocket.core.common.internal.*</Export-Package>
|
||||
<Require-Capability>
|
||||
osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)"
|
||||
</Require-Capability>
|
||||
<Provide-Capability>
|
||||
osgi.serviceloader; osgi.serviceloader=org.eclipse.jetty.websocket.core.Extension
|
||||
</Provide-Capability>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Bundle-Description>Jetty Websocket Core Common</Bundle-Description>
|
||||
<Export-Package>*,org.eclipse.jetty.websocket.core.common.internal.*</Export-Package>
|
||||
<Require-Capability>
|
||||
osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)"; resolution:=optional
|
||||
</Require-Capability>
|
||||
<Provide-Capability>
|
||||
osgi.serviceloader; osgi.serviceloader=org.eclipse.jetty.websocket.core.Extension
|
||||
</Provide-Capability>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
|
|
@ -85,6 +85,21 @@
|
|||
<skip>true</skip>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.felix</groupId>
|
||||
<artifactId>maven-bundle-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>manifest</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<!-- No point deploying testing projects -->
|
||||
<skip>true</skip>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<profiles>
|
||||
|
|
|
@ -16,27 +16,19 @@
|
|||
<plugin>
|
||||
<groupId>org.apache.felix</groupId>
|
||||
<artifactId>maven-bundle-plugin</artifactId>
|
||||
<extensions>true</extensions>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>manifest</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Bundle-SymbolicName>org.eclipse.jetty.demos.demo-mock-resources</Bundle-SymbolicName>
|
||||
<Bundle-Description>Mock resources used for testing</Bundle-Description>
|
||||
<Export-Package>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Bundle-SymbolicName>org.eclipse.jetty.demos.demo-mock-resources</Bundle-SymbolicName>
|
||||
<Bundle-Description>Mock resources used for testing</Bundle-Description>
|
||||
<Export-Package>
|
||||
org.example;version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}"
|
||||
</Export-Package>
|
||||
<Import-Package>
|
||||
javax.sql, jakarta.transaction;version="2.0.0"
|
||||
</Import-Package>
|
||||
<_nouses>true</_nouses>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</Export-Package>
|
||||
<Import-Package>
|
||||
javax.sql, jakarta.transaction;version="2.0.0"
|
||||
</Import-Package>
|
||||
<_nouses>true</_nouses>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
|
|
@ -39,6 +39,7 @@ import jakarta.servlet.ServletResponse;
|
|||
import jakarta.servlet.http.HttpServlet;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import org.eclipse.jetty.http.CompressedContentFormat;
|
||||
import org.eclipse.jetty.http.DateGenerator;
|
||||
import org.eclipse.jetty.http.HttpField;
|
||||
import org.eclipse.jetty.http.HttpHeader;
|
||||
|
@ -1960,6 +1961,51 @@ public class DefaultServletTest
|
|||
assertThat(body, containsString("fake gzip"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testProgrammaticCustomCompressionFormats() throws Exception
|
||||
{
|
||||
createFile(docRoot.resolve("data0.txt"), "Hello Text 0");
|
||||
createFile(docRoot.resolve("data0.txt.br"), "fake brotli");
|
||||
createFile(docRoot.resolve("data0.txt.gz"), "fake gzip");
|
||||
createFile(docRoot.resolve("data0.txt.bz2"), "fake bzip2");
|
||||
|
||||
ResourceService resourceService = new ResourceService();
|
||||
resourceService.setPrecompressedFormats(new CompressedContentFormat[]{
|
||||
new CompressedContentFormat("bzip2", ".bz2"),
|
||||
new CompressedContentFormat("gzip", ".gz"),
|
||||
new CompressedContentFormat("br", ".br")
|
||||
});
|
||||
ServletHolder defholder = new ServletHolder(new DefaultServlet()); // TODO: how to integrate resource service / precompressed format
|
||||
context.addServlet(defholder, "/");
|
||||
defholder.setInitParameter("resourceBase", docRoot.toString());
|
||||
|
||||
String rawResponse;
|
||||
HttpTester.Response response;
|
||||
String body;
|
||||
|
||||
rawResponse = connector.getResponse("GET /context/data0.txt HTTP/1.0\r\nHost:localhost:8080\r\nAccept-Encoding:bzip2, br, gzip\r\n\r\n");
|
||||
response = HttpTester.parseResponse(rawResponse);
|
||||
assertThat(response.toString(), response.getStatus(), is(HttpStatus.OK_200));
|
||||
assertThat(response, containsHeaderValue(HttpHeader.CONTENT_LENGTH, "10"));
|
||||
assertThat(response, containsHeaderValue(HttpHeader.CONTENT_TYPE, "text/plain"));
|
||||
assertThat(response, containsHeaderValue(HttpHeader.VARY, "Accept-Encoding"));
|
||||
assertThat(response, containsHeaderValue(HttpHeader.CONTENT_ENCODING, "bzip2"));
|
||||
body = response.getContent();
|
||||
assertThat(body, containsString("fake bzip2"));
|
||||
|
||||
// TODO: show accept-encoding search order issue (shouldn't this request return data0.txt.br?)
|
||||
|
||||
rawResponse = connector.getResponse("GET /context/data0.txt HTTP/1.0\r\nHost:localhost:8080\r\nAccept-Encoding:br, gzip\r\n\r\n");
|
||||
response = HttpTester.parseResponse(rawResponse);
|
||||
assertThat(response.toString(), response.getStatus(), is(HttpStatus.OK_200));
|
||||
assertThat(response, containsHeaderValue(HttpHeader.CONTENT_LENGTH, "9"));
|
||||
assertThat(response, containsHeaderValue(HttpHeader.CONTENT_TYPE, "text/plain"));
|
||||
assertThat(response, containsHeaderValue(HttpHeader.VARY, "Accept-Encoding"));
|
||||
assertThat(response, containsHeaderValue(HttpHeader.CONTENT_ENCODING, "gzip"));
|
||||
body = response.getContent();
|
||||
assertThat(body, containsString("fake gzip"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testControlCharacter() throws Exception
|
||||
{
|
||||
|
|
|
@ -40,6 +40,7 @@ import jakarta.servlet.http.HttpServlet;
|
|||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import org.eclipse.jetty.http.CompressedContentFormat;
|
||||
import org.eclipse.jetty.http.HttpStatus;
|
||||
import org.eclipse.jetty.http.HttpTester;
|
||||
import org.eclipse.jetty.server.LocalConnector;
|
||||
import org.eclipse.jetty.server.Server;
|
||||
|
@ -54,6 +55,7 @@ import org.junit.jupiter.api.Test;
|
|||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.contains;
|
||||
import static org.hamcrest.Matchers.containsString;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
import static org.hamcrest.Matchers.equalToIgnoringCase;
|
||||
import static org.hamcrest.Matchers.is;
|
||||
import static org.hamcrest.Matchers.not;
|
||||
|
@ -687,6 +689,49 @@ public class GzipHandlerTest
|
|||
assertEquals(__icontent, testOut.toString("UTF8"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIncludeExcludeGzipHandlerInflate() throws Exception
|
||||
{
|
||||
gzipHandler.addExcludedInflationPaths("/ctx/echo/exclude");
|
||||
gzipHandler.addIncludedInflationPaths("/ctx/echo/include");
|
||||
|
||||
String message = "hello world";
|
||||
byte[] gzippedMessage = gzipContent(message);
|
||||
|
||||
// The included path does deflate the content.
|
||||
HttpTester.Response response = sendGzipRequest("/ctx/echo/include", message);
|
||||
assertThat(response.getStatus(), equalTo(HttpStatus.OK_200));
|
||||
assertThat(response.getContent(), equalTo(message));
|
||||
|
||||
// The excluded path does not deflate the content.
|
||||
response = sendGzipRequest("/ctx/echo/exclude", message);
|
||||
assertThat(response.getStatus(), equalTo(HttpStatus.OK_200));
|
||||
assertThat(response.getContentBytes(), equalTo(gzippedMessage));
|
||||
}
|
||||
|
||||
private byte[] gzipContent(String content) throws IOException
|
||||
{
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
GZIPOutputStream output = new GZIPOutputStream(baos);
|
||||
output.write(content.getBytes(StandardCharsets.UTF_8));
|
||||
output.close();
|
||||
return baos.toByteArray();
|
||||
}
|
||||
|
||||
private HttpTester.Response sendGzipRequest(String uri, String data) throws Exception
|
||||
{
|
||||
HttpTester.Request request = HttpTester.newRequest();
|
||||
request.setMethod("GET");
|
||||
request.setURI(uri);
|
||||
request.setVersion("HTTP/1.0");
|
||||
request.setHeader("Host", "tester");
|
||||
request.setHeader("Content-Type", "text/plain");
|
||||
request.setHeader("Content-Encoding", "gzip");
|
||||
request.setContent(gzipContent(data));
|
||||
|
||||
return HttpTester.parseResponse(_connector.getResponse(request.generate()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAddGetPaths()
|
||||
{
|
||||
|
|
|
@ -21,19 +21,12 @@
|
|||
<groupId>org.apache.felix</groupId>
|
||||
<artifactId>maven-bundle-plugin</artifactId>
|
||||
<extensions>true</extensions>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>manifest</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Require-Capability>osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)"</Require-Capability>
|
||||
<Provide-Capability>osgi.serviceloader;osgi.serviceloader=org.eclipse.jetty.security.Authenticator$Factory</Provide-Capability>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Require-Capability>osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)"</Require-Capability>
|
||||
<Provide-Capability>osgi.serviceloader;osgi.serviceloader=org.eclipse.jetty.security.Authenticator$Factory</Provide-Capability>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
|
|
@ -50,6 +50,7 @@ public class StatisticsHandler extends HandlerWrapper implements Graceful
|
|||
private final LongAdder _expires = new LongAdder();
|
||||
private final LongAdder _errors = new LongAdder();
|
||||
|
||||
private final LongAdder _responsesThrown = new LongAdder();
|
||||
private final LongAdder _responses1xx = new LongAdder();
|
||||
private final LongAdder _responses2xx = new LongAdder();
|
||||
private final LongAdder _responses3xx = new LongAdder();
|
||||
|
@ -86,7 +87,7 @@ public class StatisticsHandler extends HandlerWrapper implements Graceful
|
|||
long elapsed = System.currentTimeMillis() - request.getTimeStamp();
|
||||
_requestStats.decrement();
|
||||
_requestTimeStats.record(elapsed);
|
||||
updateResponse(request);
|
||||
updateResponse(request, false);
|
||||
_asyncWaitStats.decrement();
|
||||
|
||||
if (_shutdown.isShutdown())
|
||||
|
@ -161,10 +162,16 @@ public class StatisticsHandler extends HandlerWrapper implements Graceful
|
|||
_asyncDispatches.increment();
|
||||
}
|
||||
|
||||
boolean thrownError = false;
|
||||
try
|
||||
{
|
||||
handler.handle(path, baseRequest, request, response);
|
||||
}
|
||||
catch (Throwable t)
|
||||
{
|
||||
thrownError = true;
|
||||
throw t;
|
||||
}
|
||||
finally
|
||||
{
|
||||
final long now = System.currentTimeMillis();
|
||||
|
@ -184,7 +191,7 @@ public class StatisticsHandler extends HandlerWrapper implements Graceful
|
|||
{
|
||||
_requestStats.decrement();
|
||||
_requestTimeStats.record(dispatched);
|
||||
updateResponse(baseRequest);
|
||||
updateResponse(baseRequest, thrownError);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -193,10 +200,14 @@ public class StatisticsHandler extends HandlerWrapper implements Graceful
|
|||
}
|
||||
}
|
||||
|
||||
protected void updateResponse(Request request)
|
||||
protected void updateResponse(Request request, boolean thrownError)
|
||||
{
|
||||
Response response = request.getResponse();
|
||||
if (request.isHandled())
|
||||
if (thrownError)
|
||||
{
|
||||
_responsesThrown.increment();
|
||||
}
|
||||
else if (request.isHandled())
|
||||
{
|
||||
switch (response.getStatus() / 100)
|
||||
{
|
||||
|
@ -532,6 +543,18 @@ public class StatisticsHandler extends HandlerWrapper implements Graceful
|
|||
return _responses5xx.intValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the number of requests that threw an exception during handling
|
||||
* since {@link #statsReset()} was last called. These may have resulted in
|
||||
* some error responses which were unrecorded by the {@link StatisticsHandler}.
|
||||
*/
|
||||
@ManagedAttribute("number of requests that threw an exception during handling")
|
||||
public int getResponsesThrown()
|
||||
{
|
||||
return _responsesThrown.intValue();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return the milliseconds since the statistics were started with {@link #statsReset()}.
|
||||
*/
|
||||
|
@ -585,6 +608,7 @@ public class StatisticsHandler extends HandlerWrapper implements Graceful
|
|||
sb.append("3xx responses: ").append(getResponses3xx()).append("<br />\n");
|
||||
sb.append("4xx responses: ").append(getResponses4xx()).append("<br />\n");
|
||||
sb.append("5xx responses: ").append(getResponses5xx()).append("<br />\n");
|
||||
sb.append("responses thrown: ").append(getResponsesThrown()).append("<br />\n");
|
||||
sb.append("Bytes sent total: ").append(getResponsesBytesTotal()).append("<br />\n");
|
||||
|
||||
return sb.toString();
|
||||
|
|
|
@ -21,19 +21,12 @@
|
|||
<groupId>org.apache.felix</groupId>
|
||||
<artifactId>maven-bundle-plugin</artifactId>
|
||||
<extensions>true</extensions>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>manifest</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Require-Capability>osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)"</Require-Capability>
|
||||
<Provide-Capability>osgi.serviceloader;osgi.serviceloader=org.eclipse.jetty.security.Authenticator$Factory</Provide-Capability>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Require-Capability>osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)"</Require-Capability>
|
||||
<Provide-Capability>osgi.serviceloader;osgi.serviceloader=org.eclipse.jetty.security.Authenticator$Factory</Provide-Capability>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<pax.url.version>2.6.2</pax.url.version>
|
||||
<swissbox.version>1.8.3</swissbox.version>
|
||||
<tinybundles.version>3.0.0</tinybundles.version>
|
||||
<spifly.version>1.3.4</spifly.version>
|
||||
<spifly.version>1.3.5</spifly.version>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<!-- Pax Exam Dependencies -->
|
||||
|
|
|
@ -45,7 +45,6 @@ import static org.junit.Assert.assertEquals;
|
|||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
|
||||
import static org.ops4j.pax.exam.CoreOptions.wrappedBundle;
|
||||
|
||||
@RunWith(PaxExam.class)
|
||||
@ExamReactorStrategy(PerClass.class)
|
||||
|
@ -89,12 +88,8 @@ public class TestJettyOSGiBootHTTP2Conscrypt
|
|||
res.add(CoreOptions.systemProperty("jetty.alpn.protocols").value("h2,http/1.1"));
|
||||
res.add(CoreOptions.systemProperty("jetty.sslContext.provider").value("Conscrypt"));
|
||||
|
||||
res.add(wrappedBundle(mavenBundle().groupId("org.conscrypt").artifactId("conscrypt-openjdk-uber").versionAsInProject())
|
||||
.imports("javax.net.ssl,*")
|
||||
.exports("org.conscrypt;version=" + System.getProperty("conscrypt-version"))
|
||||
.instructions("Bundle-NativeCode=META-INF/native/libconscrypt_openjdk_jni-linux-x86_64.so")
|
||||
.start());
|
||||
res.add(mavenBundle().groupId("org.eclipse.jetty.osgi").artifactId("jetty-ee9-osgi-alpn").versionAsInProject().noStart());
|
||||
res.add(mavenBundle().groupId("org.conscrypt").artifactId("conscrypt-openjdk-uber").versionAsInProject().start());
|
||||
res.add(mavenBundle().groupId("org.eclipse.jetty.osgi").artifactId("jetty-osgi-alpn").versionAsInProject().noStart());
|
||||
res.add(mavenBundle().groupId("org.eclipse.jetty").artifactId("jetty-alpn-conscrypt-server").versionAsInProject().start());
|
||||
res.add(mavenBundle().groupId("org.eclipse.jetty").artifactId("jetty-alpn-server").versionAsInProject().start());
|
||||
|
||||
|
|
|
@ -21,18 +21,11 @@
|
|||
<groupId>org.apache.felix</groupId>
|
||||
<artifactId>maven-bundle-plugin</artifactId>
|
||||
<extensions>true</extensions>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>manifest</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Require-Capability>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</Require-Capability>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Require-Capability>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</Require-Capability>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
|
|
@ -16,6 +16,7 @@ package org.eclipse.jetty.ee9.servlet;
|
|||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.StringTokenizer;
|
||||
|
||||
import jakarta.servlet.ServletContext;
|
||||
|
@ -170,7 +171,7 @@ public class DefaultServlet extends HttpServlet implements ResourceFactory, Welc
|
|||
_resourceService.setAcceptRanges(getInitBoolean("acceptRanges", _resourceService.isAcceptRanges()));
|
||||
_resourceService.setDirAllowed(getInitBoolean("dirAllowed", _resourceService.isDirAllowed()));
|
||||
_resourceService.setRedirectWelcome(getInitBoolean("redirectWelcome", _resourceService.isRedirectWelcome()));
|
||||
_resourceService.setPrecompressedFormats(parsePrecompressedFormats(getInitParameter("precompressed"), getInitBoolean("gzip", false)));
|
||||
_resourceService.setPrecompressedFormats(parsePrecompressedFormats(getInitParameter("precompressed"), getInitBoolean("gzip"), _resourceService.getPrecompressedFormats()));
|
||||
_resourceService.setPathInfoOnly(getInitBoolean("pathInfoOnly", _resourceService.isPathInfoOnly()));
|
||||
_resourceService.setEtags(getInitBoolean("etags", _resourceService.isEtags()));
|
||||
|
||||
|
@ -303,8 +304,12 @@ public class DefaultServlet extends HttpServlet implements ResourceFactory, Welc
|
|||
LOG.debug("resource base = {}", _resourceBase);
|
||||
}
|
||||
|
||||
private CompressedContentFormat[] parsePrecompressedFormats(String precompressed, boolean gzip)
|
||||
private CompressedContentFormat[] parsePrecompressedFormats(String precompressed, Boolean gzip, CompressedContentFormat[] dft)
|
||||
{
|
||||
if (precompressed == null && gzip == null)
|
||||
{
|
||||
return dft;
|
||||
}
|
||||
List<CompressedContentFormat> ret = new ArrayList<>();
|
||||
if (precompressed != null && precompressed.indexOf('=') > 0)
|
||||
{
|
||||
|
@ -314,7 +319,7 @@ public class DefaultServlet extends HttpServlet implements ResourceFactory, Welc
|
|||
String encoding = setting[0].trim();
|
||||
String extension = setting[1].trim();
|
||||
ret.add(new CompressedContentFormat(encoding, extension));
|
||||
if (gzip && !ret.contains(CompressedContentFormat.GZIP))
|
||||
if (gzip == Boolean.TRUE && !ret.contains(CompressedContentFormat.GZIP))
|
||||
ret.add(CompressedContentFormat.GZIP);
|
||||
}
|
||||
}
|
||||
|
@ -326,7 +331,7 @@ public class DefaultServlet extends HttpServlet implements ResourceFactory, Welc
|
|||
ret.add(CompressedContentFormat.GZIP);
|
||||
}
|
||||
}
|
||||
else if (gzip)
|
||||
else if (gzip == Boolean.TRUE)
|
||||
{
|
||||
// gzip handling is for backwards compatibility with older Jetty
|
||||
ret.add(CompressedContentFormat.GZIP);
|
||||
|
@ -367,11 +372,11 @@ public class DefaultServlet extends HttpServlet implements ResourceFactory, Welc
|
|||
return value;
|
||||
}
|
||||
|
||||
private boolean getInitBoolean(String name, boolean dft)
|
||||
private Boolean getInitBoolean(String name)
|
||||
{
|
||||
String value = getInitParameter(name);
|
||||
if (value == null || value.length() == 0)
|
||||
return dft;
|
||||
return null;
|
||||
return (value.startsWith("t") ||
|
||||
value.startsWith("T") ||
|
||||
value.startsWith("y") ||
|
||||
|
@ -379,6 +384,11 @@ public class DefaultServlet extends HttpServlet implements ResourceFactory, Welc
|
|||
value.startsWith("1"));
|
||||
}
|
||||
|
||||
private boolean getInitBoolean(String name, boolean dft)
|
||||
{
|
||||
return Optional.ofNullable(getInitBoolean(name)).orElse(dft);
|
||||
}
|
||||
|
||||
private int getInitInt(String name, int dft)
|
||||
{
|
||||
String value = getInitParameter(name);
|
||||
|
|
|
@ -59,28 +59,21 @@
|
|||
<groupId>org.apache.felix</groupId>
|
||||
<artifactId>maven-bundle-plugin</artifactId>
|
||||
<extensions>true</extensions>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>manifest</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Bundle-Description>jakarta.websocket.client Implementation</Bundle-Description>
|
||||
<Export-Package>
|
||||
org.eclipse.jetty.websocket.jakarta.client.*;version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}"
|
||||
</Export-Package>
|
||||
<Require-Capability>
|
||||
osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)";resolution:=optional
|
||||
</Require-Capability>
|
||||
<Provide-Capability>
|
||||
osgi.serviceloader;osgi.serviceloader=jakarta.websocket.ContainerProvider,
|
||||
osgi.serviceloader;osgi.serviceloader=jakarta.servlet.ServletContainerInitializer
|
||||
</Provide-Capability>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Bundle-Description>jakarta.websocket.client Implementation</Bundle-Description>
|
||||
<Export-Package>
|
||||
org.eclipse.jetty.websocket.jakarta.client.*;version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}"
|
||||
</Export-Package>
|
||||
<Require-Capability>
|
||||
osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)";resolution:=optional
|
||||
</Require-Capability>
|
||||
<Provide-Capability>
|
||||
osgi.serviceloader;osgi.serviceloader=jakarta.websocket.ContainerProvider,
|
||||
osgi.serviceloader;osgi.serviceloader=jakarta.servlet.ServletContainerInitializer
|
||||
</Provide-Capability>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
|
|
@ -20,21 +20,14 @@
|
|||
<groupId>org.apache.felix</groupId>
|
||||
<artifactId>maven-bundle-plugin</artifactId>
|
||||
<extensions>true</extensions>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>manifest</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Bundle-Description>jakarta.websocket.client Implementation</Bundle-Description>
|
||||
<Export-Package>
|
||||
org.eclipse.jetty.websocket.jakarta.*;version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}"
|
||||
</Export-Package>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Bundle-Description>jakarta.websocket.client Implementation</Bundle-Description>
|
||||
<Export-Package>
|
||||
org.eclipse.jetty.websocket.jakarta.*;version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}"
|
||||
</Export-Package>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
|
|
@ -61,20 +61,18 @@
|
|||
<goals>
|
||||
<goal>manifest</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Bundle-Description>jakarta.websocket.server Implementation</Bundle-Description>
|
||||
<Export-Package>
|
||||
org.eclipse.jetty.websocket.jakarta.server.*;version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}"
|
||||
</Export-Package>
|
||||
<Require-Capability>osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)";resolution:=optional</Require-Capability>
|
||||
<Provide-Capability>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Bundle-Description>jakarta.websocket.server Implementation</Bundle-Description>
|
||||
<Export-Package>
|
||||
org.eclipse.jetty.websocket.jakarta.server.*;version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}"
|
||||
</Export-Package>
|
||||
<Require-Capability>osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)";resolution:=optional</Require-Capability>
|
||||
<Provide-Capability>
|
||||
osgi.serviceloader;osgi.serviceloader=org.eclipse.jetty.ee9.webapp.Configuration,osgi.serviceloader;osgi.serviceloader=jakarta.servlet.ServletContainerInitializer,osgi.serviceloader;osgi.serviceloader=jakarta.websocket.server.ServerEndpointConfig$Configurator
|
||||
</Provide-Capability>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</Provide-Capability>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
|
|
@ -77,21 +77,14 @@
|
|||
<groupId>org.apache.felix</groupId>
|
||||
<artifactId>maven-bundle-plugin</artifactId>
|
||||
<extensions>true</extensions>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>manifest</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Bundle-Description>jakarta.websocket Integration Tests</Bundle-Description>
|
||||
<Export-Package>
|
||||
org.eclipse.jetty.websocket.jakarta.tests.*;version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}"
|
||||
</Export-Package>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Bundle-Description>jakarta.websocket Integration Tests</Bundle-Description>
|
||||
<Export-Package>
|
||||
org.eclipse.jetty.websocket.jakarta.tests.*;version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}"
|
||||
</Export-Package>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
|
|
@ -64,9 +64,12 @@
|
|||
<configuration>
|
||||
<instructions>
|
||||
<Bundle-Description>Jetty Websocket Server</Bundle-Description>
|
||||
<Require-Capability>osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)";resolution:=optional</Require-Capability>
|
||||
<Require-Capability>
|
||||
osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)";resolution:=optional
|
||||
</Require-Capability>
|
||||
<Provide-Capability>
|
||||
osgi.serviceloader;osgi.serviceloader=org.eclipse.jetty.ee9.webapp.Configuration,osgi.serviceloader;osgi.serviceloader=jakarta.servlet.ServletContainerInitializer
|
||||
osgi.serviceloader;osgi.serviceloader=org.eclipse.jetty.ee9.webapp.Configuration,
|
||||
osgi.serviceloader;osgi.serviceloader=jakarta.servlet.ServletContainerInitializer
|
||||
</Provide-Capability>
|
||||
</instructions>
|
||||
</configuration>
|
||||
|
|
|
@ -98,21 +98,14 @@
|
|||
<groupId>org.apache.felix</groupId>
|
||||
<artifactId>maven-bundle-plugin</artifactId>
|
||||
<extensions>true</extensions>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>manifest</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Bundle-Description>jetty.websocket Integration Tests</Bundle-Description>
|
||||
<Export-Package>
|
||||
org.eclipse.jetty.websocket.jetty.tests.*;version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}"
|
||||
</Export-Package>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Bundle-Description>jetty.websocket Integration Tests</Bundle-Description>
|
||||
<Export-Package>
|
||||
org.eclipse.jetty.websocket.jetty.tests.*;version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}"
|
||||
</Export-Package>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
|
|
|
@ -50,20 +50,13 @@
|
|||
<groupId>org.apache.felix</groupId>
|
||||
<artifactId>maven-bundle-plugin</artifactId>
|
||||
<extensions>true</extensions>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>manifest</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Export-Package>
|
||||
org.eclipse.jetty.gcloud.session.*;version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}"
|
||||
</Export-Package>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Export-Package>
|
||||
org.eclipse.jetty.gcloud.session.*;version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}"
|
||||
</Export-Package>
|
||||
</instructions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<description>Generates a (maven based) P2 Updatesite</description>
|
||||
<packaging>pom</packaging>
|
||||
<properties>
|
||||
<tycho-version>2.5.0</tycho-version>
|
||||
<tycho-version>2.7.3</tycho-version>
|
||||
</properties>
|
||||
<build>
|
||||
<plugins>
|
||||
|
|
71
pom.xml
71
pom.xml
|
@ -27,31 +27,31 @@
|
|||
<apache.httpclient.version>4.5.13</apache.httpclient.version>
|
||||
<apache.httpcore.version>4.4.15</apache.httpcore.version>
|
||||
<asciidoctorj.version>2.5.3</asciidoctorj.version>
|
||||
<asciidoctorj-diagram.version>2.2.1</asciidoctorj-diagram.version>
|
||||
<asm.version>9.2</asm.version>
|
||||
<awaitility.version>4.1.1</awaitility.version>
|
||||
<bndlib.version>5.3.0</bndlib.version>
|
||||
<asm.version>9.3</asm.version>
|
||||
<awaitility.version>4.2.0</awaitility.version>
|
||||
<bndlib.version>6.2.0</bndlib.version>
|
||||
<build-support.version>1.5</build-support.version>
|
||||
<checkstyle.version>9.2.1</checkstyle.version>
|
||||
<checkstyle.version>10.2</checkstyle.version>
|
||||
<commons-codec.version>1.15</commons-codec.version>
|
||||
<commons-lang3.version>3.12.0</commons-lang3.version>
|
||||
<conscrypt.version>2.5.2</conscrypt.version>
|
||||
<disruptor.version>3.4.2</disruptor.version>
|
||||
<felix.version>7.0.3</felix.version>
|
||||
<findbugs.jsr305.version>3.0.2</findbugs.jsr305.version>
|
||||
<google.errorprone.version>2.10.0</google.errorprone.version>
|
||||
<grpc.version>1.43.1</grpc.version>
|
||||
<gson.version>2.8.9</gson.version>
|
||||
<guava.version>31.0.1-jre</guava.version>
|
||||
<guice.version>5.0.1</guice.version>
|
||||
<google.errorprone.version>2.13.1</google.errorprone.version>
|
||||
<grpc.version>1.46.0</grpc.version>
|
||||
<gson.version>2.9.0</gson.version>
|
||||
<guava.version>31.1-jre</guava.version>
|
||||
<guice.version>5.1.0</guice.version>
|
||||
<hamcrest.version>2.2</hamcrest.version>
|
||||
<hazelcast.version>4.2.4</hazelcast.version>
|
||||
<infinispan.version>11.0.11.Final</infinispan.version>
|
||||
<infinispan.protostream.version>4.3.4.Final</infinispan.protostream.version>
|
||||
<jackson-databind.version>2.13.0</jackson-databind.version>
|
||||
<jamon.version>2.82</jamon.version>
|
||||
<jboss.logging.version>3.4.3.Final</jboss.logging.version>
|
||||
<jboss-logging.version>2.2.1.Final</jboss-logging.version>
|
||||
<hawtio.version>2.14.5</hawtio.version>
|
||||
<hazelcast.version>4.2.5</hazelcast.version>
|
||||
<infinispan.protostream.version>4.4.3.Final</infinispan.protostream.version>
|
||||
<infinispan.version>11.0.15.Final</infinispan.version>
|
||||
<jackson.databind.version>2.13.2.2</jackson.databind.version>
|
||||
<jboss.logging.annotations.version>2.2.1.Final</jboss.logging.annotations.version>
|
||||
<jboss.logging.processor.version>2.2.1.Final</jboss.logging.processor.version>
|
||||
<jboss.logging.version>3.5.0.Final</jboss.logging.version>
|
||||
<jboss-logmanager.version>2.1.18.Final</jboss-logmanager.version>
|
||||
<jboss-threads.version>3.1.0.Final</jboss-threads.version>
|
||||
<jetty-assembly-descriptors.version>1.1</jetty-assembly-descriptors.version>
|
||||
|
@ -70,18 +70,21 @@
|
|||
<json-smart.version>2.4.7</json-smart.version>
|
||||
<jsp.impl.version>10.0.10</jsp.impl.version>
|
||||
<junit.version>5.8.2</junit.version>
|
||||
<kerb-simplekdc.version>2.0.1</kerb-simplekdc.version>
|
||||
<log4j2.version>2.17.1</log4j2.version>
|
||||
<logback.version>1.3.0-alpha12</logback.version>
|
||||
<mariadb.version>2.7.4</mariadb.version>
|
||||
<kerb-simplekdc.version>2.0.2</kerb-simplekdc.version>
|
||||
<log4j2.version>2.17.2</log4j2.version>
|
||||
<logback.version>1.3.0-alpha15</logback.version>
|
||||
<mariadb.version>3.0.4</mariadb.version>
|
||||
<mariadb.docker.version>10.3.6</mariadb.docker.version>
|
||||
<maven.deps.version>3.8.4</maven.deps.version>
|
||||
<maven-artifact-transfer.version>0.13.1</maven-artifact-transfer.version>
|
||||
<maven.resolver.version>1.7.3</maven.resolver.version>
|
||||
<mongodb.version>3.2.2</mongodb.version>
|
||||
<maven.resolver.version>1.8.0</maven.resolver.version>
|
||||
<maven.version>3.8.4</maven.version>
|
||||
<mongodb.version>3.12.11</mongodb.version>
|
||||
<openpojo.version>0.9.1</openpojo.version>
|
||||
<org.osgi.annotation.version>8.0.1</org.osgi.annotation.version>
|
||||
<org.osgi.core.version>6.0.0</org.osgi.core.version>
|
||||
<org.osgi.util.function.version>1.2.0</org.osgi.util.function.version>
|
||||
<org.osgi.util.promise.version>1.2.0</org.osgi.util.promise.version>
|
||||
<plexus-component-annotations.version>2.1.1</plexus-component-annotations.version>
|
||||
<plexus-utils.version>3.4.1</plexus-utils.version>
|
||||
<slf4j.version>2.0.0-alpha6</slf4j.version>
|
||||
|
@ -753,7 +756,6 @@
|
|||
<groupId>org.apache.felix</groupId>
|
||||
<artifactId>maven-bundle-plugin</artifactId>
|
||||
<version>${maven.bundle.plugin.version}</version>
|
||||
<extensions>true</extensions>
|
||||
<configuration>
|
||||
<supportedProjectTypes>
|
||||
<supportedProjectType>jar</supportedProjectType>
|
||||
|
@ -1493,12 +1495,12 @@
|
|||
<dependency>
|
||||
<groupId>org.jboss.logging</groupId>
|
||||
<artifactId>jboss-logging-annotations</artifactId>
|
||||
<version>${jboss-logging.version}</version>
|
||||
<version>${jboss.logging.annotations.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jboss.logging</groupId>
|
||||
<artifactId>jboss-logging-processor</artifactId>
|
||||
<version>${jboss-logging.version}</version>
|
||||
<version>${jboss.logging.processor.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jboss.logmanager</groupId>
|
||||
|
@ -1539,14 +1541,31 @@
|
|||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.osgi</groupId>
|
||||
<!-- older artifact location, some of our transitive deps still use this coordinate -->
|
||||
<artifactId>org.osgi.core</artifactId>
|
||||
<version>${org.osgi.core.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.osgi</groupId>
|
||||
<!-- newer artifact location, some of our transitive deps use this up to date coordinate -->
|
||||
<artifactId>osgi.core</artifactId>
|
||||
<version>${org.osgi.core.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.osgi</groupId>
|
||||
<artifactId>osgi.annotation</artifactId>
|
||||
<version>${org.osgi.annotation.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.osgi</groupId>
|
||||
<artifactId>org.osgi.util.function</artifactId>
|
||||
<version>${org.osgi.util.function.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.osgi</groupId>
|
||||
<artifactId>org.osgi.util.promise</artifactId>
|
||||
<version>${org.osgi.util.promise.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.ow2.asm</groupId>
|
||||
<artifactId>asm</artifactId>
|
||||
|
|
Loading…
Reference in New Issue