o Moved marmalade support dependencies out of maven-core, since they can be supported on demand now
o changed the ordering of the ant and assembly plugins, to show that the classloader (plugin param) bug is fixed.
o added a method in PluginDescriptor which is similar to o.a.m.model.Plugin.getId() (I think that's the method; it's the one that results in a key of 'g:a')
o moved wagon-ssh dependency into maven-core, since there is a new issue related to nested containers and wagons which are introduced as plugin dependencies. This should be solved using a mechanism similar to plugin-manager for wagon-manager impl in future anyway
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@187639 13f79535-47bb-0310-9956-ffa450edef68
This is restoring the settings to their original package structure, and putting profiles next to it...the change I'm reversing was not a good one, conceptually.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@179289 13f79535-47bb-0310-9956-ffa450edef68
o Created corresponding runtime exception: InvalidArtifactRTException
o Added error diagnoser for InvalidArtifactRTException
o Changed logError() in DefaultMaven to use error diagnosers (even the devs could use a hand!)
o Added unit test for InvalidArtifactDiagnoser.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@179265 13f79535-47bb-0310-9956-ffa450edef68
o Added concept of ErrorDiagnoser to help interpret errors and provide user feedback
o Added PluginParameterException to provide richer information than simply PluginConfigurationException (it's derived from PluginConfigurationException)
o Added implementations of ErrorDiagnoser for artifact resolution and plugin configuration handling.
o Modified DefaultMaven's logFailure(..) method to use errorDiagnosers Map (injected via Plexus)
I approached the plugin parameter expression/name feedback in this way, as it seems like a general pattern for interpreting errors without embedding this logic deep within the app itself. Feel free to rollback if this causes issues.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@169379 13f79535-47bb-0310-9956-ffa450edef68
o Added code to cache the active proxy and profile inside the Settings instance for quicker lookup.
o Added a method to initialize a new active profile for a Settings instance in the event one didn't exist.
o Started adding offline mode. So far, I've implemented:
- Warning when a mojo declares a requirement for connectivity, but we're offline.
- INFO message stating when maven is running in offline mode.
- Addition to the Profile class in o.a.m.settings package to allow specification of offline mode by declaring: <offline>true</offline>
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163969 13f79535-47bb-0310-9956-ffa450edef68
This has ironed out most wrinkles. Still need to implement the snapshot checking cache, and special case the use of installed snapshots over deployed ones.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163706 13f79535-47bb-0310-9956-ffa450edef68
didn't exists. The value extractor will now return null if the getter doesn't
exists.
o Properly implemented the method caching in the value exctrator.
o Changed the RegexBasedModelInterpolator so it would properly handle null
values. It used to convert null to "null" and then insert that, now it will
leave the expression as is.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163696 13f79535-47bb-0310-9956-ffa450edef68
o Removed AbstractArtifactComponent as it was simply delegating to the class and prevented other inheritence for the resolver which seems more appropriate.
o fixed test failure in ProjectClasspathTest due to incorrectly constructed component - using plexus even though still working around the problem with a hack
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163675 13f79535-47bb-0310-9956-ffa450edef68
------------------------
o Factored the layout for a repository into a separate set of components in o.a.m.a.repository.layout
o Added new DefaultRepositoryLayout that uses the repo layout in http://docs.codehaus.org/pages/viewpage.action?pageId=22230 (it is not used by default until we get the repo1 conversion done)
o Added command-line switches to force legacy local-repo or new format (-a/-A, I know, but try to find something that makes more sense!)
o Added path formatting to the repository itself, which is now constructed with a ArtifactRepositoryLayout instance (since layout should be tied to the repository)
o Removed path formatting altogether from the DefaultArtifactHandlerManager.
o Changed the AbstractArtifactBasedComponent (or whatever it's called) to use the repository formatting in the path() and localPath() methods.
o Moved the plugin repo construction (still intact as a hard-coded singleton list) into the DefaultMavenProjectBuilder, where it will eventually build from POM info.
o Added a new method to build an artifact repository for a <distributionManagement/> section, if possible. This reduced the strain on mojos to construct an ArtifactRepository on demand.
o Refactored all *DeployMojo to use #project.distributionManagementArtifactRepository instead of the #settings, #component..ArtifactRepositoryFactory, ... that it used to require. This is a big simplifying step.
o Removed remote artifact repository construction from DefaultMaven, and changed the MavenSession to delegate to MavenProject for remoteArtifactRepositories, just as it does for pluginRepositories.
o Added remoteArtifactRepositories, pluginArtifactRepositories, distributionManagementArtifactRepository to MavenProject as a cache for the higher-level repos used throughout the system. This is project info, so it belongs here.
o Fixed all the tests in maven-core and maven-artifact which I broke. :)
o Dropped what is probably a big format-bomb, since the Eclipse formatter doesn't really handle 'throws Exception' wrapping the right way.
o Added MavenProject to the MavenSession constructor, since there should always be a MavenProject associated with a build, even if it's just the super-pom.
TODO:
--------------------------
- Write an integration/unit test to ensure that the new repo format works with $classifier (was: $extra) and $groupId[0]/../$groupId[n]. This is a simple adaptation of the old layout, but still needs testing.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163638 13f79535-47bb-0310-9956-ffa450edef68
any returns from success will be conveyed by the request, soon to be converted into fields on the plugin. These will eventually be extracted using OGNL, but this is all post alpha-1 work
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163621 13f79535-47bb-0310-9956-ffa450edef68
This supports a change to a simpler local configuration file (~/.m2/settings.xml by default), which has the general format of:
<settings>
<profiles>
<profile>
<active>true</active> <!-- not needed if this is the only profile -->
<localRepository>/path/to/repo</localRepository>
</profile>
.
.
.
</profiles>
<servers>
<server>
<id>myserver</id>
<username>me</username>
<password>mypass</password>
<privateKey>/path/to/key</privateKey>
<passphrase>key-passphrase</passphrase>
</server>
.
.
.
</servers>
<proxies>
<proxy>
<active>true</active> <!-- not needed if this is the only proxy -->
.
.
.
</proxy>
.
.
.
</proxies>
</settings>
o Added special parameter named '#settings' which simply injects the current MavenSettings from the MavenSession into the request parameters.
o Adjusted the it-verifier and mboot2 accordingly.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163578 13f79535-47bb-0310-9956-ffa450edef68
o Added ArtifactRepositoryFactory stuff to construct with AuthenticationInfo if possible.
o Added UserModelBuilder stuff for componentizing UserModel construction.
-> DefaultUserModelBuilder has a configuration point 'userModelPath' which can redirect where it reads user.xml from (${user.home} is substitutable here).
o Added warning message to deployment plugin when deployment repo has no authentication info available.
o Added warning message for repos with null <id/> (auth info cannot be assigned here).
o Added a couple of debug-level messages for aid in debugging repo- and userModel-related problems.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163558 13f79535-47bb-0310-9956-ffa450edef68
can now do things like:
m2 package
which makes the jar
m2 install
which installs the jar
m2 test
You can also execute individual goals still like:
clean:clean
pom:install
idea:idea
Execution of goals this way will still have the dependency resolution
flag obeyed but they are run in isolation in that pre/post goals don't
exist anymore. You need to slot your mojos into the lifecycle.
I will add the mechanism whereby configuring a plugin will push
the mojo into the lifecycle.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163359 13f79535-47bb-0310-9956-ffa450edef68
o Moved ReflectionProjectValueExtractor into o.a.m.util package and renamed to ReflectionValueExtractor
o Added unit tests for interpolation
o Added integration test for interpolation
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163335 13f79535-47bb-0310-9956-ffa450edef68
The nested <dependencyDefault> element closely mirrors the <dependency> element specification.
It provides the ability to set url, artifact, properties, version for a dependency that matches on
{groupId, artifactId, type}. Url, artifact, and version will only override the dependency's values if
the dependency doesn't provide the value, and (in the case of url and artifact) the dependency
doesn't provide a version (url and artifact are assumed to be version-specific).
Properties will only be overwritten, and only in the case where the dependency
doesn't specify them.
Dependencies are validated after merging with defaults, since version is not required
on either <dependency> or <dependencyDefault> but is required between the two.
o Added component interface/default impl for injecting project defaults.
o Added unit and integration tests.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163323 13f79535-47bb-0310-9956-ffa450edef68
builder should now completly obey mavenHomeLocal.
o Made mavenHome and mavenHomeLocal Files instead of Strings.
o Adding licenses to some files missing license.
o Silencing some eclipse warnings.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163188 13f79535-47bb-0310-9956-ffa450edef68
o Removed PluginDownloadPhase, since plugin resolution/download has to be a part of the prereq and pre/postGoal resolution, too
o Changed DefaultMaven to execute the session lifecycle, and the component wiring to likewise wire the DefaultMaven with a session lifecycle manager
o Removed the org.apache.maven.decoration package and its contents, since this is all in the model now
o Fixed the GoalResolutionPhase to verify each goal's plugin in turn as it resolves prereqs, preGoals and postGoals
o Fixed the GoalResolutionPhaseTest to work with the new resolution model
o Added a new createGoalExecutionContext to the MavenTestCase base class, to allow me to inject a MavenProject directly rather than a pom file
o Fixed the MavenLifecycleManagerTest to only expect 4 lifecycle phases, now than the plugin resolution and goal decoration phases are obsoleted
o All builds on local machine, but will depend on plexus-0.17.jar/pom and plexus-artifact-container-1.0-alpha-1.jar/pom to build on beaver
o I uploaded plexus-artifact-container-1.0-alpha-1.jar to ${plexus.home}/dist, but cannot upload POMs due to priveleges problem in poms dir.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163007 13f79535-47bb-0310-9956-ffa450edef68
o Changed the embedder/container used to be the new artifact-aware container (plexus-artifact-container-1.0-alpha-1)
o Added new dependency to maven-core for artifact-container.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163006 13f79535-47bb-0310-9956-ffa450edef68
o Added testing to show failure to merge resources from parent into child build which specifies a build without these elements
o Fixed resource blending for child build sections which don't specify them.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163001 13f79535-47bb-0310-9956-ffa450edef68
-> bascially the mechanism is the same as the one we use for the goal
execution lifecycle
This first cut is so John can see as we're discussing the session stuff
at the moment and I need to get this working in order to push all notions
of artifact handling out of MavenProject.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@162969 13f79535-47bb-0310-9956-ffa450edef68
it really is. Making way for the notion of a MavenSessionExecutionContext
and it is looking like we will end up with two lifecycles. Where we are
dealing with notions of goals and sessions: some operations need to be
done at the session level and don't need to be repeated for the execution
of every goal.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@162968 13f79535-47bb-0310-9956-ffa450edef68