Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
2.9
-
None
Description
I have created simple ear project with filters. I want to use different settings for each environment and those settings should be passed to generated application.xml file inside the env-entries. The generation of ear package is done as shown below:
<plugin> <artifactId>maven-ear-plugin</artifactId> <version>2.9</version> <configuration> <generateApplicationXml>true</generateApplicationXml> <version>6</version> <envEntries> <env-entry> <env-entry-name>customProperty</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>${custom.property}</env-entry-value> </env-entry> </envEntries> <applicationName>${custom.property}</applicationName> </configuration> </plugin>
To read maven project properties from external properties file I had to use another plugin: properties-maven-plugin. It successfully reads properties from file and sets them as maven project properties, so I can insert them in pom.xml file using ${}. It works for most of the pom.xml elements (i.e. <applicationName>), unfortunately it is not successfully looked up when I place it inside env-entry element where I need it. Below is generated application.xml.
<?xml version="1.0" encoding="UTF-8"?> <application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" version="6"> <application-name>default property</application-name> <display-name>test</display-name> <env-entry> <env-entry-name>customProperty</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>${custom.property}</env-entry-value> </env-entry> </application>
If I put project properties inside the <properties></properties> block everything works fine, but that doesn't allow me to use filters for application.xml.
I'm attaching maven project with all necessary configuration. I have also submitted an issue at Stackoverflow, because I didn't have account here.