2

Say I want to use a different configuration in development and production, and want to switch between the two easily, so that my IDE just works out of the box with the development settings, and with a simple Maven command I am able to create a functioning WAR.

Lots of the properties are stored in the Isis properties files under resources. I know the Maven resources plugin can replace el-expressions with environment variables and Maven properties. This replacement is however only done in packaging phase, so the expressions are useless in “development”.

Did someone figured out a good approach? Is there a way to load different configuration files in production?

1 Answers1

2

We currently override the defaults in context.xml to point to different config files on dev, test and prod boxes:

<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <Manager pathname="" />
    <Parameter name="shiroConfigLocations" value="file:/var/isis-config/shiro.ini" override="false" />
    <Parameter name="isis.config.dir" value="/var/isis-config/" override="false" />
    <Parameter name="wicket.configuration" value="deployment" override="false" /> 
</Context>

The /var/isis-config folder contains the following files:

  • isis.properties
  • logging.properties
  • persistor.properties
  • persistor_datanucleus.properties
  • shiro.ini
  • viewer_wicket.properties
  • This is by the way a Tomcat only solution, and I'm wondering whether it's read from WebServer.java as well? Perhaps extending the AppManifest would be a way to inject custom properties in situations where there is no context.xml? – Jan-Willem Gmelig Meyling Jun 30 '16 at 14:47