-
Notifications
You must be signed in to change notification settings - Fork 122
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
TCK Challenge: Improper use of final keyword in ee.jakarta.tck.ws.rs.spec.contextprovider.JsonbContextProviderIT$EchoApplication and ee.jakarta.tck.ws.rs.spec.client.exceptions.ClientExceptionsIT$StatusApplication #1126
Comments
This makes sense to me to make a change to not make these final. Having a requirement to treat resources, providers and applications as CDI beans means we must adhere to the CDI rules. Making a CDI bean final is not allowed. |
Seems related to #1097. |
I'd agree with that. Not sure how I missed the |
Will this change be included in TCK 3.1.2? I'm assuming that the "finals" will simply be removed vs. excluding the testcases. |
@jim-krueger That would be much preferable to excluding them in my view, but I'm not sure this is allowed by the rules. Can anyone confirm this either way? |
@spericas at the very least an exception can be requested to the spec committee (cc @ivargrimstad). We recently did this for Jakarta Concurrency. |
Was there an updated version of the TCK coming that would exclude (or fix) tests for both this challenge and #1123? |
@ivargrimstad Could we make the change described here without excluding the test? That is, get an exception as @arjantijms suggested. |
FWIW, I can verify that making the changes suggested here work for Open Liberty:
The only failure in this particular run (which includes a test correction) is due to #1123. |
The ballot for granting an exception for updating TCKs instead of removing the TCKs has been approved (see here). The PR can be merged and a service release can be performed asap. |
Hi,
I need to request the creation of a 1.3.2 version of the TCK containing these changes. Can somebody direct me on how to go about this?
Thanks
… On Sep 16, 2022, at 3:39 AM, Emily Jiang ***@***.***> wrote:
The ballot for granting an exception for updating TCKs instead of removing the TCKs has been approved (see here <https://www.eclipse.org/lists/jakarta.ee-spec/msg02760.html>). The PR can be merged and a service release can be performed asap.
—
Reply to this email directly, view it on GitHub <#1126 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AHSLZQE7ICCX4CFXHQ6H5TTV6QW5ZANCNFSM56M7NRUQ>.
You are receiving this because you were mentioned.
|
To create a new REST TCK release from this repository we have used the script jaxrs-tck-docs/tckbundle.sh in the past. It would be better to make the TCK version changes for userguides as done in #1119. I have created the job https://ci.eclipse.org/jakartaee-tck/job/10/job/jakarta-rest-tck-build-3.1.2 in the JakartaEE TCK CI that could create a 3.1.2 TCK bundle. Copying the relevant scripts here so it could be used from other Jenkins instances too.
Q: Will the PR #1131 also need to be part of the new service release ? |
I have generated the new service release TCK 3.1.2 at https://download.eclipse.org/ee4j/jakartaee-tck/jakartaee10/staged/eftl/jakarta-restful-ws-tck-3.1.2.zip . |
Submit a PR to https://github.com/jakartaee/specifications where you add a link to the new promoted TCK in https://github.com/jakartaee/specifications/tree/master/restful-ws/3.1/_index.md Remember to add the link to the staged TCK in the PR description, so a spec committee member can promote it to the correct location. |
@jim-krueger Can you please help verify that the new service release TCK 3.1.2 https://download.eclipse.org/ee4j/jakartaee-tck/jakartaee10/staged/eftl/jakarta-restful-ws-tck-3.1.2.zip fixes the tests here and works as expected. |
@brideck Is currently running these tests and will verify. |
@alwin-joseph Brian's run has completed, however he mentions that #1123 is not included in this and should have been since the change was merged several days ago. |
The fix for #1123 was done in PR #1125 to exclude/disable the 68 tests. I can see this change included in the TCK build log and also those tests skipped when run with glassfish : https://ci.eclipse.org/jakartaee-tck/job/10/job/jakarta-rest-tck-glassfish-run/29/testReport/ . |
Thanks ,@alwin-joseph. Yes, this looks good. Skipped tests don't show up on the initial report that I was looking at, so I was tricked by the test count staying the same. The 3.1.2 TCK is good from our perspective. |
This service release needs to include #1131 <#1131> as well, which as been approved by not yet merged.
… On Sep 16, 2022, at 8:01 AM, Jim Krueger ***@***.***> wrote:
Hi,
I need to request the creation of a 1.3.2 version of the TCK containing these changes. Can somebody direct me on how to go about this?
Thanks
> On Sep 16, 2022, at 3:39 AM, Emily Jiang ***@***.*** ***@***.***>> wrote:
>
>
> The ballot for granting an exception for updating TCKs instead of removing the TCKs has been approved (see here <https://www.eclipse.org/lists/jakarta.ee-spec/msg02760.html>). The PR can be merged and a service release can be performed asap.
>
> —
> Reply to this email directly, view it on GitHub <#1126 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AHSLZQE7ICCX4CFXHQ6H5TTV6QW5ZANCNFSM56M7NRUQ>.
> You are receiving this because you were mentioned.
>
|
@jim-krueger The PR #1131 was included in the TCK service release 3.1.2. To exclude the SE bootstrap tests Kindly make sure to use the TCK https://download.eclipse.org/jakartaee/restful-ws/3.1/jakarta-restful-ws-tck-3.1.2.zip |
Closing this issue, given that the 3.1.2 TCK has long since been published. |
Challenged Tests:
ee.jakarta.tck.ws.rs.spec.contextprovider.JsonbContextProviderIT
ee.jakarta.tck.ws.rs.spec.client.exceptions.ClientExceptionsIT
TCK Version:
Jakarta RESTful Web Services 3.1.x
Tested Implementation:
Open Liberty -- containing RestEasy 6.1.0 & Weld 5.0.1
Description:
The Application subclasses of both of the challenged tests are annotated with @ApplicationPath, which RestEasy (and in turn Open Liberty) defines as a bean-defining annotation for CDI (see resteasy/resteasy#3119). CDI Full supports the notion of implicit bean archives, which in section 3.10.1 of the CDI 4.0 specification is defined in part as "any other archive which contains one or more bean classes with a bean defining annotation."
Section 11.2.3 of the RESTful WS 3.1 specification states that "In a product that supports CDI, implementations MUST support the use of CDI-style Beans as root resource classes, providers and Application subclasses. Providers and Application subclasses MUST be singletons or use application scope." In this case, the test subclasses are Application subclasses, so our implementation treats them as having application scope.
Application scope is a normal scope, so per section 2.5.3 of the CDI 4.0 specification "a client proxy is required." And this is where we run into trouble. The tests currently fail with:
Per section 2.2.10 of the CDI 4.0 specification:
In this case, the Application subclasses in both of the challenged tests are declared final and the EchoApplication subclass in the JsonbContextProviderIT class also contains two methods that are declared final.
An implementation that only supports CDI Lite would likely not see a problem in this space, since section 2.11.1 of the CDI 4.0 specification states that an implicit bean archive must contain a beans.xml file, which these test applications do not possess. But any implementor of CDI Full that discovers implicit bean archives in the absence of beans.xml could run into this error, rendering these tests impossible to execute.
The text was updated successfully, but these errors were encountered: