Hello,
We have projects with many property and xml files that need resource filtering per environment.
For example in a property file one might see ${mysqlDbHost}, ${mysqlDbPw}, and ${mysqlDbUser}. There would also be a system variable called ENVIRONMENT. Based on the ${propertyName} and ENVIRONMENT value, the resource filter would replace with the correct value. This can be done with a DB (SELECT value FROM properties WHERE env="env" and name="propertyName") or via a web service (getPropertyValue?env=env&name=propertyName).
On the Maven side the solution seem to be to create a custom MavenResourcesFiltering. The custom MavenResourcesFiltering implementation would do the lookups I mentioned above for each ${propertyName} encountered in the resource files.
1) Is my assessment that creating a custom MavenResourcesFiltering is the way to go? Maybe this problem is already solved already, since it does not seem unique?
2) I have visited multiple Maven articles on this but still have no idea how to implement it, the sites I visited are listed below. Does anyone know of any document or can provide feedback on how to implement a custom MavenResourcesFiltering?
It seems to me that at some point I would need a method that has either gets a list of all the ${propertyName}'s found in a file and the ability to provide the value for that property name. Following the links I found I cannot tell where that method should be implemented and how to get it called from MyMojo.execute().
1: http://maven.apache.org/shared/maven-filtering/
2: http://maven.apache.org/shared/maven-filtering/usage.html
3: http://maven.apache.org/guides/plugin/guide-java-plugin-development.html
Thank you!
jose
We have projects with many property and xml files that need resource filtering per environment.
For example in a property file one might see ${mysqlDbHost}, ${mysqlDbPw}, and ${mysqlDbUser}. There would also be a system variable called ENVIRONMENT. Based on the ${propertyName} and ENVIRONMENT value, the resource filter would replace with the correct value. This can be done with a DB (SELECT value FROM properties WHERE env="env" and name="propertyName") or via a web service (getPropertyValue?env=env&name=propertyName).
On the Maven side the solution seem to be to create a custom MavenResourcesFiltering. The custom MavenResourcesFiltering implementation would do the lookups I mentioned above for each ${propertyName} encountered in the resource files.
1) Is my assessment that creating a custom MavenResourcesFiltering is the way to go? Maybe this problem is already solved already, since it does not seem unique?
2) I have visited multiple Maven articles on this but still have no idea how to implement it, the sites I visited are listed below. Does anyone know of any document or can provide feedback on how to implement a custom MavenResourcesFiltering?
It seems to me that at some point I would need a method that has either gets a list of all the ${propertyName}'s found in a file and the ability to provide the value for that property name. Following the links I found I cannot tell where that method should be implemented and how to get it called from MyMojo.execute().
1: http://maven.apache.org/shared/maven-filtering/
2: http://maven.apache.org/shared/maven-filtering/usage.html
3: http://maven.apache.org/guides/plugin/guide-java-plugin-development.html
Thank you!
jose