View Javadoc

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 }