protected BuildOperationExecutor createBuildOperationExecutor( ListenerManager listenerManager, TimeProvider timeProvider, ProgressLoggerFactory progressLoggerFactory) { return new DefaultBuildOperationExecutor( listenerManager.getBroadcaster(InternalBuildListener.class), timeProvider, progressLoggerFactory); }
protected ScriptCompilerFactory createScriptCompileFactory( ListenerManager listenerManager, FileCacheBackedScriptClassCompiler scriptCompiler, CrossBuildInMemoryCachingScriptClassCache cache) { ScriptExecutionListener scriptExecutionListener = listenerManager.getBroadcaster(ScriptExecutionListener.class); return new DefaultScriptCompilerFactory( new BuildScopeInMemoryCachingScriptClassCompiler(cache, scriptCompiler), new DefaultScriptRunnerFactory(scriptExecutionListener, DirectInstantiator.INSTANCE)); }
TaskExecuter createTaskExecuter( TaskArtifactStateRepository repository, ListenerManager listenerManager, Gradle gradle) { // TODO - need a more comprehensible way to only collect inputs for the outer build // - we are trying to ignore buildSrc here, but also avoid weirdness with use of // GradleBuild tasks boolean isOuterBuild = gradle.getParent() == null; TaskInputsListener taskInputsListener = isOuterBuild ? listenerManager.getBroadcaster(TaskInputsListener.class) : TaskInputsListener.NOOP; return new ExecuteAtMostOnceTaskExecuter( new SkipOnlyIfTaskExecuter( new SkipTaskWithNoActionsExecuter( new SkipEmptySourceFilesTaskExecuter( taskInputsListener, new ValidatingTaskExecuter( new SkipUpToDateTaskExecuter( repository, new PostExecutionAnalysisTaskExecuter( new ExecuteActionsTaskExecuter( listenerManager.getBroadcaster( TaskActionListener.class))))))))); }
protected TaskExecutionStatisticsEventAdapter createTaskExecutionStatisticsEventAdapter( ListenerManager listenerManager) { return new TaskExecutionStatisticsEventAdapter( listenerManager.getBroadcaster(TaskExecutionStatisticsListener.class)); }
protected ListenerManager createListenerManager(ListenerManager listenerManager) { return listenerManager.createChild(); }