Completed prototype of .NET client to MavenEmbedder
I have completed a successful prototype of .NET client to
MavenEmbedder (2.1snapshot) over xFire. This prototype mitigates the
riskiest part of the
project: inter-.NET-Java communication.
In regards to performance:
1) There is clear overhead in running NMaven build (over the IDE compile),
which is expected. The compile (on a simple project) itself takes about 600
ms, which is in line with an IDE compile. There are an additional 200-300 ms
of overhead in terms of matching, copying resources, installing, etc. This
puts NMaven at just under a second. Maven itself has about 1.5 - 2 second
overhead in terms of setting up, putting total build time at around 2.5seconds.
2) We gain clear advantages in running NMaven using MavenEmbedder on an
external, continuously running JVM process. This allows the JVM to JIT the
NMaven and Maven byte-code, reducing build time on subsequent builds. This
reduced the build time of a two module project from 15 seconds (for a
command-line build) to 5 seconds for a MavenEmbedder build. This still
raises a 1 second IDE compile to a 5 second one.
It may be worth investigating using the MavenEmbedder for command-line
builds, which may also significantly bump performance.