1 package org.apache.maven.it;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.it.util.ResourceExtractor;
23
24 import java.io.File;
25 import java.util.ArrayList;
26 import java.util.List;
27 import java.util.Properties;
28
29
30
31
32
33
34 public class MavenITmng4666CoreRealmImportTest
35 extends AbstractMavenIntegrationTestCase
36 {
37
38 public MavenITmng4666CoreRealmImportTest()
39 {
40 super( "[2.0.11,2.0.99),[2.1.0,3.0-alpha-1),[3.0-beta-2,)" );
41 }
42
43
44
45
46
47
48
49
50 public void testit()
51 throws Exception
52 {
53 File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-4666" );
54
55 Verifier verifier = newVerifier( testDir.getAbsolutePath() );
56 verifier.setAutoclean( false );
57 verifier.deleteDirectory( "target" );
58 verifier.deleteArtifacts( "org.apache.maven", "maven-model", "0.1-stub" );
59 verifier.deleteArtifacts( "org.apache.maven", "maven-settings", "0.1-stub" );
60 verifier.deleteArtifacts( "org.apache.maven", "maven-project", "0.1-stub" );
61 verifier.deleteArtifacts( "org.apache.maven", "maven-artifact", "0.1-stub" );
62 verifier.deleteArtifacts( "org.apache.maven", "maven-core", "0.1-stub" );
63 verifier.deleteArtifacts( "org.apache.maven", "maven-plugin-api", "0.1-stub" );
64 verifier.deleteArtifacts( "org.apache.maven", "maven-plugin-descriptor", "0.1-stub" );
65 verifier.deleteArtifacts( "plexus", "plexus-container-default", "0.1-stub" );
66 verifier.deleteArtifacts( "org.codehaus.plexus", "plexus-container-default", "0.1-stub" );
67 verifier.deleteArtifacts( "org.codehaus.plexus", "plexus-component-api", "0.1-stub" );
68 verifier.deleteArtifacts( "org.codehaus.plexus", "plexus-utils", "0.1-stub" );
69 verifier.deleteArtifacts( "org.codehaus.plexus", "plexus-classworlds", "0.1-stub" );
70 verifier.deleteArtifacts( "org.sonatype.aether", "aether-api", "0.1-stub" );
71 verifier.deleteArtifacts( "org.sonatype.aether", "aether-spi", "0.1-stub" );
72 verifier.deleteArtifacts( "org.sonatype.aether", "aether-impl", "0.1-stub" );
73 verifier.deleteArtifacts( "org.sonatype.sisu", "sisu-inject-plexus", "0.1-stub" );
74 verifier.deleteArtifacts( "org.sonatype.spice", "spice-inject-plexus", "0.1-stub" );
75 verifier.deleteArtifacts( "classworlds", "classworlds", "0.1-stub" );
76 verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
77 verifier.addCliOption( "-s" );
78 verifier.addCliOption( "settings.xml" );
79 verifier.executeGoal( "validate" );
80 verifier.verifyErrorFreeLog();
81 verifier.resetStreams();
82
83 Properties props = verifier.loadProperties( "target/type.properties" );
84 List<String> types = getTypes( props );
85 if ( !matchesVersionRange( "[3.0-beta-4,)" ) )
86 {
87
88 types.remove( "org.codehaus.plexus.configuration.PlexusConfiguration" );
89 types.remove( "org.codehaus.plexus.logging.Logger" );
90 }
91 assertFalse( types.isEmpty() );
92 for ( String type : types )
93 {
94 assertEquals( type, props.get( "plugin." + type ), props.get( "core." + type ) );
95 }
96 }
97
98 private List<String> getTypes( Properties props )
99 {
100 List<String> types = new ArrayList<>();
101 for ( Object o : props.keySet() )
102 {
103 String key = o.toString();
104 if ( key.startsWith( "core." ) )
105 {
106 String type = key.substring( 5 );
107 if ( props.getProperty( key, "" ).length() > 0 )
108 {
109
110 types.add( type );
111 }
112 }
113 }
114 return types;
115 }
116
117 }