use of org.gradle.api.internal.StartParameterInternal in project gradle by gradle.
the class ProviderConnection method runTests.
public Object runTests(ProviderInternalTestExecutionRequest testExecutionRequest, BuildCancellationToken cancellationToken, ProviderOperationParameters providerParameters) {
Parameters params = initParams(providerParameters);
StartParameterInternal startParameter = new ProviderStartParameterConverter().toStartParameter(providerParameters, params.buildLayout, params.properties);
ProgressListenerConfiguration listenerConfig = ProgressListenerConfiguration.from(providerParameters, consumerVersion);
TestExecutionRequestAction action = TestExecutionRequestAction.create(listenerConfig.clientSubscriptions, startParameter, testExecutionRequest);
return run(action, cancellationToken, listenerConfig, listenerConfig.buildEventConsumer, providerParameters, params);
}
use of org.gradle.api.internal.StartParameterInternal in project gradle by gradle.
the class ProviderConnection method runPhasedAction.
public Object runPhasedAction(InternalPhasedAction clientPhasedAction, PhasedActionResultListener resultListener, BuildCancellationToken cancellationToken, ProviderOperationParameters providerParameters) {
List<String> tasks = providerParameters.getTasks();
SerializedPayload serializedAction = payloadSerializer.serialize(clientPhasedAction);
Parameters params = initParams(providerParameters);
StartParameterInternal startParameter = new ProviderStartParameterConverter().toStartParameter(providerParameters, params.buildLayout, params.properties);
FailsafePhasedActionResultListener failsafePhasedActionResultListener = new FailsafePhasedActionResultListener(resultListener);
ProgressListenerConfiguration listenerConfig = ProgressListenerConfiguration.from(providerParameters, consumerVersion);
BuildAction action = new ClientProvidedPhasedAction(startParameter, serializedAction, tasks != null, listenerConfig.clientSubscriptions);
try {
return run(action, cancellationToken, listenerConfig, new PhasedActionEventConsumer(failsafePhasedActionResultListener, payloadSerializer, listenerConfig.buildEventConsumer), providerParameters, params);
} finally {
failsafePhasedActionResultListener.rethrowErrors();
}
}
use of org.gradle.api.internal.StartParameterInternal in project gradle by gradle.
the class ProviderConnection method run.
public Object run(String modelName, BuildCancellationToken cancellationToken, ProviderOperationParameters providerParameters) {
List<String> tasks = providerParameters.getTasks();
if (modelName.equals(ModelIdentifier.NULL_MODEL) && tasks == null) {
throw new IllegalArgumentException("No model type or tasks specified.");
}
Parameters params = initParams(providerParameters);
if (BuildEnvironment.class.getName().equals(modelName)) {
// we don't really need to launch the daemon to acquire information needed for BuildEnvironment
if (tasks != null) {
throw new IllegalArgumentException("Cannot run tasks and fetch the build environment model.");
}
return new DefaultBuildEnvironment(new DefaultBuildIdentifier(providerParameters.getProjectDir()), params.buildLayout.getGradleUserHomeDir(), GradleVersion.current().getVersion(), params.daemonParams.getEffectiveJvm().getJavaHome(), params.daemonParams.getEffectiveJvmArgs());
}
StartParameterInternal startParameter = new ProviderStartParameterConverter().toStartParameter(providerParameters, params.buildLayout, params.properties);
ProgressListenerConfiguration listenerConfig = ProgressListenerConfiguration.from(providerParameters, consumerVersion);
BuildAction action = new BuildModelAction(startParameter, modelName, tasks != null, listenerConfig.clientSubscriptions);
return run(action, cancellationToken, listenerConfig, listenerConfig.buildEventConsumer, providerParameters, params);
}
use of org.gradle.api.internal.StartParameterInternal in project gradle by gradle.
the class ProjectBuilderImpl method createProject.
public ProjectInternal createProject(String name, File inputProjectDir, File gradleUserHomeDir) {
final File projectDir = prepareProjectDir(inputProjectDir);
File userHomeDir = gradleUserHomeDir == null ? new File(projectDir, "userHome") : FileUtils.canonicalize(gradleUserHomeDir);
StartParameterInternal startParameter = new StartParameterInternal();
startParameter.setGradleUserHomeDir(userHomeDir);
NativeServices.initializeOnDaemon(userHomeDir);
final ServiceRegistry globalServices = getGlobalServices();
BuildRequestMetaData buildRequestMetaData = new DefaultBuildRequestMetaData(Time.currentTimeMillis());
CrossBuildSessionState crossBuildSessionState = new CrossBuildSessionState(globalServices, startParameter);
GradleUserHomeScopeServiceRegistry userHomeServices = userHomeServicesOf(globalServices);
BuildSessionState buildSessionState = new BuildSessionState(userHomeServices, crossBuildSessionState, startParameter, buildRequestMetaData, ClassPath.EMPTY, new DefaultBuildCancellationToken(), buildRequestMetaData.getClient(), new NoOpBuildEventConsumer());
BuildTreeModelControllerServices.Supplier modelServices = buildSessionState.getServices().get(BuildTreeModelControllerServices.class).servicesForBuildTree(new RunTasksRequirements(startParameter));
BuildTreeState buildTreeState = new BuildTreeState(buildSessionState.getServices(), modelServices);
TestRootBuild build = new TestRootBuild(projectDir, startParameter, buildTreeState);
BuildScopeServices buildServices = build.getBuildServices();
buildServices.get(BuildStateRegistry.class).attachRootBuild(build);
// Take a root worker lease; this won't ever be released as ProjectBuilder has no lifecycle
ResourceLockCoordinationService coordinationService = buildServices.get(ResourceLockCoordinationService.class);
WorkerLeaseService workerLeaseService = buildServices.get(WorkerLeaseService.class);
WorkerLeaseRegistry.WorkerLeaseCompletion workerLease = workerLeaseService.maybeStartWorker();
GradleInternal gradle = build.getMutableModel();
gradle.setIncludedBuilds(Collections.emptyList());
ProjectDescriptorRegistry projectDescriptorRegistry = buildServices.get(ProjectDescriptorRegistry.class);
DefaultProjectDescriptor projectDescriptor = new DefaultProjectDescriptor(null, name, projectDir, projectDescriptorRegistry, buildServices.get(FileResolver.class));
projectDescriptorRegistry.addProject(projectDescriptor);
ClassLoaderScope baseScope = gradle.getClassLoaderScope();
ClassLoaderScope rootProjectScope = baseScope.createChild("root-project");
ProjectStateRegistry projectStateRegistry = buildServices.get(ProjectStateRegistry.class);
ProjectState projectState = projectStateRegistry.registerProject(build, projectDescriptor);
projectState.createMutableModel(rootProjectScope, baseScope);
ProjectInternal project = projectState.getMutableModel();
gradle.setRootProject(project);
gradle.setDefaultProject(project);
// Lock root project; this won't ever be released as ProjectBuilder has no lifecycle
coordinationService.withStateLock(DefaultResourceLockCoordinationService.lock(project.getOwner().getAccessLock()));
project.getExtensions().getExtraProperties().set("ProjectBuilder.stoppable", stoppable((Stoppable) workerLeaseService::runAsIsolatedTask, (Stoppable) workerLease::leaseFinish, buildServices, buildTreeState, buildSessionState, crossBuildSessionState));
return project;
}
use of org.gradle.api.internal.StartParameterInternal in project gradle by gradle.
the class DefaultNestedBuildTree method run.
@Override
public <T> T run(Function<? super BuildTreeLifecycleController, T> buildAction) {
StartParameterInternal startParameter = buildDefinition.getStartParameter();
BuildRequestMetaData buildRequestMetaData = new DefaultBuildRequestMetaData(Time.currentTimeMillis());
BuildSessionState session = new BuildSessionState(userHomeDirServiceRegistry, crossBuildSessionState, startParameter, buildRequestMetaData, ClassPath.EMPTY, buildCancellationToken, buildRequestMetaData.getClient(), new NoOpBuildEventConsumer());
try {
session.getServices().get(BuildLayoutValidator.class).validate(startParameter);
BuildTreeModelControllerServices.Supplier modelServices = session.getServices().get(BuildTreeModelControllerServices.class).servicesForNestedBuildTree(startParameter);
BuildTreeState buildTree = new BuildTreeState(session.getServices(), modelServices);
try {
RootOfNestedBuildTree rootBuild = new RootOfNestedBuildTree(buildDefinition, buildIdentifier, identityPath, owner, buildTree);
rootBuild.attach();
return rootBuild.run(buildAction);
} finally {
buildTree.close();
}
} finally {
session.close();
}
}
Aggregations