OK, I created a first pull request that only contains the test changes. It's for the pax-web-7.2.x branch right now, but it should also work in master and pax-web-7.3.x branches (I can create pull requests also for these branches, but I would prefer to complete the review first). I have set you as a reviewer for it. I have not included the Tomcat patch because I would prefer to have different commits for the test extensions and the coding changes and because while the change makes the websocket test run on tomcat it has side effects on other tests (without websockets).
Am Mittwoch, 26. Juni 2019 13:25:01 UTC+2 schrieb Jean-Baptiste Onofré: > > +1 to reuse PAXWEB-1027, and happy to work with you on this one ;) > > Regards > JB > On 26/06/2019 11:33, Stephan Siano wrote: > > Hi, > > I did some further work on the topic. Here are my results: > > 1. I have some changes that are required to get the tests working at all. > There is some heavy use of service loaders in the websocket API, which > doesn't play too well with OSGi, so some tricks with ThreadContext class > loaders are needed. > 2. With these changes the tests works with the jetty container (I don't > know who parses these Annotations, but obviously something in Jetty does). > 3. I did some change to the sample bundle to have it register itself > programatically (as an option). With this change, the test will work on > Tomcat, so the runtime does work in tomcat but the automatic registration > doesn't. In order to make that working, I needed to register an additional > ServletContainerInitializer in pax-web-tomcat. > 4. I could not get it working with the Undertow container (the > registration, the test does work but returns a 404 when trying to upgrade > the websocket), which means that the endpoint is not registered. > > I think I should contribute what I have now because it will bring us a > working test for websockets on Jetty and at least partially working > websocket support on Tomcat. Do I create a new JIRA item for that or do I > re-use PAXWEB-1027, which is still open? > > Does anybody know how the websocket endpoint annotation parsing works in > pax-web-jetty (and maybe how we can get the same functionality with Tomcat > and Undertow)? > > Best regards > Stephan > > Am Dienstag, 25. Juni 2019 17:45:03 UTC+2 schrieb Achim Nierbeck: >> >> Hi, >> >> when I first started to look into websockets, there needed to be extra >> Bundles installed for Jetty. >> That's about 4 to 5 years ago :) >> But I haven't looked into the annotations, as far as I can remember. >> >> Regards, Achim >> >> >> Am Di., 25. Juni 2019 um 16:49 Uhr schrieb Jean-Baptiste Onofré < >> [email protected]>: >> >>> I mean that it's a similar pattern we use for other "connector". >>> >>> By the way, did you take a look on the websocket example in Karaf ? >>> >>> Regards >>> JB >>> On 25/06/2019 16:22, Stephan Siano wrote: >>> >>> Hi, >>> >>> I'm not so sure whether this is easy. I couldn't find anything about the >>> web socket annotations in the War extender (plus the annotation scanner in >>> the War extender creates some kind of dummy web.xml structure from the >>> scanned annotations, but there are no web.xml entries for websockets). >>> >>> Nevertheless, are you interested in my changes to the tests? I think >>> with these changes the tests start again (at least on Tomcat and Undertow), >>> but the tests fail. I also tried to register the Websocket programatically >>> with a ContextListener but there I couldn't get the ServerContainer from >>> the ServletContext (AFAIK this should work via servletContext. >>> getAttribute("javax.websocket.server.ServerContainer");). There is >>> probably all the websocket infrastructure missing in the Pax-Web classes. >>> >>> Best regards >>> Stephan >>> >>> On Tuesday, June 25, 2019 at 3:40:22 PM UTC+2, Jean-Baptiste Onofré >>> wrote: >>>> >>>> Hi, >>>> >>>> AFAIR, it's not yet fully supported. >>>> >>>> But easy to add/fix, I will tackle that. >>>> >>>> Regards >>>> JB >>>> On 25/06/2019 15:25, Stephan Siano wrote: >>>> >>>> Hi, >>>> >>>> I have a question concerning web sockets in Pax-Web: >>>> >>>> A colleague of mine is trying to deploy a war on a Pax-Web container >>>> that contains some annotated websocket server endpoints. This works with >>>> other web containers but not on Pax web (he is getting a 404 response when >>>> he is trying to upgrade the connection). >>>> >>>> I looked into the Pax-Web integration tests and it turned out that >>>> there is an integration test for a very similar scenario >>>> WebSocketIntegrationTest,testWebSocket() which uses the websocket-jsr356 >>>> sample bundle. >>>> >>>> However, this test was disabled. Even worse, it did not work anymore >>>> after the test client was moved from the jetty http client to the apache >>>> http client (because it currently uses a jetty websocket client which >>>> relies on the jetty http client). >>>> >>>> I changed the test infrastructure to use a jsr356 client (with the >>>> container specific implementation) and with some hassle around the class >>>> loading because of the pax-exam infrastructure I could likely get this >>>> running (at least with tomcat and undertow). However on both containers I >>>> get a 404 response code when upgrading the connection (as my colleague got >>>> with his websocket endpoint. >>>> >>>> Did this ever work in Pax-Web? I couldn't find any coding that is >>>> parsing for the ServerEndpoint annotation (only Servlet and other stuff). >>>> Or is this still unimplemented? >>>> >>>> Best regards >>>> Stephan >>>> -- >>>> -- >>>> ------------------ >>>> OPS4J - http://www.ops4j.org - [email protected] >>>> >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "OPS4J" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/ops4j/1baaf72c-d85f-423f-a9f3-91974ca72ba4%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/ops4j/1baaf72c-d85f-423f-a9f3-91974ca72ba4%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>>> -- >>> -- >>> ------------------ >>> OPS4J - http://www.ops4j.org - [email protected] >>> >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "OPS4J" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/ops4j/919b3351-ea5e-46e7-8e3c-310970cb71b1%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/ops4j/919b3351-ea5e-46e7-8e3c-310970cb71b1%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >>> -- >>> -- >>> ------------------ >>> OPS4J - http://www.ops4j.org - [email protected] >>> >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "OPS4J" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/ops4j/0d56e6d8-2bad-fec5-f7e5-ccf6ba007882%40gmail.com >>> >>> <https://groups.google.com/d/msgid/ops4j/0d56e6d8-2bad-fec5-f7e5-ccf6ba007882%40gmail.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> >> -- >> >> Apache Member >> Apache Karaf <http://karaf.apache.org/> Committer & PMC >> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer >> & Project Lead >> blog <http://notizblog.nierbeck.de/> >> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS> >> >> Software Architect / Project Manager / Scrum Master >> >> -- > -- > ------------------ > OPS4J - http://www.ops4j.org - [email protected] <javascript:> > > --- > You received this message because you are subscribed to the Google Groups > "OPS4J" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/ops4j/dccc6d6f-202c-431c-8780-96b9b9b3c29d%40googlegroups.com > > <https://groups.google.com/d/msgid/ops4j/dccc6d6f-202c-431c-8780-96b9b9b3c29d%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > > -- -- ------------------ OPS4J - http://www.ops4j.org - [email protected] --- You received this message because you are subscribed to the Google Groups "OPS4J" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ops4j/d681b088-e7b7-42e6-99e1-cf3d66458dff%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
