Hi Roy

While the approach sounds interesting with some caveats: It has the 
whiteboard.listener property twice and it attaches to the default Http Context 
which may or may not reflect Sling’s own servlet context (mostly it does, but 
there is no guarantee). What you could do is use the CONTEXT_SELECT property 
and select the org.apache.sling context.

But then, I don’t think we should expose the Servlet Context Path in the Sling 
Settings. IMHO Sling Settings is about the Sling Application as a whole and not 
a specific aspect of Sling.

And if the context path is properly exposed to your TransformerFactory, I think 
you just have everything you need. As I expect your TransformerFactory to only 
be used as part of request processing anyway, right ?

Regards
Felix

> Am 12.12.2016 um 22:07 schrieb Roy Teeuwen <r...@teeuwen.be>:
> 
> Hey Carsten,
> 
> Ok cool, thanks for the info! Maybe it would be useful to add the context 
> path to the SlingSettingsService? I created an initial patch:
> 
> https://github.com/apache/sling/compare/trunk...royteeuwen:feature/add-context-path-to-sling-settings-service
>  
> <https://github.com/apache/sling/compare/trunk...royteeuwen:feature/add-context-path-to-sling-settings-service>
> 
> What do you think?
> 
> Greets,
> Roy
> 
>> On 12 Dec 2016, at 16:14, Carsten Ziegeler <cziege...@apache.org> wrote:
>> 
>> Hi,
>> 
>> you either need a servlet request or servlet context, you can get a
>> servlet context through the init method of a servlet or by registering a
>> servlet context listener (assuming you use latest Sling which is using
>> the http whiteboard).
>> Other than those, I think there is no good way
>> 
>> Regards
>> Carsten
>> 
>> Roy Teeuwen wrote
>>> Hey all,
>>> 
>>> It seems I was able to fix it by using the sling request fro 
>>> ProcessingContext that is available in the TransformerFactory init method 
>>> :). 
>>> But it would still be nice to know if it is possible to get the context 
>>> path without a sling request!
>>> 
>>> Greets,
>>> Roy
>>> 
>>> 
>>>> On 9 Dec 2016, at 17:14, Roy Teeuwen <r...@teeuwen.be> wrote:
>>>> 
>>>> Hey all,
>>>> 
>>>> I am trying to get the context path of the sling application somewhere 
>>>> where I don't have a HttpServletRequest at hand, so I cant call 
>>>> request.getContextPath(). 
>>>> 
>>>> More specifically I have a bug in a TransformerFactory that transforms 
>>>> links to versioned clientlibs (acs-aem-commons 
>>>> VersionedClientlibsTransformerFactory), but my application has a context 
>>>> path, so this doesn't work. 
>>>> I want to try and see if I can fix it myself and create a PR instead 
>>>> reporting a bug, but I'm a bit lost in how to get the context path. Anyone 
>>>> can help?
>>>> 
>>>> Greets,
>>>> Roy
>>> 
>>> 
>> 
>> 
>> 
>> 
>> -- 
>> Carsten Ziegeler
>> Adobe Research Switzerland
>> cziege...@apache.org
>> 
> 

Reply via email to