You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Andreas Schaefer (JIRA)" <ji...@apache.org> on 2018/07/06 20:15:00 UTC

[jira] [Created] (SLING-7768) Allow Placeholders in /etc/map

Andreas Schaefer created SLING-7768:
---------------------------------------

             Summary: Allow Placeholders in /etc/map
                 Key: SLING-7768
                 URL: https://issues.apache.org/jira/browse/SLING-7768
             Project: Sling
          Issue Type: Improvement
          Components: ResourceResolver
         Environment: Sling 11-SNAPSHOT, JDK 1.8
            Reporter: Andreas Schaefer
         Attachments: Screenshot 2018-07-06 11.41.58.png, Screenshot 2018-07-06 11.42.41.png, Screenshot 2018-07-06 11.43.34.png

Having worked on migrations of a Sling derivate Ruben & I ran into issues where the /etc/map would map to production instead of testing environment.
Many big customer have extended /etc/maps and also many different environments like dev, qa, staging, prod etc.
It would be great to have a tool where for example items like the host name or external links in /etc/map could be configured outside so that just one entry has to adjusted rather than creating a full copy of the /etc/map tree.
 
Example:
 
/etc/map/http/\{{phv.fq.host.name}}.8080
 
Placeholder provides:
DEV: phv.fq.host.name=localhost
QA: phv.fq.host.name=qa.author.acme.com
STAGING: phv.fq.host.name=[staging.author.acme.com|http://staging.author.acme.com/]
PROD: phv.fq.host.name=[acme.com|http://acme.com/]
 
At runtime these are the resolved values:
DEV: http/localhost.8080
QA: http/qa.author.acme.com.8080
STAGING: http/[staging.author.acme.com|http://staging.author.acme.com/].8080
PROD: http/[acme.com|http://acme.com/].8080
 
Not only does that make it easier and faster to create new test environments but it also cuts down on the chance of copy-n-paste errors.
 
I have a working POC with an PlaceholderProvider OSGi service and an enhanced MapEntries that resolved any placeholders if found.
 
Attached are 3 screenshots:
1. OSGi Placeholder Provider Configuration
2. /etc/map (Composum)
3. Result of [http://andreass.local:8080/] call



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