diff --git a/CHANGES.txt b/CHANGES.txt index ef3581ac..41b2cb7d 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -117,6 +117,8 @@ for detailed view of each issue, please consult http://issues.apache.org/jira/br - FIX: Maven pom license url can contain xml entities (IVY-950) - FIX: Maven pom license has name as optional element (IVY-949) - FIX: Ivy doesn't throw an error when the parent POM cannot be loaded (IVY-931) +- FIX: Maven pom parser is not handling pom property ${project.parent.version} (IVY-955) +- FIX: inline resolve ignores the transitive attribute (IVY-958) 2.0.0-rc1 ===================================== diff --git a/build-release.xml b/build-release.xml index 278af155..36a9f8e5 100644 --- a/build-release.xml +++ b/build-release.xml @@ -18,7 +18,8 @@ --> + xmlns:xooki="antlib:xooki" + xmlns:openpgp="antlib:org.apache.commons.openpgp.ant"> @@ -201,8 +202,67 @@ - - + + Setting version to ${build.version} + + + + + + + + Setting status to ${status} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 8. Launch the release script -ant -Dbuild.version=2.0.0-beta1 -Dstatus=milestone -f build-release.xml release +ant -f build-release.xml release The status should be release only for final releases, and milestone for any other intermediate release. If anything is wrong, fix and go back to step 4. diff --git a/ivysettings-signtask.xml b/ivysettings-signtask.xml new file mode 100644 index 00000000..af91fce9 --- /dev/null +++ b/ivysettings-signtask.xml @@ -0,0 +1,27 @@ + + + + + + + + + + diff --git a/src/java/org/apache/ivy/ant/IvyPostResolveTask.java b/src/java/org/apache/ivy/ant/IvyPostResolveTask.java index 53a04c4a..30d1ec01 100644 --- a/src/java/org/apache/ivy/ant/IvyPostResolveTask.java +++ b/src/java/org/apache/ivy/ant/IvyPostResolveTask.java @@ -133,6 +133,7 @@ public abstract class IvyPostResolveTask extends IvyTask { resolve.setInline(true); resolve.setConf(conf); resolve.setResolveId(resolveId); + resolve.setTransitive(isTransitive()); resolve.execute(); } else { Message.verbose("inline resolve already done for " + getOrganisation() + " " diff --git a/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java b/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java index a052d609..79de0644 100644 --- a/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java +++ b/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java @@ -114,6 +114,7 @@ public final class PomModuleDescriptorParser implements ModuleDescriptorParser { try { PomReader domReader = new PomReader(descriptorURL, res); domReader.setProperty("parent.version", domReader.getParentVersion()); + domReader.setProperty("project.parent.version", domReader.getParentVersion()); Map pomProperties = domReader.getPomProperties(); for (Iterator iter = pomProperties.entrySet().iterator(); iter.hasNext();) { diff --git a/src/java/org/apache/ivy/util/url/ApacheURLLister.java b/src/java/org/apache/ivy/util/url/ApacheURLLister.java index e1e0bcea..d3ed6ae8 100644 --- a/src/java/org/apache/ivy/util/url/ApacheURLLister.java +++ b/src/java/org/apache/ivy/util/url/ApacheURLLister.java @@ -125,6 +125,11 @@ public class ApacheURLLister { } text = text.trim(); + + if (href.startsWith("../")) { + // we are only interested in sub-URLs, not parent URLs, so skip this one + continue; + } // absolute href: convert to relative one if (href.startsWith("/")) { diff --git a/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java b/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java index 0a073401..fcef4ead 100644 --- a/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java +++ b/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java @@ -190,6 +190,20 @@ public class PomModuleDescriptorParserTest extends AbstractModuleDescriptorParse assertEquals("test", artifact[0].getName()); } + public void testProjectParentVersion() throws Exception { + ModuleDescriptor md = PomModuleDescriptorParser.getInstance().parseDescriptor( + settings, getClass().getResource("test-project.parent.version.pom"), false); + assertNotNull(md); + + ModuleRevisionId mrid = ModuleRevisionId.newInstance("org.apache", "test", "1.0"); + assertEquals(mrid, md.getModuleRevisionId()); + + Artifact[] artifact = md.getArtifacts("master"); + assertEquals(1, artifact.length); + assertEquals(mrid, artifact[0].getModuleRevisionId()); + assertEquals("test", artifact[0].getName()); + } + public void testDependencies() throws Exception { ModuleDescriptor md = PomModuleDescriptorParser.getInstance().parseDescriptor( settings, getClass().getResource("test-dependencies.pom"), false); diff --git a/test/java/org/apache/ivy/plugins/parser/m2/test-project.parent.version.pom b/test/java/org/apache/ivy/plugins/parser/m2/test-project.parent.version.pom new file mode 100644 index 00000000..432a6767 --- /dev/null +++ b/test/java/org/apache/ivy/plugins/parser/m2/test-project.parent.version.pom @@ -0,0 +1,35 @@ + + + + + test-parent + org.apache + 1.0 + + 4.0.0 + test + Test Module for Ivy M2 parsing + ${project.parent.version} + http://ant.apache.org/ivy + + Apache + http://www.apache.org/ + +