diff --git a/jaxrs-api/src/main/java/jakarta/ws/rs/ApplicationPath.java b/jaxrs-api/src/main/java/jakarta/ws/rs/ApplicationPath.java index f4ef0627b..01e94c7f3 100644 --- a/jaxrs-api/src/main/java/jakarta/ws/rs/ApplicationPath.java +++ b/jaxrs-api/src/main/java/jakarta/ws/rs/ApplicationPath.java @@ -22,6 +22,9 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.enterprise.inject.Stereotype; + /** * Identifies the application path that serves as the base URI for all resource URIs provided by * {@link jakarta.ws.rs.Path}. May only be applied to a subclass of {@link jakarta.ws.rs.core.Application}. @@ -40,6 +43,8 @@ @Documented @Target({ ElementType.TYPE }) @Retention(RetentionPolicy.RUNTIME) +@Stereotype +@ApplicationScoped public @interface ApplicationPath { /** diff --git a/jaxrs-api/src/main/java/jakarta/ws/rs/BeanParam.java b/jaxrs-api/src/main/java/jakarta/ws/rs/BeanParam.java index 59d27969a..1e3f0a52c 100644 --- a/jaxrs-api/src/main/java/jakarta/ws/rs/BeanParam.java +++ b/jaxrs-api/src/main/java/jakarta/ws/rs/BeanParam.java @@ -22,6 +22,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import jakarta.inject.Qualifier; + /** * The annotation that may be used to inject custom JAX-RS "parameter aggregator" value object into a resource class * field, property or resource method parameter. @@ -68,5 +70,6 @@ @Target({ ElementType.PARAMETER, ElementType.METHOD, ElementType.FIELD }) @Retention(RetentionPolicy.RUNTIME) @Documented +@Qualifier public @interface BeanParam { } diff --git a/jaxrs-api/src/main/java/jakarta/ws/rs/CookieParam.java b/jaxrs-api/src/main/java/jakarta/ws/rs/CookieParam.java index 8ec032610..b48eca4e1 100644 --- a/jaxrs-api/src/main/java/jakarta/ws/rs/CookieParam.java +++ b/jaxrs-api/src/main/java/jakarta/ws/rs/CookieParam.java @@ -22,6 +22,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import jakarta.inject.Qualifier; + /** * Binds the value of a HTTP cookie to a resource method parameter, resource class field, or resource class bean * property. A default value can be specified using the {@link DefaultValue} annotation. @@ -55,6 +57,7 @@ @Target({ ElementType.PARAMETER, ElementType.METHOD, ElementType.FIELD }) @Retention(RetentionPolicy.RUNTIME) @Documented +@Qualifier public @interface CookieParam { /** diff --git a/jaxrs-api/src/main/java/jakarta/ws/rs/FormParam.java b/jaxrs-api/src/main/java/jakarta/ws/rs/FormParam.java index 1df6ae13b..445b130e5 100644 --- a/jaxrs-api/src/main/java/jakarta/ws/rs/FormParam.java +++ b/jaxrs-api/src/main/java/jakarta/ws/rs/FormParam.java @@ -22,6 +22,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import jakarta.inject.Qualifier; + /** * Binds the value(s) of a form parameter contained within a request entity body to a resource method parameter. Values * are URL decoded unless this is disabled using the {@link Encoded} annotation. A default value can be specified using @@ -66,6 +68,7 @@ @Target({ ElementType.PARAMETER, ElementType.METHOD, ElementType.FIELD }) @Retention(RetentionPolicy.RUNTIME) @Documented +@Qualifier public @interface FormParam { /** diff --git a/jaxrs-api/src/main/java/jakarta/ws/rs/HeaderParam.java b/jaxrs-api/src/main/java/jakarta/ws/rs/HeaderParam.java index 2bdc64060..8957f1f2f 100644 --- a/jaxrs-api/src/main/java/jakarta/ws/rs/HeaderParam.java +++ b/jaxrs-api/src/main/java/jakarta/ws/rs/HeaderParam.java @@ -22,6 +22,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import jakarta.inject.Qualifier; + /** * Binds the value(s) of a HTTP header to a resource method parameter, resource class field, or resource class bean * property. A default value can be specified using the {@link DefaultValue} annotation. @@ -58,6 +60,7 @@ @Target({ ElementType.PARAMETER, ElementType.METHOD, ElementType.FIELD }) @Retention(RetentionPolicy.RUNTIME) @Documented +@Qualifier public @interface HeaderParam { /** diff --git a/jaxrs-api/src/main/java/jakarta/ws/rs/MatrixParam.java b/jaxrs-api/src/main/java/jakarta/ws/rs/MatrixParam.java index 1abd05eb9..faacea0e0 100644 --- a/jaxrs-api/src/main/java/jakarta/ws/rs/MatrixParam.java +++ b/jaxrs-api/src/main/java/jakarta/ws/rs/MatrixParam.java @@ -22,6 +22,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import jakarta.inject.Qualifier; + /** * Binds the value(s) of a URI matrix parameter to a resource method parameter, resource class field, or resource class * bean property. Values are URL decoded unless this is disabled using the {@link Encoded} annotation. A default value @@ -66,6 +68,7 @@ @Target({ ElementType.PARAMETER, ElementType.METHOD, ElementType.FIELD }) @Retention(RetentionPolicy.RUNTIME) @Documented +@Qualifier public @interface MatrixParam { /** diff --git a/jaxrs-api/src/main/java/jakarta/ws/rs/Path.java b/jaxrs-api/src/main/java/jakarta/ws/rs/Path.java index 5245dc667..024804f2a 100644 --- a/jaxrs-api/src/main/java/jakarta/ws/rs/Path.java +++ b/jaxrs-api/src/main/java/jakarta/ws/rs/Path.java @@ -22,6 +22,9 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import jakarta.enterprise.context.RequestScoped; +import jakarta.enterprise.inject.Stereotype; + /** * Identifies the URI path that a resource class or class method will serve requests for. * @@ -65,6 +68,8 @@ @Target({ ElementType.TYPE, ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) @Documented +@Stereotype +@RequestScoped public @interface Path { /** diff --git a/jaxrs-api/src/main/java/jakarta/ws/rs/PathParam.java b/jaxrs-api/src/main/java/jakarta/ws/rs/PathParam.java index 93850e82c..32429c176 100644 --- a/jaxrs-api/src/main/java/jakarta/ws/rs/PathParam.java +++ b/jaxrs-api/src/main/java/jakarta/ws/rs/PathParam.java @@ -22,6 +22,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import jakarta.inject.Qualifier; + /** * Binds the value of a URI template parameter or a path segment containing the template parameter to a resource method * parameter, resource class field, or resource class bean property. The value is URL decoded unless this is disabled @@ -67,6 +69,7 @@ @Target({ ElementType.PARAMETER, ElementType.METHOD, ElementType.FIELD }) @Retention(RetentionPolicy.RUNTIME) @Documented +@Qualifier public @interface PathParam { /** diff --git a/jaxrs-api/src/main/java/jakarta/ws/rs/QueryParam.java b/jaxrs-api/src/main/java/jakarta/ws/rs/QueryParam.java index 423258b29..9264e66de 100644 --- a/jaxrs-api/src/main/java/jakarta/ws/rs/QueryParam.java +++ b/jaxrs-api/src/main/java/jakarta/ws/rs/QueryParam.java @@ -22,6 +22,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import jakarta.inject.Qualifier; + /** * Binds the value(s) of a HTTP query parameter to a resource method parameter, resource class field, or resource class * bean property. Values are URL decoded unless this is disabled using the {@link Encoded} annotation. A default value @@ -60,6 +62,7 @@ @Target({ ElementType.PARAMETER, ElementType.METHOD, ElementType.FIELD }) @Retention(RetentionPolicy.RUNTIME) @Documented +@Qualifier public @interface QueryParam { /** diff --git a/jaxrs-api/src/main/java/jakarta/ws/rs/ext/Provider.java b/jaxrs-api/src/main/java/jakarta/ws/rs/ext/Provider.java index b8d1ae716..8fdcbc665 100644 --- a/jaxrs-api/src/main/java/jakarta/ws/rs/ext/Provider.java +++ b/jaxrs-api/src/main/java/jakarta/ws/rs/ext/Provider.java @@ -22,6 +22,9 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.enterprise.inject.Stereotype; + /** * Marks an implementation of an extension interface that should be discoverable by JAX-RS runtime during a provider * scanning phase. @@ -33,5 +36,7 @@ @Target({ ElementType.TYPE }) @Retention(RetentionPolicy.RUNTIME) @Documented +@Stereotype +@ApplicationScoped public @interface Provider { } diff --git a/jaxrs-api/src/main/java/module-info.java b/jaxrs-api/src/main/java/module-info.java index aa24390e0..36409dbf7 100644 --- a/jaxrs-api/src/main/java/module-info.java +++ b/jaxrs-api/src/main/java/module-info.java @@ -22,6 +22,8 @@ requires static jakarta.xml.bind; requires java.logging; + requires jakarta.cdi; + requires jakarta.inject; exports jakarta.ws.rs; exports jakarta.ws.rs.client; diff --git a/jaxrs-tck/pom.xml b/jaxrs-tck/pom.xml index 1fd7cdde9..0437c168e 100644 --- a/jaxrs-tck/pom.xml +++ b/jaxrs-tck/pom.xml @@ -40,6 +40,14 @@ jakarta.ws.rs-api ${project.version} + + jakarta.inject + jakarta.inject-api + + + jakarta.enterprise + jakarta.enterprise.cdi-api + jakarta.json.bind @@ -97,12 +105,6 @@ provided - - org.netbeans.tools - sigtest-maven-plugin - 1.4 - - org.junit.jupiter @@ -147,9 +149,9 @@ - org.netbeans.tools + jakarta.tck sigtest-maven-plugin - 1.4 + 2.0 @@ -158,10 +160,16 @@ - ${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 + jakarta.ws.rs, + jakarta.ws.rs.client, + jakarta.ws.rs.core, + jakarta.ws.rs.container, + jakarta.ws.rs.ext, + jakarta.ws.rs.sse + false + ${project.build.directory}/jakarta.ws.rs.sig_${project.parent.version} 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_3.2.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_3.2.0 index 9838fc9e4..cf3472d44 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_3.2.0 @@ -1,10 +1,49 @@ #Signature file v4.1 -#Version 3.1.0 +#Version 3.2.0 + +CLSS public abstract interface !annotation jakarta.enterprise.context.ApplicationScoped + anno 0 jakarta.enterprise.context.NormalScope(boolean passivating=false) + anno 0 java.lang.annotation.Documented() + anno 0 java.lang.annotation.Inherited() + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[TYPE, METHOD, FIELD]) +innr public final static Literal +intf java.lang.annotation.Annotation + +CLSS public abstract interface !annotation jakarta.enterprise.context.NormalScope + anno 0 java.lang.annotation.Documented() + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[ANNOTATION_TYPE]) +intf java.lang.annotation.Annotation +meth public abstract !hasdefault boolean passivating() + +CLSS public abstract interface !annotation jakarta.enterprise.context.RequestScoped + anno 0 jakarta.enterprise.context.NormalScope(boolean passivating=false) + anno 0 java.lang.annotation.Documented() + anno 0 java.lang.annotation.Inherited() + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[TYPE, METHOD, FIELD]) +innr public final static Literal +intf java.lang.annotation.Annotation + +CLSS public abstract interface !annotation jakarta.enterprise.inject.Stereotype + anno 0 java.lang.annotation.Documented() + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[ANNOTATION_TYPE]) +intf java.lang.annotation.Annotation + +CLSS public abstract interface !annotation jakarta.inject.Qualifier + anno 0 java.lang.annotation.Documented() + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[ANNOTATION_TYPE]) +intf java.lang.annotation.Annotation CLSS public abstract interface !annotation jakarta.ws.rs.ApplicationPath anno 0 java.lang.annotation.Documented() anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[TYPE]) + anno 0 jakarta.enterprise.context.ApplicationScoped() + anno 0 jakarta.enterprise.inject.Stereotype() intf java.lang.annotation.Annotation meth public abstract java.lang.String value() @@ -24,6 +63,7 @@ CLSS public abstract interface !annotation jakarta.ws.rs.BeanParam anno 0 java.lang.annotation.Documented() anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[PARAMETER, METHOD, FIELD]) + anno 0 jakarta.inject.Qualifier() intf java.lang.annotation.Annotation CLSS public jakarta.ws.rs.ClientErrorException @@ -61,6 +101,7 @@ CLSS public abstract interface !annotation jakarta.ws.rs.CookieParam anno 0 java.lang.annotation.Documented() anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[PARAMETER, METHOD, FIELD]) + anno 0 jakarta.inject.Qualifier() intf java.lang.annotation.Annotation meth public abstract java.lang.String value() @@ -100,6 +141,7 @@ CLSS public abstract interface !annotation jakarta.ws.rs.FormParam anno 0 java.lang.annotation.Documented() anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[PARAMETER, METHOD, FIELD]) + anno 0 jakarta.inject.Qualifier() intf java.lang.annotation.Annotation meth public abstract java.lang.String value() @@ -121,6 +163,7 @@ CLSS public abstract interface !annotation jakarta.ws.rs.HeaderParam anno 0 java.lang.annotation.Documented() anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[PARAMETER, METHOD, FIELD]) + anno 0 jakarta.inject.Qualifier() intf java.lang.annotation.Annotation meth public abstract java.lang.String value() @@ -154,6 +197,7 @@ CLSS public abstract interface !annotation jakarta.ws.rs.MatrixParam anno 0 java.lang.annotation.Documented() anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[PARAMETER, METHOD, FIELD]) + anno 0 jakarta.inject.Qualifier() intf java.lang.annotation.Annotation meth public abstract java.lang.String value() @@ -256,6 +300,8 @@ CLSS public abstract interface !annotation jakarta.ws.rs.Path anno 0 java.lang.annotation.Documented() anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[TYPE, METHOD]) + anno 0 jakarta.enterprise.context.RequestScoped() + anno 0 jakarta.enterprise.inject.Stereotype() intf java.lang.annotation.Annotation meth public abstract java.lang.String value() @@ -263,6 +309,7 @@ CLSS public abstract interface !annotation jakarta.ws.rs.PathParam anno 0 java.lang.annotation.Documented() anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[PARAMETER, METHOD, FIELD]) + anno 0 jakarta.inject.Qualifier() intf java.lang.annotation.Annotation meth public abstract java.lang.String value() @@ -293,6 +340,7 @@ CLSS public abstract interface !annotation jakarta.ws.rs.QueryParam anno 0 java.lang.annotation.Documented() anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[PARAMETER, METHOD, FIELD]) + anno 0 jakarta.inject.Qualifier() intf java.lang.annotation.Annotation meth public abstract java.lang.String value() @@ -1685,6 +1733,8 @@ CLSS public abstract interface !annotation jakarta.ws.rs.ext.Provider anno 0 java.lang.annotation.Documented() anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[TYPE]) + anno 0 jakarta.enterprise.context.ApplicationScoped() + anno 0 jakarta.enterprise.inject.Stereotype() intf java.lang.annotation.Annotation CLSS public abstract interface jakarta.ws.rs.ext.Providers 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..04b30da97 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 @@ -17,4 +17,4 @@ ############################################################### # The signature test mapping file for the JAX-RS TCK. ############################################################### -jakarta.ws.rs=3.1.0 +jakarta.ws.rs=3.2.0 diff --git a/pom.xml b/pom.xml index 6ed12eec1..9850ec24e 100644 --- a/pom.xml +++ b/pom.xml @@ -103,7 +103,7 @@ 3.0.0 2.0.0 4.0.0 - 3.0.0 + 4.1.0-M1 5.8.2 4.0.3 4.1.2