Added info about preferred approach to open/import gradle project

remove usage of JavaGradleProjectImportBuilder

GitOrigin-RevId: fcc3ca6abd9cf58a39ff51fb4ba3d5e19e51ff84
This commit is contained in:
Sergei Vorobyov
2019-06-13 19:18:43 +03:00
committed by intellij-monorepo-bot
parent c404136819
commit fbf9fa3abf
4 changed files with 29 additions and 0 deletions
@@ -5,6 +5,7 @@ import com.intellij.externalSystem.JavaProjectData;
import com.intellij.ide.util.projectWizard.WizardContext;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.externalSystem.model.DataNode;
import com.intellij.openapi.externalSystem.model.ExternalSystemDataKeys;
import com.intellij.openapi.externalSystem.model.internal.InternalExternalProjectInfo;
@@ -50,6 +51,8 @@ import java.util.stream.Collectors;
*/
@Deprecated
public final class GradleProjectImportBuilder extends AbstractExternalProjectImportBuilder<ImportFromGradleControl> {
private static final Logger LOG = Logger.getInstance(GradleProjectImportBuilder.class);
public GradleProjectImportBuilder() {
this(ProjectDataManager.getInstance());
}
@@ -64,6 +67,14 @@ public final class GradleProjectImportBuilder extends AbstractExternalProjectImp
public GradleProjectImportBuilder(@NotNull ProjectDataManager dataManager) {
super(dataManager, () -> new ImportFromGradleControl(), GradleConstants.SYSTEM_ID);
LOG.warn("Do not use `GradleProjectImportBuilder` directly. Use instead:\n" +
"Internal stable Api\n" +
" Use `com.intellij.ide.actions.ImportModuleAction.doImport` to import (attach) a new project.\n" +
" Use `com.intellij.ide.impl.ProjectUtil.openOrImport` to open (import) a new project.\n" +
"Internal experimental Api\n" +
" Use `org.jetbrains.plugins.gradle.service.project.open.openProject` to open (import) a new gradle project.\n" +
" Use `org.jetbrains.plugins.gradle.service.project.open.importProject` to attach a gradle project to an opened idea project.",
new Throwable());
}
@NotNull
@@ -22,6 +22,17 @@ import org.jetbrains.plugins.gradle.util.GradleConstants
import javax.swing.Icon
/**
* Do not use this project import builder directly.
*
* Internal stable Api
* Use [com.intellij.ide.actions.ImportModuleAction.doImport] to import (attach) a new project.
* Use [com.intellij.ide.impl.ProjectUtil.openOrImport] to open (import) a new project.
*
* Internal experimental Api
* Use [org.jetbrains.plugins.gradle.service.project.open.openProject] to open (import) a new gradle project.
* Use [org.jetbrains.plugins.gradle.service.project.open.importProject] to attach a gradle project to an opened idea project.
*/
class JavaGradleProjectImportBuilder : ProjectImportBuilder<Any>(), DeprecatedProjectBuilderForImport {
override fun getName(): String = GradleBundle.message("gradle.name")
@@ -9,6 +9,10 @@ import org.jetbrains.plugins.gradle.service.project.open.canImportProjectFrom
import org.jetbrains.plugins.gradle.util.GradleConstants
import org.jetbrains.plugins.gradle.util.GradleConstants.SYSTEM_ID
/**
* Do not use this import provider directly.
* @see JavaGradleProjectImportBuilder
*/
class JavaGradleProjectImportProvider : AbstractExternalProjectImportProvider(JavaGradleProjectImportBuilder(), SYSTEM_ID) {
override fun createSteps(context: WizardContext): Array<ModuleWizardStep> {
@@ -29,6 +29,7 @@ import com.intellij.util.EnvironmentUtil
import com.intellij.util.io.exists
import com.intellij.util.text.nullize
import org.gradle.util.GradleVersion
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.plugins.gradle.service.GradleInstallationManager
import org.jetbrains.plugins.gradle.settings.DistributionType
import org.jetbrains.plugins.gradle.settings.DistributionType.DEFAULT_WRAPPED
@@ -52,6 +53,7 @@ fun canImportProjectFrom(file: VirtualFile): Boolean {
return file.children.any(::isGradleProjectFile)
}
@ApiStatus.Experimental
fun openProject(projectFile: VirtualFile, projectToClose: Project?, forceOpenInNewFrame: Boolean): Project? {
if (!canImportProjectFrom(projectFile)) return null
val projectDirectory = findExternalProjectDirectory(projectFile)
@@ -66,6 +68,7 @@ fun openProject(projectFile: VirtualFile, projectToClose: Project?, forceOpenInN
return project
}
@ApiStatus.Experimental
fun importProject(projectDirectory: String, project: Project) {
LOG.info("Import project at $projectDirectory")
val projectSdk = ProjectRootManager.getInstance(project).projectSdk