IDEA-206109 maven build tool window - remove external api integration - will be restored in future

This commit is contained in:
Alexander Bubenchikov
2019-02-11 18:34:02 +03:00
parent eaa62caf31
commit 57dc646389
20 changed files with 0 additions and 944 deletions
@@ -22,7 +22,6 @@ import icons.MavenIcons;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.externalSystemIntegration.util.MavenExternalSystemTaskRunner;
import org.jetbrains.idea.maven.model.MavenConstants;
import org.jetbrains.idea.maven.project.MavenGeneralSettings;
import org.jetbrains.idea.maven.project.MavenProject;
@@ -1,44 +0,0 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.idea.maven.externalSystemIntegration;
import com.intellij.openapi.externalSystem.model.ProjectSystemId;
import com.intellij.openapi.externalSystem.service.settings.AbstractImportFromExternalSystemControl;
import com.intellij.openapi.externalSystem.util.ExternalSystemSettingsControl;
import com.intellij.openapi.project.ProjectManager;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.externalSystemIntegration.settings.*;
import org.jetbrains.idea.maven.model.MavenConstants;
import org.jetbrains.idea.maven.utils.MavenLog;
public class ImportFromMavenControl
extends AbstractImportFromExternalSystemControl<MavenProjectSettings, MavenSettingsListener, MavenSettings> {
public ImportFromMavenControl() {
super(MavenConstants.SYSTEM_ID, MavenSettings.getInstance(ProjectManager.getInstance().getDefaultProject()), MavenProjectSettings.getInitial(),
true);
}
protected ImportFromMavenControl(@NotNull ProjectSystemId externalSystemId,
@NotNull MavenSettings systemSettings,
@NotNull MavenProjectSettings projectSettings, boolean showProjectFormatPanel) {
super(externalSystemId, systemSettings, projectSettings, showProjectFormatPanel);
}
@Override
protected void onLinkedProjectPathChange(@NotNull String path) {
MavenLog.LOG.warn("onLinkedProjectPathChange " + path);
}
@NotNull
@Override
protected ExternalSystemSettingsControl<MavenProjectSettings> createProjectSettingsControl(@NotNull MavenProjectSettings settings) {
return new MavenProjectSettingsControl(settings);
}
@Nullable
@Override
protected ExternalSystemSettingsControl<MavenSettings> createSystemSettingsControl(@NotNull MavenSettings settings) {
return new MavenSystemSettingsControl(settings);
}
}
@@ -1,113 +0,0 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.idea.maven.externalSystemIntegration;
import com.intellij.execution.ExecutionException;
import com.intellij.execution.configurations.SearchScopeProvider;
import com.intellij.execution.configurations.SimpleJavaParameters;
import com.intellij.openapi.externalSystem.ExternalSystemManager;
import com.intellij.openapi.externalSystem.model.ProjectSystemId;
import com.intellij.openapi.externalSystem.model.execution.ExternalSystemTaskExecutionSettings;
import com.intellij.openapi.externalSystem.service.execution.ExternalSystemJdkUtil;
import com.intellij.openapi.externalSystem.service.project.ExternalSystemProjectResolver;
import com.intellij.openapi.externalSystem.task.ExternalSystemTaskManager;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectManager;
import com.intellij.openapi.util.Pair;
import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.util.Function;
import com.intellij.util.PathUtil;
import com.intellij.util.PathsList;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.ContainerUtilRt;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.externalSystemIntegration.run.MavenTaskManager;
import org.jetbrains.idea.maven.externalSystemIntegration.settings.*;
import org.jetbrains.idea.maven.model.MavenConstants;
import org.jetbrains.idea.maven.server.MavenServerManager;
import org.jetbrains.idea.maven.utils.MavenUtil;
import java.io.File;
import java.util.Set;
public class MavenExternalManager implements ExternalSystemManager<
MavenProjectSettings,
MavenSettingsListener,
MavenSettings,
MavenLocalSettings,
MavenExecutionSettings> {
@NotNull
@Override
public ProjectSystemId getSystemId() {
return MavenConstants.SYSTEM_ID;
}
@NotNull
@Override
public Function<Project, MavenSettings> getSettingsProvider() {
return project -> MavenSettings.getInstance(project);
}
@NotNull
@Override
public Function<Project, MavenLocalSettings> getLocalSettingsProvider() {
return project -> MavenLocalSettings.getInstance(project);
}
@NotNull
@Override
public Function<Pair<Project, String>, MavenExecutionSettings> getExecutionSettingsProvider() {
return pair -> {
Project project = pair.first;
MavenSettings settings = MavenSettings.getInstance(project);
File mavenHome = MavenServerManager.getMavenHomeFile(MavenServerManager.BUNDLED_MAVEN_3);
MavenExecutionSettings mavenExecutionSettings = new MavenExecutionSettings(
mavenHome, MavenUtil.getMavenVersion(mavenHome),
ExternalSystemJdkUtil
.getJdk(project, settings.getJdkToUse()).getHomePath(),
LocalFileSystem.getInstance().findFileByIoFile(new File(pair.second)).findChild("pom.xml"));
return mavenExecutionSettings;
};
}
@NotNull
@Override
public Class<? extends ExternalSystemProjectResolver<MavenExecutionSettings>> getProjectResolverClass() {
return MavenProjectResolver.class;
}
@Override
public Class<? extends ExternalSystemTaskManager<MavenExecutionSettings>> getTaskManagerClass() {
return MavenTaskManager.class;
}
@NotNull
@Override
public FileChooserDescriptor getExternalProjectDescriptor() {
return new FileChooserDescriptor(true, false, false, false, false, false)
.withTitle("Choose Maven File")
.withFileFilter(MavenUtil::isPomFile);
}
@Override
public void enhanceRemoteProcessing(@NotNull SimpleJavaParameters parameters) throws ExecutionException {
final Set<String> additionalEntries = ContainerUtilRt.newHashSet();
ContainerUtil.addIfNotNull(additionalEntries, PathUtil.getJarPathForClass(MavenServerManager.class));
ContainerUtil.addIfNotNull(additionalEntries, PathUtil.getJarPathForClass(MavenConstants.class));
final PathsList classPath = parameters.getClassPath();
for (String entry : additionalEntries) {
classPath.add(entry);
}
}
@Nullable
@Override
public GlobalSearchScope getSearchScope(@NotNull Project project, @NotNull ExternalSystemTaskExecutionSettings taskExecutionSettings) {
return SearchScopeProvider.createSearchScope(project, null);
}
}
@@ -1,61 +0,0 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.idea.maven.externalSystemIntegration;
import com.intellij.ide.util.projectWizard.WizardContext;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.externalSystem.model.DataNode;
import com.intellij.openapi.externalSystem.model.ProjectSystemId;
import com.intellij.openapi.externalSystem.model.internal.InternalExternalProjectInfo;
import com.intellij.openapi.externalSystem.model.project.ProjectData;
import com.intellij.openapi.externalSystem.service.project.ExternalProjectRefreshCallback;
import com.intellij.openapi.externalSystem.service.project.ProjectDataManager;
import com.intellij.openapi.externalSystem.service.project.wizard.AbstractExternalProjectImportBuilder;
import com.intellij.openapi.externalSystem.service.ui.ExternalProjectDataSelectorDialog;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.NotNullFactory;
import icons.MavenIcons;
import icons.OpenapiIcons;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.model.MavenConstants;
import javax.swing.*;
import java.io.File;
public class MavenProjectImportBuilder extends AbstractExternalProjectImportBuilder<ImportFromMavenControl> {
public MavenProjectImportBuilder(@NotNull ProjectDataManager projectDataManager) {
super(projectDataManager, () -> new ImportFromMavenControl(), MavenConstants.SYSTEM_ID);
}
@Override
protected void doPrepare(@NotNull WizardContext context) {
}
@Override
protected void beforeCommit(@NotNull DataNode<ProjectData> dataNode, @NotNull Project project) {
}
@NotNull
@Override
protected File getExternalProjectConfigToUse(@NotNull File file) {
return file.isDirectory() ? file : file.getParentFile();
}
@Override
protected void applyExtraSettings(@NotNull WizardContext context) {
}
@NotNull
@Override
public String getName() {
return "Maven";
}
@Override
public Icon getIcon() {
return OpenapiIcons.RepositoryLibraryLogo;
}
}
@@ -1,28 +0,0 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.idea.maven.externalSystemIntegration;
import com.intellij.openapi.externalSystem.service.project.wizard.AbstractExternalProjectImportProvider;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.model.MavenConstants;
import org.jetbrains.idea.maven.utils.MavenUtil;
public class MavenProjectImportProvider extends AbstractExternalProjectImportProvider {
public MavenProjectImportProvider(MavenProjectImportBuilder builder) {
super(builder, MavenConstants.SYSTEM_ID);
}
@Override
protected boolean canImportFromFile(VirtualFile file) {
return MavenUtil.isPomFile(file);
}
@Nullable
@Override
public String getFileSample() {
return "<b>Maven</b> build file (pom.xml)";
}
}
@@ -1,30 +0,0 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.idea.maven.externalSystemIntegration;
import com.intellij.openapi.externalSystem.model.DataNode;
import com.intellij.openapi.externalSystem.model.ExternalSystemException;
import com.intellij.openapi.externalSystem.model.project.ProjectData;
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskId;
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskNotificationListener;
import com.intellij.openapi.externalSystem.service.project.ExternalSystemProjectResolver;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.externalSystemIntegration.settings.MavenExecutionSettings;
public class MavenProjectResolver implements ExternalSystemProjectResolver<MavenExecutionSettings> {
@Nullable
@Override
public DataNode<ProjectData> resolveProjectInfo(@NotNull ExternalSystemTaskId id,
@NotNull String projectPath,
boolean isPreviewMode,
@Nullable MavenExecutionSettings settings,
@NotNull ExternalSystemTaskNotificationListener listener)
throws ExternalSystemException, IllegalArgumentException, IllegalStateException {
return null;
}
@Override
public boolean cancelTask(@NotNull ExternalSystemTaskId taskId, @NotNull ExternalSystemTaskNotificationListener listener) {
return false;
}
}
@@ -1,138 +0,0 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.idea.maven.externalSystemIntegration.run;
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskId;
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskNotificationListener;
import com.intellij.openapi.externalSystem.model.task.event.*;
import com.intellij.util.SmartList;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.Stack;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Set;
public class MavenExecutionStatusListener {
private final ExternalSystemTaskId mySystemTaskId;
private final ExternalSystemTaskNotificationListener myListener;
private final Set<MavenSubTask> runningTasks = ContainerUtil.newConcurrentSet();
public MavenExecutionStatusListener(ExternalSystemTaskId systemTaskId, ExternalSystemTaskNotificationListener listener) {
mySystemTaskId = systemTaskId;
myListener = listener;
}
public MavenSubTask start(String name) {
return new MavenSubTask(name, null);
}
public void failAllNonCompleted(Exception e) {
Set<MavenSubTask> toFail = ContainerUtil.newHashSet(runningTasks);
for (MavenSubTask subTask : toFail) {
subTask.failure(e);
}
}
public class MavenSubTask {
private final String myName;
private final String myParentName;
private final long myStartTime;
private final TaskOperationDescriptor myDescriptor;
MavenSubTask(String name, String parentName) {
myName = name;
myParentName = parentName;
myStartTime = System.currentTimeMillis();
myDescriptor = new TaskOperationDescriptorImpl(name, myStartTime, name);
myListener.onStatusChange(new ExternalSystemTaskExecutionEvent(mySystemTaskId,
new ExternalSystemStartEventImpl<>(
myName, myParentName,
myDescriptor
))
);
runningTasks.add(this);
}
public MavenSubTask startChild(String name) {
return new MavenSubTask(name, myName);
}
public void failure(Throwable e) {
myListener.onStatusChange(new ExternalSystemTaskExecutionEvent(mySystemTaskId,
new ExternalSystemFinishEventImpl<>(
myName, myParentName,
myDescriptor,
new FailureResultImpl(myStartTime, System.currentTimeMillis(),
getFailures(e)))
));
runningTasks.remove(this);
}
public void failure(List<String> messages) {
myListener.onStatusChange(new ExternalSystemTaskExecutionEvent(mySystemTaskId,
new ExternalSystemFinishEventImpl<>(
myName, myParentName,
myDescriptor,
new FailureResultImpl(myStartTime, System.currentTimeMillis(),
getFailures(messages)))
));
runningTasks.remove(this);
}
public void success() {
myListener.onStatusChange(new ExternalSystemTaskExecutionEvent(mySystemTaskId,
new ExternalSystemFinishEventImpl<>(
myName, myParentName,
myDescriptor,
new SuccessResultImpl(myStartTime, System.currentTimeMillis(),
false))
));
runningTasks.remove(this);
}
public void skip() {
myListener.onStatusChange(new ExternalSystemTaskExecutionEvent(mySystemTaskId,
new ExternalSystemFinishEventImpl<>(
myName, myParentName,
myDescriptor,
new SkippedResultImpl(myStartTime, System.currentTimeMillis()))
));
runningTasks.remove(this);
}
private List<Failure> getFailures(Throwable e) {
return Collections.singletonList(new FailureImpl(e.getMessage(), e.getMessage(), ContainerUtil.emptyList()));
}
private List<Failure> getFailures(List<String> messages) {
List<Failure> result = new SmartList<>();
for (String message : messages) {
result.add(new FailureImpl(message, message, ContainerUtil.emptyList()));
}
;
return result;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
MavenSubTask task = (MavenSubTask)o;
return myName.equals(task.myName) &&
Objects.equals(myParentName, task.myParentName);
}
@Override
public int hashCode() {
return Objects.hash(myName, myParentName);
}
}
}
@@ -1,143 +0,0 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.idea.maven.externalSystemIntegration.run;
import com.intellij.execution.process.ProcessAdapter;
import com.intellij.execution.process.ProcessEvent;
import com.intellij.execution.process.ProcessHandler;
import com.intellij.execution.process.ProcessListener;
import com.intellij.openapi.externalSystem.model.ExternalSystemException;
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskId;
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskNotificationListener;
import com.intellij.openapi.externalSystem.model.task.event.*;
import com.intellij.openapi.externalSystem.rt.execution.ForkedDebuggerConfiguration;
import com.intellij.openapi.externalSystem.task.BaseExternalSystemTaskManager;
import com.intellij.openapi.progress.EmptyProgressIndicator;
import com.intellij.openapi.progress.ProgressIndicator;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Key;
import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.execution.MavenExecutionOptions;
import org.jetbrains.idea.maven.externalSystemIntegration.run.MavenExecutionStatusListener.MavenSubTask;
import org.jetbrains.idea.maven.externalSystemIntegration.settings.MavenExecutionSettings;
import org.jetbrains.idea.maven.project.MavenConsole;
import org.jetbrains.idea.maven.project.MavenProject;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
import org.jetbrains.idea.maven.server.MavenEmbedderWrapper;
import org.jetbrains.idea.maven.server.MavenServerDownloadListener;
import org.jetbrains.idea.maven.server.MavenServerExecutionResult;
import org.jetbrains.idea.maven.server.MavenServerManager;
import org.jetbrains.idea.maven.utils.MavenLog;
import org.jetbrains.idea.maven.utils.MavenProgressIndicator;
import java.io.File;
import java.rmi.RemoteException;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
public class MavenTaskManager extends BaseExternalSystemTaskManager<MavenExecutionSettings> {
@Override
public void executeTasks(@NotNull ExternalSystemTaskId id,
@NotNull List<String> taskNames,
@NotNull String projectPath,
@Nullable MavenExecutionSettings settings,
@Nullable String jvmAgentSetup,
@NotNull ExternalSystemTaskNotificationListener listener) throws ExternalSystemException {
MavenExecutionStatusListener mavenListener = new MavenExecutionStatusListener(id, listener);
try {
MavenSubTask startEvent = mavenListener.start("Starting maven server");
ForkedDebuggerConfiguration forkedDebuggerSetup = ForkedDebuggerConfiguration.parse(jvmAgentSetup);
if (forkedDebuggerSetup != null) {
settings.withVmOption(forkedDebuggerSetup.getJvmAgentSetup(isJdk9orLater(settings.getJavaHome())));
}
Project project = id.findProject();
if (project == null) {
throw new RuntimeException("Cannot find project for task");
}
MavenServerManager serverManager = MavenServerManager.getInstance();
MavenEmbedderWrapper embedder = serverManager.createEmbedder(project, false, projectPath, projectPath);
customize(embedder, listener, id);
startEvent.success();
taskNames.forEach(taskName -> executeTask(settings, startEvent, embedder, taskName));
}
finally {
mavenListener.failAllNonCompleted(new Exception("internal error"));
}
}
private void executeTask(@NotNull MavenExecutionSettings settings,
MavenSubTask startEvent,
MavenEmbedderWrapper embedder, String taskName) {
MavenSubTask execute = startEvent.startChild(taskName);
try {
MavenServerExecutionResult result = embedder
.execute(settings.getPomFile(), Collections.emptyList(), Collections.emptyList(),
Collections.singletonList(taskName));
if (result.problems != null && !result.problems.isEmpty()) {
execute.failure(result.problems.stream().map(s -> s.getDescription()).collect(Collectors.toList()));
}
else {
execute.success();
}
}
catch (Exception e) {
execute.failure(e);
}
}
private void customize(MavenEmbedderWrapper embedder,
ExternalSystemTaskNotificationListener listener,
ExternalSystemTaskId id) {
embedder.customizeForResolve(new MavenConsole(MavenExecutionOptions.LoggingLevel.DEBUG, false) {
@Override
public boolean canPause() {
return false;
}
@Override
public boolean isOutputPaused() {
return false;
}
@Override
public void setOutputPaused(boolean outputPaused) {
}
@Override
public void attachToProcess(ProcessHandler processHandler) {
processHandler.addProcessListener(new ProcessAdapter() {
@Override
public void onTextAvailable(@NotNull ProcessEvent event, @NotNull Key outputType) {
listener.onTaskOutput(id, event.getText(), false);
}
});
MavenLog.LOG.debug("attachToProcess " + processHandler);
}
@Override
protected void doPrint(String text, OutputType type) {
MavenLog.LOG.debug(text);
boolean stdErr = type == OutputType.ERROR;
listener.onTaskOutput(id, text, !stdErr);
}
}, new MavenProgressIndicator());
}
@Override
public boolean cancelTask(@NotNull ExternalSystemTaskId id, @NotNull ExternalSystemTaskNotificationListener listener)
throws ExternalSystemException {
return false;
}
}
@@ -1,13 +0,0 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.idea.maven.externalSystemIntegration.settings;
import com.intellij.openapi.externalSystem.settings.DelegatingExternalSystemSettingsListener;
import com.intellij.openapi.externalSystem.settings.ExternalSystemSettingsListener;
import org.jetbrains.annotations.NotNull;
public class DelegatingMavenSettingsListenerAdapter extends DelegatingExternalSystemSettingsListener<MavenProjectSettings>
implements MavenSettingsListener {
public DelegatingMavenSettingsListenerAdapter(@NotNull ExternalSystemSettingsListener<MavenProjectSettings> delegate) {
super(delegate);
}
}
@@ -1,46 +0,0 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.idea.maven.externalSystemIntegration.settings;
import com.intellij.openapi.externalSystem.model.settings.ExternalSystemExecutionSettings;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.NotNull;
import java.io.File;
public class MavenExecutionSettings extends ExternalSystemExecutionSettings {
@NotNull private final File myMavenHome;
@NotNull private final String myMavenVersion;
@NotNull private final String myJavaHome;
@NotNull private final VirtualFile myPomFile;
public MavenExecutionSettings(@NotNull File mavenHome,
@NotNull String mavenVersion,
@NotNull String javaHome,
@NotNull VirtualFile pomFile) {
myMavenHome = mavenHome;
myMavenVersion = mavenVersion;
myJavaHome = javaHome;
myPomFile = pomFile;
}
@NotNull
public File getMavenHome() {
return myMavenHome;
}
@NotNull
public String getMavenVersion() {
return myMavenVersion;
}
@NotNull
public String getJavaHome() {
return myJavaHome;
}
public VirtualFile getPomFile() {
return myPomFile;
}
}
@@ -1,31 +0,0 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.idea.maven.externalSystemIntegration.settings;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.components.State;
import com.intellij.openapi.components.Storage;
import com.intellij.openapi.components.StoragePathMacros;
import com.intellij.openapi.externalSystem.settings.AbstractExternalSystemLocalSettings;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.model.MavenConstants;
@State(name = "MavenLocalSettings", storages = {
@Storage(StoragePathMacros.CACHE_FILE),
@Storage(value = StoragePathMacros.WORKSPACE_FILE, deprecated = true)
})
public class MavenLocalSettings extends AbstractExternalSystemLocalSettings<AbstractExternalSystemLocalSettings.State> {
public MavenLocalSettings(@NotNull Project project) {
super(MavenConstants.SYSTEM_ID, project, new MyState());
}
@NotNull
public static MavenLocalSettings getInstance(@NotNull Project project) {
return new MavenLocalSettings(project);
//return ServiceManager.getService(project, MavenLocalSettings.class);
}
public static class MyState extends AbstractExternalSystemLocalSettings.State {
}
}
@@ -1,87 +0,0 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.idea.maven.externalSystemIntegration.settings;
import com.intellij.openapi.externalSystem.service.execution.ExternalSystemJdkUtil;
import com.intellij.openapi.externalSystem.settings.ExternalProjectSettings;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.server.MavenServerManager;
import java.io.File;
public class MavenProjectSettings extends ExternalProjectSettings {
@Nullable private String myMavenHome;
@Nullable private String myMavenJVM = ExternalSystemJdkUtil.USE_PROJECT_JDK;
@Nullable private Integer myThreadCount;
@Nullable private File myMavenSettingsFile;
@Nullable private File myMavenLocalRepo;
@NotNull
@Override
public ExternalProjectSettings clone() {
MavenProjectSettings result = new MavenProjectSettings();
copyTo(result);
result.myMavenHome = myMavenHome;
result.myMavenJVM = myMavenJVM;
result.myThreadCount = myThreadCount;
result.myMavenSettingsFile = myMavenSettingsFile;
result.myMavenLocalRepo = myMavenLocalRepo;
return result;
}
@Nullable
public String getMavenHome() {
return myMavenHome;
}
public void setMavenHome(@Nullable String mavenHome) {
myMavenHome = mavenHome;
}
@Nullable
public String getMavenJVM() {
return myMavenJVM;
}
public void setMavenJVM(@Nullable String mavenJVM) {
myMavenJVM = mavenJVM;
}
@Nullable
public Integer getThreadCount() {
return myThreadCount;
}
public void setThreadCount(@Nullable Integer threadCount) {
myThreadCount = threadCount;
}
@Nullable
public File getMavenSettingsFile() {
return myMavenSettingsFile;
}
public void setMavenSettingsFile(@Nullable File mavenSettingsFile) {
myMavenSettingsFile = mavenSettingsFile;
}
@Nullable
public File getMavenLocalRepo() {
return myMavenLocalRepo;
}
public void setMavenLocalRepo(@Nullable File mavenLocalRepo) {
myMavenLocalRepo = mavenLocalRepo;
}
@NotNull
public static MavenProjectSettings getInitial() {
MavenProjectSettings result = new MavenProjectSettings();
result.setMavenHome(MavenServerManager.BUNDLED_MAVEN_3);
return result;
}
}
@@ -1,47 +0,0 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.idea.maven.externalSystemIntegration.settings;
import com.intellij.openapi.externalSystem.util.ExternalSystemSettingsControl;
import com.intellij.openapi.externalSystem.util.PaintAwarePanel;
import com.intellij.openapi.options.ConfigurationException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.externalSystemIntegration.settings.MavenProjectSettings;
public class MavenProjectSettingsControl implements ExternalSystemSettingsControl<MavenProjectSettings> {
public MavenProjectSettingsControl(MavenProjectSettings initialSettings) {}
@Override
public void fillUi(@NotNull PaintAwarePanel canvas, int indentLevel) {
}
@Override
public void reset() {
}
@Override
public boolean isModified() {
return false;
}
@Override
public void apply(@NotNull MavenProjectSettings settings) {
}
@Override
public boolean validate(@NotNull MavenProjectSettings settings) throws ConfigurationException {
return false;
}
@Override
public void disposeUIResources() {
}
@Override
public void showUi(boolean show) {
}
}
@@ -1,50 +0,0 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.idea.maven.externalSystemIntegration.settings;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.components.State;
import com.intellij.openapi.components.Storage;
import com.intellij.openapi.externalSystem.service.execution.ExternalSystemJdkUtil;
import com.intellij.openapi.externalSystem.settings.AbstractExternalSystemSettings;
import com.intellij.openapi.externalSystem.settings.ExternalSystemSettingsListener;
import com.intellij.openapi.project.Project;
import com.intellij.util.messages.Topic;
import org.jetbrains.annotations.NotNull;
@State(name = "MavenSettings", storages = @Storage("maven.xml"))
public class MavenSettings extends AbstractExternalSystemSettings<MavenSettings, MavenProjectSettings, MavenSettingsListener> {
@NotNull private final String myJdkToUse;
public MavenSettings(@NotNull Project project, @NotNull String jdkToUse) {
super(MavenSettingsListener.TOPIC, project);
myJdkToUse = jdkToUse;
}
@Override
public void subscribe(@NotNull ExternalSystemSettingsListener<MavenProjectSettings> listener) {
getProject().getMessageBus().connect(getProject())
.subscribe(MavenSettingsListener.TOPIC, new DelegatingMavenSettingsListenerAdapter(listener));
}
@Override
protected void copyExtraSettingsFrom(@NotNull MavenSettings settings) {
}
@Override
protected void checkSettings(@NotNull MavenProjectSettings old, @NotNull MavenProjectSettings current) {
}
@NotNull
public String getJdkToUse() {
return myJdkToUse;
}
@NotNull
public static MavenSettings getInstance(@NotNull Project project) {
return new MavenSettings(project, ExternalSystemJdkUtil.USE_PROJECT_JDK);
}
}
@@ -1,14 +0,0 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.idea.maven.externalSystemIntegration.settings;
import com.intellij.openapi.externalSystem.settings.ExternalSystemSettingsListener;
import com.intellij.util.messages.Topic;
import org.jetbrains.annotations.NotNull;
import java.util.Collection;
import java.util.Set;
public interface MavenSettingsListener extends ExternalSystemSettingsListener<MavenProjectSettings> {
Topic<MavenSettingsListener> TOPIC = Topic.create("Maven-specific settings", MavenSettingsListener.class);
}
@@ -1,50 +0,0 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.idea.maven.externalSystemIntegration.settings;
import com.intellij.openapi.externalSystem.util.ExternalSystemSettingsControl;
import com.intellij.openapi.externalSystem.util.PaintAwarePanel;
import com.intellij.openapi.options.ConfigurationException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.externalSystemIntegration.settings.MavenSettings;
public class MavenSystemSettingsControl implements ExternalSystemSettingsControl<MavenSettings> {
public MavenSystemSettingsControl(MavenSettings settings) {
}
@Override
public void fillUi(@NotNull PaintAwarePanel canvas, int indentLevel) {
}
@Override
public void reset() {
}
@Override
public boolean isModified() {
return false;
}
@Override
public void apply(@NotNull MavenSettings settings) {
}
@Override
public boolean validate(@NotNull MavenSettings settings) throws ConfigurationException {
return false;
}
@Override
public void disposeUIResources() {
}
@Override
public void showUi(boolean show) {
}
}
@@ -1,43 +0,0 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.idea.maven.externalSystemIntegration.util;
import com.intellij.execution.executors.DefaultRunExecutor;
import com.intellij.openapi.externalSystem.model.execution.ExternalSystemTaskExecutionSettings;
import com.intellij.openapi.externalSystem.model.execution.ExternalTaskExecutionInfo;
import com.intellij.openapi.externalSystem.util.ExternalSystemUtil;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.execution.MavenRunnerParameters;
import org.jetbrains.idea.maven.execution.MavenRunnerSettings;
import org.jetbrains.idea.maven.model.MavenConstants;
import org.jetbrains.idea.maven.project.MavenGeneralSettings;
public class MavenExternalSystemTaskRunner {
private Project myProject;
public MavenExternalSystemTaskRunner(@NotNull Project project) {
myProject = project;
}
public void runMavenTask(@NotNull MavenRunnerParameters params,
@Nullable MavenGeneralSettings settings,
@Nullable MavenRunnerSettings runnerSettings) {
ExternalSystemTaskExecutionSettings taskExecutionSettings = createExecutionSettings(params, settings, runnerSettings);
ExternalSystemUtil.runTask(taskExecutionSettings, DefaultRunExecutor.EXECUTOR_ID, myProject, MavenConstants.SYSTEM_ID);
}
private ExternalSystemTaskExecutionSettings createExecutionSettings(@NotNull MavenRunnerParameters params,
@Nullable MavenGeneralSettings settings,
@Nullable MavenRunnerSettings runnerSettings) {
ExternalSystemTaskExecutionSettings executionSettings = new ExternalSystemTaskExecutionSettings();
executionSettings.setExternalProjectPath(params.getWorkingDirPath());
executionSettings.setTaskNames(params.getGoals());
if (runnerSettings != null) {
executionSettings.setVmOptions(runnerSettings.getVmOptions());
}
executionSettings.setExternalSystemIdString(MavenConstants.SYSTEM_ID.toString());
return executionSettings;
}
}
@@ -28,7 +28,6 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.text.StringUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.execution.*;
import org.jetbrains.idea.maven.externalSystemIntegration.util.MavenExternalSystemTaskRunner;
import org.jetbrains.idea.maven.project.MavenGeneralSettings;
import org.jetbrains.idea.maven.project.MavenProject;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
@@ -24,8 +24,6 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.projectImport.ProjectOpenProcessorBase;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.externalSystemIntegration.MavenProjectImportBuilder;
import org.jetbrains.idea.maven.externalSystemIntegration.MavenProjectImportProvider;
import org.jetbrains.idea.maven.model.MavenConstants;
import org.jetbrains.idea.maven.model.MavenExplicitProfiles;
import org.jetbrains.idea.maven.project.MavenProject;
@@ -44,9 +44,7 @@
<fileTypeUsageSchemaDescriptor implementationClass="org.jetbrains.idea.maven.utils.MavenFileTypeFactory"/>
<projectImportProvider implementation="org.jetbrains.idea.maven.wizards.MavenProjectImportProvider"/>
<projectOpenProcessor implementation="org.jetbrains.idea.maven.wizards.MavenProjectOpenProcessor"/>
<!-- <externalSystemManager implementation="org.jetbrains.idea.maven.externalSystemIntegration.MavenExternalManager"/>-->
<projectImportBuilder implementation="org.jetbrains.idea.maven.wizards.MavenProjectBuilder"/>
<!-- <externalSystemOutputParserProvider implementation="org.jetbrains.idea.maven.externalSystemIntegration.output.MavenOutputParserProvider"/>-->
<moduleBuilder builderClass="org.jetbrains.idea.maven.wizards.MavenModuleBuilder"/>
<frameworkSupport implementation="org.jetbrains.idea.maven.wizards.MavenFrameworkSupportProvider"/>
<moduleExtension implementation="org.jetbrains.idea.maven.importing.MavenSourceFoldersModuleExtension"/>