maven-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject [jira] Commented: (MAVEN-256) <attainGoal> does not use the global session
Date Mon, 26 Jan 2004 21:59:59 GMT
The following comment has been added to this issue:

     Author: Brett Porter
    Created: Mon, 26 Jan 2004 4:59 PM
I fixed this in CVS, but discovered it breaks some things that assume attainGoal will actually
attain it again.

We need to define the behaviour, provide a way to do both, and leave it for 1.1 so we don't
break anything in 1.0.
View this comment:

View the issue:

Here is an overview of the issue:
        Key: MAVEN-256
    Summary: <attainGoal> does not use the global session
       Type: Bug

     Status: Open
   Priority: Critical

 Original Estimate: Unknown
 Time Spent: Unknown
  Remaining: Unknown

    Project: maven
   Fix Fors:

   Assignee: bob mcwhirter
   Reporter: Peter Lynch

    Created: Thu, 6 Feb 2003 4:00 AM
    Updated: Mon, 26 Jan 2004 4:59 PM

The problem:

Basically there needs to be a way to call a goal from inside another goal and
have the called goal use the current session.

The result being no new session created and all already attained goals would not
be called again by the called goal's prereqs attribute or nested <attainGoal> tags.

The only way to create a new session would be to use the <attain> tags or set <attainGoal
newsession="true" name="someGoal"/> if an attribute is decided to be the way to flag session

Alternatively it was suggested a new tag be added called <callGoal> which would always
create a new session, and <attainGoal> would be reverted to use the current session.

Here is the thread from the mailing lists describing the problems and soltuions.

----- Original Message ----- 
From: "Colin Sampaleanu" <>
To: "Turbine Maven Users List" <>
Cc: "Turbine Maven Developers List" <>
Sent: Thursday, January 30, 2003 7:27 AM
Subject: Re: goals are broken, let's fix it

> bob mcwhirter wrote:
> >On Thu, 30 Jan 2003, Colin Sampaleanu wrote:
> >
> >>I think that there is currently a serious problem in maven and a number 
> >>of plugins, in that 'attainGoal' is being used in various places (goals, 
> >>preGoals, and postGoals) with the expectation that the goal being named 
> >>to be attained will be part of the dependency graph of the main build 
> >>itself, and will be attained only once. However, due to the way the 
> >>werkz 'attainGoal' tag is implemented, there is no integration into the 
> >>main maven dependency session, and each invocation of attainGoal with a 
> >>specific goal will call that goal again including all its dependencies, 
> >>becoming more of a subroutine call. At best, I would say it's confusing 
> >>as hell, since the name 'attainGoal' implies something; certainly there 
> >>is some code which is using the tag with the expectation that it is 
> >>integrating into the dependency graph, and there is other code which is 
> >>using it like a subroutine call. I would also suggest there need to be 
> >>clearly named, different mechanisms, to handle both usage semantics.
> >>    
> >>
> >Yah, this is a well-understood problem (at least by me, having written
> >werkz).
> >
> >Though, my non-scientific polling has resulted in me thinking that
> >most folks are now taking advantage of the fact that <attainGoal>
> >doesn't participate in the global session.
> >
> >ie:
> >
> > <attainGoal name="clean"/>
> > <attainGoal name="myproj:something"/>
> > <attainGoal name="clean"/>
> > <attainGoal name="myproj:something.else"/>
> >
> >Where 'clean' wouldn't fire the 2nd time if we shared in the global
> >session.
> >
> >We noodled around with keeping the current syntax and semantics the
> >same but adding a session="true" attribute for folks needing new
> >semantics.
> >
> >Or, since so many other things have changed lately, retaining backwards
> >compatibility is less important, and we could certain make <attainGoal>
> >behave has expected, and rename the current functionality to <callGoal>
> >or <forceAttainGoal> or somesuch.
> >
> >The biggest use-case we must accomodate is folks wanting to 'clean'
> >multple times and not have werkz think everything is still attained.
> >
> >Though, that could maybe be rememdied with something like:
> >
> > <goal name="clean">
> >    <!-- normal clean stuff -->
> >    <resetWerkzSession/>
> > </goal>
> >
> >That'd allow us to invalidate the werkz session and allow for rebuilds
> >without confusing werkz.
> >
> >IRC would probably be a glad place to hammer out the details.
> >
> (still cross-posting, as I think this has big implications for users as 
> well as developers...)
> How are the IRC sessions typically arranged? i.e. when are you guys 
> normally on?. My main issue with IRC is that unfortunately it is blocked 
> for me during the day due to the firewall at work, although in the worst 
> case I could probably ssh to my home machine and do a text mode client 
> from there. Evenings wouldn't be a problem.
> My suggestion would be to have very clearly named mechanisms (either 
> separate tags or attributes on the same tag) to attain goals and share 
> the maven session, to attain goals and not share the maven session, and 
> some other mechanism (such as calling a custom tag), that is encouraged 
> as a means of code reuse/macro/subroutine, which some code is currently 
> using attainGoal for today. I would favour making a maven (not 
> necessarilly werkz) attainGoal by default share the session, given it's 
> name, it'd be less confusing, but if people think backwards 
> compatibility is that big an issue that is a consideration (I agree that 
> a lot of stuff has changed anyways, so personally I think it is not that 
> big a deal here). I would also suggest that this is important enough 
> that it should be handled before beta 8 is released. If people get too 
> dependent on the current usage semantics it will be way harder to change 
> it later...
> Regards, Colin

This message is automatically generated by JIRA.

If you think it was sent incorrectly contact one of the administrators:

If you want more information on JIRA, or have a bug to report see:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message