This reverts commit 13adc1bc2b *not changing
anything* just because someone did not react in time when this issue had been
lying around on a branch. If we would set pace for the industrie, everyone would
still be using 5.25" floppy disks and 8 bit hardware and we would tell them
that upgrading to be able to use new software would be too risky and they
better keep theire broken assembly routines until the machine goes up in
smoke.
This commit removes the initialization of the MavenSession object from the
DefaultGraphBuilder. The GraphBuilder implementation should only build the
graph and should not touch the MavenSession object passed into it.
To allow complete initialization of the MavenSession the ProjectDependencyGraph
interface got enhanced so that GraphBuilder implementations can communicate all
collected projects in addition to the processed list of projects.
This closes#105
o Updated to fix parent version range resolution broken since 3.2.3 and to
remove parent version range resolution logic obsolete since Maven
3.2.3 which changed the initialization of MavenProject instances.
o Updated local parent resolution to behave the same way remote parent
resolution behaves. When referencing a parent using version ranges,
inheriting the version or using version expressions should not be supported.
It has been implemented that way for remote parent resolution as it got
introduced in Maven 3.2.2. For local parent resolution the version in parent
declarations had been ignored completely as of Maven 3.3.0 due to commit
be3fb20032 removing all local parent version
validation. Work on fixing this is tracked by MNG-5840 released with Maven
3.3.9. This commit adds the final missing bits to make local and remote parent
resolution behave the same way as much as possible. As an exception, remote
parent resolution still is a bit more strict than local parent resolution due
to a different API in use. When resolving a parent from a repository using
version ranges, the ModelBuilder verifies the range in use to declare an upper
bound. When resolving a parent locally using version ranges, those ranges are
not required to declare an upper bound because the API in use does not support
querying that. Authoring a POM relying on this difference should be considered
a bug.
o Added test cases to maven-core testing parent version range resolution for
local and remote parent models.
o Followup to MNG-5894 of Maven 3.3.9 where the maven-ejb3-plugin
has been removed from life cycle.
o Removed the ArtifactHandler for ejb3 cause without
a bound life cycle it does not make sense.
o Removed entry from artifact-handlers.apt site.
Refactoring the current code setting system properties to synchronize correctly on the given ones: avoids ConcurrentModificationException and NullPointerException if the properties is modified by another thread.
While MNG-5805 restored binary compatibility of Lifecycle.getPhases
it didn't do the same for Lifecycle.setPhases. This breaks plugins
like flexmojos-maven-plugin which have their own lifecycle mapping
implementations.
This closes#77
Set maven.conf to default ${maven.home}/conf in ${maven.home}/bin/m2.conf
to have a canonical property pointing to global configuration files from
within Java code.
This also helps package maintainers to decouple the Maven installation
from a global configuration by solely modifying m2.conf instead of using
dirty hacks, if possible at all.
MultiThreadedBuilder must set parallel to true when it's using more than
1 thread to build: i.e. a degree of concurrency greater than 1 (-T) and
more than 1 project to build. Since each ProjectSegment works on a
cloned session instance (see
BuildListCalculator#calculateProjectBuilds), the flag must be also set
on each cloned session.