Hi, I was thinking in existing users who might be using this feature, but just realised that simlpy using -Djspwiki.custom.config for the same file would be equally valid, so I'm +1 on your approach
br, juan pablo On Thu, Aug 8, 2013 at 2:43 PM, Glen Mazza <[email protected]> wrote: > Umm, I really would *not* want to go that route, there's no practical > benefit to providing both options (never has been on Roller for over a > decade now), it would raise unnecessary confusion among users, and it would > be cumbersome to code. > > With my proposed change, you are never going to alter the > jspwiki.properties file again (unless you manually go in and tweak it, > which you should never need to do anyway). You can only override it with > another file, with just those handful of values you wish to override. If > you don't override it, then jspwiki.properties in the WAR defaults. > > What I'm proposing is not just how Roller does things but precisely how > Apache Karaf does too, you alter a custom file that overrides the default, > and they leave a blunt comment in the default file to leave it alone and > alter the custom file instead. > > Glen > > > On 08/08/2013 08:32 AM, Juan Pablo Santos Rodríguez wrote: > >> Hi, >> >> one quick note, if I recall correctly, "-Djspwiki.propertyfile" is used to >> load the main jspwiki.properties from outside the war, so it should be >> able >> to coexist with "-Djspwiki.custom.config", something like: >> >> - jspwiki.properties, loaded first, from war (unless >> -Djspwiki.propertyfile >> is given) >> - jspwiki-custom.properties, loaded afterwards, from classpath (unless >> -Djspwiki.custom.config is given) >> >> >> br, >> juan pablo >> >> On Thu, Aug 8, 2013 at 2:14 PM, Glen Mazza <[email protected]> wrote: >> >> Yes, I like -Djspwiki.custom.config too. I'll see what I can do for >>> logging. >>> >>> Glen >>> >>> >>> On 08/08/2013 08:01 AM, Harry Metske wrote: >>> >>> Changing the propname to something else would not be a problem, >>>> "-Djspwiki.custom.config" is fine. >>>> What I meant is that it should be very clear _how_ these things play >>>> together, both in documentation and logging. >>>> >>>> kind regards, >>>> Harry >>>> >>>> >>>> >>>> On 8 August 2013 13:56, Glen Mazza <[email protected]> wrote: >>>> >>>> Yes, [#1] would be the [3] I mentioned below. But would it be a >>>> problem >>>> >>>>> if I renamed our "-Djspwiki.propertyfile" setting to >>>>> "-Djspwiki.custom.** >>>>> **propertyfile" >>>>> (or "-Djspwiki.custom.config" similar to Roller) as it's technically no >>>>> longer a replacement of the jspwiki.properties file (which will always >>>>> be >>>>> in the WAR) but an overlay of it (same thing, so long as your overlay >>>>> has a >>>>> value for every property in the jspwiki.properties file, which current >>>>> -Djspwiki.propertyfiles have to do anyway as they fully replace that >>>>> file.) >>>>> I don't see this as a backwards compatibility issue as it's just a >>>>> command-line setting. >>>>> >>>>> Glen >>>>> >>>>> >>>>> On 08/07/2013 08:10 AM, Harry Metske wrote: >>>>> >>>>> from an administration perspective (part of my daily live) I consider >>>>> >>>>>> having configuration separate from binaries a must-have. >>>>>> So +1 on this, it should get easier to deploy (the 100% same) >>>>>> JSPWiki.war >>>>>> everywhere and having a per-environment small "override" property file >>>>>> that >>>>>> adapts the JSPWiki instance to the environment. >>>>>> I would like to see proper logging on property handling so we can see >>>>>> which >>>>>> property gets loaded from where, and what the final property values >>>>>> are >>>>>> going to be active. >>>>>> (and, similar to what Ichiro already mentioned, it should play nice >>>>>> with >>>>>> JSPWiki System property mechanism, see [#1]. >>>>>> >>>>>> [#1] >>>>>> https://issues.apache.org/******jira/browse/JSPWIKI-568<https://issues.apache.org/****jira/browse/JSPWIKI-568> >>>>>> <https:**//issues.apache.org/**jira/**browse/JSPWIKI-568<https://issues.apache.org/**jira/browse/JSPWIKI-568> >>>>>> > >>>>>> <https:**//issues.apache.org/**jira/**browse/JSPWIKI-568<http://issues.apache.org/jira/**browse/JSPWIKI-568> >>>>>> <http**s://issues.apache.org/jira/**browse/JSPWIKI-568<https://issues.apache.org/jira/browse/JSPWIKI-568> >>>>>> > >>>>>> >>>>>> kind regards, >>>>>> Harry >>>>>> >>>>>> >>>>>> >>>>>> On 7 August 2013 05:43, Glen Mazza <[email protected]> wrote: >>>>>> >>>>>> Hi Team, >>>>>> >>>>>> Apache Roller maintains two configuration files, a >>>>>>> roller.properties[1] >>>>>>> which sits within the war, filled with defaults and never needs >>>>>>> modification (although a user can alter it if he wishes, it will >>>>>>> work), >>>>>>> and >>>>>>> a roller-custom.properties file[2] which is placed in the classpath >>>>>>> ($CATALINA_HOME/lib for Tomcat, corresponding folders for JBoss or >>>>>>> GlassFish.) For any value you put in roller-custom.properties, it >>>>>>> will >>>>>>> overwrite what is in roller.properties in the WAR. So you only need >>>>>>> the >>>>>>> values in the custom file that you're actually overriding, making it >>>>>>> very >>>>>>> short and simple. And if you don't use a roller-custom.properties, >>>>>>> all >>>>>>> of >>>>>>> the defaults in the WAR will prevail. >>>>>>> >>>>>>> You can keep deploying new versions of Roller.war to your servlet >>>>>>> container while never needing to re-configure either >>>>>>> roller.properties >>>>>>> or >>>>>>> roller-custom.properties, re-opening WARs, etc. as the >>>>>>> roller-custom.properties still sitting in $CATALINA_HOME/lib >>>>>>> automatically >>>>>>> is used--this is very convenient during development when the WARs >>>>>>> frequently get updated. Same with JUnit and Selenium testing, we >>>>>>> don't >>>>>>> alter the roller.properties but just place the >>>>>>> roller-custom.properties[2] >>>>>>> in the test classpath under src/test/resources (if you have multiple >>>>>>> config >>>>>>> files, you can change the custom file name via setting a system >>>>>>> property[3]). All this is handled by the WebloggerConfig[4] class, >>>>>>> which >>>>>>> first reads in roller.properties and the overwrites any values from >>>>>>> roller-custom.properties. >>>>>>> >>>>>>> [1] http://svn.apache.org/viewvc/********roller/trunk/app/src/** >>>>>>> main/****<http://svn.apache.org/viewvc/******roller/trunk/app/src/main/****> >>>>>>> <http://svn.apache.**org/viewvc/****roller/trunk/**app/src/main/**<http://svn.apache.org/viewvc/****roller/trunk/app/src/main/**> >>>>>>> > >>>>>>> <http://svn.apache.org/****viewvc/**roller/trunk/app/src/****main/**<http://svn.apache.org/**viewvc/**roller/trunk/app/src/**main/**> >>>>>>> <http://svn.apache.**org/viewvc/**roller/trunk/app/**src/main/**<http://svn.apache.org/viewvc/**roller/trunk/app/src/main/**> >>>>>>> > >>>>>>> resources/org/apache/roller/********weblogger/config/roller.** >>>>>>> properties?view=markup<http://******svn.apache.org/viewvc/**** >>>>>>> roller/** <http://svn.apache.org/viewvc/**roller/**>< >>>>>>> http://svn.apache.**org/viewvc/roller/**<http://svn.apache.org/viewvc/roller/**> >>>>>>> > >>>>>>> trunk/app/src/main/resources/******org/apache/roller/** >>>>>>> weblogger/**** >>>>>>> config/roller.properties?view=******markup<http://svn.apache.**** >>>>>>> org/viewvc/roller/trunk/app/****src/main/resources/org/apache/**** >>>>>>> roller/weblogger/config/****roller.properties?view=markup<** >>>>>>> http://svn.apache.org/viewvc/**roller/trunk/app/src/main/** >>>>>>> resources/org/apache/roller/**weblogger/config/roller.** >>>>>>> properties?view=markup<http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/org/apache/roller/weblogger/config/roller.properties?view=markup> >>>>>>> > >>>>>>> >>>>>>>> < >>>>>>>> >>>>>>>> http://svn.apache.org/viewvc/********roller/trunk/app/src/** >>>>>>> main/****<http://svn.apache.org/viewvc/******roller/trunk/app/src/main/****> >>>>>>> <http://svn.apache.**org/viewvc/****roller/trunk/**app/src/main/**<http://svn.apache.org/viewvc/****roller/trunk/app/src/main/**> >>>>>>> > >>>>>>> <http://svn.apache.org/****viewvc/**roller/trunk/app/src/****main/**<http://svn.apache.org/**viewvc/**roller/trunk/app/src/**main/**> >>>>>>> <http://svn.apache.**org/viewvc/**roller/trunk/app/**src/main/**<http://svn.apache.org/viewvc/**roller/trunk/app/src/main/**> >>>>>>> > >>>>>>> resources/org/apache/roller/********weblogger/config/roller.** >>>>>>> properties?revision=1511052&********view=markup<http://svn.**** >>>>>>> apache.<http://svn.apache.> >>>>>>> ** >>>>>>> org/viewvc/roller/trunk/app/******src/main/resources/org/** >>>>>>> apache/**** >>>>>>> roller/weblogger/config/******roller.properties?revision=** >>>>>>> 1511052&view=markup<http://**s**vn.apache.org/viewvc/roller/**<http://svn.apache.org/viewvc/roller/**> >>>>>>> trunk/app/src/main/resources/****org/apache/roller/weblogger/**** >>>>>>> config/roller.properties?****revision=1511052&view=markup<h** >>>>>>> ttp://svn.apache.org/viewvc/**roller/trunk/app/src/main/** >>>>>>> resources/org/apache/roller/**weblogger/config/roller.** >>>>>>> properties?revision=1511052&**view=markup<http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/org/apache/roller/weblogger/config/roller.properties?revision=1511052&view=markup> >>>>>>> > >>>>>>> [2] http://svn.apache.org/viewvc/********roller/trunk/app/src/** >>>>>>> test/****<http://svn.apache.org/viewvc/******roller/trunk/app/src/test/****> >>>>>>> <http://svn.apache.**org/viewvc/****roller/trunk/**app/src/test/**<http://svn.apache.org/viewvc/****roller/trunk/app/src/test/**> >>>>>>> > >>>>>>> <http://svn.apache.org/****viewvc/**roller/trunk/app/src/****test/**<http://svn.apache.org/**viewvc/**roller/trunk/app/src/**test/**> >>>>>>> <http://svn.apache.**org/viewvc/**roller/trunk/app/**src/test/**<http://svn.apache.org/viewvc/**roller/trunk/app/src/test/**> >>>>>>> > >>>>>>> resources/roller-custom.********properties?view=log<http://** >>>>>>> svn.apache.org/viewvc/roller/******trunk/app/src/test/** >>>>>>> resources/****<http://svn.apache.org/viewvc/roller/****trunk/app/src/test/resources/****> >>>>>>> <http://svn.**apache.org/viewvc/roller/**** >>>>>>> trunk/app/src/test/resources/****<http://svn.apache.org/viewvc/roller/**trunk/app/src/test/resources/**> >>>>>>> > >>>>>>> roller-custom.properties?view=******log<http://svn.apache.org/****<http://svn.apache.org/**> >>>>>>> viewvc/roller/trunk/app/src/****test/resources/roller-custom.**** >>>>>>> properties?view=log<http://**svn.apache.org/viewvc/roller/** >>>>>>> trunk/app/src/test/resources/**roller-custom.properties?view=**log<http://svn.apache.org/viewvc/roller/trunk/app/src/test/resources/roller-custom.properties?view=log> >>>>>>> > >>>>>>> [3] http://svn.apache.org/viewvc/********roller/trunk/app/pom.xml?** >>>>>>> ** <http://svn.apache.org/viewvc/******roller/trunk/app/pom.xml?**>< >>>>>>> http://svn.apache.org/**viewvc/****roller/trunk/app/**pom.xml?**<http://svn.apache.org/viewvc/****roller/trunk/app/pom.xml?**> >>>>>>> > >>>>>>> **<http://svn.apache.org/**viewvc/****roller/trunk/app/**pom.xml?**<http://svn.apache.org/viewvc/****roller/trunk/app/pom.xml?**> >>>>>>> <http://svn.apache.**org/viewvc/**roller/trunk/app/**pom.xml?**<http://svn.apache.org/viewvc/**roller/trunk/app/pom.xml?**> >>>>>>> > >>>>>>> revision=1511052&view=markup#********l460<http://svn.apache.** >>>>>>> org/**** >>>>>>> <http://svn.apache.org/****><http://svn.apache.**org/**<http://svn.apache.org/**> >>>>>>> > >>>>>>> viewvc/roller/trunk/app/pom.******xml?revision=1511052&view=****** >>>>>>> markup#l460<http://svn.apache.****org/viewvc/roller/trunk/app/**** >>>>>>> pom.xml?revision=1511052&view=****markup#l460<http://svn.** >>>>>>> apache.org/viewvc/roller/**trunk/app/pom.xml?revision=** >>>>>>> 1511052&view=markup#l460<http://svn.apache.org/viewvc/roller/trunk/app/pom.xml?revision=1511052&view=markup#l460> >>>>>>> > >>>>>>> [4] <http://svn.apache.org/viewvc/********roller/trunk/app/src/** >>>>>>> main/****<http://svn.apache.org/viewvc/******roller/trunk/app/src/main/****> >>>>>>> <http://svn.apache.**org/viewvc/****roller/trunk/**app/src/main/**<http://svn.apache.org/viewvc/****roller/trunk/app/src/main/**> >>>>>>> > >>>>>>> <http://svn.apache.org/****viewvc/**roller/trunk/app/src/****main/**<http://svn.apache.org/**viewvc/**roller/trunk/app/src/**main/**> >>>>>>> <http://svn.apache.**org/viewvc/**roller/trunk/app/**src/main/**<http://svn.apache.org/viewvc/**roller/trunk/app/src/main/**> >>>>>>> > >>>>>>> java/org/apache/roller/********weblogger/config/**** >>>>>>> WebloggerConfig.java?revision= >>>>>>> **1491090&view=markup<http://******svn.apache.org/viewvc/** >>>>>>> roller/**** <http://svn.apache.org/viewvc/roller/****>< >>>>>>> http://svn.apache.**org/viewvc/roller/**<http://svn.apache.org/viewvc/roller/**> >>>>>>> > >>>>>>> trunk/app/src/main/java/org/******apache/roller/weblogger/** >>>>>>> config/WebloggerConfig.java?******revision=1491090&view=**markup<h** >>>>>>> >>>>>>> ttp://svn.apache.org/viewvc/****roller/trunk/app/src/main/**<http://svn.apache.org/viewvc/**roller/trunk/app/src/main/**> >>>>>>> java/org/apache/roller/****weblogger/config/** >>>>>>> WebloggerConfig.java?revision=****1491090&view=markup<http://** >>>>>>> svn.apache.org/viewvc/roller/**trunk/app/src/main/java/org/** >>>>>>> apache/roller/weblogger/**config/WebloggerConfig.java?** >>>>>>> revision=1491090&view=markup<http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java?revision=1491090&view=markup> >>>>>>> > >>>>>>> >>>>>>>> http://**svn.apache.org/******viewvc/roller/**trunk/app/src/******<http://svn.apache.org/****viewvc/roller/**trunk/app/src/****> >>>>>>>> <http://svn.apache.org/****viewvc/roller/**trunk/app/src/****<http://svn.apache.org/**viewvc/roller/**trunk/app/src/**> >>>>>>>> > >>>>>>>> main/java/org/**<http://svn.****apache.org/viewvc/roller/****<http://apache.org/viewvc/roller/****> >>>>>>>> trunk/app/src/main/java/org/****<http://svn.apache.org/viewvc/** >>>>>>>> roller/**trunk/app/src/main/**java/org/**<http://svn.apache.org/viewvc/roller/**trunk/app/src/main/java/org/**> >>>>>>>> > >>>>>>>> **> >>>>>>>> >>>>>>>> apache/roller/weblogger/********config/WebloggerConfig.java?**** >>>>>>>> ** >>>>>>>> >>>>>>> **view=markup< >>>>>>> http://svn.apache.**org/****viewvc/roller/trunk/app/** >>>>>>> src/main/java/org/apache/******roller/weblogger/config/** >>>>>>> WebloggerConfig.java?view=******markup<http://svn.apache.org/****<http://svn.apache.org/**> >>>>>>> viewvc/roller/trunk/app/src/****main/java/org/apache/roller/** >>>>>>> weblogger/config/****WebloggerConfig.java?view=****markup< >>>>>>> http://svn.apache.org/**viewvc/roller/trunk/app/src/** >>>>>>> main/java/org/apache/roller/**weblogger/config/** >>>>>>> WebloggerConfig.java?view=**markup<http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java?view=markup> >>>>>>> > >>>>>>> >>>>>>> I'd like to do the same thing with Apache JSPWiki, modify our own >>>>>>> PropertyReader.java to accept a new jspwiki-custom.properties file. >>>>>>> Also, >>>>>>> to get rid of the mostly forgotten and empty >>>>>>> /ini/default_jspwiki.**** >>>>>>> properties >>>>>>> >>>>>>> and put whatever default values there into jspwiki.properties (unless >>>>>>> where >>>>>>> the latter has already overridden those properties.) Basically, >>>>>>> jspwiki.properties will assume the role of default_jspwiki.properties >>>>>>> and >>>>>>> we'll have a new optional jspwiki-custom.properties that will not be >>>>>>> in >>>>>>> the >>>>>>> WAR at all (you don't want to have it in the WAR as it would get read >>>>>>> over >>>>>>> what's in $CATALINA_HOME/lib, and if you had something to put in >>>>>>> jspwiki-custom.properties in the WAR you'd just use >>>>>>> jspwiki.properties >>>>>>> anyway.) Backwards compatibility would not be an issue, as you'd >>>>>>> just >>>>>>> take >>>>>>> your jspwiki.properties file from the old WAR and can still insert it >>>>>>> into >>>>>>> the new WAR or just rename it jspwiki-custom.properties and put it on >>>>>>> the >>>>>>> external classpath. WDYT? >>>>>>> >>>>>>> Regards, >>>>>>> Glen >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >
