Search in sources :

Example 6 with GradleInternal

use of org.gradle.api.internal.GradleInternal in project gradle by gradle.

the class BuildModelActionRunner method run.

@Override
public void run(BuildAction action, final BuildController buildController) {
    if (!(action instanceof BuildModelAction)) {
        return;
    }
    final BuildModelAction buildModelAction = (BuildModelAction) action;
    final GradleInternal gradle = buildController.getGradle();
    gradle.addBuildListener(new BuildResultAdapter(gradle, buildController, buildModelAction));
    if (buildModelAction.isModelRequest()) {
        gradle.getStartParameter().setConfigureOnDemand(false);
    }
    if (buildModelAction.isRunTasks()) {
        buildController.run();
    } else {
        buildController.configure();
    }
}
Also used : GradleInternal(org.gradle.api.internal.GradleInternal) BuildModelAction(org.gradle.tooling.internal.provider.BuildModelAction)

Example 7 with GradleInternal

use of org.gradle.api.internal.GradleInternal in project gradle by gradle.

the class TestExecutionRequestActionRunner method run.

@Override
public void run(BuildAction action, BuildController buildController) {
    if (!(action instanceof TestExecutionRequestAction)) {
        return;
    }
    GradleInternal gradle = buildController.getGradle();
    try {
        TestExecutionRequestAction testExecutionRequestAction = (TestExecutionRequestAction) action;
        TestExecutionResultEvaluator testExecutionResultEvaluator = new TestExecutionResultEvaluator(testExecutionRequestAction);
        buildOperationListenerManager.addListener(testExecutionResultEvaluator);
        try {
            doRun(testExecutionRequestAction, buildController);
        } finally {
            buildOperationListenerManager.removeListener(testExecutionResultEvaluator);
        }
        testExecutionResultEvaluator.evaluate();
    } catch (RuntimeException rex) {
        Throwable throwable = findRootCause(rex);
        if (throwable instanceof TestExecutionException) {
            // Tunnel the failure through the reporting
            throw new ReportedException(new InternalTestExecutionException("Error while running test(s)", throwable));
        } else {
            throw rex;
        }
    }
    PayloadSerializer payloadSerializer = gradle.getServices().get(PayloadSerializer.class);
    buildController.setResult(new BuildActionResult(payloadSerializer.serialize(null), null));
}
Also used : TestExecutionRequestAction(org.gradle.tooling.internal.provider.TestExecutionRequestAction) GradleInternal(org.gradle.api.internal.GradleInternal) PayloadSerializer(org.gradle.tooling.internal.provider.serialization.PayloadSerializer) TestExecutionException(org.gradle.api.tasks.testing.TestExecutionException) InternalTestExecutionException(org.gradle.tooling.internal.protocol.test.InternalTestExecutionException) BuildActionResult(org.gradle.tooling.internal.provider.BuildActionResult) InternalTestExecutionException(org.gradle.tooling.internal.protocol.test.InternalTestExecutionException) ReportedException(org.gradle.initialization.ReportedException)

Example 8 with GradleInternal

use of org.gradle.api.internal.GradleInternal in project gradle by gradle.

the class SubscribableBuildActionRunner method run.

@Override
public void run(BuildAction action, BuildController buildController) {
    boolean subscribable = action instanceof SubscribableBuildAction;
    if (subscribable) {
        GradleInternal gradle = buildController.getGradle();
        SubscribableBuildAction subscribableBuildAction = (SubscribableBuildAction) action;
        registerListenersForClientSubscriptions(subscribableBuildAction.getClientSubscriptions(), gradle);
    }
    try {
        delegate.run(action, buildController);
    } finally {
        for (BuildOperationListener listener : listeners) {
            buildOperationListenerManager.removeListener(listener);
        }
        listeners.clear();
    }
}
Also used : GradleInternal(org.gradle.api.internal.GradleInternal) BuildOperationListener(org.gradle.internal.operations.BuildOperationListener)

Example 9 with GradleInternal

use of org.gradle.api.internal.GradleInternal in project gradle by gradle.

the class DefaultGradleLauncherFactory method doNewInstance.

private DefaultGradleLauncher doNewInstance(StartParameter startParameter, GradleLauncher parent, BuildCancellationToken cancellationToken, BuildRequestMetaData requestMetaData, BuildEventConsumer buildEventConsumer, final BuildSessionScopeServices sessionScopeServices, List<?> servicesToStop) {
    BuildScopeServices serviceRegistry = BuildScopeServices.forSession(sessionScopeServices);
    serviceRegistry.add(BuildRequestMetaData.class, requestMetaData);
    serviceRegistry.add(BuildClientMetaData.class, requestMetaData.getClient());
    serviceRegistry.add(BuildEventConsumer.class, buildEventConsumer);
    serviceRegistry.add(BuildCancellationToken.class, cancellationToken);
    NestedBuildFactoryImpl nestedBuildFactory = new NestedBuildFactoryImpl(sessionScopeServices);
    serviceRegistry.add(NestedBuildFactory.class, nestedBuildFactory);
    ListenerManager listenerManager = serviceRegistry.get(ListenerManager.class);
    LoggingManagerInternal loggingManager = serviceRegistry.newInstance(LoggingManagerInternal.class);
    loggingManager.setLevelInternal(startParameter.getLogLevel());
    //this hooks up the ListenerManager and LoggingConfigurer so you can call Gradle.addListener() with a StandardOutputListener.
    loggingManager.addStandardOutputListener(listenerManager.getBroadcaster(StandardOutputListener.class));
    loggingManager.addStandardErrorListener(listenerManager.getBroadcaster(StandardOutputListener.class));
    LoggerProvider loggerProvider = (parent == null) ? buildProgressLogger : LoggerProvider.NO_OP;
    listenerManager.useLogger(new TaskExecutionLogger(serviceRegistry.get(ProgressLoggerFactory.class), loggerProvider));
    if (parent == null) {
        listenerManager.useLogger(new BuildLogger(Logging.getLogger(BuildLogger.class), serviceRegistry.get(StyledTextOutputFactory.class), startParameter, requestMetaData));
    }
    if (startParameter.isBuildCacheEnabled()) {
        listenerManager.addListener(serviceRegistry.get(TaskExecutionStatisticsEventAdapter.class));
        listenerManager.addListener(new CacheStatisticsReporter(serviceRegistry.get(StyledTextOutputFactory.class)));
    }
    listenerManager.addListener(serviceRegistry.get(ProfileEventAdapter.class));
    if (startParameter.isProfile()) {
        listenerManager.addListener(new ReportGeneratingProfileListener(serviceRegistry.get(StyledTextOutputFactory.class)));
    }
    BuildScanRequest buildScanRequest = serviceRegistry.get(BuildScanRequest.class);
    if (startParameter.isBuildScan()) {
        if (!startParameter.getSystemPropertiesArgs().containsKey("scan")) {
            startParameter.getSystemPropertiesArgs().put("scan", "true");
        }
        buildScanRequest.markRequested();
        listenerManager.addListener(new BuildScanRequestListener());
    }
    if (startParameter.isNoBuildScan()) {
        if (!startParameter.getSystemPropertiesArgs().containsKey("scan")) {
            startParameter.getSystemPropertiesArgs().put("scan", "false");
        }
        buildScanRequest.markDisabled();
    }
    ScriptUsageLocationReporter usageLocationReporter = new ScriptUsageLocationReporter();
    listenerManager.addListener(usageLocationReporter);
    BuildOutputCleanupListener buildOutputCleanupListener = serviceRegistry.get(BuildOutputCleanupListener.class);
    listenerManager.addListener(buildOutputCleanupListener);
    ShowStacktrace showStacktrace = startParameter.getShowStacktrace();
    switch(showStacktrace) {
        case ALWAYS:
        case ALWAYS_FULL:
            LoggingDeprecatedFeatureHandler.setTraceLoggingEnabled(true);
            break;
        default:
            LoggingDeprecatedFeatureHandler.setTraceLoggingEnabled(false);
    }
    DeprecationLogger.useLocationReporter(usageLocationReporter);
    SettingsLoaderFactory settingsLoaderFactory = serviceRegistry.get(SettingsLoaderFactory.class);
    SettingsLoader settingsLoader = parent != null ? settingsLoaderFactory.forNestedBuild() : settingsLoaderFactory.forTopLevelBuild();
    GradleInternal parentBuild = parent == null ? null : parent.getGradle();
    GradleInternal gradle = serviceRegistry.get(Instantiator.class).newInstance(DefaultGradle.class, parentBuild, startParameter, serviceRegistry.get(ServiceRegistryFactory.class));
    DefaultGradleLauncher gradleLauncher = new DefaultGradleLauncher(gradle, serviceRegistry.get(InitScriptHandler.class), settingsLoader, serviceRegistry.get(BuildConfigurer.class), serviceRegistry.get(ExceptionAnalyser.class), loggingManager, gradle.getBuildListenerBroadcaster(), listenerManager.getBroadcaster(ModelConfigurationListener.class), listenerManager.getBroadcaster(BuildCompletionListener.class), serviceRegistry.get(BuildOperationExecutor.class), gradle.getServices().get(BuildConfigurationActionExecuter.class), gradle.getServices().get(BuildExecuter.class), serviceRegistry, servicesToStop);
    nestedBuildFactory.setParent(gradleLauncher);
    return gradleLauncher;
}
Also used : CacheStatisticsReporter(org.gradle.internal.buildevents.CacheStatisticsReporter) ExceptionAnalyser(org.gradle.api.internal.ExceptionAnalyser) BuildScanRequestListener(org.gradle.internal.scan.BuildScanRequestListener) Instantiator(org.gradle.internal.reflect.Instantiator) GradleInternal(org.gradle.api.internal.GradleInternal) StandardOutputListener(org.gradle.api.logging.StandardOutputListener) ReportGeneratingProfileListener(org.gradle.profile.ReportGeneratingProfileListener) BuildExecuter(org.gradle.execution.BuildExecuter) LoggerProvider(org.gradle.internal.progress.LoggerProvider) ScriptUsageLocationReporter(org.gradle.internal.featurelifecycle.ScriptUsageLocationReporter) BuildConfigurer(org.gradle.configuration.BuildConfigurer) LoggingManagerInternal(org.gradle.internal.logging.LoggingManagerInternal) BuildConfigurationActionExecuter(org.gradle.execution.BuildConfigurationActionExecuter) ProfileEventAdapter(org.gradle.profile.ProfileEventAdapter) BuildScopeServices(org.gradle.internal.service.scopes.BuildScopeServices) TaskExecutionStatisticsEventAdapter(org.gradle.caching.internal.tasks.TaskExecutionStatisticsEventAdapter) BuildScanRequest(org.gradle.internal.scan.BuildScanRequest) ShowStacktrace(org.gradle.api.logging.configuration.ShowStacktrace) BuildOperationExecutor(org.gradle.internal.progress.BuildOperationExecutor) ServiceRegistryFactory(org.gradle.internal.service.scopes.ServiceRegistryFactory) BuildOutputCleanupListener(org.gradle.internal.cleanup.BuildOutputCleanupListener) TaskExecutionLogger(org.gradle.internal.buildevents.TaskExecutionLogger) BuildLogger(org.gradle.internal.buildevents.BuildLogger) ListenerManager(org.gradle.internal.event.ListenerManager)

Example 10 with GradleInternal

use of org.gradle.api.internal.GradleInternal in project gradle by gradle.

the class TaskNameResolvingBuildConfigurationAction method configure.

public void configure(BuildExecutionContext context) {
    GradleInternal gradle = context.getGradle();
    TaskGraphExecuter executer = gradle.getTaskGraph();
    List<TaskExecutionRequest> taskParameters = gradle.getStartParameter().getTaskRequests();
    for (TaskExecutionRequest taskParameter : taskParameters) {
        List<TaskSelector.TaskSelection> taskSelections = commandLineTaskParser.parseTasks(taskParameter);
        for (TaskSelector.TaskSelection taskSelection : taskSelections) {
            LOGGER.info("Selected primary task '{}' from project {}", taskSelection.getTaskName(), taskSelection.getProjectPath());
            executer.addTasks(taskSelection.getTasks());
        }
    }
    context.proceed();
}
Also used : GradleInternal(org.gradle.api.internal.GradleInternal) TaskExecutionRequest(org.gradle.TaskExecutionRequest)

Aggregations

GradleInternal (org.gradle.api.internal.GradleInternal)21 StartParameter (org.gradle.StartParameter)4 ServiceRegistryFactory (org.gradle.internal.service.scopes.ServiceRegistryFactory)3 Task (org.gradle.api.Task)2 ExceptionAnalyser (org.gradle.api.internal.ExceptionAnalyser)2 ProjectInternal (org.gradle.api.internal.project.ProjectInternal)2 ShowStacktrace (org.gradle.api.logging.configuration.ShowStacktrace)2 BuildConfigurer (org.gradle.configuration.BuildConfigurer)2 BuildConfigurationActionExecuter (org.gradle.execution.BuildConfigurationActionExecuter)2 BuildExecuter (org.gradle.execution.BuildExecuter)2 GradleLauncher (org.gradle.initialization.GradleLauncher)2 BuildLogger (org.gradle.internal.buildevents.BuildLogger)2 TaskExecutionLogger (org.gradle.internal.buildevents.TaskExecutionLogger)2 ListenerManager (org.gradle.internal.event.ListenerManager)2 ScriptUsageLocationReporter (org.gradle.internal.featurelifecycle.ScriptUsageLocationReporter)2 BuildOperationExecutor (org.gradle.internal.operations.BuildOperationExecutor)2 LoggerProvider (org.gradle.internal.progress.LoggerProvider)2 Instantiator (org.gradle.internal.reflect.Instantiator)2 BuildScopeServices (org.gradle.internal.service.scopes.BuildScopeServices)2 ProfileEventAdapter (org.gradle.profile.ProfileEventAdapter)2