Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
Sling 11-SNAPSHOT, JDK 1.8
Description
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
PROD: phv.fq.host.name=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.8080
PROD: 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
Attachments
Attachments
Issue Links
- is related to
-
SLING-9898 Support interpolation in Context-Aware Configuration
- Open
-
SLING-9727 sling-mock: Make compatible with o.a.s.resourceresolver 1.7.0
- Closed