With MavenSession.getPluginContext()[1] you can get any context, and as you can see: the context is per project and per plugin. If you need to share a pluginContext in a multimodule project, you _could_ use the first project of a reactor-project, so every module uses a shared context. I haven't tried this with multiple threads, but it is interesting to investigate.

Robert

[1] http://maven.apache.org/ref/3.0.5/maven-core/apidocs/org/apache/maven/execution/MavenSession.html#getPluginContext(org.apache.maven.plugin.descriptor.PluginDescriptor, org.apache.maven.project.MavenProject)



On Sun, 07 Apr 2013 12:39:25 +0200, Kristian Rosenvold <krosenv...@apache.org> wrote:

The plugincontext always has me a bit confused; since if I remember
correctly it is only shared between different invocations
of the same plugin with a single module; it is not shared between
modules in a multi-module build.

Hence it is not really seen by different threads in concurrent maven
and does not *really* need to be threadsafe. (I know this is a bit of
a weak assumption in general but that's how things are)

As for raising p-u, it might have some consequences in terms of how
old maven versions can be supported; but are we supporting anything
older than 2.2.1 these days ?


Kristian


2013/4/6 Baptiste MATHUS <bmat...@batmat.net>:
Hi all,

While I was thinking about marking templating-m-p, I realize I may have
added some non-threadsafe code inside the ReserveListenerPortMojo. Reading about that subject, I realized that build-helper-m-p might actually use some
non threadsafe dependencies.

I'll try some questions:
1/ I had a look at the getPluginContext() documentation. I didn't see any mention about thread safety. Does anyone know if this is a threadsafe Map?
(getPluginContext().get() or getPluginContext().put() [btw, I think my
code'd need a synchronized lock anyway since I first get then maybe put,
which has nothing do with a potentially synchronized underlying Map])

2/ Reading https://cwiki.apache.org/MAVEN/parallel-builds-in-maven-3.html I
see that for example plexus-utils is known to be *not threadsafe* until
2.0.5.
But build-helper-m-p uses 1.5.8. Is is intended?
Shouldn't we upgrade to 2.0.5+ ?

WDYT?

Thanks
--
Baptiste

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email




--
Using Opera's revolutionary email client: http://www.opera.com/mail/

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email


Reply via email to