[ 
https://issues.apache.org/jira/browse/CXF-6132?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14280166#comment-14280166
 ] 

Sergey Beryozkin edited comment on CXF-6132 at 1/16/15 12:40 PM:
-----------------------------------------------------------------

Hi Andriy, 
I guess we need to have the container to provide ApplicationPath, Path and 
Provider annotated classes. If an ApplicationPath class is available then we 
can simply ignore Path and Provider annotated classes because ApplicationPath 
points to Application which will set up everything. If ApplicationPath class is 
not available then we'd create a new Application instance from those Path and 
Provider classes. 
What is not clear to me yet is how to register CXFNonSpringJaxrsServlet - I 
think we can register it as as a servlet filter against with the provided 
ServletContext. 

The other thing that I'm not sure about is whether the code implementing JAX-RS 
ServletContextInitializer should be shipped in a sep module or not. The 
possible issue here is that if we ship it statically with the JAX-RS frontend 
then it might cause side-effects in cases where people do provide web.xml with 
CXFNonSpringJaxrsServlet declared, so we might have a double registration if a 
container also supports ServletContextInitializer. I guess, as POC, it can be 
added to 3.1.0-SNAPSHOT rt/frontend/jaxrs first just to make thing simpler, but 
then we'd need to make the final decision before 3.1.0 gets out, which is still 
some time away...

Thanks 


was (Author: sergey_beryozkin):
Hi Andriy, 
I guess we need to have the container provided ApplicationPath, Path and 
Provider annotated classes. If an ApplicationPath class is available then we 
can simply ignore Path and Provider annotated classes because ApplicationPath 
points to Application which will set up everything. If ApplicationPath class is 
not available then we'd create a new Application instance from those Path and 
Provider classes. 
What is not clear to me yet is how to register CXFNonSpringJaxrsServlet - I 
think we can register it as as a servlet filter against with the provided 
ServletContext. 

The other thing that I'm not sure about is whether the code implementing JAX-RS 
ServletContextInitializer should be shipped in a sep module or not. The 
possible issue here is that if we ship it statically with the JAX-RS frontend 
then it might cause side-effects in cases where people do provide web.xml with 
CXFNonSpringJaxrsServlet declared, so we might have a double registration if a 
container also supports ServletContextInitializer. I guess, as POC, it can be 
added to 3.1.0-SNAPSHOT rt/frontend/jaxrs first just to make thing simpler, but 
then we'd need to make the final decision before 3.1.0 gets out, which is still 
some time away...

Thanks 

> Provide JAX-RS ServletContextInitializer 
> -----------------------------------------
>
>                 Key: CXF-6132
>                 URL: https://issues.apache.org/jira/browse/CXF-6132
>             Project: CXF
>          Issue Type: New Feature
>          Components: JAX-RS
>            Reporter: Sergey Beryozkin
>            Assignee: Andriy Redko
>             Fix For: 3.0.4, 3.1.0
>
>
> This will offer an advanced support for the auto-discovery of JAX-RS 
> Application, root resources and providers in OSGI in combination with 
> pax-web-jetty.
> Options:
> - dynamically register the implementation as OSGI service
> - ship a static implementation
> [1] 
> https://github.com/ops4j/org.ops4j.pax.web/blob/master/pax-web-jetty/src/main/java/org/ops4j/pax/web/service/jetty/internal/JettyServerWrapper.java#L303
> [2] 
> http://docs.oracle.com/javaee/7/api/javax/servlet/ServletContainerInitializer.html



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to