Like always, use relative resource types for whatever you have in the extends 
and requires files, so that the Servlet Resolver can still do its magic in 
terms of overlays.

> On 30 Jul 2021, at 10:23, Konrad Windszus <konra...@gmx.de> wrote:
> 
> What am I supposed to write in the extends file to support overlays?
> How to make sure that the /apps script is preferred over the /libs script?
> Thanks,
> Konrad
> 
>> On 30. Jul 2021, at 10:07, Radu Cotescu <r...@apache.org 
>> <mailto:r...@apache.org>> wrote:
>> 
>> Hi Konrad,
>> 
>> Take a look at this resource type [0] and the capability it generates:
>> 
>> sling.servlet;
>>   
>> sling.servlet.resourceTypes:List<String>="/apps/sling/scripting/examplebundle/precompiled/ttest,sling/scripting/examplebundle/precompiled/ttest";
>>   scriptEngine=htl;
>>   scriptExtension=html,
>> sling.servlet;
>>   
>> sling.servlet.resourceTypes:List<String>="/apps/sling/scripting/examplebundle/precompiled/ttest,sling/scripting/examplebundle/precompiled/ttest";
>>   scriptEngine=htl;
>>   scriptExtension=html;
>>   sling.servlet.selectors:List<String>=template
>> 
>> And also have a look at [1]. If your scripts are in a folder that starts 
>> with a search path, the plugin will generate two resource types - an 
>> absolute and a relative one. So I think that SLING-10688 is already handled. 
>> Let me know if you see otherwise.
>> 
>> Regards,
>> Radu
>> 
>> 
>> [0] - 
>> https://github.com/apache/sling-org-apache-sling-scripting-bundle-tracker-it/tree/master/examples/org-apache-sling-scripting-examplebundle-precompiled/src/main/scripts/apps/sling/scripting/examplebundle/precompiled/ttest
>>  
>> <https://github.com/apache/sling-org-apache-sling-scripting-bundle-tracker-it/tree/master/examples/org-apache-sling-scripting-examplebundle-precompiled/src/main/scripts/apps/sling/scripting/examplebundle/precompiled/ttest>
>>  
>> <https://github.com/apache/sling-org-apache-sling-scripting-bundle-tracker-it/tree/master/examples/org-apache-sling-scripting-examplebundle-precompiled/src/main/scripts/apps/sling/scripting/examplebundle/precompiled/ttest
>>  
>> <https://github.com/apache/sling-org-apache-sling-scripting-bundle-tracker-it/tree/master/examples/org-apache-sling-scripting-examplebundle-precompiled/src/main/scripts/apps/sling/scripting/examplebundle/precompiled/ttest>>
>> [1] - 
>> https://sling.apache.org/components/scriptingbundle-maven-plugin/metadata-mojo.html#searchPaths
>>  
>> <https://sling.apache.org/components/scriptingbundle-maven-plugin/metadata-mojo.html#searchPaths>
>>  
>> <https://sling.apache.org/components/scriptingbundle-maven-plugin/metadata-mojo.html#searchPaths
>>  
>> <https://sling.apache.org/components/scriptingbundle-maven-plugin/metadata-mojo.html#searchPaths>>
>> 
>> 
>>> On 29 Jul 2021, at 17:29, Konrad Windszus <konra...@gmx.de> wrote:
>>> 
>>> At least the https://github.com/apache/sling-scriptingbundle-maven-plugin 
>>> <https://github.com/apache/sling-scriptingbundle-maven-plugin> always 
>>> creates absolute resource types. I created 
>>> https://issues.apache.org/jira/browse/SLING-10688 
>>> <https://issues.apache.org/jira/browse/SLING-10688> for also optionally 
>>> creating relative resource types...
>>> Still this would rather be a workaround because I would assume that for 
>>> bundled scripts it often makes sense to provide the capability with an 
>>> absolute path while requiring the capability with a relative path (to allow 
>>> overlays). But that would obviously never match in OSGi....
>>> 
>>> Konrad
>>> 
>>>> On 29. Jul 2021, at 16:55, Konrad Windszus <konra...@gmx.de> wrote:
>>>> 
>>>> Hi,
>>>> With bundled scripts the extends attribute of the sling.servlet capability 
>>>> defines the resource type one extends 
>>>> (https://github.com/apache/sling-org-apache-sling-servlets-resolver#how 
>>>> <https://github.com/apache/sling-org-apache-sling-servlets-resolver#how>).
>>>> It is not specified though if the resource type should be absolute (i.e. 
>>>> start with a "/") or can be relative (and is looked up by prefixing it 
>>>> with any of the resource resolver search paths) but I guess it is the 
>>>> former.
>>>> I know that resource resolver search paths are not directly related to 
>>>> servlet resolving from bundles but they are extremely handy as they allow 
>>>> to overlay scripts from "/libs" in "/apps".
>>>> 
>>>> How can the same be achieved with bundled scripts?
>>>> I don't want to depend on bundle loading order and have a predictable 
>>>> servlet resolution. 
>>>> What is the recommended way to globally overlay a bundled script from 
>>>> another bundle?
>>>> 
>>>> Thanks,
>>>> Konrad

Reply via email to