+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é
>     <jeanbapti...@gmail.com <javascript:>>:
>
>         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 - op...@googlegroups.com
>>>
>>>             ---
>>>             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 op...@googlegroups.com.
>>>             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
>>>             <https://groups.google.com/d/optout>.
>>
>>         -- 
>>         -- 
>>         ------------------
>>         OPS4J - http://www.ops4j.org - op...@googlegroups.com
>>         <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 op...@googlegroups.com <javascript:>.
>>         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
>>         <https://groups.google.com/d/optout>.
>         -- 
>         -- 
>         ------------------
>         OPS4J - http://www.ops4j.org - op...@googlegroups.com
>         <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 op...@googlegroups.com <javascript:>.
>         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
>         <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/
>     <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 - ops4j@googlegroups.com
>
> ---
> 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 ops4j+unsubscr...@googlegroups.com
> <mailto:ops4j+unsubscr...@googlegroups.com>.
> 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 - ops4j@googlegroups.com

--- 
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 ops4j+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ops4j/92c00a0c-9a19-904a-4439-dcd1d4cea815%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to