Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
5.2.0
-
None
-
None
-
Windows ONLY
-
Patch Available
Description
If one attampts to specify an absolute path the the activemq configuration file in a maven project using the maven parameters:
<plugin> <groupId>org.apache.activemq.tooling</groupId> <artifactId>maven-activemq-plugin</artifactId> <version>${activemq.version}</version> <configuration> <configUri>xbean:file:///${basedir}/src/test/activemq/conf/activemq.xml</configUri> </configuration> </plugin>
the broker will fail because ${basedir} in maven does not expand to a valid URI string.
Tried as well:
2) Using the xbeam:conf/activemq.xml does not work either as the mojo does not contain the directory on the classpath.
3) Using the base dir and setting the configURI to xbean:file:///./src/test/qctivemq/conf/activemq.xml does work when executing the test phase within a single maven project but as soon as the activemq plugin is run from a module that is part of a project (see attachment example) then the . refers to the path of the parent project and the broker fails to find the file again.
As far as I can see there is not really a sufficient workaround using the activemq.base activemq.home system properties and hence I propose to add another configuration alternative to the maven-activemq-plugin called configFile. This can then be set with the according absolute reference and the URI is properly constructred using the underlying JVM java.io.File.toURI(). Patch attached.
The logic implemented by the patch is, if a configFile is set on the activemq plugin then it will construct a xbean:file:[uri] else it will use configUri (as usual).
Attachments
Attachments
Issue Links
- is related to
-
AMQ-4140 maven-activemq-plugin fails to resolve path to XBean file in multi-module builds, and does not have a skip flag
- Resolved