Uploaded image for project: 'Sling'
  1. Sling
  2. SLING-7768

Add String Interpolation support to /etc/map

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: Resource Resolver 1.7.0
    • Component/s: ResourceResolver
    • Labels:
      None
    • Environment:
      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

        1. Screenshot 2018-07-06 11.41.58.png
          133 kB
          Andreas Schaefer
        2. Screenshot 2018-07-06 11.42.41.png
          138 kB
          Andreas Schaefer
        3. Screenshot 2018-07-06 11.43.34.png
          176 kB
          Andreas Schaefer

          Issue Links

            Activity

              People

              • Assignee:
                andysch Andreas Schaefer
                Reporter:
                andysch Andreas Schaefer
              • Votes:
                0 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: