1 package org.apache.maven.artifact.metadata;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.HashSet;
23 import java.util.List;
24 import java.util.Set;
25
26 import org.apache.maven.artifact.Artifact;
27 import org.apache.maven.artifact.factory.ArtifactFactory;
28 import org.apache.maven.artifact.repository.ArtifactRepository;
29 import org.apache.maven.artifact.versioning.ArtifactVersion;
30 import org.apache.maven.repository.legacy.metadata.MetadataResolutionRequest;
31 import org.codehaus.plexus.component.annotations.Component;
32 import org.codehaus.plexus.component.annotations.Requirement;
33
34 @Component(role = ArtifactMetadataSource.class, hint="test")
35 public class TestMetadataSource
36 implements ArtifactMetadataSource
37 {
38 @Requirement
39 private ArtifactFactory factory;
40
41 public ResolutionGroup retrieve( Artifact artifact, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories )
42 throws ArtifactMetadataRetrievalException
43 {
44 Set dependencies = new HashSet();
45
46 if ( "g".equals( artifact.getArtifactId() ) )
47 {
48 Artifact a = null;
49 try
50 {
51 a = factory.createBuildArtifact( "org.apache.maven", "h", "1.0", "jar" );
52 dependencies.add( a );
53 }
54 catch ( Exception e )
55 {
56 throw new ArtifactMetadataRetrievalException( "Error retrieving metadata", e, a );
57 }
58 }
59
60 if ( "i".equals( artifact.getArtifactId() ) )
61 {
62 Artifact a = null;
63 try
64 {
65 a = factory.createBuildArtifact( "org.apache.maven", "j", "1.0-SNAPSHOT", "jar" );
66 dependencies.add( a );
67 }
68 catch ( Exception e )
69 {
70 throw new ArtifactMetadataRetrievalException( "Error retrieving metadata", e, a );
71 }
72 }
73
74
75 return new ResolutionGroup( artifact, dependencies, remoteRepositories );
76 }
77
78 public List<ArtifactVersion> retrieveAvailableVersions( Artifact artifact, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories )
79 throws ArtifactMetadataRetrievalException
80 {
81 throw new UnsupportedOperationException( "Cannot get available versions in this test case" );
82 }
83
84 public List<ArtifactVersion> retrieveAvailableVersionsFromDeploymentRepository( Artifact artifact, ArtifactRepository localRepository, ArtifactRepository remoteRepository )
85 throws ArtifactMetadataRetrievalException
86 {
87 throw new UnsupportedOperationException( "Cannot get available versions in this test case" );
88 }
89
90 public ResolutionGroup retrieve( MetadataResolutionRequest request )
91 throws ArtifactMetadataRetrievalException
92 {
93 return retrieve( request.getArtifact(), request.getLocalRepository(), request.getRemoteRepositories() );
94 }
95
96 public List<ArtifactVersion> retrieveAvailableVersions( MetadataResolutionRequest request )
97 throws ArtifactMetadataRetrievalException
98 {
99 return retrieveAvailableVersions( request.getArtifact(), request.getLocalRepository(), request.getRemoteRepositories() );
100 }
101
102 }