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.");
+ }
}