[
https://issues.apache.org/jira/browse/OWB-1293?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16881811#comment-16881811
]
Romain Manni-Bucau commented on OWB-1293:
-----------------------------------------
[[email protected]] not really. Strictly speaking the current integration is a
substandard and several things already don't work :( - that said it is the same
for tomcat module.
Let's list what the integration must support and how it can be solved each time:
1. Boot: weld and openwebbeans have a listener to handle that and scopes. You
can either test which impl is available and add the right listener
programmatically (it is like 5 lines and avoid to reimplement scopes etc which
can be bothering in jetty). This is likely the best to ensure the listener is
the first one (enclosing in terms of execution) but alternative is to let it be
set up automatically. On weld side there is already an initializer and we can
add a module with it in owb if it is needed but not sure it is good since the
order would then be random - or you would need to ensure jetty resort
initializer, which can likely be done relying on @Priority since it is there
anyway.
2. Servlet components injection: here the initialization must be done lazily
(once the listener is bootstraped to have the CDI container ready) and you can
rely on the portable CDI.current() API to get the bean manager and do the
injections with creational context releasing after the instance gets destroyed.
3. Custom bean management: it is mainly about the principal if you do 1. Here
the good news is that you don't need to use security services of OWB or Weld
and you can just decorate the built-in bean/service (which would never be
called):
{code}
@Decorator
@Priority(0)
public class JettyPrincipal implements Principal
{
@Inject
@Delegate
private Principal principal;
@Override
public String getName()
{
return useSomeJettyInternals();
}
}
{code}
So at the end I guess the integration in jetty can become portable quite
easily. Is it clearer?
> 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.3#76005)