Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

issues/1192 TCK challenge for adding support for running Jakarta EE 10 Platform TCK signature TCK tests on Java 21 #1206

Merged
merged 1 commit into from Dec 8, 2023

Conversation

scottmarlow
Copy link
Contributor

Fixes Issue
platform-tck/issues/1192

Related Issue(s)
jakartaee/security#297
jakartaee/jaxb-tck#81
https://issues.redhat.com/browse/WFLY-18816

Describe the change
Update the list of excluded JDK classes in SigTestDriver.java to skip validation of JDK (21) classes that have been modified. This TCK challenge is in making further changes in support of what we previously addressed for #156

Additional context
In the near future, we should update the Signature test tooling to only validate classes in the jakarta namespace which JDK classes are not be expected to implement since only Jakarta EE SPEC APIs can use that package.

CC @alwin-joseph @anajosep @arjantijms @cesarhernandezgt @dblevins @m0mus @edbratt @gurunrao @jansupol @jgallimore @kazumura @kwsutter @LanceAndersen @bhatpmk @RohitKumarJain @shighbar @gthoman @brideck @OndroMih @dmatej
@starksm64 @scottmarlow

… tests on Java 21

Signed-off-by: Scott Marlow <smarlow@redhat.com>
@scottmarlow
Copy link
Contributor Author

With this change:

[javatest.batch] All package signatures passed.
[javatest.batch] Passed packages listed below:
[javatest.batch] jakarta.resource.spi.security(static mode)
[javatest.batch] jakarta.resource.spi.security(reflection mode)
[javatest.batch] jakarta.mail(static mode)
[javatest.batch] jakarta.mail(reflection mode)
[javatest.batch] jakarta.servlet.jsp.jstl.fmt(static mode)
[javatest.batch] jakarta.servlet.jsp.jstl.fmt(reflection mode)
[javatest.batch] jakarta.security.auth.message.module(static mode)
[javatest.batch] jakarta.security.auth.message.module(reflection mode)
[javatest.batch] jakarta.security.auth.message(static mode)
[javatest.batch] jakarta.security.auth.message(reflection mode)
[javatest.batch] jakarta.batch.runtime.context(static mode)
[javatest.batch] jakarta.batch.runtime.context(reflection mode)
[javatest.batch] jakarta.enterprise.inject.literal(static mode)
[javatest.batch] jakarta.enterprise.inject.literal(reflection mode)
[javatest.batch] jakarta.json.bind.serializer(static mode)
[javatest.batch] jakarta.json.bind.serializer(reflection mode)
[javatest.batch] jakarta.mail.internet(static mode)
[javatest.batch] jakarta.mail.internet(reflection mode)
[javatest.batch] jakarta.security.enterprise.identitystore(static mode)
[javatest.batch] jakarta.security.enterprise.identitystore(reflection mode)
[javatest.batch] jakarta.websocket(static mode)
[javatest.batch] jakarta.websocket(reflection mode)
[javatest.batch] jakarta.batch.operations(static mode)
[javatest.batch] jakarta.batch.operations(reflection mode)
[javatest.batch] jakarta.faces.flow(static mode)
[javatest.batch] jakarta.faces.flow(reflection mode)
[javatest.batch] jakarta.transaction(static mode)
[javatest.batch] jakarta.transaction(reflection mode)
[javatest.batch] jakarta.validation.executable(static mode)
[javatest.batch] jakarta.validation.executable(reflection mode)
[javatest.batch] jakarta.security.auth.message.callback(static mode)
[javatest.batch] jakarta.security.auth.message.callback(reflection mode)
[javatest.batch] jakarta.servlet.annotation(static mode)
[javatest.batch] jakarta.servlet.annotation(reflection mode)
[javatest.batch] jakarta.resource.spi.endpoint(static mode)
[javatest.batch] jakarta.resource.spi.endpoint(reflection mode)
[javatest.batch] jakarta.servlet.http(static mode)
[javatest.batch] jakarta.servlet.http(reflection mode)
[javatest.batch] jakarta.faces.annotation(static mode)
[javatest.batch] jakarta.faces.annotation(reflection mode)
[javatest.batch] jakarta.ws.rs.core(static mode)
[javatest.batch] jakarta.ws.rs.core(reflection mode)
[javatest.batch] jakarta.resource.spi(static mode)
[javatest.batch] jakarta.resource.spi(reflection mode)
[javatest.batch] jakarta.validation.bootstrap(static mode)
[javatest.batch] jakarta.validation.bootstrap(reflection mode)
[javatest.batch] jakarta.faces.component.html(static mode)
[javatest.batch] jakarta.faces.component.html(reflection mode)
[javatest.batch] jakarta.security.auth.message.config(static mode)
[javatest.batch] jakarta.security.auth.message.config(reflection mode)
[javatest.batch] jakarta.faces.component.visit(static mode)
[javatest.batch] jakarta.faces.component.visit(reflection mode)
[javatest.batch] jakarta.enterprise.context.control(static mode)
[javatest.batch] jakarta.enterprise.context.control(reflection mode)
[javatest.batch] jakarta.faces.push(static mode)
[javatest.batch] jakarta.faces.push(reflection mode)
[javatest.batch] jakarta.faces.event(static mode)
[javatest.batch] jakarta.faces.event(reflection mode)
[javatest.batch] jakarta.mail.search(static mode)
[javatest.batch] jakarta.mail.search(reflection mode)
[javatest.batch] jakarta.faces(static mode)
[javatest.batch] jakarta.faces(reflection mode)
[javatest.batch] jakarta.decorator(static mode)
[javatest.batch] jakarta.decorator(reflection mode)
[javatest.batch] jakarta.validation.constraintvalidation(static mode)
[javatest.batch] jakarta.validation.constraintvalidation(reflection mode)
[javatest.batch] jakarta.faces.context(static mode)
[javatest.batch] jakarta.faces.context(reflection mode)
[javatest.batch] jakarta.faces.convert(static mode)
[javatest.batch] jakarta.faces.convert(reflection mode)
[javatest.batch] jakarta.batch.api(static mode)
[javatest.batch] jakarta.batch.api(reflection mode)
[javatest.batch] jakarta.json(static mode)
[javatest.batch] jakarta.json(reflection mode)
[javatest.batch] jakarta.faces.model(static mode)
[javatest.batch] jakarta.faces.model(reflection mode)
[javatest.batch] jakarta.jms(static mode)
[javatest.batch] jakarta.jms(reflection mode)
[javatest.batch] jakarta.security.enterprise(static mode)
[javatest.batch] jakarta.security.enterprise(reflection mode)
[javatest.batch] jakarta.faces.render(static mode)
[javatest.batch] jakarta.faces.render(reflection mode)
[javatest.batch] jakarta.batch.api.chunk(static mode)
[javatest.batch] jakarta.batch.api.chunk(reflection mode)
[javatest.batch] jakarta.json.spi(static mode)
[javatest.batch] jakarta.json.spi(reflection mode)
[javatest.batch] jakarta.json.bind.config(static mode)
[javatest.batch] jakarta.json.bind.config(reflection mode)
[javatest.batch] jakarta.websocket.server(static mode)
[javatest.batch] jakarta.websocket.server(reflection mode)
[javatest.batch] jakarta.faces.view(static mode)
[javatest.batch] jakarta.faces.view(reflection mode)
[javatest.batch] jakarta.enterprise.event(static mode)
[javatest.batch] jakarta.enterprise.event(reflection mode)
[javatest.batch] jakarta.enterprise.util(static mode)
[javatest.batch] jakarta.enterprise.util(reflection mode)
[javatest.batch] jakarta.faces.flow.builder(static mode)
[javatest.batch] jakarta.faces.flow.builder(reflection mode)
[javatest.batch] jakarta.json.bind.adapter(static mode)
[javatest.batch] jakarta.json.bind.adapter(reflection mode)
[javatest.batch] jakarta.resource(static mode)
[javatest.batch] jakarta.resource(reflection mode)
[javatest.batch] jakarta.enterprise.inject.spi(static mode)
[javatest.batch] jakarta.enterprise.inject.spi(reflection mode)
[javatest.batch] jakarta.batch.api.listener(static mode)
[javatest.batch] jakarta.batch.api.listener(reflection mode)
[javatest.batch] jakarta.servlet.jsp(static mode)
[javatest.batch] jakarta.servlet.jsp(reflection mode)
[javatest.batch] jakarta.el(static mode)
[javatest.batch] jakarta.el(reflection mode)
[javatest.batch] jakarta.validation.metadata(static mode)
[javatest.batch] jakarta.validation.metadata(reflection mode)
[javatest.batch] jakarta.faces.application(static mode)
[javatest.batch] jakarta.faces.application(reflection mode)
[javatest.batch] jakarta.servlet(static mode)
[javatest.batch] jakarta.servlet(reflection mode)
[javatest.batch] jakarta.persistence.metamodel(static mode)
[javatest.batch] jakarta.persistence.metamodel(reflection mode)
[javatest.batch] jakarta.servlet.jsp.jstl.core(static mode)
[javatest.batch] jakarta.servlet.jsp.jstl.core(reflection mode)
[javatest.batch] jakarta.security.jacc(static mode)
[javatest.batch] jakarta.security.jacc(reflection mode)
[javatest.batch] jakarta.enterprise.inject(static mode)
[javatest.batch] jakarta.enterprise.inject(reflection mode)
[javatest.batch] jakarta.faces.webapp(static mode)
[javatest.batch] jakarta.faces.webapp(reflection mode)
[javatest.batch] jakarta.annotation.security(static mode)
[javatest.batch] jakarta.annotation.security(reflection mode)
[javatest.batch] jakarta.enterprise.context.spi(static mode)
[javatest.batch] jakarta.enterprise.context.spi(reflection mode)
[javatest.batch] jakarta.annotation(static mode)
[javatest.batch] jakarta.annotation(reflection mode)
[javatest.batch] jakarta.faces.lifecycle(static mode)
[javatest.batch] jakarta.faces.lifecycle(reflection mode)
[javatest.batch] jakarta.faces.component.search(static mode)
[javatest.batch] jakarta.faces.component.search(reflection mode)
[javatest.batch] jakarta.servlet.jsp.tagext(static mode)
[javatest.batch] jakarta.servlet.jsp.tagext(reflection mode)
[javatest.batch] jakarta.faces.bean(static mode)
[javatest.batch] jakarta.faces.bean(reflection mode)
[javatest.batch] jakarta.faces.validator(static mode)
[javatest.batch] jakarta.faces.validator(reflection mode)
[javatest.batch] jakarta.ws.rs.ext(static mode)
[javatest.batch] jakarta.ws.rs.ext(reflection mode)
[javatest.batch] jakarta.mail.util(static mode)
[javatest.batch] jakarta.mail.util(reflection mode)
[javatest.batch] jakarta.validation(static mode)
[javatest.batch] jakarta.validation(reflection mode)
[javatest.batch] jakarta.json.bind.spi(static mode)
[javatest.batch] jakarta.json.bind.spi(reflection mode)
[javatest.batch] jakarta.persistence.spi(static mode)
[javatest.batch] jakarta.persistence.spi(reflection mode)
[javatest.batch] jakarta.annotation.sql(static mode)
[javatest.batch] jakarta.annotation.sql(reflection mode)
[javatest.batch] jakarta.ejb.spi(static mode)
[javatest.batch] jakarta.ejb.spi(reflection mode)
[javatest.batch] jakarta.faces.component.behavior(static mode)
[javatest.batch] jakarta.faces.component.behavior(reflection mode)
[javatest.batch] jakarta.servlet.jsp.jstl.tlv(static mode)
[javatest.batch] jakarta.servlet.jsp.jstl.tlv(reflection mode)
[javatest.batch] jakarta.enterprise.concurrent(static mode)
[javatest.batch] jakarta.enterprise.concurrent(reflection mode)
[javatest.batch] jakarta.batch.api.partition(static mode)
[javatest.batch] jakarta.batch.api.partition(reflection mode)
[javatest.batch] jakarta.ejb(static mode)
[javatest.batch] jakarta.ejb(reflection mode)
[javatest.batch] jakarta.inject(static mode)
[javatest.batch] jakarta.inject(reflection mode)
[javatest.batch] jakarta.json.bind.annotation(static mode)
[javatest.batch] jakarta.json.bind.annotation(reflection mode)
[javatest.batch] jakarta.servlet.jsp.el(static mode)
[javatest.batch] jakarta.servlet.jsp.el(reflection mode)
[javatest.batch] jakarta.batch.runtime(static mode)
[javatest.batch] jakarta.batch.runtime(reflection mode)
[javatest.batch] jakarta.faces.el(static mode)
[javatest.batch] jakarta.faces.el(reflection mode)
[javatest.batch] jakarta.validation.valueextraction(static mode)
[javatest.batch] jakarta.validation.valueextraction(reflection mode)
[javatest.batch] jakarta.mail.event(static mode)
[javatest.batch] jakarta.mail.event(reflection mode)
[javatest.batch] jakarta.json.bind(static mode)
[javatest.batch] jakarta.json.bind(reflection mode)
[javatest.batch] jakarta.resource.cci(static mode)
[javatest.batch] jakarta.resource.cci(reflection mode)
[javatest.batch] jakarta.faces.view.facelets(static mode)
[javatest.batch] jakarta.faces.view.facelets(reflection mode)
[javatest.batch] jakarta.servlet.jsp.jstl.sql(static mode)
[javatest.batch] jakarta.servlet.jsp.jstl.sql(reflection mode)
[javatest.batch] jakarta.security.enterprise.authentication.mechanism.http(static mode)
[javatest.batch] jakarta.security.enterprise.authentication.mechanism.http(reflection mode)
[javatest.batch] javax.rmi(static mode)
[javatest.batch] javax.rmi(reflection mode)
[javatest.batch] jakarta.persistence.criteria(static mode)
[javatest.batch] jakarta.persistence.criteria(reflection mode)
[javatest.batch] jakarta.ejb.embeddable(static mode)
[javatest.batch] jakarta.ejb.embeddable(reflection mode)
[javatest.batch] jakarta.ws.rs.container(static mode)
[javatest.batch] jakarta.ws.rs.container(reflection mode)
[javatest.batch] jakarta.resource.spi.work(static mode)
[javatest.batch] jakarta.resource.spi.work(reflection mode)
[javatest.batch] jakarta.servlet.descriptor(static mode)
[javatest.batch] jakarta.servlet.descriptor(reflection mode)
[javatest.batch] jakarta.validation.spi(static mode)
[javatest.batch] jakarta.validation.spi(reflection mode)
[javatest.batch] jakarta.json.stream(static mode)
[javatest.batch] jakarta.json.stream(reflection mode)
[javatest.batch] jakarta.interceptor(static mode)
[javatest.batch] jakarta.interceptor(reflection mode)
[javatest.batch] jakarta.batch.api.chunk.listener(static mode)
[javatest.batch] jakarta.batch.api.chunk.listener(reflection mode)
[javatest.batch] jakarta.persistence(static mode)
[javatest.batch] jakarta.persistence(reflection mode)
[javatest.batch] jakarta.validation.constraints(static mode)
[javatest.batch] jakarta.validation.constraints(reflection mode)
[javatest.batch] jakarta.ws.rs(static mode)
[javatest.batch] jakarta.ws.rs(reflection mode)
[javatest.batch] jakarta.ws.rs.client(static mode)
[javatest.batch] jakarta.ws.rs.client(reflection mode)
[javatest.batch] jakarta.faces.component(static mode)
[javatest.batch] jakarta.faces.component(reflection mode)
[javatest.batch] jakarta.validation.groups(static mode)
[javatest.batch] jakarta.validation.groups(reflection mode)
[javatest.batch] jakarta.enterprise.context(static mode)
[javatest.batch] jakarta.enterprise.context(reflection mode)
[javatest.batch] jakarta.enterprise.inject.spi.configurator(static mode)
[javatest.batch] jakarta.enterprise.inject.spi.configurator(reflection mode)
[javatest.batch] jakarta.ws.rs.sse(static mode)
[javatest.batch] jakarta.ws.rs.sse(reflection mode)
[javatest.batch] jakarta.security.enterprise.credential(static mode)
[javatest.batch] jakarta.security.enterprise.credential(reflection mode)

@scottmarlow scottmarlow changed the title issues/1192 TCK challenge for adding support for running signature TCK tests on Java 21 issues/1192 TCK challenge for adding support for running Jakarta EE 10 Platform TCK signature TCK tests on Java 21 Dec 6, 2023
@gurunrao
Copy link
Contributor

gurunrao commented Dec 7, 2023

To take care of JDK classes in future release of JDK, we should provide pattern match "java.*" packages by default and add to list of -IgnoreJDKClass.
PR for JDK 21 LGTM.

Copy link
Contributor

@alwin-joseph alwin-joseph left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

@scottmarlow
Copy link
Contributor Author

Thanks @gurunrao @alwin-joseph!

Could one of you please also mark TCK challenge issue #1192 as accepted if you believe it should be?

@scottmarlow
Copy link
Contributor Author

To take care of JDK classes in future release of JDK, we should provide pattern match "java.*" packages by default and add to list of -IgnoreJDKClass. PR for JDK 21 LGTM.

Good idea, perhaps that could also be done by adding -IgnoreJDKPackage java option which is almost the same way but with a new option that doesn't use regular expression matching.

All of the Jakarta EE SPEC APIs are now the only classes that can be in the jakarta namespace so -IgnoreJDKPackage identifies a partial package name to exclude (e.g. to exclude anything that starts with "java" (just in case JDK classes are ever added with the minimal package "java" like "java.Object" someday to use less memory just as an example). The disadvantage is that this kind of checking would also exclude classes that are in package "javacustom".

@gurunrao
Copy link
Contributor

gurunrao commented Dec 8, 2023

To take care of JDK classes in future release of JDK, we should provide pattern match "java.*" packages by default and add to list of -IgnoreJDKClass. PR for JDK 21 LGTM.

Good idea, perhaps that could also be done by adding -IgnoreJDKPackage java option which is almost the same way but with a new option that doesn't use regular expression matching.

All of the Jakarta EE SPEC APIs are now the only classes that can be in the jakarta namespace so -IgnoreJDKPackage identifies a partial package name to exclude (e.g. to exclude anything that starts with "java" (just in case JDK classes are ever added with the minimal package "java" like "java.Object" someday to use less memory just as an example). The disadvantage is that this kind of checking would also exclude classes that are in package "javacustom".

to avoid disadvantage of "javacustom" kind of package, we should pattern match java. not java + arbitrary characters

@scottmarlow scottmarlow merged commit e39e46e into jakartaee:10.0.x Dec 8, 2023
2 checks passed
@scottmarlow scottmarlow deleted the EE10_issues_1192 branch December 8, 2023 15:33
@scottmarlow
Copy link
Contributor Author

To take care of JDK classes in future release of JDK, we should provide pattern match "java.*" packages by default and add to list of -IgnoreJDKClass. PR for JDK 21 LGTM.

Good idea, perhaps that could also be done by adding -IgnoreJDKPackage java option which is almost the same way but with a new option that doesn't use regular expression matching.
All of the Jakarta EE SPEC APIs are now the only classes that can be in the jakarta namespace so -IgnoreJDKPackage identifies a partial package name to exclude (e.g. to exclude anything that starts with "java" (just in case JDK classes are ever added with the minimal package "java" like "java.Object" someday to use less memory just as an example). The disadvantage is that this kind of checking would also exclude classes that are in package "javacustom".

to avoid disadvantage of "javacustom" kind of package, we should pattern match java. not java + arbitrary characters

+1000

Thanks @gurunrao, this sounds like a good improvement!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants