mirror of https://github.com/apache/ant-ivy
IVY-1618 Don't change the dependency resolver configure on Ivy settings when setting the one on ResolveEngine
This commit is contained in:
parent
a4ab62a717
commit
370e52b74a
|
|
@ -165,7 +165,13 @@ public class IvyNode implements Comparable<IvyNode> {
|
|||
} else {
|
||||
markRootModuleConfLoaded(rootModuleConf);
|
||||
if (md == null) {
|
||||
DependencyResolver resolver = data.getSettings().getResolver(getId());
|
||||
ResolveEngine engine = IvyContext.getContext().getIvy().getResolveEngine();
|
||||
// get the resolver configured on the engine and if none is configured then
|
||||
// get the one configured in ivy settings
|
||||
DependencyResolver resolver = engine.getDictatorResolver();
|
||||
if (resolver == null) {
|
||||
resolver = data.getSettings().getResolver(getId());
|
||||
}
|
||||
if (resolver == null) {
|
||||
Message.error("no resolver found for " + getModuleId()
|
||||
+ ": check your configuration");
|
||||
|
|
|
|||
|
|
@ -126,7 +126,6 @@ public class ResolveEngine {
|
|||
*/
|
||||
public void setDictatorResolver(DependencyResolver dictatorResolver) {
|
||||
this.dictatorResolver = dictatorResolver;
|
||||
settings.setDictatorResolver(dictatorResolver);
|
||||
}
|
||||
|
||||
public ResolveReport resolve(File ivySource) throws ParseException, IOException {
|
||||
|
|
|
|||
|
|
@ -28,9 +28,11 @@ import org.apache.ivy.core.module.id.ModuleRevisionId;
|
|||
import org.apache.ivy.core.report.ArtifactDownloadReport;
|
||||
import org.apache.ivy.core.report.DownloadStatus;
|
||||
import org.apache.ivy.core.report.ResolveReport;
|
||||
import org.apache.ivy.plugins.resolver.FileSystemResolver;
|
||||
import org.apache.ivy.util.CacheCleaner;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
|
|
@ -87,6 +89,34 @@ public class ResolveEngineTest {
|
|||
"jar", "jar"), new File("test/repositories/1/org1/mod1.1/jars/mod1.1-1.0.jar"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that setting the dictator resolver on the resolve engine doesn't change the
|
||||
* dependency resolver set in the Ivy settings. See IVY-1618 for details.
|
||||
*/
|
||||
@Test
|
||||
public void testSetDictatorResolver() throws Exception {
|
||||
final Ivy current = Ivy.newInstance();
|
||||
current.configure(new File("test/repositories/ivysettings.xml"));
|
||||
final FileSystemResolver settingsResolver = new FileSystemResolver();
|
||||
settingsResolver.setName("resolver-1");
|
||||
current.getSettings().setDictatorResolver(settingsResolver);
|
||||
|
||||
final ResolveEngine engine = new ResolveEngine(current.getSettings(), current.getEventManager(),
|
||||
current.getSortEngine());
|
||||
final FileSystemResolver engineResolver = new FileSystemResolver();
|
||||
engineResolver.setName("resolver-2");
|
||||
engine.setDictatorResolver(engineResolver);
|
||||
|
||||
Assert.assertNotNull("Resolver is null on engine", engine.getDictatorResolver());
|
||||
Assert.assertSame("Unexpected resolver on engine", engineResolver, engine.getDictatorResolver());
|
||||
|
||||
final ModuleRevisionId dummy = ModuleRevisionId.newInstance("foo", "bar", "1.2.3");
|
||||
Assert.assertNotNull("Resolver is null on Ivy settings", current.getSettings().getResolver(dummy));
|
||||
Assert.assertSame("Unexpected resolver on Ivy settings", settingsResolver,
|
||||
current.getSettings().getResolver(dummy));
|
||||
|
||||
}
|
||||
|
||||
private void testLocateThenDownload(ResolveEngine engine, Artifact artifact, File artifactFile) {
|
||||
ArtifactOrigin origin = engine.locate(artifact);
|
||||
assertNotNull(origin);
|
||||
|
|
|
|||
Loading…
Reference in New Issue