[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tycho-dev] Invoke maven project extension before TychoMavenLifecycleParticipant - patch question

Hi Jeff,

I am aware of that, but my main goal was to be able to execute logic before and after tycho - the order was not that important.
But it is a good hint - we may also think of using something else than lookuplist…


On Mar 7, 2012, at 11:00 AM, Jeff MAURY wrote:

Please not that the use of Plexus for discovery does not guarantee an order of execution following the declaration in the POM.


On Wed, Mar 7, 2012 at 8:36 AM, Tom Bujok <tom.bujok@xxxxxxxxx> wrote:
Hi guys,

In this thread I described why it is impossible to invoke any processing logic before TychoMavenLifecycleParticipant:
It is also connected to this problem: http://www.mail-archive.com/users@xxxxxxxxxxxxxxxx/msg123753.html

Such limitation breaks the maven processing principle - since normally the order of plugins' in the pom.xml file defines in which order they are executed. Right now with tycho - there is now way to invoke anything before the tycho project setup finishes.  In order to add some more flexibility to a tycho build I think it would be perfect if there was some kind of a callback mechanism included in the TychoMavenLifecycleParticipant.

let's say that we could have such interface:

public interface TychoLifecycleParticipant {

       void beforeProjectSetup(MavenSession session);
       void afterProjectSetup(MavenSession session);


and then in the TychoMavenLifecycleParticipant we could add:

public class TychoMavenLifecycleParticipant extends AbstractMavenLifecycleParticipant {
   public void afterProjectsRead(MavenSession session) throws MavenExecutionException {
       Collection<TychoLifecycleParticipant> tychoParticipants = plexus.lookupList(TychoMavenLifecycleParticipant.class);

       for (TychoLifecycleParticipant p : tychoParticipants) {
               p. beforeProjectSetup(session);


       for (TychoLifecycleParticipant p : tychoParticipants) {
               p. afterProjectSetup(session);

Do you agree with that and would you accept such patch?

Tom Bujok
tycho-dev mailing list


"Legacy code" often differs from its suggested alternative by actually working and scaling.
 - Bjarne Stroustrup

tycho-dev mailing list