You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by "alex322 (JIRA)" <ji...@apache.org> on 2008/11/04 19:56:44 UTC

[jira] Updated: (IVY-965) Support useOrigin for artifacts with a set url attribute

     [ https://issues.apache.org/jira/browse/IVY-965?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

alex322 updated IVY-965:
------------------------

    Description: 
Currently artifacts with a specified url are always considered remote because the code instantiates URLResource.
This change would allow using FileResource when the url is "file://*".

{noformat}
--- BasicResolver.java.original        Mon Oct 20 16:47:15 2008
+++ BasicResolver.java  Mon Nov 03 15:38:48 2008
@@ -64,6 +64,8 @@
 import org.apache.ivy.plugins.repository.ArtifactResourceResolver;
 import org.apache.ivy.plugins.repository.Resource;
 import org.apache.ivy.plugins.repository.ResourceDownloader;
+import org.apache.ivy.plugins.repository.file.FileRepository;
+import org.apache.ivy.plugins.repository.file.FileResource;
 import org.apache.ivy.plugins.repository.url.URLRepository;
 import org.apache.ivy.plugins.repository.url.URLResource;
 import org.apache.ivy.plugins.resolver.util.MDResolvedResource;
@@ -918,7 +920,14 @@
                 URL url = artifact.getUrl();
                 Message.verbose("\tusing url for " + artifact + ": " + url);
                 logArtifactAttempt(artifact, url.toExternalForm());
-                ret = new ResolvedResource(new URLResource(url), artifact.getModuleRevisionId()
+                Resource resource;
+                if ("file".equals(url.getProtocol())) {
+                       resource = new FileResource(new FileRepository(), new File(url.getPath()));
+                }
+                else {
+                       resource = new URLResource(url);
+                }
+                               ret = new ResolvedResource(resource, artifact.getModuleRevisionId()
                         .getRevision());
             }
             return ret;
{noformat}

  was:
Currently artifacts with a specified url are always considered remote because the code instantiates URLResource.
This change would allow using FileResource when the url is "file://*".


--- BasicResolver.java.original        Mon Oct 20 16:47:15 2008
+++ BasicResolver.java  Mon Nov 03 15:38:48 2008
@@ -64,6 +64,8 @@
 import org.apache.ivy.plugins.repository.ArtifactResourceResolver;
 import org.apache.ivy.plugins.repository.Resource;
 import org.apache.ivy.plugins.repository.ResourceDownloader;
+import org.apache.ivy.plugins.repository.file.FileRepository;
+import org.apache.ivy.plugins.repository.file.FileResource;
 import org.apache.ivy.plugins.repository.url.URLRepository;
 import org.apache.ivy.plugins.repository.url.URLResource;
 import org.apache.ivy.plugins.resolver.util.MDResolvedResource;
@@ -918,7 +920,14 @@
                 URL url = artifact.getUrl();
                 Message.verbose("\tusing url for " + artifact + ": " + url);
                 logArtifactAttempt(artifact, url.toExternalForm());
-                ret = new ResolvedResource(new URLResource(url), artifact.getModuleRevisionId()
+                Resource resource;
+                if ("file".equals(url.getProtocol())) {
+                       resource = new FileResource(new FileRepository(), new File(url.getPath()));
+                }
+                else {
+                       resource = new URLResource(url);
+                }
+                               ret = new ResolvedResource(resource, artifact.getModuleRevisionId()
                         .getRevision());
             }
             return ret;


> Support useOrigin for artifacts with a set url attribute
> --------------------------------------------------------
>
>                 Key: IVY-965
>                 URL: https://issues.apache.org/jira/browse/IVY-965
>             Project: Ivy
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 2.0-RC1
>            Reporter: alex322
>
> Currently artifacts with a specified url are always considered remote because the code instantiates URLResource.
> This change would allow using FileResource when the url is "file://*".
> {noformat}
> --- BasicResolver.java.original        Mon Oct 20 16:47:15 2008
> +++ BasicResolver.java  Mon Nov 03 15:38:48 2008
> @@ -64,6 +64,8 @@
>  import org.apache.ivy.plugins.repository.ArtifactResourceResolver;
>  import org.apache.ivy.plugins.repository.Resource;
>  import org.apache.ivy.plugins.repository.ResourceDownloader;
> +import org.apache.ivy.plugins.repository.file.FileRepository;
> +import org.apache.ivy.plugins.repository.file.FileResource;
>  import org.apache.ivy.plugins.repository.url.URLRepository;
>  import org.apache.ivy.plugins.repository.url.URLResource;
>  import org.apache.ivy.plugins.resolver.util.MDResolvedResource;
> @@ -918,7 +920,14 @@
>                  URL url = artifact.getUrl();
>                  Message.verbose("\tusing url for " + artifact + ": " + url);
>                  logArtifactAttempt(artifact, url.toExternalForm());
> -                ret = new ResolvedResource(new URLResource(url), artifact.getModuleRevisionId()
> +                Resource resource;
> +                if ("file".equals(url.getProtocol())) {
> +                       resource = new FileResource(new FileRepository(), new File(url.getPath()));
> +                }
> +                else {
> +                       resource = new URLResource(url);
> +                }
> +                               ret = new ResolvedResource(resource, artifact.getModuleRevisionId()
>                          .getRevision());
>              }
>              return ret;
> {noformat}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.