Blob Blame History Raw
diff -Nru gradle-1.6/subprojects/core-impl/src/main/groovy/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/NoOpRepositoryCacheManager.java gradle-1.6-gil/subprojects/core-impl/src/main/groovy/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/NoOpRepositoryCacheManager.java
--- gradle-1.6/subprojects/core-impl/src/main/groovy/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/NoOpRepositoryCacheManager.java	2013-03-16 00:00:48.000000000 +0100
+++ gradle-1.6-gil/subprojects/core-impl/src/main/groovy/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/NoOpRepositoryCacheManager.java	2013-06-27 22:02:11.668680837 +0200
@@ -24,6 +24,8 @@
 import org.apache.ivy.core.report.DownloadStatus;
 import org.apache.ivy.core.resolve.ResolvedModuleRevision;
 import org.apache.ivy.plugins.repository.ArtifactResourceResolver;
+import org.apache.ivy.plugins.repository.Repository;
+import org.apache.ivy.plugins.repository.Resource;
 import org.apache.ivy.plugins.repository.ResourceDownloader;
 import org.apache.ivy.plugins.resolver.DependencyResolver;
 import org.apache.ivy.plugins.resolver.util.ResolvedResource;
@@ -73,4 +75,13 @@
 
     public void saveResolvedRevision(ModuleRevisionId dynamicMrid, String revision) {
     }
+    
+    public ArtifactDownloadReport downloadRepositoryResource(Resource resource,
+                                                  String name,
+                                                  String type,
+                                                  String extension,
+                                                  CacheResourceOptions options,
+                                                  Repository repository) {
+        throw new UnsupportedOperationException("This operation is not supported.");
+    }
 }
diff -Nru gradle-1.6/subprojects/core-impl/src/main/groovy/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/IvyXmlModuleDescriptorParser.java gradle-1.6-gil/subprojects/core-impl/src/main/groovy/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/IvyXmlModuleDescriptorParser.java
--- gradle-1.6/subprojects/core-impl/src/main/groovy/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/IvyXmlModuleDescriptorParser.java	2013-03-20 00:45:24.000000000 +0100
+++ gradle-1.6-gil/subprojects/core-impl/src/main/groovy/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/IvyXmlModuleDescriptorParser.java	2013-06-28 15:31:19.490136632 +0200
@@ -279,20 +279,24 @@
             List<String> extendTypes = Arrays.asList(extendType.split(","));
 
             ModuleDescriptor parent = null;
+            ModuleId expected = new ModuleId(parentOrganisation, parentModule);
+            ModuleRevisionId pid = new ModuleRevisionId(expected, parentRevision);
+            //check on filesystem based on location attribute
+            boolean local = false;
             try {
                 LOGGER.debug("Trying to parse included ivy file :" + location);
                 parent = parseOtherIvyFileOnFileSystem(location);
 
-                //verify that the parsed descriptor is the correct parent module.
-                ModuleId expected = new ModuleId(parentOrganisation, parentModule);
-                ModuleId pid = parent.getModuleRevisionId().getModuleId();
-                if (!expected.equals(pid)) {
-                    LOGGER.warn("Ignoring parent Ivy file " + location + "; expected " + expected + " but found " + pid);
-                    parent = null;
+                if (parent != null) {
+                    ModuleId foundpid = parent.getResolvedModuleRevisionId().getModuleId();
+                    if (!foundpid.equals(expected)) {
+                        // the filesystem contains a parent module with different organisation
+                        // or module name; ignore that parent module
+                        LOGGER.warn("Ignoring parent Ivy file " + location + "; expected " + expected + " but found " + foundpid);
+                        parent = null;
+                    }
                 }
-
-            } catch (ParseException e) {
-                LOGGER.debug("Unable to parse included ivy file " + location + ": " + e.getMessage());
+                local = parent != null;
             } catch (IOException e) {
                 LOGGER.debug("Unable to parse included ivy file " + location + ": " + e.getMessage());
             }
@@ -307,7 +311,7 @@
                                             + parentModule
                                             + ";"
                                             + parentRevision);
-                    parent = parseOtherIvyFile(parentOrganisation, parentModule, parentRevision);
+                    parent = parseOtherIvyFile(pid);
                 } catch (ParseException e) {
                     LOGGER.warn("Unable to parse included ivy file for " + parentOrganisation + "#" + parentModule + ";" + parentRevision);
                 }
@@ -318,10 +322,10 @@
             }
 
             DefaultExtendsDescriptor ed = new DefaultExtendsDescriptor(
-                    parent.getModuleRevisionId(),
-                    parent.getResolvedModuleRevisionId(),
+                    parent,
                     attributes.getValue("location"),
-                    extendTypes.toArray(new String[extendTypes.size()]));
+                    (String[]) extendTypes.toArray(new String[extendTypes.size()]),
+                    local);
             getMd().addInheritedDescriptor(ed);
 
             mergeWithOtherModuleDescriptor(extendTypes, parent);
@@ -427,10 +431,9 @@
             return parser.getModuleDescriptor();
         }
 
-        private ModuleDescriptor parseOtherIvyFile(String parentOrganisation,
-                String parentModule, String parentRevision) throws ParseException {
-            ModuleId parentModuleId = new ModuleId(parentOrganisation, parentModule);
-            ModuleRevisionId parentMrid = new ModuleRevisionId(parentModuleId, parentRevision);
+        private ModuleDescriptor parseOtherIvyFile(ModuleRevisionId parentMrid) throws ParseException {
+            LOGGER.warn("Trying to parse included ivy file by asking repository for module :"
+                            + parentMrid.toString());
 
             DependencyDescriptor dd = new DefaultDependencyDescriptor(parentMrid, true);
             ResolveData data = IvyContext.getContext().getResolveData();
diff -Nru gradle-1.6/subprojects/core-impl/src/main/groovy/org/gradle/api/internal/artifacts/repositories/cachemanager/DownloadingRepositoryCacheManager.java gradle-1.6-gil/subprojects/core-impl/src/main/groovy/org/gradle/api/internal/artifacts/repositories/cachemanager/DownloadingRepositoryCacheManager.java
--- gradle-1.6/subprojects/core-impl/src/main/groovy/org/gradle/api/internal/artifacts/repositories/cachemanager/DownloadingRepositoryCacheManager.java	2013-03-16 00:00:48.000000000 +0100
+++ gradle-1.6-gil/subprojects/core-impl/src/main/groovy/org/gradle/api/internal/artifacts/repositories/cachemanager/DownloadingRepositoryCacheManager.java	2013-06-27 22:00:00.617509202 +0200
@@ -18,6 +18,7 @@
 import org.apache.ivy.core.cache.ArtifactOrigin;
 import org.apache.ivy.core.cache.CacheDownloadOptions;
 import org.apache.ivy.core.cache.CacheMetadataOptions;
+import org.apache.ivy.core.cache.CacheResourceOptions;
 import org.apache.ivy.core.cache.DownloadListener;
 import org.apache.ivy.core.module.descriptor.Artifact;
 import org.apache.ivy.core.module.descriptor.DependencyDescriptor;
@@ -28,6 +29,7 @@
 import org.apache.ivy.core.report.MetadataArtifactDownloadReport;
 import org.apache.ivy.core.resolve.ResolvedModuleRevision;
 import org.apache.ivy.plugins.repository.ArtifactResourceResolver;
+import org.apache.ivy.plugins.repository.Repository;
 import org.apache.ivy.plugins.repository.Resource;
 import org.apache.ivy.plugins.repository.ResourceDownloader;
 import org.apache.ivy.plugins.resolver.DependencyResolver;
@@ -165,4 +167,12 @@
         return new ResolvedModuleRevision(resolver, resolver, md, madr);
     }
 
+    public ArtifactDownloadReport downloadRepositoryResource(Resource resource,
+                                                  String name,
+                                                  String type,
+                                                  String extension,
+                                                  CacheResourceOptions options,
+                                                  Repository repository) {
+        throw new UnsupportedOperationException("This operation is not supported.");
+    }
 }
diff -Nru gradle-1.6/subprojects/core-impl/src/main/groovy/org/gradle/api/internal/artifacts/repositories/cachemanager/LocalFileRepositoryCacheManager.java gradle-1.6-gil/subprojects/core-impl/src/main/groovy/org/gradle/api/internal/artifacts/repositories/cachemanager/LocalFileRepositoryCacheManager.java
--- gradle-1.6/subprojects/core-impl/src/main/groovy/org/gradle/api/internal/artifacts/repositories/cachemanager/LocalFileRepositoryCacheManager.java	2013-03-16 00:00:48.000000000 +0100
+++ gradle-1.6-gil/subprojects/core-impl/src/main/groovy/org/gradle/api/internal/artifacts/repositories/cachemanager/LocalFileRepositoryCacheManager.java	2013-06-27 21:59:41.107525496 +0200
@@ -18,6 +18,7 @@
 import org.apache.ivy.core.cache.ArtifactOrigin;
 import org.apache.ivy.core.cache.CacheDownloadOptions;
 import org.apache.ivy.core.cache.CacheMetadataOptions;
+import org.apache.ivy.core.cache.CacheResourceOptions;
 import org.apache.ivy.core.module.descriptor.Artifact;
 import org.apache.ivy.core.module.descriptor.DependencyDescriptor;
 import org.apache.ivy.core.module.descriptor.ModuleDescriptor;
@@ -26,6 +27,8 @@
 import org.apache.ivy.core.report.MetadataArtifactDownloadReport;
 import org.apache.ivy.core.resolve.ResolvedModuleRevision;
 import org.apache.ivy.plugins.repository.ArtifactResourceResolver;
+import org.apache.ivy.plugins.repository.Repository;
+import org.apache.ivy.plugins.repository.Resource;
 import org.apache.ivy.plugins.repository.ResourceDownloader;
 import org.apache.ivy.plugins.resolver.DependencyResolver;
 import org.apache.ivy.plugins.resolver.util.ResolvedResource;
@@ -89,4 +92,13 @@
         ModuleDescriptor descriptor = parseModuleDescriptor(resolver, moduleArtifact, options, file, resolvedResource.getResource());
         return new ResolvedModuleRevision(resolver, resolver, descriptor, report);
     }
+    
+    public ArtifactDownloadReport downloadRepositoryResource(Resource resource,
+                                                  String name,
+                                                  String type,
+                                                  String extension,
+                                                  CacheResourceOptions options,
+                                                  Repository repository) {
+        throw new UnsupportedOperationException("This operation is not supported.");
+    }
 }