Guillaume Nodet wrote:
I've just seen a problem though.
I though the maven-jbi-plugin would embed jar dependencies in the service
unit, but it does not seem to be the case.
Let's say I have a multiproject build containing a jar, a SU and a SA.
If the code inside the SU depends on the jar, I would want the jbi
plugin to
automatically bundle it in the SU. We do not need to generate the
classpath
tag
in the xbean.xml, but the jar would be bundled along with the classes
in the
SU.
Why would the classpath entry not need to be generated
in the xbean.xml ? (is there a smoke and mirrors approach to getting the
su to load jars it contains ?)
Any thoughts on how to do that ?
When we started our build project back in May, the SU "jar" bundling was
a tricky
one and brief looks at the tooling, we decided to use the assembly
plugin from Maven.
So a quick hack and we create a ZIP mojo
Essentially, the goal for installing an SU fires the assembly which
dumps all the necessary jars
into the the defined target/somedir/lib along with the other
src/main/resources then zips it all.
This zip is then the artifact.
The SA is just a repeat lather rinse of above, expecting the SU is a ZIP
as the artifact.
We later worked out this is all probably doable using the assembly plugin.
The only problem we have is that the xbean/servicemix files in the SUs
need to be hand carved
to define their individual classpaths, causing very sometimes stressful
class loading issues.
Does something in tooling now bundle everything that is required as
above ..
ie create a
somepackage-version-su.zip
'--xbean.xml # from a template (adding the lib/jar.jar entries)
'--lib/jar.jar
'--lib/jar2.jar
and then bundle this into an SA ?
It looks like tooling/jbi-maven-plugin gets there, but doesn't add the
classpath entries.
(which would be SM specific, so perhaps needing a "servicemix-su"
<packaging> type ??)
r.