An excellent operation is CAS (Compare and Swap/Set). This would mean that
POJO would have getters which return "unmodifiableCollection", and new CAS
operations, for instance for the project dependencies. 

The new method would be then:

public boolean casDependencies(Collection<Artifact> original,
Collection<Artifact> modified).

The usecase would be then in whatever plugin:

Collection<Artifact> newDeps;
do {
Collection<Artifact> deps = project.getDependencies();
newDeps = copyAndModifyDependencies( deps );
} while ( !project.casDependencies( deps,  newDeps ) );

Every injectable POJO object will share single guardian lock object per POM
project (plugin has no notion) and use it in CAS operations (maven-core
impl).



--
View this message in context: 
http://maven.40175.n5.nabble.com/Maven-Commit-3b671d07340b002e13775883d09e7f7e0d9a3c49-tp5821660p5821741.html
Sent from the Maven Developers mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to