Modified: 
ant/ivy/core/trunk/src/java/org/apache/ivy/core/publish/PublishEngineSettings.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/core/publish/PublishEngineSettings.java?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/src/java/org/apache/ivy/core/publish/PublishEngineSettings.java
 (original)
+++ 
ant/ivy/core/trunk/src/java/org/apache/ivy/core/publish/PublishEngineSettings.java
 Fri Dec 28 08:11:26 2007
@@ -17,13 +17,13 @@
  */
 package org.apache.ivy.core.publish;
 
-import org.apache.ivy.core.cache.CacheSettings;
+import org.apache.ivy.plugins.parser.ParserSettings;
 import org.apache.ivy.plugins.resolver.DependencyResolver;
 
 /** 
  * Settings specific to the publish engine
  */
-public interface PublishEngineSettings extends CacheSettings {
+public interface PublishEngineSettings extends ParserSettings {
 
     String substitute(String srcIvyPattern);
 

Modified: 
ant/ivy/core/trunk/src/java/org/apache/ivy/core/repository/RepositoryManagementEngine.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/core/repository/RepositoryManagementEngine.java?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/src/java/org/apache/ivy/core/repository/RepositoryManagementEngine.java
 (original)
+++ 
ant/ivy/core/trunk/src/java/org/apache/ivy/core/repository/RepositoryManagementEngine.java
 Fri Dec 28 08:11:26 2007
@@ -26,7 +26,6 @@
 import java.util.Map;
 import java.util.TreeSet;
 
-import org.apache.ivy.core.cache.CacheManager;
 import org.apache.ivy.core.module.descriptor.DefaultDependencyDescriptor;
 import org.apache.ivy.core.module.descriptor.DependencyDescriptor;
 import org.apache.ivy.core.module.descriptor.ModuleDescriptor;
@@ -40,8 +39,8 @@
 import org.apache.ivy.plugins.matcher.PatternMatcher;
 import org.apache.ivy.plugins.matcher.RegexpPatternMatcher;
 import org.apache.ivy.plugins.version.VersionMatcher;
-import org.apache.ivy.util.Message;
 import org.apache.ivy.util.MemoryUtil;
+import org.apache.ivy.util.Message;
 
 /**
  * The repository management can be used to load all metadata from a 
repository, analyze them, and
@@ -113,7 +112,6 @@
     ///////////////////////////////////////////
     private SearchEngine searchEngine;
     private ResolveEngine resolveEngine;
-    private CacheManager cacheManager;
     private RepositoryManagementEngineSettings settings;
     
 
@@ -122,9 +120,6 @@
         this.settings = settings;
         this.searchEngine = searchEngine;
         this.resolveEngine = resolveEngine;
-        // TODO: use a cache configured to avoid actual caching, 
-        // when IVY-399 will be better implemented
-        this.cacheManager = CacheManager.getInstance(settings);
     }
 
     /**

Modified: 
ant/ivy/core/trunk/src/java/org/apache/ivy/core/retrieve/RetrieveEngineSettings.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/core/retrieve/RetrieveEngineSettings.java?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/src/java/org/apache/ivy/core/retrieve/RetrieveEngineSettings.java
 (original)
+++ 
ant/ivy/core/trunk/src/java/org/apache/ivy/core/retrieve/RetrieveEngineSettings.java
 Fri Dec 28 08:11:26 2007
@@ -19,9 +19,9 @@
 
 import java.util.Map;
 
-import org.apache.ivy.core.cache.CacheSettings;
+import org.apache.ivy.plugins.parser.ParserSettings;
 
-public interface RetrieveEngineSettings extends CacheSettings {
+public interface RetrieveEngineSettings extends ParserSettings {
 
     boolean isCheckUpToDate();
 

Modified: 
ant/ivy/core/trunk/src/java/org/apache/ivy/core/settings/IvySettings.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/core/settings/IvySettings.java?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/core/settings/IvySettings.java 
(original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/core/settings/IvySettings.java 
Fri Dec 28 08:11:26 2007
@@ -40,8 +40,8 @@
 import org.apache.ivy.core.IvyPatternHelper;
 import org.apache.ivy.core.NormalRelativeUrlResolver;
 import org.apache.ivy.core.RelativeUrlResolver;
-import org.apache.ivy.core.cache.CacheManager;
-import org.apache.ivy.core.cache.CacheSettings;
+import org.apache.ivy.core.cache.DefaultRepositoryCacheManager;
+import org.apache.ivy.core.cache.DefaultResolutionCacheManager;
 import org.apache.ivy.core.cache.RepositoryCacheManager;
 import org.apache.ivy.core.cache.ResolutionCacheManager;
 import org.apache.ivy.core.check.CheckEngineSettings;
@@ -99,24 +99,9 @@
 import org.apache.ivy.util.url.URLHandlerRegistry;
 
 public class IvySettings implements SortEngineSettings, PublishEngineSettings, 
ParserSettings,
-        DeliverEngineSettings, CacheSettings, CheckEngineSettings, 
InstallEngineSettings, 
+        DeliverEngineSettings, CheckEngineSettings, InstallEngineSettings, 
         ResolverSettings, ResolveEngineSettings, RetrieveEngineSettings, 
         RepositoryManagementEngineSettings {
-    private static final String DEFAULT_CACHE_ARTIFACT_PATTERN =
-        "[organisation]/[module]/[type]s/[artifact]-[revision](.[ext])";
-
-    private static final String DEFAULT_CACHE_DATA_FILE_PATTERN = 
-        "[organisation]/[module]/ivydata-[revision].properties";
-
-    private static final String DEFAULT_CACHE_IVY_PATTERN = 
-        "[organisation]/[module]/ivy-[revision].xml";
-
-    private static final String DEFAULT_CACHE_RESOLVED_IVY_PATTERN = 
-        "resolved-[organisation]-[module]-[revision].xml";
-
-    private static final String DEFAULT_CACHE_RESOLVED_IVY_PROPERTIES_PATTERN 
= 
-        "resolved-[organisation]-[module]-[revision].properties";
-
     private static final long INTERUPT_TIMEOUT = 2000;
 
     private Map typeDefs = new HashMap();
@@ -162,22 +147,14 @@
     // Map (String name -> CircularDependencyStrategy)
     private Map circularDependencyStrategies = new HashMap(); 
 
+    // Map (String name -> RepositoryCacheManager)
+    private Map repositoryCacheManagers = new HashMap(); 
+
     // List (Trigger)
     private List triggers = new ArrayList(); 
 
     private IvyVariableContainer variableContainer = new 
IvyVariableContainerImpl();
 
-    private String cacheIvyPattern = DEFAULT_CACHE_IVY_PATTERN;
-
-    private String cacheResolvedIvyPattern = 
DEFAULT_CACHE_RESOLVED_IVY_PATTERN;
-
-    private String cacheResolvedIvyPropertiesPattern = 
-        DEFAULT_CACHE_RESOLVED_IVY_PROPERTIES_PATTERN;
-
-    private String cacheArtifactPattern = DEFAULT_CACHE_ARTIFACT_PATTERN;
-
-    private String cacheDataFilePattern = DEFAULT_CACHE_DATA_FILE_PATTERN;
-
     private boolean validate = true;
 
     private LatestStrategy defaultLatestStrategy = null;
@@ -188,6 +165,10 @@
 
     private CircularDependencyStrategy circularDependencyStrategy = null;
 
+    private RepositoryCacheManager defaultRepositoryCacheManager = null;
+
+    private ResolutionCacheManager resolutionCacheManager = null;
+
     private List listingIgnore = new ArrayList();
 
     private boolean repositoriesConfigured;
@@ -212,6 +193,10 @@
 
     private Boolean dumpMemoryUsage;
 
+    private String defaultCacheIvyPattern;
+
+    private String defaultCacheArtifactPattern;
+
     public IvySettings() {
         this(new IvyVariableContainerImpl());
     }
@@ -507,8 +492,6 @@
         Message.debug("\tcircular dependency strategy: " + 
getCircularDependencyStrategy());
         Message.debug("\tvalidate: " + doValidate());
         Message.debug("\tcheck up2date: " + isCheckUpToDate());
-        Message.debug("\tcache ivy pattern: " + getCacheIvyPattern());
-        Message.debug("\tcache artifact pattern: " + 
getCacheArtifactPattern());
 
         if (!classpathURLs.isEmpty()) {
             Message.verbose("\t-- " + classpathURLs.size() + " custom 
classpath urls:");
@@ -754,29 +737,29 @@
         return defaultCache;
     }
     
-    public void setRepositoryCacheRoot(String repositoryCacheRoot) {
+    public void setDefaultRepositoryCacheBasedir(String repositoryCacheRoot) {
         setVariable("ivy.cache.repository", repositoryCacheRoot, true);
     }
     
-    public void setResolutionCacheRoot(String resolutionCacheRoot) {
+    public void setDefaultResolutionCacheBasedir(String resolutionCacheRoot) {
         setVariable("ivy.cache.resolution", resolutionCacheRoot, true);
     }
     
-    public File getRepositoryCacheRoot(File cache) {
+    public File getDefaultRepositoryCacheBasedir() {
         String repositoryCacheRoot = getVariable("ivy.cache.repository");
         if (repositoryCacheRoot != null) {
-            return new File(cache, repositoryCacheRoot);
+            return new File(repositoryCacheRoot);
         } else {
-            return cache;
+            return getDefaultCache();
         }
     }
 
-    public File getResolutionCacheRoot(File cache) {
+    public File getDefaultResolutionCacheBasedir() {
         String resolutionCacheRoot = getVariable("ivy.cache.resolution");
         if (resolutionCacheRoot != null) {
-            return new File(cache, resolutionCacheRoot);
+            return new File(resolutionCacheRoot);
         } else {
-            return cache;
+            return getDefaultCache();
         }
     }
 
@@ -947,6 +930,24 @@
         matchers.put(m.getName(), m);
     }
 
+    public void addConfigured(RepositoryCacheManager c) {
+        addRepositoryCacheManager(c);
+    }
+
+    public RepositoryCacheManager getRepositoryCacheManager(String name) {
+        return (RepositoryCacheManager) repositoryCacheManagers.get(name);
+    }
+
+    public void addRepositoryCacheManager(RepositoryCacheManager c) {
+        init(c);
+        repositoryCacheManagers.put(c.getName(), c);
+    }
+
+    public RepositoryCacheManager[] getRepositoryCacheManagers() {
+        return (RepositoryCacheManager[]) 
repositoryCacheManagers.values().toArray(
+            new RepositoryCacheManager[repositoryCacheManagers.size()]);
+    }
+
     public void addConfigured(ReportOutputter outputter) {
         addReportOutputter(outputter);
     }
@@ -1075,35 +1076,7 @@
     public void setCheckUpToDate(boolean checkUpToDate) {
         this.checkUpToDate = checkUpToDate;
     }
-
-    public ResolutionCacheManager getResolutionCacheManager() {
-        return CacheManager.getInstance(this, getDefaultCache());
-    }
     
-    public RepositoryCacheManager getDefaultRepositoryCacheManager() {
-        return CacheManager.getInstance(this, getDefaultCache());
-    }
-
-    public String getCacheArtifactPattern() {
-        return cacheArtifactPattern;
-    }
-
-    public void setCacheArtifactPattern(String cacheArtifactPattern) {
-        this.cacheArtifactPattern = cacheArtifactPattern;
-    }
-
-    public String getCacheIvyPattern() {
-        return cacheIvyPattern;
-    }
-
-    public void setCacheIvyPattern(String cacheIvyPattern) {
-        this.cacheIvyPattern = cacheIvyPattern;
-    }
-
-    public String getCacheDataFilePattern() {
-        return cacheDataFilePattern;
-    }
-
     public boolean doValidate() {
         return validate;
     }
@@ -1149,6 +1122,32 @@
         this.defaultLockStrategy = defaultLockStrategy;
     }
 
+    public RepositoryCacheManager getDefaultRepositoryCacheManager() {
+        if (defaultRepositoryCacheManager == null) {
+            defaultRepositoryCacheManager 
+                = new DefaultRepositoryCacheManager(
+                    "default-cache", this, getDefaultRepositoryCacheBasedir());
+            addRepositoryCacheManager(defaultRepositoryCacheManager);
+        }
+        return defaultRepositoryCacheManager;
+    }
+
+    public void setDefaultRepositoryCacheManager(RepositoryCacheManager cache) 
{
+        this.defaultRepositoryCacheManager = cache;
+    }
+
+    public ResolutionCacheManager getResolutionCacheManager() {
+        if (resolutionCacheManager == null) {
+            resolutionCacheManager 
+                = new 
DefaultResolutionCacheManager(getDefaultResolutionCacheBasedir());
+        }
+        return resolutionCacheManager;
+    }
+    
+    public void setResolutionCacheManager(ResolutionCacheManager 
resolutionCacheManager) {
+        this.resolutionCacheManager = resolutionCacheManager;
+    }
+
     public void addTrigger(Trigger trigger) {
         init(trigger);
         triggers.add(trigger);
@@ -1264,14 +1263,6 @@
         }
     }
 
-    public String getCacheResolvedIvyPattern() {
-        return cacheResolvedIvyPattern;
-    }
-
-    public String getCacheResolvedIvyPropertiesPattern() {
-        return cacheResolvedIvyPropertiesPattern;
-    }
-
     public long getInterruptTimeout() {
         return INTERUPT_TIMEOUT;
     }
@@ -1304,5 +1295,21 @@
     
     public RelativeUrlResolver getRelativeUrlResolver() {
         return new NormalRelativeUrlResolver();
+    }
+
+    public void setDefaultCacheIvyPattern(String defaultCacheIvyPattern) {
+        this.defaultCacheIvyPattern = defaultCacheIvyPattern;
+    }
+    
+    public String getDefaultCacheIvyPattern() {
+        return defaultCacheIvyPattern;
+    }
+
+    public void setDefaultCacheArtifactPattern(String 
defaultCacheArtifactPattern) {
+        this.defaultCacheArtifactPattern = defaultCacheArtifactPattern;
+    }
+    
+    public String getDefaultCacheArtifactPattern() {
+        return defaultCacheArtifactPattern;
     }
 }

Modified: 
ant/ivy/core/trunk/src/java/org/apache/ivy/core/settings/XmlSettingsParser.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/core/settings/XmlSettingsParser.java?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/src/java/org/apache/ivy/core/settings/XmlSettingsParser.java 
(original)
+++ 
ant/ivy/core/trunk/src/java/org/apache/ivy/core/settings/XmlSettingsParser.java 
Fri Dec 28 08:11:26 2007
@@ -30,6 +30,7 @@
 
 import javax.xml.parsers.SAXParserFactory;
 
+import org.apache.ivy.core.cache.RepositoryCacheManager;
 import org.apache.ivy.core.module.id.ModuleId;
 import org.apache.ivy.core.module.status.StatusManager;
 import org.apache.ivy.plugins.circular.CircularDependencyStrategy;
@@ -50,7 +51,8 @@
 
     private List configuratorTags = Arrays.asList(new String[] {"resolvers", 
"namespaces",
             "parsers", "latest-strategies", "conflict-managers", "outputters", 
"version-matchers",
-            "statuses", "circular-dependency-strategies", "triggers", 
"lock-strategies"});
+            "statuses", "circular-dependency-strategies", "triggers", 
"lock-strategies",
+            "caches"});
 
     private IvySettings ivy;
 
@@ -60,6 +62,8 @@
 
     private String defaultLatest;
 
+    private String defaultCacheManager;
+
     private String defaultCircular;
 
     private String currentConfiguratorTag;
@@ -289,11 +293,11 @@
                 }
                 String cacheIvyPattern = (String) 
attributes.get("cacheIvyPattern");
                 if (cacheIvyPattern != null) {
-                    ivy.setCacheIvyPattern(ivy.substitute(cacheIvyPattern));
+                    
ivy.setDefaultCacheIvyPattern(ivy.substitute(cacheIvyPattern));
                 }
                 String cacheArtPattern = (String) 
attributes.get("cacheArtifactPattern");
                 if (cacheArtPattern != null) {
-                    
ivy.setCacheArtifactPattern(ivy.substitute(cacheArtPattern));
+                    
ivy.setDefaultCacheArtifactPattern(ivy.substitute(cacheArtPattern));
                 }
                 String useRemoteConfig = (String) 
attributes.get("useRemoteConfig");
                 if (useRemoteConfig != null) {
@@ -305,9 +309,10 @@
                 defaultResolver = (String) attributes.get("defaultResolver");
                 defaultCM = (String) attributes.get("defaultConflictManager");
                 defaultLatest = (String) 
attributes.get("defaultLatestStrategy");
+                defaultCacheManager = (String) 
attributes.get("defaultCacheManager");
                 defaultCircular = (String) 
attributes.get("circularDependencyStrategy");
 
-            } else if ("cache".equals(qName)) {
+            } else if ("cacheDefaults".equals(qName)) {
                 String lockingStrategy = (String) 
attributes.get("lockStrategy");
                 if (lockingStrategy != null) {
                     ivy.setDefaultLockStrategy(
@@ -315,25 +320,25 @@
                 }
                 String cacheIvyPattern = (String) 
attributes.get("repositoryIvyPattern");
                 if (cacheIvyPattern != null) {
-                    ivy.setCacheIvyPattern(ivy.substitute(cacheIvyPattern));
+                    
ivy.setDefaultCacheIvyPattern(ivy.substitute(cacheIvyPattern));
                 }
                 String cacheArtPattern = (String) 
attributes.get("repositoryArtifactPattern");
                 if (cacheArtPattern != null) {
-                    
ivy.setCacheArtifactPattern(ivy.substitute(cacheArtPattern));
+                    
ivy.setDefaultCacheArtifactPattern(ivy.substitute(cacheArtPattern));
                 }
-                String cache = (String) attributes.get("basedir");
+                String cache = (String) attributes.get("defaultBasedir");
                 if (cache != null) {
                     ivy.setDefaultCache(new File(ivy.substitute(cache)));
                 }
                 String repositoryDir = (String) 
attributes.get("repositoryDir");
                 if (repositoryDir != null) {
-                    ivy.setVariable("ivy.cache.repository", 
ivy.substitute(repositoryDir), true); 
+                    
ivy.setDefaultRepositoryCacheBasedir(ivy.substitute(repositoryDir)); 
                 }
                 String resolutionDir = (String) 
attributes.get("resolutionDir");
                 if (resolutionDir != null) {
-                    ivy.setVariable("ivy.cache.resolution", 
ivy.substitute(resolutionDir), true); 
+                    
ivy.setDefaultResolutionCacheBasedir(ivy.substitute(resolutionDir));
                 }
-            } else if ("version-matchers".equals(qName)) {
+           } else if ("version-matchers".equals(qName)) {
                 currentConfiguratorTag = qName;
                 configurator.setRoot(ivy);
                 if ("true".equals(ivy.substitute((String) 
attributes.get("usedefaults")))) {
@@ -415,6 +420,15 @@
                         + ivy.substitute(defaultLatest));
             }
             ivy.setDefaultLatestStrategy(latestStrategy);
+        }
+        if (defaultCacheManager != null) {
+            RepositoryCacheManager cache = ivy.getRepositoryCacheManager(
+                                                
ivy.substitute(defaultCacheManager));
+            if (cache == null) {
+                throw new IllegalArgumentException("unknown cache manager "
+                        + ivy.substitute(defaultCacheManager));
+            }
+            ivy.setDefaultRepositoryCacheManager(cache);
         }
         if (defaultCircular != null) {
             CircularDependencyStrategy strategy = 
ivy.getCircularDependencyStrategy(ivy

Modified: 
ant/ivy/core/trunk/src/java/org/apache/ivy/core/settings/typedef.properties
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/core/settings/typedef.properties?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/core/settings/typedef.properties 
(original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/core/settings/typedef.properties 
Fri Dec 28 08:11:26 2007
@@ -51,3 +51,5 @@
 ant-build              = org.apache.ivy.ant.AntBuildTrigger
 ant-call               = org.apache.ivy.ant.AntCallTrigger
 log                    = org.apache.ivy.plugins.trigger.LogTrigger
+
+cache                  = 
org.apache.ivy.core.cache.DefaultRepositoryCacheManager
\ No newline at end of file

Modified: 
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/ParserSettings.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/ParserSettings.java?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/ParserSettings.java 
(original)
+++ 
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/ParserSettings.java 
Fri Dec 28 08:11:26 2007
@@ -18,6 +18,7 @@
 package org.apache.ivy.plugins.parser;
 
 import org.apache.ivy.core.RelativeUrlResolver;
+import org.apache.ivy.core.cache.ResolutionCacheManager;
 import org.apache.ivy.core.module.id.ModuleId;
 import org.apache.ivy.core.module.status.StatusManager;
 import org.apache.ivy.plugins.conflict.ConflictManager;
@@ -28,6 +29,8 @@
 public interface ParserSettings {
 
     String substitute(String value);
+    
+    ResolutionCacheManager getResolutionCacheManager();
 
     ConflictManager getConflictManager(String name);
 

Modified: 
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractResolver.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractResolver.java?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractResolver.java
 (original)
+++ 
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractResolver.java
 Fri Dec 28 08:11:26 2007
@@ -78,6 +78,8 @@
 
     private String namespaceName;
     
+    private String cacheManagerName;
+    
     private RepositoryCacheManager repositoryCacheManager;
 
     public ResolverSettings getSettings() {
@@ -159,6 +161,7 @@
         Message.verbose("\t" + getName() + " [" + getTypeName() + "]");
         Message.debug("\t\tchangingPattern: " + getChangingPattern());
         Message.debug("\t\tchangingMatcher: " + getChangingMatcherName());
+        Message.debug("\t\tcache: " + cacheManagerName);
     }
 
     public String getTypeName() {
@@ -306,13 +309,21 @@
     
     public RepositoryCacheManager getRepositoryCacheManager() {
         if (repositoryCacheManager == null) {
-            repositoryCacheManager = 
settings.getDefaultRepositoryCacheManager();
+            if (cacheManagerName == null) {
+                repositoryCacheManager = 
settings.getDefaultRepositoryCacheManager();
+            } else {
+                repositoryCacheManager = 
settings.getRepositoryCacheManager(cacheManagerName);
+            }
         }
         return repositoryCacheManager;
     }
     
     public void setRepositoryCacheManager(RepositoryCacheManager 
repositoryCacheManager) {
         this.repositoryCacheManager = repositoryCacheManager;
+    }
+    
+    public void setCache(String cacheName) {
+        cacheManagerName = cacheName;
     }
     
     public void abortPublishTransaction() throws IOException {

Modified: 
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/CacheResolver.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/CacheResolver.java?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/CacheResolver.java 
(original)
+++ 
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/CacheResolver.java 
Fri Dec 28 08:11:26 2007
@@ -20,10 +20,11 @@
 import java.io.File;
 import java.io.IOException;
 import java.text.ParseException;
-import java.util.Collections;
+import java.util.ArrayList;
 import java.util.Date;
 
-import org.apache.ivy.core.cache.CacheSettings;
+import org.apache.ivy.core.cache.DefaultRepositoryCacheManager;
+import org.apache.ivy.core.cache.RepositoryCacheManager;
 import org.apache.ivy.core.module.descriptor.Artifact;
 import org.apache.ivy.core.module.descriptor.DefaultArtifact;
 import org.apache.ivy.core.module.descriptor.DependencyDescriptor;
@@ -154,21 +155,23 @@
     }
 
     private void ensureConfigured() {
-        if (getSettings() != null) {
-            // TODO: we need to address new cache management 
-            // (where repository cache is not always in default cache 
directory)
-            ensureConfigured(getSettings(), getSettings().getDefaultCache());
-        }
-    }
-
-    private void ensureConfigured(CacheSettings settings, File cache) {
-        if (settings == null || cache == null) {
-            return;
+        if (getIvyPatterns().isEmpty()) {
+            setIvyPatterns(new ArrayList());
+            setArtifactPatterns(new ArrayList());
+            RepositoryCacheManager[] caches = 
getSettings().getRepositoryCacheManagers();
+            for (int i = 0; i < caches.length; i++) {
+                if (caches[i] instanceof DefaultRepositoryCacheManager) {
+                    DefaultRepositoryCacheManager c = 
(DefaultRepositoryCacheManager) caches[i];
+                    addIvyPattern(c.getBasedir().getAbsolutePath() + "/" + 
c.getIvyPattern());
+                    addArtifactPattern(
+                        c.getBasedir().getAbsolutePath() + "/" + 
c.getArtifactPattern());
+                } else {
+                    Message.verbose(
+                        caches[i] + ": cache implementation is not a 
DefaultRepositoryCacheManager:"
+                        + " unable to configure cache resolver with it");
+                }
+            }
         }
-        setIvyPatterns(Collections.singletonList(cache.getAbsolutePath() + "/"
-                + settings.getCacheIvyPattern()));
-        setArtifactPatterns(Collections.singletonList(cache.getAbsolutePath() 
+ "/"
-                + settings.getCacheArtifactPattern()));
     }
 
     public String getTypeName() {

Modified: 
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/ResolverSettings.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/ResolverSettings.java?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/ResolverSettings.java
 (original)
+++ 
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/ResolverSettings.java
 Fri Dec 28 08:11:26 2007
@@ -19,16 +19,23 @@
 
 import java.util.Collection;
 
-import org.apache.ivy.core.cache.CacheSettings;
+import org.apache.ivy.core.cache.RepositoryCacheManager;
 import org.apache.ivy.plugins.latest.LatestStrategy;
 import org.apache.ivy.plugins.namespace.Namespace;
+import org.apache.ivy.plugins.parser.ParserSettings;
 import org.apache.ivy.plugins.version.VersionMatcher;
 
-public interface ResolverSettings extends CacheSettings {
+public interface ResolverSettings extends ParserSettings {
 
     LatestStrategy getLatestStrategy(String latestStrategyName);
 
     LatestStrategy getDefaultLatestStrategy();
+    
+    RepositoryCacheManager getRepositoryCacheManager(String name);
+    
+    RepositoryCacheManager getDefaultRepositoryCacheManager();
+    
+    RepositoryCacheManager[] getRepositoryCacheManagers();
 
     Namespace getNamespace(String namespaceName);
 

Modified: ant/ivy/core/trunk/test/java/org/apache/ivy/IvyTest.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/IvyTest.java?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/IvyTest.java (original)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/IvyTest.java Fri Dec 28 
08:11:26 2007
@@ -20,7 +20,7 @@
 import java.io.File;
 
 import org.apache.ivy.core.IvyContext;
-import org.apache.ivy.core.cache.CacheManager;
+import org.apache.ivy.core.cache.DefaultResolutionCacheManager;
 import org.apache.ivy.core.report.ResolveReport;
 import org.apache.ivy.core.resolve.ResolveOptions;
 import org.apache.ivy.core.resolve.ResolveTest;

Modified: ant/ivy/core/trunk/test/java/org/apache/ivy/core/TestPerformance.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/core/TestPerformance.java?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/core/TestPerformance.java 
(original)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/core/TestPerformance.java Fri 
Dec 28 08:11:26 2007
@@ -23,7 +23,7 @@
 import java.util.Random;
 
 import org.apache.ivy.Ivy;
-import org.apache.ivy.core.cache.CacheManager;
+import org.apache.ivy.core.cache.DefaultResolutionCacheManager;
 import org.apache.ivy.core.module.descriptor.DefaultDependencyDescriptor;
 import org.apache.ivy.core.module.descriptor.DefaultModuleDescriptor;
 import org.apache.ivy.core.module.id.ModuleRevisionId;

Copied: 
ant/ivy/core/trunk/test/java/org/apache/ivy/core/cache/DefaultRepositoryCacheManagerTest.java
 (from r607221, 
ant/ivy/core/trunk/test/java/org/apache/ivy/core/cache/CacheManagerTest.java)
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/core/cache/DefaultRepositoryCacheManagerTest.java?p2=ant/ivy/core/trunk/test/java/org/apache/ivy/core/cache/DefaultRepositoryCacheManagerTest.java&p1=ant/ivy/core/trunk/test/java/org/apache/ivy/core/cache/CacheManagerTest.java&r1=607221&r2=607278&rev=607278&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/test/java/org/apache/ivy/core/cache/CacheManagerTest.java 
(original)
+++ 
ant/ivy/core/trunk/test/java/org/apache/ivy/core/cache/DefaultRepositoryCacheManagerTest.java
 Fri Dec 28 08:11:26 2007
@@ -32,10 +32,10 @@
 import org.apache.tools.ant.taskdefs.Delete;
 
 /**
- * @see CacheManager
+ * @see DefaultResolutionCacheManager
  */
-public class CacheManagerTest extends TestCase {
-    private CacheManager cacheManager;
+public class DefaultRepositoryCacheManagerTest extends TestCase {
+    private DefaultRepositoryCacheManager cacheManager;
 
     private Artifact artifact;
 
@@ -47,7 +47,9 @@
         ivy.configureDefault();
         IvySettings settings = ivy.getSettings();
         f.delete(); // we want to use the file as a directory, so we delete 
the file itself
-        cacheManager = new CacheManager(settings, f);
+        cacheManager = new DefaultRepositoryCacheManager();
+        cacheManager.setSettings(settings);
+        cacheManager.setBasedir(f);
 
         artifact = createArtifact("org", "module", "rev", "name", "type", 
"ext");
         origin = new ArtifactOrigin(true, "/some/where");
@@ -58,7 +60,6 @@
         Delete del = new Delete();
         del.setProject(new Project());
         del.setDir(cacheManager.getRepositoryCacheRoot());
-        del.setDir(cacheManager.getResolutionCacheRoot());
         del.execute();
     }
 

Modified: 
ant/ivy/core/trunk/test/java/org/apache/ivy/core/publish/PublishEngineTest.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/core/publish/PublishEngineTest.java?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/test/java/org/apache/ivy/core/publish/PublishEngineTest.java 
(original)
+++ 
ant/ivy/core/trunk/test/java/org/apache/ivy/core/publish/PublishEngineTest.java 
Fri Dec 28 08:11:26 2007
@@ -24,7 +24,7 @@
 
 import junit.framework.TestCase;
 
-import org.apache.ivy.core.cache.CacheManager;
+import org.apache.ivy.core.cache.DefaultResolutionCacheManager;
 import org.apache.ivy.core.event.EventManager;
 import org.apache.ivy.core.module.descriptor.Artifact;
 import org.apache.ivy.core.module.descriptor.DefaultDependencyDescriptor;

Modified: 
ant/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java 
(original)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java 
Fri Dec 28 08:11:26 2007
@@ -33,6 +33,7 @@
 import org.apache.ivy.Ivy;
 import org.apache.ivy.TestHelper;
 import org.apache.ivy.core.cache.ArtifactOrigin;
+import org.apache.ivy.core.cache.DefaultRepositoryCacheManager;
 import org.apache.ivy.core.cache.RepositoryCacheManager;
 import org.apache.ivy.core.module.descriptor.Artifact;
 import org.apache.ivy.core.module.descriptor.DefaultArtifact;
@@ -95,7 +96,8 @@
     public void testResolveWithRetainingArtifactName() throws Exception {
         ivy.pushContext();
         try {
-            
settings.setCacheArtifactPattern(ivy.substitute("[module]/[originalname].[ext]"));
+            ((DefaultRepositoryCacheManager) 
settings.getDefaultRepositoryCacheManager())
+                
.setArtifactPattern(ivy.substitute("[module]/[originalname].[ext]"));
             ResolveReport report = ivy.resolve(new 
File("test/repositories/2/mod15.2/ivy-1.1.xml")
             .toURL(), getResolveOptions(new String[] {"default"}));
             assertNotNull(report);
@@ -447,8 +449,11 @@
     public void testChangeCacheLayout() throws Exception {
         Ivy ivy = new Ivy();
         ivy.configure(new File("test/repositories/ivysettings.xml"));
-        ivy.getSettings().setCacheIvyPattern("[module]/ivy.xml");
-        ivy.getSettings().setCacheArtifactPattern("[artifact].[ext]");
+        DefaultRepositoryCacheManager cacheMgr = 
+            (DefaultRepositoryCacheManager) 
ivy.getSettings().getDefaultRepositoryCacheManager();
+
+        cacheMgr.setIvyPattern("[module]/ivy.xml");
+        cacheMgr.setArtifactPattern("[artifact].[ext]");
 
         // mod1.1 depends on mod1.2
         ResolveReport report = ivy.resolve(new File(
@@ -474,10 +479,15 @@
     public void testChangeCacheLayout2() throws Exception {
         Ivy ivy = new Ivy();
         ivy.configure(new File("test/repositories/ivysettings.xml"));
-        ivy.getSettings().setRepositoryCacheRoot("repository");
-        ivy.getSettings().setResolutionCacheRoot("workspace");
-        ivy.getSettings().setCacheIvyPattern("[module]/ivy.xml");
-        ivy.getSettings().setCacheArtifactPattern("[artifact].[ext]");
+        ivy.getSettings().setDefaultRepositoryCacheBasedir(
+            new File(ivy.getSettings().getDefaultCache(), 
"repository").getAbsolutePath());
+        ivy.getSettings().setDefaultResolutionCacheBasedir(
+            new File(ivy.getSettings().getDefaultCache(), 
"workspace").getAbsolutePath());
+        DefaultRepositoryCacheManager cacheMgr = 
+            (DefaultRepositoryCacheManager) 
ivy.getSettings().getDefaultRepositoryCacheManager();
+
+        cacheMgr.setIvyPattern("[module]/ivy.xml");
+        cacheMgr.setArtifactPattern("[artifact].[ext]");
 
         // mod1.1 depends on mod1.2
         ResolveReport report = ivy.resolve(new File(

Modified: 
ant/ivy/core/trunk/test/java/org/apache/ivy/core/retrieve/RetrieveTest.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/core/retrieve/RetrieveTest.java?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/core/retrieve/RetrieveTest.java 
(original)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/core/retrieve/RetrieveTest.java 
Fri Dec 28 08:11:26 2007
@@ -26,7 +26,7 @@
 
 import org.apache.ivy.Ivy;
 import org.apache.ivy.core.IvyPatternHelper;
-import org.apache.ivy.core.cache.CacheManager;
+import org.apache.ivy.core.cache.DefaultResolutionCacheManager;
 import org.apache.ivy.core.event.IvyEvent;
 import org.apache.ivy.core.event.IvyListener;
 import org.apache.ivy.core.event.retrieve.EndRetrieveEvent;

Modified: 
ant/ivy/core/trunk/test/java/org/apache/ivy/core/settings/XmlSettingsParserTest.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/core/settings/XmlSettingsParserTest.java?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/test/java/org/apache/ivy/core/settings/XmlSettingsParserTest.java
 (original)
+++ 
ant/ivy/core/trunk/test/java/org/apache/ivy/core/settings/XmlSettingsParserTest.java
 Fri Dec 28 08:11:26 2007
@@ -23,6 +23,7 @@
 
 import junit.framework.TestCase;
 
+import org.apache.ivy.core.cache.DefaultRepositoryCacheManager;
 import org.apache.ivy.core.cache.ResolutionCacheManager;
 import org.apache.ivy.core.module.descriptor.Artifact;
 import org.apache.ivy.core.module.id.ModuleId;
@@ -59,9 +60,9 @@
         assertFalse(settings.isCheckUpToDate());
         assertFalse(settings.doValidate());
 
-        assertEquals("[module]/ivys/ivy-[revision].xml", 
settings.getCacheIvyPattern());
+        assertEquals("[module]/ivys/ivy-[revision].xml", 
settings.getDefaultCacheIvyPattern());
         assertEquals("[module]/[type]s/[artifact]-[revision].[ext]", settings
-                .getCacheArtifactPattern());
+                .getDefaultCacheArtifactPattern());
 
         LatestStrategy latest = 
settings.getLatestStrategy("mylatest-revision");
         assertNotNull(latest);
@@ -186,16 +187,34 @@
         XmlSettingsParser parser = new XmlSettingsParser(settings);
         
parser.parse(XmlSettingsParserTest.class.getResource("ivysettings-cache.xml"));
 
-        File defaultCache = settings.getDefaultCache();
-        assertNotNull(defaultCache);
-        assertEquals("mycache", defaultCache.getName());
-        assertEquals(new File(defaultCache, "repository"), 
settings.getRepositoryCacheRoot(defaultCache));
-        assertEquals(new File(defaultCache, "resolution"), 
settings.getResolutionCacheRoot(defaultCache));
+        assertEquals(new File("repository"), 
settings.getDefaultRepositoryCacheBasedir());
+        assertEquals(new File("resolution"), 
settings.getDefaultResolutionCacheBasedir());
         assertEquals("artifact-lock", 
settings.getDefaultLockStrategy().getName());
 
-        assertEquals("[module]/ivys/ivy-[revision].xml", 
settings.getCacheIvyPattern());
+        assertEquals("[module]/ivys/ivy-[revision].xml", 
settings.getDefaultCacheIvyPattern());
         assertEquals("[module]/[type]s/[artifact]-[revision].[ext]", settings
-                .getCacheArtifactPattern());
+                .getDefaultCacheArtifactPattern());
+        
+        DefaultRepositoryCacheManager c = (DefaultRepositoryCacheManager) 
settings.getRepositoryCacheManager("mycache");
+        assertNotNull(c);
+        assertEquals("mycache", c.getName());
+        assertEquals(new File("mycache"), c.getBasedir());
+        assertEquals("no-lock", c.getLockStrategy().getName());
+
+        assertEquals("[module]/ivy-[revision].xml", c.getIvyPattern());
+        assertEquals("[module]/[artifact]-[revision].[ext]", 
c.getArtifactPattern());
+        
+        DefaultRepositoryCacheManager c2 = (DefaultRepositoryCacheManager) 
settings.getRepositoryCacheManager("mycache2");
+        assertNotNull(c2);
+        assertEquals("mycache2", c2.getName());
+        assertEquals(new File("repository"), c2.getBasedir());
+        assertEquals("artifact-lock", c2.getLockStrategy().getName());
+
+        assertEquals("[module]/ivys/ivy-[revision].xml", c2.getIvyPattern());
+        assertEquals("[module]/[type]s/[artifact]-[revision].[ext]", 
c2.getArtifactPattern());
+        
+        assertEquals(c2, 
settings.getResolver("A").getRepositoryCacheManager());
+        assertEquals(c, settings.getResolver("B").getRepositoryCacheManager());
     }
 
     public void testVersionMatchers1() throws Exception {

Modified: 
ant/ivy/core/trunk/test/java/org/apache/ivy/core/settings/ivysettings-cache.xml
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/core/settings/ivysettings-cache.xml?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/test/java/org/apache/ivy/core/settings/ivysettings-cache.xml 
(original)
+++ 
ant/ivy/core/trunk/test/java/org/apache/ivy/core/settings/ivysettings-cache.xml 
Fri Dec 28 08:11:26 2007
@@ -17,11 +17,31 @@
    under the License.    
 -->
 <ivysettings>
-       <cache basedir="mycache"
+       <settings defaultCacheManager="mycache2" />
+       <cacheDefaults 
                        resolutionDir="resolution"
                        repositoryDir="repository"
                        repositoryIvyPattern="[module]/ivys/ivy-[revision].xml" 
                        
repositoryArtifactPattern="[module]/[type]s/[artifact]-[revision].[ext]"
                        lockStrategy="artifact-lock"
        />
+       <caches>
+               <cache name="mycache" 
+                               basedir="mycache"
+                               ivyPattern="[module]/ivy-[revision].xml" 
+                               
artifactPattern="[module]/[artifact]-[revision].[ext]"
+                               lock="no-lock"
+               />
+               <cache name="mycache2" />
+       </caches>
+       <resolvers>
+               <filesystem name="A">
+                       <ivy 
pattern="${shared}/[organisation]/[module]/ivys/ivy-[revision].xml"/>
+                       <artifact 
pattern="${shared}/[organisation]/[module]/[type]s/[artifact]-[revision].[type]"/>
+               </filesystem>
+               <filesystem name="B" cache="mycache">
+                       <ivy 
pattern="${libraries.dir}/[organisation]/[module]/ivys/ivy-[revision].xml"/>
+                       <artifact 
pattern="${libraries.dir}/[organisation]/[module]/[type]s/[artifact]-[revision].[type]"/>
+               </filesystem>
+       </resolvers>
 </ivysettings>

Modified: 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/LatestConflictManagerTest.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/LatestConflictManagerTest.java?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/LatestConflictManagerTest.java
 (original)
+++ 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/LatestConflictManagerTest.java
 Fri Dec 28 08:11:26 2007
@@ -24,7 +24,7 @@
 import junit.framework.TestCase;
 
 import org.apache.ivy.Ivy;
-import org.apache.ivy.core.cache.CacheManager;
+import org.apache.ivy.core.cache.DefaultResolutionCacheManager;
 import org.apache.ivy.core.module.id.ModuleRevisionId;
 import org.apache.ivy.core.report.ConfigurationResolveReport;
 import org.apache.ivy.core.report.ResolveReport;

Modified: 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/RegexpConflictManagerTest.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/RegexpConflictManagerTest.java?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/RegexpConflictManagerTest.java
 (original)
+++ 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/RegexpConflictManagerTest.java
 Fri Dec 28 08:11:26 2007
@@ -22,7 +22,7 @@
 import junit.framework.TestCase;
 
 import org.apache.ivy.Ivy;
-import org.apache.ivy.core.cache.CacheManager;
+import org.apache.ivy.core.cache.DefaultResolutionCacheManager;
 import org.apache.ivy.core.resolve.ResolveOptions;
 import org.apache.ivy.util.FileUtil;
 

Modified: 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/StrictConflictManagerTest.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/StrictConflictManagerTest.java?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/StrictConflictManagerTest.java
 (original)
+++ 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/conflict/StrictConflictManagerTest.java
 Fri Dec 28 08:11:26 2007
@@ -22,7 +22,7 @@
 import junit.framework.TestCase;
 
 import org.apache.ivy.Ivy;
-import org.apache.ivy.core.cache.CacheManager;
+import org.apache.ivy.core.cache.DefaultResolutionCacheManager;
 import org.apache.ivy.core.resolve.ResolveOptions;
 import org.apache.ivy.util.FileUtil;
 

Modified: 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/lock/ArtifactLockStrategyTest.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/lock/ArtifactLockStrategyTest.java?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/lock/ArtifactLockStrategyTest.java
 (original)
+++ 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/lock/ArtifactLockStrategyTest.java
 Fri Dec 28 08:11:26 2007
@@ -22,7 +22,8 @@
 
 import junit.framework.TestCase;
 
-import org.apache.ivy.core.cache.CacheManager;
+import org.apache.ivy.core.cache.DefaultRepositoryCacheManager;
+import org.apache.ivy.core.cache.RepositoryCacheManager;
 import org.apache.ivy.core.event.EventManager;
 import org.apache.ivy.core.module.descriptor.DefaultDependencyDescriptor;
 import org.apache.ivy.core.module.id.ModuleRevisionId;
@@ -78,8 +79,9 @@
     }    
 
     
-    private CacheManager newCacheManager(IvySettings settings) {
-        CacheManager cacheManager = new CacheManager(settings, new 
File("build/test/cache"));
+    private RepositoryCacheManager newCacheManager(IvySettings settings) {
+        DefaultRepositoryCacheManager cacheManager 
+            = new DefaultRepositoryCacheManager("cache", settings, new 
File("build/test/cache"));
         cacheManager.setLockStrategy(new ArtifactLockStrategy());
         return cacheManager;
     }

Modified: 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/report/XmlReportParserTest.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/report/XmlReportParserTest.java?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/report/XmlReportParserTest.java
 (original)
+++ 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/report/XmlReportParserTest.java
 Fri Dec 28 08:11:26 2007
@@ -22,7 +22,7 @@
 import junit.framework.TestCase;
 
 import org.apache.ivy.Ivy;
-import org.apache.ivy.core.cache.CacheManager;
+import org.apache.ivy.core.cache.DefaultResolutionCacheManager;
 import org.apache.ivy.core.module.id.ModuleRevisionId;
 import org.apache.ivy.core.report.ResolveReport;
 import org.apache.ivy.core.resolve.ResolveOptions;

Modified: 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/report/XmlReportWriterTest.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/report/XmlReportWriterTest.java?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/report/XmlReportWriterTest.java
 (original)
+++ 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/report/XmlReportWriterTest.java
 Fri Dec 28 08:11:26 2007
@@ -23,7 +23,7 @@
 import junit.framework.TestCase;
 
 import org.apache.ivy.Ivy;
-import org.apache.ivy.core.cache.CacheManager;
+import org.apache.ivy.core.cache.DefaultResolutionCacheManager;
 import org.apache.ivy.core.report.ResolveReport;
 import org.apache.ivy.core.resolve.ResolveOptions;
 import org.apache.ivy.util.CacheCleaner;

Modified: 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/resolver/DualResolverTest.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/resolver/DualResolverTest.java?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/resolver/DualResolverTest.java
 (original)
+++ 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/resolver/DualResolverTest.java
 Fri Dec 28 08:11:26 2007
@@ -23,7 +23,7 @@
 
 import junit.framework.TestCase;
 
-import org.apache.ivy.core.cache.CacheManager;
+import org.apache.ivy.core.cache.DefaultResolutionCacheManager;
 import org.apache.ivy.core.event.EventManager;
 import org.apache.ivy.core.module.descriptor.DefaultDependencyDescriptor;
 import org.apache.ivy.core.module.descriptor.DependencyDescriptor;

Modified: 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/resolver/FileSystemResolverTest.java
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/resolver/FileSystemResolverTest.java?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/resolver/FileSystemResolverTest.java
 (original)
+++ 
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/resolver/FileSystemResolverTest.java
 Fri Dec 28 08:11:26 2007
@@ -23,7 +23,8 @@
 import java.util.Date;
 import java.util.GregorianCalendar;
 
-import org.apache.ivy.core.cache.CacheManager;
+import org.apache.ivy.core.cache.DefaultResolutionCacheManager;
+import org.apache.ivy.core.cache.RepositoryCacheManager;
 import org.apache.ivy.core.event.EventManager;
 import org.apache.ivy.core.module.descriptor.Artifact;
 import org.apache.ivy.core.module.descriptor.DefaultArtifact;
@@ -67,20 +68,20 @@
 
     private File cache;
 
-    private CacheManager cacheManager;
+    private RepositoryCacheManager cacheManager;
 
     public FileSystemResolverTest() {
         setupLastModified();
     }
 
     protected void setUp() throws Exception {
-         settings = new IvySettings();
+        settings = new IvySettings();
         engine = new ResolveEngine(settings, new EventManager(), new 
SortEngine(settings));
         cache = new File("build/cache");
         data = new ResolveData(engine, new ResolveOptions());
         cache.mkdirs();
-        cacheManager = new CacheManager(settings, cache);
         settings.setDefaultCache(cache);
+        cacheManager = settings.getDefaultRepositoryCacheManager();
     }
 
     private void setupLastModified() {

Modified: ant/ivy/core/trunk/test/repositories/IVY-630/ivysettings.xml
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/IVY-630/ivysettings.xml?rev=607278&r1=607277&r2=607278&view=diff
==============================================================================
--- ant/ivy/core/trunk/test/repositories/IVY-630/ivysettings.xml (original)
+++ ant/ivy/core/trunk/test/repositories/IVY-630/ivysettings.xml Fri Dec 28 
08:11:26 2007
@@ -17,7 +17,7 @@
    under the License.    
 -->
 <ivysettings>
-       <settings defaultCache="${cache.dir}" defaultResolver="1" 
checkUpToDate="true" />
+       <settings defaultCache="build/cache" defaultResolver="1" 
checkUpToDate="true" />
        <resolvers>
                <filesystem allownomd="true" name="1">
                        <ivy 
pattern="${ivy.settings.dir}/[module]-[revision]/ivy.xml"/>


Reply via email to