geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ted Kirby" <ted.ki...@gmail.com>
Subject Re: Property substitution in config.xml implemented
Date Mon, 05 Mar 2007 18:26:15 GMT
On 3/5/07, Ted Kirby <ted.kirby@gmail.com> wrote:
> Brilliant!
> Yeah, this is a great extension to my paltry start... :)
> Thanks,
>
> Ted Kirby
>
> On 3/3/07, David Jencks <djencks@apache.org> wrote:
> > Following Ted Kirby's idea of property substitution in config.xml
> > files (GERONIMO-2735) I applied and modified his patch.  Jason Dillon
> > had a jexl expression evaluator lying around so I replace the
> > evaluation code in the patch with the jexl stuff, so now you can use
> > expressions in your substitutions.
> >
> > The substitutions are in a new file, default location var/config/
> > config-substitutions.properties.  This is used to evaluate
> > expressions in config.xml.  I implemented a small example in geronimo-
> > jetty6-jee5 for the jetty connectors, using
> >
> > hostName
> > httpPort
> > httpsPort
> > portOffset.
> >
> > You can override a value in the properties file with an environment
> > variable or a system property.  Therefore, to start a server on a
> > different set of jetty connector ports, you can say:
> >
> > java -DportOffset=1 -jar bin/server.jar --long
>
> I particularly like how this elegantly addresses the multiple server
> instances port numbering issues, to make it very easy to define
> multiple server instances.  Just give a server name and port offset,
> and you are set.  Now, if I can only locate where port 4200 is set...
> :)
> (See my user posting here
> http://article.gmane.org/gmane.comp.java.geronimo.user/5966 .)
>
> Ted Kirby
>
> > If this generally seems like a good idea and no one has a better idea
> > I'll go through the config.xmls and use substitutions more
> > systematically in a few days.
> >
> > One question I have is whether it's really a good idea to use
> > environment variables for substitutions.  I really don't know and
> > would appreciate more informed opinions.
> >
> > Also, you can specify an alternate properties file on the command
> > line with
> >
> > java -Dorg.apache.geronimo.config.substitutions.file=where.ever.you.want

Should we consider a naming convention?  I find
org.apache.geronimo.config.substitutions.file to be long, but I do
like the name space qualification that org.apache.geronimo provides.
Perhaps oag. could be used for short?

I would like to see some way to have a separate name space for system
properties/variables, like your portOffset above, and those that users
might use and define.  For example, we could say that ag properties
like portOffset and those you will use to parameterize the config.xml
we ship, be prefixed by _.  Users would not have to worry about  a
naming collision if any variable name they use does not start with _.

I like the example of using a system property to override or provide a
value.  The other ag system properties are prefixed by
org.apache.geronimo.  (See my earlier comment.)  Doing that in
config.xml, while long-winded, does provide name space isolation.
Perhaps not using org.apache.geronimo implies the variable only
applies to config.xml substitution, and has no other
interpretation/usage inside the server java code.

Ted Kirby

> > Many thanks to ted for coming up with the original patch and pushing
> > for it.
> >
> > thanks
> > david jencks
> >
> >
>

Mime
View raw message