From 91ac1574aae31a29baf883d2cf45e4e1f5aa9bbf Mon Sep 17 00:00:00 2001 From: Jean-Louis Boudart Date: Thu, 16 Jan 2014 08:18:47 +0000 Subject: [PATCH] Add a new method on DefaultRepositoryCacheManager and DefaultResolutionCacheManager to easily changeon subclass the ModuleDescriptorParser used git-svn-id: https://svn.apache.org/repos/asf/ant/ivy/core/trunk@1558715 13f79535-47bb-0310-9956-ffa450edef68 --- .../ivy/core/cache/DefaultRepositoryCacheManager.java | 8 ++++++-- .../ivy/core/cache/DefaultResolutionCacheManager.java | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/java/org/apache/ivy/core/cache/DefaultRepositoryCacheManager.java b/src/java/org/apache/ivy/core/cache/DefaultRepositoryCacheManager.java index 4c275c15..b9439a45 100644 --- a/src/java/org/apache/ivy/core/cache/DefaultRepositoryCacheManager.java +++ b/src/java/org/apache/ivy/core/cache/DefaultRepositoryCacheManager.java @@ -722,7 +722,7 @@ public class DefaultRepositoryCacheManager implements RepositoryCacheManager, Iv if (ivyFile.exists()) { // found in cache ! try { - XmlModuleDescriptorParser parser = XmlModuleDescriptorParser.getInstance(); + ModuleDescriptorParser parser = getModuleDescriptorParser(); ModuleDescriptor depMD = getMdFromCache(parser, options, ivyFile); String resolverName = getSavedResolverName(depMD); String artResolverName = getSavedArtResolverName(depMD); @@ -790,6 +790,10 @@ public class DefaultRepositoryCacheManager implements RepositoryCacheManager, Iv return null; } + protected ModuleDescriptorParser getModuleDescriptorParser() { + return XmlModuleDescriptorParser.getInstance(); + } + private class MyModuleDescriptorProvider implements ModuleDescriptorProvider { private final ModuleDescriptorParser mdParser; @@ -807,7 +811,7 @@ public class DefaultRepositoryCacheManager implements RepositoryCacheManager, Iv } } - private ModuleDescriptor getMdFromCache(XmlModuleDescriptorParser mdParser, + private ModuleDescriptor getMdFromCache(ModuleDescriptorParser mdParser, CacheMetadataOptions options, File ivyFile) throws ParseException, IOException { ModuleDescriptorMemoryCache cache = getMemoryCache(); ModuleDescriptorProvider mdProvider = new MyModuleDescriptorProvider(mdParser, settings); diff --git a/src/java/org/apache/ivy/core/cache/DefaultResolutionCacheManager.java b/src/java/org/apache/ivy/core/cache/DefaultResolutionCacheManager.java index 620ee334..5ad338c7 100644 --- a/src/java/org/apache/ivy/core/cache/DefaultResolutionCacheManager.java +++ b/src/java/org/apache/ivy/core/cache/DefaultResolutionCacheManager.java @@ -40,6 +40,7 @@ import org.apache.ivy.plugins.IvySettingsAware; import org.apache.ivy.plugins.conflict.ConflictManager; import org.apache.ivy.plugins.matcher.PatternMatcher; import org.apache.ivy.plugins.namespace.Namespace; +import org.apache.ivy.plugins.parser.ModuleDescriptorParser; import org.apache.ivy.plugins.parser.ParserSettings; import org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser; import org.apache.ivy.plugins.resolver.DependencyResolver; @@ -154,8 +155,11 @@ public class DefaultResolutionCacheManager implements ResolutionCacheManager, Iv ParserSettings pSettings = new CacheParserSettings(settings, paths); URL ivyFileURL = ivyFile.toURI().toURL(); - return XmlModuleDescriptorParser.getInstance() - .parseDescriptor(pSettings, ivyFileURL, false); + return getModuleDescriptorParser().parseDescriptor(pSettings, ivyFileURL, false); + } + + protected ModuleDescriptorParser getModuleDescriptorParser() { + return XmlModuleDescriptorParser.getInstance(); } public void saveResolvedModuleDescriptor(ModuleDescriptor md) throws ParseException,