Commit Graph

582 Commits

Author SHA1 Message Date
Brett Leslie Porter 3f2f0d50a3 simplify the resolveTransitively API, and implement the new collector up to the level of functionality of the original.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191773 13f79535-47bb-0310-9956-ffa450edef68
2005-06-22 06:46:26 +00:00
John Dennis Casey 854b76e61f Fixing plugin-version prompting once and for all (hopefully)...at least, the logic.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191757 13f79535-47bb-0310-9956-ffa450edef68
2005-06-22 03:27:27 +00:00
Brett Leslie Porter 3bee4a55c1 change artifact resolution result to have a set of artifacts instead of a map, as everything dealt with them as a collection anyway.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191748 13f79535-47bb-0310-9956-ffa450edef68
2005-06-22 00:31:33 +00:00
Brett Leslie Porter 6cd2e31078 refactoring of the resolveTransitiveDependencies call.
simplified by removing a bunch of duplicated code in addArtifacts - no need to merge, you have the full list. 
separated the original artifacts (dependency artifacts) from the resolved artifacts (getArtifacts)


git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191667 13f79535-47bb-0310-9956-ffa450edef68
2005-06-21 15:32:02 +00:00
John Dennis Casey 4ce86c9b87 Resolving: MNG-495
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
2005-06-21 14:51:55 +00:00
Brett Leslie Porter 2561a2893f reduce phase bindings for plexus application
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191658 13f79535-47bb-0310-9956-ffa450edef68
2005-06-21 13:50:00 +00:00
Brett Leslie Porter 86aa7ce7da comment and clean up
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191653 13f79535-47bb-0310-9956-ffa450edef68
2005-06-21 12:16:26 +00:00
Brett Leslie Porter 26d36d8959 PR: MNG-140
split artifact impl from api so that dep resolution can be used independently of wagon
only the first step in making maven-artifact more useful as a public api - more changes to be made


git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191634 13f79535-47bb-0310-9956-ffa450edef68
2005-06-21 06:49:49 +00:00
John Dennis Casey ce0065fea3 Adding feedback for version-update prompt, and fixing bug with [a]ll selection.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191618 13f79535-47bb-0310-9956-ffa450edef68
2005-06-21 02:56:23 +00:00
John Dennis Casey cda19f2e5c Resolving: MNG-494
o During addPlugin() only the plugin's artifact is resolved/added...just enough to get the plugin container to discover the pluginDescriptor.

o During getConfiguredMojo(), the rest of the plugin's artifacts will be transitively resolved and added to the plugin container (if this hasn't already been done). The deciding factor for attempting to complete the plugin container's artifact list is whether the only artifact in the pluginDescriptor's artifact list is the plugin artifact itself. If that makes sense.

It's a bit of black magic, but I think it'll work unless/until we find something more elegant. I'm abusing the container a little bit here, so it might be sensitive to plexus changes in future.



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191582 13f79535-47bb-0310-9956-ffa450edef68
2005-06-20 22:42:26 +00:00
John Dennis Casey d7e421fd01 Resolving: MNG-496
o Adding extraction of mojo-specific configuration from the merged config for the plugin
o Warning at the DEBUG log-level for unused plugin configuration during the extraction process above
o Added integration test it0028 to test with unused plugin configuration present.



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191552 13f79535-47bb-0310-9956-ffa450edef68
2005-06-20 20:11:01 +00:00
John Dennis Casey 9aaca6a72d o Added conversion handling of checksumPolicy to Settings and Profiles.
o Moved the profiles-builder stuff into maven-profile, to make that API more self-contained for reuse in Ant tasks, etc.



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191551 13f79535-47bb-0310-9956-ffa450edef68
2005-06-20 20:08:05 +00:00
John Dennis Casey fda77afb12 Resolving issue: MNG-339
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
2005-06-20 18:53:53 +00:00
Brett Leslie Porter ae93f02c8d PR: MNG-418
use a silent transfer monitor in batch mode


git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191492 13f79535-47bb-0310-9956-ffa450edef68
2005-06-20 15:21:50 +00:00
Brett Leslie Porter 22f6d7e1a7 only report 0 seconds if there was no minutes
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191487 13f79535-47bb-0310-9956-ffa450edef68
2005-06-20 15:10:39 +00:00
Brett Leslie Porter 8dec28247b PR: MNG-471
implemented cloned lifecycle, project and tests. update mojos accordingly


git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191476 13f79535-47bb-0310-9956-ffa450edef68
2005-06-20 14:42:56 +00:00
Brett Leslie Porter 543189e2fd PR: MNG-471
- correct the lifecycle instantiation
- read/write executeLifecycle in the plugin descriptor


git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191416 13f79535-47bb-0310-9956-ffa450edef68
2005-06-20 08:00:53 +00:00
Brett Leslie Porter 81fe76fd27 PR: MNG-471, MNG-489
- refactor project out of MavenSession so that it can be cloned
- refactor lifecycle construction out so we can clone the existing one and pass it into a new execution
- only resolve plugins that are executed (MNG-489)



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191413 13f79535-47bb-0310-9956-ffa450edef68
2005-06-20 07:17:32 +00:00
Brett Leslie Porter f64881f21a use newer wagon
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191402 13f79535-47bb-0310-9956-ffa450edef68
2005-06-20 06:45:04 +00:00
Brett Leslie Porter ded91a973b better default bindings of goals for a plexus application
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191399 13f79535-47bb-0310-9956-ffa450edef68
2005-06-20 06:15:34 +00:00
John Dennis Casey 68e52f7f9c Adding default interval type of minutes, in case W|D|H|M is not specified. This is to be consistent with the snapshot policy in the repository.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191357 13f79535-47bb-0310-9956-ffa450edef68
2005-06-19 18:02:07 +00:00
John Dennis Casey 9863732555 PR: MNG-432
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191312 13f79535-47bb-0310-9956-ffa450edef68
2005-06-18 23:45:47 +00:00
Brett Leslie Porter 1a63032af4 PR: MNG-469
configure reports according to spec:
- <reporting> section affects reports run through site and standalone
- <build> section affects reports run standalone and overrides anything already in <reporting>
- command line parameters rule all



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191298 13f79535-47bb-0310-9956-ffa450edef68
2005-06-18 16:21:49 +00:00
Brett Leslie Porter a257dca4f9 re-enable reports by correcting tag name
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191289 13f79535-47bb-0310-9956-ffa450edef68
2005-06-18 13:47:50 +00:00
Brett Leslie Porter c16f3e139f record the base version (ie, keep SNAPSHOT so each new snapshot doesn't cause a prompt)
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191287 13f79535-47bb-0310-9956-ffa450edef68
2005-06-18 13:29:36 +00:00
Brett Leslie Porter a9f174c834 Clean up of the lifecycle executor, simplify configuration and push back into the plugin manager.
This fixed a couple of bugs along the way.

One change that this has brought to bear from the document is you now must specify a goal for it to be bound to the LC
(see it0008)


git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191285 13f79535-47bb-0310-9956-ffa450edef68
2005-06-18 13:01:26 +00:00
Brett Leslie Porter dedfacf69a remove unused code and empty directories
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191267 13f79535-47bb-0310-9956-ffa450edef68
2005-06-18 05:20:21 +00:00
John Dennis Casey fdfb9d5a2d Changing <reporter/> to <plugin/> in the reporting section.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191266 13f79535-47bb-0310-9956-ffa450edef68
2005-06-18 04:23:20 +00:00
John Dennis Casey 60750dede2 Working on issue: MNG-469
o Changed <reports/> in the Model to <reporting/>, to accommodate the <reports/> inside of <reportSet/>.

o Changed the report-plugin class <plugins/> inside of <report[ing]/> to <reporters/>, which means using a new class called Reporter (this is meant to be a Plugin-like model for reports, with reportSets rather than executions...)

o Changed the MavenProject to reflect these two model changes

o Added support to the inheritance assembler to perform deep inheritance of the reporting model (complete with calculations based on the <inherit/> attributes on Reporter and ReportSet).

o Updated DoxiaMojo, Pom, and DefaultPluginVersionManager to reflect the new model classes and MavenProject methods.

This is only round one of the changes for this issue. The next step is to start binding report configuration to the plugin manager via the lifecycle executor (it will traverse the reporting section, and verifyPlugin() to enable direct calls to the report's mojo).



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191239 13f79535-47bb-0310-9956-ffa450edef68
2005-06-18 00:43:00 +00:00
Brett Leslie Porter fb065d7858 PR: MNG-257
- hook up the source:jar goal to packaging, but only execute for non-SNAPSHOT builds
- allow comma-delimited list of goals in phase definitions
- only register necessary phases for the goals given


git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191111 13f79535-47bb-0310-9956-ffa450edef68
2005-06-17 08:33:41 +00:00
Brett Leslie Porter f4fb75176a remove old docs
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191110 13f79535-47bb-0310-9956-ffa450edef68
2005-06-17 08:31:45 +00:00
Brett Leslie Porter 01e6c8daa6 PR: MNG-257
refactor artifact creation to all go through the factory, and assign the type handler from there.
Attach EJB client to the EJB artifact so that it is installed/deployed along with it.



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191096 13f79535-47bb-0310-9956-ffa450edef68
2005-06-17 06:49:57 +00:00
Brett Leslie Porter 7fc8dfba9d make the artifact type handlers configurable
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191079 13f79535-47bb-0310-9956-ffa450edef68
2005-06-17 03:55:50 +00:00
John Dennis Casey af66c7a376 Adding sample settings.xml files. One goes in the maven distro, the other is in the maven-settings project dir, for reference. The one in maven-settings is intended to be authoritative.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191043 13f79535-47bb-0310-9956-ffa450edef68
2005-06-17 01:17:36 +00:00
John Dennis Casey a3cf96219f Resolving issue: MNG-379
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
2005-06-16 22:38:57 +00:00
Brett Leslie Porter 49ea8e4001 tweak the available phases
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@190870 13f79535-47bb-0310-9956-ffa450edef68
2005-06-16 05:24:43 +00:00
John Dennis Casey b813c3d430 Working on issue: MNG-379
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
2005-06-16 01:50:28 +00:00
John Dennis Casey 140e01d80a Removing old component definition for MavenSettingsBuiler - this is provided by the maven-settings artifact now.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@190600 13f79535-47bb-0310-9956-ffa450edef68
2005-06-14 14:47:01 +00:00
John Dennis Casey ce3665851c o Re-adding support for user-level settings which are not assumed to be in ~ (for continuum and other server-style apps' convenience)
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
2005-06-13 21:56:00 +00:00
John Dennis Casey eb0a46b6bb Fixing flaw from previous commit, where artifacts provided by the maven distro are excluded from the plugin artifact list.
Now, we're using all artifacts referenced by the plugin in the artifacts list for that PluginDescriptor...the only drawback is since we're not using a repository layout for the maven /lib, there is no good way to include the artifact-path from /lib...we're using the artifact-file from the local repo for those deps. This SHOULDN'T cause a problem, but it's possible...




git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@190414 13f79535-47bb-0310-9956-ffa450edef68
2005-06-13 15:05:28 +00:00
John Dennis Casey a55fd04696 o Adding ${plugin.*} expression support for mojos. Specifically, added support for ${plugin.artifacts} to retrieve the plugin's classpath artifacts. NOTE: There may be artifacts which are FILTERED by the resolution process, since they are provided in the maven distro. NOT SURE HOW BEST TO RESOLVE THAT...but it'll cause problems with people forking certain mojos, undoubtedly.
May resolve: MNG-455



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@190413 13f79535-47bb-0310-9956-ffa450edef68
2005-06-13 14:49:49 +00:00
John Dennis Casey 1fc7419f03 o Added <properties/> for profiles configured in the pom.xml
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
2005-06-13 04:21:27 +00:00
John Dennis Casey d2e1f3c975 o Adding support for <executions/>, which means multiple runs of the same goal/set-of-goals with different configs.
o Adding @phase declarations for those mojos that seem to be part of the main build, just for completeness
o Added two ITs, to test that <executions/> doesn't mess up the normal operation, and to test multi-execution for a goal.

Should resolve: MNG-172.



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@190335 13f79535-47bb-0310-9956-ffa450edef68
2005-06-13 02:47:57 +00:00
Brett Leslie Porter 8918d09b75 remove MAVEN_OPTS - no need for such a high setting, and make it consistent with the shell script
also, the form of MAVEN_OPTS did not work when it was already set due to extra quoting


git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@190218 13f79535-47bb-0310-9956-ffa450edef68
2005-06-12 05:16:59 +00:00
Brett Leslie Porter 2a8ed2f339 PR: MNG-154
Define the lifecycle according to packaging.
Some more work on the structure of this is required.



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@189871 13f79535-47bb-0310-9956-ffa450edef68
2005-06-10 00:57:19 +00:00
John Dennis Casey 8a257be6fc Fixed problems with merging profile-defined properties into the project, and fixed the ITs testing profile definitions in the process.
This should finally resolve MNG-421


git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@189768 13f79535-47bb-0310-9956-ffa450edef68
2005-06-09 15:53:31 +00:00
John Dennis Casey 30b1434723 Resolving: MNG-421
o External profiles (from settings.xml, profiles.xml) are now available before the main MavenProject is constructed, which allows repositories defined in external profiles to be used to resolve project parents and dependencies.

NOTE: I need to double-check whether the profile-defined repos are actually used to resolve the parent project(s)...there may be another commit following on the heels of this one.



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@189667 13f79535-47bb-0310-9956-ffa450edef68
2005-06-08 23:34:35 +00:00
John Dennis Casey 921d4ced59 o Started maven-projecthelp-plugin to help with build analysis (this helped me to visualize profile stuff)
current goals:
     projecthelp:active-profiles
     projecthelp:effective-pom

o Added source attribute to the Profile model class in maven-model, along with code in the normalization utilities (converters from profiles.xml and settings.xml models to maven-model instances) to identify the source of a particular profile.

o Added a activeProfiles cache of the Profiles in effect for the current project, on the MavenProject class



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@189612 13f79535-47bb-0310-9956-ffa450edef68
2005-06-08 17:54:11 +00:00
Brett Leslie Porter 7c69d89b08 add wagons to the exclusion list as long as they are in core (needed for site:deploy)
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@189525 13f79535-47bb-0310-9956-ffa450edef68
2005-06-08 05:18:36 +00:00
John Dennis Casey a58b76e2e4 Adding profiles.xml and settings.xml support for profiles, along with integration tests for each.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@189510 13f79535-47bb-0310-9956-ffa450edef68
2005-06-08 03:27:43 +00:00