1 7 package fr.jayasoft.ivy.external.m2; 8 9 import java.util.Arrays ; 10 import java.util.HashSet ; 11 12 import fr.jayasoft.ivy.Artifact; 13 import fr.jayasoft.ivy.DependencyDescriptor; 14 import fr.jayasoft.ivy.Ivy; 15 import fr.jayasoft.ivy.ModuleDescriptor; 16 import fr.jayasoft.ivy.ModuleId; 17 import fr.jayasoft.ivy.ModuleRevisionId; 18 import fr.jayasoft.ivy.parser.AbstractModuleDescriptorParserTester; 19 import fr.jayasoft.ivy.repository.url.URLResource; 20 import fr.jayasoft.ivy.xml.XmlModuleDescriptorParserTest; 21 22 public class PomModuleDescriptorParserTest extends AbstractModuleDescriptorParserTester { 23 25 26 public void testAccept() throws Exception { 27 assertTrue(PomModuleDescriptorParser.getInstance().accept( 28 new URLResource(getClass().getResource("test-simple.pom")))); 29 assertFalse(PomModuleDescriptorParser.getInstance().accept( 30 new URLResource(XmlModuleDescriptorParserTest.class.getResource("test.xml")))); 31 } 32 33 public void testSimple() throws Exception { 34 ModuleDescriptor md = PomModuleDescriptorParser.getInstance().parseDescriptor(new Ivy(), getClass().getResource("test-simple.pom"), false); 35 assertNotNull(md); 36 37 ModuleRevisionId mrid = ModuleRevisionId.newInstance("fr.jayasoft", "test", "1.0"); 38 assertEquals(mrid, md.getModuleRevisionId()); 39 40 assertNotNull(md.getConfigurations()); 41 assertEquals(Arrays.asList(PomModuleDescriptorParser.MAVEN2_CONFIGURATIONS), Arrays.asList(md.getConfigurations())); 42 43 Artifact[] artifact = md.getArtifacts("master"); 44 assertEquals(1, artifact.length); 45 assertEquals(mrid, artifact[0].getModuleRevisionId()); 46 assertEquals("test", artifact[0].getName()); 47 } 48 49 public void testParent() throws Exception { 50 ModuleDescriptor md = PomModuleDescriptorParser.getInstance().parseDescriptor(new Ivy(), getClass().getResource("test-parent.pom"), false); 51 assertNotNull(md); 52 53 ModuleRevisionId mrid = ModuleRevisionId.newInstance("fr.jayasoft", "test", "1.0"); 54 assertEquals(mrid, md.getModuleRevisionId()); 55 56 assertNotNull(md.getConfigurations()); 57 assertEquals(Arrays.asList(PomModuleDescriptorParser.MAVEN2_CONFIGURATIONS), Arrays.asList(md.getConfigurations())); 58 59 Artifact[] artifact = md.getArtifacts("master"); 60 assertEquals(1, artifact.length); 61 assertEquals(mrid, artifact[0].getModuleRevisionId()); 62 assertEquals("test", artifact[0].getName()); 63 } 64 65 public void testParent2() throws Exception { 66 ModuleDescriptor md = PomModuleDescriptorParser.getInstance().parseDescriptor(new Ivy(), getClass().getResource("test-parent2.pom"), false); 67 assertNotNull(md); 68 69 ModuleRevisionId mrid = ModuleRevisionId.newInstance("fr.jayasoft", "test", "1.0"); 70 assertEquals(mrid, md.getModuleRevisionId()); 71 72 assertNotNull(md.getConfigurations()); 73 assertEquals(Arrays.asList(PomModuleDescriptorParser.MAVEN2_CONFIGURATIONS), Arrays.asList(md.getConfigurations())); 74 75 Artifact[] artifact = md.getArtifacts("master"); 76 assertEquals(1, artifact.length); 77 assertEquals(mrid, artifact[0].getModuleRevisionId()); 78 assertEquals("test", artifact[0].getName()); 79 } 80 81 public void testDependencies() throws Exception { 82 ModuleDescriptor md = PomModuleDescriptorParser.getInstance().parseDescriptor(new Ivy(), getClass().getResource("test-dependencies.pom"), false); 83 assertNotNull(md); 84 85 assertEquals(ModuleRevisionId.newInstance("fr.jayasoft", "test", "1.0"), md.getModuleRevisionId()); 86 87 DependencyDescriptor[] dds = md.getDependencies(); 88 assertNotNull(dds); 89 assertEquals(1, dds.length); 90 assertEquals(ModuleRevisionId.newInstance("commons-logging", "commons-logging", "1.0.4"), dds[0].getDependencyRevisionId()); 91 } 92 93 public void testWithoutVersion() throws Exception { 94 ModuleDescriptor md = PomModuleDescriptorParser.getInstance().parseDescriptor(new Ivy(), getClass().getResource("test-without-version.pom"), false); 95 assertNotNull(md); 96 97 assertEquals(new ModuleId("fr.jayasoft", "test"), md.getModuleRevisionId().getModuleId()); 98 99 DependencyDescriptor[] dds = md.getDependencies(); 100 assertNotNull(dds); 101 assertEquals(1, dds.length); 102 assertEquals(ModuleRevisionId.newInstance("commons-logging", "commons-logging", "1.0.4"), dds[0].getDependencyRevisionId()); 103 } 104 105 public void testProperties() throws Exception { 106 ModuleDescriptor md = PomModuleDescriptorParser.getInstance().parseDescriptor(new Ivy(), getClass().getResource("test-properties.pom"), false); 107 assertNotNull(md); 108 109 assertEquals(ModuleRevisionId.newInstance("drools", "drools-smf", "2.0-beta-18"), md.getModuleRevisionId()); 110 111 DependencyDescriptor[] dds = md.getDependencies(); 112 assertNotNull(dds); 113 assertEquals(1, dds.length); 114 assertEquals(ModuleRevisionId.newInstance("drools", "drools-core", "2.0-beta-18"), dds[0].getDependencyRevisionId()); 115 } 116 117 public void testReal() throws Exception { 118 ModuleDescriptor md = PomModuleDescriptorParser.getInstance().parseDescriptor(new Ivy(), getClass().getResource("commons-lang-1.0.pom"), false); 119 assertNotNull(md); 120 121 assertEquals(ModuleRevisionId.newInstance("commons-lang", "commons-lang", "1.0"), md.getModuleRevisionId()); 122 123 DependencyDescriptor[] dds = md.getDependencies(); 124 assertNotNull(dds); 125 assertEquals(1, dds.length); 126 assertEquals(ModuleRevisionId.newInstance("junit", "junit", "3.7"), dds[0].getDependencyRevisionId()); 127 } 128 129 public void testOptional() throws Exception { 130 ModuleDescriptor md = PomModuleDescriptorParser.getInstance().parseDescriptor(new Ivy(), getClass().getResource("test-optional.pom"), false); 131 assertNotNull(md); 132 133 assertEquals(ModuleRevisionId.newInstance("fr.jayasoft", "test", "1.0"), md.getModuleRevisionId()); 134 assertTrue(Arrays.asList(md.getConfigurationsNames()).contains("optional")); 135 136 DependencyDescriptor[] dds = md.getDependencies(); 137 assertNotNull(dds); 138 assertEquals(2, dds.length); 139 assertEquals(ModuleRevisionId.newInstance("commons-logging", "commons-logging", "1.0.4"), dds[0].getDependencyRevisionId()); 140 assertEquals(new HashSet (Arrays.asList(new String [] {"optional"})), new HashSet (Arrays.asList(dds[0].getModuleConfigurations()))); 141 assertEquals(new HashSet (Arrays.asList(new String [] {"compile(*)", "runtime(*)", "master(*)"})), new HashSet (Arrays.asList(dds[0].getDependencyConfigurations("optional")))); 142 143 assertEquals(ModuleRevisionId.newInstance("cglib", "cglib", "2.0.2"), dds[1].getDependencyRevisionId()); 144 assertEquals(new HashSet (Arrays.asList(new String [] {"compile", "runtime"})), new HashSet (Arrays.asList(dds[1].getModuleConfigurations()))); 145 assertEquals(new HashSet (Arrays.asList(new String [] {"master(*)", "compile(*)"})), new HashSet (Arrays.asList(dds[1].getDependencyConfigurations("compile")))); 146 assertEquals(new HashSet (Arrays.asList(new String [] {"runtime(*)"})), new HashSet (Arrays.asList(dds[1].getDependencyConfigurations("runtime")))); 147 } 148 149 public void testDependenciesWithScope() throws Exception { 150 ModuleDescriptor md = PomModuleDescriptorParser.getInstance().parseDescriptor(new Ivy(), getClass().getResource("test-dependencies-with-scope.pom"), false); 151 assertNotNull(md); 152 153 assertEquals(ModuleRevisionId.newInstance("fr.jayasoft", "test", "1.0"), md.getModuleRevisionId()); 154 155 DependencyDescriptor[] dds = md.getDependencies(); 156 assertNotNull(dds); 157 assertEquals(3, dds.length); 158 assertEquals(ModuleRevisionId.newInstance("odmg", "odmg", "3.0"), dds[0].getDependencyRevisionId()); 159 assertEquals(new HashSet (Arrays.asList(new String [] {"runtime"})), new HashSet (Arrays.asList(dds[0].getModuleConfigurations()))); 160 assertEquals(new HashSet (Arrays.asList(new String [] {"compile(*)", "runtime(*)", "master(*)"})), new HashSet (Arrays.asList(dds[0].getDependencyConfigurations("runtime")))); 161 162 assertEquals(ModuleRevisionId.newInstance("commons-logging", "commons-logging", "1.0.4"), dds[1].getDependencyRevisionId()); 163 assertEquals(new HashSet (Arrays.asList(new String [] {"compile", "runtime"})), new HashSet (Arrays.asList(dds[1].getModuleConfigurations()))); 164 assertEquals(new HashSet (Arrays.asList(new String [] {"master(*)", "compile(*)"})), new HashSet (Arrays.asList(dds[1].getDependencyConfigurations("compile")))); 165 assertEquals(new HashSet (Arrays.asList(new String [] {"runtime(*)"})), new HashSet (Arrays.asList(dds[1].getDependencyConfigurations("runtime")))); 166 167 168 assertEquals(ModuleRevisionId.newInstance("cglib", "cglib", "2.0.2"), dds[2].getDependencyRevisionId()); 169 assertEquals(new HashSet (Arrays.asList(new String [] {"compile", "runtime"})), new HashSet (Arrays.asList(dds[2].getModuleConfigurations()))); 170 assertEquals(new HashSet (Arrays.asList(new String [] {"master(*)", "compile(*)"})), new HashSet (Arrays.asList(dds[2].getDependencyConfigurations("compile")))); 171 assertEquals(new HashSet (Arrays.asList(new String [] {"runtime(*)"})), new HashSet (Arrays.asList(dds[2].getDependencyConfigurations("runtime")))); 172 } 173 174 public void testExclusion() throws Exception { 175 ModuleDescriptor md = PomModuleDescriptorParser.getInstance().parseDescriptor(new Ivy(), getClass().getResource("test-exclusion.pom"), false); 176 assertNotNull(md); 177 178 assertEquals(ModuleRevisionId.newInstance("fr.jayasoft", "test", "1.0"), md.getModuleRevisionId()); 179 180 DependencyDescriptor[] dds = md.getDependencies(); 181 assertNotNull(dds); 182 assertEquals(3, dds.length); 183 assertEquals(ModuleRevisionId.newInstance("commons-logging", "commons-logging", "1.0.4"), dds[0].getDependencyRevisionId()); 184 assertEquals(new HashSet (Arrays.asList(new String [] {"compile", "runtime"})), new HashSet (Arrays.asList(dds[0].getModuleConfigurations()))); 185 assertEquals(new HashSet (Arrays.asList(new String [] {"master(*)", "compile(*)"})), new HashSet (Arrays.asList(dds[0].getDependencyConfigurations("compile")))); 186 assertEquals(new HashSet (Arrays.asList(new String [] {"runtime(*)"})), new HashSet (Arrays.asList(dds[0].getDependencyConfigurations("runtime")))); 187 assertEquals(0, dds[0].getAllDependencyArtifactsExcludes().length); 188 189 assertEquals(ModuleRevisionId.newInstance("dom4j", "dom4j", "1.6"), dds[1].getDependencyRevisionId()); 190 assertEquals(new HashSet (Arrays.asList(new String [] {"compile", "runtime"})), new HashSet (Arrays.asList(dds[1].getModuleConfigurations()))); 191 assertEquals(new HashSet (Arrays.asList(new String [] {"master(*)", "compile(*)"})), new HashSet (Arrays.asList(dds[1].getDependencyConfigurations("compile")))); 192 assertEquals(new HashSet (Arrays.asList(new String [] {"runtime(*)"})), new HashSet (Arrays.asList(dds[1].getDependencyConfigurations("runtime")))); 193 assertDependencyModulesExcludes(dds[1], new String [] {"compile"}, new String [] {"jaxme-api", "jaxen"}); 194 assertDependencyModulesExcludes(dds[1], new String [] {"runtime"}, new String [] {"jaxme-api", "jaxen"}); 195 196 assertEquals(ModuleRevisionId.newInstance("cglib", "cglib", "2.0.2"), dds[2].getDependencyRevisionId()); 197 assertEquals(new HashSet (Arrays.asList(new String [] {"compile", "runtime"})), new HashSet (Arrays.asList(dds[2].getModuleConfigurations()))); 198 assertEquals(new HashSet (Arrays.asList(new String [] {"master(*)", "compile(*)"})), new HashSet (Arrays.asList(dds[2].getDependencyConfigurations("compile")))); 199 assertEquals(new HashSet (Arrays.asList(new String [] {"runtime(*)"})), new HashSet (Arrays.asList(dds[2].getDependencyConfigurations("runtime")))); 200 assertEquals(0, dds[2].getAllDependencyArtifactsExcludes().length); 201 } 202 } 203 | Popular Tags |