use of org.gradle.api.internal.project.ProjectInternal in project gradle by gradle.
the class JavaPlugin method apply.
@Override
public void apply(final Project project) {
if (project.getPluginManager().hasPlugin("java-platform")) {
throw new IllegalStateException("The \"java\" or \"java-library\" plugin cannot be applied together with the \"java-platform\" plugin. " + "A project is either a platform or a library but cannot be both at the same time.");
}
final ProjectInternal projectInternal = (ProjectInternal) project;
project.getPluginManager().apply(JavaBasePlugin.class);
project.getPluginManager().apply("org.gradle.jvm-test-suite");
JavaPluginExtension javaExtension = project.getExtensions().getByType(JavaPluginExtension.class);
projectInternal.getServices().get(ComponentRegistry.class).setMainComponent(new BuildableJavaComponentImpl(project, javaExtension));
BuildOutputCleanupRegistry buildOutputCleanupRegistry = projectInternal.getServices().get(BuildOutputCleanupRegistry.class);
SourceSet mainSourceSet = javaExtension.getSourceSets().create(SourceSet.MAIN_SOURCE_SET_NAME);
configureSourceSets(project, javaExtension, buildOutputCleanupRegistry, mainSourceSet);
configureConfigurations(project, javaExtension, mainSourceSet);
configureJavadocTask(project, javaExtension);
configureArchivesAndComponent(project, javaExtension);
configureBuild(project);
}
use of org.gradle.api.internal.project.ProjectInternal in project gradle by gradle.
the class JavaBasePlugin method apply.
@Override
public void apply(final Project project) {
ProjectInternal projectInternal = (ProjectInternal) project;
project.getPluginManager().apply(BasePlugin.class);
project.getPluginManager().apply(JvmEcosystemPlugin.class);
project.getPluginManager().apply(ReportingBasePlugin.class);
DefaultJavaPluginExtension javaPluginExtension = addExtensions(projectInternal);
configureSourceSetDefaults(project, javaPluginExtension);
configureCompileDefaults(project, javaPluginExtension);
configureJavaDoc(project, javaPluginExtension);
configureTest(project, javaPluginExtension);
configureBuildNeeded(project);
configureBuildDependents(project);
}
use of org.gradle.api.internal.project.ProjectInternal in project gradle by gradle.
the class DefaultProjectModelResolver method resolveProjectModel.
@Override
public ModelRegistry resolveProjectModel(String path) {
ProjectInternal projectInternal = delegate.getProject(path);
if (projectInternal == null) {
throw new UnknownProjectException("Project with path '" + path + "' not found.");
}
// TODO This is a brain-dead way to ensure that the reference project's model is ready to access
return projectInternal.getOwner().fromMutableState(project -> {
project.prepareForRuleBasedPlugins();
project.evaluate();
project.getTasks().discoverTasks();
return project.getModelRegistry();
});
}
use of org.gradle.api.internal.project.ProjectInternal in project gradle by gradle.
the class ProjectBuilderImpl method createChildProject.
public Project createChildProject(String name, Project parent, File projectDir) {
ProjectInternal parentProject = (ProjectInternal) parent;
ProjectDescriptorRegistry descriptorRegistry = parentProject.getServices().get(ProjectDescriptorRegistry.class);
DefaultProjectDescriptor parentDescriptor = descriptorRegistry.getProject(parentProject.getPath());
projectDir = (projectDir != null) ? projectDir.getAbsoluteFile() : new File(parentProject.getProjectDir(), name);
DefaultProjectDescriptor projectDescriptor = new DefaultProjectDescriptor(parentDescriptor, name, projectDir, descriptorRegistry, parentProject.getServices().get(FileResolver.class));
descriptorRegistry.addProject(projectDescriptor);
ProjectState projectState = parentProject.getServices().get(ProjectStateRegistry.class).registerProject(parentProject.getServices().get(BuildState.class), projectDescriptor);
projectState.createMutableModel(parentProject.getClassLoaderScope().createChild("project-" + name), parentProject.getBaseClassLoaderScope());
ProjectInternal project = projectState.getMutableModel();
// Lock the project, these won't ever be released as ProjectBuilder has no lifecycle
ResourceLockCoordinationService coordinationService = project.getServices().get(ResourceLockCoordinationService.class);
coordinationService.withStateLock(DefaultResourceLockCoordinationService.lock(project.getOwner().getAccessLock()));
return project;
}
use of org.gradle.api.internal.project.ProjectInternal 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;
}
Aggregations