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

Carsten Ziegeler commented on FELIX-5446:
-----------------------------------------

Fixed the implementation in rev 1775388
With this change I could remove a lot of duplicate code that was used to handle 
the listeners registered through the proprietary Felix whiteboard. Now the same 
code as for the http whiteboard is used, making everything easier.
Updated tests to verify the behaviour

> Http Service ignores Whiteboard Servlet API Listeners
> -----------------------------------------------------
>
>                 Key: FELIX-5446
>                 URL: https://issues.apache.org/jira/browse/FELIX-5446
>             Project: Felix
>          Issue Type: Bug
>          Components: HTTP Service
>    Affects Versions: http.base-3.0.16, http.jetty-3.4.0, http.bridge-3.0.16
>            Reporter: Felix Meschberger
>            Assignee: Carsten Ziegeler
>             Fix For: http.base-3.0.18, http.jetty-3.4.2, http.bridge-3.0.18
>
>
> Situation:
> # A ServletRequestListener registered with the Http Whiteboard Service 
> (standard OSGi Http Whiteboard) with property 
> {{osgi.http.whiteboard.listener==true}}.
> # A Servlet registered with the traditional OSGi HttpService
> Problem: The ServletRequestListener is not called for requests for requests 
> to said servlet.
> Investigation: It looks like the ServletRequestListenerManager used to handle 
> ServletRequestListener services for traditionally registered Servlets 
> explicitly ignores listeners registered with the 
> {{osgi.http.whiteboard.listener}} property set. See this code in 
> [ServletRequestListenerManager|https://github.com/apache/felix/blob/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/service/listener/ServletRequestListenerManager.java#L45].
> For one thing, the listener should at best ignore services registered with 
> the property set to true. If the property is set to anything else, it will 
> explicitly be ignored by the OSGi Whiteboard Http Service and thus should 
> probably be accepted by the legacy Felix Http Service implementation.
> On the other hand: Why ignore at all ? Originally the legacy Felix Http 
> Service accepted all Servlet API listeners regardless of such property set. 
> So if there is a listener used and the Jetty bundle is updated and the 
> service updated to make sure it is called for new OSGi Whiteboard services it 
> will not be called any more for the legacy registered services
> I think the legacy Felix Http Service should just accept all listeners like 
> it always did.



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

Reply via email to