summaryrefslogtreecommitdiff
path: root/plugins/git4idea/remote-servers-git/src/com/intellij/remoteServer/util/CloudGitDeploymentChecker.java
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/git4idea/remote-servers-git/src/com/intellij/remoteServer/util/CloudGitDeploymentChecker.java')
-rw-r--r--plugins/git4idea/remote-servers-git/src/com/intellij/remoteServer/util/CloudGitDeploymentChecker.java41
1 files changed, 8 insertions, 33 deletions
diff --git a/plugins/git4idea/remote-servers-git/src/com/intellij/remoteServer/util/CloudGitDeploymentChecker.java b/plugins/git4idea/remote-servers-git/src/com/intellij/remoteServer/util/CloudGitDeploymentChecker.java
index 155e7e2e2b78..df40458aa36b 100644
--- a/plugins/git4idea/remote-servers-git/src/com/intellij/remoteServer/util/CloudGitDeploymentChecker.java
+++ b/plugins/git4idea/remote-servers-git/src/com/intellij/remoteServer/util/CloudGitDeploymentChecker.java
@@ -16,7 +16,6 @@
package com.intellij.remoteServer.util;
import com.intellij.execution.configurations.RuntimeConfigurationWarning;
-import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.project.Project;
@@ -29,14 +28,11 @@ import com.intellij.remoteServer.configuration.ServerConfigurationBase;
import com.intellij.remoteServer.configuration.deployment.DeploymentSource;
import com.intellij.remoteServer.configuration.deployment.ModuleDeploymentSource;
import git4idea.GitUtil;
-import git4idea.commands.Git;
-import git4idea.repo.GitRemote;
import git4idea.repo.GitRepository;
import git4idea.repo.GitRepositoryManager;
import java.io.File;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
+import java.util.List;
/**
* @author michael.golubev
@@ -47,21 +43,23 @@ public class CloudGitDeploymentChecker<
SR extends CloudMultiSourceServerRuntimeInstance<T, ?, ?, ?>> {
private GitRepositoryManager myGitRepositoryManager;
- private Git myGit;
private final DeploymentSource myDeploymentSource;
private final RemoteServer<SC> myServer;
private final CloudDeploymentNameEditor<T> mySettingsEditor;
+ private final CloudGitDeploymentDetector myDetector;
public CloudGitDeploymentChecker(DeploymentSource deploymentSource,
RemoteServer<SC> server,
- CloudDeploymentNameEditor<T> settingsEditor) {
+ CloudDeploymentNameEditor<T> settingsEditor,
+ CloudGitDeploymentDetector detector) {
myDeploymentSource = deploymentSource;
myServer = server;
mySettingsEditor = settingsEditor;
+ myDetector = detector;
}
- public void checkGitUrl(final T settings, Pattern gitUrlPattern) throws ConfigurationException {
+ public void checkGitUrl(final T settings) throws ConfigurationException {
if (!(myDeploymentSource instanceof ModuleDeploymentSource)) {
return;
}
@@ -82,12 +80,6 @@ public class CloudGitDeploymentChecker<
if (myGitRepositoryManager == null) {
myGitRepositoryManager = GitUtil.getRepositoryManager(project);
}
- if (myGit == null) {
- myGit = ServiceManager.getService(Git.class);
- if (myGit == null) {
- return;
- }
- }
VirtualFile contentRoot = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(contentRootFile);
if (contentRoot == null) {
@@ -102,28 +94,11 @@ public class CloudGitDeploymentChecker<
String expectedName = settings.getDeploymentSourceName(myDeploymentSource);
- boolean unexpectedNameFound = false;
- for (GitRemote remote : repository.getRemotes()) {
- for (String url : remote.getUrls()) {
- Matcher matcher = gitUrlPattern.matcher(url);
- if (matcher.matches()) {
- String matchedName = matcher.group(1);
- if (matchedName.equals(expectedName)) {
- return;
- }
- else {
- unexpectedNameFound = true;
- break;
- }
- }
- }
- }
-
- if (!unexpectedNameFound) {
+ List<String> appNames = myDetector.collectApplicationNames(repository);
+ if (appNames.isEmpty() || appNames.contains(expectedName)) {
return;
}
-
RuntimeConfigurationWarning warning =
new RuntimeConfigurationWarning("Cloud Git URL found in repository, but it doesn't match the run configuration");