diff --git a/.github/workflows/maven-package.yml b/.github/workflows/maven-package.yml
index 280c93a2c..c283960a6 100644
--- a/.github/workflows/maven-package.yml
+++ b/.github/workflows/maven-package.yml
@@ -3,9 +3,9 @@ name: Jakarta REST CI
on:
push:
- branches: [ master, 4.0-SNAPSHOT ]
+ branches: [ main ]
pull_request:
- branches: [ master, 4.0-SNAPSHOT ]
+ branches: [ main ]
jobs:
build:
@@ -13,14 +13,14 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- java: [ '11', '17' ]
+ java: ['17', '21' ]
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: Set up JDK ${{ matrix.java }}
- uses: actions/setup-java@v2
+ uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
- name: Build with Maven
- run: mvn -B verify
+ run: mvn -B -ntp clean verify -Djaxrs.all.build
diff --git a/etc/config/checkstyle.xml b/etc/config/checkstyle.xml
index 254bc1b48..2c3f6c8fd 100644
--- a/etc/config/checkstyle.xml
+++ b/etc/config/checkstyle.xml
@@ -1,7 +1,7 @@
-
diff --git a/examples/pom.xml b/examples/pom.xml
index 62d5e2693..1939e03ed 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -1,7 +1,7 @@
- org.codehaus.mojo
- buildnumber-maven-plugin
- 1.4
-
- {0,date,MM/dd/yyyy hh:mm aa}
-
- - timestamp
-
-
-
-
- validate
-
- create
-
-
-
-
-
- maven-javadoc-plugin
- 3.3.0
-
- JAX-RS ${project.version} API Specification
-
- Oracle
- and/or its affiliates. All Rights Reserved.
- ]]>
-
-
-
-
-
- attach-javadocs
-
- jar
-
-
-
-
-
- maven-source-plugin
- 3.2.1
-
-
- attach-sources
-
- jar-no-fork
-
-
-
-
-
- maven-jxr-plugin
- 3.1.1
-
-
-
- jxr
-
- validate
-
-
-
-
- maven-checkstyle-plugin
- 3.1.2
-
- ${project.build.directory}/checkstyle
- ${project.build.directory}/checkstyle/checkstyle-result.xml
- ${basedir}/../etc/config/checkstyle.xml
- true
-
-
-
- com.puppycrawl.tools
- checkstyle
- 8.44
-
-
-
-
-
- checkstyle
-
- validate
-
-
-
-
- org.glassfish.copyright
- glassfish-copyright-maven-plugin
- 1.39
-
- ${basedir}/../etc/config/copyright-exclude
-
- git
-
- false
-
- true
-
- true
-
- false
-
- false
-
-
-
-
maven-compiler-plugin
@@ -248,34 +64,19 @@
${project.version}
-
- jakarta.xml.bind
- jakarta.xml.bind-api
- 3.0.1
-
-
jakarta.enterprise
jakarta.enterprise.cdi-api
- 3.0.0
jakarta.enterprise.concurrent
jakarta.enterprise.concurrent-api
- 2.0.0
-
-
-
- jakarta.ejb
- jakarta.ejb-api
- 4.0.0
jakarta.validation
jakarta.validation-api
- 3.0.0
diff --git a/examples/src/main/java/jaxrs/examples/async/LongRunningEjbResource.java b/examples/src/main/java/jaxrs/examples/async/LongRunningEjbResource.java
deleted file mode 100644
index 02a9f356a..000000000
--- a/examples/src/main/java/jaxrs/examples/async/LongRunningEjbResource.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2012, 2020 Oracle and/or its affiliates. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Distribution License v. 1.0, which is available at
- * http://www.eclipse.org/org/documents/edl-v10.php.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-package jaxrs.examples.async;
-
-import jakarta.ejb.Asynchronous;
-import jakarta.ejb.Stateless;
-import jakarta.ws.rs.GET;
-import jakarta.ws.rs.Path;
-import jakarta.ws.rs.container.AsyncResponse;
-import jakarta.ws.rs.container.Suspended;
-
-/**
- * Example of a long running EJB resource.
- *
- * @author Marek Potociar
- */
-@Stateless
-@Path("/")
-public class LongRunningEjbResource {
- @GET
- @Asynchronous
- public void longRunningOperation(@Suspended AsyncResponse ar) {
- final String result = executeLongRunningOperation();
- ar.resume(result);
- }
-
- private String executeLongRunningOperation() {
- try {
- Thread.sleep(10000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- return "done";
- }
-}
diff --git a/examples/src/main/java/jaxrs/examples/client/BasicExamples.java b/examples/src/main/java/jaxrs/examples/client/BasicExamples.java
index 2ee485e9f..1ac608237 100644
--- a/examples/src/main/java/jaxrs/examples/client/BasicExamples.java
+++ b/examples/src/main/java/jaxrs/examples/client/BasicExamples.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2024 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Distribution License v. 1.0, which is available at
@@ -41,7 +41,6 @@
import jakarta.ws.rs.ext.ReaderInterceptorContext;
import jakarta.ws.rs.ext.WriterInterceptor;
import jakarta.ws.rs.ext.WriterInterceptorContext;
-import jakarta.xml.bind.annotation.XmlRootElement;
import jaxrs.examples.client.custom.ThrottledClient;
import static jakarta.ws.rs.client.Entity.form;
@@ -59,7 +58,6 @@ public class BasicExamples {
/**
* Customer bean.
*/
- @XmlRootElement
public static class Customer {
private final String name;
diff --git a/examples/src/main/java/jaxrs/examples/client/spec/SpecExamples.java b/examples/src/main/java/jaxrs/examples/client/spec/SpecExamples.java
index bf79a3740..a98cea335 100644
--- a/examples/src/main/java/jaxrs/examples/client/spec/SpecExamples.java
+++ b/examples/src/main/java/jaxrs/examples/client/spec/SpecExamples.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2024 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Distribution License v. 1.0, which is available at
@@ -21,7 +21,6 @@
import jakarta.ws.rs.core.Response;
import static jakarta.ws.rs.client.Entity.entity;
-import jakarta.xml.bind.annotation.XmlRootElement;
import jaxrs.examples.client.custom.ThrottledClient;
/**
@@ -33,7 +32,6 @@ public class SpecExamples {
/**
* Customer bean.
*/
- @XmlRootElement
public static class Customer {
private final String name;
diff --git a/examples/src/main/java/jaxrs/examples/link/clusterservice/Cluster.java b/examples/src/main/java/jaxrs/examples/link/clusterservice/Cluster.java
index cba119685..d2f083565 100644
--- a/examples/src/main/java/jaxrs/examples/link/clusterservice/Cluster.java
+++ b/examples/src/main/java/jaxrs/examples/link/clusterservice/Cluster.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2017 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2024 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Distribution License v. 1.0, which is available at
@@ -13,14 +13,11 @@
import java.util.ArrayList;
import java.util.List;
-import jakarta.xml.bind.annotation.XmlRootElement;
-
/**
* Cluster class.
*
* @author Santiago.Pericas-Geertsen@oracle.com
*/
-@XmlRootElement
public class Cluster {
enum Status {
diff --git a/examples/src/main/java/jaxrs/examples/link/clusterservice/Machine.java b/examples/src/main/java/jaxrs/examples/link/clusterservice/Machine.java
index 12b5a571b..4ea9414c7 100644
--- a/examples/src/main/java/jaxrs/examples/link/clusterservice/Machine.java
+++ b/examples/src/main/java/jaxrs/examples/link/clusterservice/Machine.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2017 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2024 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Distribution License v. 1.0, which is available at
@@ -10,14 +10,11 @@
package jaxrs.examples.link.clusterservice;
-import jakarta.xml.bind.annotation.XmlRootElement;
-
/**
* Machine class.
*
* @author Santiago.Pericas-Geertsen@oracle.com
*/
-@XmlRootElement
public class Machine {
enum Status {
diff --git a/jaxrs-api/pom.xml b/jaxrs-api/pom.xml
index af83d8591..ac9d90c06 100644
--- a/jaxrs-api/pom.xml
+++ b/jaxrs-api/pom.xml
@@ -1,7 +1,7 @@
- skip-tests
-
- false
-
-
- true
-
-
-
-
${project.artifactId}
-
-
-
- maven-jar-plugin
- 3.2.0
-
-
-
- org.codehaus.mojo
- buildnumber-maven-plugin
- 1.4
-
- {0,date,MM/dd/yyyy hh:mm aa}
-
- - timestamp
-
-
-
-
- validate
-
- create
-
-
-
-
-
- org.apache.felix
- maven-bundle-plugin
- ${maven.bundle.plugin.version}
- true
-
-
- <_failok>true
- ${buildNumber}
- Jakarta RESTful Web Services API (JAX-RS)
- ${project.version}
- jakarta.ws.rs-api
- *
- ${api.package}
- ${project.version}
- ${spec.version}
- Eclipse Foundation
- ${spec.version}
- <_versionpolicy>[$(version;==;$(@)),$(version;+;$(@)))
- <_nodefaultversion>false
- osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))"
-
-
-
-
- osgi-bundle
- package
-
- bundle
-
-
-
-
-
- maven-javadoc-plugin
- ${maven.javadoc.plugin.version}
-
-
- ${apidocs.title}
- true
-
- Copyright © 2018, 2020 Eclipse Foundation.
Use is subject to license terms.]]>
-
- true
-
-
- module-info.java
-
-
-
-
- attach-javadocs
-
- jar
-
-
-
-
-
- maven-source-plugin
- 3.2.1
-
-
- attach-sources
-
- jar-no-fork
-
-
-
-
-
-
- org.codehaus.mojo
- build-helper-maven-plugin
- 3.2.0
-
-
- add-legal-resource
- generate-resources
-
- add-resource
-
-
-
-
- ${legal.doc.folder}
-
- NOTICE.md
- LICENSE.md
-
- META-INF
-
-
-
-
-
-
-
- maven-jxr-plugin
- 3.1.1
-
-
-
- jxr
-
- validate
-
-
-
-
- maven-checkstyle-plugin
- 3.1.2
-
- ${project.build.directory}/checkstyle
- ${project.build.directory}/checkstyle/checkstyle-result.xml
- ${basedir}/../etc/config/checkstyle.xml
- **/module-info.java
- true
-
-
-
- com.puppycrawl.tools
- checkstyle
- 8.44
-
-
-
-
-
- checkstyle
-
- validate
-
-
-
-
- org.glassfish.copyright
- glassfish-copyright-maven-plugin
- 1.39
-
- ${basedir}/../etc/config/copyright-exclude
-
- git
-
- false
-
- true
-
- true
-
- false
-
- false
-
-
-
- maven-surefire-plugin
- ${maven.surefire.plugin.version}
-
- --add-modules jakarta.xml.bind
-
-
-
- maven-compiler-plugin
- ${maven.compiler.plugin.version}
-
-
-
org.apache.felix
@@ -331,6 +60,15 @@
maven-checkstyle-plugin
+
+ maven-surefire-plugin
+
+
+
+ true
+
+
+
org.glassfish.copyright
glassfish-copyright-maven-plugin
@@ -343,65 +81,96 @@
+
+ jakarta.activation
+ jakarta.activation-api
+ provided
+
+
+ jakarta.inject
+ jakarta.inject-api
+
+
+ jakarta.enterprise
+ jakarta.enterprise.cdi-api
+
jakarta.xml.bind
jakarta.xml.bind-api
- ${jaxb.api.version}
- provided
- true
- jakarta.activation
- jakarta.activation-api
- ${activation.api.version}
- provided
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
+
+
+ org.glassfish.jaxb
+ codemodel
+ test
+
+
+ org.glassfish.jaxb
+ jaxb-core
+ test
+
+
+ org.glassfish.jaxb
+ jaxb-jxc
+ test
org.glassfish.jaxb
jaxb-runtime
- ${jaxb.impl.version}
test
- org.junit.jupiter
- junit-jupiter-api
- 5.8.0-M1
+ org.glassfish.jaxb
+ txw2
test
+
+ org.glassfish.jaxb
+ jaxb-xjc
+ test
+
+
+ org.glassfish.jaxb
+ xsom
+ test
+
+
+
+ com.sun.istack
+ istack-commons-runtime
+ test
+
+
+ com.sun.istack
+ istack-commons-tools
+ test
+
+
+ com.sun.xml.bind.external
+ relaxng-datatype
+ test
+
+
+ com.sun.xml.bind.external
+ rngom
+ test
+
+
org.hamcrest
hamcrest
- 2.2
test
org.mockito
mockito-core
- 3.11.1
test
-
- Jakarta RESTful Web Services ${spec.version} API Specification ${spec.version.revision}
- 11
-
- 5.1.2
- 3.10.1
- ${java.version}
- 3.3.0
- 3.0.0-M7
-
- jakarta.ws.rs
- UTF-8
- false
- 3.1
-
-
- 4.0.0
- 4.0.0
- 2.1.0
- ${project.basedir}/..
-
-
diff --git a/jaxrs-spec/README.md b/jaxrs-spec/README.md
index 6dcceccc0..6699c1ef0 100644
--- a/jaxrs-spec/README.md
+++ b/jaxrs-spec/README.md
@@ -8,7 +8,7 @@ Building
Prerequisites:
-* JDK 11+
+* JDK 17+
* Maven 3.6.3+
Run the full build:
diff --git a/jaxrs-spec/pom.xml b/jaxrs-spec/pom.xml
index 7395c62cb..907f42d7c 100644
--- a/jaxrs-spec/pom.xml
+++ b/jaxrs-spec/pom.xml
@@ -1,7 +1,7 @@
- org.netbeans.tools
- sigtest-maven-plugin
- 1.4
+ org.junit.jupiter
+ junit-jupiter
+ test
+
+
+
+
+ maven-compiler-plugin
+
+
+ maven-surefire-plugin
+
+
+ maven-jar-plugin
+
+
+ maven-source-plugin
+
+
+ attach-sources
+
+ jar
+
+
+
+
+
+
+
+
+
+
+ record-signature
+
+ false
+
+
+
+
+ jakarta.tck
+ sigtest-maven-plugin
+ 2.2
+
+
+
+ generate
+
+
+
+
+ ${project.build.directory}/jakarta.ws.rs.sig_${project.parent.version}
+
+ jakarta.ws.rs,
+ jakarta.ws.rs.client,
+ jakarta.ws.rs.core,
+ jakarta.ws.rs.container,
+ jakarta.ws.rs.ext,
+ jakarta.ws.rs.sse
+
+ false
+
+
+
+
+
+
\ No newline at end of file
diff --git a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/common/JAXRSCommonClient.java b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/common/JAXRSCommonClient.java
index e50a1f2b0..d5c06b142 100644
--- a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/common/JAXRSCommonClient.java
+++ b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/common/JAXRSCommonClient.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2021 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2024 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -715,29 +715,29 @@ protected void clearProperty(Property key) {
assertEquals(T first, T second, Object... message) {
if (first == null && second == null)
return;
- assertFalse(first == null && second != null, message.toString());
- assertFalse(first != null && second == null, message.toString());
+ assertFalse(first == null && second != null, objectsToString(message));
+ assertFalse(first != null && second == null, objectsToString(message));
if (first instanceof Comparable)
- assertTrue(((Comparable) first).compareTo(second) == 0, message.toString());
+ assertTrue(((Comparable) first).compareTo(second) == 0, objectsToString(message));
else
- assertTrue(first.equals(second), message.toString());
+ assertTrue(first.equals(second), objectsToString(message));
}
public static void //
assertEqualsInt(int first, int second, Object... message) {
- assertTrue(first == second, message.toString());
+ assertTrue(first == second, objectsToString(message));
}
public static void //
assertEqualsLong(long first, long second, Object... message)
{
- assertTrue(first == second, message.toString());
+ assertTrue(first == second, objectsToString(message));
}
public static void //
assertEqualsBool(boolean first, boolean second, Object... message)
{
- assertTrue(first == second, message.toString());
+ assertTrue(first == second, objectsToString(message));
}
/**
@@ -751,7 +751,7 @@ protected void clearProperty(Property key) {
*/
public static void //
assertNull(Object object, Object... message) {
- assertTrue(object == null, message.toString());
+ assertTrue(object == null, objectsToString(message));
}
/**
@@ -765,7 +765,7 @@ protected void clearProperty(Property key) {
*/
public static void //
assertNotNull(Object object, Object... message) {
- assertTrue(object != null, message.toString());
+ assertTrue(object != null, objectsToString(message));
}
/**
@@ -795,7 +795,7 @@ public static void fault(Object... objects) throws Fault {
*/
public static void assertContains(String string, String substring,
Object... message) {
- assertTrue(string.contains(substring), message.toString());
+ assertTrue(string.contains(substring), objectsToString(message));
}
/**
@@ -812,7 +812,7 @@ public static void assertContains(String string, String substring,
*/
public static void assertContainsIgnoreCase(String string, String substring,
Object... message) {
- assertTrue(string.toLowerCase().contains(substring.toLowerCase()), message.toString());
+ assertTrue(string.toLowerCase().contains(substring.toLowerCase()), objectsToString(message));
}
/**
@@ -828,7 +828,7 @@ public static void assertContainsIgnoreCase(String string, String substring,
*/
public static void assertContains(T text, T subtext, Object... message)
{
- assertContains(text.toString(), subtext.toString(), message.toString());
+ assertContains(text.toString(), subtext.toString(), objectsToString(message));
}
/**
@@ -845,7 +845,7 @@ public static void assertContains(T text, T subtext, Object... message)
*/
public static void assertContainsIgnoreCase(T text, T subtext,
Object... message) {
- assertContainsIgnoreCase(text.toString(), subtext.toString(), message.toString());
+ assertContainsIgnoreCase(text.toString(), subtext.toString(), objectsToString(message));
}
/**
diff --git a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/ee/rs/container/responsecontext/ResponseFilter.java b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/ee/rs/container/responsecontext/ResponseFilter.java
index 0bf416f1b..7c7c3c929 100644
--- a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/ee/rs/container/responsecontext/ResponseFilter.java
+++ b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/ee/rs/container/responsecontext/ResponseFilter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2024 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -317,6 +317,11 @@ public synchronized void write(byte[] b, int off, int len)
write(b);
}
+ @Override
+ public void close() throws IOException {
+ stream.close();
+ }
+
public final byte[] intToByteArray(int value) {
return new byte[] { (byte) (value & 0xff) };
}
diff --git a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/ee/rs/core/uriinfo/JAXRSClientIT.java b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/ee/rs/core/uriinfo/JAXRSClientIT.java
index 3fbaaa58c..52a001c55 100644
--- a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/ee/rs/core/uriinfo/JAXRSClientIT.java
+++ b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/ee/rs/core/uriinfo/JAXRSClientIT.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2024 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -34,6 +34,7 @@
import org.junit.jupiter.api.TestInfo;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Disabled;
/*
* @class.setup_props: webServerHost;
@@ -414,6 +415,7 @@ public void getMatchedURIsTest2() throws Fault {
* obtained from an injected UriInfo
*/
@Test
+ @Disabled
public void getNormalizedUriTest() throws Fault {
setProperty(Property.REQUEST, buildRequest(GET, URIInfoTest.DECODED));
invoke();
diff --git a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/jaxrs21/ee/sse/ssebroadcaster/JAXRSClientIT.java b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/jaxrs21/ee/sse/ssebroadcaster/JAXRSClientIT.java
index 2a6e1dd92..677e89514 100644
--- a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/jaxrs21/ee/sse/ssebroadcaster/JAXRSClientIT.java
+++ b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/jaxrs21/ee/sse/ssebroadcaster/JAXRSClientIT.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017, 2021 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2024 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -17,6 +17,7 @@
package ee.jakarta.tck.ws.rs.jaxrs21.ee.sse.ssebroadcaster;
import java.util.List;
+import java.util.ArrayList;
import java.io.InputStream;
import java.io.IOException;
@@ -188,17 +189,20 @@ public void sseBroadcastTest() throws Fault {
}
}
- for (int i = 0; i != CLIENTS; i++) {
- List events = clients[i].getEvents();
- assertEquals(events.size(), MSG_MAX + 1,
- "Received unexpected number of events", events.size());
- assertTrue(events.get(0).contains("WELCOME"),
- "Received unexpected message"+ events.get(0));
- for (int j = 0; j != MSG_MAX; j++)
- assertEquals(events.get(j + 1), SSEMessage.MESSAGE + j,
- "Received unexpected message", events.get(j + 1));
+ List expectedEvents = new ArrayList();
+ for (int j = 0; j != MSG_MAX; j++) {
+ expectedEvents.add(SSEMessage.MESSAGE + j);
}
+ for (int i = 0; i != CLIENTS; i++) {
+ List events = clients[i].getEvents();
+ assertEquals(events.size(), MSG_MAX + 1,
+ "Received unexpected number of events", events.size());
+ assertTrue(events.get(0).contains("WELCOME"),
+ "Received unexpected message"+ events.get(0));
+ assertTrue(events.containsAll(expectedEvents), "An expected message was not received");
+ }
+
setProperty(Property.REQUEST, buildRequest(Request.GET, "broadcast/check"));
invoke();
String response = getResponseBody();
diff --git a/jaxrs-tck/src/main/resources/ee/jakarta/tck/ws/rs/signaturetest/jakarta.ws.rs.sig_3.1.0 b/jaxrs-tck/src/main/resources/ee/jakarta/tck/ws/rs/signaturetest/jakarta.ws.rs.sig_4.0.0
similarity index 98%
rename from jaxrs-tck/src/main/resources/ee/jakarta/tck/ws/rs/signaturetest/jakarta.ws.rs.sig_3.1.0
rename to jaxrs-tck/src/main/resources/ee/jakarta/tck/ws/rs/signaturetest/jakarta.ws.rs.sig_4.0.0
index 9838fc9e4..db05c75e2 100644
--- a/jaxrs-tck/src/main/resources/ee/jakarta/tck/ws/rs/signaturetest/jakarta.ws.rs.sig_3.1.0
+++ b/jaxrs-tck/src/main/resources/ee/jakarta/tck/ws/rs/signaturetest/jakarta.ws.rs.sig_4.0.0
@@ -1,5 +1,5 @@
#Signature file v4.1
-#Version 3.1.0
+#Version 4.0.0
CLSS public abstract interface !annotation jakarta.ws.rs.ApplicationPath
anno 0 java.lang.annotation.Documented()
@@ -507,6 +507,7 @@ supr java.lang.Object
hcls CreateErrorMessageAction
CLSS public abstract interface jakarta.ws.rs.client.ClientRequestContext
+meth public abstract boolean containsHeaderString(java.lang.String,java.lang.String,java.util.function.Predicate)
meth public abstract boolean hasEntity()
meth public abstract jakarta.ws.rs.client.Client getClient()
meth public abstract jakarta.ws.rs.core.Configuration getConfiguration()
@@ -536,12 +537,14 @@ meth public abstract void setEntityStream(java.io.OutputStream)
meth public abstract void setMethod(java.lang.String)
meth public abstract void setProperty(java.lang.String,java.lang.Object)
meth public abstract void setUri(java.net.URI)
+meth public boolean containsHeaderString(java.lang.String,java.util.function.Predicate)
meth public boolean hasProperty(java.lang.String)
CLSS public abstract interface jakarta.ws.rs.client.ClientRequestFilter
meth public abstract void filter(jakarta.ws.rs.client.ClientRequestContext) throws java.io.IOException
CLSS public abstract interface jakarta.ws.rs.client.ClientResponseContext
+meth public abstract boolean containsHeaderString(java.lang.String,java.lang.String,java.util.function.Predicate)
meth public abstract boolean hasEntity()
meth public abstract boolean hasLink(java.lang.String)
meth public abstract int getLength()
@@ -564,6 +567,7 @@ meth public abstract java.util.Set getAllowedMethods()
meth public abstract void setEntityStream(java.io.InputStream)
meth public abstract void setStatus(int)
meth public abstract void setStatusInfo(jakarta.ws.rs.core.Response$StatusType)
+meth public boolean containsHeaderString(java.lang.String,java.util.function.Predicate)
CLSS public abstract interface jakarta.ws.rs.client.ClientResponseFilter
meth public abstract void filter(jakarta.ws.rs.client.ClientRequestContext,jakarta.ws.rs.client.ClientResponseContext) throws java.io.IOException
@@ -743,6 +747,8 @@ meth public abstract jakarta.ws.rs.client.WebTarget resolveTemplatesFromEncoded(
meth public abstract jakarta.ws.rs.core.UriBuilder getUriBuilder()
meth public abstract java.net.URI getUri()
+CLSS abstract interface jakarta.ws.rs.client.package-info
+
CLSS public abstract interface jakarta.ws.rs.container.AsyncResponse
fld public final static long NO_TIMEOUT = 0
meth public abstract !varargs java.util.Map,java.util.Collection>> register(java.lang.Class>,java.lang.Class>[])
@@ -767,6 +773,7 @@ CLSS public abstract interface jakarta.ws.rs.container.ConnectionCallback
meth public abstract void onDisconnect(jakarta.ws.rs.container.AsyncResponse)
CLSS public abstract interface jakarta.ws.rs.container.ContainerRequestContext
+meth public abstract boolean containsHeaderString(java.lang.String,java.lang.String,java.util.function.Predicate)
meth public abstract boolean hasEntity()
meth public abstract int getLength()
meth public abstract jakarta.ws.rs.core.MediaType getMediaType()
@@ -792,12 +799,14 @@ meth public abstract void setProperty(java.lang.String,java.lang.Object)
meth public abstract void setRequestUri(java.net.URI)
meth public abstract void setRequestUri(java.net.URI,java.net.URI)
meth public abstract void setSecurityContext(jakarta.ws.rs.core.SecurityContext)
+meth public boolean containsHeaderString(java.lang.String,java.util.function.Predicate)
meth public boolean hasProperty(java.lang.String)
CLSS public abstract interface jakarta.ws.rs.container.ContainerRequestFilter
meth public abstract void filter(jakarta.ws.rs.container.ContainerRequestContext) throws java.io.IOException
CLSS public abstract interface jakarta.ws.rs.container.ContainerResponseContext
+meth public abstract boolean containsHeaderString(java.lang.String,java.lang.String,java.util.function.Predicate)
meth public abstract boolean hasEntity()
meth public abstract boolean hasLink(java.lang.String)
meth public abstract int getLength()
@@ -827,6 +836,7 @@ meth public abstract void setEntity(java.lang.Object,java.lang.annotation.Annota
meth public abstract void setEntityStream(java.io.OutputStream)
meth public abstract void setStatus(int)
meth public abstract void setStatusInfo(jakarta.ws.rs.core.Response$StatusType)
+meth public boolean containsHeaderString(java.lang.String,java.util.function.Predicate)
CLSS public abstract interface jakarta.ws.rs.container.ContainerResponseFilter
meth public abstract void filter(jakarta.ws.rs.container.ContainerRequestContext,jakarta.ws.rs.container.ContainerResponseContext) throws java.io.IOException
@@ -857,6 +867,8 @@ intf java.lang.annotation.Annotation
CLSS public abstract interface jakarta.ws.rs.container.TimeoutHandler
meth public abstract void handleTimeout(jakarta.ws.rs.container.AsyncResponse)
+CLSS abstract interface jakarta.ws.rs.container.package-info
+
CLSS public abstract jakarta.ws.rs.core.AbstractMultivaluedMap<%0 extends java.lang.Object, %1 extends java.lang.Object>
cons public init(java.util.Map<{jakarta.ws.rs.core.AbstractMultivaluedMap%0},java.util.List<{jakarta.ws.rs.core.AbstractMultivaluedMap%1}>>)
fld protected final java.util.Map<{jakarta.ws.rs.core.AbstractMultivaluedMap%0},java.util.List<{jakarta.ws.rs.core.AbstractMultivaluedMap%1}>> store
@@ -1114,6 +1126,7 @@ fld public final static java.lang.String SET_COOKIE = "Set-Cookie"
fld public final static java.lang.String USER_AGENT = "User-Agent"
fld public final static java.lang.String VARY = "Vary"
fld public final static java.lang.String WWW_AUTHENTICATE = "WWW-Authenticate"
+meth public abstract boolean containsHeaderString(java.lang.String,java.lang.String,java.util.function.Predicate)
meth public abstract int getLength()
meth public abstract jakarta.ws.rs.core.MediaType getMediaType()
meth public abstract jakarta.ws.rs.core.MultivaluedMap getRequestHeaders()
@@ -1124,6 +1137,7 @@ meth public abstract java.util.List getRequestHeader(java.lang
meth public abstract java.util.List getAcceptableLanguages()
meth public abstract java.util.Locale getLanguage()
meth public abstract java.util.Map getCookies()
+meth public boolean containsHeaderString(java.lang.String,java.util.function.Predicate)
CLSS public abstract jakarta.ws.rs.core.Link
cons public init()
@@ -1199,6 +1213,7 @@ fld public final static jakarta.ws.rs.core.MediaType APPLICATION_JSON_PATCH_JSON
fld public final static jakarta.ws.rs.core.MediaType APPLICATION_JSON_TYPE
fld public final static jakarta.ws.rs.core.MediaType APPLICATION_OCTET_STREAM_TYPE
fld public final static jakarta.ws.rs.core.MediaType APPLICATION_SVG_XML_TYPE
+ anno 0 java.lang.Deprecated(boolean forRemoval=true, java.lang.String since="")
fld public final static jakarta.ws.rs.core.MediaType APPLICATION_XHTML_XML_TYPE
fld public final static jakarta.ws.rs.core.MediaType APPLICATION_XML_TYPE
fld public final static jakarta.ws.rs.core.MediaType MULTIPART_FORM_DATA_TYPE
@@ -1213,6 +1228,7 @@ fld public final static java.lang.String APPLICATION_JSON = "application/json"
fld public final static java.lang.String APPLICATION_JSON_PATCH_JSON = "application/json-patch+json"
fld public final static java.lang.String APPLICATION_OCTET_STREAM = "application/octet-stream"
fld public final static java.lang.String APPLICATION_SVG_XML = "application/svg+xml"
+ anno 0 java.lang.Deprecated(boolean forRemoval=true, java.lang.String since="")
fld public final static java.lang.String APPLICATION_XHTML_XML = "application/xhtml+xml"
fld public final static java.lang.String APPLICATION_XML = "application/xml"
fld public final static java.lang.String CHARSET_PARAMETER = "charset"
@@ -1636,6 +1652,8 @@ meth public abstract java.util.List build()
meth public static jakarta.ws.rs.core.Variant$VariantListBuilder newInstance()
supr java.lang.Object
+CLSS abstract interface jakarta.ws.rs.core.package-info
+
CLSS public abstract interface jakarta.ws.rs.ext.ContextResolver<%0 extends java.lang.Object>
meth public abstract {jakarta.ws.rs.ext.ContextResolver%0} getContext(java.lang.Class>)
@@ -1739,6 +1757,10 @@ meth public abstract void proceed() throws java.io.IOException
meth public abstract void setEntity(java.lang.Object)
meth public abstract void setOutputStream(java.io.OutputStream)
+CLSS abstract interface jakarta.ws.rs.ext.package-info
+
+CLSS abstract interface jakarta.ws.rs.package-info
+
CLSS public abstract interface jakarta.ws.rs.sse.InboundSseEvent
intf jakarta.ws.rs.sse.SseEvent
meth public abstract <%0 extends java.lang.Object> {%%0} readData(jakarta.ws.rs.core.GenericType<{%%0}>)
@@ -1795,7 +1817,7 @@ CLSS public abstract interface jakarta.ws.rs.sse.SseEventSink
intf java.lang.AutoCloseable
meth public abstract boolean isClosed()
meth public abstract java.util.concurrent.CompletionStage> send(jakarta.ws.rs.sse.OutboundSseEvent)
-meth public abstract void close()
+meth public abstract void close() throws java.io.IOException
CLSS public abstract interface jakarta.ws.rs.sse.SseEventSource
innr public abstract static Builder
@@ -1818,6 +1840,8 @@ meth public abstract jakarta.ws.rs.sse.SseEventSource build()
meth public abstract jakarta.ws.rs.sse.SseEventSource$Builder reconnectingEvery(long,java.util.concurrent.TimeUnit)
supr java.lang.Object
+CLSS abstract interface jakarta.ws.rs.sse.package-info
+
CLSS public abstract jakarta.xml.bind.annotation.adapters.XmlAdapter<%0 extends java.lang.Object, %1 extends java.lang.Object>
cons protected init()
meth public abstract {jakarta.xml.bind.annotation.adapters.XmlAdapter%0} marshal({jakarta.xml.bind.annotation.adapters.XmlAdapter%1}) throws java.lang.Exception
@@ -1850,8 +1874,10 @@ meth public abstract !hasdefault java.lang.String since()
CLSS public abstract java.lang.Enum<%0 extends java.lang.Enum<{java.lang.Enum%0}>>
cons protected init(java.lang.String,int)
+innr public final static EnumDesc
intf java.io.Serializable
intf java.lang.Comparable<{java.lang.Enum%0}>
+intf java.lang.constant.Constable
meth protected final java.lang.Object clone() throws java.lang.CloneNotSupportedException
meth protected final void finalize()
meth public final boolean equals(java.lang.Object)
@@ -1860,6 +1886,7 @@ meth public final int hashCode()
meth public final int ordinal()
meth public final java.lang.Class<{java.lang.Enum%0}> getDeclaringClass()
meth public final java.lang.String name()
+meth public final java.util.Optional> describeConstable()
meth public java.lang.String toString()
meth public static <%0 extends java.lang.Enum<{%%0}>> {%%0} valueOf(java.lang.Class<{%%0}>,java.lang.String)
supr java.lang.Object
@@ -1954,6 +1981,9 @@ CLSS public abstract interface !annotation java.lang.annotation.Target
intf java.lang.annotation.Annotation
meth public abstract java.lang.annotation.ElementType[] value()
+CLSS public abstract interface java.lang.constant.Constable
+meth public abstract java.util.Optional extends java.lang.constant.ConstantDesc> describeConstable()
+
CLSS public abstract interface java.util.Map<%0 extends java.lang.Object, %1 extends java.lang.Object>
innr public abstract interface static Entry
meth public !varargs static <%0 extends java.lang.Object, %1 extends java.lang.Object> java.util.Map<{%%0},{%%1}> ofEntries(java.util.Map$Entry extends {%%0},? extends {%%1}>[])
@@ -1996,3 +2026,4 @@ meth public {java.util.Map%1} getOrDefault(java.lang.Object,{java.util.Map%1})
meth public {java.util.Map%1} merge({java.util.Map%0},{java.util.Map%1},java.util.function.BiFunction super {java.util.Map%1},? super {java.util.Map%1},? extends {java.util.Map%1}>)
meth public {java.util.Map%1} putIfAbsent({java.util.Map%0},{java.util.Map%1})
meth public {java.util.Map%1} replace({java.util.Map%0},{java.util.Map%1})
+
diff --git a/jaxrs-tck/src/main/resources/ee/jakarta/tck/ws/rs/signaturetest/sig-test.map b/jaxrs-tck/src/main/resources/ee/jakarta/tck/ws/rs/signaturetest/sig-test.map
index 895b2bed7..caa8640d4 100644
--- a/jaxrs-tck/src/main/resources/ee/jakarta/tck/ws/rs/signaturetest/sig-test.map
+++ b/jaxrs-tck/src/main/resources/ee/jakarta/tck/ws/rs/signaturetest/sig-test.map
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2018, 2020 Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2018, 2024 Oracle and/or its affiliates. All rights reserved.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License v. 2.0, which is available at
@@ -17,4 +17,4 @@
###############################################################
# The signature test mapping file for the JAX-RS TCK.
###############################################################
-jakarta.ws.rs=3.1.0
+jakarta.ws.rs=4.0.0
diff --git a/jersey-tck/pom.xml b/jersey-tck/pom.xml
index 5ab7e8b9b..ef76456cb 100644
--- a/jersey-tck/pom.xml
+++ b/jersey-tck/pom.xml
@@ -22,13 +22,13 @@
org.glassfish.jersey.core
jersey-tck
- 3.1.2
+ 4.0.0-SNAPSHOT
jar
jakarta.ws.rs
all
- 3.1.0
+ 4.0.0-SNAPSHOT
Jakarta RESTful WS Compliance
@@ -42,7 +42,7 @@
${project.build.directory}/glassfish6
10.0.0-RC1
5.7.2
- 3.1.0
+ 4.0.0-SNAPSHOT
jakarta-restful-ws-tck
@@ -179,7 +179,6 @@
- org.apache.maven.plugins
maven-dependency-plugin
3.2.0
diff --git a/pom.xml b/pom.xml
index e8bf7661f..4938d3c63 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,7 +1,7 @@
+
+ 2.1.1
+ 2.0.0
+ 2.0.0
+ 3.0.0
+ 2.0.0
+ 4.0.0
+ 3.0.0
+ 5.8.2
+ 4.0.3
+ 4.1.2
+ 2.2
+ 3.6.0
+
+
+
+ jaxrs-api
+ examples
+ jaxrs-spec
+ jaxrs-tck
+
+
+
+
+
+ org.junit
+ junit-bom
+ ${junit.version}
+ pom
+ import
+
+
+ jakarta.annotation
+ jakarta.annotation-api
+ ${annotation.api.version}
+
+
+ jakarta.activation
+ jakarta.activation-api
+ ${activation.api.version}
+
+
+ jakarta.inject
+ jakarta.inject-api
+ ${inject.api.version}
+
+
+ jakarta.enterprise
+ jakarta.enterprise.cdi-api
+ ${cdi.api.version}
+
+
+ jakarta.validation
+ jakarta.validation-api
+ ${validation.api.version}
+
+
+ jakarta.enterprise.concurrent
+ jakarta.enterprise.concurrent-api
+ ${concurrent.api.version}
+
+
+ jakarta.xml.bind
+ jakarta.xml.bind-api
+ ${xml.binding.api.version}
+
+
+
+ org.glassfish.jaxb
+ codemodel
+ ${org.glassfish.jaxb.version}
+
+
+ *
+ *
+
+
+
+
+ org.glassfish.jaxb
+ jaxb-core
+ ${org.glassfish.jaxb.version}
+
+
+ *
+ *
+
+
+
+
+ org.glassfish.jaxb
+ jaxb-jxc
+ ${org.glassfish.jaxb.version}
+
+
+ *
+ *
+
+
+
+
+ org.glassfish.jaxb
+ jaxb-runtime
+ ${org.glassfish.jaxb.version}
+
+
+ *
+ *
+
+
+
+
+ org.glassfish.jaxb
+ txw2
+ ${org.glassfish.jaxb.version}
+
+
+ *
+ *
+
+
+
+
+ org.glassfish.jaxb
+ jaxb-xjc
+ ${org.glassfish.jaxb.version}
+
+
+ *
+ *
+
+
+
+
+ org.glassfish.jaxb
+ xsom
+ ${org.glassfish.jaxb.version}
+
+
+ *
+ *
+
+
+
+
+
+ com.sun.istack
+ istack-commons-runtime
+ ${com.sun.istack.version}
+
+
+ *
+ *
+
+
+
+
+ com.sun.istack
+ istack-commons-tools
+ ${com.sun.istack.version}
+
+
+ *
+ *
+
+
+
+
+ com.sun.xml.bind.external
+ relaxng-datatype
+ ${org.glassfish.jaxb.version}
+
+
+ com.sun.xml.bind.external
+ rngom
+ ${org.glassfish.jaxb.version}
+
+
+ relaxngDatatype
+ relaxngDatatype
+
+
+ com.sun.xml.bind.external
+ relaxng-datatype
+
+
+
+
+
+ org.hamcrest
+ hamcrest
+ ${hamcrest.version}
+
+
+ org.mockito
+ mockito-core
+ ${mockito.version}
+
+
+
+
+
+ ${project.artifactId}
+
+
+
+ maven-compiler-plugin
+ 3.11.0
+
+
+ maven-jar-plugin
+ 3.3.0
+
+
+ maven-surefire-plugin
+ 3.2.5
+
+
+ org.codehaus.mojo
+ buildnumber-maven-plugin
+ 1.4
+
+ {0,date,MM/dd/yyyy hh:mm aa}
+
+ - timestamp
+
+
+
+
+ validate
+
+ create
+
+
+
+
+
+ org.apache.felix
+ maven-bundle-plugin
+ ${maven.bundle.plugin.version}
+ true
+
+
+ <_failok>true
+ ${buildNumber}
+ Jakarta RESTful Web Services API (JAX-RS)
+ ${project.version}
+ jakarta.ws.rs-api
+ *
+ ${api.package}
+ ${project.version}
+ ${spec.version}
+ Eclipse Foundation
+ ${spec.version}
+ <_versionpolicy>[$(version;==;$(@)),$(version;+;$(@)))
+ <_nodefaultversion>false
+ osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))"
+
+
+
+
+ osgi-bundle
+ package
+
+ bundle
+
+
+
+
+
+ maven-javadoc-plugin
+ ${maven.javadoc.plugin.version}
+
+ ${apidocs.title}
+ true
+
+ Copyright © 2018, 2024 Eclipse Foundation.
Use is subject to license terms.]]>
+
+ true
+
+ module-info.java
+
+
+
+
+ attach-javadocs
+
+ jar
+
+
+
+
+
+ maven-source-plugin
+ 3.2.1
+
+
+ attach-sources
+
+ jar-no-fork
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+ 3.2.0
+
+
+ add-legal-resource
+ generate-resources
+
+ add-resource
+
+
+
+
+ ${legal.doc.folder}
+
+ NOTICE.md
+ LICENSE.md
+
+ META-INF
+
+
+
+
+
+
+
+ maven-jxr-plugin
+ 2.5
+
+
+
+ jxr
+
+ validate
+
+
+
+
+ maven-checkstyle-plugin
+ 3.1.2
+
+ ${project.build.directory}/checkstyle
+ ${project.build.directory}/checkstyle/checkstyle-result.xml
+ ${basedir}/../etc/config/checkstyle.xml
+ **/module-info.java
+
+
+
+
+ checkstyle
+
+ validate
+
+
+
+
+ org.glassfish.copyright
+ glassfish-copyright-maven-plugin
+ 1.39
+
+ ${basedir}/../etc/config/copyright-exclude
+
+ git
+
+ false
+
+ true
+
+ true
+
+ false
+
+ false
+
+
+
+
+
+
+ maven-enforcer-plugin
+
+
+ enforce-java-version
+
+ enforce
+
+
+
+
+ To build this project JDK ${jdk.min.version} (or greater) is required.
+ ${jdk.min.version}
+
+
+
+
+
+
+
+
@@ -47,20 +512,6 @@
-
- dependentModules
-
- true
-
- jaxrs.all.build
-
-
-
- jaxrs-api
- jaxrs-tck
- examples
-
-
dependentSpecification