Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jakartaee-tck-dev] [ejb-dev] Removal of tests for pruned technologies versus making tests optional and not run by default...



On 10/8/20 11:10 AM, Mark Thomas wrote:
On 07/10/2020 18:18, Scott Marlow wrote:
I started to document the Jakarta TCK rules [1] for removing TCK tests
for removed technologies (like tests that specifically use Corba or the
Corba IIOP protocol) and also for tests that use DTDs/Schemas older than
EE 8.

I think it will help for EE 9 to have consistent rules that we follow
for $subject.  Feedback on [1] is welcome before it is merged into the
Platform TCK documentation (perhaps via github pages or wiki).

Those rules are at odds with the views of the individual projects.

Mostly, I'm trying to document the EE 9 Platform TCK rules that we have been following this year.

First, let me say that I greatly appreciate all of the work that you and others have contributed to Jakarta EE 9! :-) Your thoughtful and honest feedback here and in the pull request, is very helpful as I know have a better understanding of your perspective.

Speaking of perspectives, I would like to mention some of my perspectives to this conversation:

1. My perspective on GlassFish and Jakarta Platform EE 9 Optional technologies:

Since GlassFish has to test every required + optional platform technology, I think that it has been discussed elsewhere that it is unfair to GlassFish to be required to test optional technologies when other Jakarta EE 9 implementations do not have to. Still, the GlassFish has been tirelessly testing all of the optional technologies. I should also mention that it wasn't the GlassFish team that pointed out the unfairness of having to test optional technologies.

Anyway, the reason why I am bringing this up here, is we have considered changing the Jakarta EE 9 Platform TCK to treat pruned/removed technologies as optional. However, as discussed on the September 29 Platform TCK call doing so for Corba (TCK) tests may not be consistent with how we handled removing tests for other pruned/removed technologies. I took the point as being that we should as a goal, try to be consistent about how/why we do things. I'm trying hard to align this desire to be consistent to also do what makes sense, on a day-to-day basis for individual tasks.

Toward this sub-goal, I'm thinking that we can be open to change as we plan the next/future releases, but changing rules in the middle of a release could create confusion to the wider team.

2. My perspective on the Jakarta EE 9 DTDs/Schemas is that it is a good thing that SPEC APIs that can benefit from including the pre-EE-8 DTDs/Schemas in their EE 9 SPEC API jars or repositories, do have the ability to do what makes sense for their SPEC API project. From the latest Jakarta EE Platform 9 Spec (https://jakarta.ee/specifications/platform/9/platform-spec-9-SNAPSHOT.html), the earlier legacy DTDs/XSDs are considered optional for implementations of the Platform Spec (that will use the various Jakarta EE 9 Spec API/Impl artifacts).

3. After Jakarta EE 9 is final, I would like to have an open post-mortem discussion about what went really well during this development cycle on the Platform TCK project and what could/should be improved (and ideas for improvement). This will be open to all to participate in.

4. For Jakarta EE 10, we should have an discussion on this mailing list about the Platform TCK and how things like optional/required technologies are handled. As well as the other large subjects, like what the options are for restructuring aspects of the Platform TCK tests, without losing any Platform level tests (expected for removed technologies in EE 10). Lets discuss #4 in a separate email thread but I did want to mention that we need to have such a discussion.

More inline below...


Servlet, for example, took explicit steps to ensure that all historic
schemas were shipped in the Servlet API JAR.

+100, I personally contribute to WildFly and other projects that will likely benefit from your efforts, as WildFly does still support pre-EE-8 DTDs/XSDs. Thank you for doing that! :-)


JSP, for example, has retained language in the specification document
referring to backwards compatibility including that which requires
different behaviour for TLDs using 2.0 and earlier schemas vs TLDs using
2.1 and later schemas.

I don't personally see a problem with this.  Does any one else?


I followed the reference to chain to where this was decided and found
VOTE thread on the platform-dev list.


Yeah, I think that is mostly directed at Platform implementations (e.g. Full Platform or Web Profile), not really the individual SPEC APIs, but I think we should clarify that my understanding is shared with others and agreed on.


I suspect I missed it at the time as I had my hands full dealing with
CVE-2020-1938.

I note from the minutes of the Jakarta EE Platform call on 2020-01-28
that followed that vote that:

"Option #3 is the desired direction. *Need to widely communicate to the
community*." (my emphasis)

I don't see any communication of this decision to any of the individual
projects (Servlet, Pages, EL, WebSocket) I am most heavily involved in.

The only advantage I saw expressed for not supporting these schemas was
to make it easier for new implementations.

Yes, I did read those comments also.

Speaking from experience of
providing support for multiple versions of schemas, it is my view that
the benefit here is negligible as the schemas are - by design -
backwards compatible excluding a very small number of edge cases.

The disadvantage is that automatic migration of web applications from
Java EE 8 and earlier to Jakarta EE 9 (or later) is a lot more complex.

I completely agree! For example, if a Jakarta EE 9 implementation wants to still include pruned/removed technologies, they may do that as long as the pruned/removed technologies are tested (e.g. via Jakarta EE 8 TCKs). We also talked about the possibility that tests for removed technologies might be moved to a separate Standalone TCK but I'm not sure yet of how that can be possible currently.

The Jakarta EE Platform discussions that I recall also were supportive of EE implementations continuing to support older applications migrating to the latest EE server implementations, however as you said, new implementations are not required to provide compatibility with older EE versions.

Automatic migration that implements the package rename is relatively
simple. As soon as support is dropped for old schemas, migration has the
potential to become a lot more complex - particularly, for example, in
the area of TLDs around how "#{" is interpreted.

In addition to tag library descriptors, those using bytecode transformers to convert their EE 8 server to EE 9, also need to deal with handling the EE 9 JSP XSDs (as well as other XSDs as well), so there is some extra work/challenges for everyone.

Scott



Mark



Scott

[1]
https://docs.google.com/document/d/1rdQCftJHexDouNtrvvUfjknZHhG8sWt1lerwcWpbQrY/edit#heading=h.sygoumfn3qd0


On 9/29/20 12:38 PM, Jean-Louis Monteiro wrote:
As discussed today, I think consistency would be my choice.

I'll look at the impact in terms of TCK.



--
Jean-Louis Monteiro
http://twitter.com/jlouismonteiro
http://www.tomitribe.com <http://www.tomitribe.com/>


On Tue, Sep 29, 2020 at 6:36 PM Scott Marlow <smarlow@xxxxxxxxxx
<mailto:smarlow@xxxxxxxxxx>> wrote:

     Hi,

     During the Platform call [1] today it was pointed out that TCKs
should
     consistently handle all pruned/removed technologies the same (e.g.
     either remove related tests or allow related tests to be run
     optionally).

     We removed the Jakarta Platform EE TCK tests for Jakarta XML
     Registries,
     Jakarta XML RPC, Jakarta Deployment, Jakarta Management but recently
     updated the Platform TCK to treat the com/sun/ts/tests/ejb30 that use
     Corba as optional [2].  By default the EJB tests that use Corba
are not
     run (default is !rmi_iiop&!corba ).

     I added David Belevins + the EJB ml to ask what the impact would
be if
     we adjusted the changes made in [2] to instead remove the ejb30 tests
     that use Corba?

     We also updated the com/sun/ts/tests/rmiiiop tests to be optional as
     well [2].  By default these tests are not run (default is
     !rmi_iiop&!corba ).

     Feedback on removing the RMI-IIOP tests instead of marking them
     optional
     by default would also be appreciated.

     Thank you Guru for all of your hard work and patience on [2].

     Scott

     [1]
https://docs.google.com/document/d/1EJ2ilaPhMnQqa3aw6AmwjRbBPGL3_np4uuwklgfqPZI/edit?pli=1


     [2] https://github.com/eclipse-ee4j/jakartaee-tck/pull/521

     _______________________________________________
     ejb-dev mailing list
     ejb-dev@xxxxxxxxxxx <mailto:ejb-dev@xxxxxxxxxxx>
     To unsubscribe from this list, visit
     https://www.eclipse.org/mailman/listinfo/ejb-dev


_______________________________________________
ejb-dev mailing list
ejb-dev@xxxxxxxxxxx
To unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/ejb-dev


_______________________________________________
jakartaee-tck-dev mailing list
jakartaee-tck-dev@xxxxxxxxxxx
To unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/jakartaee-tck-dev

_______________________________________________
jakartaee-tck-dev mailing list
jakartaee-tck-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-tck-dev




Back to the top