Hi Nelson,

do you care about creating an Issue for this and maybe provide a pull
request?
if needed, a jira user can be created.


regards, Achim

2017-05-23 14:45 GMT+02:00 Nelson Antunes <[email protected]>:

>   That call to registerResources in [1
> <https://github.com/ops4j/org.ops4j.pax.web/blob/web-3.2.9/pax-web-extender-whiteboard/src/main/java/org/ops4j/pax/web/extender/whiteboard/internal/element/ResourceWebElement.java#L56-L57>]
> is part of the org.osgi.service.http.HttpService interface.
>
>   I noticed the servlet name (at least the one listed with the http:list
> command) is set here [2
> <https://github.com/ops4j/org.ops4j.pax.web/blob/web-3.2.9/pax-web-jetty/src/main/java/org/ops4j/pax/web/service/jetty/internal/JettyServerImpl.java#L219>]
> (for Jetty).
>   So I tried to modify that model name. [3
> <https://github.com/ops4j/org.ops4j.pax.web/blob/web-3.2.9/pax-web-runtime/src/main/java/org/ops4j/pax/web/service/internal/HttpServiceStarted.java#L253-L254>]
> seemed a good place to try.
>
>   I changed it to:
>
> String modelName = "bundle:" + contextModel.getBundle().getBundleId();
> if(!"/".equals(name)) {
>  modelName += name;
> }
> final ResourceModel model = new ResourceModel(contextModel, servlet, alias, 
> modelName );
>
>
>   Now http:list show all the expected servlets and the resources are
> served from different bundles with the same internal resource paths.
>   They also get correctly undeployed when stopping the bundles.
>
>   But I can't be sure of any side-effects.
>
>   (tested in tag web-3.2.9, but the code is still the same in the master
>  branch)
>
> -- Nelson --
>
> [1] https://github.com/ops4j/org.ops4j.pax.web/blob/web-3.
> 2.9/pax-web-extender-whiteboard/src/main/java/org/ops4j/pax/web/extender/
> whiteboard/internal/element/ResourceWebElement.java#L56-L57
> [2] https://github.com/ops4j/org.ops4j.pax.web/blob/web-3.
> 2.9/pax-web-jetty/src/main/java/org/ops4j/pax/web/service/jetty/internal/
> JettyServerImpl.java#L219
> [3] https://github.com/ops4j/org.ops4j.pax.web/blob/web-3.2.9/
> pax-web-runtime/src/main/java/org/ops4j/pax/web/service/
> internal/HttpServiceStarted.java#L253-L254
>
>
> On Thursday, February 23, 2017 at 9:14:01 PM UTC, Nick Baker wrote:
>>
>> Hello All,
>>
>> We're experiencing an issue with bundles supplying Resource mappings. It
>> appears that the internal path within the bundle is used as the servlet
>> name [1]. Unfortunately, our teams love standards and conventions so
>> they're using a "web" folder for all bundles supplying Resources. This was
>> discovered on 3.1.4 but I've verified that the situation still exists in
>> master.
>>
>> PAX-Web appropriately doesn't allow multiple servlets of the same name so
>> we're loosing some resources upon startup of Karaf. The short-term solution
>> for us was to ensure that each internal bundle path is unique. A better
>> solution would be to modify PAX to create a composite key of bundle-id +
>> path when creating the resource Servlet names.
>>
>> [1] https://github.com/ops4j/org.ops4j.pax.web/blob/master/p
>> ax-web-extender-whiteboard/src/main/java/org/ops4j/pax/web/
>> extender/whiteboard/internal/element/ResourceWebElement.java#L57-L57
>>
>> -Nick Baker
>>
> --
> --
> ------------------
> OPS4J - http://www.ops4j.org - [email protected]
>
> ---
> You received this message because you are subscribed to the Google Groups
> "OPS4J" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>



-- 

Apache Member
Apache Karaf <http://karaf.apache.org/> Committer & PMC
OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer &
Project Lead
blog <http://notizblog.nierbeck.de/>
Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>

Software Architect / Project Manager / Scrum Master

-- 
-- 
------------------
OPS4J - http://www.ops4j.org - [email protected]

--- 
You received this message because you are subscribed to the Google Groups 
"OPS4J" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to