You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-commits@incubator.apache.org by xa...@apache.org on 2007/01/31 11:00:37 UTC

svn commit: r501796 [6/10] - in /incubator/ivy/core/trunk: src/java/org/apache/ivy/ src/java/org/apache/ivy/ant/ src/java/org/apache/ivy/core/ src/java/org/apache/ivy/core/cache/ src/java/org/apache/ivy/core/event/ src/java/org/apache/ivy/core/event/do...

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractResolver.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractResolver.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractResolver.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractResolver.java Wed Jan 31 03:00:29 2007
@@ -17,10 +17,10 @@
  */
 package org.apache.ivy.plugins.resolver;
 
-import java.io.File;
 import java.util.Map;
 
-import org.apache.ivy.Ivy;
+import org.apache.ivy.core.IvyContext;
+import org.apache.ivy.core.cache.CacheManager;
 import org.apache.ivy.core.module.descriptor.Artifact;
 import org.apache.ivy.core.module.descriptor.DependencyDescriptor;
 import org.apache.ivy.core.module.descriptor.ModuleDescriptor;
@@ -28,13 +28,15 @@
 import org.apache.ivy.core.report.ArtifactDownloadReport;
 import org.apache.ivy.core.report.DownloadReport;
 import org.apache.ivy.core.report.DownloadStatus;
+import org.apache.ivy.core.resolve.DownloadOptions;
 import org.apache.ivy.core.resolve.IvyNode;
 import org.apache.ivy.core.resolve.ResolveData;
 import org.apache.ivy.core.resolve.ResolvedModuleRevision;
 import org.apache.ivy.core.search.ModuleEntry;
 import org.apache.ivy.core.search.OrganisationEntry;
 import org.apache.ivy.core.search.RevisionEntry;
-import org.apache.ivy.plugins.IvyAware;
+import org.apache.ivy.core.settings.IvySettings;
+import org.apache.ivy.plugins.IvySettingsAware;
 import org.apache.ivy.plugins.latest.LatestStrategy;
 import org.apache.ivy.plugins.matcher.Matcher;
 import org.apache.ivy.plugins.matcher.NoMatcher;
@@ -48,7 +50,7 @@
 /**
  * This abstract resolver only provides handling for resolver name
  */
-public abstract class AbstractResolver implements DependencyResolver, IvyAware, HasLatestStrategy {
+public abstract class AbstractResolver implements DependencyResolver, IvySettingsAware, HasLatestStrategy {
 
     /**
      * True if parsed ivy files should be validated against xsd, false if they should not,
@@ -59,7 +61,7 @@
     private String _changingPattern;
     private String _changingMatcherName = PatternMatcher.EXACT_OR_REGEXP;
     
-    private Ivy _ivy;
+    private IvySettings _settings;
 
     /**
      * The latest strategy to use to find latest among several artifacts
@@ -75,12 +77,12 @@
 
     private String _namespaceName;
 
-    public Ivy getIvy() {
-        return _ivy;
+    public IvySettings getSettings() {
+        return _settings;
     }    
 
-    public void setIvy(Ivy ivy) {
-        _ivy = ivy;
+    public void setSettings(IvySettings ivy) {
+        _settings = ivy;
     }
     
     public String getName() {
@@ -120,9 +122,7 @@
 
 
     protected void checkInterrupted() {
-		if (_ivy != null) {
-			_ivy.checkInterrupted();
-		}
+		IvyContext.getContext().getIvy().checkInterrupted();
 	}
 
     public void reportFailure() {
@@ -163,26 +163,22 @@
      * Subclasses should overwrite this to avoid the download
      */
     public boolean exists(Artifact artifact) {
-        DownloadReport dr = download(new Artifact[] {artifact}, getIvy(), getIvy().getDefaultCache(), true);
+        DownloadReport dr = download(new Artifact[] {artifact}, new DownloadOptions(getSettings(), new CacheManager(getSettings(), getSettings().getDefaultCache()), null, true));
         ArtifactDownloadReport adr = dr.getArtifactReport(artifact);
         return adr.getDownloadStatus() != DownloadStatus.FAILED;
     }
     
-    public DownloadReport download(Artifact[] artifacts, Ivy ivy, File cache) {
-    	return download(artifacts, ivy, cache, false);
-    }
-
     public LatestStrategy getLatestStrategy() {        
         if (_latestStrategy == null) {
-            if (getIvy() != null) {
+            if (getSettings() != null) {
                 if (_latestStrategyName != null && !"default".equals(_latestStrategyName)) {
-                    _latestStrategy = getIvy().getLatestStrategy(_latestStrategyName);
+                    _latestStrategy = getSettings().getLatestStrategy(_latestStrategyName);
                     if (_latestStrategy == null) {
                         Message.error("unknown latest strategy: "+_latestStrategyName);
-                        _latestStrategy = getIvy().getDefaultLatestStrategy();
+                        _latestStrategy = getSettings().getDefaultLatestStrategy();
                     }
                 } else {
-                    _latestStrategy = getIvy().getDefaultLatestStrategy();
+                    _latestStrategy = getSettings().getDefaultLatestStrategy();
                     Message.debug(getName()+": no latest strategy defined: using default");
                 }
             } else {
@@ -210,15 +206,15 @@
 
     public Namespace getNamespace() {        
         if (_namespace == null) {
-            if (getIvy() != null) {
+            if (getSettings() != null) {
                 if (_namespaceName != null) {
-                    _namespace = getIvy().getNamespace(_namespaceName);
+                    _namespace = getSettings().getNamespace(_namespaceName);
                     if (_namespace == null) {
                         Message.error("unknown namespace: "+_namespaceName);
-                        _namespace = getIvy().getSystemNamespace();
+                        _namespace = getSettings().getSystemNamespace();
                     }
                 } else {
-                    _namespace = getIvy().getSystemNamespace();
+                    _namespace = getSettings().getSystemNamespace();
                     Message.debug(getName()+": no namespace defined: using system");
                 }
             } else {
@@ -264,7 +260,7 @@
     }
 
     protected ResolvedModuleRevision findModuleInCache(ResolveData data, ModuleRevisionId mrid) {
-        ResolvedModuleRevision moduleFromCache = data.getIvy().findModuleInCache(toSystem(mrid), data.getCache(), doValidate(data));
+        ResolvedModuleRevision moduleFromCache = data.getCacheManager().findModuleInCache(toSystem(mrid), doValidate(data));
         if (moduleFromCache == null) {
             return null;
         }
@@ -299,7 +295,7 @@
         if (_changingPattern == null) {
             return NoMatcher.INSTANCE;
         }
-        PatternMatcher matcher = _ivy.getMatcher(_changingMatcherName);
+        PatternMatcher matcher = _settings.getMatcher(_changingMatcherName);
         if (matcher == null) {
             throw new IllegalStateException("unknown matcher '"+_changingMatcherName+"'. It is set as changing matcher in "+this);
         }

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractResourceResolver.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractResourceResolver.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractResourceResolver.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractResourceResolver.java Wed Jan 31 03:00:29 2007
@@ -112,7 +112,7 @@
                 String pattern = (String)iter.next();
                 String resolvedFileName = IvyPatternHelper.substitute(pattern, artifact);
                 logIvyAttempt(resolvedFileName);
-                if (getIvy().getVersionMatcher().isDynamic(mrid)) {
+                if (getSettings().getVersionMatcher().isDynamic(mrid)) {
                     resolvedFileName = IvyPatternHelper.substitute(pattern, latestArtifact);
                     logIvyAttempt(resolvedFileName);
                 }
@@ -163,7 +163,7 @@
         tokenValues.put(IvyPatternHelper.TYPE_KEY, "ivy");
         tokenValues.put(IvyPatternHelper.EXT_KEY, "xml");
         findTokenValues(names, getIvyPatterns(), tokenValues, token);
-        getIvy().filterIgnore(names);
+        getSettings().filterIgnore(names);
         return names;
     }
     
@@ -174,7 +174,7 @@
         tokenValues.put(IvyPatternHelper.TYPE_KEY, "jar");
         tokenValues.put(IvyPatternHelper.EXT_KEY, "jar");
         findTokenValues(names, getArtifactPatterns(), tokenValues, token);
-        getIvy().filterIgnore(names);
+        getSettings().filterIgnore(names);
         return names;
     }
 

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractSshBasedResolver.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractSshBasedResolver.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractSshBasedResolver.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/AbstractSshBasedResolver.java Wed Jan 31 03:00:29 2007
@@ -19,7 +19,7 @@
 
 import java.io.File;
 
-import org.apache.ivy.Ivy;
+import org.apache.ivy.core.settings.IvySettings;
 import org.apache.ivy.plugins.repository.ssh.AbstractSshBasedRepository;
 
 
@@ -68,10 +68,10 @@
         passfileSet = true;
     }
 
-    public void setIvy(Ivy ivy) {
-        super.setIvy(ivy);
+    public void setSettings(IvySettings settings) {
+        super.setSettings(settings);
         if (!passfileSet) {
-            getSshBasedRepository().setPassFile(new File(ivy.getDefaultIvyUserDir(), getSshBasedRepository().getHost()+".ssh.passwd"));
+            getSshBasedRepository().setPassFile(new File(settings.getDefaultIvyUserDir(), getSshBasedRepository().getHost()+".ssh.passwd"));
         }
     }
 

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/BasicResolver.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/BasicResolver.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/BasicResolver.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/BasicResolver.java Wed Jan 31 03:00:29 2007
@@ -33,9 +33,10 @@
 import java.util.ListIterator;
 import java.util.Map;
 
-import org.apache.ivy.Ivy;
 import org.apache.ivy.core.IvyPatternHelper;
 import org.apache.ivy.core.cache.ArtifactOrigin;
+import org.apache.ivy.core.cache.CacheManager;
+import org.apache.ivy.core.event.EventManager;
 import org.apache.ivy.core.event.download.EndArtifactDownloadEvent;
 import org.apache.ivy.core.event.download.NeedArtifactEvent;
 import org.apache.ivy.core.event.download.StartArtifactDownloadEvent;
@@ -50,6 +51,7 @@
 import org.apache.ivy.core.report.DownloadReport;
 import org.apache.ivy.core.report.DownloadStatus;
 import org.apache.ivy.core.resolve.DefaultModuleRevision;
+import org.apache.ivy.core.resolve.DownloadOptions;
 import org.apache.ivy.core.resolve.IvyNode;
 import org.apache.ivy.core.resolve.ResolveData;
 import org.apache.ivy.core.resolve.ResolvedModuleRevision;
@@ -68,6 +70,7 @@
 import org.apache.ivy.plugins.resolver.util.ResolvedResource;
 import org.apache.ivy.plugins.resolver.util.ResourceMDParser;
 import org.apache.ivy.util.ChecksumHelper;
+import org.apache.ivy.util.HostUtil;
 import org.apache.ivy.util.Message;
 
 
@@ -98,7 +101,7 @@
 	private URLRepository _extartifactrep = new URLRepository(); // used only to download external artifacts
     
     public BasicResolver() {
-        _workspaceName = Ivy.getLocalHostName();
+        _workspaceName = HostUtil.getLocalHostName();
     }
 
     public String getWorkspaceName() {
@@ -123,8 +126,8 @@
      */
     public boolean isCheckmodified() {
         if (_checkmodified == null) {
-            if (getIvy() != null) {
-                String check = getIvy().getVariable("ivy.resolver.default.check.modified");
+            if (getSettings() != null) {
+                String check = getSettings().getVariable("ivy.resolver.default.check.modified");
                 return check != null ? Boolean.valueOf(check).booleanValue() : false;
             } else {
                 return false;
@@ -154,7 +157,7 @@
             return null;
 		}
         
-        boolean isDynamic = getIvy().getVersionMatcher().isDynamic(mrid);
+        boolean isDynamic = getSettings().getVersionMatcher().isDynamic(mrid);
 		if (isDynamic && !acceptLatest()) {
             Message.error("dynamic revisions not handled by "+getClass().getName()+". impossible to resolve "+mrid);
             return null;
@@ -198,9 +201,7 @@
             parser = XmlModuleDescriptorParser.getInstance();
             md = DefaultModuleDescriptor.newDefaultInstance(mrid, dd.getAllDependencyArtifactsIncludes());
             ResolvedResource artifactRef = findFirstArtifactRef(md, dd, data);
-            if (getIvy() != null && getIvy().isInterrupted()) {
-            	throw new RuntimeException("interrupted");
-            }
+            checkInterrupted();
             if (artifactRef == null) {
                 Message.verbose("\t"+getName()+": no ivy file nor artifact found for "+mrid);
                 logIvyNotFound(mrid);
@@ -283,7 +284,7 @@
         systemMd.setResolvedModuleRevisionId(toSystem(resolvedMrid)); // keep system md in sync with md
 
         // check module descriptor revision
-        if (!getIvy().getVersionMatcher().accept(mrid, md)) {
+        if (!getSettings().getVersionMatcher().accept(mrid, md)) {
             Message.info("\t"+getName()+": unacceptable revision => was="+md.getModuleRevisionId().getRevision()+" required="+mrid.getRevision());
             return null;
         }
@@ -304,14 +305,14 @@
         }
     
         try {
-            File ivyFile = data.getIvy().getIvyFileInCache(data.getCache(), systemMd.getResolvedModuleRevisionId());
+            File ivyFile = data.getCacheManager().getIvyFileInCache(systemMd.getResolvedModuleRevisionId());
 	        if (ivyRef == null) {
                 // a basic ivy file is written containing default data
 	            XmlModuleDescriptorWriter.write(systemMd, ivyFile);
 	        } else {
                 if (md instanceof DefaultModuleDescriptor) {
                     DefaultModuleDescriptor dmd = (DefaultModuleDescriptor)md;
-                    if (data.getIvy().logNotConvertedExclusionRule() && dmd.isNamespaceUseful()) {
+                    if (data.getSettings().logNotConvertedExclusionRule() && dmd.isNamespaceUseful()) {
                         Message.warn("the module descriptor "+ivyRef.getResource()+" has information which can't be converted into the system namespace. It will require the availability of the namespace '"+getNamespace().getName()+"' to be fully usable.");
                     }
                 }
@@ -331,8 +332,8 @@
             }
         }
         
-        data.getIvy().saveResolver(data.getCache(), systemMd, getName());
-        data.getIvy().saveArtResolver(data.getCache(), systemMd, getName());
+        data.getCacheManager().saveResolver(systemMd, getName());
+        data.getCacheManager().saveArtResolver(systemMd, getName());
         return new DefaultModuleRevision(this, this, systemMd, searched, downloaded, cachedIvyURL);
     }
 
@@ -340,7 +341,7 @@
         String revision = ivyRef.getRevision();
         if (revision == null) {
             Message.debug("no revision found in reference for "+askedMrid);
-            if (getIvy().getVersionMatcher().isDynamic(askedMrid)) {
+            if (getSettings().getVersionMatcher().isDynamic(askedMrid)) {
                 if (md.getModuleRevisionId().getRevision() == null) {
                     return "working@"+getName();
                 } else {
@@ -377,7 +378,7 @@
         ModuleRevisionId resolvedMrid = mrid;
         
         // first check if this dependency has not yet been resolved
-        if (getIvy().getVersionMatcher().isDynamic(mrid)) {
+        if (getSettings().getVersionMatcher().isDynamic(mrid)) {
             resolvedMrid = ModuleRevisionId.newInstance(mrid, ivyRef.getRevision());
             IvyNode node = getSystemNode(data, resolvedMrid);
             if (node != null && node.getModuleRevision() != null) {
@@ -423,7 +424,7 @@
         try {
             // first check if source file is not cache file itself
             if (ResourceHelper.equals(ivyRef.getResource(), 
-                    data.getIvy().getIvyFileInCache(data.getCache(), toSystem(resolvedMrid)))) {
+                    data.getCacheManager().getIvyFileInCache(toSystem(resolvedMrid)))) {
                 Message.error("invalid configuration for resolver '"+getName()+"': pointing ivy files to ivy cache is forbidden !");
                 return null;
             }
@@ -444,7 +445,7 @@
             return null;
         }
         try {
-            ModuleDescriptor md = parser.parseDescriptor(data.getIvy(), cachedIvyURL, ivyRef.getResource(), doValidate(data));
+            ModuleDescriptor md = parser.parseDescriptor(data.getSettings(), cachedIvyURL, ivyRef.getResource(), doValidate(data));
             Message.debug("\t"+getName()+": parsed downloaded md file for "+mrid+" parsed="+md.getModuleRevisionId());
             
             
@@ -461,13 +462,13 @@
                     Artifact[] arts = rmr.getDescriptor().getArtifacts(confs[i]);
                     for (int j = 0; j < arts.length; j++) {
                         Artifact transformedArtifact = toSystem(arts[j]);
-                        ArtifactOrigin origin = data.getIvy().getSavedArtifactOrigin(data.getCache(), transformedArtifact);
-						File artFile = data.getIvy().getArchiveFileInCache(data.getCache(), transformedArtifact, origin, false);
+                        ArtifactOrigin origin = data.getCacheManager().getSavedArtifactOrigin(transformedArtifact);
+						File artFile = data.getCacheManager().getArchiveFileInCache(transformedArtifact, origin, false);
                         if (artFile.exists()) {
                             Message.debug("deleting "+artFile);
                             artFile.delete();
                         }
-                        data.getIvy().removeSavedArtifactOrigin(data.getCache(), transformedArtifact);
+                        data.getCacheManager().removeSavedArtifactOrigin(transformedArtifact);
                     }
                 }
             } else if (isChangingDependency){
@@ -528,13 +529,13 @@
         }
         if (ivyRef.getRevision() != null && !ivyRef.getRevision().startsWith("working@")) {
             ModuleRevisionId expectedMrid = ModuleRevisionId.newInstance(mrid, ivyRef.getRevision());
-            if (!getIvy().getVersionMatcher().accept(expectedMrid, md)) {
+            if (!getSettings().getVersionMatcher().accept(expectedMrid, md)) {
                 Message.error("\t"+getName()+": bad revision found in "+ivyRef.getResource()+": expected='"+ivyRef.getRevision()+" found='"+md.getModuleRevisionId().getRevision()+"'");
                 errors.append("bad revision: expected='"+ivyRef.getRevision()+"' found='"+md.getModuleRevisionId().getRevision()+"'; ");
                 ok = false;
             }
         }
-        if (!getIvy().getStatusManager().isStatus(md.getStatus())) {
+        if (!getSettings().getStatusManager().isStatus(md.getStatus())) {
             Message.error("\t"+getName()+": bad status found in "+ivyRef.getResource()+": '"+md.getStatus()+"'");
             errors.append("bad status: '"+md.getStatus()+"'; ");
             ok = false;
@@ -632,18 +633,25 @@
         return true;
     }
 
-    public DownloadReport download(Artifact[] artifacts, Ivy ivy, File cache, boolean useOrigin) {
+    public DownloadReport download(Artifact[] artifacts, DownloadOptions options) {
+    	CacheManager cacheManager = options.getCacheManager();
+    	EventManager eventManager = options.getEventManager();
+    	
+    	boolean useOrigin = options.isUseOrigin();
+    	
         clearArtifactAttempts();
         DownloadReport dr = new DownloadReport();
         for (int i = 0; i < artifacts.length; i++) {
         	final ArtifactDownloadReport adr = new ArtifactDownloadReport(artifacts[i]);
         	dr.addArtifactReport(adr);
-            ivy.fireIvyEvent(new NeedArtifactEvent(ivy, this, artifacts[i]));
-            ArtifactOrigin origin = ivy.getSavedArtifactOrigin(cache, artifacts[i]);
+        	if (eventManager != null) {
+        		eventManager.fireIvyEvent(new NeedArtifactEvent(this, artifacts[i]));
+        	}
+            ArtifactOrigin origin = cacheManager.getSavedArtifactOrigin(artifacts[i]);
             // if we can use origin file, we just ask ivy for the file in cache, and it will return 
             // the original one if possible. If we are not in useOrigin mode, we use the getArchivePath
             // method which always return a path in the actual cache
-        	File archiveFile = ivy.getArchiveFileInCache(cache, artifacts[i], origin, useOrigin);
+        	File archiveFile = cacheManager.getArchiveFileInCache(artifacts[i], origin, options.isUseOrigin());
         			
         	if (archiveFile.exists()) {
         		Message.verbose("\t[NOT REQUIRED] "+artifacts[i]);
@@ -662,23 +670,25 @@
                 		origin = new ArtifactOrigin(artifactRef.getResource().isLocal(), artifactRef.getResource().getName());
                 		if (useOrigin && artifactRef.getResource().isLocal()) {
                     		Message.verbose("\t[NOT REQUIRED] "+artifacts[i]);
-            				ivy.saveArtifactOrigin(cache, artifacts[i], origin);
-                    		archiveFile = ivy.getArchiveFileInCache(cache, artifacts[i], origin);
+                    		cacheManager.saveArtifactOrigin(artifacts[i], origin);
+                    		archiveFile = cacheManager.getArchiveFileInCache(artifacts[i], origin);
                     		adr.setDownloadStatus(DownloadStatus.NO);  
                             adr.setSize(archiveFile.length());
                             adr.setArtifactOrigin(origin);
                 		} else {
                 			// refresh archive file now that we better now its origin
-                			archiveFile = ivy.getArchiveFileInCache(cache, artifacts[i], origin, useOrigin);
+                			archiveFile = cacheManager.getArchiveFileInCache(artifacts[i], origin, useOrigin);
                 			if (ResourceHelper.equals(artifactRef.getResource(), 
                 					archiveFile)) {
                 				Message.error("invalid configuration for resolver '"+getName()+"': pointing artifacts to ivy cache is forbidden !");
                 				return null;
                 			}
                 			Message.info("downloading "+artifactRef.getResource()+" ...");
-                			ivy.fireIvyEvent(new StartArtifactDownloadEvent(ivy, this, artifacts[i], origin));
-
-                			File tmp = ivy.getArchiveFileInCache(cache, 
+                        	if (eventManager != null) {
+                        		eventManager.fireIvyEvent(new StartArtifactDownloadEvent(this, artifacts[i], origin));
+                        	}
+                        	
+                			File tmp = cacheManager.getArchiveFileInCache( 
                 					new DefaultArtifact(
                 							artifacts[i].getModuleRevisionId(), 
                 							artifacts[i].getPublicationDate(), 
@@ -704,7 +714,7 @@
                 				Message.warn("\t[FAILED     ] "+artifacts[i]+" impossible to move temp file to definitive one ("+(System.currentTimeMillis()-start)+"ms)");
                 				adr.setDownloadStatus(DownloadStatus.FAILED);
                 			} else {
-                				ivy.saveArtifactOrigin(cache, artifacts[i], origin);
+                				cacheManager.saveArtifactOrigin(artifacts[i], origin);
                 				Message.info("\t[SUCCESSFUL ] "+artifacts[i]+" ("+(System.currentTimeMillis()-start)+"ms)");
                 				adr.setDownloadStatus(DownloadStatus.SUCCESSFUL);
                 				adr.setArtifactOrigin(origin);
@@ -720,7 +730,9 @@
                 }
                 checkInterrupted();
         	}
-        	ivy.fireIvyEvent(new EndArtifactDownloadEvent(ivy, this, artifacts[i], adr, archiveFile));
+        	if (eventManager != null) {
+        		eventManager.fireIvyEvent(new EndArtifactDownloadEvent(this, artifacts[i], adr, archiveFile));
+        	}
         }
         return dr;
     }
@@ -881,7 +893,7 @@
     }
 
 	public String[] getChecksumAlgorithms() {
-		String csDef = _checksums == null ? getIvy().getVariable("ivy.checksums") : _checksums;
+		String csDef = _checksums == null ? getSettings().getVariable("ivy.checksums") : _checksums;
 		if (csDef == null) {
 			return new String[0];
 		}

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/CacheResolver.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/CacheResolver.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/CacheResolver.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/CacheResolver.java Wed Jan 31 03:00:29 2007
@@ -22,19 +22,20 @@
 import java.text.ParseException;
 import java.util.Collections;
 
-import org.apache.ivy.Ivy;
 import org.apache.ivy.core.module.descriptor.Artifact;
 import org.apache.ivy.core.module.descriptor.DependencyDescriptor;
 import org.apache.ivy.core.module.id.ModuleRevisionId;
 import org.apache.ivy.core.report.ArtifactDownloadReport;
 import org.apache.ivy.core.report.DownloadReport;
 import org.apache.ivy.core.report.DownloadStatus;
+import org.apache.ivy.core.resolve.DownloadOptions;
 import org.apache.ivy.core.resolve.IvyNode;
 import org.apache.ivy.core.resolve.ResolveData;
 import org.apache.ivy.core.resolve.ResolvedModuleRevision;
 import org.apache.ivy.core.search.ModuleEntry;
 import org.apache.ivy.core.search.OrganisationEntry;
 import org.apache.ivy.core.search.RevisionEntry;
+import org.apache.ivy.core.settings.IvySettings;
 import org.apache.ivy.plugins.resolver.util.ResolvedResource;
 import org.apache.ivy.util.Message;
 
@@ -46,8 +47,8 @@
     public CacheResolver() {
     }
     
-    public CacheResolver(Ivy ivy) {
-        setIvy(ivy);
+    public CacheResolver(IvySettings settings) {
+        setSettings(settings);
         setName("cache");
     }
 
@@ -59,8 +60,8 @@
         
         // if we do not have to check modified and if the revision is exact and not changing,  
         // we first search for it in cache
-        if (!getIvy().getVersionMatcher().isDynamic(mrid)) {
-            ResolvedModuleRevision rmr = data.getIvy().findModuleInCache(mrid, data.getCache(), doValidate(data));
+        if (!getSettings().getVersionMatcher().isDynamic(mrid)) {
+            ResolvedModuleRevision rmr = data.getCacheManager().findModuleInCache(mrid, doValidate(data));
             if (rmr != null) {
                 Message.verbose("\t"+getName()+": revision in cache: "+mrid);
                 return rmr;
@@ -69,7 +70,7 @@
                 return null;
             }
         } else {
-            ensureConfigured(data.getIvy(), data.getCache());
+            ensureConfigured(data.getSettings(), data.getCacheManager().getCache());
             ResolvedResource ivyRef = findIvyFileRef(dd, data);
             if (ivyRef != null) {
                 Message.verbose("\t"+getName()+": found ivy file in cache for "+mrid);
@@ -82,7 +83,7 @@
                     Message.verbose("\t"+getName()+": revision already resolved: "+resolvedMrid);
                     return searchedRmr(node.getModuleRevision());
                 }
-                ResolvedModuleRevision rmr = data.getIvy().findModuleInCache(resolvedMrid, data.getCache(), doValidate(data));
+                ResolvedModuleRevision rmr = data.getCacheManager().findModuleInCache(resolvedMrid, doValidate(data));
                 if (rmr != null) {
                     Message.verbose("\t"+getName()+": revision in cache: "+resolvedMrid);
                     return searchedRmr(rmr);
@@ -97,13 +98,13 @@
         }
     }
     
-    public DownloadReport download(Artifact[] artifacts, Ivy ivy, File cache) {
+    public DownloadReport download(Artifact[] artifacts, DownloadOptions options) {
         clearArtifactAttempts();
         DownloadReport dr = new DownloadReport();
         for (int i = 0; i < artifacts.length; i++) {
             final ArtifactDownloadReport adr = new ArtifactDownloadReport(artifacts[i]);
             dr.addArtifactReport(adr);
-            File archiveFile = ivy.getArchiveFileInCache(cache, artifacts[i]);
+            File archiveFile = options.getCacheManager().getArchiveFileInCache(artifacts[i]);
             if (archiveFile.exists()) {
                 Message.verbose("\t[NOT REQUIRED] "+artifacts[i]);
                 adr.setDownloadStatus(DownloadStatus.NO);  
@@ -142,16 +143,16 @@
     }
 
     private void ensureConfigured() {
-        if (getIvy() != null) {
-            ensureConfigured(getIvy(), getIvy().getDefaultCache());
+        if (getSettings() != null) {
+            ensureConfigured(getSettings(), getSettings().getDefaultCache());
         }
     }
-    private void ensureConfigured(Ivy ivy, File cache) {
-        if (ivy == null || cache == null || (_configured != null && _configured.equals(cache))) {
+    private void ensureConfigured(IvySettings settings, File cache) {
+        if (settings == null || cache == null || (_configured != null && _configured.equals(cache))) {
             return;
         }
-        setIvyPatterns(Collections.singletonList(cache.getAbsolutePath()+"/"+ivy.getCacheIvyPattern()));
-        setArtifactPatterns(Collections.singletonList(cache.getAbsolutePath()+"/"+ivy.getCacheArtifactPattern()));
+        setIvyPatterns(Collections.singletonList(cache.getAbsolutePath()+"/"+settings.getCacheIvyPattern()));
+        setArtifactPatterns(Collections.singletonList(cache.getAbsolutePath()+"/"+settings.getCacheArtifactPattern()));
     }
     public String getTypeName() {
         return "cache";

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/ChainResolver.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/ChainResolver.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/ChainResolver.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/ChainResolver.java Wed Jan 31 03:00:29 2007
@@ -26,12 +26,12 @@
 import java.util.Iterator;
 import java.util.List;
 
-import org.apache.ivy.Ivy;
 import org.apache.ivy.core.module.descriptor.Artifact;
 import org.apache.ivy.core.module.descriptor.DependencyDescriptor;
 import org.apache.ivy.core.report.ArtifactDownloadReport;
 import org.apache.ivy.core.report.DownloadReport;
 import org.apache.ivy.core.report.DownloadStatus;
+import org.apache.ivy.core.resolve.DownloadOptions;
 import org.apache.ivy.core.resolve.ResolveData;
 import org.apache.ivy.core.resolve.ResolvedModuleRevision;
 import org.apache.ivy.plugins.latest.ArtifactInfo;
@@ -94,7 +94,7 @@
             checkInterrupted();
             if (mr != null) {
                 boolean shouldReturn = _returnFirst;
-                shouldReturn |= !getIvy().getVersionMatcher().isDynamic(dd.getDependencyRevisionId()) && ret != null && !ret.getDescriptor().isDefault();
+                shouldReturn |= !getSettings().getVersionMatcher().isDynamic(dd.getDependencyRevisionId()) && ret != null && !ret.getDescriptor().isDefault();
                 if (!shouldReturn) {
                     // check if latest is asked and compare to return the most recent
                     String mrDesc = mr.getId()+(mr.getDescriptor().isDefault()?"[default]":"")+" from "+mr.getResolver().getName();
@@ -111,7 +111,7 @@
                     } else {
                         Message.debug("\tmodule revision discarded as older: "+mrDesc);
                     }
-                    if (!getIvy().getVersionMatcher().isDynamic(dd.getDependencyRevisionId()) && !ret.getDescriptor().isDefault()) {
+                    if (!getSettings().getVersionMatcher().isDynamic(dd.getDependencyRevisionId()) && !ret.getDescriptor().isDefault()) {
                         Message.debug("\tmodule revision found and is not default: returning "+mrDesc);
                         return resolvedRevision(mr);
                     }
@@ -192,12 +192,12 @@
         }
     }
 
-    public DownloadReport download(Artifact[] artifacts, Ivy ivy, File cache, boolean useOrigin) {
+    public DownloadReport download(Artifact[] artifacts, DownloadOptions options) {
         List artifactsToDownload = new ArrayList(Arrays.asList(artifacts));
         DownloadReport report = new DownloadReport();
         for (Iterator iter = _chain.iterator(); iter.hasNext() && !artifactsToDownload.isEmpty();) {
             DependencyResolver resolver = (DependencyResolver) iter.next();
-            DownloadReport r = resolver.download((Artifact[])artifactsToDownload.toArray(new Artifact[artifactsToDownload.size()]), ivy, cache, useOrigin);
+            DownloadReport r = resolver.download((Artifact[])artifactsToDownload.toArray(new Artifact[artifactsToDownload.size()]), options);
             ArtifactDownloadReport[] adr = r.getArtifactsReports();
             for (int i = 0; i < adr.length; i++) {
                 if (adr[i].getDownloadStatus() != DownloadStatus.FAILED) {

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/DependencyResolver.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/DependencyResolver.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/DependencyResolver.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/DependencyResolver.java Wed Jan 31 03:00:29 2007
@@ -22,10 +22,10 @@
 import java.text.ParseException;
 import java.util.Map;
 
-import org.apache.ivy.Ivy;
 import org.apache.ivy.core.module.descriptor.Artifact;
 import org.apache.ivy.core.module.descriptor.DependencyDescriptor;
 import org.apache.ivy.core.report.DownloadReport;
+import org.apache.ivy.core.resolve.DownloadOptions;
 import org.apache.ivy.core.resolve.ResolveData;
 import org.apache.ivy.core.resolve.ResolvedModuleRevision;
 import org.apache.ivy.core.search.ModuleEntry;
@@ -53,7 +53,7 @@
      * @throws ParseException
      */
     ResolvedModuleRevision getDependency(DependencyDescriptor dd, ResolveData data) throws ParseException;
-    DownloadReport download(Artifact[] artifacts, Ivy ivy, File cache, boolean useOrigin);
+    DownloadReport download(Artifact[] artifacts, DownloadOptions options);
     boolean exists(Artifact artifact);
     void publish(Artifact artifact, File src, boolean overwrite) throws IOException;
     

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/DualResolver.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/DualResolver.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/DualResolver.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/DualResolver.java Wed Jan 31 03:00:29 2007
@@ -21,10 +21,10 @@
 import java.io.IOException;
 import java.text.ParseException;
 
-import org.apache.ivy.Ivy;
 import org.apache.ivy.core.module.descriptor.Artifact;
 import org.apache.ivy.core.module.descriptor.DependencyDescriptor;
 import org.apache.ivy.core.report.DownloadReport;
+import org.apache.ivy.core.resolve.DownloadOptions;
 import org.apache.ivy.core.resolve.ResolveData;
 import org.apache.ivy.core.resolve.ResolvedModuleRevision;
 import org.apache.ivy.plugins.resolver.util.ResolvedModuleRevisionProxy;
@@ -70,9 +70,7 @@
         data = new ResolveData(data, doValidate(data));
         final ResolvedModuleRevision mr = _ivyResolver.getDependency(dd, data);
         if (mr == null) {
-            if (getIvy() != null && getIvy().isInterrupted()) {
-            	throw new RuntimeException("interrupted");
-            }
+            checkInterrupted();
             if (isAllownomd()) {
                 Message.verbose("ivy resolver didn't find "+dd.getDependencyRevisionId()+": trying with artifact resolver");
                 return _artifactResolver.getDependency(dd, data);
@@ -94,8 +92,8 @@
         _artifactResolver.reportFailure(art);        
     }
 
-    public DownloadReport download(Artifact[] artifacts, Ivy ivy, File cache, boolean useOrigin) {
-        return _artifactResolver.download(artifacts, ivy, cache, useOrigin);
+    public DownloadReport download(Artifact[] artifacts, DownloadOptions options) {
+        return _artifactResolver.download(artifacts, options);
     }
 
     public DependencyResolver getArtifactResolver() {

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/IBiblioResolver.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/IBiblioResolver.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/IBiblioResolver.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/IBiblioResolver.java Wed Jan 31 03:00:29 2007
@@ -24,18 +24,19 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.ivy.Ivy;
 import org.apache.ivy.core.IvyPatternHelper;
 import org.apache.ivy.core.module.descriptor.Artifact;
 import org.apache.ivy.core.module.descriptor.DefaultArtifact;
 import org.apache.ivy.core.module.descriptor.DependencyDescriptor;
 import org.apache.ivy.core.module.id.ModuleRevisionId;
 import org.apache.ivy.core.report.DownloadReport;
+import org.apache.ivy.core.resolve.DownloadOptions;
 import org.apache.ivy.core.resolve.ResolveData;
 import org.apache.ivy.core.resolve.ResolvedModuleRevision;
 import org.apache.ivy.core.search.ModuleEntry;
 import org.apache.ivy.core.search.OrganisationEntry;
 import org.apache.ivy.core.search.RevisionEntry;
+import org.apache.ivy.core.settings.IvySettings;
 import org.apache.ivy.plugins.resolver.util.ResolvedResource;
 
 
@@ -83,24 +84,24 @@
         }
     }
     
-    public void ensureConfigured(Ivy ivy) {
-        if (ivy != null && (_root == null || _pattern == null)) {
+    public void ensureConfigured(IvySettings settings) {
+        if (settings != null && (_root == null || _pattern == null)) {
             if (_root == null) {
-                String root = ivy.getVariable("ivy.ibiblio.default.artifact.root");
+                String root = settings.getVariable("ivy.ibiblio.default.artifact.root");
                 if (root != null) {
                     _root = root;
                 } else {
-                    ivy.configureRepositories(true);
-                    _root = ivy.getVariable("ivy.ibiblio.default.artifact.root");
+                    settings.configureRepositories(true);
+                    _root = settings.getVariable("ivy.ibiblio.default.artifact.root");
                 }
             }
             if (_pattern == null) {
-                String pattern = ivy.getVariable("ivy.ibiblio.default.artifact.pattern");
+                String pattern = settings.getVariable("ivy.ibiblio.default.artifact.pattern");
                 if (pattern != null) {
                     _pattern = pattern;
                 } else {
-                    ivy.configureRepositories(false);
-                    _pattern = ivy.getVariable("ivy.ibiblio.default.artifact.pattern");
+                    settings.configureRepositories(false);
+                    _pattern = settings.getVariable("ivy.ibiblio.default.artifact.pattern");
                 }
             }
             updateWholePattern();
@@ -118,7 +119,7 @@
             throw new NullPointerException("pattern must not be null");
         }
         _pattern = pattern;
-        ensureConfigured(getIvy());
+        ensureConfigured(getSettings());
         updateWholePattern();
     }
     public String getRoot() {
@@ -139,7 +140,7 @@
         } else {
             _root = root;
         }
-        ensureConfigured(getIvy());
+        ensureConfigured(getSettings());
         updateWholePattern();
     }
     
@@ -160,7 +161,7 @@
     	if (IvyPatternHelper.MODULE_KEY.equals(token) && !isM2compatible()) {
     		return new String[0];
     	}
-        ensureConfigured(getIvy());
+        ensureConfigured(getSettings());
     	return super.listTokenValues(token, otherTokenValues);
     }
     public OrganisationEntry[] listOrganisations() {
@@ -168,13 +169,13 @@
     }
     public ModuleEntry[] listModules(OrganisationEntry org) {
     	if (isM2compatible()) {
-            ensureConfigured(getIvy());
+            ensureConfigured(getSettings());
             return super.listModules(org);
     	}
         return new ModuleEntry[0];
     }    
     public RevisionEntry[] listRevisions(ModuleEntry mod) {
-        ensureConfigured(getIvy());
+        ensureConfigured(getSettings());
         return super.listRevisions(mod);
     }
     public String getTypeName() {
@@ -183,25 +184,25 @@
 
     // override some methods to ensure configuration    
     public ResolvedModuleRevision getDependency(DependencyDescriptor dd, ResolveData data) throws ParseException {
-        ensureConfigured(data.getIvy());
+        ensureConfigured(data.getSettings());
         return super.getDependency(dd, data);
     }
     
     protected ResolvedResource findArtifactRef(Artifact artifact, Date date) {
-        ensureConfigured(getIvy());
+        ensureConfigured(getSettings());
         return super.findArtifactRef(artifact, date);
     }
     
-    public DownloadReport download(Artifact[] artifacts, Ivy ivy, File cache, boolean useOrigin) {
-        ensureConfigured(ivy);
-        return super.download(artifacts, ivy, cache, useOrigin);
+    public DownloadReport download(Artifact[] artifacts, DownloadOptions options) {
+        ensureConfigured(options.getSettings());
+        return super.download(artifacts, options);
     }
     public boolean exists(Artifact artifact) {
-        ensureConfigured(getIvy());
+        ensureConfigured(getSettings());
         return super.exists(artifact);
     }
     public List getArtifactPatterns() {
-        ensureConfigured(getIvy());
+        ensureConfigured(getSettings());
         return super.getArtifactPatterns();
     }
 

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/IvyRepResolver.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/IvyRepResolver.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/IvyRepResolver.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/IvyRepResolver.java Wed Jan 31 03:00:29 2007
@@ -30,16 +30,17 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.ivy.Ivy;
 import org.apache.ivy.core.IvyPatternHelper;
 import org.apache.ivy.core.module.descriptor.Artifact;
 import org.apache.ivy.core.module.descriptor.DependencyDescriptor;
 import org.apache.ivy.core.report.DownloadReport;
+import org.apache.ivy.core.resolve.DownloadOptions;
 import org.apache.ivy.core.resolve.ResolveData;
 import org.apache.ivy.core.resolve.ResolvedModuleRevision;
 import org.apache.ivy.core.search.ModuleEntry;
 import org.apache.ivy.core.search.OrganisationEntry;
 import org.apache.ivy.core.search.RevisionEntry;
+import org.apache.ivy.core.settings.IvySettings;
 import org.apache.ivy.plugins.resolver.util.ResolvedResource;
 import org.apache.ivy.util.Message;
 import org.apache.ivy.util.XMLHelper;
@@ -65,48 +66,48 @@
     public IvyRepResolver() {
     }
 
-    private void ensureArtifactConfigured(Ivy ivy) {
-        if (ivy != null && (_artroot == null || _artpattern == null)) {
+    private void ensureArtifactConfigured(IvySettings settings) {
+        if (settings != null && (_artroot == null || _artpattern == null)) {
             if (_artroot == null) {
-                String root = ivy.getVariable("ivy.ivyrep.default.artifact.root");
+                String root = settings.getVariable("ivy.ivyrep.default.artifact.root");
                 if (root != null) {
                     _artroot = root;
                 } else {
-                    ivy.configureRepositories(true);
-                    _artroot = ivy.getVariable("ivy.ivyrep.default.artifact.root");
+                    settings.configureRepositories(true);
+                    _artroot = settings.getVariable("ivy.ivyrep.default.artifact.root");
                 }
             }
             if (_artpattern == null) {
-                String pattern = ivy.getVariable("ivy.ivyrep.default.artifact.pattern");
+                String pattern = settings.getVariable("ivy.ivyrep.default.artifact.pattern");
                 if (pattern != null) {
                     _artpattern = pattern;
                 } else {
-                    ivy.configureRepositories(false);
-                    _artpattern = ivy.getVariable("ivy.ivyrep.default.artifact.pattern");
+                    settings.configureRepositories(false);
+                    _artpattern = settings.getVariable("ivy.ivyrep.default.artifact.pattern");
                 }
             }
             updateWholeArtPattern();
         }
     }
 
-    private void ensureIvyConfigured(Ivy ivy) {
-        if (ivy != null && (_ivyroot == null || _ivypattern == null)) {
+    private void ensureIvyConfigured(IvySettings settings) {
+        if (settings != null && (_ivyroot == null || _ivypattern == null)) {
             if (_ivyroot == null) {
-                String root = ivy.getVariable("ivy.ivyrep.default.ivy.root");
+                String root = settings.getVariable("ivy.ivyrep.default.ivy.root");
                 if (root != null) {
                     _ivyroot = root;
                 } else {
-                    ivy.configureRepositories(true);
-                    _ivyroot = ivy.getVariable("ivy.ivyrep.default.ivy.root");
+                    settings.configureRepositories(true);
+                    _ivyroot = settings.getVariable("ivy.ivyrep.default.ivy.root");
                 }
             }
             if (_ivypattern == null) {
-                String pattern = ivy.getVariable("ivy.ivyrep.default.ivy.pattern");
+                String pattern = settings.getVariable("ivy.ivyrep.default.ivy.pattern");
                 if (pattern != null) {
                     _ivypattern = pattern;
                 } else {
-                    ivy.configureRepositories(false);
-                    _ivypattern = ivy.getVariable("ivy.ivyrep.default.ivy.pattern");
+                    settings.configureRepositories(false);
+                    _ivypattern = settings.getVariable("ivy.ivyrep.default.ivy.pattern");
                 }
             }
             updateWholeIvyPattern();
@@ -130,7 +131,7 @@
             throw new NullPointerException("pattern must not be null");
         }
         _ivypattern = pattern;
-        ensureIvyConfigured(getIvy());
+        ensureIvyConfigured(getSettings());
         updateWholeIvyPattern();
     }
     public String getIvyroot() {
@@ -151,7 +152,7 @@
         } else {
             _ivyroot = root;
         }
-        ensureIvyConfigured(getIvy());
+        ensureIvyConfigured(getSettings());
         updateWholeIvyPattern();
     }
     
@@ -186,7 +187,7 @@
             throw new NullPointerException("pattern must not be null");
         }
         _artpattern = pattern;
-        ensureArtifactConfigured(getIvy());
+        ensureArtifactConfigured(getSettings());
         updateWholeArtPattern();
     }
     
@@ -199,12 +200,12 @@
         } else {
             _artroot = root;
         }
-        ensureArtifactConfigured(getIvy());
+        ensureArtifactConfigured(getSettings());
         updateWholeArtPattern();
     }
     
     public OrganisationEntry[] listOrganisations() {
-        ensureIvyConfigured(getIvy());
+        ensureIvyConfigured(getSettings());
         try {
             URL content = new URL(_ivyroot + "content.xml");
             final List ret = new ArrayList();
@@ -228,7 +229,7 @@
 
     // overwrite parent to use only ivy patterns (and not artifact ones, cause ibiblio is too slow to answer)
     public ModuleEntry[] listModules(OrganisationEntry org) {
-        ensureIvyConfigured(getIvy());
+        ensureIvyConfigured(getSettings());
         Map tokenValues = new HashMap();
         tokenValues.put(IvyPatternHelper.ORGANISATION_KEY, org.getOrganisation());
         Collection names = findIvyNames(tokenValues, IvyPatternHelper.MODULE_KEY);
@@ -242,8 +243,8 @@
     }
     
     public RevisionEntry[] listRevisions(ModuleEntry mod) {
-        ensureIvyConfigured(getIvy());
-        ensureArtifactConfigured(getIvy());
+        ensureIvyConfigured(getSettings());
+        ensureArtifactConfigured(getSettings());
         return super.listRevisions(mod);
     }
 
@@ -253,29 +254,29 @@
     
     // override some methods to ensure configuration    
     public ResolvedModuleRevision getDependency(DependencyDescriptor dd, ResolveData data) throws ParseException {
-        ensureIvyConfigured(data.getIvy());
+        ensureIvyConfigured(data.getSettings());
         return super.getDependency(dd, data);
     }
     
     protected ResolvedResource findArtifactRef(Artifact artifact, Date date) {
-        ensureArtifactConfigured(getIvy());
+        ensureArtifactConfigured(getSettings());
         return super.findArtifactRef(artifact, date);
     }
     
-    public DownloadReport download(Artifact[] artifacts, Ivy ivy, File cache, boolean useOrigin) {
-        ensureArtifactConfigured(ivy);
-        return super.download(artifacts, ivy, cache, useOrigin);
+    public DownloadReport download(Artifact[] artifacts, DownloadOptions options) {
+        ensureArtifactConfigured(options.getSettings());
+        return super.download(artifacts, options);
     }
     public boolean exists(Artifact artifact) {
-        ensureArtifactConfigured(getIvy());
+        ensureArtifactConfigured(getSettings());
         return super.exists(artifact);
     }
     public List getIvyPatterns() {
-        ensureIvyConfigured(getIvy());
+        ensureIvyConfigured(getSettings());
         return super.getIvyPatterns();
     }
     public List getArtifactPatterns() {
-        ensureArtifactConfigured(getIvy());
+        ensureArtifactConfigured(getSettings());
         return super.getArtifactPatterns();
     }
 }

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/RepositoryResolver.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/RepositoryResolver.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/RepositoryResolver.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/RepositoryResolver.java Wed Jan 31 03:00:29 2007
@@ -27,13 +27,15 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.ivy.Ivy;
 import org.apache.ivy.core.IvyPatternHelper;
+import org.apache.ivy.core.event.EventManager;
 import org.apache.ivy.core.module.descriptor.Artifact;
 import org.apache.ivy.core.module.descriptor.DefaultArtifact;
 import org.apache.ivy.core.module.descriptor.ModuleDescriptor;
 import org.apache.ivy.core.module.id.ModuleRevisionId;
 import org.apache.ivy.core.report.DownloadReport;
+import org.apache.ivy.core.resolve.DownloadOptions;
+import org.apache.ivy.core.settings.IvySettings;
 import org.apache.ivy.plugins.latest.LatestStrategy;
 import org.apache.ivy.plugins.repository.AbstractRepository;
 import org.apache.ivy.plugins.repository.Repository;
@@ -78,7 +80,7 @@
 
 
     protected ResolvedResource findResourceUsingPattern(ModuleRevisionId mrid, String pattern, Artifact artifact, ResourceMDParser rmdparser, Date date) {
-        return findResourceUsingPattern(getName(), getRepository(), getLatestStrategy(), getIvy().getVersionMatcher(), rmdparser, mrid, pattern, artifact, date, isAlwaysCheckExactRevision());
+        return findResourceUsingPattern(getName(), getRepository(), getLatestStrategy(), getSettings().getVersionMatcher(), rmdparser, mrid, pattern, artifact, date, isAlwaysCheckExactRevision());
     }
     
     public static ResolvedResource findResourceUsingPattern(String name, Repository repository, LatestStrategy strategy, VersionMatcher versionMatcher, ResourceMDParser rmdparser, ModuleRevisionId mrid, String pattern, Artifact artifact, Date date, boolean alwaysCheckExactRevision) {
@@ -211,15 +213,18 @@
 		}
 	}
     
-    public DownloadReport download(Artifact[] artifacts, Ivy ivy, File cache, boolean useOrigin) {
-        try {
-            _repository.addTransferListener(ivy);
-            return super.download(artifacts, ivy, cache, useOrigin);
-        } finally {
-            if (ivy != null) {
-                _repository.removeTransferListener(ivy);
-            }
-        }
+    public DownloadReport download(Artifact[] artifacts, DownloadOptions options) {
+    	EventManager eventManager = options.getEventManager();
+    	try {
+    		if (eventManager != null) {
+    			_repository.addTransferListener(eventManager);
+    		}
+    		return super.download(artifacts, options);
+    	} finally {
+    		if (eventManager != null) {
+    			_repository.removeTransferListener(eventManager);
+    		}
+    	}
     }    
 
     protected void findTokenValues(Collection names, List patterns, Map tokenValues, String token) {
@@ -241,11 +246,11 @@
         Message.debug("\t\trepository: "+getRepository());
     }
     
-    public void setIvy(Ivy ivy) {
-        super.setIvy(ivy);
-        if (ivy != null) {
+    public void setSettings(IvySettings settings) {
+        super.setSettings(settings);
+        if (settings != null) {
             if (_alwaysCheckExactRevision == null) {
-                _alwaysCheckExactRevision = Boolean.valueOf(ivy.getVariable("ivy.default.always.check.exact.revision"));
+                _alwaysCheckExactRevision = Boolean.valueOf(settings.getVariable("ivy.default.always.check.exact.revision"));
             }
         }
     }

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/util/ResolvedResource.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/util/ResolvedResource.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/util/ResolvedResource.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/util/ResolvedResource.java Wed Jan 31 03:00:29 2007
@@ -17,7 +17,6 @@
  */
 package org.apache.ivy.plugins.resolver.util;
 
-import org.apache.ivy.core.resolve.ResolvedModuleRevision;
 import org.apache.ivy.plugins.latest.ArtifactInfo;
 import org.apache.ivy.plugins.repository.Resource;
 

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/trigger/AbstractTrigger.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/trigger/AbstractTrigger.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/trigger/AbstractTrigger.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/trigger/AbstractTrigger.java Wed Jan 31 03:00:29 2007
@@ -56,7 +56,7 @@
 	}
 
 	private PatternMatcher getPatternMatcher() {
-		return IvyContext.getContext().getIvy().getMatcher(_matcher);
+		return IvyContext.getContext().getSettings().getMatcher(_matcher);
 	}
 
 	public String getEvent() {

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/AbstractVersionMatcher.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/AbstractVersionMatcher.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/AbstractVersionMatcher.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/AbstractVersionMatcher.java Wed Jan 31 03:00:29 2007
@@ -17,14 +17,14 @@
  */
 package org.apache.ivy.plugins.version;
 
-import org.apache.ivy.Ivy;
 import org.apache.ivy.core.module.descriptor.ModuleDescriptor;
 import org.apache.ivy.core.module.id.ModuleRevisionId;
-import org.apache.ivy.plugins.IvyAware;
+import org.apache.ivy.core.settings.IvySettings;
+import org.apache.ivy.plugins.IvySettingsAware;
 
-public abstract class AbstractVersionMatcher implements VersionMatcher, IvyAware {
+public abstract class AbstractVersionMatcher implements VersionMatcher, IvySettingsAware {
 	private String _name;
-	private Ivy _ivy;
+	private IvySettings _settings;
 	
 	public AbstractVersionMatcher() {
 	}
@@ -54,12 +54,12 @@
     	return getName();
     }
 
-	public Ivy getIvy() {
-		return _ivy;
+	public IvySettings getSettings() {
+		return _settings;
 	}
 
-	public void setIvy(Ivy ivy) {
-		_ivy = ivy;
+	public void setSettings(IvySettings ivy) {
+		_settings = ivy;
 	}
 
 }

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/ChainVersionMatcher.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/ChainVersionMatcher.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/ChainVersionMatcher.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/ChainVersionMatcher.java Wed Jan 31 03:00:29 2007
@@ -22,10 +22,10 @@
 import java.util.LinkedList;
 import java.util.List;
 
-import org.apache.ivy.Ivy;
 import org.apache.ivy.core.module.descriptor.ModuleDescriptor;
 import org.apache.ivy.core.module.id.ModuleRevisionId;
-import org.apache.ivy.plugins.IvyAware;
+import org.apache.ivy.core.settings.IvySettings;
+import org.apache.ivy.plugins.IvySettingsAware;
 
 
 public class ChainVersionMatcher extends AbstractVersionMatcher {
@@ -37,17 +37,17 @@
     
     public void add(VersionMatcher matcher) {
         _matchers.add(0, matcher);
-		if (getIvy() != null && matcher instanceof IvyAware) {
-			((IvyAware) matcher).setIvy(getIvy());
+		if (getSettings() != null && matcher instanceof IvySettingsAware) {
+			((IvySettingsAware) matcher).setSettings(getSettings());
 		}
     }
     
-    public void setIvy(Ivy ivy) {
-    	super.setIvy(ivy);
+    public void setSettings(IvySettings settings) {
+    	super.setSettings(settings);
     	for (Iterator iter = _matchers.iterator(); iter.hasNext();) {
 			VersionMatcher matcher = (VersionMatcher) iter.next();
-			if (matcher instanceof IvyAware) {
-				((IvyAware) matcher).setIvy(ivy);
+			if (matcher instanceof IvySettingsAware) {
+				((IvySettingsAware) matcher).setSettings(settings);
 			}
 		}
     }

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/Match.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/Match.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/Match.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/Match.java Wed Jan 31 03:00:29 2007
@@ -23,7 +23,7 @@
 import java.util.Map;
 import java.util.StringTokenizer;
 
-import org.apache.ivy.Ivy;
+import org.apache.ivy.core.IvyContext;
 import org.apache.ivy.core.IvyPatternHelper;
 import org.apache.ivy.core.module.id.ModuleRevisionId;
 import org.apache.ivy.plugins.matcher.Matcher;
@@ -91,7 +91,7 @@
 		String pattern = getPattern();
 		pattern = IvyPatternHelper.substituteVariables(pattern, variables);
 		
-		PatternMatcher pMatcher = Ivy.getCurrent().getMatcher(_matcher);
+		PatternMatcher pMatcher = IvyContext.getContext().getSettings().getMatcher(_matcher);
 		return pMatcher.getMatcher(pattern);
 	}
 	

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/PatternVersionMatcher.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/PatternVersionMatcher.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/PatternVersionMatcher.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/PatternVersionMatcher.java Wed Jan 31 03:00:29 2007
@@ -25,7 +25,6 @@
 
 import org.apache.ivy.core.module.id.ModuleRevisionId;
 import org.apache.ivy.plugins.matcher.Matcher;
-import org.apache.ivy.plugins.version.AbstractVersionMatcher;
 
 
 /**

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/VersionRangeMatcher.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/VersionRangeMatcher.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/VersionRangeMatcher.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/VersionRangeMatcher.java Wed Jan 31 03:00:29 2007
@@ -21,9 +21,7 @@
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.ivy.Ivy;
 import org.apache.ivy.core.module.id.ModuleRevisionId;
-import org.apache.ivy.plugins.IvyAware;
 import org.apache.ivy.plugins.latest.ArtifactInfo;
 import org.apache.ivy.plugins.latest.LatestStrategy;
 
@@ -50,7 +48,7 @@
  * @author xavier hanin
  *
  */
-public class VersionRangeMatcher   extends AbstractVersionMatcher implements IvyAware {
+public class VersionRangeMatcher   extends AbstractVersionMatcher {
 	// todo: check these constants
 	private final static String OPEN_INC = "[";
 	private final static String OPEN_EXC = "]";
@@ -128,11 +126,6 @@
 		_latestStrategy = strategy;
 	}
 
-	public VersionRangeMatcher(String name, Ivy ivy) {
-		super(name);
-		setIvy(ivy);
-	}
-
 	public boolean isDynamic(ModuleRevisionId askedMrid) {
 		return ALL_RANGE.matcher(askedMrid.getRevision()).matches();
 	}
@@ -170,13 +163,13 @@
 
 	public LatestStrategy getLatestStrategy() {
 		if (_latestStrategy == null) {
-			if (getIvy() == null) {
+			if (getSettings() == null) {
 				throw new IllegalStateException("no ivy instance nor latest strategy configured in version range matcher "+this);
 			}
 			if (_latestStrategyName == null) {
 				throw new IllegalStateException("null latest strategy defined in version range matcher "+this);
 			}
-			_latestStrategy = getIvy().getLatestStrategy(_latestStrategyName);
+			_latestStrategy = getSettings().getLatestStrategy(_latestStrategyName);
 			if (_latestStrategy == null) {
 				throw new IllegalStateException("unknown latest strategy '"+_latestStrategyName+"' configured in version range matcher "+this);
 			}

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/util/FileUtil.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/util/FileUtil.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/util/FileUtil.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/util/FileUtil.java Wed Jan 31 03:00:29 2007
@@ -24,9 +24,9 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.io.OutputStream;
 import java.io.PrintWriter;
 import java.io.StringWriter;
-import java.io.OutputStream;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collection;

Added: incubator/ivy/core/trunk/src/java/org/apache/ivy/util/HostUtil.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/util/HostUtil.java?view=auto&rev=501796
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/util/HostUtil.java (added)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/util/HostUtil.java Wed Jan 31 03:00:29 2007
@@ -0,0 +1,14 @@
+package org.apache.ivy.util;
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
+public class HostUtil {
+    public static String getLocalHostName() {
+        try {
+            return InetAddress.getLocalHost().getHostName();
+        } catch (UnknownHostException e) {
+            return "localhost";
+        }
+    }
+}

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/util/StringUtils.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/util/StringUtils.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/util/StringUtils.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/util/StringUtils.java Wed Jan 31 03:00:29 2007
@@ -17,9 +17,6 @@
  */
 package org.apache.ivy.util;
 
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
 
 /**
  * Convenient class used only for uncapitalization

Added: incubator/ivy/core/trunk/test/java/org/apache/ivy/TestHelper.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache/ivy/TestHelper.java?view=auto&rev=501796
==============================================================================
--- incubator/ivy/core/trunk/test/java/org/apache/ivy/TestHelper.java (added)
+++ incubator/ivy/core/trunk/test/java/org/apache/ivy/TestHelper.java Wed Jan 31 03:00:29 2007
@@ -0,0 +1,20 @@
+package org.apache.ivy;
+
+import java.io.File;
+import java.util.Date;
+
+import org.apache.ivy.core.cache.CacheManager;
+import org.apache.ivy.core.module.descriptor.DefaultArtifact;
+import org.apache.ivy.core.module.id.ModuleRevisionId;
+
+public class TestHelper {
+
+	public static File getArchiveFileInCache(Ivy ivy, File cache, String organisation, String module, String revision, String artifact, String type, String ext) {
+		return getArchiveFileInCache(ivy.getCacheManager(cache), organisation, module, revision, artifact, type, ext);
+	}
+
+	public static File getArchiveFileInCache(CacheManager cacheManager, String organisation, String module, String revision, String artifact, String type, String ext) {
+		return cacheManager.getArchiveFileInCache(new DefaultArtifact(ModuleRevisionId.newInstance(organisation, module, revision), new Date(), artifact, type, ext));
+	}
+
+}

Modified: incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/AntBuildTriggerTest.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/AntBuildTriggerTest.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/AntBuildTriggerTest.java (original)
+++ incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/AntBuildTriggerTest.java Wed Jan 31 03:00:29 2007
@@ -19,11 +19,11 @@
 
 import java.io.File;
 
+import junit.framework.TestCase;
+
 import org.apache.ivy.Ivy;
 import org.apache.ivy.core.report.ResolveReport;
 import org.apache.ivy.util.FileUtil;
-
-import junit.framework.TestCase;
 
 public class AntBuildTriggerTest extends TestCase {
 	public void test() throws Exception {

Modified: incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyArtifactPropertyTest.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyArtifactPropertyTest.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyArtifactPropertyTest.java (original)
+++ incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyArtifactPropertyTest.java Wed Jan 31 03:00:29 2007
@@ -21,7 +21,6 @@
 
 import junit.framework.TestCase;
 
-import org.apache.ivy.ant.IvyArtifactProperty;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.taskdefs.Delete;
 

Modified: incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyBuildListTest.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyBuildListTest.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyBuildListTest.java (original)
+++ incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyBuildListTest.java Wed Jan 31 03:00:29 2007
@@ -17,14 +17,13 @@
  */
 package org.apache.ivy.ant;
 
+import java.io.File;
+
 import junit.framework.TestCase;
 
-import org.apache.ivy.ant.IvyBuildList;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.types.FileSet;
 import org.apache.tools.ant.types.Path;
-
-import java.io.File;
 
 public class IvyBuildListTest extends TestCase {
 

Modified: incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyBuildNumberTest.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyBuildNumberTest.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyBuildNumberTest.java (original)
+++ incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyBuildNumberTest.java Wed Jan 31 03:00:29 2007
@@ -21,7 +21,6 @@
 
 import junit.framework.TestCase;
 
-import org.apache.ivy.ant.IvyBuildNumber;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.taskdefs.Delete;
 

Modified: incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyCacheFilesetTest.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyCacheFilesetTest.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyCacheFilesetTest.java (original)
+++ incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyCacheFilesetTest.java Wed Jan 31 03:00:29 2007
@@ -21,7 +21,7 @@
 
 import junit.framework.TestCase;
 
-import org.apache.ivy.ant.IvyCacheFileset;
+import org.apache.ivy.TestHelper;
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.DirectoryScanner;
 import org.apache.tools.ant.Project;
@@ -69,11 +69,16 @@
         FileSet fs = (FileSet)ref;
         DirectoryScanner directoryScanner = fs.getDirectoryScanner(_project);
         assertEquals(1, directoryScanner.getIncludedFiles().length);
-        assertEquals(_fileset.getIvyInstance().getArchiveFileInCache(_cache, "org1", "mod1.2", "2.0", "mod1.2", "jar", "jar").getAbsolutePath(),
+        assertEquals(getArchiveFileInCache("org1", "mod1.2", "2.0", "mod1.2", "jar", "jar").getAbsolutePath(),
                 new File("build/cache/"+directoryScanner.getIncludedFiles()[0]).getAbsolutePath());
     }
+    
+    private File getArchiveFileInCache(String organisation, String module, String revision, String artifact, String type, String ext) {
+		return TestHelper.getArchiveFileInCache(_fileset.getIvyInstance(), _cache, 
+				organisation, module, revision, artifact, type, ext);
+	}
 
-    public void testEmptyConf() throws Exception {
+	public void testEmptyConf() throws Exception {
         _project.setProperty("ivy.dep.file", "test/java/org/apache/ivy/ant/ivy-108.xml");
         _fileset.setSetid("emptyconf-setid");
         _fileset.setConf("empty");

Modified: incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyCachePathTest.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyCachePathTest.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyCachePathTest.java (original)
+++ incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyCachePathTest.java Wed Jan 31 03:00:29 2007
@@ -21,8 +21,7 @@
 
 import junit.framework.TestCase;
 
-import org.apache.ivy.ant.IvyCachePath;
-import org.apache.ivy.ant.IvyResolve;
+import org.apache.ivy.TestHelper;
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.taskdefs.Delete;
@@ -68,18 +67,18 @@
         assertTrue(ref instanceof Path);
         Path p = (Path)ref;
         assertEquals(1, p.size());
-        assertEquals(_path.getIvyInstance().getArchiveFileInCache(_cache, "org1", "mod1.2", "2.0", "mod1.2", "jar", "jar").getAbsolutePath(),
+        assertEquals(getArchiveFileInCache("org1", "mod1.2", "2.0", "mod1.2", "jar", "jar").getAbsolutePath(),
                 new File(p.list()[0]).getAbsolutePath());
     }
 
-    public void testInline1() throws Exception {
+	public void testInline1() throws Exception {
     	// we first resolve another ivy file
     	IvyResolve resolve = new IvyResolve();
     	resolve.setProject(_project);
     	resolve.setFile(new File("test/java/org/apache/ivy/ant/ivy-latest.xml"));
     	resolve.execute();
     	
-    	assertTrue(_path.getIvyInstance().getArchiveFileInCache(_cache, "org1", "mod1.2", "2.2", "mod1.2", "jar", "jar").exists());
+    	assertTrue(getArchiveFileInCache("org1", "mod1.2", "2.2", "mod1.2", "jar", "jar").exists());
     	
     	// then we resolve a dependency directly
     	_path.setOrganisation("org1");
@@ -93,7 +92,7 @@
         assertTrue(ref instanceof Path);
         Path p = (Path)ref;
         assertEquals(1, p.size());
-        assertEquals(_path.getIvyInstance().getArchiveFileInCache(_cache, "org1", "mod1.2", "2.0", "mod1.2", "jar", "jar").getAbsolutePath(),
+        assertEquals(getArchiveFileInCache("org1", "mod1.2", "2.0", "mod1.2", "jar", "jar").getAbsolutePath(),
                 new File(p.list()[0]).getAbsolutePath());
     }
 
@@ -110,7 +109,7 @@
         assertTrue(ref instanceof Path);
         Path p = (Path)ref;
         assertEquals(1, p.size());
-        assertEquals(_path.getIvyInstance().getArchiveFileInCache(_cache, "org1", "mod1.2", "2.0", "mod1.2", "jar", "jar").getAbsolutePath(),
+        assertEquals(getArchiveFileInCache("org1", "mod1.2", "2.0", "mod1.2", "jar", "jar").getAbsolutePath(),
                 new File(p.list()[0]).getAbsolutePath());
 
         // we then resolve another ivy file
@@ -119,7 +118,7 @@
     	resolve.setFile(new File("test/java/org/apache/ivy/ant/ivy-latest.xml"));
     	resolve.execute();
     	
-    	assertTrue(_path.getIvyInstance().getArchiveFileInCache(_cache, "org1", "mod1.2", "2.2", "mod1.2", "jar", "jar").exists());
+    	assertTrue(getArchiveFileInCache("org1", "mod1.2", "2.2", "mod1.2", "jar", "jar").exists());
     }
 
 
@@ -156,4 +155,9 @@
             fail("failure raised an exception with haltonfailure set to false");
         }
     }
+
+    private File getArchiveFileInCache(String organisation, String module, String revision, String artifact, String type, String ext) {
+		return TestHelper.getArchiveFileInCache(_path.getIvyInstance(), _cache, 
+				organisation, module, revision, artifact, type, ext);
+	}
 }

Modified: incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyConfigureTest.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyConfigureTest.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyConfigureTest.java (original)
+++ incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyConfigureTest.java Wed Jan 31 03:00:29 2007
@@ -22,7 +22,7 @@
 import junit.framework.TestCase;
 
 import org.apache.ivy.Ivy;
-import org.apache.ivy.ant.IvyConfigure;
+import org.apache.ivy.core.settings.IvySettings;
 import org.apache.tools.ant.Project;
 
 
@@ -45,12 +45,14 @@
         
         Ivy ivy = getIvyInstance();
         assertNotNull(ivy);
+		IvySettings settings = ivy.getSettings();
+        assertNotNull(settings);
         
-        assertEquals(new File("build/cache"), ivy.getDefaultCache());
-        assertEquals(new File("test/repositories/ivyconf.xml").getAbsolutePath(), ivy.getVariables().get("ivy.conf.file"));
-        assertEquals(new File("test/repositories/ivyconf.xml").toURL().toExternalForm(), ivy.getVariables().get("ivy.conf.url"));
-        assertEquals(new File("test/repositories").getAbsolutePath(), ivy.getVariables().get("ivy.conf.dir"));
-        assertEquals("myvalue", ivy.getVariables().get("myproperty"));
+        assertEquals(new File("build/cache"), settings.getDefaultCache());
+        assertEquals(new File("test/repositories/ivyconf.xml").getAbsolutePath(), settings.getVariables().get("ivy.conf.file"));
+        assertEquals(new File("test/repositories/ivyconf.xml").toURL().toExternalForm(), settings.getVariables().get("ivy.conf.url"));
+        assertEquals(new File("test/repositories").getAbsolutePath(), settings.getVariables().get("ivy.conf.dir"));
+        assertEquals("myvalue", settings.getVariables().get("myproperty"));
     }
 
     public void testURL() throws Exception {
@@ -63,13 +65,12 @@
         
         _configure.execute();
         
-        Ivy ivy = getIvyInstance();
-        assertNotNull(ivy);
+        IvySettings settings = getIvyInstance().getSettings();
         
-        assertEquals(new File("build/cache"), ivy.getDefaultCache());
-        assertEquals(confUrl, ivy.getVariables().get("ivy.conf.url"));
-        assertEquals(confDirUrl, ivy.getVariables().get("ivy.conf.dir"));
-        assertEquals("myvalue", ivy.getVariables().get("myproperty"));
+        assertEquals(new File("build/cache"), settings.getDefaultCache());
+        assertEquals(confUrl, settings.getVariables().get("ivy.conf.url"));
+        assertEquals(confDirUrl, settings.getVariables().get("ivy.conf.dir"));
+        assertEquals("myvalue", settings.getVariables().get("myproperty"));
     }
 
     public void testAntProperties() throws Exception {
@@ -78,11 +79,11 @@
         
         _configure.execute();
         
-        Ivy ivy = getIvyInstance();
-        assertNotNull(ivy);
+        IvySettings settings = getIvyInstance().getSettings();
+        assertNotNull(settings);
         
-        assertEquals("myvalue", ivy.getVariables().get("myproperty"));
-        assertEquals("myvalue", ivy.getDefaultCache().getName());
+        assertEquals("myvalue", settings.getVariables().get("myproperty"));
+        assertEquals("myvalue", settings.getDefaultCache().getName());
     }
 
     public void testOverrideVariables() throws Exception {
@@ -91,10 +92,10 @@
         
         _configure.execute();
         
-        Ivy ivy = getIvyInstance();
-        assertNotNull(ivy);
+        IvySettings settings = getIvyInstance().getSettings();
+        assertNotNull(settings);
         
-        assertEquals("lib/test/[artifact]-[revision].[ext]", ivy.getVariables().get("ivy.retrieve.pattern"));
+        assertEquals("lib/test/[artifact]-[revision].[ext]", settings.getVariables().get("ivy.retrieve.pattern"));
     }
 
     private Ivy getIvyInstance() {

Modified: incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyConvertPomTest.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyConvertPomTest.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyConvertPomTest.java (original)
+++ incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyConvertPomTest.java Wed Jan 31 03:00:29 2007
@@ -25,7 +25,6 @@
 
 import junit.framework.TestCase;
 
-import org.apache.ivy.ant.IvyConvertPom;
 import org.apache.ivy.util.FileUtil;
 import org.apache.tools.ant.Project;
 

Modified: incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyDeliverTest.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyDeliverTest.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyDeliverTest.java (original)
+++ incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyDeliverTest.java Wed Jan 31 03:00:29 2007
@@ -23,12 +23,10 @@
 
 import junit.framework.TestCase;
 
-import org.apache.ivy.Ivy;
-import org.apache.ivy.ant.IvyDeliver;
-import org.apache.ivy.ant.IvyResolve;
 import org.apache.ivy.core.module.descriptor.DependencyDescriptor;
 import org.apache.ivy.core.module.descriptor.ModuleDescriptor;
 import org.apache.ivy.core.module.id.ModuleRevisionId;
+import org.apache.ivy.core.settings.IvySettings;
 import org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser;
 import org.apache.ivy.util.FileUtil;
 import org.apache.tools.ant.Project;
@@ -98,7 +96,7 @@
         // should have done the ivy delivering
         File deliveredIvyFile = new File("build/test/deliver/ivy-1.2.xml");
         assertTrue(deliveredIvyFile.exists()); 
-        ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(new Ivy(), deliveredIvyFile.toURL(), true);
+        ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(new IvySettings(), deliveredIvyFile.toURL(), true);
         assertEquals(ModuleRevisionId.newInstance("apache", "resolve-latest", "1.2"), md.getModuleRevisionId());
         DependencyDescriptor[] dds = md.getDependencies();
         assertEquals(1, dds.length);
@@ -129,7 +127,7 @@
         res.setProject(_project);
         res.execute();
         
-        res.getIvyInstance().setVariable("myvar", "myvalue");
+        res.getIvyInstance().getSettings().setVariable("myvar", "myvalue");
         
         _deliver.setPubrevision("1.2");
         _deliver.setDeliverpattern("build/test/deliver/ivy-[revision].xml");
@@ -157,7 +155,7 @@
         // should have done the ivy delivering
         File deliveredIvyFile = new File("build/test/deliver/ivy-1.2.xml");
         assertTrue(deliveredIvyFile.exists()); 
-        ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(new Ivy(), deliveredIvyFile.toURL(), true);
+        ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(new IvySettings(), deliveredIvyFile.toURL(), true);
         assertEquals(ModuleRevisionId.newInstance("apache", "resolve-latest", "1.2"), md.getModuleRevisionId());
         DependencyDescriptor[] dds = md.getDependencies();
         assertEquals(1, dds.length);
@@ -177,7 +175,7 @@
         // should have done the ivy delivering
         File deliveredIvyFile = new File("build/test/deliver/ivy-1.2.xml");
         assertTrue(deliveredIvyFile.exists()); 
-        ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(new Ivy(), deliveredIvyFile.toURL(), true);
+        ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(new IvySettings(), deliveredIvyFile.toURL(), true);
         assertEquals(ModuleRevisionId.newInstance("apache", "different-revs", "1.2"), md.getModuleRevisionId());
         DependencyDescriptor[] dds = md.getDependencies();
         assertEquals(3, dds.length);

Modified: incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyFindRevisionTest.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyFindRevisionTest.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyFindRevisionTest.java (original)
+++ incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyFindRevisionTest.java Wed Jan 31 03:00:29 2007
@@ -21,7 +21,6 @@
 
 import junit.framework.TestCase;
 
-import org.apache.ivy.ant.IvyFindRevision;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.taskdefs.Delete;
 

Modified: incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyListModulesTest.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyListModulesTest.java?view=diff&rev=501796&r1=501795&r2=501796
==============================================================================
--- incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyListModulesTest.java (original)
+++ incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyListModulesTest.java Wed Jan 31 03:00:29 2007
@@ -21,7 +21,6 @@
 
 import junit.framework.TestCase;
 
-import org.apache.ivy.ant.IvyListModules;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.taskdefs.Delete;