I created the ticket "[TEXT-113] Add an interpolator string lookup." and committed a working version with unit tests.
Please note: - The code is in a new package o.a.c.t.lookup and I left the current code as intact as possible. - The current StrLookup and StrMatcher are abstract classes and not interfaces. This is a problem IMO. - I introduced an interface called o.a.c.t.lookup.StringLookup. - I did nothing to deal with StrMatcher as I have no need for a clean extension mechanism there. - We could add searching for lookups with a serice loader. I do not need this for now, so I did not bother. - The private lookup classes in StrLookup will likely be replaced by o.a.c.t.lookup classes. I did not do this yet to minimize the changes for this round. Please review. I can use this now in a couple of projects more cleanly instead of reusing the guts of Log4j which includes similar code. Thank you, Gary On Thu, Dec 14, 2017 at 2:40 PM, Rob Tompkins <chtom...@gmail.com> wrote: > > > > On Dec 14, 2017, at 4:11 PM, Gary Gregory <garydgreg...@gmail.com> > wrote: > > > > I think I'll pick Commons Config as the starting point, unless someone > else > > has a stronger POV. > > +1 > > > > > Gary > > > > On Thu, Dec 14, 2017 at 12:59 PM, Jan Matèrne (jhm) <apa...@materne.de> > > wrote: > > > >> If I see a syntax like ${prefix:key} I could think of having a map of > "map > >> providers". > >> The source of such a map could be a file, system properties, environment > >> variables, database, ldap, ... > >> > >> Haven't looked at commons-configuration. > >> But maybe also have a look at Apache Deltaspike which supports > >> configurtion values via a "Datasource". > >> > >> And Tamaya will also have one, I think ... > >> > >> > >> Jan > >> > >> > >> > >>> -----Ursprüngliche Nachricht----- > >>> Von: Ralph Goers [mailto:ralph.go...@dslextreme.com] > >>> Gesendet: Donnerstag, 14. Dezember 2017 16:41 > >>> An: Commons Developers List > >>> Betreff: Re: [text] Adapt the Log4j 2 Interpolator to [text] > >>> > >>> Yes, the Interpolator was borrowed from Commons Configuration. > >>> > >>> Ralph > >>> > >>>> On Dec 14, 2017, at 5:20 AM, Jörg Schaible <joerg.schaible@bpm- > >>> inspire.com> wrote: > >>>> > >>>> Hi Gary, > >>>> > >>>> Am Wed, 13 Dec 2017 15:17:56 -0700 schrieb Gary Gregory: > >>>> > >>>>> Hi All, > >>>>> > >>>>> Log4j 2 provides it's own copy of our StrSubstitutor/StrLookup > >>>>> framework enhanced for Log4j's needs. In addition it provides a > >>>>> custom StrLookup called Interpolator which allows for lookups like: > >>>>> > >>>>> ${sys:java.version} and ${env:MY_VAR} to look up system properties > >>>>> and environment variables respectively as well as other sub maps. > >>>> > >>>> You will find this also in commons-configurations. > >>>> > >>>>> I would like to borrow this concept of a composite and keyed > >>>>> StrLookup and make it a first class citizen in [text]. > >>>>> > >>>>> This would look like this: > >>>>> > >>>>> Interpolator interpolator = new o.a.c.t.Interpolator(); > >>>>> interpolator.put("gary", StrLookup.mapLookup(new HashMap())); > >>>>> interpolator.put("alice", StrLookup.mapLookup(new HashMap())); > >>>>> StrSubstitutor strSubstitutor = new StrSubstitutor(interpolator); > >>>>> > >>>>> Thoughts? > >>>> > >>>> Cheers, > >>>> Jörg > >>>> > >>>> > >>>> --------------------------------------------------------------------- > >>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > >>>> For additional commands, e-mail: dev-h...@commons.apache.org > >>>> > >>>> > >>> > >>> > >>> > >>> --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > >>> For additional commands, e-mail: dev-h...@commons.apache.org > >> > >> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > >> For additional commands, e-mail: dev-h...@commons.apache.org > >> > >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > >