There should be absolutely no system properties manipulation in the bowels of Maven. Or envars, they both need to be trapped at the front- end because we end up with little bits here and there. They should all be grabbed from the CLI, the order of precedence determined and then passed into Maven as properties. All the system properties and envar need to be entirely contained to the CLI. That's the direction I've been moving in. Even if we obey things like ${ENV.foo} that should be a property not operating on envars directly in the core.

On 27-Mar-08, at 10:49 AM, John Casey wrote:
I was incorrect; this is not a result of code I changed. I'll have to take a look at the SVN annotation to find the commit that changed this, but it looks like it may have been part of some work Jason was doing. I'm looking into it now.

-john

On Mar 27, 2008, at 1:19 PM, Brian E. Fox wrote:

We have to err on the side of not causing more regressions. If we want
to move in this direction, we should start deprecating the non
${project. Forms of the properties with big warnings in 2.0.9.

-----Original Message-----
From: John Casey [mailto:[EMAIL PROTECTED]
Sent: Thursday, March 27, 2008 1:16 PM
To: Maven Developers List
Subject: Re: CLI Properties vs. Model Properties (Was Re: [pre vote take
3] 2.0.9-RC3)

Sorry for the spam.

Digging deeper through the related links on MNG-2339, it's apparent
that the comment in the DefaultMavenProjectBuilder is a touch
misleading. The key issues relevant to where sysprops get used during
interpolation are:

MNG-2745
MNG-2651

It seems that environments that use maven programmatically (in 2.0.x?
really??) are running into collisions where other libraries are
injecting system properties that override values from the POM for the
purposes of interpolation. For this reason (and because we don't have
a concept of CLI properties separate from sysprops yet), the code in
the project builder was changed to prefer values from the POM over
sysprops.

-john

On Mar 27, 2008, at 1:06 PM, John Casey wrote:

BTW, I found this comment on line 981 of DefaultMavenProjectBuilder:

       // [MNG-2339] ensure the system properties are still
interpolated for backwards compat, but the model values must win

I've checked that issue, and it looks like it was closed for this
release...so, not present in 2.0.8. Additionally, the doesn't seem
to say anything about which is supposed to win - model vs.
sysprops. IMO, it makes more sense for CLI properties to override
those in the model, since it follows the principle of local-most
wins that we employ in other parts of Maven, but I'm not sure I
know enough about the history of this issue.

Does anyone have another issue number that contributes more to this
discussion, that we could use to determine the correct course of
action here?

Thanks,

-john

On Mar 27, 2008, at 12:54 PM, John Casey wrote:
Hmm, I'll have to do some homework on this one, but yeah, it looks
like the interpolation changes I put in to get the path-
translation in place. I'll have to see if I can work up a test
case for this, and try to track down that original issue.

Let me get to work on it and I'll see how fast I can come up with
something.

-john

On Mar 27, 2008, at 8:09 AM, Brian E. Fox wrote:

Hrm. It's probably a good idea to use a different property, but we
should understand why this changed before going further. John, any
ideas?

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of
Olivier Lamy
Sent: Thursday, March 27, 2008 6:56 AM
To: Maven Developers List
Subject: Re: [pre vote take 3] 2.0.9-RC3

Hi,
Testing on corporate projects and build fine.
+1

I have just noticed a change ("regression" ?).
We have a corporate plugin. In the pom it's configured as this :

       <plugin>
         ....
         ..
         <configuration>
           <subject>.. - ${version} ..</subject>

We use it with mvn blabla -Dversion=here a version.
The value has changed :
- with mvn 2.0.8 : the value from the cli is used.
- with this RC : the ${version} is replaced with the current
pom.version.

It's not a blocking issue because we can easily replace with :
<subject>.. - ${releaseVersion} ..</subject> and use  mvn blabla
-DreleaseVersion=

But I hope there is no other side effect.

--
Olivier



2008/3/26, Brian E. Fox <[EMAIL PROTECTED]>:
We fixed the regressions identified last week with the plugin tools
and
reporting impl. The new 2.0.9 is staged at




http://people.apache.org/~brianf/staging-repository/org/apache/
maven/apa
che-maven/2.0.9-RC3/



You'll notice that this one has an RC qualifier attached to it.
Since
what I've actually been staging hasn't been for an official
vote, it
makes more sense to have actual deterministic numbers on them
instead
of
continuously rolling back and forth between .10 and .9.



The other significant reason it has a qualifier is that I want to
solicit feedback from the users list without potentially getting
multiple versions out there called 2.0.9. My new mantra for the
maven
release is "no more regressions". To that end, what I intend to
do is
let the RC sit here for a day. If no one turns up anything new (it
should be good since this is really attempt #3), then I'll
email the
user list to solicit feedback. Naturally we'll probably get a
slew of
"can you fix xyz" but the only thing that we will consider at this
point
would be a regression from 2.0.8 to the current RC. If
something is
identified then we should consider fixing it and re-releasing
RC4. I
think that having the users more involved in testing the RCs is
the
only
way to really identify and eliminate regressions. If someone
identifies
a regression after the fact and didn't speak up or try it, well
that's
unfortunate but it'll have to wait.



The RC can sit with the users for 3 days. If nothing turns up,
then
I'll
restage with a final release tag and we can do a formal vote.
Assuming
this is all successful, then I'll document a more formal Core
release
procedure that we can follow going forward.



Here's the list of issues fixed in the latest RC:



Release Notes - Maven 2 - Version 2.0.9





** Bug

   * [MNG-1412] - dependency sorting in classpath

   * [MNG-1914] - Wrong url in error message when using a mirror

   * [MNG-2123] - NullPointerException when a dependency uses
version
range and another uses an actual version incompatible with that
range

   * [MNG-2145] - Plugins' dependencies are not always checked

   * [MNG-2178] - incorrect M2_HOME guess in mvn.bat

   * [MNG-2234] - activeProfile in ~/.m2/settings.xml is
ignored when
profiles section is missing or empty

   * [MNG-2339] - ${project.*} are interpreted in the wrong place

   * [MNG-2744] - checksum comparison should be case-insensitive

   * [MNG-2809] - Can't activate a profile by checking for the
presence
of a file in ${user.home}

   * [MNG-2848] - Environment variables in profile activation not
working

* [MNG-2861] - NullPointerException in DefaultArtifactCollector
for
relocated resolvedArtifacts with different version ranges and
available
versions.

   * [MNG-2925] - NullPointerException in
PluginDescriptor.getMojo()
if
there's no mojo in pom.xml

* [MNG-2928] - Null pointer exeception when introducing version
range [major.minor.build-SNAPSHOT,)

   * [MNG-2972] - Ignores version of plugin dependency
specified in
my
pom

   * [MNG-3086] - NullPointerException in
ResolutionNode.getTrail(ResolutionNode.java:136)

   * [MNG-3099] - Profiles ignored when working with non-projects
(such
as archetype:create)

   * [MNG-3111] - Classpath order incorrect

* [MNG-3156] - NullPointerException with mvn dependency:sources

   * [MNG-3221] - Infinite loop in DefaultLifecycleExecutor

   * [MNG-3259] - Regression: Maven drops dependencies in
multi-module
build

   * [MNG-3286] - execution.inherited field is ignored

   * [MNG-3288] - Invalid systemPath allows build to
continue--failing
in later phase.

   * [MNG-3296] - mvn.bat looses error code on windows NT type
platforms

   * [MNG-3310] - JAVACMD set incorrectly when JAVA_HOME is not
set

   * [MNG-3316] - Barfs at attribues named .*encoding

   * [MNG-3354] - mvn.bat incorrectly detects OS on Windows NT
or XP
with Novell login

   * [MNG-3355] - CLONE -${pom.build.sourceDirectory} and
${pom.build.testSourceDirectory} no longer recognized

   * [MNG-3365] - Remove trailing-backslashes from M2_HOME in
mvn.bat

* [MNG-3394] - Plugin versions inherited via <pluginManagement>
cannot be overriden by <build>.<plugins> section of sub modules

   * [MNG-3396] - Managed versions dont affect over constrained
ranges

   * [MNG-3400] - MavenProject is not extensible

   * [MNG-3405] - "Checking for updates from repository" logging
should
not display if WagonManager is offline

   * [MNG-3410] - Managed versions in plugins are not
considered when
using them

* [MNG-3415] - Transfer errors cause junk metadata in the local
repo

   * [MNG-3426] - regression : <dependency> in plugin
configuration
doesn't override plugin classpath

   * [MNG-3430] - Toolchain doesn't match Toolchain extensions

   * [MNG-3431] - Pom Extensions not supported for Toolchains

   * [MNG-3439] - incorrect child dependency selected when
parent is
not selected

   * [MNG-3441] - Maven should always retrieve metadata to be
updated
from the deployment repository

   * [MNG-3460] -
org.apache.maven.profiles.DefaultProfileManagerTest
fails if you use a different local repo

   * [MNG-3464] - maven-toolchains missing from final binary..
need
to
update the assembly

   * [MNG-3473] - site generation with 2.0.9 and plugin:report
(2.4
ONLY) is broken



** Improvement

   * [MNG-428] - Japanese message resource

   * [MNG-2881] - Improve logging when downloading snapshots in
offline
mode

   * [MNG-3119] - Duplicate attached artifacts should not be
allowed.

   * [MNG-3279] - Support Exception Chaining for
MojoFailureException

   * [MNG-3318] - ActiveProjectArtifact should have appropriate
equals
and hashCode methods

   * [MNG-3331] - Normalize paths to sub modules

* [MNG-3388] - DefaultPluginManager needs to catch LinkageError

   * [MNG-3395] - Default core plugin versions in the superpom.

   * [MNG-3442] - Add explicit resource bundle for English

* [MNG-3461] - Mirrors should not apply to file:// repositories

* [MNG-3467] - PatternSet needs a toString() method to properly
print in debug mode

   * [MNG-3468] - FileSet needs a toString() method to properly
print
in debug mode

   * [MNG-3469] - Resource needs a toString() method to properly
print
in debug mode



** New Feature

   * [MNG-2664] - Add native support for webdav



** Task

   * [MNG-2883] - Make sure that the network isn't used for
snapshots
in offline mode when legacy repositories are used





** Wish

   * [MNG-1491] - Reactor should print out a message if it
detects a
collision of artifact ids











--------------------------------------------------------------------

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


--------------------------------------------------------------------

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---
John Casey
Committer and PMC Member, Apache Maven
mail: jdcasey at commonjava dot org
blog: http://www.ejlife.net/blogs/john
rss: http://feeds.feedburner.com/ejlife/john



---
John Casey
Committer and PMC Member, Apache Maven
mail: jdcasey at commonjava dot org
blog: http://www.ejlife.net/blogs/john
rss: http://feeds.feedburner.com/ejlife/john



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---
John Casey
Committer and PMC Member, Apache Maven
mail: jdcasey at commonjava dot org
blog: http://www.ejlife.net/blogs/john
rss: http://feeds.feedburner.com/ejlife/john



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---
John Casey
Committer and PMC Member, Apache Maven
mail: jdcasey at commonjava dot org
blog: http://www.ejlife.net/blogs/john
rss: http://feeds.feedburner.com/ejlife/john



Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder,  Apache Maven
jason at sonatype dot com
----------------------------------------------------------

Our achievements speak for themselves. What we have to keep track
of are our failures, discouragements and doubts. We tend to forget
the past difficulties, the many false starts, and the painful
groping. We see our past achievements as the end result of a
clean forward thrust, and our present difficulties as
signs of decline and decay.

-- Eric Hoffer, Reflections on the Human Condition



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to