[jira] [Commented] (SLING-7768) Add String Interpolation support to /etc/map
[ https://issues.apache.org/jira/browse/SLING-7768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17144257#comment-17144257 ] Roy Teeuwen commented on SLING-7768: [~rombert] ok perfect because I also had to build a workaround for that specific issue two years ago when upgrading to AEM 6.3, would be nice to have that fixed! > 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 >Assignee: Andreas Schaefer >Priority: Major > Fix For: Resource Resolver 1.6.18 > > 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 (v8.3.4#803005)
[jira] [Commented] (SLING-7768) Add String Interpolation support to /etc/map
[ https://issues.apache.org/jira/browse/SLING-7768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17144240#comment-17144240 ] Robert Munteanu commented on SLING-7768: [~royteeuwen] - I see SLING-8946 is still open and I consider it a blocker. Will try to clarify whether it's indeed fixed or not. > 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 >Assignee: Andreas Schaefer >Priority: Major > Fix For: Resource Resolver 1.6.18 > > 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 (v8.3.4#803005)
[jira] [Commented] (SLING-7768) Add String Interpolation support to /etc/map
[ https://issues.apache.org/jira/browse/SLING-7768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17144104#comment-17144104 ] Roy Teeuwen commented on SLING-7768: any ETA on a release date for this? > 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 >Assignee: Andreas Schaefer >Priority: Major > Fix For: Resource Resolver 1.6.18 > > 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 (v8.3.4#803005)
[jira] [Commented] (SLING-7768) Add String Interpolation support to /etc/map
[ https://issues.apache.org/jira/browse/SLING-7768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17143814#comment-17143814 ] Bertrand Delacretaz commented on SLING-7768: FWIW, as the rest of the /etc/map documentation was already on the Sling website, I have moved, the interpolation docs there with https://github.com/apache/sling-site/commit/eb5cf32c986f3ea60158e0808cf92634cbedb35d They are now (live in a few minutes) at https://sling.apache.org/documentation/the-sling-engine/mappings-for-resource-resolution.html > 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 >Assignee: Andreas Schaefer >Priority: Major > Fix For: Resource Resolver 1.6.18 > > 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 (v8.3.4#803005)
[jira] [Commented] (SLING-7768) Add String Interpolation support to /etc/map
[ https://issues.apache.org/jira/browse/SLING-7768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17022486#comment-17022486 ] Andreas Schaefer commented on SLING-7768: - [~bdelacretaz] Thanks for the tip with Jacoco. I am not a huge fan of Code Coverage as the value depends on how little is actually mocked and so IT tests are the important tests. Anyhow I did create some tests to increase the code coverage. > 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 (v8.3.4#803005)
[jira] [Commented] (SLING-7768) Add String Interpolation support to /etc/map
[ https://issues.apache.org/jira/browse/SLING-7768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17022295#comment-17022295 ] Bertrand Delacretaz commented on SLING-7768: To nitpick, I ran a Jacoco coverage report and it looks like the following two sections of the {{Interpolator}} code are not covered by tests. If they are useful it would be good to make sure they are, or remove them if not useful. {code} if (count > 0) { LOGGER.trace("No End ({}) found in: '{}' (count: '{}')", END, result, count); // no matching end found -> end start = result.length(); continue; } {code} {code} if (!(replacement instanceof String)) { if (start == 0 && index == result.length()) { return replacement; } } {code} Sorry if I'm being picky...but I suppose it's much easier to add those tests now than to find out later that they are missing. > 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 (v8.3.4#803005)
[jira] [Commented] (SLING-7768) Add String Interpolation support to /etc/map
[ https://issues.apache.org/jira/browse/SLING-7768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17021814#comment-17021814 ] Carsten Ziegeler commented on SLING-7768: - Thanks for updating [~andysch] - the PR looks basically good to me, I've added some comments which would need to be addressed > 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 (v8.3.4#803005)
[jira] [Commented] (SLING-7768) Add String Interpolation support to /etc/map
[ https://issues.apache.org/jira/browse/SLING-7768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17021803#comment-17021803 ] Andreas Schaefer commented on SLING-7768: - Pushed my changes with the Interpolation and the $[type:name;default=defaultValue] syntax. A few notes: # I could not remove the interface SlingInterpolationProvider as this did not work with the tests but I also like to have an interface to clearly show what function(s) a service exposes # Interpolation was copied over from Felix with the difference that a missing type results to taking the values from the Config map # env, prop and Config map values and defaults are supported # Only sling:match can have the placeholders # $[, ], :, ; and = for the placeholder separators are hard coded > 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 (v8.3.4#803005)
[jira] [Commented] (SLING-7768) Add String Interpolation support to /etc/map
[ https://issues.apache.org/jira/browse/SLING-7768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17019894#comment-17019894 ] Carsten Ziegeler commented on SLING-7768: - I think we should rather go with the optional sling:match property instead of coding everything into the node name. This way we can use the exact same syntax including the right brackets, colons and so on. With this you give the node a descriptive title but put the value into sling:match > 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 (v8.3.4#803005)
[jira] [Commented] (SLING-7768) Add String Interpolation support to /etc/map
[ https://issues.apache.org/jira/browse/SLING-7768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17019665#comment-17019665 ] Andreas Schaefer commented on SLING-7768: - No, neither does ';' and even ',' can give grief. I would suggest: ${env.test@default=one} This works both with curl and Composum. > 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 (v8.3.4#803005)
[jira] [Commented] (SLING-7768) Add String Interpolation support to /etc/map
[ https://issues.apache.org/jira/browse/SLING-7768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17018599#comment-17018599 ] Carsten Ziegeler commented on SLING-7768: - Does the colon work? Like ${env:foo} ? Right, I don't want to support files, but with env: and prop: we support env variables and framework properties > 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 (v8.3.4#803005)
[jira] [Commented] (SLING-7768) Add String Interpolation support to /etc/map
[ https://issues.apache.org/jira/browse/SLING-7768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17018277#comment-17018277 ] Andreas Schaefer commented on SLING-7768: - So '$[]' does not work as node name so I guess we are back to '${}'. Regarding the interpolation I am fine with that but I thought you did not want to support configuration files? > 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 (v8.3.4#803005)
[jira] [Commented] (SLING-7768) Add String Interpolation support to /etc/map
[ https://issues.apache.org/jira/browse/SLING-7768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17018222#comment-17018222 ] Carsten Ziegeler commented on SLING-7768: - The Felix interpolation plugin is here: https://github.com/apache/felix/tree/trunk/configadmin-plugins/interpolation/src/main/java/org/apache/felix/configadmin/plugin/interpolation > 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 (v8.3.4#803005)
[jira] [Commented] (SLING-7768) Add String Interpolation support to /etc/map
[ https://issues.apache.org/jira/browse/SLING-7768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17013030#comment-17013030 ] Carsten Ziegeler commented on SLING-7768: - I had a brief look at the PR. I think we don't need an interface, there shouldn't be a need to make the interpolation pluggable. >From a syntax point of view, it would be nice if we could support the same >syntax as the configuration admin interpolation plugin which is {noformat} $[proptype:propname] $[proptype:propname;default=foo] {noformat} where proptype can be secret, env, or prop - we probably don't need to support "secret", env gets a value from the named env variable and prop from the bundle context. If no proptype prefix is used it could fallback to the provided configuration. Not sure if we can use square brackets in JCR node names; if we can't we need to stick with angle brackets. But we should support the proptype and default values > 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 (v8.3.4#803005)
[jira] [Commented] (SLING-7768) Add String Interpolation support to /etc/map
[ https://issues.apache.org/jira/browse/SLING-7768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16896307#comment-16896307 ] Andreas Schaefer commented on SLING-7768: - BTW the current implementation uses the StrSubstitutor from commons lang3 as suggested by [~bdelacretaz]. > 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)
[jira] [Commented] (SLING-7768) Add String Interpolation support to /etc/map
[ https://issues.apache.org/jira/browse/SLING-7768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16896304#comment-16896304 ] Andreas Schaefer commented on SLING-7768: - Created PR for this ticket: https://github.com/apache/sling-org-apache-sling-resourceresolver/pull/15 > 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)
[jira] [Commented] (SLING-7768) Add String Interpolation support to /etc/map
[ https://issues.apache.org/jira/browse/SLING-7768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16893769#comment-16893769 ] Ruben Reusser commented on SLING-7768: -- 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)
[jira] [Commented] (SLING-7768) Add String Interpolation support to /etc/map
[ https://issues.apache.org/jira/browse/SLING-7768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16893430#comment-16893430 ] Carsten Ziegeler commented on SLING-7768: - I guess this makes sense, if we can get a PR for this we can discuss the impl details. For the proposed provider, I'm reluctant to support a file as a configuration source for this > 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)
[jira] [Commented] (SLING-7768) Add String Interpolation support to /etc/map
[ https://issues.apache.org/jira/browse/SLING-7768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16893412#comment-16893412 ] Roy Teeuwen commented on SLING-7768: Any update on ever getting this in? Would simplify the setup a lot by not having to copy over the mappings 5 times per vhost (local, dev, test, accept, prod) > 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)
[jira] [Commented] (SLING-7768) Add String Interpolation support to /etc/map
[ https://issues.apache.org/jira/browse/SLING-7768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16582502#comment-16582502 ] Bertrand Delacretaz commented on SLING-7768: Looking at string interpolation for another project I stumbled on https://commons.apache.org/proper/commons-lang/javadocs/api-3.1/org/apache/commons/lang3/text/StrSubstitutor.html - it looks like that might work for your purposes, and even if we embed that class in our bundle I think it's still better than creating our own interpolator. > 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.3#76005)
[jira] [Commented] (SLING-7768) Add String Interpolation support to /etc/map
[ https://issues.apache.org/jira/browse/SLING-7768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16562500#comment-16562500 ] Andreas Schaefer commented on SLING-7768: - Added a unit test class for the Etc Map through Etc Map Entries and one for Etc Map through a Resource Resolver including testing the resource resolving and String Interpolation. > 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.3#76005)
[jira] [Commented] (SLING-7768) Add String Interpolation support to /etc/map
[ https://issues.apache.org/jira/browse/SLING-7768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16556352#comment-16556352 ] Andreas Schaefer commented on SLING-7768: - Renamed the PlaceHolderProvider to StringInterpolationProvider and added a test suite that tests the string interpolation with the Map Entries. Verified that ${} is working on the latest Sling and that the mapping works according to the pictures above. > 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.3#76005)
[jira] [Commented] (SLING-7768) Add String Interpolation support to /etc/map
[ https://issues.apache.org/jira/browse/SLING-7768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16554535#comment-16554535 ] Andreas Schaefer commented on SLING-7768: - I uploaded a POC to the Sling Git Repo with branch: feature/SLING-7768. Right now it uses \{{ }} as delimiter for the placeholder name. I will have a look if we can use ${ } inside a JCR node name. I will add some more tests and add support for Java properties override just to make sure that a misconfiguration can be resolved manually to recover. > 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.3#76005)