You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by ja...@apache.org on 2018/08/19 13:54:09 UTC

ant-ivy git commit: Treat the ArtifactOrigin's location as a URL (as already stated in its javadoc).

Repository: ant-ivy
Updated Branches:
  refs/heads/master 556022e02 -> 7131e1c02


Treat the ArtifactOrigin's location as a URL (as already stated in its javadoc).

Should solve issues, especially on Windows OS, like the one reported in https://www.mail-archive.com/ivy-user@ant.apache.org/msg06324.html


Project: http://git-wip-us.apache.org/repos/asf/ant-ivy/repo
Commit: http://git-wip-us.apache.org/repos/asf/ant-ivy/commit/7131e1c0
Tree: http://git-wip-us.apache.org/repos/asf/ant-ivy/tree/7131e1c0
Diff: http://git-wip-us.apache.org/repos/asf/ant-ivy/diff/7131e1c0

Branch: refs/heads/master
Commit: 7131e1c028e0035de548c6b37e1e8c9624417440
Parents: 556022e
Author: Jaikiran Pai <ja...@apache.org>
Authored: Sun Aug 19 19:21:18 2018 +0530
Committer: Jaikiran Pai <ja...@apache.org>
Committed: Sun Aug 19 19:21:18 2018 +0530

----------------------------------------------------------------------
 .../cache/DefaultRepositoryCacheManager.java     |  3 +--
 .../cache/DefaultRepositoryCacheManagerTest.java | 19 +++++++++++++++++++
 2 files changed, 20 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/7131e1c0/src/java/org/apache/ivy/core/cache/DefaultRepositoryCacheManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/core/cache/DefaultRepositoryCacheManager.java b/src/java/org/apache/ivy/core/cache/DefaultRepositoryCacheManager.java
index 540cf92..91257b0 100644
--- a/src/java/org/apache/ivy/core/cache/DefaultRepositoryCacheManager.java
+++ b/src/java/org/apache/ivy/core/cache/DefaultRepositoryCacheManager.java
@@ -19,7 +19,6 @@ package org.apache.ivy.core.cache;
 
 import java.io.File;
 import java.io.IOException;
-import java.io.UnsupportedEncodingException;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.nio.charset.StandardCharsets;
@@ -1011,7 +1010,7 @@ public class DefaultRepositoryCacheManager implements RepositoryCacheManager, Iv
                         if (useOrigin && artifactRes.isLocal()) {
                             if (artifactRes instanceof LocalizableResource) {
                                 origin.setLocation(((LocalizableResource) artifactRes).getFile()
-                                        .getAbsolutePath());
+                                        .toURI().toURL().toExternalForm());
                             }
                             saveArtifactOrigin(artifact, origin);
                             archiveFile = getArchiveFileInCache(artifact, origin);

http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/7131e1c0/test/java/org/apache/ivy/core/cache/DefaultRepositoryCacheManagerTest.java
----------------------------------------------------------------------
diff --git a/test/java/org/apache/ivy/core/cache/DefaultRepositoryCacheManagerTest.java b/test/java/org/apache/ivy/core/cache/DefaultRepositoryCacheManagerTest.java
index 2333802..ff00a32 100644
--- a/test/java/org/apache/ivy/core/cache/DefaultRepositoryCacheManagerTest.java
+++ b/test/java/org/apache/ivy/core/cache/DefaultRepositoryCacheManagerTest.java
@@ -24,6 +24,7 @@ import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.net.URL;
 import java.util.Date;
 
 import org.apache.ivy.Ivy;
@@ -48,6 +49,7 @@ import org.apache.ivy.util.Message;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.taskdefs.Delete;
 import org.junit.After;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
@@ -192,6 +194,23 @@ public class DefaultRepositoryCacheManagerTest {
         assertEquals(rmr11, rmrFromCache);
     }
 
+    /**
+     * Tests that the {@link ArtifactOrigin#getLocation()} and {@link ArtifactOrigin#setLocation(String)} values
+     * are treated as {@link URL} while saving and retrieving the artifact origin information
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testArtificationOriginalLocation() throws Exception {
+        final Artifact simpleArtifact = createArtifact("org", "dummy", "1.0.0", "hello", "jar", "jar");
+        final URL location = new File("dummylocation").toURI().toURL();
+        final ArtifactOrigin originatedFrom = new ArtifactOrigin(simpleArtifact, true, location.toExternalForm());
+        cacheManager.saveArtifactOrigin(simpleArtifact, originatedFrom);
+        final ArtifactOrigin restored = cacheManager.getSavedArtifactOrigin(simpleArtifact);
+        Assert.assertNotNull("Location of artifact origin wasn't expected to be null", restored.getLocation());
+        Assert.assertEquals("Unexpected artifact origin location", location, new URL(restored.getLocation()));
+    }
+
     private static DefaultArtifact createArtifact(String org, String module, String rev,
                                                   String name, String type, String ext) {
         ModuleId mid = new ModuleId(org, module);