jakartaee / platform

The Jakarta EE Platform project produces the Jakarta EE platform specification, which is an umbrella specification that aggregates all other Jakarta EE specifications.
https://jakartaee.github.io/platform/
Eclipse Public License 2.0
202 stars 68 forks source link

Need to define how specification TCKs that reference other specification containers are handled #339

Open starksm64 opened 3 years ago

starksm64 commented 3 years ago

Is your feature request related to a problem? Please describe. We have a problem with circular dependencies in TCKs for specifications like CDI that in addition having a base Java SE behavior, define behaviors and have TCK tests for many other specification containers; EJBs, JMS, JPA, JTA, Servlet, etc.

Describe the solution you'd like The CDI team is in the process of separating out the TCK tests into two sets; a Java SE base and a Web profile base. We need this separation of dependencies in general for specifications that are targeting the core profile and to break current circular dependencies in the overall release process as it relates to TCKs. A natural place for these separated TCK tests would be the lowest profile/platform that encompasses the required containers.

Describe alternatives you've considered The specification projects could have separate TCK release artifacts that are extensions of the profile/platform TCK that are new standalone TCKs that need to be run as part of the profile/platform TCK.

Additional context None

kwsutter commented 3 years ago

A natural place for these separated TCK tests would be the lowest profile/platform that encompasses the required containers.

Just to clarify this item... When you mention a "natural place", I hope you are referring to a logical place and not a physical place. For example, we already have the problem with the Platform TCK containing loads of tests for individual specs (ie, ejb). And, we have Issue #333 to help define how to break these apart into separate components. So, to clarify, these separated TCKs that are mentioned in this Issue would still be physically housed with the individual Specification project. But, the collection and execution of these tests may be performed by the lowest profile (ie, core or web or platform). Do I have your intent correct?

starksm64 commented 3 years ago

The problem is how do cross cutting concern specs like CDI, security, transactions, etc. define TCK tests that validate expected behaviors in a given container. For example, all of these specs define expectations when running in a servlet container. Does the servlet spec take on the responsibility for these tests and the spec text in collaboration with the other spec team, or are these cross cutting concern tests that live in the profile that is incorporating the composition of specifications.

scottmarlow commented 2 years ago

As mentioned in the January, 2022 Platform call minutes, we had TCK call #6 to discuss handling of split-out-tcks.

At the end of the recorded call, we noted the action item to be taken in the minutes (search for Action: Platform TCK team and new split out TCK (Spec API) team).

Describe the actions to be taken for removing duplicate tests from Platform TCK

Guidance for creating the Platform TCK pull request to remove tests not needed to validate Platform SPEC requirements

Guidance for how specification TCKs that reference other specification containers are handled