Search in sources :

Example 41 with ModuleId

use of org.apache.ivy.core.module.id.ModuleId in project ant-ivy by apache.

the class PomModuleDescriptorParserTest method testWithoutVersion.

@Test
public void testWithoutVersion() throws Exception {
    ModuleDescriptor md = PomModuleDescriptorParser.getInstance().parseDescriptor(settings, getClass().getResource("test-without-version.pom"), false);
    assertNotNull(md);
    assertEquals(new ModuleId("org.apache", "test"), md.getModuleRevisionId().getModuleId());
    DependencyDescriptor[] dds = md.getDependencies();
    assertNotNull(dds);
    assertEquals(1, dds.length);
    assertEquals(ModuleRevisionId.newInstance("commons-logging", "commons-logging", "1.0.4"), dds[0].getDependencyRevisionId());
}
Also used : DefaultModuleDescriptor(org.apache.ivy.core.module.descriptor.DefaultModuleDescriptor) ModuleDescriptor(org.apache.ivy.core.module.descriptor.ModuleDescriptor) ModuleId(org.apache.ivy.core.module.id.ModuleId) DependencyDescriptor(org.apache.ivy.core.module.descriptor.DependencyDescriptor) XmlModuleDescriptorParserTest(org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParserTest) Test(org.junit.Test)

Example 42 with ModuleId

use of org.apache.ivy.core.module.id.ModuleId in project ant-ivy by apache.

the class XmlModuleDescriptorParserTest method testFull.

@Test
public void testFull() throws Exception {
    ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(settings, getClass().getResource("test.xml"), true);
    assertNotNull(md);
    assertEquals("myorg", md.getModuleRevisionId().getOrganisation());
    assertEquals("mymodule", md.getModuleRevisionId().getName());
    assertEquals("myrev", md.getModuleRevisionId().getRevision());
    assertEquals("integration", md.getStatus());
    Date pubdate = new GregorianCalendar(2004, 10, 1, 11, 0, 0).getTime();
    assertEquals(pubdate, md.getPublicationDate());
    License[] licenses = md.getLicenses();
    assertEquals(1, licenses.length);
    assertEquals("MyLicense", licenses[0].getName());
    assertEquals("http://www.my.org/mymodule/mylicense.html", licenses[0].getUrl());
    assertEquals("http://www.my.org/mymodule/", md.getHomePage());
    assertEquals("This module is <b>great</b> !<br/>\n\t" + "You can use it especially with myconf1 and myconf2, " + "and myconf4 is not too bad too.", md.getDescription().replaceAll("\r\n", "\n").replace('\r', '\n'));
    assertEquals(1, md.getExtraInfos().size());
    ExtraInfoHolder someExtraElement = md.getExtraInfos().get(0);
    assertEquals("e:someExtra", someExtraElement.getName());
    assertEquals("56576", someExtraElement.getContent());
    assertEquals(0, someExtraElement.getAttributes().size());
    Configuration[] confs = md.getConfigurations();
    assertNotNull(confs);
    assertEquals(5, confs.length);
    assertConf(md, "myconf1", "desc 1", PUBLIC, new String[0]);
    assertConf(md, "myconf2", "desc 2", PUBLIC, new String[0]);
    assertConf(md, "myconf3", "desc 3", PRIVATE, new String[0]);
    assertConf(md, "myconf4", "desc 4", PUBLIC, new String[] { "myconf1", "myconf2" });
    assertConf(md, "myoldconf", "my old desc", PUBLIC, new String[0]);
    assertArtifacts(md.getArtifacts("myconf1"), new String[] { "myartifact1", "myartifact2", "myartifact3", "myartifact4" });
    assertArtifacts(md.getArtifacts("myconf2"), new String[] { "myartifact1", "myartifact3" });
    assertArtifacts(md.getArtifacts("myconf3"), new String[] { "myartifact1", "myartifact3", "myartifact4" });
    assertArtifacts(md.getArtifacts("myconf4"), new String[] { "myartifact1" });
    DependencyDescriptor[] dependencies = md.getDependencies();
    assertNotNull(dependencies);
    assertEquals(13, dependencies.length);
    // no conf def => equivalent to *->*
    DependencyDescriptor dd = getDependency(dependencies, "mymodule2");
    assertNotNull(dd);
    assertEquals("myorg", dd.getDependencyId().getOrganisation());
    assertEquals("2.0", dd.getDependencyRevisionId().getRevision());
    assertEquals(Collections.singletonList("*"), Arrays.asList(dd.getModuleConfigurations()));
    assertEquals(Collections.singletonList("*"), Arrays.asList(dd.getDependencyConfigurations("myconf1")));
    assertEquals(Collections.singletonList("*"), Arrays.asList(dd.getDependencyConfigurations(new String[] { "myconf2", "myconf3", "myconf4" })));
    assertDependencyArtifactIncludeRules(dd, new String[] { "myconf1", "myconf2", "myconf3", "myconf4" }, new String[0]);
    assertFalse(dd.isChanging());
    assertTrue(dd.isTransitive());
    // changing = true
    dd = getDependency(dependencies, "mymodule3");
    assertNotNull(dd);
    assertTrue(dd.isChanging());
    assertFalse(dd.isTransitive());
    // conf="myconf1" => equivalent to myconf1->myconf1
    dd = getDependency(dependencies, "yourmodule1");
    assertNotNull(dd);
    assertEquals("yourorg", dd.getDependencyId().getOrganisation());
    assertEquals("trunk", dd.getDependencyRevisionId().getBranch());
    assertEquals("1.1", dd.getDependencyRevisionId().getRevision());
    assertEquals("branch1", dd.getDynamicConstraintDependencyRevisionId().getBranch());
    assertEquals("1+", dd.getDynamicConstraintDependencyRevisionId().getRevision());
    assertEquals("yourorg#yourmodule1#branch1;1+", dd.getDynamicConstraintDependencyRevisionId().toString());
    assertEquals(Collections.singletonList("myconf1"), Arrays.asList(dd.getModuleConfigurations()));
    assertEquals(Collections.singletonList("myconf1"), Arrays.asList(dd.getDependencyConfigurations("myconf1")));
    assertEquals(Collections.emptyList(), Arrays.asList(dd.getDependencyConfigurations(new String[] { "myconf2", "myconf3", "myconf4" })));
    assertDependencyArtifactIncludeRules(dd, new String[] { "myconf1", "myconf2", "myconf3", "myconf4" }, new String[0]);
    // conf="myconf1->yourconf1"
    dd = getDependency(dependencies, "yourmodule2");
    assertNotNull(dd);
    assertEquals("yourorg", dd.getDependencyId().getOrganisation());
    assertEquals("2+", dd.getDependencyRevisionId().getRevision());
    assertEquals(Collections.singletonList("myconf1"), Arrays.asList(dd.getModuleConfigurations()));
    assertEquals(Collections.singletonList("yourconf1"), Arrays.asList(dd.getDependencyConfigurations("myconf1")));
    assertEquals(Collections.emptyList(), Arrays.asList(dd.getDependencyConfigurations(new String[] { "myconf2", "myconf3", "myconf4" })));
    assertDependencyArtifactIncludeRules(dd, new String[] { "myconf1", "myconf2", "myconf3", "myconf4" }, new String[0]);
    // conf="myconf1->yourconf1, yourconf2"
    dd = getDependency(dependencies, "yourmodule3");
    assertNotNull(dd);
    assertEquals("yourorg", dd.getDependencyId().getOrganisation());
    assertEquals("3.1", dd.getDependencyRevisionId().getRevision());
    assertEquals(Collections.singletonList("myconf1"), Arrays.asList(dd.getModuleConfigurations()));
    assertEquals(Arrays.asList("yourconf1", "yourconf2"), Arrays.asList(dd.getDependencyConfigurations("myconf1")));
    assertEquals(Collections.emptyList(), Arrays.asList(dd.getDependencyConfigurations(new String[] { "myconf2", "myconf3", "myconf4" })));
    assertDependencyArtifactIncludeRules(dd, new String[] { "myconf1", "myconf2", "myconf3", "myconf4" }, new String[0]);
    // conf="myconf1, myconf2->yourconf1, yourconf2"
    dd = getDependency(dependencies, "yourmodule4");
    assertNotNull(dd);
    assertEquals("yourorg", dd.getDependencyId().getOrganisation());
    assertEquals("4.1", dd.getDependencyRevisionId().getRevision());
    assertEquals(new HashSet<>(Arrays.asList("myconf1", "myconf2")), new HashSet<>(Arrays.asList(dd.getModuleConfigurations())));
    assertEquals(Arrays.asList("yourconf1", "yourconf2"), Arrays.asList(dd.getDependencyConfigurations("myconf1")));
    assertEquals(Arrays.asList("yourconf1", "yourconf2"), Arrays.asList(dd.getDependencyConfigurations("myconf2")));
    assertEquals(Collections.emptyList(), Arrays.asList(dd.getDependencyConfigurations(new String[] { "myconf3", "myconf4" })));
    assertDependencyArtifactIncludeRules(dd, new String[] { "myconf1", "myconf2", "myconf3", "myconf4" }, new String[0]);
    // conf="myconf1->yourconf1;myconf2->yourconf1, yourconf2"
    dd = getDependency(dependencies, "yourmodule5");
    assertNotNull(dd);
    assertEquals("yourorg", dd.getDependencyId().getOrganisation());
    assertEquals("5.1", dd.getDependencyRevisionId().getRevision());
    assertEquals(new HashSet<>(Arrays.asList("myconf1", "myconf2")), new HashSet<>(Arrays.asList(dd.getModuleConfigurations())));
    assertEquals(Collections.singletonList("yourconf1"), Arrays.asList(dd.getDependencyConfigurations("myconf1")));
    assertEquals(Arrays.asList("yourconf1", "yourconf2"), Arrays.asList(dd.getDependencyConfigurations("myconf2")));
    assertEquals(Collections.emptyList(), Arrays.asList(dd.getDependencyConfigurations(new String[] { "myconf3", "myconf4" })));
    assertDependencyArtifactIncludeRules(dd, new String[] { "myconf1", "myconf2", "myconf3", "myconf4" }, new String[0]);
    // conf="*->@"
    dd = getDependency(dependencies, "yourmodule11");
    assertNotNull(dd);
    assertEquals("yourorg", dd.getDependencyId().getOrganisation());
    assertEquals("11.1", dd.getDependencyRevisionId().getRevision());
    assertEquals(Collections.singleton("*"), new HashSet<>(Arrays.asList(dd.getModuleConfigurations())));
    assertEquals(Collections.singletonList("myconf1"), Arrays.asList(dd.getDependencyConfigurations("myconf1")));
    assertEquals(Collections.singletonList("myconf2"), Arrays.asList(dd.getDependencyConfigurations("myconf2")));
    assertEquals(Collections.singletonList("myconf3"), Arrays.asList(dd.getDependencyConfigurations("myconf3")));
    assertEquals(Collections.singletonList("myconf4"), Arrays.asList(dd.getDependencyConfigurations("myconf4")));
    dd = getDependency(dependencies, "yourmodule6");
    assertNotNull(dd);
    assertEquals("yourorg", dd.getDependencyId().getOrganisation());
    assertEquals("latest.integration", dd.getDependencyRevisionId().getRevision());
    assertEquals(new HashSet<>(Arrays.asList("myconf1", "myconf2")), new HashSet<>(Arrays.asList(dd.getModuleConfigurations())));
    assertEquals(Collections.singletonList("yourconf1"), Arrays.asList(dd.getDependencyConfigurations("myconf1")));
    assertEquals(Arrays.asList("yourconf1", "yourconf2"), Arrays.asList(dd.getDependencyConfigurations("myconf2")));
    assertEquals(Collections.emptyList(), Arrays.asList(dd.getDependencyConfigurations(new String[] { "myconf3", "myconf4" })));
    assertDependencyArtifactIncludeRules(dd, new String[] { "myconf1", "myconf2", "myconf3", "myconf4" }, new String[0]);
    dd = getDependency(dependencies, "yourmodule7");
    assertNotNull(dd);
    assertEquals("yourorg", dd.getDependencyId().getOrganisation());
    assertEquals("7.1", dd.getDependencyRevisionId().getRevision());
    assertEquals(new HashSet<>(Arrays.asList("myconf1", "myconf2")), new HashSet<>(Arrays.asList(dd.getModuleConfigurations())));
    assertEquals(Collections.singletonList("yourconf1"), Arrays.asList(dd.getDependencyConfigurations("myconf1")));
    assertEquals(Arrays.asList("yourconf1", "yourconf2"), Arrays.asList(dd.getDependencyConfigurations("myconf2")));
    assertEquals(Collections.emptyList(), Arrays.asList(dd.getDependencyConfigurations(new String[] { "myconf3", "myconf4" })));
    assertDependencyArtifactIncludeRules(dd, new String[] { "myconf1", "myconf2", "myconf3", "myconf4" }, new String[0]);
    dd = getDependency(dependencies, "yourmodule8");
    assertNotNull(dd);
    assertEquals("yourorg", dd.getDependencyId().getOrganisation());
    assertEquals("8.1", dd.getDependencyRevisionId().getRevision());
    assertEquals(new HashSet<>(Collections.singletonList("*")), new HashSet<>(Arrays.asList(dd.getModuleConfigurations())));
    assertDependencyArtifacts(dd, new String[] { "myconf1" }, new String[] { "yourartifact8-1", "yourartifact8-2" });
    assertDependencyArtifacts(dd, new String[] { "myconf2" }, new String[] { "yourartifact8-1", "yourartifact8-2" });
    assertDependencyArtifacts(dd, new String[] { "myconf3" }, new String[] { "yourartifact8-1", "yourartifact8-2" });
    assertDependencyArtifacts(dd, new String[] { "myconf4" }, new String[] { "yourartifact8-1", "yourartifact8-2" });
    dd = getDependency(dependencies, "yourmodule9");
    assertNotNull(dd);
    assertEquals("yourorg", dd.getDependencyId().getOrganisation());
    assertEquals("9.1", dd.getDependencyRevisionId().getRevision());
    assertEquals(new HashSet<>(Arrays.asList("myconf1", "myconf2", "myconf3")), new HashSet<>(Arrays.asList(dd.getModuleConfigurations())));
    assertDependencyArtifacts(dd, new String[] { "myconf1" }, new String[] { "yourartifact9-1" });
    assertDependencyArtifacts(dd, new String[] { "myconf2" }, new String[] { "yourartifact9-1", "yourartifact9-2" });
    assertDependencyArtifacts(dd, new String[] { "myconf3" }, new String[] { "yourartifact9-2" });
    assertDependencyArtifacts(dd, new String[] { "myconf4" }, new String[] {});
    assertDependencyArtifactExcludeRules(dd, new String[] { "myconf1" }, new String[] {});
    assertDependencyArtifactExcludeRules(dd, new String[] { "myconf2" }, new String[] {});
    assertDependencyArtifactExcludeRules(dd, new String[] { "myconf3" }, new String[] {});
    assertDependencyArtifactExcludeRules(dd, new String[] { "myconf4" }, new String[] {});
    dd = getDependency(dependencies, "yourmodule10");
    assertNotNull(dd);
    assertEquals("yourorg", dd.getDependencyId().getOrganisation());
    assertEquals("10.1", dd.getDependencyRevisionId().getRevision());
    assertEquals(Collections.singleton("*"), new HashSet<>(Arrays.asList(dd.getModuleConfigurations())));
    assertDependencyArtifactIncludeRules(dd, new String[] { "myconf1" }, new String[] { "your.*", PatternMatcher.ANY_EXPRESSION });
    assertDependencyArtifactIncludeRules(dd, new String[] { "myconf2" }, new String[] { "your.*", PatternMatcher.ANY_EXPRESSION });
    assertDependencyArtifactIncludeRules(dd, new String[] { "myconf3" }, new String[] { "your.*", PatternMatcher.ANY_EXPRESSION });
    assertDependencyArtifactIncludeRules(dd, new String[] { "myconf4" }, new String[] { "your.*", PatternMatcher.ANY_EXPRESSION });
    assertDependencyArtifactExcludeRules(dd, new String[] { "myconf1" }, new String[] { "toexclude" });
    assertDependencyArtifactExcludeRules(dd, new String[] { "myconf2" }, new String[] { "toexclude" });
    assertDependencyArtifactExcludeRules(dd, new String[] { "myconf3" }, new String[] { "toexclude" });
    assertDependencyArtifactExcludeRules(dd, new String[] { "myconf4" }, new String[] { "toexclude" });
    ConflictManager cm = md.getConflictManager(new ModuleId("yourorg", "yourmodule1"));
    assertNotNull(cm);
    assertTrue(cm instanceof NoConflictManager);
    cm = md.getConflictManager(new ModuleId("yourorg", "yourmodule2"));
    assertNotNull(cm);
    assertTrue(cm instanceof NoConflictManager);
    cm = md.getConflictManager(new ModuleId("theirorg", "theirmodule1"));
    assertNotNull(cm);
    assertTrue(cm instanceof FixedConflictManager);
    FixedConflictManager fcm = (FixedConflictManager) cm;
    assertEquals(2, fcm.getRevs().size());
    assertTrue(fcm.getRevs().contains("1.0"));
    assertTrue(fcm.getRevs().contains("1.1"));
    cm = md.getConflictManager(new ModuleId("theirorg", "theirmodule2"));
    assertNull(cm);
    assertEquals(ModuleRevisionId.parse("yourorg#yourmodule1#BRANCH;1.0"), md.mediate(new DefaultDependencyDescriptor(ModuleRevisionId.parse("yourorg#yourmodule1;2.0"), false)).getDependencyRevisionId());
    ExcludeRule[] rules = md.getAllExcludeRules();
    assertNotNull(rules);
    assertEquals(2, rules.length);
    assertEquals(GlobPatternMatcher.INSTANCE, rules[0].getMatcher());
    assertEquals(ExactPatternMatcher.INSTANCE, rules[1].getMatcher());
    assertEquals(Collections.singletonList("myconf1"), Arrays.asList(rules[0].getConfigurations()));
    assertEquals(Arrays.asList("myconf1", "myconf2", "myconf3", "myconf4", "myoldconf"), Arrays.asList(rules[1].getConfigurations()));
}
Also used : Configuration(org.apache.ivy.core.module.descriptor.Configuration) DependencyDescriptor(org.apache.ivy.core.module.descriptor.DependencyDescriptor) DefaultDependencyDescriptor(org.apache.ivy.core.module.descriptor.DefaultDependencyDescriptor) ExtraInfoHolder(org.apache.ivy.core.module.descriptor.ExtraInfoHolder) GregorianCalendar(java.util.GregorianCalendar) License(org.apache.ivy.core.module.descriptor.License) FixedConflictManager(org.apache.ivy.plugins.conflict.FixedConflictManager) ExcludeRule(org.apache.ivy.core.module.descriptor.ExcludeRule) Date(java.util.Date) ModuleDescriptor(org.apache.ivy.core.module.descriptor.ModuleDescriptor) ModuleId(org.apache.ivy.core.module.id.ModuleId) NoConflictManager(org.apache.ivy.plugins.conflict.NoConflictManager) DefaultDependencyDescriptor(org.apache.ivy.core.module.descriptor.DefaultDependencyDescriptor) NoConflictManager(org.apache.ivy.plugins.conflict.NoConflictManager) FixedConflictManager(org.apache.ivy.plugins.conflict.FixedConflictManager) ConflictManager(org.apache.ivy.plugins.conflict.ConflictManager) Test(org.junit.Test)

Example 43 with ModuleId

use of org.apache.ivy.core.module.id.ModuleId in project ant-ivy by apache.

the class XmlModuleDescriptorWriterTest method testTransitiveAttributeNotWrittenForTransitiveConfs.

/**
 * Test that the transitive attribute is not written when the configuration IS transitive.
 *
 * This is the default and writing it will only add noise and cause a deviation from the known
 * behavior (before fixing IVY-1207).
 *
 * @throws Exception if something goes wrong
 * @see <a href="https://issues.apache.org/jira/browse/IVY-1207">IVY-1207</a>
 */
@Test
public void testTransitiveAttributeNotWrittenForTransitiveConfs() throws Exception {
    // Given a ModuleDescriptor with a transitive configuration
    DefaultModuleDescriptor md = new DefaultModuleDescriptor(new ModuleRevisionId(new ModuleId("myorg", "myname"), "1.0"), "integration", new Date());
    Configuration conf = new Configuration("conf", PUBLIC, "desc", null, true, null);
    md.addConfiguration(conf);
    // When the ModuleDescriptor is written
    XmlModuleDescriptorWriter.write(md, LICENSE, dest);
    // Then the transitive attribute must NOT be written
    String output = FileUtil.readEntirely(dest);
    String writtenConf = output.substring(output.indexOf("<configurations>") + 16, output.indexOf("</configurations>")).trim();
    assertFalse("Transitive attribute set: " + writtenConf, writtenConf.contains("transitive="));
}
Also used : ModuleId(org.apache.ivy.core.module.id.ModuleId) Configuration(org.apache.ivy.core.module.descriptor.Configuration) ModuleRevisionId(org.apache.ivy.core.module.id.ModuleRevisionId) DefaultModuleDescriptor(org.apache.ivy.core.module.descriptor.DefaultModuleDescriptor) Date(java.util.Date) Test(org.junit.Test) PomModuleDescriptorParserTest(org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParserTest)

Example 44 with ModuleId

use of org.apache.ivy.core.module.id.ModuleId in project ant-ivy by apache.

the class PomModuleDescriptorBuilder method addDependency.

public void addDependency(DependencyDescriptor descriptor) {
    // Some POMs depend on themselves through their parent pom, don't add this dependency
    // since Ivy doesn't allow this!
    // Example:
    // https://repo1.maven.org/maven2/com/atomikos/atomikos-util/3.6.4/atomikos-util-3.6.4.pom
    ModuleId dependencyId = descriptor.getDependencyId();
    ModuleRevisionId mRevId = ivyModuleDescriptor.getModuleRevisionId();
    if (mRevId != null && mRevId.getModuleId().equals(dependencyId)) {
        return;
    }
    ivyModuleDescriptor.addDependency(descriptor);
}
Also used : ModuleId(org.apache.ivy.core.module.id.ModuleId) ModuleRevisionId(org.apache.ivy.core.module.id.ModuleRevisionId)

Example 45 with ModuleId

use of org.apache.ivy.core.module.id.ModuleId in project ant-ivy by apache.

the class PomModuleDescriptorBuilder method getDefaultScope.

private String getDefaultScope(PomDependencyData dep) {
    String result;
    ModuleId moduleId = ModuleId.newInstance(dep.getGroupId(), dep.getArtifactId());
    if (ivyModuleDescriptor.getDependencyManagementMap().containsKey(moduleId)) {
        result = ivyModuleDescriptor.getDependencyManagementMap().get(moduleId).getScope();
    } else {
        String key = getDependencyMgtExtraInfoKeyForScope(dep.getGroupId(), dep.getArtifactId());
        result = ivyModuleDescriptor.getExtraInfoContentByTagName(key);
    }
    if (result == null || !MAVEN2_CONF_MAPPING.containsKey(result)) {
        result = "compile";
    }
    return result;
}
Also used : ModuleId(org.apache.ivy.core.module.id.ModuleId)

Aggregations

ModuleId (org.apache.ivy.core.module.id.ModuleId)49 ModuleRevisionId (org.apache.ivy.core.module.id.ModuleRevisionId)19 ModuleDescriptor (org.apache.ivy.core.module.descriptor.ModuleDescriptor)13 File (java.io.File)9 HashMap (java.util.HashMap)9 ArrayList (java.util.ArrayList)8 Test (org.junit.Test)8 Date (java.util.Date)6 DefaultDependencyDescriptor (org.apache.ivy.core.module.descriptor.DefaultDependencyDescriptor)6 DefaultModuleDescriptor (org.apache.ivy.core.module.descriptor.DefaultModuleDescriptor)6 DependencyDescriptor (org.apache.ivy.core.module.descriptor.DependencyDescriptor)6 BuildException (org.apache.tools.ant.BuildException)6 Ivy (org.apache.ivy.Ivy)5 ArtifactId (org.apache.ivy.core.module.id.ArtifactId)5 ResolveReport (org.apache.ivy.core.report.ResolveReport)5 ResolvedModuleRevision (org.apache.ivy.core.resolve.ResolvedModuleRevision)5 IvySettings (org.apache.ivy.core.settings.IvySettings)5 IOException (java.io.IOException)4 Map (java.util.Map)4 Configuration (org.apache.ivy.core.module.descriptor.Configuration)4