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 [4/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/...
Modified: maven/maven-3/trunk/maven-compat/src/test/java/org/apache/maven/repository/LegacyRepositorySystemTest.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-compat/src/test/java/org/apache/maven/repository/LegacyRepositorySystemTest.java?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-compat/src/test/java/org/apache/maven/repository/LegacyRepositorySystemTest.java (original)
+++ maven/maven-3/trunk/maven-compat/src/test/java/org/apache/maven/repository/LegacyRepositorySystemTest.java Tue Aug 24 22:46:07 2010
@@ -24,11 +24,17 @@ import org.apache.maven.artifact.reposit
import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import org.apache.maven.artifact.resolver.ResolutionErrorHandler;
+import org.apache.maven.execution.DefaultMavenExecutionRequest;
+import org.apache.maven.execution.DefaultMavenExecutionResult;
+import org.apache.maven.execution.MavenSession;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.Repository;
import org.apache.maven.model.RepositoryPolicy;
+import org.apache.maven.plugin.LegacySupport;
import org.apache.maven.repository.RepositorySystem;
import org.codehaus.plexus.PlexusTestCase;
+import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager;
+import org.sonatype.aether.util.DefaultRepositorySystemSession;
/**
* Tests {@link LegacyRepositorySystem}.
@@ -107,6 +113,12 @@ public class LegacyRepositorySystemTest
.setRemoteRepositories( getRemoteRepositories() )
.setLocalRepository( getLocalRepository() );
+ DefaultRepositorySystemSession session = new DefaultRepositorySystemSession();
+ session.setLocalRepositoryManager( new SimpleLocalRepositoryManager( request.getLocalRepository().getBasedir() ) );
+ LegacySupport legacySupport = lookup( LegacySupport.class );
+ legacySupport.setSession( new MavenSession( getContainer(), session, new DefaultMavenExecutionRequest(),
+ new DefaultMavenExecutionResult() ) );
+
ArtifactResolutionResult result = repositorySystem.resolve( request );
resolutionErrorHandler.throwErrors( request, result );
assertEquals( 2, result.getArtifacts().size() );
Modified: maven/maven-3/trunk/maven-compat/src/test/resources/org/apache/maven/artifact/resolver/ArtifactResolverTest.xml
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-compat/src/test/resources/org/apache/maven/artifact/resolver/ArtifactResolverTest.xml?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-compat/src/test/resources/org/apache/maven/artifact/resolver/ArtifactResolverTest.xml (original)
+++ maven/maven-3/trunk/maven-compat/src/test/resources/org/apache/maven/artifact/resolver/ArtifactResolverTest.xml Tue Aug 24 22:46:07 2010
@@ -31,16 +31,6 @@ under the License.
<field-name>logger</field-name>
</requirement>
<requirement>
- <role>org.apache.maven.repository.legacy.WagonManager</role>
- <role-hint>default</role-hint>
- <field-name>wagonManager</field-name>
- </requirement>
- <requirement>
- <role>org.apache.maven.repository.legacy.resolver.transform.ArtifactTransformationManager</role>
- <role-hint>default</role-hint>
- <field-name>transformationManager</field-name>
- </requirement>
- <requirement>
<role>org.apache.maven.artifact.factory.ArtifactFactory</role>
<role-hint>default</role-hint>
<field-name>artifactFactory</field-name>
@@ -66,15 +56,14 @@ under the License.
<field-name>container</field-name>
</requirement>
<requirement>
- <role>org.apache.maven.repository.LocalRepositoryMaintainer</role>
+ <role>org.apache.maven.plugin.LegacySupport</role>
<role-hint>default</role-hint>
- <field-name>localRepositoryMaintainer</field-name>
- <optional>true</optional>
+ <field-name>legacySupport</field-name>
</requirement>
<requirement>
- <role>org.apache.maven.plugin.LegacySupport</role>
+ <role>org.sonatype.aether.RepositorySystem</role>
<role-hint>default</role-hint>
- <field-name>legacySupport</field-name>
+ <field-name>repoSystem</field-name>
</requirement>
</requirements>
</component>
Modified: maven/maven-3/trunk/maven-compat/src/test/resources/org/apache/maven/project/AbstractMavenProjectTestCase.xml
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-compat/src/test/resources/org/apache/maven/project/AbstractMavenProjectTestCase.xml?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-compat/src/test/resources/org/apache/maven/project/AbstractMavenProjectTestCase.xml (original)
+++ maven/maven-3/trunk/maven-compat/src/test/resources/org/apache/maven/project/AbstractMavenProjectTestCase.xml Tue Aug 24 22:46:07 2010
@@ -2,8 +2,8 @@
<plexus>
<components>
<component>
- <role>org.apache.maven.lifecycle.LifecycleExecutor</role>
- <implementation>org.apache.maven.project.EmptyLifecycleExecutor</implementation>
+ <role>org.apache.maven.lifecycle.LifeCyclePluginAnalyzer</role>
+ <implementation>org.apache.maven.project.EmptyLifecyclePluginAnalyzer</implementation>
</component>
</components>
</plexus>
Modified: maven/maven-3/trunk/maven-core/pom.xml
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/pom.xml?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/pom.xml (original)
+++ maven/maven-3/trunk/maven-core/pom.xml Tue Aug 24 22:46:07 2010
@@ -53,6 +53,15 @@
<groupId>org.apache.maven</groupId>
<artifactId>maven-model-builder</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-aether-provider</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.sonatype.aether</groupId>
+ <artifactId>aether-impl</artifactId>
+ <version>${aetherVersion}</version>
+ </dependency>
<!-- Plexus -->
<dependency>
<groupId>org.sonatype.spice</groupId>
Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/ArtifactFilterManager.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/ArtifactFilterManager.java?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/ArtifactFilterManager.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/ArtifactFilterManager.java Tue Aug 24 22:46:07 2010
@@ -19,6 +19,8 @@ package org.apache.maven;
* under the License.
*/
+import java.util.Set;
+
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
public interface ArtifactFilterManager
@@ -39,4 +41,7 @@ public interface ArtifactFilterManager
* @param artifactId
*/
void excludeArtifact( String artifactId );
-}
\ No newline at end of file
+
+ Set<String> getCoreArtifactExcludes();
+
+}
Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultArtifactFilterManager.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultArtifactFilterManager.java?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultArtifactFilterManager.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultArtifactFilterManager.java Tue Aug 24 22:46:07 2010
@@ -59,6 +59,7 @@ public class DefaultArtifactFilterManage
artifacts.add( "plexus:plexus-container-default" );
artifacts.add( "org.sonatype.spice:spice-inject-plexus" );
artifacts.add( "org.apache.maven:maven-artifact" );
+ artifacts.add( "org.apache.maven:maven-aether-provider" );
artifacts.add( "org.apache.maven:maven-artifact-manager" );
artifacts.add( "org.apache.maven:maven-compat" );
artifacts.add( "org.apache.maven:maven-core" );
@@ -78,6 +79,8 @@ public class DefaultArtifactFilterManage
artifacts.add( "org.apache.maven:maven-settings-builder" );
artifacts.add( "org.apache.maven:maven-toolchain" );
artifacts.add( "org.apache.maven.wagon:wagon-provider-api" );
+ artifacts.add( "org.sonatype.aether:aether-api" );
+ artifacts.add( "org.sonatype.aether:aether-spi" );
/*
* NOTE: Don't exclude the wagons or any of their dependencies (apart from the wagon API). This would otherwise
@@ -120,18 +123,11 @@ public class DefaultArtifactFilterManage
/**
* Returns the artifact filter for the standard core artifacts.
*
- * @see org.apache.maven.ArtifactFilterManager#getExtensionArtifactFilter()
+ * @see org.apache.maven.ArtifactFilterManager#getExtensionDependencyFilter()
*/
public ArtifactFilter getCoreArtifactFilter()
{
- Set<String> excludes = new LinkedHashSet<String>( DEFAULT_EXCLUSIONS );
-
- for ( ArtifactFilterManagerDelegate delegate : getDelegates() )
- {
- delegate.addCoreExcludes( excludes );
- }
-
- return new ExclusionSetFilter( excludes );
+ return new ExclusionSetFilter( getCoreArtifactExcludes() );
}
private List<ArtifactFilterManagerDelegate> getDelegates()
@@ -154,4 +150,16 @@ public class DefaultArtifactFilterManage
excludedArtifacts.add( artifactId );
}
+ public Set<String> getCoreArtifactExcludes()
+ {
+ Set<String> excludes = new LinkedHashSet<String>( DEFAULT_EXCLUSIONS );
+
+ for ( ArtifactFilterManagerDelegate delegate : getDelegates() )
+ {
+ delegate.addCoreExcludes( excludes );
+ }
+
+ return excludes;
+ }
+
}
Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java Tue Aug 24 22:46:07 2010
@@ -1,22 +1,18 @@
package org.apache.maven;
/*
- * 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.
+ * 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;
@@ -33,6 +29,7 @@ import java.util.List;
import java.util.Map;
import org.apache.maven.artifact.ArtifactUtils;
+import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
import org.apache.maven.execution.DefaultMavenExecutionResult;
import org.apache.maven.execution.ExecutionEvent;
import org.apache.maven.execution.MavenExecutionRequest;
@@ -47,6 +44,7 @@ import org.apache.maven.model.building.M
import org.apache.maven.model.building.ModelProblemUtils;
import org.apache.maven.model.building.ModelSource;
import org.apache.maven.model.building.UrlModelSource;
+import org.apache.maven.plugin.LegacySupport;
import org.apache.maven.project.DuplicateProjectException;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.ProjectBuilder;
@@ -56,6 +54,13 @@ import org.apache.maven.project.ProjectB
import org.apache.maven.project.ProjectSorter;
import org.apache.maven.repository.DelegatingLocalArtifactRepository;
import org.apache.maven.repository.LocalRepositoryNotAccessibleException;
+import org.apache.maven.settings.Mirror;
+import org.apache.maven.settings.Proxy;
+import org.apache.maven.settings.Server;
+import org.apache.maven.settings.building.SettingsProblem;
+import org.apache.maven.settings.crypto.DefaultSettingsDecryptionRequest;
+import org.apache.maven.settings.crypto.SettingsDecrypter;
+import org.apache.maven.settings.crypto.SettingsDecryptionResult;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
@@ -63,11 +68,39 @@ import org.codehaus.plexus.component.rep
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.dag.CycleDetectedException;
+import org.sonatype.aether.RepositoryEvent;
+import org.sonatype.aether.RepositorySystem;
+import org.sonatype.aether.RepositorySystemSession;
+import org.sonatype.aether.collection.DependencyGraphTransformer;
+import org.sonatype.aether.collection.DependencyManager;
+import org.sonatype.aether.collection.DependencySelector;
+import org.sonatype.aether.collection.DependencyTraverser;
+import org.sonatype.aether.repository.Authentication;
+import org.sonatype.aether.repository.LocalRepository;
+import org.sonatype.aether.repository.RepositoryPolicy;
+import org.sonatype.aether.repository.WorkspaceReader;
+import org.sonatype.aether.util.DefaultRepositorySystemSession;
+import org.sonatype.aether.util.graph.manager.ClassicDependencyManager;
+import org.sonatype.aether.util.graph.selector.AndDependencySelector;
+import org.sonatype.aether.util.graph.selector.ExclusionDependencySelector;
+import org.sonatype.aether.util.graph.selector.OptionalDependencySelector;
+import org.sonatype.aether.util.graph.selector.ScopeDependencySelector;
+import org.sonatype.aether.util.graph.transformer.ChainedDependencyGraphTransformer;
+import org.sonatype.aether.util.graph.transformer.NearestVersionConflictResolver;
+import org.sonatype.aether.util.graph.transformer.ConflictMarker;
+import org.sonatype.aether.util.graph.transformer.JavaDependencyContextRefiner;
+import org.sonatype.aether.util.graph.transformer.JavaEffectiveScopeCalculator;
+import org.sonatype.aether.util.graph.traverser.FatArtifactTraverser;
+import org.sonatype.aether.util.listener.AbstractRepositoryListener;
+import org.sonatype.aether.util.repository.ChainedWorkspaceReader;
+import org.sonatype.aether.util.repository.DefaultAuthenticationSelector;
+import org.sonatype.aether.util.repository.DefaultMirrorSelector;
+import org.sonatype.aether.util.repository.DefaultProxySelector;
/**
* @author Jason van Zyl
*/
-@Component( role = Maven.class )
+@Component(role = Maven.class)
public class DefaultMaven
implements Maven
{
@@ -78,7 +111,6 @@ public class DefaultMaven
@Requirement
protected ProjectBuilder projectBuilder;
-
@Requirement
private LifecycleStarter lifecycleStarter;
@@ -91,6 +123,21 @@ public class DefaultMaven
@Requirement
private ExecutionEventCatapult eventCatapult;
+ @Requirement
+ private ArtifactHandlerManager artifactHandlerManager;
+
+ @Requirement( optional = true, hint = "ide" )
+ private WorkspaceReader workspaceRepository;
+
+ @Requirement
+ private RepositorySystem repoSystem;
+
+ @Requirement
+ private SettingsDecrypter settingsDecrypter;
+
+ @Requirement
+ private LegacySupport legacySupport;
+
public MavenExecutionResult execute( MavenExecutionRequest request )
{
MavenExecutionResult result;
@@ -113,22 +160,25 @@ public class DefaultMaven
processResult( new DefaultMavenExecutionResult(),
new InternalErrorException( "Internal error: " + e, e ) );
}
+ finally
+ {
+ legacySupport.setSession( null );
+ }
return result;
}
- @SuppressWarnings( { "ThrowableInstanceNeverThrown", "ThrowableResultOfMethodCallIgnored" } )
+ @SuppressWarnings({"ThrowableInstanceNeverThrown", "ThrowableResultOfMethodCallIgnored"})
private MavenExecutionResult doExecute( MavenExecutionRequest request )
{
//TODO: Need a general way to inject standard properties
if ( request.getStartTime() != null )
{
- request.getSystemProperties().put( "${build.timestamp}",
- new SimpleDateFormat( "yyyyMMdd-hhmm" ).format( request.getStartTime() ) );
- }
-
+ request.getSystemProperties().put( "${build.timestamp}", new SimpleDateFormat( "yyyyMMdd-hhmm" ).format( request.getStartTime() ) );
+ }
+
request.setStartTime( new Date() );
-
+
MavenExecutionResult result = new DefaultMavenExecutionResult();
try
@@ -142,10 +192,13 @@ public class DefaultMaven
DelegatingLocalArtifactRepository delegatingLocalArtifactRepository =
new DelegatingLocalArtifactRepository( request.getLocalRepository() );
+
+ request.setLocalRepository( delegatingLocalArtifactRepository );
- request.setLocalRepository( delegatingLocalArtifactRepository );
+ DefaultRepositorySystemSession repoSession = (DefaultRepositorySystemSession) newRepositorySession( request );
- MavenSession session = new MavenSession( container, request, result );
+ MavenSession session = new MavenSession( container, repoSession, request, result );
+ legacySupport.setSession( session );
try
{
@@ -161,12 +214,14 @@ public class DefaultMaven
eventCatapult.fire( ExecutionEvent.Type.ProjectDiscoveryStarted, session, null );
- //TODO: optimize for the single project or no project
+ request.getProjectBuildingRequest().setRepositorySession( session.getRepositorySession() );
+ //TODO: optimize for the single project or no project
+
List<MavenProject> projects;
try
{
- projects = getProjectsForMavenReactor( request );
+ projects = getProjectsForMavenReactor( request );
}
catch ( ProjectBuildingException e )
{
@@ -176,20 +231,23 @@ public class DefaultMaven
session.setProjects( projects );
result.setTopologicallySortedProjects( session.getProjects() );
-
+
result.setProject( session.getTopLevelProject() );
try
{
Map<String, MavenProject> projectMap;
projectMap = getProjectMap( session.getProjects() );
-
+
// Desired order of precedence for local artifact repositories
//
// Reactor
// Workspace
// User Local Repository
- delegatingLocalArtifactRepository.setBuildReactor( new ReactorArtifactRepository( projectMap ) );
+ ReactorReader reactorRepository = new ReactorReader( projectMap );
+
+ repoSession.setWorkspaceReader( ChainedWorkspaceReader.newInstance( reactorRepository,
+ repoSession.getWorkspaceReader() ) );
}
catch ( org.apache.maven.DuplicateProjectException e )
{
@@ -226,7 +284,7 @@ public class DefaultMaven
session.setProjectDependencyGraph( projectDependencyGraph );
}
catch ( CycleDetectedException e )
- {
+ {
String message = "The projects in the reactor contain a cyclic reference: " + e.getMessage();
ProjectCycleException error = new ProjectCycleException( message, e );
@@ -261,7 +319,133 @@ public class DefaultMaven
return result;
}
- @SuppressWarnings( { "ResultOfMethodCallIgnored" } )
+ public RepositorySystemSession newRepositorySession( MavenExecutionRequest request )
+ {
+ DefaultRepositorySystemSession session = new DefaultRepositorySystemSession();
+
+ session.setCache( request.getRepositoryCache() );
+
+ session.setIgnoreInvalidArtifactDescriptor( true ).setIgnoreMissingArtifactDescriptor( true );
+
+ session.setUserProps( request.getUserProperties() );
+ session.setSystemProps( request.getSystemProperties() );
+ session.setConfigProps( request.getSystemProperties() );
+
+ session.setOffline( request.isOffline() );
+ session.setChecksumPolicy( request.getGlobalChecksumPolicy() );
+ session.setUpdatePolicy( request.isUpdateSnapshots() ? RepositoryPolicy.UPDATE_POLICY_ALWAYS : null );
+
+ session.setNotFoundCachingEnabled( !request.isUpdateSnapshots() );
+ session.setTransferErrorCachingEnabled( !request.isUpdateSnapshots() );
+
+ session.setArtifactTypeRegistry( RepositoryUtils.newArtifactTypeRegistry( artifactHandlerManager ) );
+
+ LocalRepository localRepo = new LocalRepository( request.getLocalRepository().getBasedir() );
+ session.setLocalRepositoryManager( repoSystem.newLocalRepositoryManager( localRepo ) );
+
+ session.setWorkspaceReader( workspaceRepository );
+
+ DefaultSettingsDecryptionRequest decrypt = new DefaultSettingsDecryptionRequest();
+ decrypt.setProxies( request.getProxies() );
+ decrypt.setServers( request.getServers() );
+ SettingsDecryptionResult decrypted = settingsDecrypter.decrypt( decrypt );
+
+ if ( logger.isDebugEnabled() )
+ {
+ for ( SettingsProblem problem : decrypted.getProblems() )
+ {
+ logger.debug( problem.getMessage(), problem.getException() );
+ }
+ }
+
+ DefaultMirrorSelector mirrorSelector = new DefaultMirrorSelector();
+ for ( Mirror mirror : request.getMirrors() )
+ {
+ mirrorSelector.add( mirror.getId(), mirror.getUrl(), mirror.getLayout(), false, mirror.getMirrorOf(),
+ mirror.getMirrorOfLayouts() );
+ }
+ session.setMirrorSelector( mirrorSelector );
+
+ DefaultProxySelector proxySelector = new DefaultProxySelector();
+ for ( Proxy proxy : decrypted.getProxies() )
+ {
+ Authentication proxyAuth = new Authentication( proxy.getUsername(), proxy.getPassword() );
+ proxySelector.add( new org.sonatype.aether.repository.Proxy( proxy.getProtocol(), proxy.getHost(), proxy.getPort(),
+ proxyAuth ), proxy.getNonProxyHosts() );
+ }
+ session.setProxySelector( proxySelector );
+
+ DefaultAuthenticationSelector authSelector = new DefaultAuthenticationSelector();
+ for ( Server server : decrypted.getServers() )
+ {
+ Authentication auth =
+ new Authentication( server.getUsername(), server.getPassword(), server.getPrivateKey(),
+ server.getPassphrase() );
+ authSelector.add( server.getId(), auth );
+ }
+ session.setAuthenticationSelector( authSelector );
+
+ DependencyTraverser depTraverser = new FatArtifactTraverser();
+ session.setDependencyTraverser( depTraverser );
+
+ DependencyManager depManager = new ClassicDependencyManager();
+ session.setDependencyManager( depManager );
+
+ DependencySelector depFilter =
+ new AndDependencySelector( new ScopeDependencySelector( "test", "provided" ), new OptionalDependencySelector(),
+ new ExclusionDependencySelector() );
+ session.setDependencySelector( depFilter );
+
+ DependencyGraphTransformer transformer =
+ new ChainedDependencyGraphTransformer( new ConflictMarker(), new JavaEffectiveScopeCalculator(),
+ new NearestVersionConflictResolver(),
+ new JavaDependencyContextRefiner() );
+ session.setDependencyGraphTransformer( transformer );
+
+ session.setTransferListener( request.getTransferListener() );
+
+ session.setRepositoryListener( new AbstractRepositoryListener()
+ {
+ @Override
+ public void artifactInstalling( RepositoryEvent event )
+ {
+ logger.info( "Installing " + event.getArtifact().getFile() + " to " + event.getFile() );
+ }
+
+ @Override
+ public void metadataInstalling( RepositoryEvent event )
+ {
+ logger.debug( "Installing " + event.getMetadata() + " to " + event.getFile() );
+ }
+
+ @Override
+ public void artifactDescriptorInvalid( RepositoryEvent event )
+ {
+ if ( logger.isDebugEnabled() )
+ {
+ logger.warn( "The POM for " + event.getArtifact() + " is invalid"
+ + ", transitive dependencies (if any) will not be available: "
+ + event.getException().getMessage() );
+ }
+ else
+ {
+ logger.warn( "The POM for " + event.getArtifact() + " is invalid"
+ + ", transitive dependencies (if any) will not be available"
+ + ", enable debug logging for more details" );
+ }
+ }
+
+ @Override
+ public void artifactDescriptorMissing( RepositoryEvent event )
+ {
+ logger.warn( "The POM for " + event.getArtifact() + " is missing, no dependency information available" );
+ }
+ } );
+
+ return session;
+ }
+
+ @SuppressWarnings({"ResultOfMethodCallIgnored"})
private void validateLocalRepository( MavenExecutionRequest request )
throws LocalRepositoryNotAccessibleException
{
@@ -334,7 +518,7 @@ public class DefaultMaven
return result;
}
-
+
private List<MavenProject> getProjectsForMavenReactor( MavenExecutionRequest request )
throws ProjectBuildingException
{
@@ -352,8 +536,8 @@ public class DefaultMaven
request.setProjectPresent( false );
return projects;
}
-
- List<File> files = Arrays.asList( request.getPom().getAbsoluteFile() );
+
+ List<File> files = Arrays.asList( request.getPom().getAbsoluteFile() );
collectProjects( projects, files, request );
return projects;
}
@@ -405,8 +589,7 @@ public class DefaultMaven
{
ProjectBuildingRequest projectBuildingRequest = request.getProjectBuildingRequest();
- List<ProjectBuildingResult> results =
- projectBuilder.build( files, request.isRecursive(), projectBuildingRequest );
+ List<ProjectBuildingResult> results = projectBuilder.build( files, request.isRecursive(), projectBuildingRequest );
boolean problems = false;
@@ -423,8 +606,7 @@ public class DefaultMaven
for ( ModelProblem problem : result.getProblems() )
{
String location = ModelProblemUtils.formatLocation( problem, result.getProjectId() );
- logger.warn( problem.getMessage()
- + ( StringUtils.isNotEmpty( location ) ? " @ " + location : "" ) );
+ logger.warn( problem.getMessage() + ( StringUtils.isNotEmpty( location ) ? " @ " + location : "" ) );
}
problems = true;
Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java Tue Aug 24 22:46:07 2010
@@ -42,7 +42,7 @@ import org.apache.maven.repository.Repos
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
-@Component( role = ProjectDependenciesResolver.class )
+@Component(role = ProjectDependenciesResolver.class)
public class DefaultProjectDependenciesResolver
implements ProjectDependenciesResolver
{
@@ -97,15 +97,15 @@ public class DefaultProjectDependenciesR
return resolved;
}
- if ( ( scopesToCollect == null || scopesToCollect.isEmpty() )
- && ( scopesToResolve == null || scopesToResolve.isEmpty() ) )
+ if ( ( scopesToCollect == null || scopesToCollect.isEmpty() ) &&
+ ( scopesToResolve == null || scopesToResolve.isEmpty() ) )
{
return resolved;
}
/*
- Logic for transitive global exclusions
+ Logic for transitve global exclusions
List<String> exclusions = new ArrayList<String>();
@@ -126,8 +126,7 @@ public class DefaultProjectDependenciesR
if ( ! exclusions.isEmpty() )
{
- filter = new AndArtifactFilter( Arrays.asList( new ArtifactFilter[]{ new ExcludesArtifactFilter( exclusions ),
- scopeFilter } ) );
+ filter = new AndArtifactFilter( Arrays.asList( new ArtifactFilter[]{ new ExcludesArtifactFilter( exclusions ), scopeFilter } ) );
}
else
{
@@ -141,11 +140,10 @@ public class DefaultProjectDependenciesR
collectionScopeFilter = new CumulativeScopeArtifactFilter( collectionScopeFilter, resolutionScopeFilter );
ArtifactResolutionRequest request =
- new ArtifactResolutionRequest().setResolveRoot( false ).setResolveTransitively( true )
- .setCollectionFilter( collectionScopeFilter ).setResolutionFilter( resolutionScopeFilter )
- .setLocalRepository( session.getLocalRepository() ).setOffline( session.isOffline() )
- .setForceUpdate( session.getRequest().isUpdateSnapshots() ).setCache( session.getRepositoryCache() );
- request.setTransferListener( session.getRequest().getTransferListener() );
+ new ArtifactResolutionRequest().setResolveRoot( false ).setResolveTransitively( true ).setCollectionFilter(
+ collectionScopeFilter ).setResolutionFilter( resolutionScopeFilter ).setLocalRepository(
+ session.getLocalRepository() ).setOffline( session.isOffline() ).setForceUpdate(
+ session.getRequest().isUpdateSnapshots() );
request.setServers( session.getRequest().getServers() );
request.setMirrors( session.getRequest().getMirrors() );
request.setProxies( session.getRequest().getProxies() );
Added: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/ReactorReader.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/ReactorReader.java?rev=988749&view=auto
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/ReactorReader.java (added)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/ReactorReader.java Tue Aug 24 22:46:07 2010
@@ -0,0 +1,251 @@
+package org.apache.maven;
+
+/*
+ * 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.artifact.ArtifactUtils;
+import org.apache.maven.project.MavenProject;
+import org.sonatype.aether.artifact.Artifact;
+import org.sonatype.aether.repository.WorkspaceReader;
+import org.sonatype.aether.repository.WorkspaceRepository;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * An implementation of a workspace reader that knows how to search the Maven reactor for artifacts.
+ *
+ * @author Jason van Zyl
+ */
+class ReactorReader
+ implements WorkspaceReader
+{
+
+ private Map<String, MavenProject> projectsByGAV;
+
+ private Map<String, List<MavenProject>> projectsByGA;
+
+ private WorkspaceRepository repository;
+
+ @SuppressWarnings( { "ConstantConditions" } )
+ public ReactorReader( Map<String, MavenProject> reactorProjects )
+ {
+ projectsByGAV = reactorProjects;
+
+ projectsByGA = new HashMap<String, List<MavenProject>>( reactorProjects.size() * 2 );
+ for ( MavenProject project : reactorProjects.values() )
+ {
+ String key = ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() );
+
+ List<MavenProject> projects = projectsByGA.get( key );
+
+ if ( projects == null )
+ {
+ projects = new ArrayList<MavenProject>( 1 );
+ projectsByGA.put( key, projects );
+ }
+
+ projects.add( project );
+ }
+
+ repository = new WorkspaceRepository( "reactor", new HashSet<String>( projectsByGAV.keySet() ) );
+ }
+
+ private File find( MavenProject project, Artifact artifact )
+ {
+ if ( "pom".equals( artifact.getExtension() ) )
+ {
+ return project.getFile();
+ }
+
+ org.apache.maven.artifact.Artifact projectArtifact = findMatchingArtifact( project, artifact );
+
+ if ( hasArtifactFileFromPackagePhase( projectArtifact ) )
+ {
+ return projectArtifact.getFile();
+ }
+ else if ( !project.hasCompletedPhase( "package" ) )
+ {
+ if ( isTestArtifact( artifact ) )
+ {
+ if ( project.hasCompletedPhase( "test-compile" ) )
+ {
+ return new File( project.getBuild().getTestOutputDirectory() );
+ }
+ }
+ else
+ {
+ if ( project.hasCompletedPhase( "compile" ) )
+ {
+ return new File( project.getBuild().getOutputDirectory() );
+ }
+ }
+ }
+
+ // The fall-through indicates that the artifact cannot be found;
+ // for instance if package produced nothing or classifier problems.
+ return null;
+ }
+
+ private boolean hasArtifactFileFromPackagePhase( org.apache.maven.artifact.Artifact projectArtifact )
+ {
+ return projectArtifact != null && projectArtifact.getFile() != null && projectArtifact.getFile().exists();
+ }
+
+ /**
+ * Tries to resolve the specified artifact from the artifacts of the given project.
+ *
+ * @param project The project to try to resolve the artifact from, must not be <code>null</code>.
+ * @param requestedArtifact The artifact to resolve, must not be <code>null</code>.
+ * @return The matching artifact from the project or <code>null</code> if not found.
+ */
+ private org.apache.maven.artifact.Artifact findMatchingArtifact( MavenProject project, Artifact requestedArtifact )
+ {
+ String requestedRepositoryConflictId = getConflictId( requestedArtifact );
+
+ org.apache.maven.artifact.Artifact mainArtifact = project.getArtifact();
+ if ( requestedRepositoryConflictId.equals( getConflictId( mainArtifact ) ) )
+ {
+ return mainArtifact;
+ }
+
+ Collection<org.apache.maven.artifact.Artifact> attachedArtifacts = project.getAttachedArtifacts();
+ if ( attachedArtifacts != null && !attachedArtifacts.isEmpty() )
+ {
+ for ( org.apache.maven.artifact.Artifact attachedArtifact : attachedArtifacts )
+ {
+ if ( requestedRepositoryConflictId.equals( getConflictId( attachedArtifact ) ) )
+ {
+ return attachedArtifact;
+ }
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * Gets the repository conflict id of the specified artifact. Unlike the dependency conflict id, the repository
+ * conflict id uses the artifact file extension instead of the artifact type. Hence, the repository conflict id more
+ * closely reflects the identity of artifacts as perceived by a repository.
+ *
+ * @param artifact The artifact, must not be <code>null</code>.
+ * @return The repository conflict id, never <code>null</code>.
+ */
+ private String getConflictId( org.apache.maven.artifact.Artifact artifact )
+ {
+ StringBuilder buffer = new StringBuilder( 128 );
+ buffer.append( artifact.getGroupId() );
+ buffer.append( ':' ).append( artifact.getArtifactId() );
+ if ( artifact.getArtifactHandler() != null )
+ {
+ buffer.append( ':' ).append( artifact.getArtifactHandler().getExtension() );
+ }
+ else
+ {
+ buffer.append( ':' ).append( artifact.getType() );
+ }
+ if ( artifact.hasClassifier() )
+ {
+ buffer.append( ':' ).append( artifact.getClassifier() );
+ }
+ return buffer.toString();
+ }
+
+ private String getConflictId( Artifact artifact )
+ {
+ StringBuilder buffer = new StringBuilder( 128 );
+ buffer.append( artifact.getGroupId() );
+ buffer.append( ':' ).append( artifact.getArtifactId() );
+ buffer.append( ':' ).append( artifact.getExtension() );
+ if ( artifact.getClassifier().length() > 0 )
+ {
+ buffer.append( ':' ).append( artifact.getClassifier() );
+ }
+ return buffer.toString();
+ }
+
+ /**
+ * Determines whether the specified artifact refers to test classes.
+ *
+ * @param artifact The artifact to check, must not be {@code null}.
+ * @return {@code true} if the artifact refers to test classes, {@code false} otherwise.
+ */
+ private static boolean isTestArtifact( Artifact artifact )
+ {
+ if ( "test-jar".equals( artifact.getProperty( "type", "" ) ) )
+ {
+ return true;
+ }
+ else if ( "jar".equals( artifact.getExtension() ) && "tests".equals( artifact.getClassifier() ) )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ public File findArtifact( Artifact artifact )
+ {
+ String projectKey = artifact.getGroupId() + ':' + artifact.getArtifactId() + ':' + artifact.getVersion();
+
+ MavenProject project = projectsByGAV.get( projectKey );
+
+ if ( project != null )
+ {
+ return find( project, artifact );
+ }
+
+ return null;
+ }
+
+ public List<String> findVersions( Artifact artifact )
+ {
+ String key = artifact.getGroupId() + ':' + artifact.getArtifactId();
+
+ List<MavenProject> projects = projectsByGA.get( key );
+ if ( projects == null || projects.isEmpty() )
+ {
+ return Collections.emptyList();
+ }
+
+ List<String> versions = new ArrayList<String>();
+
+ for ( MavenProject project : projects )
+ {
+ if ( find( project, artifact ) != null )
+ {
+ versions.add( project.getVersion() );
+ }
+ }
+
+ return Collections.unmodifiableList( versions );
+ }
+
+ public WorkspaceRepository getRepository()
+ {
+ return repository;
+ }
+
+}
Propchange: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/ReactorReader.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/ReactorReader.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java?rev=988749&view=auto
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java (added)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java Tue Aug 24 22:46:07 2010
@@ -0,0 +1,325 @@
+package org.apache.maven;
+
+/*
+ * 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.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.maven.artifact.handler.ArtifactHandler;
+import org.apache.maven.artifact.handler.DefaultArtifactHandler;
+import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
+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.DependencyFilter;
+import org.sonatype.aether.graph.DependencyNode;
+import org.sonatype.aether.graph.Exclusion;
+import org.sonatype.aether.repository.Authentication;
+import org.sonatype.aether.repository.Proxy;
+import org.sonatype.aether.repository.RemoteRepository;
+import org.sonatype.aether.repository.RepositoryPolicy;
+import org.sonatype.aether.util.artifact.ArtifactProperties;
+import org.sonatype.aether.util.artifact.DefaultArtifact;
+import org.sonatype.aether.util.artifact.DefaultArtifactType;
+
+/**
+ * <strong>Warning:</strong> This is an internal utility class that is only public for technical reasons, it is not part
+ * of the public API. In particular, this class can be changed or deleted without prior notice.
+ *
+ * @author Benjamin Bentmann
+ */
+public class RepositoryUtils
+{
+
+ private static String nullify( String string )
+ {
+ return ( string == null || string.length() <= 0 ) ? null : string;
+ }
+
+ private static org.apache.maven.artifact.Artifact toArtifact( Dependency dependency )
+ {
+ if ( dependency == null )
+ {
+ return null;
+ }
+
+ org.apache.maven.artifact.Artifact result = toArtifact( dependency.getArtifact() );
+ result.setScope( dependency.getScope() );
+ result.setOptional( dependency.isOptional() );
+
+ return result;
+ }
+
+ public static org.apache.maven.artifact.Artifact toArtifact( Artifact artifact )
+ {
+ if ( artifact == null )
+ {
+ return null;
+ }
+
+ ArtifactHandler handler = newHandler( artifact );
+
+ /*
+ * NOTE: From Artifact.hasClassifier(), an empty string and a null both denote "no classifier". However, some
+ * plugins only check for null, so be sure to nullify an empty classifier.
+ */
+ org.apache.maven.artifact.Artifact result =
+ new org.apache.maven.artifact.DefaultArtifact( artifact.getGroupId(), artifact.getArtifactId(),
+ artifact.getVersion(), null,
+ artifact.getProperty( ArtifactProperties.TYPE,
+ artifact.getExtension() ),
+ nullify( artifact.getClassifier() ), handler );
+
+ result.setFile( artifact.getFile() );
+ result.setResolved( artifact.getFile() != null );
+
+ List<String> trail = new ArrayList<String>( 1 );
+ trail.add( result.getId() );
+ result.setDependencyTrail( trail );
+
+ return result;
+ }
+
+ public static void toArtifacts( Collection<org.apache.maven.artifact.Artifact> artifacts,
+ Collection<? extends DependencyNode> nodes, List<String> trail,
+ DependencyFilter filter )
+ {
+ for ( DependencyNode node : nodes )
+ {
+ org.apache.maven.artifact.Artifact artifact = toArtifact( node.getDependency() );
+
+ List<String> nodeTrail = new ArrayList<String>( trail.size() + 1 );
+ nodeTrail.addAll( trail );
+ nodeTrail.add( artifact.getId() );
+
+ if ( filter == null || filter.accept( node, Collections.<DependencyNode> emptyList() ) )
+ {
+ artifact.setDependencyTrail( nodeTrail );
+ artifacts.add( artifact );
+ }
+
+ toArtifacts( artifacts, node.getChildren(), nodeTrail, filter );
+ }
+ }
+
+ public static Artifact toArtifact( org.apache.maven.artifact.Artifact artifact )
+ {
+ if ( artifact == null )
+ {
+ return null;
+ }
+
+ String version = artifact.getVersion();
+ if ( version == null && artifact.getVersionRange() != null )
+ {
+ version = artifact.getVersionRange().toString();
+ }
+
+ Map<String, String> props = null;
+ if ( org.apache.maven.artifact.Artifact.SCOPE_SYSTEM.equals( artifact.getScope() ) )
+ {
+ props = Collections.singletonMap( ArtifactProperties.LACKS_DESCRIPTOR, Boolean.TRUE.toString() );
+ }
+
+ Artifact result =
+ new DefaultArtifact( artifact.getGroupId(), artifact.getArtifactId(), artifact.getClassifier(),
+ artifact.getArtifactHandler().getExtension(), version, props,
+ newArtifactType( artifact.getType(), artifact.getArtifactHandler() ) );
+ result = result.setFile( artifact.getFile() );
+
+ return result;
+ }
+
+ public static Dependency toDependency( org.apache.maven.artifact.Artifact artifact,
+ Collection<org.apache.maven.model.Exclusion> exclusions )
+ {
+ if ( artifact == null )
+ {
+ return null;
+ }
+
+ Artifact result = toArtifact( artifact );
+
+ List<Exclusion> excl = null;
+ if ( exclusions != null )
+ {
+ excl = new ArrayList<Exclusion>( exclusions.size() );
+ for ( org.apache.maven.model.Exclusion exclusion : exclusions )
+ {
+ excl.add( toExclusion( exclusion ) );
+ }
+ }
+
+ return new Dependency( result, artifact.getScope(), artifact.isOptional(), excl );
+ }
+
+ public static List<RemoteRepository> toRepos( List<ArtifactRepository> repos )
+ {
+ if ( repos == null )
+ {
+ return null;
+ }
+
+ List<RemoteRepository> results = new ArrayList<RemoteRepository>( repos.size() );
+ for ( ArtifactRepository repo : repos )
+ {
+ results.add( toRepo( repo ) );
+ }
+ return results;
+ }
+
+ public static RemoteRepository toRepo( ArtifactRepository repo )
+ {
+ RemoteRepository result = null;
+ if ( repo != null )
+ {
+ result = new RemoteRepository( repo.getId(), repo.getLayout().getId(), repo.getUrl() );
+ result.setPolicy( true, toPolicy( repo.getSnapshots() ) );
+ result.setPolicy( false, toPolicy( repo.getReleases() ) );
+ result.setAuthentication( toAuthentication( repo.getAuthentication() ) );
+ result.setProxy( toProxy( repo.getProxy() ) );
+ }
+ return result;
+ }
+
+ private static RepositoryPolicy toPolicy( ArtifactRepositoryPolicy policy )
+ {
+ RepositoryPolicy result = null;
+ if ( policy != null )
+ {
+ result = new RepositoryPolicy( policy.isEnabled(), policy.getUpdatePolicy(), policy.getChecksumPolicy() );
+ }
+ return result;
+ }
+
+ private static Authentication toAuthentication( org.apache.maven.artifact.repository.Authentication auth )
+ {
+ Authentication result = null;
+ if ( auth != null )
+ {
+ result = new Authentication( auth.getUsername(), auth.getPassword() );
+ }
+ return result;
+ }
+
+ private static Proxy toProxy( org.apache.maven.repository.Proxy proxy )
+ {
+ Proxy result = null;
+ if ( proxy != null )
+ {
+ Authentication auth = new Authentication( proxy.getUserName(), proxy.getPassword() );
+ result = new Proxy( proxy.getProtocol(), proxy.getHost(), proxy.getPort(), auth );
+ }
+ return result;
+ }
+
+ public static ArtifactHandler newHandler( Artifact artifact )
+ {
+ String type = artifact.getProperty( ArtifactProperties.TYPE, artifact.getExtension() );
+ DefaultArtifactHandler handler = new DefaultArtifactHandler( type );
+ handler.setExtension( artifact.getExtension() );
+ handler.setLanguage( artifact.getProperty( ArtifactProperties.LANGUAGE, null ) );
+ handler.setAddedToClasspath( Boolean.parseBoolean( artifact.getProperty( ArtifactProperties.CONSTITUTES_BUILD_PATH,
+ "" ) ) );
+ handler.setIncludesDependencies( Boolean.parseBoolean( artifact.getProperty( ArtifactProperties.INCLUDES_DEPENDENCIES,
+ "" ) ) );
+ return handler;
+ }
+
+ public static ArtifactType newArtifactType( String id, ArtifactHandler handler )
+ {
+ return new DefaultArtifactType( id, handler.getExtension(), handler.getClassifier(), handler.getLanguage(),
+ handler.isAddedToClasspath(), handler.isIncludesDependencies() );
+ }
+
+ public static Dependency toDependency( 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( toExclusion( exclusion ) );
+ }
+
+ Dependency result = new Dependency( artifact, dependency.getScope(), dependency.isOptional(), exclusions );
+
+ return result;
+ }
+
+ private static Exclusion toExclusion( org.apache.maven.model.Exclusion exclusion )
+ {
+ return new Exclusion( exclusion.getGroupId(), exclusion.getArtifactId(), "*", "*" );
+ }
+
+ public static ArtifactTypeRegistry newArtifactTypeRegistry( ArtifactHandlerManager handlerManager )
+ {
+ return new MavenArtifactTypeRegistry( handlerManager );
+ }
+
+ static class MavenArtifactTypeRegistry
+ implements ArtifactTypeRegistry
+ {
+
+ private final ArtifactHandlerManager handlerManager;
+
+ public MavenArtifactTypeRegistry( ArtifactHandlerManager handlerManager )
+ {
+ this.handlerManager = handlerManager;
+ }
+
+ public ArtifactType get( String stereotypeId )
+ {
+ ArtifactHandler handler = handlerManager.getArtifactHandler( stereotypeId );
+ return newArtifactType( stereotypeId, handler );
+ }
+
+ }
+
+}
Propchange: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/handler/DefaultArtifactHandler.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/handler/DefaultArtifactHandler.java?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/handler/DefaultArtifactHandler.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/handler/DefaultArtifactHandler.java Tue Aug 24 22:46:07 2010
@@ -64,6 +64,11 @@ public class DefaultArtifactHandler
return extension;
}
+ public void setExtension( String extension )
+ {
+ this.extension = extension;
+ }
+
public String getType()
{
return type;
@@ -97,6 +102,11 @@ public class DefaultArtifactHandler
return includesDependencies;
}
+ public void setIncludesDependencies( boolean includesDependencies )
+ {
+ this.includesDependencies = includesDependencies;
+ }
+
public String getLanguage()
{
if ( language == null )
@@ -107,8 +117,19 @@ public class DefaultArtifactHandler
return language;
}
+ public void setLanguage( String language )
+ {
+ this.language = language;
+ }
+
public boolean isAddedToClasspath()
{
return addedToClasspath;
}
+
+ public void setAddedToClasspath( boolean addedToClasspath )
+ {
+ this.addedToClasspath = addedToClasspath;
+ }
+
}
Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/DefaultRepositoryRequest.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/DefaultRepositoryRequest.java?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/DefaultRepositoryRequest.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/DefaultRepositoryRequest.java Tue Aug 24 22:46:07 2010
@@ -24,11 +24,10 @@ import java.util.List;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.project.MavenProject;
-import org.apache.maven.repository.ArtifactTransferListener;
/**
* Collects basic settings to access the repository system.
- *
+ *
* @author Benjamin Bentmann
*/
public class DefaultRepositoryRequest
@@ -43,10 +42,6 @@ public class DefaultRepositoryRequest
private List<ArtifactRepository> remoteRepositories;
- private RepositoryCache cache;
-
- private ArtifactTransferListener transferListener;
-
/**
* Creates an empty repository request.
*/
@@ -57,7 +52,7 @@ public class DefaultRepositoryRequest
/**
* Creates a shallow copy of the specified repository request.
- *
+ *
* @param repositoryRequest The repository request to copy from, must not be {@code null}.
*/
public DefaultRepositoryRequest( RepositoryRequest repositoryRequest )
@@ -65,16 +60,13 @@ public class DefaultRepositoryRequest
setLocalRepository( repositoryRequest.getLocalRepository() );
setRemoteRepositories( repositoryRequest.getRemoteRepositories() );
setOffline( repositoryRequest.isOffline() );
- setCache( repositoryRequest.getCache() );
setForceUpdate( repositoryRequest.isForceUpdate() );
- setTransferListener( repositoryRequest.getTransferListener() );
}
public static RepositoryRequest getRepositoryRequest( MavenSession session, MavenProject project )
{
RepositoryRequest request = new DefaultRepositoryRequest();
- request.setCache( session.getRepositoryCache() );
request.setLocalRepository( session.getLocalRepository() );
if ( project != null )
{
@@ -82,7 +74,6 @@ public class DefaultRepositoryRequest
}
request.setOffline( session.isOffline() );
request.setForceUpdate( session.getRequest().isUpdateSnapshots() );
- request.setTransferListener( session.getRequest().getTransferListener() );
return request;
}
@@ -140,28 +131,4 @@ public class DefaultRepositoryRequest
return this;
}
- public RepositoryCache getCache()
- {
- return cache;
- }
-
- public DefaultRepositoryRequest setCache( RepositoryCache cache )
- {
- this.cache = cache;
-
- return this;
- }
-
- public ArtifactTransferListener getTransferListener()
- {
- return transferListener;
- }
-
- public DefaultRepositoryRequest setTransferListener( ArtifactTransferListener transferListener )
- {
- this.transferListener = transferListener;
-
- return this;
- }
-
}
Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/RepositoryCache.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/RepositoryCache.java?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/RepositoryCache.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/RepositoryCache.java Tue Aug 24 22:46:07 2010
@@ -25,6 +25,7 @@ package org.apache.maven.artifact.reposi
*
* @author Benjamin Bentmann
*/
+@Deprecated
public interface RepositoryCache
{
Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/RepositoryRequest.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/RepositoryRequest.java?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/RepositoryRequest.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/repository/RepositoryRequest.java Tue Aug 24 22:46:07 2010
@@ -21,8 +21,6 @@ package org.apache.maven.artifact.reposi
import java.util.List;
-import org.apache.maven.repository.ArtifactTransferListener;
-
/**
* Collects basic settings to access the repository system.
*
@@ -94,34 +92,4 @@ public interface RepositoryRequest
*/
RepositoryRequest setRemoteRepositories( List<ArtifactRepository> remoteRepositories );
- /**
- * Gets the repository cache to use.
- *
- * @return The repository cache to use or {@code null} if none.
- */
- RepositoryCache getCache();
-
- /**
- * Sets the repository cache to use.
- *
- * @param cache The repository cache to use, may be {@code null}.
- * @return This request, never {@code null}.
- */
- RepositoryRequest setCache( RepositoryCache cache );
-
- /**
- * Gets the listener to notify of transfer events.
- *
- * @return The transfer listener or {@code null} if none.
- */
- ArtifactTransferListener getTransferListener();
-
- /**
- * Sets the listener to notify of transfer events.
- *
- * @param transferListener The transfer listener to notify, may be {@code null}.
- * @return This request, never {@code null}.
- */
- RepositoryRequest setTransferListener( ArtifactTransferListener transferListener );
-
}
Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionRequest.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionRequest.java?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionRequest.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionRequest.java Tue Aug 24 22:46:07 2010
@@ -29,7 +29,6 @@ import org.apache.maven.artifact.reposit
import org.apache.maven.artifact.repository.RepositoryCache;
import org.apache.maven.artifact.repository.RepositoryRequest;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
-import org.apache.maven.repository.ArtifactTransferListener;
import org.apache.maven.settings.Mirror;
import org.apache.maven.settings.Proxy;
import org.apache.maven.settings.Server;
@@ -55,8 +54,6 @@ public class ArtifactResolutionRequest
private List<ArtifactRepository> remoteRepositories;
- private RepositoryCache cache;
-
private ArtifactFilter collectionFilter;
private ArtifactFilter resolutionFilter;
@@ -66,8 +63,6 @@ public class ArtifactResolutionRequest
// This is like a filter but overrides all transitive versions
private Map managedVersionMap;
-
- private ArtifactTransferListener transferListener;
private boolean resolveRoot = true;
@@ -92,10 +87,8 @@ public class ArtifactResolutionRequest
{
setLocalRepository( request.getLocalRepository() );
setRemoteRepositories( request.getRemoteRepositories() );
- setCache( request.getCache() );
setOffline( request.isOffline() );
setForceUpdate( request.isForceUpdate() );
- setTransferListener( request.getTransferListener() );
}
public Artifact getArtifact()
@@ -237,17 +230,6 @@ public class ArtifactResolutionRequest
{
return resolveTransitively;
}
-
- public ArtifactTransferListener getTransferListener()
- {
- return transferListener;
- }
-
- public ArtifactResolutionRequest setTransferListener( ArtifactTransferListener transferListener )
- {
- this.transferListener = transferListener;
- return this;
- }
public String toString()
{
@@ -263,13 +245,11 @@ public class ArtifactResolutionRequest
public RepositoryCache getCache()
{
- return cache;
+ return null;
}
public ArtifactResolutionRequest setCache( RepositoryCache cache )
{
- this.cache = cache;
-
return this;
}
Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/classrealm/ArtifactClassRealmConstituent.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/classrealm/ArtifactClassRealmConstituent.java?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/classrealm/ArtifactClassRealmConstituent.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/classrealm/ArtifactClassRealmConstituent.java Tue Aug 24 22:46:07 2010
@@ -21,7 +21,7 @@ package org.apache.maven.classrealm;
import java.io.File;
-import org.apache.maven.artifact.Artifact;
+import org.sonatype.aether.artifact.Artifact;
/**
* @author Benjamin Bentmann
@@ -49,12 +49,12 @@ class ArtifactClassRealmConstituent
public String getType()
{
- return artifact.getType();
+ return artifact.getExtension();
}
public String getClassifier()
{
- return artifact.hasClassifier() ? artifact.getClassifier() : "";
+ return artifact.getClassifier();
}
public String getVersion()
@@ -70,7 +70,7 @@ class ArtifactClassRealmConstituent
@Override
public String toString()
{
- return artifact.getId();
+ return artifact.toString();
}
}
Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/classrealm/ClassRealmManager.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/classrealm/ClassRealmManager.java?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/classrealm/ClassRealmManager.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/classrealm/ClassRealmManager.java Tue Aug 24 22:46:07 2010
@@ -21,10 +21,10 @@ package org.apache.maven.classrealm;
import java.util.List;
-import org.apache.maven.artifact.Artifact;
import org.apache.maven.model.Model;
import org.apache.maven.model.Plugin;
import org.codehaus.plexus.classworlds.realm.ClassRealm;
+import org.sonatype.aether.artifact.Artifact;
/**
* Manages the class realms used by Maven. <strong>Warning:</strong> This is an internal utility interface that is only
Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java Tue Aug 24 22:46:07 2010
@@ -28,7 +28,6 @@ import java.util.List;
import java.util.Random;
import java.util.Set;
-import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.classrealm.ClassRealmRequest.RealmType;
import org.apache.maven.model.Model;
@@ -43,11 +42,12 @@ import org.codehaus.plexus.component.ann
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.util.StringUtils;
+import org.sonatype.aether.artifact.Artifact;
/**
* Manages the class realms used by Maven. <strong>Warning:</strong> This is an internal utility class that is only
- * public for technical reasons, it is not part of the public API. In particular, this interface can be changed or
- * deleted without prior notice.
+ * public for technical reasons, it is not part of the public API. In particular, this class can be changed or deleted
+ * without prior notice.
*
* @author Benjamin Bentmann
*/
@@ -133,7 +133,7 @@ public class DefaultClassRealmManager
{
for ( Artifact artifact : artifacts )
{
- artifactIds.add( artifact.getId() );
+ artifactIds.add( getId( artifact ) );
if ( artifact.getFile() != null )
{
constituents.add( new ArtifactClassRealmConstituent( artifact ) );
@@ -260,6 +260,9 @@ public class DefaultClassRealmManager
// maven-*
importingRealm.importFrom( coreRealm, "org.apache.maven" );
+ // aether
+ importingRealm.importFrom( coreRealm, "org.sonatype.aether" );
+
// plexus-classworlds
importingRealm.importFrom( coreRealm, "org.codehaus.plexus.classworlds" );
@@ -334,11 +337,21 @@ public class DefaultClassRealmManager
+ version;
}
+ private static String getId( Artifact artifact )
+ {
+ return getId( artifact.getGroupId(), artifact.getArtifactId(), artifact.getExtension(), artifact.getClassifier(),
+ artifact.getBaseVersion() );
+ }
+
private static String getId( ClassRealmConstituent constituent )
{
- return constituent.getGroupId() + ':' + constituent.getArtifactId() + ':' + constituent.getType()
- + ( StringUtils.isNotEmpty( constituent.getClassifier() ) ? ':' + constituent.getClassifier() : "" ) + ':'
- + constituent.getVersion();
+ return getId( constituent.getGroupId(), constituent.getArtifactId(), constituent.getType(),
+ constituent.getClassifier(), constituent.getVersion() );
+ }
+
+ private static String getId( String gid, String aid, String type, String cls, String ver )
+ {
+ return gid + ':' + aid + ':' + type + ( StringUtils.isNotEmpty( cls ) ? ':' + cls : "" ) + ':' + ver;
}
private List<ClassRealmManagerDelegate> getDelegates()
Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java Tue Aug 24 22:46:07 2010
@@ -26,14 +26,15 @@ import java.util.List;
import java.util.Properties;
import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.RepositoryCache;
import org.apache.maven.model.Profile;
import org.apache.maven.project.DefaultProjectBuildingRequest;
import org.apache.maven.project.ProjectBuildingRequest;
-import org.apache.maven.repository.ArtifactTransferListener;
import org.apache.maven.settings.Mirror;
import org.apache.maven.settings.Proxy;
import org.apache.maven.settings.Server;
+import org.sonatype.aether.RepositoryCache;
+import org.sonatype.aether.transfer.TransferListener;
+import org.sonatype.aether.util.DefaultRepositoryCache;
/**
* @author Jason van Zyl
@@ -42,7 +43,7 @@ public class DefaultMavenExecutionReques
implements MavenExecutionRequest
{
- private RepositoryCache repositoryCache = new SessionRepositoryCache();
+ private RepositoryCache repositoryCache = new DefaultRepositoryCache();
private ArtifactRepository localRepository;
@@ -110,7 +111,7 @@ public class DefaultMavenExecutionReques
private List<String> inactiveProfiles;
- private ArtifactTransferListener transferListener;
+ private TransferListener transferListener;
private int loggingLevel = LOGGING_LEVEL_INFO;
@@ -350,7 +351,7 @@ public class DefaultMavenExecutionReques
return inactiveProfiles;
}
- public ArtifactTransferListener getTransferListener()
+ public TransferListener getTransferListener()
{
return transferListener;
}
@@ -592,7 +593,7 @@ public class DefaultMavenExecutionReques
return this;
}
- public MavenExecutionRequest setTransferListener( ArtifactTransferListener transferListener )
+ public MavenExecutionRequest setTransferListener( TransferListener transferListener )
{
this.transferListener = transferListener;
@@ -953,7 +954,6 @@ public class DefaultMavenExecutionReques
projectBuildingRequest.setUserProperties( getUserProperties() );
projectBuildingRequest.setRemoteRepositories( getRemoteRepositories() );
projectBuildingRequest.setPluginArtifactRepositories( getPluginArtifactRepositories() );
- projectBuildingRequest.setRepositoryCache( getRepositoryCache() );
projectBuildingRequest.setOffline( isOffline() );
projectBuildingRequest.setForceUpdate( isUpdateSnapshots() );
projectBuildingRequest.setServers( getServers() );
@@ -964,7 +964,6 @@ public class DefaultMavenExecutionReques
projectBuildingRequest.setProfiles( getProfiles() );
projectBuildingRequest.setProcessPlugins( true );
projectBuildingRequest.setBuildStartTime( getStartTime() );
- projectBuildingRequest.setTransferListener( getTransferListener() );
}
return projectBuildingRequest;
Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java Tue Aug 24 22:46:07 2010
@@ -25,7 +25,7 @@ import java.util.IdentityHashMap;
import java.util.List;
import java.util.Map;
-import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
+import org.apache.maven.project.DependencyResolutionResult;
import org.apache.maven.project.MavenProject;
/** @author Jason van Zyl */
@@ -36,7 +36,7 @@ public class DefaultMavenExecutionResult
private List<MavenProject> topologicallySortedProjects;
- private ArtifactResolutionResult artifactResolutionResult;
+ private DependencyResolutionResult dependencyResolutionResult;
private List<Throwable> exceptions;
@@ -66,14 +66,14 @@ public class DefaultMavenExecutionResult
return topologicallySortedProjects;
}
- public ArtifactResolutionResult getArtifactResolutionResult()
+ public DependencyResolutionResult getDependencyResolutionResult()
{
- return artifactResolutionResult;
+ return dependencyResolutionResult;
}
- public MavenExecutionResult setArtifactResolutionResult( ArtifactResolutionResult artifactResolutionResult )
+ public MavenExecutionResult setDependencyResolutionResult( DependencyResolutionResult dependencyResolutionResult )
{
- this.artifactResolutionResult = artifactResolutionResult;
+ this.dependencyResolutionResult = dependencyResolutionResult;
return this;
}
Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java Tue Aug 24 22:46:07 2010
@@ -26,14 +26,14 @@ import java.util.Properties;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
-import org.apache.maven.artifact.repository.RepositoryCache;
import org.apache.maven.model.Profile;
import org.apache.maven.project.ProjectBuildingRequest;
-import org.apache.maven.repository.ArtifactTransferListener;
import org.apache.maven.settings.Mirror;
import org.apache.maven.settings.Proxy;
import org.apache.maven.settings.Server;
import org.codehaus.plexus.logging.Logger;
+import org.sonatype.aether.RepositoryCache;
+import org.sonatype.aether.transfer.TransferListener;
/**
* @author Jason van Zyl
@@ -170,8 +170,8 @@ public interface MavenExecutionRequest
boolean isShowErrors();
// Transfer listeners
- MavenExecutionRequest setTransferListener( ArtifactTransferListener transferListener );
- ArtifactTransferListener getTransferListener();
+ MavenExecutionRequest setTransferListener( TransferListener transferListener );
+ TransferListener getTransferListener();
// Logging
MavenExecutionRequest setLoggingLevel( int loggingLevel );
Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResult.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResult.java?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResult.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResult.java Tue Aug 24 22:46:07 2010
@@ -21,7 +21,7 @@ package org.apache.maven.execution;
import java.util.List;
-import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
+import org.apache.maven.project.DependencyResolutionResult;
import org.apache.maven.project.MavenProject;
/**
@@ -35,8 +35,8 @@ public interface MavenExecutionResult
MavenExecutionResult setTopologicallySortedProjects( List<MavenProject> projects );
List<MavenProject> getTopologicallySortedProjects();
- MavenExecutionResult setArtifactResolutionResult( ArtifactResolutionResult result );
- ArtifactResolutionResult getArtifactResolutionResult();
+ MavenExecutionResult setDependencyResolutionResult( DependencyResolutionResult result );
+ DependencyResolutionResult getDependencyResolutionResult();
// for each exception
// - knowing what artifacts are missing
Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java Tue Aug 24 22:46:07 2010
@@ -36,6 +36,7 @@ import org.apache.maven.project.ProjectB
import org.apache.maven.settings.Settings;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.sonatype.aether.RepositorySystemSession;
/**
* @author Jason van Zyl
@@ -50,6 +51,8 @@ public class MavenSession
private MavenExecutionResult result;
+ private RepositorySystemSession repositorySession;
+
private final Settings settings;
private Properties executionProperties;
@@ -115,12 +118,14 @@ public class MavenSession
setProjects( projects );
}
- public MavenSession( PlexusContainer container, MavenExecutionRequest request, MavenExecutionResult result )
+ public MavenSession( PlexusContainer container, RepositorySystemSession repositorySession, MavenExecutionRequest request,
+ MavenExecutionResult result )
{
this.container = container;
this.request = request;
this.result = result;
this.settings = new SettingsAdapter( request );
+ this.repositorySession = repositorySession;
}
public void setProjects( List<MavenProject> projects )
@@ -180,9 +185,10 @@ public class MavenSession
return container.lookupMap( role );
}
+ @Deprecated
public RepositoryCache getRepositoryCache()
{
- return request.getRepositoryCache();
+ return null;
}
public ArtifactRepository getLocalRepository()
@@ -277,7 +283,7 @@ public class MavenSession
public ProjectBuildingRequest getProjectBuildingRequest()
{
- return request.getProjectBuildingRequest();
+ return request.getProjectBuildingRequest().setRepositorySession( getRepositorySession() );
}
public List<String> getPluginGroups()
@@ -382,4 +388,10 @@ public class MavenSession
{
this.parallel = parallel;
}
+
+ public RepositorySystemSession getRepositorySession()
+ {
+ return repositorySession;
+ }
+
}
Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultSchedules.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultSchedules.java?rev=988749&r1=988748&r2=988749&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultSchedules.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultSchedules.java Tue Aug 24 22:46:07 2010
@@ -21,14 +21,7 @@ package org.apache.maven.lifecycle;
import org.apache.maven.lifecycle.internal.BuilderCommon;
import org.apache.maven.lifecycle.internal.ExecutionPlanItem;
-import org.apache.maven.plugin.InvalidPluginDescriptorException;
import org.apache.maven.plugin.MojoExecution;
-import org.apache.maven.plugin.MojoNotFoundException;
-import org.apache.maven.plugin.PluginDescriptorParsingException;
-import org.apache.maven.plugin.PluginNotFoundException;
-import org.apache.maven.plugin.PluginResolutionException;
-import org.apache.maven.plugin.prefix.NoPluginFoundForPrefixException;
-import org.apache.maven.plugin.version.PluginVersionResolutionException;
import org.apache.maven.project.MavenProject;
import java.util.ArrayList;
@@ -55,9 +48,6 @@ public class DefaultSchedules
}
public List<ExecutionPlanItem> createExecutionPlanItem( MavenProject mavenProject, List<MojoExecution> executions )
- throws PluginNotFoundException, PluginResolutionException, LifecyclePhaseNotFoundException,
- PluginDescriptorParsingException, MojoNotFoundException, InvalidPluginDescriptorException,
- NoPluginFoundForPrefixException, LifecycleNotFoundException, PluginVersionResolutionException
{
BuilderCommon.attachToThread( mavenProject );