Ok, I have an MVP of what I have in mind, along with pending PRs on all of the corresponding repos.
1) I've ported the JSON-B TCK tests from JavaTest --> Arquillian+JUnit and included them in the JSON-B repo here:
2) Implementations can easily pull in the JSON-B TCK tests and run them. I've done this with Yasson here:
3) I've created a new aggregator module in the jakartaee-tck repo, which can be the single point where we pull in all of the externalized TCK tests. Each spec shares a small portion of pom.xml to pull in the TCK dependency, and then each vendor can implement a <profile> block to run the tests with their runtime. I've shown an example of this with BeanValidation and JSON-B using Liberty here:
As you can see, the externalized TCKs are quite flexible and can easily be consumed+run in other projects with other runtimes. I added the aggregator module (3) to the jakartaee-tck repo to try and preserve existing behavior as much as I could, but I still don't really see much value in it. IMO we should leave it up to the vendors to pull in the externalized TCKs in whatever repo works best for them. For example in IBM we have separate internal repos for consuming+running the CDI TCK tests and another for the BeanValidation TCK tests. If we were to add this aggregator module (3), the Liberty team wouldn't bother to use it.
Hopefully everyone is OK with how PR (1) looks, and the flexibility demonstrated in PR (2) with Yasson, or with what everyone is already doing for BeanValidation and CDI means we don't have to follow through with PR (3)?