http://jira.codehaus.org/browse/MNG-2577
Modifying to use request properties (embeddable system properties), and organizing this with the existing use of envars. NOT allowing profile-property interpolation, as these could influence profiles in a recursive manner and make their values hard to determine...besides, model-interpolation will pickup profile properties before POMs are interpolated, so the only thing this will miss is profile/properties -> servers, etc. inside the settings itself.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@545283 13f79535-47bb-0310-9956-ffa450edef68
* Created org.apache.maven.artifact.manager.ArtifactManager
* Deprecated org.apache.maven.artifact.manager.WagonManager in favor of new ArtifactManager
* Updated the rest of maven to utilize this new ArtifactManager.
* The default wagon providers list is now managed from within wagon-manager's dependency list.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@505520 13f79535-47bb-0310-9956-ffa450edef68
o add the generation of a JDOMWriter for use in the embedder so that working with models doesn't
completely whack the existing XML, and allow for outputting the namespace declarations
o add a security manager to the embedder which is off by default but will barf if someone
tries to set system properties. you have to specifically turn this on because it will more then
likely break tons of code like xerces setting a system property named "version", nice.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@493811 13f79535-47bb-0310-9956-ffa450edef68
Submitted By: Edwin Punzalan
Reviewed By: John Casey
NOT applying this patch. I found a better solution that will factor the interpolation of the POM into a flexible utility in plexus-utils, and will allow introduction of envar resolution to the POM. It will also make interpolating the settings.xml and profiles.xml using any of a number of expression resolvers (using envar resolution only for now).
BTW, I tried using System.getenv(..) in JDK1.4, and it fails with java.lang.Error and a deprecation message. So, I'm using Edwin's code to extract the envars into a Properties object. We can improve this later.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@354462 13f79535-47bb-0310-9956-ffa450edef68
Applied patch for configuring Wagon instances via DefaultWagonManager. I reworked the configuration exception to be a derivative of TransferFailedException, since it pertains to the WagonManager usage of maven-wagon.
Thanks to Juan Codagnone for the patch.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@320827 13f79535-47bb-0310-9956-ffa450edef68
o Removed -cpl and related command line switches for controlling use of LATEST metadata for resolving plugin versions
o Made LATEST the only metadata used to resolve plugin versions, since this is also available when releases are performed
o Added various error diagnostics for project build exceptions
o Enhanced artifact not found error diagnostics
o Removed maven-project and added maven-artifact to maven-surefire-plugin's pom
o Removed the stanza that added pluginArtifacts to the test-booter's classpath...they are already covered by the classpathElements
o Fixed ITs in connection to the removal of -cpl
o Changed the plugin manager to detect whether a plugin's artifact file has changed since the plugin container was created...if so, reload it.
o Took the projecthelp plugin out of the build until I can diagnose the problems with its build (probably tomorrow).
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@312827 13f79535-47bb-0310-9956-ffa450edef68
The group ID has changed, so add a bunch of exclusions to ensure the old is not picked up
fix bugs in mboot that wasn't honoring excludes.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@307294 13f79535-47bb-0310-9956-ffa450edef68
o If the metadata version is still in the plugin artifact after it's resolved, then simply return null and allow the plugin version resolution process to fail.
o Added a new mojo to update the plugin registry (if it's enabled) with newly installed versions of plugins.
o Added comments to maven-settings and maven-plugin-parameter-documenter poms marking the packageWithVersion config as deprecated pending modello alpha-5
o Cleaned up it0013 and it0020 to work with the new resolution (point one above).
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@293520 13f79535-47bb-0310-9956-ffa450edef68
o Changed default value for usePluginRegistry to 'false' in settings.mdo
o Changed default value for updateInterval to 'never' in plugin-registry.mdo
o Added ActivationOS in settings.mdo, profiles.mdo, maven.mdo
o Added code to the conversion utilities for Settings and Profiles to corresponding maven-model classes for ActivationOS
o Added OS activator for profiles which allows architecture, name, family, and version (with '!' negation of any of these)
o Added ActivationFile to settings.mdo, along with conversion code in the Settings->Model conversion utility
o Added packageWithVersion configuration to the modello plugin definition in maven-settings (this is apparently required now)
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@293479 13f79535-47bb-0310-9956-ffa450edef68
o Added complex test case for the release plugin, called it2002.
o Added copying of reportArtifacts and extensionArtifacts sets when one MavenProject is constructed with another.
o Added some logging statements to PrepareReleaseMojo, which I will remove later when I'm done with this rash of bugfixes.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@289294 13f79535-47bb-0310-9956-ffa450edef68
1.0-alpha-5-SNAPSHOT for all so they're all the same.
o Updated modello plugin invocations in all poms to by adding execution elements
and fixing goals section to get rid of deprecated notation.
o Removed dependency on modello-core in maven-plugin-tools; it seems it
was there because maven-plugin-tools-java used StringUtils from modello -
changed that to use the plexus-utils version.
o Reversed commons-cli version back to 1.0 (brett asked me to, a few days back).
o Updated all models to use fully qualified classnames - do not assume
java.util.* is included! (it won't be anymore from modello
1.0-alpha-5-SNAPSHOT onward).
o Added some <?xml processing instructions to some models that didn't have them
- vim now recognizes these files as XML (so I get syntax highlighting :))
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@280539 13f79535-47bb-0310-9956-ffa450edef68
under dependencyManagement of m2 and maven-plugins, and removed
versions in all poms having either as a parent.
Used version 1.0.2-SNAPSHOT for plexus-utils as that was used in maven-core
and is not overridable.
o Bumped maven-archiver version to 2.0-beta-1-SNAPSHOT for maven-ear-plugin
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@227084 13f79535-47bb-0310-9956-ffa450edef68
o Fixing core-library resolution for expression: ${plugin.artifacts} and ${plugin.artifactMap} (latter is keyed by g:a)
o Modified maven-core-it-plugin to accept something like "-DartifactToFile=org.apache.maven:maven-artifact"...it'll lookup that artifact in ${plugin.artifactMap}, and touch a file that's a mutation of the abs. path for that artifact.
o Added pomArtifact to ResolutionGroup, since the MavenMetadataSource ALWAYS creates a new Artifact for a pom...this allows us to retrieve the resolved Artifact for that pom.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@225234 13f79535-47bb-0310-9956-ffa450edef68
allow separate snapshot and release repositories
deprecate existing snapshotPolicy and checksumPolicy in favour of updatePolicy and checksumPolicy within the <releases> and <snapshots> elements in the <repository> element.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@224707 13f79535-47bb-0310-9956-ffa450edef68
o Added four command-line options:
--check-plugin-updates is a synonym for --update-plugins
--no-plugin-registry turns off usage of plugin-registry.xml for plugin version resolution for the current build.
--check-plugin-latest turns on usage of LATEST metadata for plugin version resolution for the current build.
--no-plugin-latest turns off usage of LATEST metadata for plugin version resolution for the current build.
o Added settings.xml configuration <usePluginRegistry>true|false</usePluginRegistry> to en/disable the use of plugin-registry.xml for plugin version resolution. The default value is true, to use the plugin-registry.xml.
o Added plugin-registry.xml configuration <checkLatest>true|false</checkLatest> to en/disable the use of LATEST metadata when resolving plugin versions. The default value is false, or do not use LATEST.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@219089 13f79535-47bb-0310-9956-ffa450edef68
o Normalized all references to plugins to use either o.a.m.model.Plugin or o.a.m.plugin.PluginDescriptor instances
o Changed DefaultLifecycleExecutor, PluginManager, DefaultPluginManager, MavenPluginCollector, and DoxiaMojo to reflect the above
o Added mapped-plugin resolution of goal prefixes to the DefaultLifecycleExecutor
o Added caching of PluginMappingManager instance inside of MavenSession
o Modified SettingsUtils to be more resistant to null String-Lists for pluginGroups and activeProfiles during merge.
o Added checks to MavenProject.addPlugin(..) to only add if the plugin doesn't already exist in the model.
Next step is to modify installation and deployment process for plugins to publish plugins.xml repository metadata.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@209677 13f79535-47bb-0310-9956-ffa450edef68
o Added maven-plugin-mapping project to handle repository metadata that contains prefix-to-artifactId mappings for groups of plugins
o Added builder classes for plugin mappings
o Modified maven-artifact and maven-artifact-manager to handle the concept of repository metadata in addition to artifact metadata.
o Added pluginGroups section to settings.xml, new code to merge these lists of plugin groups, and a unit test to ensure that this merge is taking place properly.
o Added maven-plugin-mapping to dependencies of maven-core, along with the list of builds to be performed by mboot.
Should be ready to incorporate plugin mapping consultation into the lifecycle executor and the deploy mojo...
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@209550 13f79535-47bb-0310-9956-ffa450edef68
o Pressing [ENTER] at a plugin update prompt should result in the plugin being registered, as indicated by the prompt.
o Use CLI switch '--no-plugin-updates' to suppress usage of the plugin registry
o Use CLI switch '--update-plugins' to force updated/resolved plugin versions to be registered
o Neither of these has a short CLI option, since we're starting to run out of sensible char options for these types of things.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@193082 13f79535-47bb-0310-9956-ffa450edef68
o Pressing [ENTER] at a plugin update prompt should result in the plugin being registered, as indicated by the prompt.
o Use CLI switch '--no-plugin-updates' to suppress usage of the plugin registry
o Use CLI switch '--update-plugins' to force updated/resolved plugin versions to be registered
o Neither of these has a short CLI option, since we're starting to run out of sensible char options for these types of things.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191664 13f79535-47bb-0310-9956-ffa450edef68
o Added checksumPolicy to artifact repository construction, which meant changing all the places where the factory was called.
o Added two command-line switches (-C=strict-checksum-checking, -c=lax-checksum-checking, or warning)
o Added checksum policy to all repository definitions (profiles.mdo, settings.mdo, maven.mdo)
o Changed the maven-artifact-ant stuff to use a Repository definition with checksumPolicy added to it
NOTE: I just realized that I haven't touched the inheritance/conversion of repository stuff from profiles/settings.xml to the model. I'll do this, and commit the additional changes.
Currently, the default checksum policy is to warn, since there are still bad checksums out there that prevent bootstrapping. Once we chase these down, we can change to default-strict checking. When verifying checksums, SHA-1 is attempted first, with MD5 acting as a backup verification method. If the checksum verification fails legitimately (not related to the process of retrieving/reading the checksum file), then the verification process is repeated ONCE ONLY.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191536 13f79535-47bb-0310-9956-ffa450edef68
o Added support for -Dmaven.repo.local command line override of the local repo
o Propagating local repository location (either maven.repo.local, or from settings.xml) to ITs in Verifier
o Re-enabled it0023 and it0026
o Removed warning in README.txt for maven-core-it.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191163 13f79535-47bb-0310-9956-ffa450edef68
o Added support for update-all and update-none when prompting the user.
o Added --update-plugins/-F option to force an update of the plugins used in the project.
o Added autoUpdate setting for the plugin registry. This is used when in non-interactive mode, to determine whether to register plugin updates
o Added updateInterval to determine when/how often to check for updates to registered plugins. Supports three syntaxes:
- 'never'
- 'always'
- 'interval:XXX' (where XXX can be a combination of weeks, days, hours, and minutes in the syntax: 1w1d1h1m)
> this renders the interval syntax similar to 'interval:1w' to check every week.
NOTE: update intervals are calculated from the time a particular plugin was last checked.
o Added lastChecked attribute for registered plugins, to use as a basis for calculating update-check interval
o Added RuntimeInfo classes for maven-settings and maven-plugin-registry, to help in tracking the file each instance comes from, in addition to merging info which is useful when extracting the user-level instance from the merged instance (for persisting changes to the user instance, f.e.).
o Changed verifyPlugin(..) to take an instance of Settings, to allow persistent decisions across the session (like update-all, update-none in the plugin version manager)
This should take care of outstanding issues with this new feature. I'm closing the JIRA issue now, and we'll deal with any bugs/shortcomings as separate issues.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191021 13f79535-47bb-0310-9956-ffa450edef68
Added specified stop-gap patch for issue: MNG-473 (affects settings-builder and registry-builder)
Today I've made the following progress on this so far:
- Added a new project, called maven-plugin-registry, to house the model for this new file.
- Developed/debugged/tested PluginVersionManager/DefaultPluginVersionManager to isolate the plugin-version checks/management code away from the PluginManager
- Added interactiveMode (<interactiveMode>true|false</interactiveMode> directly under the root element of settings.xml, or -B short CLI option or --batch-mode CLI option, where the CLI options turn OFF interactiveMode). This will allow things like the maven-plugins build to register new plugins (and, for now, new versions of plugins) automatically.
- Added user input handler for when interactiveMode = true, to get a yes/no on whether to use the discovered version over the installed version and/or no version at all. If there is no installed version, and the user selects 'n', then the discovered version is used FOR THAT SESSION ONLY, and won't be recorded in the registry.
- Added checks/recording rejected versions against the registry, before attempting to use the discovered version.
Pending:
- Still need to add update-policies, to determine two things:
1. how often to check for updates
2. what to do when updates are found (autoUpdate, etc.)
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@190854 13f79535-47bb-0310-9956-ffa450edef68
o Added an identity base class for many of these same base classes, to allow sorting/merging based on id (shallow merging) using a common piece of code.
o Added support for pluginUpdates (first pass) within the settings.xml, and support for merging this new section based on plugin key (g:a)
Working toward: MNG-379
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@190704 13f79535-47bb-0310-9956-ffa450edef68
o Adding support for global (installation-level) settings.xml file which is identical to the one in ~/.m2, and which will be overridden by user-level settings. The default location for this is ${maven.home}/settings.xml.
o Adding IT to test merging of global- and user-level settings.xml files
o Moved DefaultMavenSettingsBuilder/MavenSettingsBuilder to maven-settings project, to make them more generally available (to ant, for instance)
Resolves issue: MNG-294
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@190517 13f79535-47bb-0310-9956-ffa450edef68
o Split ModelNormalizationUtils into two utility classes in the maven-profile and maven-settings projects, to be used for converting Profile instances from the settings.xml and profiles.xml into maven-model instances.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@190344 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 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
Still need to clean up ~/maven2/lib and some large dependencies from marmalade that
shouldn't be needed in general - but down to about a 3Mb repository.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163775 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