[
https://issues.apache.org/jira/browse/XALANJ-2710?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alexander Kriegisch updated XALANJ-2710:
----------------------------------------
Description:
The current Ant build uses {{\*.src}} files, replaces placeholders with version
numbers there, then renames them to {{\*.java}} and copies them to their
respective destination directories.
In the the current Maven build in branch {{xalan-java-mvn-refactored}}, this
should be replaced by simple, standardised Maven resource filtering. The values
would be written into a properties file, which then in turn will be read as
normal classpath resources from Java classes that need version information.
Even easier than that would be to simply use the standard
{{META-INF/maven/[groupId]/[artifactId]/pom.properties}} file generated into
JARs by Maven anyway. They look like this:
{code}
artifactId=xalan
groupId=xalan
version=2.7.3
{code}
The only drawback here is that each corresponding Java file per module would
need to know its own group and artifact ID in order to locate the resource
file. But those usually do not change often, and it would be the cheapest
solution to just hard-code them into the corresponding {{*Version.java}} file.
Creating extra resource files with a fixed paths would be more work and the
exact location would also have to be hard-coded into the Java files.
Outside the JAR file context, e.g. when running tests from an IDE, the file
would be located in {{target/maven-archiver/pom.properties}}, i.e. the Java
classes reading the version numbers would need to try that path as a fallback.
was:
The current Ant build uses {{*.src}} files, replaces placeholders with version
numbers there, then renames them to {{*.java}} and copies them to their
respective destination directories.
In the the current Maven build in branch {{xalan-java-mvn-refactored}}, this
should be replaced by simple, standardised Maven resource filtering. The values
would be written into a properties file, which then in turn will be read as
normal classpath resources from Java classes that need version information.
Even easier than that would be to simply use the standard
{{META-INF/maven/[groupId]/[artifactId]/pom.properties}} file generated into
JARs by Maven anyway. They look like this:
{code}
artifactId=xalan
groupId=xalan
version=2.7.3
{code}
The only drawback here is that each corresponding Java file per module would
need to know its own group and artifact ID in order to locate the resource
file. But those usually do not change often, and it would be the cheapest
solution to just hard-code them into the corresponding {{*Version.java}} file.
Creating extra resource files with a fixed paths would be more work and the
exact location would also have to be hard-coded into the Java files.
Outside the JAR file context, e.g. when running tests from an IDE, the file
would be located in {{target/maven-archiver/pom.properties}}, i.e. the Java
classes reading the version numbers would need to try that path as a fallback.
> Use resource files for version numbers
> --------------------------------------
>
> Key: XALANJ-2710
> URL: https://issues.apache.org/jira/browse/XALANJ-2710
> Project: XalanJ2
> Issue Type: New Feature
> Security Level: No security risk; visible to anyone(Ordinary problems in
> Xalan projects. Anybody can view the issue.)
> Reporter: Alexander Kriegisch
> Assignee: Gary D. Gregory
> Priority: Major
>
> The current Ant build uses {{\*.src}} files, replaces placeholders with
> version numbers there, then renames them to {{\*.java}} and copies them to
> their respective destination directories.
> In the the current Maven build in branch {{xalan-java-mvn-refactored}}, this
> should be replaced by simple, standardised Maven resource filtering. The
> values would be written into a properties file, which then in turn will be
> read as normal classpath resources from Java classes that need version
> information.
> Even easier than that would be to simply use the standard
> {{META-INF/maven/[groupId]/[artifactId]/pom.properties}} file generated into
> JARs by Maven anyway. They look like this:
> {code}
> artifactId=xalan
> groupId=xalan
> version=2.7.3
> {code}
> The only drawback here is that each corresponding Java file per module would
> need to know its own group and artifact ID in order to locate the resource
> file. But those usually do not change often, and it would be the cheapest
> solution to just hard-code them into the corresponding {{*Version.java}}
> file. Creating extra resource files with a fixed paths would be more work and
> the exact location would also have to be hard-coded into the Java files.
> Outside the JAR file context, e.g. when running tests from an IDE, the file
> would be located in {{target/maven-archiver/pom.properties}}, i.e. the Java
> classes reading the version numbers would need to try that path as a fallback.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]