Congrats for the achievement, +1 to follow tomcat versions, tag and run at
least daily if possible, it is a huge step for tomcat and tck IMHO.

Le mer. 21 juin 2023 à 11:10, Mark Thomas <ma...@apache.org> a écrit :

> On 21/06/2023 09:54, Rémy Maucherat wrote:
> > 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.
>
> Did I mention the TCKs are at least an order of magnitude faster? :)
>
> The full WebSocket TCK (minus the signature tests which haven't been
> migrated yet) run in just over 5 mins and I haven't even looked at
> tuning (parallel) options yet.
>
> Mark
>
> >
> > 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
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
>
>

Reply via email to