1 package org.apache.maven.plugin.testing.stubs;
2
3 /*
4 * Licensed to the Apache Software Foundation (ASF) under one
5 * or more contributor license agreements. See the NOTICE file
6 * distributed with this work for additional information
7 * regarding copyright ownership. The ASF licenses this file
8 * to you under the Apache License, Version 2.0 (the
9 * "License"); you may not use this file except in compliance
10 * with the License. You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing,
15 * software distributed under the License is distributed on an
16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17 * KIND, either express or implied. See the License for the
18 * specific language governing permissions and limitations
19 * under the License.
20 */
21
22 import java.io.IOException;
23 import java.util.List;
24 import java.util.Map;
25 import java.util.Set;
26
27 import org.apache.maven.artifact.Artifact;
28 import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
29 import org.apache.maven.artifact.repository.ArtifactRepository;
30 import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
31 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
32 import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
33 import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
34 import org.apache.maven.artifact.resolver.ArtifactResolver;
35 import org.apache.maven.artifact.resolver.ResolutionListener;
36 import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
37 import org.apache.maven.plugin.testing.ArtifactStubFactory;
38 import org.apache.maven.wagon.events.TransferListener;
39
40 /**
41 * Stub resolver. The constructor allows the specification of the exception to throw so that handling can be tested too.
42 *
43 * @author <a href="mailto:brianf@apache.org">Brian Fox</a>
44 * @version $Id$
45 */
46 public class StubArtifactResolver
47 implements ArtifactResolver
48 {
49 private boolean throwArtifactResolutionException;
50
51 private boolean throwArtifactNotFoundException;
52
53 private ArtifactStubFactory factory;
54
55 /**
56 * Default constructor
57 *
58 * @param factory
59 * @param throwArtifactResolutionException
60 * @param throwArtifactNotFoundException
61 */
62 public StubArtifactResolver( ArtifactStubFactory factory, boolean throwArtifactResolutionException,
63 boolean throwArtifactNotFoundException )
64 {
65 this.throwArtifactNotFoundException = throwArtifactNotFoundException;
66 this.throwArtifactResolutionException = throwArtifactResolutionException;
67 this.factory = factory;
68 }
69
70 /**
71 * Creates dummy file and sets it in the artifact to simulate resolution
72 *
73 * @see org.apache.maven.artifact.resolver.ArtifactResolver#resolve(org.apache.maven.artifact.Artifact, java.util.List, org.apache.maven.artifact.repository.ArtifactRepository)
74 */
75 public void resolve( Artifact artifact, List<ArtifactRepository> remoteRepositories, ArtifactRepository localRepository )
76 throws ArtifactResolutionException, ArtifactNotFoundException
77 {
78 if ( !this.throwArtifactNotFoundException && !this.throwArtifactResolutionException )
79 {
80 try
81 {
82 if ( factory != null )
83 {
84 factory.setArtifactFile( artifact, factory.getWorkingDir() );
85 }
86 }
87 catch ( IOException e )
88 {
89 throw new ArtifactResolutionException( "IOException: " + e.getMessage(), artifact, e );
90 }
91 }
92 else
93 {
94 if ( throwArtifactResolutionException )
95 {
96 throw new ArtifactResolutionException( "Catch!", artifact );
97 }
98
99 throw new ArtifactNotFoundException( "Catch!", artifact );
100 }
101 }
102
103 /**
104 * @return <code>null</code>.
105 * @see org.apache.maven.artifact.resolver.ArtifactResolver#resolveTransitively(java.util.Set, org.apache.maven.artifact.Artifact, java.util.List, org.apache.maven.artifact.repository.ArtifactRepository, org.apache.maven.artifact.metadata.ArtifactMetadataSource)
106 */
107 public ArtifactResolutionResult resolveTransitively( Set<Artifact> artifacts, Artifact originatingArtifact,
108 List<ArtifactRepository> remoteRepositories, ArtifactRepository localRepository,
109 ArtifactMetadataSource source )
110 throws ArtifactResolutionException, ArtifactNotFoundException
111 {
112 return null;
113 }
114
115 /**
116 * @return <code>null</code>.
117 * @see org.apache.maven.artifact.resolver.ArtifactResolver#resolveTransitively(java.util.Set, org.apache.maven.artifact.Artifact, java.util.List, org.apache.maven.artifact.repository.ArtifactRepository, org.apache.maven.artifact.metadata.ArtifactMetadataSource, java.util.List)
118 */
119 public ArtifactResolutionResult resolveTransitively( Set<Artifact> artifacts, Artifact originatingArtifact,
120 List<ArtifactRepository> remoteRepositories, ArtifactRepository localRepository,
121 ArtifactMetadataSource source, List<ResolutionListener> listeners )
122 throws ArtifactResolutionException, ArtifactNotFoundException
123 {
124 return null;
125 }
126
127 /**
128 * @return <code>null</code>.
129 * @see org.apache.maven.artifact.resolver.ArtifactResolver#resolveTransitively(java.util.Set, org.apache.maven.artifact.Artifact, org.apache.maven.artifact.repository.ArtifactRepository, java.util.List, org.apache.maven.artifact.metadata.ArtifactMetadataSource, org.apache.maven.artifact.resolver.filter.ArtifactFilter)
130 */
131 public ArtifactResolutionResult resolveTransitively( Set<Artifact> artifacts, Artifact originatingArtifact,
132 ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories,
133 ArtifactMetadataSource source, ArtifactFilter filter )
134 throws ArtifactResolutionException, ArtifactNotFoundException
135 {
136 return null;
137 }
138
139 /**
140 * @return <code>null</code>.
141 * @see org.apache.maven.artifact.resolver.ArtifactResolver#resolveTransitively(java.util.Set, org.apache.maven.artifact.Artifact, java.util.Map, org.apache.maven.artifact.repository.ArtifactRepository, java.util.List, org.apache.maven.artifact.metadata.ArtifactMetadataSource)
142 */
143 public ArtifactResolutionResult resolveTransitively( Set<Artifact> artifacts, Artifact originatingArtifact,
144 Map managedVersions, ArtifactRepository localRepository,
145 List<ArtifactRepository> remoteRepositories, ArtifactMetadataSource source )
146 throws ArtifactResolutionException, ArtifactNotFoundException
147 {
148 return null;
149 }
150
151 /**
152 * @return <code>null</code>.
153 * @see org.apache.maven.artifact.resolver.ArtifactResolver#resolveTransitively(java.util.Set, org.apache.maven.artifact.Artifact, java.util.Map, org.apache.maven.artifact.repository.ArtifactRepository, java.util.List, org.apache.maven.artifact.metadata.ArtifactMetadataSource, org.apache.maven.artifact.resolver.filter.ArtifactFilter)
154 */
155 public ArtifactResolutionResult resolveTransitively( Set<Artifact> artifacts, Artifact originatingArtifact,
156 Map managedVersions, ArtifactRepository localRepository,
157 List<ArtifactRepository> remoteRepositories, ArtifactMetadataSource source,
158 ArtifactFilter filter )
159 throws ArtifactResolutionException, ArtifactNotFoundException
160 {
161 return null;
162 }
163
164 /**
165 * @return <code>null</code>.
166 * @see org.apache.maven.artifact.resolver.ArtifactResolver#resolveTransitively(java.util.Set, org.apache.maven.artifact.Artifact, java.util.Map, org.apache.maven.artifact.repository.ArtifactRepository, java.util.List, org.apache.maven.artifact.metadata.ArtifactMetadataSource, org.apache.maven.artifact.resolver.filter.ArtifactFilter, java.util.List)
167 */
168 public ArtifactResolutionResult resolveTransitively( Set<Artifact> artifacts, Artifact originatingArtifact,
169 Map managedVersions, ArtifactRepository localRepository,
170 List<ArtifactRepository> remoteRepositories, ArtifactMetadataSource source,
171 ArtifactFilter filter, List<ResolutionListener> listeners )
172 throws ArtifactResolutionException, ArtifactNotFoundException
173 {
174 return null;
175 }
176
177 /**
178 * By default, do nothing.
179 *
180 * @see org.apache.maven.artifact.resolver.ArtifactResolver#resolveAlways(org.apache.maven.artifact.Artifact, java.util.List, org.apache.maven.artifact.repository.ArtifactRepository)
181 */
182 public void resolveAlways( Artifact artifact, List<ArtifactRepository> remoteRepositories, ArtifactRepository localRepository )
183 throws ArtifactResolutionException, ArtifactNotFoundException
184 {
185 // nop
186 }
187
188 public void resolve( Artifact artifact, List<ArtifactRepository> remoteRepositories, ArtifactRepository localRepository,
189 TransferListener downloadMonitor )
190 throws ArtifactResolutionException, ArtifactNotFoundException
191 {
192 // TODO Auto-generated method stub
193
194 }
195
196 public ArtifactResolutionResult collect( ArtifactResolutionRequest request )
197 {
198 return null;
199 }
200
201 public ArtifactResolutionResult resolve( ArtifactResolutionRequest request )
202 {
203 return null;
204 }
205 }