Derek Baum created FELIX-5344: --------------------------------- Summary: HTTP_WHITEBOARD_TARGET doesn't work reliably Key: FELIX-5344 URL: https://issues.apache.org/jira/browse/FELIX-5344 Project: Felix Issue Type: Bug Components: HTTP Service Affects Versions: http.jetty-3.2.4, http.base-3.0.12 Reporter: Derek Baum
I am trying to use HTTP_WHITEBOARD_TARGET to match a specific http instance: (I'm actually experimenting with multiple http instances, but the problem occurs with a single instance). @Component(service = Servlet.class, property = { HttpWhiteboardConstants.HTTP_WHITEBOARD_TARGET + "=(org.osgi.service.http.port=7777)" }) I am configuring http.jetty using config admin (via fileinstall) I have disabled automatic jetty startup using: org.apache.felix.http.enable=false Now I start jetty by dropping the file org.apache.felix.http.cfg into the fileinstall load directory: org.apache.felix.http.enable=true org.osgi.service.http.port=7777 and my servlet is not always registered. This appears to be because WhiteboardManager.addWhiteboardService() is being called before the http service properties have been set. Here's the output of some debug I added to isMatchingService(): XXXtarget =(org.osgi.service.http.port=7777) match=false XXXprop objectClass=[Ljava.lang.String;@292aebaf XXXprop osgi.http.service.id=[60] XXXprop service.bundleid=22 XXXprop service.id=61 XXXprop service.scope=singleton It doesn't contain any endpoint properties. To prove this is a timing issue, I stopped and started my web bundle, which then registered correctly. The corresponding debug is: XXXtarget =(org.osgi.service.http.port=7777) match=true XXXprop objectClass=[Ljava.lang.String;@292aebaf XXXprop org.apache.felix.http.enable=true XXXprop org.apache.felix.https.enable=false XXXprop org.osgi.service.http.port=7777 XXXprop org.osgi.service.http.port.secure=8443 XXXprop osgi.http.endpoint=[Ljava.lang.String;@1d1447fa XXXprop osgi.http.service.id=[60] XXXprop service.bundleid=22 XXXprop service.id=61 XXXprop service.scope=singleton -- This message was sent by Atlassian JIRA (v6.3.4#6332)