[ 
https://issues.apache.org/jira/browse/SLING-7621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Marek Krokosinski updated SLING-7621:
-------------------------------------
    Description: 
In some cases one might want to include external content to a page. Example of 
such external content are AEM Experience Fragments or Content Fragments, or Zen 
Garden Snippets.
 Sometimes such 3rd party content can be categorized into two categories:
 * not included by SDI - content which should not be included separately (for 
example when content requires page context)
 * included by SDI - content which is static, so it can be cached because it 
does not change often (header, footer), or because it changes once per week and 
we don't want to invalidate whole cache.

Example content structure:
 * /content/my-site/my-micro-site/en_gl/content/fragments/
 * /content/my-site/my-micro-site/en_gl/content/fragments/cacheable-fragments

When content is specific to market (by market I mean for example British 
market, German market etc.), and we would want to include that 3rd party 
content using SDI, we would have to provide one Sling Dynamic Include 
configuration per market.
 As you may know, one site can have 100 or more markets, it means at least 100 
configuration for such simple case (and usually, it's not the only one!).

Solution for this problem is to change the way, how SDI performs check on the 
path.
 Currently SDI checks if requested resource path starts from the configured 
path. 
 Instead of simple check with startsWith, SDI should support regular 
expressions, which are much more flexible.

In the given scenario we would have one simple configuration with path 
configured to:

^/content/my-site/([a-zA-Z-_]+)/([a-z]{2}_[a-z]{2})/content/fragments/cacheable-fragments$

I have created pull requests which also provides some unit tests for 
Configuration and ConfigurationWhiteboard classes.

 

Pull request: 
https://github.com/apache/sling-org-apache-sling-dynamic-include/pull/3

  was:
In some cases one might want to include external content to a page. Example of 
such external content are AEM Experience Fragments or Content Fragments, or Zen 
Garden Snippets.
Sometimes such 3rd party content can be categorized into two categories:
* not included by SDI - content which should not be included separately (for 
example when content requires page context)
* included by SDI - content which is static, so it can be cached because it 
does not change often (header, footer), or because it changes once per week and 
we don't want to invalidate whole cache.

Example content structure:
* /content/my-site/my-micro-site/en_gl/content/fragments/
* /content/my-site/my-micro-site/en_gl/content/fragments/cacheable-fragments

When content is specific to market (by market I mean for example British 
market, German market etc.), and we would want to include that 3rd party 
content using SDI, we would have to provide one Sling Dynamic Include 
configuration per market.
As you may know, one site can have 100 or more markets, it means at least 100 
configuration for such simple case (and usually, it's not the only one!).

Solution for this problem is to change the way, how SDI performs check on the 
path.
Currently SDI checks if requested resource path starts from the configured 
path. 
Instead of simple check with startsWith, SDI should support regular 
expressions, which are much more flexible.

In the given scenario we would have one simple configuration with path 
configured to:

^/content/my-site/([a-zA-Z-_]+)/([a-z]\{2}_[a-z]\{2})/content/fragments/cacheable-fragments$

I have created pull requests which also provides some unit tests for 
Configuration and ConfigurationWhiteboard classes.


> Regex path matching in Sling Dynamic Include
> --------------------------------------------
>
>                 Key: SLING-7621
>                 URL: https://issues.apache.org/jira/browse/SLING-7621
>             Project: Sling
>          Issue Type: New Feature
>    Affects Versions: Dynamic Include 3.0.0
>            Reporter: Marek Krokosinski
>            Priority: Major
>
> In some cases one might want to include external content to a page. Example 
> of such external content are AEM Experience Fragments or Content Fragments, 
> or Zen Garden Snippets.
>  Sometimes such 3rd party content can be categorized into two categories:
>  * not included by SDI - content which should not be included separately (for 
> example when content requires page context)
>  * included by SDI - content which is static, so it can be cached because it 
> does not change often (header, footer), or because it changes once per week 
> and we don't want to invalidate whole cache.
> Example content structure:
>  * /content/my-site/my-micro-site/en_gl/content/fragments/
>  * /content/my-site/my-micro-site/en_gl/content/fragments/cacheable-fragments
> When content is specific to market (by market I mean for example British 
> market, German market etc.), and we would want to include that 3rd party 
> content using SDI, we would have to provide one Sling Dynamic Include 
> configuration per market.
>  As you may know, one site can have 100 or more markets, it means at least 
> 100 configuration for such simple case (and usually, it's not the only one!).
> Solution for this problem is to change the way, how SDI performs check on the 
> path.
>  Currently SDI checks if requested resource path starts from the configured 
> path. 
>  Instead of simple check with startsWith, SDI should support regular 
> expressions, which are much more flexible.
> In the given scenario we would have one simple configuration with path 
> configured to:
> ^/content/my-site/([a-zA-Z-_]+)/([a-z]{2}_[a-z]{2})/content/fragments/cacheable-fragments$
> I have created pull requests which also provides some unit tests for 
> Configuration and ConfigurationWhiteboard classes.
>  
> Pull request: 
> https://github.com/apache/sling-org-apache-sling-dynamic-include/pull/3



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to