On Wed, Jun 21, 2023 at 10:33 AM Mark Thomas <ma...@apache.org> wrote:
>
> Thanks again for the pointers. I can run the refactored WebSocket TCK now.
>
> I think we need to setup a new Git project to hold the Tomcat
> configuration for the refactored TCKs. This would be a multi-module
> Maven project with one module for each TCK. I have the basis for this
> locally but it needs some clean-up.
>
> One issue in particular is that there are some dependencies that might
> not be available on Maven central yet. That might delay some of what we
> want to do or require that folks need to build stuff locally and publish
> to their local repository to use this - at least while the refactoring
> is still in progress.
>
> A couple of questions.
>
> Would we ever release this? Or would it just be a vehicle for running
> the TCK? I'm not seeing a need to release but we might tag from time to
> time (e.g. when a Tomcat version passes all the TCKs).
>
> Will we (ultimately) want branches for each Tomcat version? I think we
> will. Currently, the Jakarta EE 10 TCK is being refactored. I'm not sure
> of the plan but I assume there will be a refactored release for Jakarta
> EE 10 and then work will start on Jakarta EE 11.
>
> What version scheme should we use? Not hugely important if we aren't
> releasing. Do we leave it on 0.0.1-SNAPSHOT, align it with the TCK
> version, the Tomcat version or something else? My current thinking is
> set it to 0.0.1-SNAPSHOT and revisit if we need to.
>
> Do we want to configure GitHub actions to run the TCKs after a commit? I
> think we do as this gives us an easy way to run the TCKs. Update the
> Tomcat version. Commit. Push. Wait. Done.
>
> Thoughts?
It would be quite impressive if this becomes just another testsuite.
Given how resource and annoyance intensive the previous TCK was, I
mean.

Rémy

> Mark
>
>
>
> On 16/06/2023 20:18, Mark Thomas wrote:
> > Thanks, those are really helpful. I'll try and find some time to look at
> > this some more next week.
> >
> > Mark
> >
> >
> > On 16/06/2023 17:59, Romain Manni-Bucau wrote:
> >> Yes
> >>
> >> https://github.com/apache/bval/blob/master/bval-tck/src/main/java/org/apache/bval/arquillian/BValArquillianExtension.java
> >>   or
> >> https://github.com/apache/geronimo-opentracing/blob/master/geronimo-opentracing/src/test/java/org/apache/geronimo/microprofile/opentracing/tck/setup/SkipOpentracingApiSetup.java
> >>
> >> To hack the container I guess the easiest is to override default
> >> tomcat one
> >> to force a context class and then hack the autoconfig in the custom
> >> context.
> >>
> >> If needed i can do a poc to explain more next week if it helps and you
> >> point me a pom setup you use for deps to ensure I use the same ones.
> >>
> >> Le ven. 16 juin 2023 à 18:12, Mark Thomas <ma...@apache.org> a écrit :
> >>
> >>> Do you have a pointer for an example of the custom TCK loadable
> >>> extension? That sounds like it might be all we need. If the plumbing is
> >>> already in place in Arquillian then I'm happy not to reinvent the wheel.
> >>>
> >>> Mark
> >>>
> >>>
> >>>
> >>> On 16/06/2023 16:34, Romain Manni-Bucau wrote:
> >>>> Hi Mark,
> >>>>
> >>>> On TomEE side (and other spec impl ones) we had a hybrid approach:
> >>>>
> >>>> * Add arquillian container properties when reusable (ex: context
> >>>> customization for tomcat for ex)
> >>>> * Add a custom tck loadableextension (ServiceLoader for arquillian)
> >>>> which
> >>>> overrides the container for the specific tck suite
> >>>>
> >>>> Overall any scanning must be hybrid between container and app with
> >>> embedded
> >>>> container in arquillian approach (in openwebbeans/tomee we configure
> >>>> the
> >>>> resources we can read from container or not for ex!).
> >>>>
> >>>> So I think the easiest would be to just make the context and loader
> >>>> configurable from arquillian.xml for this particular case or if not
> >>> willed,
> >>>> let tomcat-tck module patch the default container to do it
> >>> programmatically
> >>>> specifically for tck runner. Kind of least worse compromise IMHO.
> >>>>
> >>>> Romain Manni-Bucau
> >>>> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> >>>> <https://rmannibucau.metawerx.net/> | Old Blog
> >>>> <http://rmannibucau.wordpress.com> | Github <
> >>> https://github.com/rmannibucau> |
> >>>> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> >>>> <
> >>> https://www.packtpub.com/application-development/java-ee-8-high-performance
> >>>>
> >>>>
> >>>>
> >>>> Le ven. 16 juin 2023 à 17:11, Mark Thomas <ma...@apache.org> a écrit :
> >>>>
> >>>>> Hi all,
> >>>>>
> >>>>> The Jakarta TCK project is in the process of refactoring the TCKS
> >>>>> to run
> >>>>> with JUnit 5 and Arquillian. I have tested early versions of the
> >>>>> refactored EL and WebSocket and things are very promising. The TCKs
> >>>>> complete a LOT faster.
> >>>>>
> >>>>> I hit upon a small niggle with the WebSocket TCK and wanted to get
> >>>>> some
> >>>>> feedback on solutions.
> >>>>>
> >>>>> The way the WebSocket TCK is constructed, it exposes the entire
> >>>>> testsuite on the class path, as well as the current WAR file under
> >>>>> test.
> >>>>> The annotation scanning therefore picks up all the tests, attempts to
> >>>>> deploy them all which - unsurprisingly - fails due to path conflicts.
> >>>>> The fix is to set StandardJarScanner.scanClassPath to false. The
> >>>>> question is how best to do this long term.
> >>>>>
> >>>>> My current solution is to change the default, rebuild Tomcat 10.1.x
> >>>>> snapshot, deploy it to my local Maven repository and then run the TCK
> >>>>> with the snapshot. That works but isn't a viable long-term solution.
> >>>>>
> >>>>> Other ideas I have had:
> >>>>>
> >>>>> Add a system property (yuck) to set the default for
> >>>>> StandardJarScanner.scanClassPath. I don;t like this because a) it
> >>>>> adds a
> >>>>> system property and b) it isn't scalable if there are other
> >>>>> settings we
> >>>>> need to configure for the TCKs.
> >>>>>
> >>>>> Update the Arquillian containers to add new configuration properties.
> >>>>> Better, but dependent on the Arquillian project for Tomcat containers
> >>>>> that is looking dormant. Forking is an option but there is still the
> >>>>> issue of adding more and more settings over time. My fear is this ends
> >>>>> up like the admin app and never keeps up with newly added features.
> >>>>>
> >>>>> Use the ServiceLoader mechanism on Tomcat instance creation to load
> >>>>> LifecycleListener instances that are then attached to the Server
> >>>>> instance and can be used to configure it. Use some new class like
> >>>>> EmbeddedConfigurationLifecycleListener for this. For security, disable
> >>>>> this behaviour by default unless enabled with (yuck) a system
> >>>>> property.
> >>>>>
> >>>>> I'm leaning towards the ServiceLoader approach as it gives us maximum
> >>>>> flexibility and maximum control. It also provides a way for folks to
> >>>>> configure Tomcat when it is embedded in other products with the
> >>>>> necessary configuration being exposed.
> >>>>>
> >>>>> Thoughts?
> >>>>>
> >>>>> Mark
> >>>>>
> >>>>> ---------------------------------------------------------------------
> >>>>> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> >>>>> For additional commands, e-mail: dev-h...@tomcat.apache.org
> >>>>>
> >>>>>
> >>>>
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> >>> For additional commands, e-mail: dev-h...@tomcat.apache.org
> >>>
> >>>
> >>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> > For additional commands, e-mail: dev-h...@tomcat.apache.org
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to