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

Greg Wilkins commented on OWB-1293:
-----------------------------------

So far in jetty we have avoided the container adding jars to the webapps class 
loader.  I know such an approach is common in other containers, but it can 
introduce other problems.   Let's say that we add a jar with our Decorator that 
knows all about the CDI SPI.  It will still have to rely on the webapp itself 
providing a CDI-api jar that is of the right version that the decorator will 
work against.  Now the CDI-api jar might evolve nicely without breaking binary 
compatibility... or it may not.    I guess if the CDI api changes 
significantly, then we have the same problem with our reflected code.... but at 
least we avoid some classloader complexity.

Anyway, the state of my branch is that I have a SCI that introspects the webapp 
looking for CDI API and if found it installs a Decorator that invokes the CDI 
API via MethodHandlers to decorate Listeners, Filters and Servlets.    This is 
working for a little test webapp we have with Weld. So now I'd like to test 
with OWB.... do you have test webapp I can consume from maven?

This approach will allow jetty to have a single integration for all CDI 
implementations, which will need to do no more than initialise themselves in an 
SCI or ServletContextListener.    I have a little bit of a concern with 
ordering for CDIs that initialise themselves with listeners, as that listener 
can obviously not be decorated, nor any listeners created before it.

 

> Update Jetty integration prior to Jetty-10 release
> --------------------------------------------------
>
>                 Key: OWB-1293
>                 URL: https://issues.apache.org/jira/browse/OWB-1293
>             Project: OpenWebBeans
>          Issue Type: Improvement
>          Components: Interceptor and Decorators
>            Reporter: Greg Wilkins
>            Priority: Major
>
> The current jetty integration relies on exposing private jetty APIs so a 
> jetty Decorator can be registered.   This is fragile and requires different 
> APIs for the upcoming jetty-10 release.
> Instead, Jetty is developing a mechanism where a object with a decorator 
> signature can be set as a context attribute and it will be introspected and 
> dynamically registered as a decorator without any API dependencies.
> This is currently being developed in 
> [https://github.com/eclipse/jetty.project/pull/3838] and an integration with 
> Weld is at [https://github.com/weld/core/pull/1926] 
> Feedback is sought from the OpenWebBeans team on the approach and then we'd 
> like to collaborate to make a similar integration.
>  
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

Reply via email to