]> source.dussan.org Git - archiva.git/blob
5c1529f3d7e0122031a94596da5fd22d2dd5750e
[archiva.git] /
1 package org.apache.maven.archiva.discoverer;
2
3 /*
4  * Copyright 2005-2006 The Apache Software Foundation.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *      http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18
19 import org.apache.maven.archiva.discoverer.filter.AcceptAllArtifactFilter;
20 import org.apache.maven.archiva.discoverer.filter.SnapshotArtifactFilter;
21 import org.apache.maven.artifact.Artifact;
22 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
23
24 import java.io.File;
25 import java.net.MalformedURLException;
26 import java.util.ArrayList;
27 import java.util.Collections;
28 import java.util.HashMap;
29 import java.util.Iterator;
30 import java.util.List;
31 import java.util.Map;
32
33 /**
34  * Test the default artifact discoverer.
35  *
36  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
37  * @version $Id:DefaultArtifactDiscovererTest.java 437105 2006-08-26 17:22:22 +1000 (Sat, 26 Aug 2006) brett $
38  */
39 public class DefaultArtifactDiscovererTest
40     extends AbstractArtifactDiscovererTest
41 {
42     private static final List JAVAX_BLACKLIST = Collections.singletonList( "javax/**" );
43
44     protected String getLayout()
45     {
46         return "default";
47     }
48
49     protected File getRepositoryFile()
50     {
51         return getTestFile( "src/test/repository" );
52     }
53
54     public void testDefaultExcludes()
55         throws DiscovererException
56     {
57         List artifacts = discoverArtifacts();
58         assertNotNull( "Check artifacts not null", artifacts );
59         boolean found = false;
60         for ( Iterator i = discoverer.getExcludedPathsIterator(); i.hasNext() && !found; )
61         {
62             DiscovererPath dPath = (DiscovererPath) i.next();
63
64             String path = dPath.getPath();
65
66             boolean b = path.indexOf( "CVS" ) >= 0;
67             if ( b )
68             {
69                 found = true;
70                 assertEquals( "Check comment", "Artifact was in the specified list of exclusions", dPath.getComment() );
71             }
72         }
73         assertTrue( "Check exclusion was found", found );
74
75         for ( Iterator i = artifacts.iterator(); i.hasNext(); )
76         {
77             Artifact a = (Artifact) i.next();
78             assertFalse( "Check not CVS", a.getFile().getPath().indexOf( "CVS" ) >= 0 );
79             assertFalse( "Check not .svn", a.getFile().getPath().indexOf( ".svn" ) >= 0 );
80         }
81     }
82
83     public void testStandardExcludes()
84         throws DiscovererException
85     {
86         List artifacts = discoverArtifacts();
87         assertNotNull( "Check artifacts not null", artifacts );
88         boolean found = false;
89         for ( Iterator i = discoverer.getExcludedPathsIterator(); i.hasNext() && !found; )
90         {
91             DiscovererPath dPath = (DiscovererPath) i.next();
92
93             String path = dPath.getPath();
94
95             if ( "KEYS".equals( path ) )
96             {
97                 found = true;
98                 assertEquals( "Check comment", "Artifact was in the specified list of exclusions", dPath.getComment() );
99             }
100         }
101         assertTrue( "Check exclusion was found", found );
102
103         for ( Iterator i = artifacts.iterator(); i.hasNext(); )
104         {
105             Artifact a = (Artifact) i.next();
106             assertFalse( "Check not KEYS", "KEYS".equals( a.getFile().getName() ) );
107         }
108     }
109
110     public void testBlacklistedExclude()
111         throws DiscovererException
112     {
113         List artifacts = discoverArtifactsWithBlacklist( JAVAX_BLACKLIST );
114         assertNotNull( "Check artifacts not null", artifacts );
115         boolean found = false;
116         for ( Iterator i = discoverer.getExcludedPathsIterator(); i.hasNext() && !found; )
117         {
118             DiscovererPath dPath = (DiscovererPath) i.next();
119
120             String path = dPath.getPath();
121
122             if ( "javax/sql/jdbc/2.0/jdbc-2.0.jar".equals( path.replace( '\\', '/' ) ) )
123             {
124                 found = true;
125                 assertEquals( "Check comment is about blacklisting", "Artifact was in the specified list of exclusions",
126                               dPath.getComment() );
127             }
128         }
129         assertTrue( "Check exclusion was found", found );
130
131         assertFalse( "Check jdbc not included", artifacts.contains( createArtifact( "javax.sql", "jdbc", "2.0" ) ) );
132     }
133
134     public void testKickoutWithShortPath()
135         throws DiscovererException
136     {
137         List artifacts = discoverArtifacts();
138         assertNotNull( "Check artifacts not null", artifacts );
139         boolean found = false;
140         for ( Iterator i = discoverer.getKickedOutPathsIterator(); i.hasNext() && !found; )
141         {
142             DiscovererPath dPath = (DiscovererPath) i.next();
143
144             String path = dPath.getPath();
145
146             if ( "invalid/invalid-1.0.jar".equals( path.replace( '\\', '/' ) ) )
147             {
148                 found = true;
149                 assertEquals( "Check reason for kickout", "Path is too short to build an artifact from",
150                               dPath.getComment() );
151
152             }
153         }
154         assertTrue( "Check kickout was found", found );
155
156         for ( Iterator i = artifacts.iterator(); i.hasNext(); )
157         {
158             Artifact a = (Artifact) i.next();
159             assertFalse( "Check not invalid-1.0.jar", "invalid-1.0.jar".equals( a.getFile().getName() ) );
160         }
161     }
162
163     public void testKickoutWithWrongArtifactId()
164         throws DiscovererException
165     {
166         List artifacts = discoverArtifacts();
167         assertNotNull( "Check artifacts not null", artifacts );
168         boolean found = false;
169         for ( Iterator i = discoverer.getKickedOutPathsIterator(); i.hasNext() && !found; )
170         {
171             DiscovererPath dPath = (DiscovererPath) i.next();
172
173             String path = dPath.getPath();
174
175             if ( "org/apache/maven/test/1.0-SNAPSHOT/wrong-artifactId-1.0-20050611.112233-1.jar".equals(
176                 path.replace( '\\', '/' ) ) )
177             {
178                 found = true;
179                 assertEquals( "Check reason for kickout", "Path filename does not correspond to an artifact",
180                               dPath.getComment() );
181             }
182         }
183         assertTrue( "Check kickout was found", found );
184
185         for ( Iterator i = artifacts.iterator(); i.hasNext(); )
186         {
187             Artifact a = (Artifact) i.next();
188             assertFalse( "Check not wrong jar",
189                          "wrong-artifactId-1.0-20050611.112233-1.jar".equals( a.getFile().getName() ) );
190         }
191     }
192
193     public void testKickoutWithNoType()
194         throws DiscovererException
195     {
196         List artifacts = discoverArtifacts();
197         assertNotNull( "Check artifacts not null", artifacts );
198         boolean found = false;
199         for ( Iterator i = discoverer.getKickedOutPathsIterator(); i.hasNext() && !found; )
200         {
201             DiscovererPath dPath = (DiscovererPath) i.next();
202
203             String path = dPath.getPath();
204
205             if ( "invalid/invalid/1/invalid-1".equals( path.replace( '\\', '/' ) ) )
206             {
207                 found = true;
208                 assertEquals( "Check reason for kickout", "Path filename does not have an extension",
209                               dPath.getComment() );
210             }
211         }
212         assertTrue( "Check kickout was found", found );
213
214         for ( Iterator i = artifacts.iterator(); i.hasNext(); )
215         {
216             Artifact a = (Artifact) i.next();
217             assertFalse( "Check not 'invalid-1'", "invalid-1".equals( a.getFile().getName() ) );
218         }
219     }
220
221     public void testKickoutWithWrongVersion()
222         throws DiscovererException
223     {
224         List artifacts = discoverArtifacts();
225         assertNotNull( "Check artifacts not null", artifacts );
226         boolean found = false;
227         for ( Iterator i = discoverer.getKickedOutPathsIterator(); i.hasNext() && !found; )
228         {
229             DiscovererPath dPath = (DiscovererPath) i.next();
230
231             String path = dPath.getPath();
232
233             if ( "invalid/invalid/1.0/invalid-2.0.jar".equals( path.replace( '\\', '/' ) ) )
234             {
235                 found = true;
236                 assertEquals( "Check reason for kickout", "Built artifact version does not match path version",
237                               dPath.getComment() );
238             }
239         }
240         assertTrue( "Check kickout was found", found );
241
242         for ( Iterator i = artifacts.iterator(); i.hasNext(); )
243         {
244             Artifact a = (Artifact) i.next();
245             assertFalse( "Check not 'invalid-2.0.jar'", "invalid-2.0.jar".equals( a.getFile().getName() ) );
246         }
247     }
248
249     public void testKickoutWithLongerVersion()
250         throws DiscovererException
251     {
252         List artifacts = discoverArtifacts();
253         assertNotNull( "Check artifacts not null", artifacts );
254         boolean found = false;
255         for ( Iterator i = discoverer.getKickedOutPathsIterator(); i.hasNext() && !found; )
256         {
257             DiscovererPath dPath = (DiscovererPath) i.next();
258
259             String path = dPath.getPath();
260
261             if ( "invalid/invalid/1.0/invalid-1.0b.jar".equals( path.replace( '\\', '/' ) ) )
262             {
263                 found = true;
264                 assertEquals( "Check reason for kickout", "Path version does not corresspond to an artifact version",
265                               dPath.getComment() );
266             }
267         }
268         assertTrue( "Check kickout was found", found );
269
270         for ( Iterator i = artifacts.iterator(); i.hasNext(); )
271         {
272             Artifact a = (Artifact) i.next();
273             assertFalse( "Check not 'invalid-1.0b.jar'", "invalid-1.0b.jar".equals( a.getFile().getName() ) );
274         }
275     }
276
277     public void testKickoutWithWrongSnapshotVersion()
278         throws DiscovererException
279     {
280         List artifacts = discoverArtifacts();
281         assertNotNull( "Check artifacts not null", artifacts );
282         boolean found = false;
283         for ( Iterator i = discoverer.getKickedOutPathsIterator(); i.hasNext() && !found; )
284         {
285             DiscovererPath dPath = (DiscovererPath) i.next();
286
287             String path = dPath.getPath();
288
289             if ( "invalid/invalid/1.0-SNAPSHOT/invalid-1.0.jar".equals( path.replace( '\\', '/' ) ) )
290             {
291                 found = true;
292                 assertEquals( "Check reason for kickout",
293                               "Failed to create a snapshot artifact: invalid:invalid:jar:1.0:runtime",
294                               dPath.getComment() );
295             }
296         }
297         assertTrue( "Check kickout was found", found );
298
299         for ( Iterator i = artifacts.iterator(); i.hasNext(); )
300         {
301             Artifact a = (Artifact) i.next();
302             assertFalse( "Check not 'invalid-1.0.jar'", "invalid-1.0.jar".equals( a.getFile().getName() ) );
303         }
304     }
305
306     public void testKickoutWithSnapshotBaseVersion()
307         throws DiscovererException
308     {
309         List artifacts = discoverArtifacts();
310         assertNotNull( "Check artifacts not null", artifacts );
311         boolean found = false;
312         for ( Iterator i = discoverer.getKickedOutPathsIterator(); i.hasNext() && !found; )
313         {
314             DiscovererPath dPath = (DiscovererPath) i.next();
315
316             String path = dPath.getPath();
317
318             if ( "invalid/invalid/1.0-20050611.123456-1/invalid-1.0-20050611.123456-1.jar".equals(
319                 path.replace( '\\', '/' ) ) )
320             {
321                 found = true;
322                 assertEquals( "Check reason for kickout",
323                               "Built snapshot artifact base version does not match path version: invalid:invalid:jar:1.0-SNAPSHOT:runtime; should have been version: 1.0-20050611.123456-1",
324                               dPath.getComment() );
325             }
326         }
327         assertTrue( "Check kickout was found", found );
328
329         for ( Iterator i = artifacts.iterator(); i.hasNext(); )
330         {
331             Artifact a = (Artifact) i.next();
332             assertFalse( "Check not 'invalid-1.0-20050611-123456-1.jar'",
333                          "invalid-1.0-20050611.123456-1.jar".equals( a.getFile().getName() ) );
334         }
335     }
336
337     public void testInclusion()
338         throws DiscovererException
339     {
340         List artifacts = discoverArtifactsWithSnapshots();
341         assertNotNull( "Check artifacts not null", artifacts );
342
343         assertTrue( "Check normal included",
344                     artifacts.contains( createArtifact( "org.apache.maven", "testing", "1.0" ) ) );
345     }
346
347     public void testArtifactWithClassifier()
348         throws DiscovererException
349     {
350         List artifacts = discoverArtifactsWithSnapshots();
351         assertNotNull( "Check artifacts not null", artifacts );
352
353         assertTrue( "Check normal included",
354                     artifacts.contains( createArtifact( "org.apache.maven", "some-ejb", "1.0", "jar", "client" ) ) );
355     }
356
357     public void testJavaSourcesInclusion()
358         throws DiscovererException
359     {
360         List artifacts = discoverArtifactsWithSnapshots();
361         assertNotNull( "Check artifacts not null", artifacts );
362
363         assertTrue( "Check normal included", artifacts.contains(
364             createArtifact( "org.apache.maven", "testing", "1.0", "java-source", "sources" ) ) );
365     }
366
367     public void testDistributionInclusion()
368         throws DiscovererException
369     {
370         List artifacts = discoverArtifactsWithSnapshots();
371         assertNotNull( "Check artifacts not null", artifacts );
372
373         assertTrue( "Check zip included",
374                     artifacts.contains( createArtifact( "org.apache.maven", "testing", "1.0", "distribution-zip" ) ) );
375
376         assertTrue( "Check tar.gz included",
377                     artifacts.contains( createArtifact( "org.apache.maven", "testing", "1.0", "distribution-tgz" ) ) );
378     }
379
380     public void testSnapshotInclusion()
381         throws DiscovererException
382     {
383         List artifacts = discoverArtifactsWithSnapshots();
384         assertNotNull( "Check artifacts not null", artifacts );
385
386         assertTrue( "Check normal included", artifacts.contains( createArtifact( "javax.sql", "jdbc", "2.0" ) ) );
387         assertTrue( "Check snapshot included",
388                     artifacts.contains( createArtifact( "org.apache.maven", "test", "1.0-20050611.112233-1" ) ) );
389     }
390
391     public void testSnapshotInclusionWithClassifier()
392         throws DiscovererException
393     {
394         List artifacts = discoverArtifactsWithSnapshots();
395         assertNotNull( "Check artifacts not null", artifacts );
396
397         assertTrue( "Check snapshot included", artifacts.contains(
398             createArtifact( "org.apache.maven", "test", "1.0-20050611.112233-1", "jar", "javadoc" ) ) );
399     }
400
401     public void testSnapshotExclusion()
402         throws DiscovererException
403     {
404         List artifacts = discoverArtifacts();
405         assertNotNull( "Check artifacts not null", artifacts );
406
407         assertTrue( "Check normal included", artifacts.contains( createArtifact( "javax.sql", "jdbc", "2.0" ) ) );
408         assertFalse( "Check snapshot included",
409                      artifacts.contains( createArtifact( "org.apache.maven", "test", "1.0-SNAPSHOT" ) ) );
410     }
411
412     public void testFileSet()
413         throws DiscovererException
414     {
415         List artifacts = discoverArtifactsWithSnapshots();
416         assertNotNull( "Check artifacts not null", artifacts );
417
418         for ( Iterator i = artifacts.iterator(); i.hasNext(); )
419         {
420             Artifact artifact = (Artifact) i.next();
421             assertNotNull( "Check file is set", artifact.getFile() );
422         }
423     }
424
425     public void testRepositorySet()
426         throws MalformedURLException, DiscovererException
427     {
428         List artifacts = discoverArtifactsWithSnapshots();
429         assertNotNull( "Check artifacts not null", artifacts );
430
431         String url = repository.getUrl();
432         for ( Iterator i = artifacts.iterator(); i.hasNext(); )
433         {
434             Artifact artifact = (Artifact) i.next();
435             assertNotNull( "Check repository set", artifact.getRepository() );
436             assertEquals( "Check repository url is correct", url, artifact.getRepository().getUrl() );
437         }
438     }
439
440     public void testStandalonePoms()
441         throws DiscovererException
442     {
443         List artifacts = discoverArtifacts();
444
445         // cull down to actual artifacts (only standalone poms will have type = pom)
446         Map keyedArtifacts = new HashMap();
447         for ( Iterator i = artifacts.iterator(); i.hasNext(); )
448         {
449             Artifact a = (Artifact) i.next();
450             String key = a.getGroupId() + ":" + a.getArtifactId() + ":" + a.getVersion();
451             if ( !"pom".equals( a.getType() ) || !keyedArtifacts.containsKey( key ) )
452             {
453                 keyedArtifacts.put( key, a );
454             }
455         }
456
457         List models = new ArrayList();
458
459         for ( Iterator i = keyedArtifacts.values().iterator(); i.hasNext(); )
460         {
461             Artifact a = (Artifact) i.next();
462
463             if ( "pom".equals( a.getType() ) )
464             {
465                 models.add( a );
466             }
467         }
468
469         assertEquals( 4, models.size() );
470
471         // Define order we expect
472         Collections.sort( models );
473
474         Iterator itr = models.iterator();
475         Artifact model = (Artifact) itr.next();
476         assertEquals( "org.apache.maven", model.getGroupId() );
477         assertEquals( "B", model.getArtifactId() );
478         assertEquals( "1.0", model.getVersion() );
479         model = (Artifact) itr.next();
480         assertEquals( "org.apache.maven", model.getGroupId() );
481         assertEquals( "B", model.getArtifactId() );
482         assertEquals( "2.0", model.getVersion() );
483         model = (Artifact) itr.next();
484         assertEquals( "org.apache.maven", model.getGroupId() );
485         assertEquals( "discovery", model.getArtifactId() );
486         assertEquals( "1.0", model.getVersion() );
487         model = (Artifact) itr.next();
488         assertEquals( "org.apache.testgroup", model.getGroupId() );
489         assertEquals( "discovery", model.getArtifactId() );
490         assertEquals( "1.0", model.getVersion() );
491     }
492
493     public void testShortPath()
494         throws ComponentLookupException
495     {
496         try
497         {
498             discoverer.buildArtifact( "invalid/invalid-1.0.jar" );
499
500             fail( "Artifact should be null for short paths" );
501         }
502         catch ( DiscovererException e )
503         {
504             // excellent
505         }
506     }
507
508     public void testWrongArtifactId()
509         throws ComponentLookupException
510     {
511
512         try
513         {
514             discoverer.buildArtifact( "org/apache/maven/test/1.0-SNAPSHOT/wrong-artifactId-1.0-20050611.112233-1.jar" );
515
516             fail( "Artifact should be null for wrong ArtifactId" );
517         }
518         catch ( DiscovererException e )
519         {
520             // excellent
521         }
522     }
523
524     public void testNoType()
525         throws ComponentLookupException
526     {
527         try
528         {
529             discoverer.buildArtifact( "invalid/invalid/1/invalid-1" );
530
531             fail( "Artifact should be null for no type" );
532         }
533         catch ( DiscovererException e )
534         {
535             // excellent
536         }
537     }
538
539     public void testWrongVersion()
540         throws ComponentLookupException
541     {
542         try
543         {
544             discoverer.buildArtifact( "invalid/invalid/1.0/invalid-2.0.jar" );
545
546             fail( "Artifact should be null for wrong version" );
547         }
548         catch ( DiscovererException e )
549         {
550             // excellent
551         }
552     }
553
554     public void testLongVersion()
555         throws ComponentLookupException
556     {
557         try
558         {
559             discoverer.buildArtifact( "invalid/invalid/1.0/invalid-1.0b.jar" );
560
561             fail( "Artifact should be null for long version" );
562         }
563         catch ( DiscovererException e )
564         {
565             // excellent
566         }
567     }
568
569     public void testWrongSnapshotVersion()
570         throws ComponentLookupException
571     {
572         try
573         {
574             discoverer.buildArtifact( "invalid/invalid/1.0-SNAPSHOT/invalid-1.0.jar" );
575
576             fail( "Artifact should be null for wrong snapshot version" );
577         }
578         catch ( DiscovererException e )
579         {
580             // excellent
581         }
582     }
583
584     public void testSnapshotBaseVersion()
585         throws ComponentLookupException
586     {
587         try
588         {
589             discoverer.buildArtifact( "invalid/invalid/1.0-20050611.123456-1/invalid-1.0-20050611.123456-1.jar" );
590
591             fail( "Artifact should be null for snapshot base version" );
592         }
593         catch ( DiscovererException e )
594         {
595             // excellent
596         }
597     }
598
599     public void testPathWithClassifier()
600         throws ComponentLookupException, DiscovererException
601     {
602         String testPath = "org/apache/maven/some-ejb/1.0/some-ejb-1.0-client.jar";
603
604         Artifact artifact = discoverer.buildArtifact( testPath );
605
606         assertEquals( createArtifact( "org.apache.maven", "some-ejb", "1.0", "jar", "client" ), artifact );
607     }
608
609     public void testWithJavaSourceInclusion()
610         throws ComponentLookupException, DiscovererException
611     {
612         String testPath = "org/apache/maven/testing/1.0/testing-1.0-sources.jar";
613
614         Artifact artifact = discoverer.buildArtifact( testPath );
615
616         assertEquals( createArtifact( "org.apache.maven", "testing", "1.0", "java-source", "sources" ), artifact );
617     }
618
619     public void testDistributionArtifacts()
620         throws ComponentLookupException, DiscovererException
621     {
622         String testPath = "org/apache/maven/testing/1.0/testing-1.0.tar.gz";
623
624         Artifact artifact = discoverer.buildArtifact( testPath );
625
626         assertEquals( createArtifact( "org.apache.maven", "testing", "1.0", "distribution-tgz" ), artifact );
627
628         testPath = "org/apache/maven/testing/1.0/testing-1.0.zip";
629
630         artifact = discoverer.buildArtifact( testPath );
631
632         assertEquals( createArtifact( "org.apache.maven", "testing", "1.0", "distribution-zip" ), artifact );
633     }
634
635     public void testSnapshot()
636         throws ComponentLookupException, DiscovererException
637     {
638         String testPath = "org/apache/maven/test/1.0-SNAPSHOT/test-1.0-SNAPSHOT.jar";
639
640         Artifact artifact = discoverer.buildArtifact( testPath );
641
642         assertEquals( createArtifact( "org.apache.maven", "test", "1.0-SNAPSHOT" ), artifact );
643
644         testPath = "org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1.jar";
645
646         artifact = discoverer.buildArtifact( testPath );
647
648         assertEquals( createArtifact( "org.apache.maven", "test", "1.0-20050611.112233-1" ), artifact );
649     }
650
651     public void testNormal()
652         throws ComponentLookupException, DiscovererException
653     {
654         String testPath = "javax/sql/jdbc/2.0/jdbc-2.0.jar";
655
656         Artifact artifact = discoverer.buildArtifact( testPath );
657
658         assertEquals( createArtifact( "javax.sql", "jdbc", "2.0" ), artifact );
659     }
660
661     public void testSnapshotWithClassifier()
662         throws ComponentLookupException, DiscovererException
663     {
664         String testPath = "org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1-javadoc.jar";
665
666         Artifact artifact = discoverer.buildArtifact( testPath );
667
668         assertEquals( createArtifact( "org.apache.maven", "test", "1.0-20050611.112233-1", "jar", "javadoc" ),
669                       artifact );
670     }
671
672     private List discoverArtifactsWithSnapshots()
673         throws DiscovererException
674     {
675         return discoverer.discoverArtifacts( repository, null, new AcceptAllArtifactFilter() );
676     }
677
678     private List discoverArtifactsWithBlacklist( List list )
679         throws DiscovererException
680     {
681         return discoverer.discoverArtifacts( repository, list, new SnapshotArtifactFilter() );
682     }
683
684     private List discoverArtifacts()
685         throws DiscovererException
686     {
687         return discoverer.discoverArtifacts( repository, null, new SnapshotArtifactFilter() );
688     }
689 }