001package org.apache.maven.artifact.resolver;
002
003/*
004 * Licensed to the Apache Software Foundation (ASF) under one
005 * or more contributor license agreements.  See the NOTICE file
006 * distributed with this work for additional information
007 * regarding copyright ownership.  The ASF licenses this file
008 * to you under the Apache License, Version 2.0 (the
009 * "License"); you may not use this file except in compliance
010 * with the License.  You may obtain a copy of the License at
011 *
012 *  http://www.apache.org/licenses/LICENSE-2.0
013 *
014 * Unless required by applicable law or agreed to in writing,
015 * software distributed under the License is distributed on an
016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017 * KIND, either express or implied.  See the License for the
018 * specific language governing permissions and limitations
019 * under the License.
020 */
021
022import java.util.List;
023import java.util.Map;
024import java.util.Set;
025
026import org.apache.maven.artifact.Artifact;
027import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
028import org.apache.maven.artifact.repository.ArtifactRepository;
029import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
030import org.apache.maven.wagon.events.TransferListener;
031
032/**
033 * @author Jason van Zyl
034 */
035// Just hide the one method we want behind the RepositorySystem interface.
036public interface ArtifactResolver
037{
038
039    ArtifactResolutionResult resolve( ArtifactResolutionRequest request );
040
041    // The rest is deprecated
042
043    // USED BY MAVEN ASSEMBLY PLUGIN 2.2-beta-2
044    @Deprecated
045    String ROLE = ArtifactResolver.class.getName();
046
047    // USED BY SUREFIRE, DEPENDENCY PLUGIN
048    @Deprecated
049    ArtifactResolutionResult resolveTransitively( Set<Artifact> artifacts, Artifact originatingArtifact,
050                                                  ArtifactRepository localRepository,
051                                                  List<ArtifactRepository> remoteRepositories,
052                                                  ArtifactMetadataSource source, ArtifactFilter filter )
053        throws ArtifactResolutionException, ArtifactNotFoundException;
054
055    // USED BY MAVEN ASSEMBLY PLUGIN
056    @Deprecated
057    ArtifactResolutionResult resolveTransitively( Set<Artifact> artifacts, Artifact originatingArtifact,
058                                                  Map managedVersions, ArtifactRepository localRepository,
059                                                  List<ArtifactRepository> remoteRepositories,
060                                                  ArtifactMetadataSource source )
061        throws ArtifactResolutionException, ArtifactNotFoundException;
062
063    // USED BY MAVEN ASSEMBLY PLUGIN
064    @Deprecated
065    ArtifactResolutionResult resolveTransitively( Set<Artifact> artifacts, Artifact originatingArtifact,
066                                                  Map managedVersions, ArtifactRepository localRepository,
067                                                  List<ArtifactRepository> remoteRepositories,
068                                                  ArtifactMetadataSource source, ArtifactFilter filter )
069        throws ArtifactResolutionException, ArtifactNotFoundException;
070
071    @Deprecated
072    ArtifactResolutionResult resolveTransitively( Set<Artifact> artifacts, Artifact originatingArtifact,
073                                                  List<ArtifactRepository> remoteRepositories,
074                                                  ArtifactRepository localRepository, ArtifactMetadataSource source )
075        throws ArtifactResolutionException, ArtifactNotFoundException;
076
077    @Deprecated
078    ArtifactResolutionResult resolveTransitively( Set<Artifact> artifacts, Artifact originatingArtifact,
079                                                  Map managedVersions, ArtifactRepository localRepository,
080                                                  List<ArtifactRepository> remoteRepositories,
081                                                  ArtifactMetadataSource source, ArtifactFilter filter,
082                                                  List<ResolutionListener> listeners )
083        throws ArtifactResolutionException, ArtifactNotFoundException;
084
085    @Deprecated
086    ArtifactResolutionResult resolveTransitively( Set<Artifact> artifacts, Artifact originatingArtifact,
087                                                  List<ArtifactRepository> remoteRepositories,
088                                                  ArtifactRepository localRepository, ArtifactMetadataSource source,
089                                                  List<ResolutionListener> listeners )
090        throws ArtifactResolutionException, ArtifactNotFoundException;
091
092    // USED BY REMOTE RESOURCES PLUGIN, DEPENDENCY PLUGIN
093    @Deprecated
094    void resolve( Artifact artifact, List<ArtifactRepository> remoteRepositories, ArtifactRepository localRepository )
095        throws ArtifactResolutionException, ArtifactNotFoundException;
096
097    // USED BY REMOTE RESOURCES PLUGIN
098    @Deprecated
099    void resolve( Artifact artifact, List<ArtifactRepository> remoteRepositories, ArtifactRepository localRepository,
100                  TransferListener downloadMonitor )
101        throws ArtifactResolutionException, ArtifactNotFoundException;
102
103    // USED BY DEPENDENCY PLUGIN, ARCHETYPE DOWNLOADER
104    @Deprecated
105    void resolveAlways( Artifact artifact, List<ArtifactRepository> remoteRepositories,
106                        ArtifactRepository localRepository )
107        throws ArtifactResolutionException, ArtifactNotFoundException;
108}