|  | @@ -8,11 +8,13 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  package org.elasticsearch.gradle.jarhell;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import org.elasticsearch.gradle.VersionProperties;
 | 
	
		
			
				|  |  |  import org.elasticsearch.gradle.util.GradleUtils;
 | 
	
		
			
				|  |  |  import org.gradle.api.Plugin;
 | 
	
		
			
				|  |  |  import org.gradle.api.Project;
 | 
	
		
			
				|  |  |  import org.gradle.api.Task;
 | 
	
		
			
				|  |  |  import org.gradle.api.artifacts.Configuration;
 | 
	
		
			
				|  |  | +import org.gradle.api.artifacts.dsl.DependencyHandler;
 | 
	
		
			
				|  |  |  import org.gradle.api.tasks.SourceSet;
 | 
	
		
			
				|  |  |  import org.gradle.api.tasks.TaskProvider;
 | 
	
		
			
				|  |  |  import org.gradle.language.base.plugins.LifecycleBasePlugin;
 | 
	
	
		
			
				|  | @@ -21,7 +23,14 @@ public class JarHellPlugin implements Plugin<Project> {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public void apply(Project project) {
 | 
	
		
			
				|  |  | -        TaskProvider<? extends Task> jarHellTask = createTask(project);
 | 
	
		
			
				|  |  | +        Configuration jarHellConfig = project.getConfigurations().create("jarHell");
 | 
	
		
			
				|  |  | +        DependencyHandler dependencyHandler = project.getDependencies();
 | 
	
		
			
				|  |  | +        jarHellConfig.defaultDependencies(
 | 
	
		
			
				|  |  | +            deps -> deps.add(dependencyHandler.create("org.elasticsearch:elasticsearch-core:" + VersionProperties.getElasticsearch()))
 | 
	
		
			
				|  |  | +        );
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        TaskProvider<? extends Task> jarHellTask = createTask(jarHellConfig, project);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          project.getPluginManager()
 | 
	
		
			
				|  |  |              .withPlugin(
 | 
	
		
			
				|  |  |                  "lifecycle-base",
 | 
	
	
		
			
				|  | @@ -29,23 +38,18 @@ public class JarHellPlugin implements Plugin<Project> {
 | 
	
		
			
				|  |  |              );
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    private TaskProvider<? extends Task> createTask(Project project) {
 | 
	
		
			
				|  |  | -        Configuration jarHellConfig = project.getConfigurations().create("jarHell");
 | 
	
		
			
				|  |  | +    private TaskProvider<? extends Task> createTask(Configuration jarHellConfig, Project project) {
 | 
	
		
			
				|  |  |          TaskProvider<JarHellTask> jarHell = project.getTasks().register("jarHell", JarHellTask.class);
 | 
	
		
			
				|  |  | -        jarHell.configure(t -> {
 | 
	
		
			
				|  |  | -            SourceSet testSourceSet = getJavaTestSourceSet(project);
 | 
	
		
			
				|  |  | -            t.setClasspath(testSourceSet.getRuntimeClasspath());
 | 
	
		
			
				|  |  | -            t.setJarHellRuntimeClasspath(jarHellConfig);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        project.getPluginManager().withPlugin("java", p -> {
 | 
	
		
			
				|  |  | +            jarHell.configure(t -> {
 | 
	
		
			
				|  |  | +                SourceSet testSourceSet = GradleUtils.getJavaSourceSets(project).findByName(SourceSet.TEST_SOURCE_SET_NAME);
 | 
	
		
			
				|  |  | +                t.setClasspath(testSourceSet.getRuntimeClasspath());
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  | +        jarHell.configure(t -> { t.setJarHellRuntimeClasspath(jarHellConfig); });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          return jarHell;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    /**
 | 
	
		
			
				|  |  | -     * @param project The project to look for test Java resources.
 | 
	
		
			
				|  |  | -     */
 | 
	
		
			
				|  |  | -    private static SourceSet getJavaTestSourceSet(Project project) {
 | 
	
		
			
				|  |  | -        return GradleUtils.getJavaSourceSets(project).findByName(SourceSet.TEST_SOURCE_SET_NAME);
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  }
 |