From 556f3174c88d4b50c54d02d073c0107a7a76fc2b Mon Sep 17 00:00:00 2001 From: Maarten Coene Date: Mon, 5 Nov 2007 10:18:06 +0000 Subject: [PATCH] FIX: Retrieval not expanding "[originalname]". (IVY-631) git-svn-id: https://svn.apache.org/repos/asf/incubator/ivy/core/trunk@591945 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 1 + .../core/module/descriptor/MDArtifact.java | 8 ++----- .../org/apache/ivy/ant/IvyRetrieveTest.java | 10 ++++++++ test/java/org/apache/ivy/ant/ivy-631.xml | 24 +++++++++++++++++++ 4 files changed, 37 insertions(+), 6 deletions(-) create mode 100644 test/java/org/apache/ivy/ant/ivy-631.xml diff --git a/CHANGES.txt b/CHANGES.txt index b2809345..ab9b3757 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -98,6 +98,7 @@ for detailed view of each issue, please consult http://issues.apache.org/jira/br - IMPROVEMENT: Unit test improvements (IVY-545) (thanks to Tjeerd Verhagen) - IMPROVEMENT: Dependent jars missing in ivy binaries (IVY-481) +- FIX: Retrieval not expanding "[originalname]". (IVY-631) - FIX: Ant target "clean" on Ivy multi-project tutorial points to wrong cache directory. (IVY-548) - FIX: Variables not replaced during deliver (IVY-520) (thanks to John Williams) - FIX: XmlModuleDescriptorWriter does not produce matcher attribute on include and exclude rules (IVY-556) diff --git a/src/java/org/apache/ivy/core/module/descriptor/MDArtifact.java b/src/java/org/apache/ivy/core/module/descriptor/MDArtifact.java index 5d78701e..7ffbbb9f 100644 --- a/src/java/org/apache/ivy/core/module/descriptor/MDArtifact.java +++ b/src/java/org/apache/ivy/core/module/descriptor/MDArtifact.java @@ -45,8 +45,6 @@ public class MDArtifact extends AbstractArtifact { private List confs = new ArrayList(); - private ArtifactRevisionId arid; - private Map extraAttributes = null; private URL url; @@ -86,11 +84,9 @@ public class MDArtifact extends AbstractArtifact { } public ArtifactRevisionId getId() { - if (arid == null) { - arid = ArtifactRevisionId.newInstance(md.getResolvedModuleRevisionId(), name, type, + // do not cache the result because the resolvedModuleRevisionId can change! + return ArtifactRevisionId.newInstance(md.getResolvedModuleRevisionId(), name, type, ext, extraAttributes); - } - return arid; } public String getName() { diff --git a/test/java/org/apache/ivy/ant/IvyRetrieveTest.java b/test/java/org/apache/ivy/ant/IvyRetrieveTest.java index b7d03cde..ed26e6e2 100644 --- a/test/java/org/apache/ivy/ant/IvyRetrieveTest.java +++ b/test/java/org/apache/ivy/ant/IvyRetrieveTest.java @@ -207,6 +207,16 @@ public class IvyRetrieveTest extends TestCase { assertTrue(new File(IvyPatternHelper.substitute(RETRIEVE_PATTERN, "org1", "mod1.2", "2.0", "mod1.2", "jar", "jar")).exists()); } + + public void testRetrieveWithOriginalNamePattern() throws Exception { + retrieve.setFile(new File("test/java/org/apache/ivy/ant/ivy-631.xml")); + retrieve.setConf("default"); + retrieve.setPattern("build/test/lib/[conf]/[originalname].[ext]"); + retrieve.setSync(true); + retrieve.execute(); + + assertTrue(new File("build/test/lib/default/mod1.2-2.2.jar").exists()); + } public void testFailureWithoutAPreviousResolve() throws Exception { // we do a retrieve with the module information whereas no resolve has been previously done diff --git a/test/java/org/apache/ivy/ant/ivy-631.xml b/test/java/org/apache/ivy/ant/ivy-631.xml new file mode 100644 index 00000000..cb51ed05 --- /dev/null +++ b/test/java/org/apache/ivy/ant/ivy-631.xml @@ -0,0 +1,24 @@ + + + + + + +