Commit Graph

15 Commits

Author SHA1 Message Date
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
John Dennis Casey 385b7c96ae PR: MNG-487
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@191309 13f79535-47bb-0310-9956-ffa450edef68
2005-06-18 22:38:49 +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
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 d15513bd60 o Added sourceLevel (meaning global vs. user) to most base classes in the model, to track for the purposes of rewriting the user-level settings ONLY.
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
2005-06-15 03:01:48 +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
Brett Leslie Porter fc01edf237 ability to lookup mirror by repository id that it is a mirror of
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@189513 13f79535-47bb-0310-9956-ffa450edef68
2005-06-08 03:37:31 +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
John Dennis Casey 29878afcc6 o pom-level profiles are working now
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@189464 13f79535-47bb-0310-9956-ffa450edef68
2005-06-07 22:36:44 +00:00
John Dennis Casey 215c30bbb3 Moved the packages org.apache.maven.model.settings and org.apache.maven.model.profiles to org.apache.maven.settings and org.apache.maven.profiles, respectively.
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
2005-05-31 21:48:55 +00:00
John Dennis Casey 9d7e54c042 o Added model and builder support for Profiles specified in settings.xml, profiles.xml, and the POM.
o Changed MBoot and Verifier accordingly.

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@179233 13f79535-47bb-0310-9956-ffa450edef68
2005-05-31 16:24:34 +00:00
Brett Leslie Porter 678919ad40 PR: MNG-145
add mirror notation to settings, introduce to bootstrap

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@168282 13f79535-47bb-0310-9956-ffa450edef68
2005-05-05 06:24:07 +00:00
John Dennis Casey 61406495be o Refactored the MavenSettings code into the settings.mdo/Settings class.
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
2005-04-18 21:50:55 +00:00
Brett Leslie Porter b2ec61c703 default to HTTP
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163908 13f79535-47bb-0310-9956-ffa450edef68
2005-04-12 01:45:21 +00:00
John Dennis Casey e9a9323812 o Changed maven-user-model/UserModel/UserModelBuilder to maven-settings/MavenSettings/MavenSettingsBuilder.
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
2005-03-16 06:29:35 +00:00