You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2010/08/25 00:46:12 UTC

svn commit: r988749 [1/9] - in /maven/maven-3/trunk: ./ apache-maven/ maven-aether-provider/ maven-aether-provider/src/ maven-aether-provider/src/main/ maven-aether-provider/src/main/java/ maven-aether-provider/src/main/java/org/ maven-aether-provider/...

Author: bentmann
Date: Tue Aug 24 22:46:07 2010
New Revision: 988749

URL: http://svn.apache.org/viewvc?rev=988749&view=rev
Log:
[MNG-4756] Aether integration

Added:
    maven/maven-3/trunk/maven-aether-provider/   (with props)
    maven/maven-3/trunk/maven-aether-provider/pom.xml   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/java/   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/java/org/   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelCache.java   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultServiceLocator.java   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/LocalSnapshotMetadata.java   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/LocalSnapshotMetadataGenerator.java   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenMetadata.java   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenRepositorySystemSession.java   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/RelocatedArtifact.java   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/RemoteSnapshotMetadata.java   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/RemoteSnapshotMetadataGenerator.java   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/SnapshotMetadataGeneratorFactory.java   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadata.java   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadataGenerator.java   (with props)
    maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadataGeneratorFactory.java   (with props)
    maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/MetadataBridge.java   (with props)
    maven/maven-3/trunk/maven-compat/src/test/java/org/apache/maven/project/ClasspathArtifactResolver.java   (with props)
    maven/maven-3/trunk/maven-compat/src/test/java/org/apache/maven/project/EmptyLifecyclePluginAnalyzer.java   (with props)
    maven/maven-3/trunk/maven-compat/src/test/java/org/apache/maven/project/LegacyLocalRepositoryManager.java   (with props)
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/ReactorReader.java   (with props)
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java   (with props)
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/CacheUtils.java   (with props)
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/PlexusUtilsInjector.java   (with props)
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/WagonExcluder.java   (with props)
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultDependencyResolutionRequest.java   (with props)
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultDependencyResolutionResult.java   (with props)
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java   (with props)
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DependencyResolutionException.java   (with props)
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DependencyResolutionRequest.java   (with props)
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DependencyResolutionResult.java   (with props)
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectDependenciesResolver.java   (with props)
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/ReactorModelResolver.java   (with props)
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/EmptyLifecyclePluginAnalyzer.java   (with props)
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/project/LegacyLocalRepositoryManager.java   (with props)
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/repository/TestRepositoryConnector.java   (with props)
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/repository/TestRepositoryConnectorFactory.java   (with props)
Removed:
    maven/maven-3/trunk/maven-compat/src/test/java/org/apache/maven/repository/ideworkspace/IdeWorkspaceRepositoryTest.java
    maven/maven-3/trunk/maven-compat/src/test/java/org/apache/maven/repository/ideworkspace/TestIdeWorkspaceRepository.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/ReactorArtifactRepository.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/SessionRepositoryCache.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/RepositoryModelResolver.java
Modified:
    maven/maven-3/trunk/apache-maven/NOTICE.txt
    maven/maven-3/trunk/apache-maven/pom.xml
    maven/maven-3/trunk/build.xml
    maven/maven-3/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/DefaultArtifact.java
    maven/maven-3/trunk/maven-compat/pom.xml
    maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java
    maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java
    maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
    maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
    maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
    maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/DefaultLegacyArtifactCollector.java
    maven/maven-3/trunk/maven-compat/src/test/java/org/apache/maven/artifact/AbstractArtifactComponentTestCase.java
    maven/maven-3/trunk/maven-compat/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java
    maven/maven-3/trunk/maven-compat/src/test/java/org/apache/maven/project/EmptyLifecycleExecutor.java
    maven/maven-3/trunk/maven-compat/src/test/java/org/apache/maven/project/ProjectClasspathTest.java
    maven/maven-3/trunk/maven-compat/src/test/java/org/apache/maven/repository/LegacyRepositorySystemTest.java
    maven/maven-3/trunk/maven-compat/src/test/resources/org/apache/maven/artifact/resolver/ArtifactResolverTest.xml
    maven/maven-3/trunk/maven-compat/src/test/resources/org/apache/maven/project/AbstractMavenProjectTestCase.xml
    maven/maven-3/trunk/maven-core/pom.xml
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/ArtifactFilterManager.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultArtifactFilterManager.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/handler/DefaultArtifactHandler.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/DefaultRepositoryRequest.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/RepositoryCache.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/RepositoryRequest.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionRequest.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/classrealm/ArtifactClassRealmConstituent.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/classrealm/ClassRealmManager.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResult.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultSchedules.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecyclePluginResolver.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/model/plugin/DefaultLifecycleBindingsInjector.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/BuildPluginManager.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultExtensionRealmCache.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginArtifactsCache.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginDescriptorCache.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/ExtensionRealmCache.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/InvalidPluginDescriptorException.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/LegacySupport.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginManager.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginArtifactsCache.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginDescriptorCache.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginDescriptorParsingException.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginRealmCache.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginResolutionException.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultLegacySupport.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginManager.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/prefix/DefaultPluginPrefixRequest.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/prefix/NoPluginFoundForPrefixException.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/prefix/PluginPrefixRequest.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/prefix/PluginPrefixResult.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/prefix/internal/DefaultPluginPrefixResolver.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/prefix/internal/DefaultPluginPrefixResult.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionRequest.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/PluginVersionRequest.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/PluginVersionResolutionException.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/PluginVersionResult.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResult.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultModelBuildingListener.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingResult.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectRealmCache.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingResult.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectRealmCache.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/ProjectArtifactMetadata.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/repository/DelegatingLocalArtifactRepository.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/DefaultMetadataResolutionRequest.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/MetadataResolutionRequest.java
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/MavenLifecycleParticipantTest.java
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/BuildPluginManagerStub.java
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/PluginPrefixResolverStub.java
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/PluginVersionResolverStub.java
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/ProjectDependenciesResolverStub.java
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/ProjectDependencyGraphStub.java
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginManagerTest.java
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/project/EmptyLifecycleExecutor.java
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/project/EmptyProjectBuildingHelper.java
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/settings/PomConstructionWithSettingsTest.java
    maven/maven-3/trunk/maven-core/src/test/resources/org/apache/maven/project/AbstractMavenProjectTestCase.xml
    maven/maven-3/trunk/maven-core/src/test/resources/org/apache/maven/project/PomConstructionTest.xml
    maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/AbstractMavenTransferListener.java
    maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/ConsoleMavenTransferListener.java
    maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
    maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/QuietMavenTransferListener.java
    maven/maven-3/trunk/maven-repository-metadata/pom.xml
    maven/maven-3/trunk/maven-repository-metadata/src/main/mdo/metadata.mdo
    maven/maven-3/trunk/pom.xml

Modified: maven/maven-3/trunk/apache-maven/NOTICE.txt
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/apache-maven/NOTICE.txt?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/apache-maven/NOTICE.txt (original)
+++ maven/maven-3/trunk/apache-maven/NOTICE.txt Tue Aug 24 22:46:07 2010
@@ -13,7 +13,7 @@ The Apache Software Foundation (http://w
 This product includes software (Plexus and Classworlds) developed by
 The Codehaus Foundation (http://www.codehaus.org/).
 
-This product includes software (Spice, Plexus Ciper and Sec Dispatcher) developed by
+This product includes software (Aether, Spice, Plexus Ciper and Sec Dispatcher) developed by
 Sonatype Inc. (http://www.sonatype.org/).
 
 This product includes software (NekoHTML) developed by

Modified: maven/maven-3/trunk/apache-maven/pom.xml
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/apache-maven/pom.xml?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/apache-maven/pom.xml (original)
+++ maven/maven-3/trunk/apache-maven/pom.xml Tue Aug 24 22:46:07 2010
@@ -59,6 +59,10 @@
       <groupId>org.apache.maven.wagon</groupId>
       <artifactId>wagon-file</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.sonatype.aether</groupId>
+      <artifactId>aether-connector-wagon</artifactId>
+    </dependency>
   </dependencies>
 
   <build>

Modified: maven/maven-3/trunk/build.xml
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/build.xml?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/build.xml (original)
+++ maven/maven-3/trunk/build.xml Tue Aug 24 22:46:07 2010
@@ -195,7 +195,7 @@ Do you want to continue?</input>
     <modello file="maven-model-builder/src/main/mdo/profiles.mdo" />
     <modello file="maven-settings/src/main/mdo/settings.mdo" version="1.1.0" />
     <modello file="maven-core/src/main/mdo/toolchains.mdo" />
-    <modello file="maven-repository-metadata/src/main/mdo/metadata.mdo" />
+    <modello file="maven-repository-metadata/src/main/mdo/metadata.mdo" version="1.1.0" />
     <modello file="maven-compat/src/main/mdo/profiles.mdo" />
     <modello file="maven-compat/src/main/mdo/paramdoc.mdo" />
   </target>

Propchange: maven/maven-3/trunk/maven-aether-provider/
------------------------------------------------------------------------------
    bugtraq:label = Enter issue ID:

Propchange: maven/maven-3/trunk/maven-aether-provider/
------------------------------------------------------------------------------
    bugtraq:message = Issue id: %BUGID%

Propchange: maven/maven-3/trunk/maven-aether-provider/
------------------------------------------------------------------------------
    bugtraq:number = false

Propchange: maven/maven-3/trunk/maven-aether-provider/
------------------------------------------------------------------------------
    bugtraq:url = http://jira.codehaus.org/browse/%BUGID%

Propchange: maven/maven-3/trunk/maven-aether-provider/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Aug 24 22:46:07 2010
@@ -0,0 +1,8 @@
+.settings
+target
+.classpath
+.project
+*.iml
+*.ipr
+*.iws
+bin

Added: maven/maven-3/trunk/maven-aether-provider/pom.xml
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-aether-provider/pom.xml?rev=988749&view=auto
==============================================================================
--- maven/maven-3/trunk/maven-aether-provider/pom.xml (added)
+++ maven/maven-3/trunk/maven-aether-provider/pom.xml Tue Aug 24 22:46:07 2010
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven</groupId>
+    <artifactId>maven</artifactId>
+    <version>3.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>maven-aether-provider</artifactId>
+
+  <name>Maven Aether Provider</name>
+  <description>
+    This module provides extensions to Aether for utilizing the Maven POM and Maven metadata.
+  </description>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-model-builder</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-repository-metadata</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.sonatype.aether</groupId>
+      <artifactId>aether-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.sonatype.aether</groupId>
+      <artifactId>aether-util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.sonatype.aether</groupId>
+      <artifactId>aether-impl</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-component-annotations</artifactId>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-component-metadata</artifactId>
+      </plugin>
+    </plugins>
+  </build>
+
+</project>

Propchange: maven/maven-3/trunk/maven-aether-provider/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/trunk/maven-aether-provider/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: maven/maven-3/trunk/maven-aether-provider/src/
------------------------------------------------------------------------------
    bugtraq:label = Enter issue ID:

Propchange: maven/maven-3/trunk/maven-aether-provider/src/
------------------------------------------------------------------------------
    bugtraq:message = Issue id: %BUGID%

Propchange: maven/maven-3/trunk/maven-aether-provider/src/
------------------------------------------------------------------------------
    bugtraq:number = false

Propchange: maven/maven-3/trunk/maven-aether-provider/src/
------------------------------------------------------------------------------
    bugtraq:url = http://jira.codehaus.org/browse/%BUGID%

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/
------------------------------------------------------------------------------
    bugtraq:label = Enter issue ID:

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/
------------------------------------------------------------------------------
    bugtraq:message = Issue id: %BUGID%

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/
------------------------------------------------------------------------------
    bugtraq:number = false

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/
------------------------------------------------------------------------------
    bugtraq:url = http://jira.codehaus.org/browse/%BUGID%

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/
------------------------------------------------------------------------------
    bugtraq:label = Enter issue ID:

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/
------------------------------------------------------------------------------
    bugtraq:message = Issue id: %BUGID%

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/
------------------------------------------------------------------------------
    bugtraq:number = false

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/
------------------------------------------------------------------------------
    bugtraq:url = http://jira.codehaus.org/browse/%BUGID%

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/
------------------------------------------------------------------------------
    bugtraq:label = Enter issue ID:

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/
------------------------------------------------------------------------------
    bugtraq:message = Issue id: %BUGID%

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/
------------------------------------------------------------------------------
    bugtraq:number = false

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/
------------------------------------------------------------------------------
    bugtraq:url = http://jira.codehaus.org/browse/%BUGID%

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/
------------------------------------------------------------------------------
    bugtraq:label = Enter issue ID:

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/
------------------------------------------------------------------------------
    bugtraq:message = Issue id: %BUGID%

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/
------------------------------------------------------------------------------
    bugtraq:number = false

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/
------------------------------------------------------------------------------
    bugtraq:url = http://jira.codehaus.org/browse/%BUGID%

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/
------------------------------------------------------------------------------
    bugtraq:label = Enter issue ID:

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/
------------------------------------------------------------------------------
    bugtraq:message = Issue id: %BUGID%

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/
------------------------------------------------------------------------------
    bugtraq:number = false

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/
------------------------------------------------------------------------------
    bugtraq:url = http://jira.codehaus.org/browse/%BUGID%

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/
------------------------------------------------------------------------------
    bugtraq:label = Enter issue ID:

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/
------------------------------------------------------------------------------
    bugtraq:message = Issue id: %BUGID%

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/
------------------------------------------------------------------------------
    bugtraq:number = false

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/
------------------------------------------------------------------------------
    bugtraq:url = http://jira.codehaus.org/browse/%BUGID%

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/
------------------------------------------------------------------------------
    bugtraq:label = Enter issue ID:

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/
------------------------------------------------------------------------------
    bugtraq:message = Issue id: %BUGID%

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/
------------------------------------------------------------------------------
    bugtraq:number = false

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/
------------------------------------------------------------------------------
    bugtraq:url = http://jira.codehaus.org/browse/%BUGID%

Added: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java?rev=988749&view=auto
==============================================================================
--- maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java (added)
+++ maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java Tue Aug 24 22:46:07 2010
@@ -0,0 +1,449 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
+import org.apache.maven.model.DependencyManagement;
+import org.apache.maven.model.DistributionManagement;
+import org.apache.maven.model.License;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.Relocation;
+import org.apache.maven.model.Repository;
+import org.apache.maven.model.building.DefaultModelBuilderFactory;
+import org.apache.maven.model.building.DefaultModelBuildingRequest;
+import org.apache.maven.model.building.FileModelSource;
+import org.apache.maven.model.building.ModelBuilder;
+import org.apache.maven.model.building.ModelBuildingException;
+import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblem;
+import org.apache.maven.model.resolution.UnresolvableModelException;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.sonatype.aether.RepositoryException;
+import org.sonatype.aether.RepositoryListener;
+import org.sonatype.aether.RepositorySystemSession;
+import org.sonatype.aether.artifact.Artifact;
+import org.sonatype.aether.artifact.ArtifactType;
+import org.sonatype.aether.artifact.ArtifactTypeRegistry;
+import org.sonatype.aether.graph.Dependency;
+import org.sonatype.aether.graph.Exclusion;
+import org.sonatype.aether.impl.ArtifactDescriptorReader;
+import org.sonatype.aether.impl.ArtifactResolver;
+import org.sonatype.aether.impl.RemoteRepositoryManager;
+import org.sonatype.aether.impl.VersionResolver;
+import org.sonatype.aether.transfer.ArtifactNotFoundException;
+import org.sonatype.aether.util.artifact.ArtifactProperties;
+import org.sonatype.aether.util.artifact.DefaultArtifact;
+import org.sonatype.aether.util.artifact.DefaultArtifactType;
+import org.sonatype.aether.util.artifact.SubArtifact;
+import org.sonatype.aether.util.listener.DefaultRepositoryEvent;
+import org.sonatype.aether.repository.RemoteRepository;
+import org.sonatype.aether.repository.RepositoryPolicy;
+import org.sonatype.aether.repository.WorkspaceRepository;
+import org.sonatype.aether.resolution.ArtifactDescriptorException;
+import org.sonatype.aether.resolution.ArtifactDescriptorRequest;
+import org.sonatype.aether.resolution.ArtifactDescriptorResult;
+import org.sonatype.aether.resolution.ArtifactRequest;
+import org.sonatype.aether.resolution.ArtifactResolutionException;
+import org.sonatype.aether.resolution.ArtifactResult;
+import org.sonatype.aether.resolution.VersionRequest;
+import org.sonatype.aether.resolution.VersionResolutionException;
+import org.sonatype.aether.spi.locator.Service;
+import org.sonatype.aether.spi.locator.ServiceLocator;
+import org.sonatype.aether.spi.log.Logger;
+import org.sonatype.aether.spi.log.NullLogger;
+
+/**
+ * @author Benjamin Bentmann
+ */
+@Component( role = ArtifactDescriptorReader.class )
+public class DefaultArtifactDescriptorReader
+    implements ArtifactDescriptorReader, Service
+{
+
+    @Requirement
+    private Logger logger = NullLogger.INSTANCE;
+
+    @Requirement
+    private RemoteRepositoryManager remoteRepositoryManager;
+
+    @Requirement
+    private VersionResolver versionResolver;
+
+    @Requirement
+    private ArtifactResolver artifactResolver;
+
+    @Requirement
+    private ModelBuilder modelBuilder;
+
+    public void initService( ServiceLocator locator )
+    {
+        setLogger( locator.getService( Logger.class ) );
+        setRemoteRepositoryManager( locator.getService( RemoteRepositoryManager.class ) );
+        setVersionResolver( locator.getService( VersionResolver.class ) );
+        setArtifactResolver( locator.getService( ArtifactResolver.class ) );
+        modelBuilder = locator.getService( ModelBuilder.class );
+        if ( modelBuilder == null )
+        {
+            setModelBuilder( new DefaultModelBuilderFactory().newInstance() );
+        }
+    }
+
+    public DefaultArtifactDescriptorReader setLogger( Logger logger )
+    {
+        this.logger = ( logger != null ) ? logger : NullLogger.INSTANCE;
+        return this;
+    }
+
+    public DefaultArtifactDescriptorReader setRemoteRepositoryManager( RemoteRepositoryManager remoteRepositoryManager )
+    {
+        if ( remoteRepositoryManager == null )
+        {
+            throw new IllegalArgumentException( "remote repository manager has not been specified" );
+        }
+        this.remoteRepositoryManager = remoteRepositoryManager;
+        return this;
+    }
+
+    public DefaultArtifactDescriptorReader setVersionResolver( VersionResolver versionResolver )
+    {
+        if ( versionResolver == null )
+        {
+            throw new IllegalArgumentException( "version resolver has not been specified" );
+        }
+        this.versionResolver = versionResolver;
+        return this;
+    }
+
+    public DefaultArtifactDescriptorReader setArtifactResolver( ArtifactResolver artifactResolver )
+    {
+        if ( artifactResolver == null )
+        {
+            throw new IllegalArgumentException( "artifact resolver has not been specified" );
+        }
+        this.artifactResolver = artifactResolver;
+        return this;
+    }
+
+    public DefaultArtifactDescriptorReader setModelBuilder( ModelBuilder modelBuilder )
+    {
+        if ( modelBuilder == null )
+        {
+            throw new IllegalArgumentException( "model builder has not been specified" );
+        }
+        this.modelBuilder = modelBuilder;
+        return this;
+    }
+
+    public ArtifactDescriptorResult readArtifactDescriptor( RepositorySystemSession session,
+                                                            ArtifactDescriptorRequest request )
+        throws ArtifactDescriptorException
+    {
+        ArtifactDescriptorResult result = new ArtifactDescriptorResult( request );
+
+        Model model = loadPom( session, request, result );
+
+        if ( model != null )
+        {
+            ArtifactTypeRegistry stereotypes = session.getArtifactTypeRegistry();
+
+            for ( Repository r : model.getRepositories() )
+            {
+                result.addRepository( convert( r ) );
+            }
+
+            for ( org.apache.maven.model.Dependency dependency : model.getDependencies() )
+            {
+                result.addDependency( convert( dependency, stereotypes ) );
+            }
+
+            DependencyManagement mngt = model.getDependencyManagement();
+            if ( mngt != null )
+            {
+                for ( org.apache.maven.model.Dependency dependency : mngt.getDependencies() )
+                {
+                    result.addManagedDependency( convert( dependency, stereotypes ) );
+                }
+            }
+
+            Map<String, Object> properties = new LinkedHashMap<String, Object>();
+
+            List<License> licenses = model.getLicenses();
+            properties.put( "license.count", Integer.valueOf( licenses.size() ) );
+            for ( int i = 0; i < licenses.size(); i++ )
+            {
+                License license = licenses.get( i );
+                properties.put( "license." + i + ".name", license.getName() );
+                properties.put( "license." + i + ".url", license.getUrl() );
+                properties.put( "license." + i + ".comments", license.getComments() );
+                properties.put( "license." + i + ".distribution", license.getDistribution() );
+            }
+
+            result.setProperties( properties );
+        }
+
+        return result;
+    }
+
+    private Model loadPom( RepositorySystemSession session, ArtifactDescriptorRequest request,
+                           ArtifactDescriptorResult result )
+        throws ArtifactDescriptorException
+    {
+        Set<String> visited = new LinkedHashSet<String>();
+        for ( Artifact artifact = request.getArtifact();; )
+        {
+            try
+            {
+                VersionRequest versionRequest =
+                    new VersionRequest( artifact, request.getRepositories(), request.getRequestContext() );
+                versionResolver.resolveVersion( session, versionRequest );
+            }
+            catch ( VersionResolutionException e )
+            {
+                result.addException( e );
+                throw new ArtifactDescriptorException( result );
+            }
+
+            if ( !visited.add( artifact.getGroupId() + ':' + artifact.getArtifactId() + ':' + artifact.getBaseVersion() ) )
+            {
+                RepositoryException exception =
+                    new RepositoryException( "Artifact relocations form a cycle: " + visited );
+                invalidDescriptor( session, artifact, exception );
+                if ( session.isIgnoreInvalidArtifactDescriptor() )
+                {
+                    return null;
+                }
+                result.addException( exception );
+                throw new ArtifactDescriptorException( result );
+            }
+
+            Artifact pomArtifact = artifact;
+            if ( pomArtifact.getClassifier().length() > 0 || !"pom".equals( pomArtifact.getExtension() ) )
+            {
+                pomArtifact = new SubArtifact( artifact, "", "pom" );
+            }
+
+            ArtifactResult resolveResult;
+            try
+            {
+                ArtifactRequest resolveRequest =
+                    new ArtifactRequest( pomArtifact, request.getRepositories(), request.getRequestContext() );
+                resolveResult = artifactResolver.resolveArtifact( session, resolveRequest );
+                pomArtifact = resolveResult.getArtifact();
+                result.setRepository( resolveResult.getRepository() );
+            }
+            catch ( ArtifactResolutionException e )
+            {
+                if ( e.getCause() instanceof ArtifactNotFoundException )
+                {
+                    missingDescriptor( session, artifact );
+                    if ( session.isIgnoreMissingArtifactDescriptor() )
+                    {
+                        return null;
+                    }
+                }
+                result.addException( e );
+                throw new ArtifactDescriptorException( result );
+            }
+
+            Model model;
+            try
+            {
+                ModelBuildingRequest modelRequest = new DefaultModelBuildingRequest();
+                modelRequest.setValidationLevel( ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL );
+                modelRequest.setProcessPlugins( false );
+                modelRequest.setTwoPhaseBuilding( false );
+                modelRequest.setSystemProperties( toProperties( session.getSystemProperties() ) );
+                modelRequest.setUserProperties( toProperties( session.getUserProperties() ) );
+                modelRequest.setModelCache( DefaultModelCache.newInstance( session ) );
+                modelRequest.setModelResolver( new DefaultModelResolver( session, request.getRequestContext(),
+                                                                         artifactResolver, remoteRepositoryManager,
+                                                                         request.getRepositories() ) );
+                if ( resolveResult.getRepository() instanceof WorkspaceRepository )
+                {
+                    modelRequest.setPomFile( pomArtifact.getFile() );
+                }
+                else
+                {
+                    modelRequest.setModelSource( new FileModelSource( pomArtifact.getFile() ) );
+                }
+
+                model = modelBuilder.build( modelRequest ).getEffectiveModel();
+            }
+            catch ( ModelBuildingException e )
+            {
+                for ( ModelProblem problem : e.getProblems() )
+                {
+                    if ( problem.getException() instanceof UnresolvableModelException )
+                    {
+                        result.addException( problem.getException() );
+                        throw new ArtifactDescriptorException( result );
+                    }
+                }
+                invalidDescriptor( session, artifact, e );
+                if ( session.isIgnoreInvalidArtifactDescriptor() )
+                {
+                    return null;
+                }
+                result.addException( e );
+                throw new ArtifactDescriptorException( result );
+            }
+
+            Relocation relocation = getRelocation( model );
+
+            if ( relocation != null )
+            {
+                result.addRelocation( artifact );
+                artifact =
+                    new RelocatedArtifact( artifact, relocation.getGroupId(), relocation.getArtifactId(),
+                                           relocation.getVersion() );
+                result.setArtifact( artifact );
+            }
+            else
+            {
+                return model;
+            }
+        }
+    }
+
+    private Properties toProperties( Map<String, String> map )
+    {
+        Properties props = new Properties();
+        if ( map != null )
+        {
+            props.putAll( map );
+        }
+        return props;
+    }
+
+    private Relocation getRelocation( Model model )
+    {
+        Relocation relocation = null;
+        DistributionManagement distMngt = model.getDistributionManagement();
+        if ( distMngt != null )
+        {
+            relocation = distMngt.getRelocation();
+        }
+        return relocation;
+    }
+
+    private Dependency convert( org.apache.maven.model.Dependency dependency, ArtifactTypeRegistry stereotypes )
+    {
+        ArtifactType stereotype = stereotypes.get( dependency.getType() );
+        if ( stereotype == null )
+        {
+            stereotype = new DefaultArtifactType( dependency.getType() );
+        }
+
+        boolean system = dependency.getSystemPath() != null && dependency.getSystemPath().length() > 0;
+
+        Map<String, String> props = null;
+        if ( system )
+        {
+            props = Collections.singletonMap( ArtifactProperties.LACKS_DESCRIPTOR, Boolean.TRUE.toString() );
+        }
+
+        Artifact artifact =
+            new DefaultArtifact( dependency.getGroupId(), dependency.getArtifactId(), dependency.getClassifier(), null,
+                                 dependency.getVersion(), props, stereotype );
+
+        if ( system )
+        {
+            artifact = artifact.setFile( new File( dependency.getSystemPath() ) );
+        }
+
+        List<Exclusion> exclusions = new ArrayList<Exclusion>( dependency.getExclusions().size() );
+        for ( org.apache.maven.model.Exclusion exclusion : dependency.getExclusions() )
+        {
+            exclusions.add( convert( exclusion ) );
+        }
+
+        Dependency result = new Dependency( artifact, dependency.getScope(), dependency.isOptional(), exclusions );
+
+        return result;
+    }
+
+    private Exclusion convert( org.apache.maven.model.Exclusion exclusion )
+    {
+        return new Exclusion( exclusion.getGroupId(), exclusion.getArtifactId(), "*", "*" );
+    }
+
+    static RemoteRepository convert( Repository repository )
+    {
+        RemoteRepository result =
+            new RemoteRepository( repository.getId(), repository.getLayout(), repository.getUrl() );
+        result.setPolicy( true, convert( repository.getSnapshots() ) );
+        result.setPolicy( false, convert( repository.getReleases() ) );
+        return result;
+    }
+
+    private static RepositoryPolicy convert( org.apache.maven.model.RepositoryPolicy policy )
+    {
+        boolean enabled = true;
+        String checksums = RepositoryPolicy.CHECKSUM_POLICY_WARN;
+        String updates = RepositoryPolicy.UPDATE_POLICY_DAILY;
+
+        if ( policy != null )
+        {
+            enabled = policy.isEnabled();
+            if ( policy.getUpdatePolicy() != null )
+            {
+                updates = policy.getUpdatePolicy();
+            }
+            if ( policy.getChecksumPolicy() != null )
+            {
+                checksums = policy.getChecksumPolicy();
+            }
+        }
+
+        return new RepositoryPolicy( enabled, updates, checksums );
+    }
+
+    private void missingDescriptor( RepositorySystemSession session, Artifact artifact )
+    {
+        RepositoryListener listener = session.getRepositoryListener();
+        if ( listener != null )
+        {
+            DefaultRepositoryEvent event = new DefaultRepositoryEvent( session, artifact );
+            listener.artifactDescriptorMissing( event );
+        }
+    }
+
+    private void invalidDescriptor( RepositorySystemSession session, Artifact artifact, Exception exception )
+    {
+        RepositoryListener listener = session.getRepositoryListener();
+        if ( listener != null )
+        {
+            DefaultRepositoryEvent event = new DefaultRepositoryEvent( session, artifact );
+            event.setException( exception );
+            listener.artifactDescriptorInvalid( event );
+        }
+    }
+
+}

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelCache.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelCache.java?rev=988749&view=auto
==============================================================================
--- maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelCache.java (added)
+++ maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelCache.java Tue Aug 24 22:46:07 2010
@@ -0,0 +1,119 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.model.building.ModelCache;
+import org.sonatype.aether.RepositoryCache;
+import org.sonatype.aether.RepositorySystemSession;
+
+/**
+ * A model builder cache backed by the repository system cache.
+ * 
+ * @author Benjamin Bentmann
+ */
+class DefaultModelCache
+    implements ModelCache
+{
+
+    private final RepositorySystemSession session;
+
+    private final RepositoryCache cache;
+
+    public static ModelCache newInstance( RepositorySystemSession session )
+    {
+        if ( session.getCache() == null )
+        {
+            return null;
+        }
+        else
+        {
+            return new DefaultModelCache( session );
+        }
+    }
+
+    private DefaultModelCache( RepositorySystemSession session )
+    {
+        this.session = session;
+        this.cache = session.getCache();
+    }
+
+    public Object get( String groupId, String artifactId, String version, String tag )
+    {
+        return cache.get( session, new Key( groupId, artifactId, version, tag ) );
+    }
+
+    public void put( String groupId, String artifactId, String version, String tag, Object data )
+    {
+        cache.put( session, new Key( groupId, artifactId, version, tag ), data );
+    }
+
+    static class Key
+    {
+
+        private final String groupId;
+
+        private final String artifactId;
+
+        private final String version;
+
+        private final String tag;
+
+        private final int hash;
+
+        public Key( String groupId, String artifactId, String version, String tag )
+        {
+            this.groupId = groupId;
+            this.artifactId = artifactId;
+            this.version = version;
+            this.tag = tag;
+
+            int h = 17;
+            h = h * 31 + this.groupId.hashCode();
+            h = h * 31 + this.artifactId.hashCode();
+            h = h * 31 + this.version.hashCode();
+            h = h * 31 + this.tag.hashCode();
+            hash = h;
+        }
+
+        @Override
+        public boolean equals( Object obj )
+        {
+            if ( this == obj )
+            {
+                return true;
+            }
+            if ( null == obj || !getClass().equals( obj.getClass() ) )
+            {
+                return false;
+            }
+
+            Key that = (Key) obj;
+            return artifactId.equals( that.artifactId ) && groupId.equals( that.groupId )
+                && version.equals( that.version ) && tag.equals( that.tag );
+        }
+
+        @Override
+        public int hashCode()
+        {
+            return hash;
+        }
+
+    }
+}

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelCache.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelCache.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java?rev=988749&view=auto
==============================================================================
--- maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java (added)
+++ maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java Tue Aug 24 22:46:07 2010
@@ -0,0 +1,128 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.File;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.maven.model.Repository;
+import org.apache.maven.model.building.FileModelSource;
+import org.apache.maven.model.building.ModelSource;
+import org.apache.maven.model.resolution.InvalidRepositoryException;
+import org.apache.maven.model.resolution.ModelResolver;
+import org.apache.maven.model.resolution.UnresolvableModelException;
+import org.sonatype.aether.RepositorySystemSession;
+import org.sonatype.aether.artifact.Artifact;
+import org.sonatype.aether.impl.ArtifactResolver;
+import org.sonatype.aether.impl.RemoteRepositoryManager;
+import org.sonatype.aether.repository.RemoteRepository;
+import org.sonatype.aether.resolution.ArtifactRequest;
+import org.sonatype.aether.resolution.ArtifactResolutionException;
+import org.sonatype.aether.util.artifact.DefaultArtifact;
+
+/**
+ * A model resolver to assist building of dependency POMs. This resolver gives priority to those repositories that have
+ * been initially specified and repositories discovered in dependency POMs are recessively merged into the search chain.
+ * 
+ * @author Benjamin Bentmann
+ * @see DefaultArtifactDescriptorReader
+ */
+class DefaultModelResolver
+    implements ModelResolver
+{
+
+    private final RepositorySystemSession session;
+
+    private final String context;
+
+    private List<RemoteRepository> repositories;
+
+    private final ArtifactResolver resolver;
+
+    private final RemoteRepositoryManager remoteRepositoryManager;
+
+    private final Set<String> repositoryIds;
+
+    public DefaultModelResolver( RepositorySystemSession session, String context, ArtifactResolver resolver,
+                                 RemoteRepositoryManager remoteRepositoryManager, List<RemoteRepository> repositories )
+    {
+        this.session = session;
+        this.context = context;
+        this.resolver = resolver;
+        this.remoteRepositoryManager = remoteRepositoryManager;
+        this.repositories = repositories;
+        this.repositoryIds = new HashSet<String>();
+    }
+
+    private DefaultModelResolver( DefaultModelResolver original )
+    {
+        this.session = original.session;
+        this.context = original.context;
+        this.resolver = original.resolver;
+        this.remoteRepositoryManager = original.remoteRepositoryManager;
+        this.repositories = original.repositories;
+        this.repositoryIds = new HashSet<String>( original.repositoryIds );
+    }
+
+    public void addRepository( Repository repository )
+        throws InvalidRepositoryException
+    {
+        if ( !repositoryIds.add( repository.getId() ) )
+        {
+            return;
+        }
+
+        List<RemoteRepository> newRepositories =
+            Collections.singletonList( DefaultArtifactDescriptorReader.convert( repository ) );
+
+        this.repositories =
+            remoteRepositoryManager.aggregateRepositories( session, repositories, newRepositories, true );
+    }
+
+    public ModelResolver newCopy()
+    {
+        return new DefaultModelResolver( this );
+    }
+
+    public ModelSource resolveModel( String groupId, String artifactId, String version )
+        throws UnresolvableModelException
+    {
+        Artifact pomArtifact = new DefaultArtifact( groupId, artifactId, "", "pom", version );
+
+        try
+        {
+            ArtifactRequest request = new ArtifactRequest( pomArtifact, repositories, context );
+            pomArtifact = resolver.resolveArtifact( session, request ).getArtifact();
+        }
+        catch ( ArtifactResolutionException e )
+        {
+            throw new UnresolvableModelException( "Failed to resolve POM for " + groupId + ":" + artifactId + ":"
+                + version + " due to " + e.getMessage(), groupId, artifactId, version, e );
+        }
+
+        File pomFile = pomArtifact.getFile();
+
+        return new FileModelSource( pomFile );
+    }
+
+}

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultServiceLocator.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultServiceLocator.java?rev=988749&view=auto
==============================================================================
--- maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultServiceLocator.java (added)
+++ maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultServiceLocator.java Tue Aug 24 22:46:07 2010
@@ -0,0 +1,51 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.sonatype.aether.impl.ArtifactDescriptorReader;
+import org.sonatype.aether.impl.MetadataGeneratorFactory;
+import org.sonatype.aether.impl.VersionRangeResolver;
+import org.sonatype.aether.impl.VersionResolver;
+
+/**
+ * A simple service locator that is already setup with all components from this library. To acquire a complete
+ * repository system, clients need to add some repository connectors for remote transfers. <em>Note:</em> This component
+ * is meant to assists those clients that employ the repository systems outside of an IoC container, Maven plugins
+ * should instead always use regular dependency injection to acquire the repository system.
+ * 
+ * @author Benjamin Bentmann
+ */
+public class DefaultServiceLocator
+    extends org.sonatype.aether.impl.internal.DefaultServiceLocator
+{
+
+    /**
+     * Creates a new service locator that already knows about all service implementations included this library.
+     */
+    public DefaultServiceLocator()
+    {
+        addService( ArtifactDescriptorReader.class, DefaultArtifactDescriptorReader.class );
+        addService( VersionResolver.class, DefaultVersionResolver.class );
+        addService( VersionRangeResolver.class, DefaultVersionRangeResolver.class );
+        addService( MetadataGeneratorFactory.class, SnapshotMetadataGeneratorFactory.class );
+        addService( MetadataGeneratorFactory.class, VersionsMetadataGeneratorFactory.class );
+    }
+
+}

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultServiceLocator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultServiceLocator.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java?rev=988749&view=auto
==============================================================================
--- maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java (added)
+++ maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java Tue Aug 24 22:46:07 2010
@@ -0,0 +1,269 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.maven.artifact.repository.metadata.Versioning;
+import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.util.IOUtil;
+import org.sonatype.aether.RepositoryListener;
+import org.sonatype.aether.RepositorySystemSession;
+import org.sonatype.aether.util.listener.DefaultRepositoryEvent;
+import org.sonatype.aether.util.metadata.DefaultMetadata;
+import org.sonatype.aether.util.version.GenericVersionScheme;
+import org.sonatype.aether.version.InvalidVersionSpecificationException;
+import org.sonatype.aether.version.Version;
+import org.sonatype.aether.version.VersionConstraint;
+import org.sonatype.aether.version.VersionRange;
+import org.sonatype.aether.version.VersionScheme;
+import org.sonatype.aether.impl.MetadataResolver;
+import org.sonatype.aether.impl.VersionRangeResolver;
+import org.sonatype.aether.metadata.Metadata;
+import org.sonatype.aether.repository.ArtifactRepository;
+import org.sonatype.aether.repository.LocalRepositoryManager;
+import org.sonatype.aether.repository.RemoteRepository;
+import org.sonatype.aether.repository.WorkspaceReader;
+import org.sonatype.aether.resolution.MetadataRequest;
+import org.sonatype.aether.resolution.MetadataResult;
+import org.sonatype.aether.resolution.VersionRangeRequest;
+import org.sonatype.aether.resolution.VersionRangeResolutionException;
+import org.sonatype.aether.resolution.VersionRangeResult;
+import org.sonatype.aether.spi.locator.Service;
+import org.sonatype.aether.spi.locator.ServiceLocator;
+import org.sonatype.aether.spi.log.Logger;
+import org.sonatype.aether.spi.log.NullLogger;
+
+/**
+ * @author Benjamin Bentmann
+ */
+@Component( role = VersionRangeResolver.class )
+public class DefaultVersionRangeResolver
+    implements VersionRangeResolver, Service
+{
+
+    private static final String MAVEN_METADATA_XML = "maven-metadata.xml";
+
+    @Requirement
+    private Logger logger = NullLogger.INSTANCE;
+
+    @Requirement
+    private MetadataResolver metadataResolver;
+
+    public void initService( ServiceLocator locator )
+    {
+        setLogger( locator.getService( Logger.class ) );
+        setMetadataResolver( locator.getService( MetadataResolver.class ) );
+    }
+
+    public DefaultVersionRangeResolver setLogger( Logger logger )
+    {
+        this.logger = ( logger != null ) ? logger : NullLogger.INSTANCE;
+        return this;
+    }
+
+    public DefaultVersionRangeResolver setMetadataResolver( MetadataResolver metadataResolver )
+    {
+        if ( metadataResolver == null )
+        {
+            throw new IllegalArgumentException( "metadata resolver has not been specified" );
+        }
+        this.metadataResolver = metadataResolver;
+        return this;
+    }
+
+    public VersionRangeResult resolveVersionRange( RepositorySystemSession session, VersionRangeRequest request )
+        throws VersionRangeResolutionException
+    {
+        VersionRangeResult result = new VersionRangeResult( request );
+
+        VersionScheme versionScheme = new GenericVersionScheme();
+
+        VersionConstraint versionConstraint;
+        try
+        {
+            versionConstraint = versionScheme.parseVersionConstraint( request.getArtifact().getVersion() );
+        }
+        catch ( InvalidVersionSpecificationException e )
+        {
+            result.addException( e );
+            throw new VersionRangeResolutionException( result );
+        }
+
+        result.setVersionConstraint( versionConstraint );
+
+        if ( versionConstraint.getRanges().isEmpty() )
+        {
+            result.addVersion( versionConstraint.getVersion() );
+        }
+        else
+        {
+            Map<String, ArtifactRepository> versionIndex =
+                getVersions( session, result, request, getNature( session, versionConstraint.getRanges() ) );
+
+            List<Version> versions = new ArrayList<Version>();
+            for ( Map.Entry<String, ArtifactRepository> v : versionIndex.entrySet() )
+            {
+                try
+                {
+                    Version ver = versionScheme.parseVersion( v.getKey() );
+                    if ( versionConstraint.containsVersion( ver ) )
+                    {
+                        versions.add( ver );
+                        result.setRepository( ver, v.getValue() );
+                    }
+                }
+                catch ( InvalidVersionSpecificationException e )
+                {
+                    result.addException( e );
+                }
+            }
+
+            Collections.sort( versions );
+            result.setVersions( versions );
+        }
+
+        return result;
+    }
+
+    private Map<String, ArtifactRepository> getVersions( RepositorySystemSession session, VersionRangeResult result,
+                                                         VersionRangeRequest request, Metadata.Nature nature )
+    {
+        Map<String, ArtifactRepository> versionIndex = new HashMap<String, ArtifactRepository>();
+
+        Metadata metadata =
+            new DefaultMetadata( request.getArtifact().getGroupId(), request.getArtifact().getArtifactId(),
+                                 MAVEN_METADATA_XML, nature );
+
+        List<MetadataRequest> metadataRequests = new ArrayList<MetadataRequest>( request.getRepositories().size() );
+        for ( RemoteRepository repository : request.getRepositories() )
+        {
+            MetadataRequest metadataRequest = new MetadataRequest( metadata, repository, request.getRequestContext() );
+            metadataRequest.setDeleteLocalCopyIfMissing( true );
+            metadataRequests.add( metadataRequest );
+        }
+        List<MetadataResult> metadataResults = metadataResolver.resolveMetadata( session, metadataRequests );
+
+        WorkspaceReader workspace = session.getWorkspaceReader();
+        if ( workspace != null )
+        {
+            List<String> versions = workspace.findVersions( request.getArtifact() );
+            for ( String version : versions )
+            {
+                versionIndex.put( version, workspace.getRepository() );
+            }
+        }
+
+        LocalRepositoryManager lrm = session.getLocalRepositoryManager();
+        File localMetadataFile = new File( lrm.getRepository().getBasedir(), lrm.getPathForLocalMetadata( metadata ) );
+        if ( localMetadataFile.isFile() )
+        {
+            metadata = metadata.setFile( localMetadataFile );
+            Versioning versioning = readVersions( session, metadata, result );
+            for ( String version : versioning.getVersions() )
+            {
+                if ( !versionIndex.containsKey( version ) )
+                {
+                    versionIndex.put( version, lrm.getRepository() );
+                }
+            }
+        }
+
+        for ( MetadataResult metadataResult : metadataResults )
+        {
+            result.addException( metadataResult.getException() );
+            Versioning versioning = readVersions( session, metadataResult.getMetadata(), result );
+            for ( String version : versioning.getVersions() )
+            {
+                if ( !versionIndex.containsKey( version ) )
+                {
+                    versionIndex.put( version, metadataResult.getRequest().getRepository() );
+                }
+            }
+        }
+
+        return versionIndex;
+    }
+
+    private Metadata.Nature getNature( RepositorySystemSession session, Collection<VersionRange> ranges )
+    {
+        for ( VersionRange range : ranges )
+        {
+            if ( range.acceptsSnapshots() )
+            {
+                return Metadata.Nature.RELEASE_OR_SNAPSHOT;
+            }
+        }
+        return Metadata.Nature.RELEASE;
+    }
+
+    private Versioning readVersions( RepositorySystemSession session, Metadata metadata, VersionRangeResult result )
+    {
+        Versioning versioning = null;
+
+        FileInputStream fis = null;
+        try
+        {
+            if ( metadata != null && metadata.getFile() != null )
+            {
+                fis = new FileInputStream( metadata.getFile() );
+                org.apache.maven.artifact.repository.metadata.Metadata m = new MetadataXpp3Reader().read( fis, false );
+                versioning = m.getVersioning();
+            }
+        }
+        catch ( FileNotFoundException e )
+        {
+            // tolerable
+        }
+        catch ( Exception e )
+        {
+            invalidMetadata( session, metadata, e );
+            result.addException( e );
+        }
+        finally
+        {
+            IOUtil.close( fis );
+        }
+
+        return ( versioning != null ) ? versioning : new Versioning();
+    }
+
+    private void invalidMetadata( RepositorySystemSession session, Metadata metadata, Exception exception )
+    {
+        RepositoryListener listener = session.getRepositoryListener();
+        if ( listener != null )
+        {
+            DefaultRepositoryEvent event = new DefaultRepositoryEvent( session, metadata );
+            event.setException( exception );
+            listener.metadataInvalid( event );
+        }
+    }
+
+}

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision