1 6 package fr.jayasoft.ivy.xml; 7 8 import java.io.IOException ; 9 import java.text.ParseException ; 10 import java.util.Arrays ; 11 import java.util.Date ; 12 import java.util.GregorianCalendar ; 13 import java.util.HashSet ; 14 15 import fr.jayasoft.ivy.Artifact; 16 import fr.jayasoft.ivy.Configuration; 17 import fr.jayasoft.ivy.ConflictManager; 18 import fr.jayasoft.ivy.DependencyDescriptor; 19 import fr.jayasoft.ivy.Ivy; 20 import fr.jayasoft.ivy.License; 21 import fr.jayasoft.ivy.ModuleDescriptor; 22 import fr.jayasoft.ivy.ModuleId; 23 import fr.jayasoft.ivy.Configuration.Visibility; 24 import fr.jayasoft.ivy.conflict.FixedConflictManager; 25 import fr.jayasoft.ivy.conflict.NoConflictManager; 26 import fr.jayasoft.ivy.matcher.PatternMatcher; 27 import fr.jayasoft.ivy.parser.AbstractModuleDescriptorParserTester; 28 import fr.jayasoft.ivy.util.XMLHelper; 29 30 33 public class XmlModuleDescriptorParserTest extends AbstractModuleDescriptorParserTester { 34 36 private Ivy _ivy = new Ivy(); 37 public void testSimple() throws Exception { 38 ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-simple.xml"), true); 39 assertNotNull(md); 40 assertEquals("myorg", md.getModuleRevisionId().getOrganisation()); 41 assertEquals("mymodule", md.getModuleRevisionId().getName()); 42 assertEquals(null, md.getModuleRevisionId().getRevision()); 43 assertEquals("integration", md.getStatus()); 44 45 assertNotNull(md.getConfigurations()); 46 assertEquals(Arrays.asList(new Configuration[] {new Configuration("default")}), Arrays.asList(md.getConfigurations())); 47 48 assertNotNull(md.getArtifacts("default")); 49 assertEquals(1, md.getArtifacts("default").length); 50 assertEquals("mymodule", md.getArtifacts("default")[0].getName()); 51 assertEquals("jar", md.getArtifacts("default")[0].getType()); 52 53 assertNotNull(md.getDependencies()); 54 assertEquals(0, md.getDependencies().length); 55 } 56 57 public void testEmptyDependencies() throws Exception { 58 ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-empty-dependencies.xml"), true); 59 assertNotNull(md); 60 assertEquals("myorg", md.getModuleRevisionId().getOrganisation()); 61 assertEquals("mymodule", md.getModuleRevisionId().getName()); 62 assertEquals("myrev", md.getModuleRevisionId().getRevision()); 63 assertEquals("integration", md.getStatus()); 64 65 assertNotNull(md.getConfigurations()); 66 assertEquals(Arrays.asList(new Configuration[] {new Configuration("default")}), Arrays.asList(md.getConfigurations())); 67 68 assertNotNull(md.getArtifacts("default")); 69 assertEquals(1, md.getArtifacts("default").length); 70 assertEquals("mymodule", md.getArtifacts("default")[0].getName()); 71 assertEquals("jar", md.getArtifacts("default")[0].getType()); 72 73 assertNotNull(md.getDependencies()); 74 assertEquals(0, md.getDependencies().length); 75 } 76 77 public void testBad() throws IOException { 78 try { 79 XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-bad.xml"), true); 80 fail("bad ivy file raised no error"); 81 } catch (ParseException ex) { 82 if (XMLHelper.canUseSchemaValidation()) { 83 assertTrue("exception message not explicit. It should contain 'modul', but it's:"+ex.getMessage(), ex.getMessage().indexOf("'modul'") != -1); 84 } 85 } 86 } 87 88 public void testBadOrg() throws IOException { 89 try { 90 XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-bad-org.xml"), true); 91 fail("bad ivy file raised no error"); 92 } catch (ParseException ex) { 93 if (XMLHelper.canUseSchemaValidation()) { 94 assertTrue("invalid exception: "+ex.getMessage(), ex.getMessage().indexOf("organization") != -1); 95 } 96 } 97 } 98 99 public void testBadConfs() throws IOException { 100 try { 101 XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-bad-confs.xml"), true); 102 fail("bad ivy file raised no error"); 103 } catch (ParseException ex) { 104 assertTrue("invalid exception: "+ex.getMessage(), ex.getMessage().indexOf("invalidConf") != -1); 105 } 106 } 107 108 public void testNoValidate() throws IOException , ParseException { 109 XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-novalidate.xml"), false); 110 } 111 112 public void testBadVersion() throws IOException { 113 try { 114 XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-bad-version.xml"), true); 115 fail("bad version ivy file raised no error"); 116 } catch (ParseException ex) { 117 } 119 } 120 121 public void testFull() throws Exception { 122 ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test.xml"), true); 123 assertNotNull(md); 124 assertEquals("myorg", md.getModuleRevisionId().getOrganisation()); 125 assertEquals("mymodule", md.getModuleRevisionId().getName()); 126 assertEquals("myrev", md.getModuleRevisionId().getRevision()); 127 assertEquals("integration", md.getStatus()); 128 Date pubdate = new GregorianCalendar (2004, 10, 1, 11, 0, 0).getTime(); 129 assertEquals(pubdate, md.getPublicationDate()); 130 131 License[] licenses = md.getLicenses(); 132 assertEquals(1, licenses.length); 133 assertEquals("MyLicense", licenses[0].getName()); 134 assertEquals("http://www.my.org/mymodule/mylicense.html", licenses[0].getUrl()); 135 136 assertEquals("http://www.my.org/mymodule/", md.getHomePage()); 137 138 Configuration[] confs = md.getConfigurations(); 139 assertNotNull(confs); 140 assertEquals(5, confs.length); 141 142 assertConf(md, "myconf1", "desc 1", Configuration.Visibility.PUBLIC, new String [0]); 143 assertConf(md, "myconf2", "desc 2", Configuration.Visibility.PUBLIC, new String [0]); 144 assertConf(md, "myconf3", "desc 3", Configuration.Visibility.PRIVATE, new String [0]); 145 assertConf(md, "myconf4", "desc 4", Configuration.Visibility.PUBLIC, new String [] {"myconf1", "myconf2"}); 146 assertConf(md, "myoldconf", "my old desc", Configuration.Visibility.PUBLIC, new String [0]); 147 148 assertArtifacts(md.getArtifacts("myconf1"), new String [] {"myartifact1", "myartifact2", "myartifact3", "myartifact4"}); 149 assertArtifacts(md.getArtifacts("myconf2"), new String [] {"myartifact1", "myartifact3"}); 150 assertArtifacts(md.getArtifacts("myconf3"), new String [] {"myartifact1", "myartifact3", "myartifact4"}); 151 assertArtifacts(md.getArtifacts("myconf4"), new String [] {"myartifact1"}); 152 153 DependencyDescriptor[] dependencies = md.getDependencies(); 154 assertNotNull(dependencies); 155 assertEquals(13, dependencies.length); 156 157 DependencyDescriptor dd = getDependency(dependencies, "mymodule2"); 159 assertNotNull(dd); 160 assertEquals("myorg", dd.getDependencyId().getOrganisation()); 161 assertEquals("2.0", dd.getDependencyRevisionId().getRevision()); 162 assertEquals(Arrays.asList(new String [] {"*"}), Arrays.asList(dd.getModuleConfigurations())); 163 assertEquals(Arrays.asList(new String [] {"*"}), Arrays.asList(dd.getDependencyConfigurations("myconf1"))); 164 assertEquals(Arrays.asList(new String [] {"*"}), Arrays.asList(dd.getDependencyConfigurations(new String [] {"myconf2", "myconf3", "myconf4"}))); 165 assertDependencyArtifactsIncludes(dd, new String [] {"myconf1", "myconf2", "myconf3", "myconf4"}, new String [0]); 166 assertFalse(dd.isChanging()); 167 assertTrue(dd.isTransitive()); 168 169 dd = getDependency(dependencies, "mymodule3"); 171 assertNotNull(dd); 172 assertTrue(dd.isChanging()); 173 assertFalse(dd.isTransitive()); 174 175 dd = getDependency(dependencies, "yourmodule1"); 177 assertNotNull(dd); 178 assertEquals("yourorg", dd.getDependencyId().getOrganisation()); 179 assertEquals("1.1", dd.getDependencyRevisionId().getRevision()); 180 assertEquals(Arrays.asList(new String [] {"myconf1"}), Arrays.asList(dd.getModuleConfigurations())); 181 assertEquals(Arrays.asList(new String [] {"myconf1"}), Arrays.asList(dd.getDependencyConfigurations("myconf1"))); 182 assertEquals(Arrays.asList(new String [] {}), Arrays.asList(dd.getDependencyConfigurations(new String [] {"myconf2", "myconf3", "myconf4"}))); 183 assertDependencyArtifactsIncludes(dd, new String [] {"myconf1", "myconf2", "myconf3", "myconf4"}, new String [0]); 184 185 dd = getDependency(dependencies, "yourmodule2"); 187 assertNotNull(dd); 188 assertEquals("yourorg", dd.getDependencyId().getOrganisation()); 189 assertEquals("2+", dd.getDependencyRevisionId().getRevision()); 190 assertEquals(Arrays.asList(new String [] {"myconf1"}), Arrays.asList(dd.getModuleConfigurations())); 191 assertEquals(Arrays.asList(new String [] {"yourconf1"}), Arrays.asList(dd.getDependencyConfigurations("myconf1"))); 192 assertEquals(Arrays.asList(new String [] {}), Arrays.asList(dd.getDependencyConfigurations(new String [] {"myconf2", "myconf3", "myconf4"}))); 193 assertDependencyArtifactsIncludes(dd, new String [] {"myconf1", "myconf2", "myconf3", "myconf4"}, new String [0]); 194 195 dd = getDependency(dependencies, "yourmodule3"); 197 assertNotNull(dd); 198 assertEquals("yourorg", dd.getDependencyId().getOrganisation()); 199 assertEquals("3.1", dd.getDependencyRevisionId().getRevision()); 200 assertEquals(Arrays.asList(new String [] {"myconf1"}), Arrays.asList(dd.getModuleConfigurations())); 201 assertEquals(Arrays.asList(new String [] {"yourconf1", "yourconf2"}), Arrays.asList(dd.getDependencyConfigurations("myconf1"))); 202 assertEquals(Arrays.asList(new String [] {}), Arrays.asList(dd.getDependencyConfigurations(new String [] {"myconf2", "myconf3", "myconf4"}))); 203 assertDependencyArtifactsIncludes(dd, new String [] {"myconf1", "myconf2", "myconf3", "myconf4"}, new String [0]); 204 205 dd = getDependency(dependencies, "yourmodule4"); 207 assertNotNull(dd); 208 assertEquals("yourorg", dd.getDependencyId().getOrganisation()); 209 assertEquals("4.1", dd.getDependencyRevisionId().getRevision()); 210 assertEquals(new HashSet (Arrays.asList(new String [] {"myconf1", "myconf2"})), new HashSet (Arrays.asList(dd.getModuleConfigurations()))); 211 assertEquals(Arrays.asList(new String [] {"yourconf1", "yourconf2"}), Arrays.asList(dd.getDependencyConfigurations("myconf1"))); 212 assertEquals(Arrays.asList(new String [] {"yourconf1", "yourconf2"}), Arrays.asList(dd.getDependencyConfigurations("myconf2"))); 213 assertEquals(Arrays.asList(new String [] {}), Arrays.asList(dd.getDependencyConfigurations(new String [] {"myconf3", "myconf4"}))); 214 assertDependencyArtifactsIncludes(dd, new String [] {"myconf1", "myconf2", "myconf3", "myconf4"}, new String [0]); 215 216 dd = getDependency(dependencies, "yourmodule5"); 218 assertNotNull(dd); 219 assertEquals("yourorg", dd.getDependencyId().getOrganisation()); 220 assertEquals("5.1", dd.getDependencyRevisionId().getRevision()); 221 assertEquals(new HashSet (Arrays.asList(new String [] {"myconf1", "myconf2"})), new HashSet (Arrays.asList(dd.getModuleConfigurations()))); 222 assertEquals(Arrays.asList(new String [] {"yourconf1"}), Arrays.asList(dd.getDependencyConfigurations("myconf1"))); 223 assertEquals(Arrays.asList(new String [] {"yourconf1", "yourconf2"}), Arrays.asList(dd.getDependencyConfigurations("myconf2"))); 224 assertEquals(Arrays.asList(new String [] {}), Arrays.asList(dd.getDependencyConfigurations(new String [] {"myconf3", "myconf4"}))); 225 assertDependencyArtifactsIncludes(dd, new String [] {"myconf1", "myconf2", "myconf3", "myconf4"}, new String [0]); 226 227 dd = getDependency(dependencies, "yourmodule11"); 229 assertNotNull(dd); 230 assertEquals("yourorg", dd.getDependencyId().getOrganisation()); 231 assertEquals("11.1", dd.getDependencyRevisionId().getRevision()); 232 assertEquals(new HashSet (Arrays.asList(new String [] {"*"})), new HashSet (Arrays.asList(dd.getModuleConfigurations()))); 233 assertEquals(Arrays.asList(new String [] {"myconf1"}), Arrays.asList(dd.getDependencyConfigurations("myconf1"))); 234 assertEquals(Arrays.asList(new String [] {"myconf2"}), Arrays.asList(dd.getDependencyConfigurations("myconf2"))); 235 assertEquals(Arrays.asList(new String [] {"myconf3"}), Arrays.asList(dd.getDependencyConfigurations("myconf3"))); 236 assertEquals(Arrays.asList(new String [] {"myconf4"}), Arrays.asList(dd.getDependencyConfigurations("myconf4"))); 237 238 dd = getDependency(dependencies, "yourmodule6"); 239 assertNotNull(dd); 240 assertEquals("yourorg", dd.getDependencyId().getOrganisation()); 241 assertEquals("latest.integration", dd.getDependencyRevisionId().getRevision()); 242 assertEquals(new HashSet (Arrays.asList(new String [] {"myconf1", "myconf2"})), new HashSet (Arrays.asList(dd.getModuleConfigurations()))); 243 assertEquals(Arrays.asList(new String [] {"yourconf1"}), Arrays.asList(dd.getDependencyConfigurations("myconf1"))); 244 assertEquals(Arrays.asList(new String [] {"yourconf1", "yourconf2"}), Arrays.asList(dd.getDependencyConfigurations("myconf2"))); 245 assertEquals(Arrays.asList(new String [] {}), Arrays.asList(dd.getDependencyConfigurations(new String [] {"myconf3", "myconf4"}))); 246 assertDependencyArtifactsIncludes(dd, new String [] {"myconf1", "myconf2", "myconf3", "myconf4"}, new String [0]); 247 248 dd = getDependency(dependencies, "yourmodule7"); 249 assertNotNull(dd); 250 assertEquals("yourorg", dd.getDependencyId().getOrganisation()); 251 assertEquals("7.1", dd.getDependencyRevisionId().getRevision()); 252 assertEquals(new HashSet (Arrays.asList(new String [] {"myconf1", "myconf2"})), new HashSet (Arrays.asList(dd.getModuleConfigurations()))); 253 assertEquals(Arrays.asList(new String [] {"yourconf1"}), Arrays.asList(dd.getDependencyConfigurations("myconf1"))); 254 assertEquals(Arrays.asList(new String [] {"yourconf1", "yourconf2"}), Arrays.asList(dd.getDependencyConfigurations("myconf2"))); 255 assertEquals(Arrays.asList(new String [] {}), Arrays.asList(dd.getDependencyConfigurations(new String [] {"myconf3", "myconf4"}))); 256 assertDependencyArtifactsIncludes(dd, new String [] {"myconf1", "myconf2", "myconf3", "myconf4"}, new String [0]); 257 258 dd = getDependency(dependencies, "yourmodule8"); 259 assertNotNull(dd); 260 assertEquals("yourorg", dd.getDependencyId().getOrganisation()); 261 assertEquals("8.1", dd.getDependencyRevisionId().getRevision()); 262 assertEquals(new HashSet (Arrays.asList(new String [] {"*"})), new HashSet (Arrays.asList(dd.getModuleConfigurations()))); 263 assertDependencyArtifactsIncludes(dd, new String [] {"myconf1"}, new String [] {"yourartifact8-1", "yourartifact8-2"}); 264 assertDependencyArtifactsIncludes(dd, new String [] {"myconf2"}, new String [] {"yourartifact8-1", "yourartifact8-2"}); 265 assertDependencyArtifactsIncludes(dd, new String [] {"myconf3"}, new String [] {"yourartifact8-1", "yourartifact8-2"}); 266 assertDependencyArtifactsIncludes(dd, new String [] {"myconf4"}, new String [] {"yourartifact8-1", "yourartifact8-2"}); 267 268 dd = getDependency(dependencies, "yourmodule9"); 269 assertNotNull(dd); 270 assertEquals("yourorg", dd.getDependencyId().getOrganisation()); 271 assertEquals("9.1", dd.getDependencyRevisionId().getRevision()); 272 assertEquals(new HashSet (Arrays.asList(new String [] {"myconf1", "myconf2", "myconf3"})), new HashSet (Arrays.asList(dd.getModuleConfigurations()))); 273 assertDependencyArtifactsIncludes(dd, new String [] {"myconf1"}, new String [] {"yourartifact9-1"}); 274 assertDependencyArtifactsIncludes(dd, new String [] {"myconf2"}, new String [] {"yourartifact9-1", "yourartifact9-2"}); 275 assertDependencyArtifactsIncludes(dd, new String [] {"myconf3"}, new String [] {"yourartifact9-2"}); 276 assertDependencyArtifactsIncludes(dd, new String [] {"myconf4"}, new String [] {}); 277 assertDependencyArtifactsExcludes(dd, new String [] {"myconf1"}, new String [] {}); 278 assertDependencyArtifactsExcludes(dd, new String [] {"myconf2"}, new String [] {}); 279 assertDependencyArtifactsExcludes(dd, new String [] {"myconf3"}, new String [] {}); 280 assertDependencyArtifactsExcludes(dd, new String [] {"myconf4"}, new String [] {}); 281 282 dd = getDependency(dependencies, "yourmodule10"); 283 assertNotNull(dd); 284 assertEquals("yourorg", dd.getDependencyId().getOrganisation()); 285 assertEquals("10.1", dd.getDependencyRevisionId().getRevision()); 286 assertEquals(new HashSet (Arrays.asList(new String [] {"*"})), new HashSet (Arrays.asList(dd.getModuleConfigurations()))); 287 assertDependencyArtifactsIncludes(dd, new String [] {"myconf1"}, new String [] {"your.*", PatternMatcher.ANY_EXPRESSION}); 288 assertDependencyArtifactsIncludes(dd, new String [] {"myconf2"}, new String [] {"your.*", PatternMatcher.ANY_EXPRESSION}); 289 assertDependencyArtifactsIncludes(dd, new String [] {"myconf3"}, new String [] {"your.*", PatternMatcher.ANY_EXPRESSION}); 290 assertDependencyArtifactsIncludes(dd, new String [] {"myconf4"}, new String [] {"your.*", PatternMatcher.ANY_EXPRESSION}); 291 assertDependencyArtifactsExcludes(dd, new String [] {"myconf1"}, new String [] {"toexclude"}); 292 assertDependencyArtifactsExcludes(dd, new String [] {"myconf2"}, new String [] {"toexclude"}); 293 assertDependencyArtifactsExcludes(dd, new String [] {"myconf3"}, new String [] {"toexclude"}); 294 assertDependencyArtifactsExcludes(dd, new String [] {"myconf4"}, new String [] {"toexclude"}); 295 296 ConflictManager cm = md.getConflictManager(new ModuleId("yourorg", "yourmodule1")); 297 assertNotNull(cm); 298 assertTrue(cm instanceof NoConflictManager); 299 300 cm = md.getConflictManager(new ModuleId("yourorg", "yourmodule2")); 301 assertNotNull(cm); 302 assertTrue(cm instanceof NoConflictManager); 303 304 cm = md.getConflictManager(new ModuleId("theirorg", "theirmodule1")); 305 assertNotNull(cm); 306 assertTrue(cm instanceof FixedConflictManager); 307 FixedConflictManager fcm = (FixedConflictManager)cm; 308 assertEquals(2, fcm.getRevs().size()); 309 assertTrue(fcm.getRevs().contains("1.0")); 310 assertTrue(fcm.getRevs().contains("1.1")); 311 312 cm = md.getConflictManager(new ModuleId("theirorg", "theirmodule2")); 313 assertNull(cm); 314 } 315 316 public void testBug60() throws Exception { 317 ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-bug60.xml"), true); 318 assertNotNull(md); 319 assertEquals("myorg", md.getModuleRevisionId().getOrganisation()); 320 assertEquals("mymodule", md.getModuleRevisionId().getName()); 321 assertEquals("myrev", md.getModuleRevisionId().getRevision()); 322 assertEquals("integration", md.getStatus()); 323 Date pubdate = new GregorianCalendar (2004, 10, 1, 11, 0, 0).getTime(); 324 assertEquals(pubdate, md.getPublicationDate()); 325 326 assertEquals(Arrays.asList(new Configuration[] {new Configuration("default")}), Arrays.asList(md.getConfigurations())); 327 328 assertArtifacts(md.getArtifacts("default"), new String [] {"myartifact1", "myartifact2"}); 329 } 330 331 public void testNoArtifact() throws Exception { 332 ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-noartifact.xml"), true); 333 assertNotNull(md); 334 assertEquals("myorg", md.getModuleRevisionId().getOrganisation()); 335 assertEquals("mymodule", md.getModuleRevisionId().getName()); 336 assertEquals(null, md.getModuleRevisionId().getRevision()); 337 assertEquals("integration", md.getStatus()); 338 339 assertNotNull(md.getConfigurations()); 340 assertEquals(Arrays.asList(new Configuration[] {new Configuration("default")}), Arrays.asList(md.getConfigurations())); 341 342 assertNotNull(md.getArtifacts("default")); 343 assertEquals(0, md.getArtifacts("default").length); 344 345 assertNotNull(md.getDependencies()); 346 assertEquals(0, md.getDependencies().length); 347 } 348 349 public void testNoPublication() throws Exception { 350 ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-nopublication.xml"), true); 351 assertNotNull(md); 352 assertEquals("myorg", md.getModuleRevisionId().getOrganisation()); 353 assertEquals("mymodule", md.getModuleRevisionId().getName()); 354 assertEquals("myrev", md.getModuleRevisionId().getRevision()); 355 assertEquals("integration", md.getStatus()); 356 Date pubdate = new GregorianCalendar (2004, 10, 1, 11, 0, 0).getTime(); 357 assertEquals(pubdate, md.getPublicationDate()); 358 359 assertNotNull(md.getConfigurations()); 360 assertEquals(Arrays.asList(new Configuration[] {new Configuration("default")}), Arrays.asList(md.getConfigurations())); 361 362 assertNotNull(md.getArtifacts("default")); 363 assertEquals(1, md.getArtifacts("default").length); 364 365 assertNotNull(md.getDependencies()); 366 assertEquals(1, md.getDependencies().length); 367 } 368 369 public void testArtifactsDefaults() throws Exception { 370 ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-artifacts-defaults.xml"), true); 371 assertNotNull(md); 372 373 Artifact[] artifacts = md.getArtifacts("default"); 374 assertNotNull(artifacts); 375 assertEquals(3, artifacts.length); 376 assertArtifactEquals("mymodule", "jar", "jar", artifacts[0]); 377 assertArtifactEquals("myartifact", "jar", "jar", artifacts[1]); 378 assertArtifactEquals("mymodule", "dll", "dll", artifacts[2]); 379 } 380 381 private void assertArtifactEquals(String name, String type, String ext, Artifact artifact) { 382 assertEquals(name+"/"+type+"/"+ext, artifact.getName()+"/"+artifact.getType()+"/"+artifact.getExt()); 383 } 384 385 public void testDefaultConf() throws Exception { 386 ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-defaultconf.xml"), true); 387 assertNotNull(md); 388 389 DependencyDescriptor[] dependencies = md.getDependencies(); 390 assertNotNull(dependencies); 391 assertEquals(2, dependencies.length); 392 393 DependencyDescriptor dd = getDependency(dependencies, "mymodule1"); 395 assertNotNull(dd); 396 assertEquals("myorg", dd.getDependencyId().getOrganisation()); 397 assertEquals("1.0", dd.getDependencyRevisionId().getRevision()); 398 assertEquals(Arrays.asList(new String [] {"default"}), Arrays.asList(dd.getModuleConfigurations())); 399 assertEquals(Arrays.asList(new String [] {"default"}), Arrays.asList(dd.getDependencyConfigurations("default"))); 400 401 dd = getDependency(dependencies, "mymodule2"); 403 assertNotNull(dd); 404 assertEquals("myorg", dd.getDependencyId().getOrganisation()); 405 assertEquals("2.0", dd.getDependencyRevisionId().getRevision()); 406 assertEquals(Arrays.asList(new String [] {"*"}), Arrays.asList(dd.getModuleConfigurations())); 407 assertEquals(Arrays.asList(new String [] {"*"}), Arrays.asList(dd.getDependencyConfigurations("default"))); 408 } 409 410 public void testDefaultConf2() throws Exception { 411 ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-defaultconf2.xml"), true); 412 assertNotNull(md); 413 414 DependencyDescriptor[] dependencies = md.getDependencies(); 415 assertNotNull(dependencies); 416 assertEquals(2, dependencies.length); 417 418 DependencyDescriptor dd = getDependency(dependencies, "mymodule1"); 420 assertNotNull(dd); 421 assertEquals("myorg", dd.getDependencyId().getOrganisation()); 422 assertEquals("1.0", dd.getDependencyRevisionId().getRevision()); 423 assertEquals(Arrays.asList(new String [] {"*"}), Arrays.asList(dd.getModuleConfigurations())); 424 assertEquals(Arrays.asList(new String [] {"default"}), Arrays.asList(dd.getDependencyConfigurations("default"))); 425 assertEquals(Arrays.asList(new String [] {"default"}), Arrays.asList(dd.getDependencyConfigurations("test"))); 426 427 dd = getDependency(dependencies, "mymodule2"); 429 assertNotNull(dd); 430 assertEquals("myorg", dd.getDependencyId().getOrganisation()); 431 assertEquals("2.0", dd.getDependencyRevisionId().getRevision()); 432 assertEquals(Arrays.asList(new String [] {"test"}), Arrays.asList(dd.getModuleConfigurations())); 433 assertEquals(Arrays.asList(new String [] {"test"}), Arrays.asList(dd.getDependencyConfigurations("test"))); 434 } 435 436 public void testDefaultConfMapping() throws Exception { 437 ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-defaultconfmapping.xml"), true); 438 assertNotNull(md); 439 440 DependencyDescriptor[] dependencies = md.getDependencies(); 441 assertNotNull(dependencies); 442 assertEquals(2, dependencies.length); 443 444 DependencyDescriptor dd = getDependency(dependencies, "mymodule1"); 446 assertNotNull(dd); 447 assertEquals("myorg", dd.getDependencyId().getOrganisation()); 448 assertEquals("1.0", dd.getDependencyRevisionId().getRevision()); 449 assertEquals(Arrays.asList(new String [] {"*"}), Arrays.asList(dd.getModuleConfigurations())); 450 assertEquals(Arrays.asList(new String [] {"default"}), Arrays.asList(dd.getDependencyConfigurations("default"))); 451 assertEquals(Arrays.asList(new String [] {"default"}), Arrays.asList(dd.getDependencyConfigurations("test"))); 452 453 dd = getDependency(dependencies, "mymodule2"); 455 assertNotNull(dd); 456 assertEquals("myorg", dd.getDependencyId().getOrganisation()); 457 assertEquals("2.0", dd.getDependencyRevisionId().getRevision()); 458 assertEquals(Arrays.asList(new String [] {"test"}), Arrays.asList(dd.getModuleConfigurations())); 459 assertEquals(Arrays.asList(new String [] {"default"}), Arrays.asList(dd.getDependencyConfigurations("test"))); 460 } 461 462 public void testExtraAttributes() throws Exception { 463 ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-extra-attributes.xml"), false); 464 assertNotNull(md); 465 466 assertEquals("infoextravalue", md.getAttribute("infoextra")); 467 assertEquals("infoextravalue", md.getModuleRevisionId().getAttribute("infoextra")); 468 469 assertEquals("confextravalue", md.getConfiguration("default").getAttribute("confextra")); 470 471 Artifact[] artifacts = md.getArtifacts("default"); 472 assertEquals(1, artifacts.length); 473 Artifact art = artifacts[0]; 474 assertEquals("art1", art.getName()); 475 assertEquals("artextravalue", art.getAttribute("artextra")); 476 477 478 DependencyDescriptor[] dependencies = md.getDependencies(); 479 assertNotNull(dependencies); 480 assertEquals(1, dependencies.length); 481 482 DependencyDescriptor dd = getDependency(dependencies, "mymodule1"); 483 assertNotNull(dd); 484 assertEquals("myorg", dd.getDependencyId().getOrganisation()); 485 assertEquals("1.0", dd.getDependencyRevisionId().getRevision()); 486 assertEquals("depextravalue", dd.getAttribute("depextra")); 487 assertEquals("depextravalue", dd.getDependencyRevisionId().getAttribute("depextra")); 488 } 489 490 public void testImportConfigurations1() throws Exception { 491 ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-configurations-import1.xml"), true); 493 assertNotNull(md); 494 495 assertNotNull(md.getConfigurations()); 497 assertEquals(Arrays.asList(new Configuration[] { 498 new Configuration("conf1", Visibility.PUBLIC, "", new String [0]), 499 new Configuration("conf2", Visibility.PRIVATE, "", new String [0]) 500 }), Arrays.asList(md.getConfigurations())); 501 502 DependencyDescriptor[] dependencies = md.getDependencies(); 503 assertNotNull(dependencies); 504 assertEquals(2, dependencies.length); 505 506 DependencyDescriptor dd = getDependency(dependencies, "mymodule1"); 508 assertEquals(Arrays.asList(new String [] {"*"}), Arrays.asList(dd.getModuleConfigurations())); 509 assertEquals(Arrays.asList(new String [] {"*"}), Arrays.asList(dd.getDependencyConfigurations("conf1"))); 510 511 dd = getDependency(dependencies, "mymodule2"); 513 assertEquals(Arrays.asList(new String [] {"conf1"}), Arrays.asList(dd.getModuleConfigurations())); 514 assertEquals(Arrays.asList(new String [] {"*"}), Arrays.asList(dd.getDependencyConfigurations("conf1"))); 515 } 516 517 public void testImportConfigurations2() throws Exception { 518 ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-configurations-import2.xml"), true); 520 assertNotNull(md); 521 522 assertNotNull(md.getConfigurations()); 524 assertEquals(Arrays.asList(new Configuration[] { 525 new Configuration("conf1", Visibility.PUBLIC, "", new String [0]), 526 new Configuration("conf2", Visibility.PRIVATE, "", new String [0]), 527 new Configuration("conf3", Visibility.PUBLIC, "", new String [0]) 528 }), Arrays.asList(md.getConfigurations())); 529 530 DependencyDescriptor[] dependencies = md.getDependencies(); 531 assertNotNull(dependencies); 532 assertEquals(2, dependencies.length); 533 534 DependencyDescriptor dd = getDependency(dependencies, "mymodule1"); 536 assertEquals(Arrays.asList(new String [] {"*"}), Arrays.asList(dd.getModuleConfigurations())); 537 assertEquals(Arrays.asList(new String [] {"*"}), Arrays.asList(dd.getDependencyConfigurations("conf1"))); 538 539 dd = getDependency(dependencies, "mymodule2"); 541 assertEquals(new HashSet (Arrays.asList(new String [] {"conf2", "conf3"})), new HashSet (Arrays.asList(dd.getModuleConfigurations()))); 542 assertEquals(Arrays.asList(new String [] {"*"}), Arrays.asList(dd.getDependencyConfigurations("conf2"))); 543 assertEquals(Arrays.asList(new String [] {"*"}), Arrays.asList(dd.getDependencyConfigurations("conf3"))); 544 } 545 546 public void testImportConfigurations3() throws Exception { 547 ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-configurations-import3.xml"), true); 549 assertNotNull(md); 550 551 assertNotNull(md.getConfigurations()); 553 assertEquals(Arrays.asList(new Configuration[] { 554 new Configuration("conf1", Visibility.PUBLIC, "", new String [0]), 555 new Configuration("conf2", Visibility.PRIVATE, "", new String [0]) 556 }), Arrays.asList(md.getConfigurations())); 557 558 DependencyDescriptor[] dependencies = md.getDependencies(); 559 assertNotNull(dependencies); 560 assertEquals(2, dependencies.length); 561 562 DependencyDescriptor dd = getDependency(dependencies, "mymodule1"); 564 assertEquals(Arrays.asList(new String [] {"*"}), Arrays.asList(dd.getModuleConfigurations())); 565 assertEquals(Arrays.asList(new String [] {"conf1"}), Arrays.asList(dd.getDependencyConfigurations("conf1"))); 566 assertEquals(Arrays.asList(new String [] {"conf2"}), Arrays.asList(dd.getDependencyConfigurations("conf2"))); 567 568 dd = getDependency(dependencies, "mymodule2"); 570 assertEquals(Arrays.asList(new String [] {"conf1"}), Arrays.asList(dd.getModuleConfigurations())); 571 assertEquals(Arrays.asList(new String [] {"*"}), Arrays.asList(dd.getDependencyConfigurations("conf1"))); 572 } 573 574 public void testExtendOtherConfigs() throws Exception { 575 ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-configextendsothers1.xml"), true); 577 assertNotNull(md); 578 579 Configuration allPublic = md.getConfiguration("all-public"); 581 assertNotNull(allPublic); 582 583 String [] allPublicExt = allPublic.getExtends(); 585 assertEquals(Arrays.asList(new String [] {"default", "test"}), Arrays.asList(allPublicExt)); 586 } 587 588 public void testImportConfigurationsWithExtendOtherConfigs() throws Exception { 589 ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-configextendsothers2.xml"), true); 591 assertNotNull(md); 592 593 Configuration allPublic = md.getConfiguration("all-public"); 595 assertNotNull(allPublic); 596 597 String [] allPublicExt = allPublic.getExtends(); 599 assertEquals(Arrays.asList(new String [] {"default", "test", "extra"}), Arrays.asList(allPublicExt)); 600 } 601 602 public void testImportConfigurationsWithMappingOverride() throws Exception { 603 ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-configurations-import4.xml"), true); 605 assertNotNull(md); 606 607 DependencyDescriptor[] dependencies = md.getDependencies(); 609 assertNotNull(dependencies); 610 assertEquals(2, dependencies.length); 611 612 DependencyDescriptor dd = getDependency(dependencies, "mymodule1"); 614 assertEquals(Arrays.asList(new String [] {"conf2", "conf1"}), Arrays.asList(dd.getModuleConfigurations())); 615 assertEquals(Arrays.asList(new String [] {"A"}), Arrays.asList(dd.getDependencyConfigurations("conf1"))); 616 assertEquals(Arrays.asList(new String [] {"B"}), Arrays.asList(dd.getDependencyConfigurations("conf2"))); 617 618 dd = getDependency(dependencies, "mymodule2"); 620 assertEquals(Arrays.asList(new String [] {"conf2"}), Arrays.asList(dd.getModuleConfigurations())); 621 assertEquals(Arrays.asList(new String [] {"B"}), Arrays.asList(dd.getDependencyConfigurations("conf2"))); 622 } 623 624 public void testImportConfigurationsWithWildcardAndMappingOverride() throws Exception { 625 ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-configextendsothers3.xml"), true); 627 assertNotNull(md); 628 629 DependencyDescriptor[] dependencies = md.getDependencies(); 631 assertNotNull(dependencies); 632 assertEquals(2, dependencies.length); 633 634 DependencyDescriptor dd = getDependency(dependencies, "mymodule1"); 636 assertEquals(Arrays.asList(new String [] {"all-public"}), Arrays.asList(dd.getModuleConfigurations())); 637 assertEquals(Arrays.asList(new String [] {"all-public"}), Arrays.asList(dd.getDependencyConfigurations("all-public"))); 638 639 dd = getDependency(dependencies, "mymodule2"); 641 assertEquals(Arrays.asList(new String [] {"all-public", "extra"}), Arrays.asList(dd.getModuleConfigurations())); 642 assertEquals(Arrays.asList(new String [] {"extra"}), Arrays.asList(dd.getDependencyConfigurations("extra"))); 643 assertEquals(Arrays.asList(new String [] {"all-public"}), Arrays.asList(dd.getDependencyConfigurations("all-public"))); 644 } 645 646 public void testDefaultConfMappingWithSelectors() throws Exception { 647 ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-defaultconfmapping-withselectors.xml"), true); 649 assertNotNull(md); 650 651 DependencyDescriptor[] dependencies = md.getDependencies(); 653 assertNotNull(dependencies); 654 assertEquals(3, dependencies.length); 655 656 DependencyDescriptor dd = getDependency(dependencies, "mymodule1"); 658 assertEquals(Arrays.asList(new String [] {"*"}), Arrays.asList(dd.getModuleConfigurations())); 659 assertEquals(Arrays.asList(new String [] {"default1", "default3"}), Arrays.asList(dd.getDependencyConfigurations("default"))); 660 661 dd = getDependency(dependencies, "mymodule2"); 663 assertEquals(Arrays.asList(new String [] {"test"}), Arrays.asList(dd.getModuleConfigurations())); 664 assertEquals(Arrays.asList(new String [] {"default2", "default3"}), Arrays.asList(dd.getDependencyConfigurations("test"))); 665 666 dd = getDependency(dependencies, "mymodule3"); 668 assertEquals(Arrays.asList(new String [] {"*"}), Arrays.asList(dd.getModuleConfigurations())); 669 assertEquals(Arrays.asList(new String [] {"default4"}), Arrays.asList(dd.getDependencyConfigurations("bla"))); 670 } 671 } 672 | Popular Tags |