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

Ruben Reusser updated SLING-7768:
---------------------------------
    Comment: was deleted

(was: so when this was done there was a bigger discussion about making this 
more generic and hence this never made it into sling itself as it's only 
supporting etc/map. 

A more generic solution to this problem could be achieved with sling pipes (a 
config structure somewhere in the repository that is copied over to the final 
location with sling pipes and while doing so it should be able to pickup and 
inject the environment variables))

> Add String Interpolation support to /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
>            Priority: Major
>         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 extensive /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.14#76016)

Reply via email to