diff --git a/java/remote-servers/impl/remote-servers-java-impl.iml b/java/remote-servers/impl/remote-servers-java-impl.iml
index 6999e2deac71..15781473aa45 100644
--- a/java/remote-servers/impl/remote-servers-java-impl.iml
+++ b/java/remote-servers/impl/remote-servers-java-impl.iml
@@ -15,6 +15,7 @@
+
diff --git a/java/remote-servers/impl/src/com/intellij/remoteServer/impl/module/CloudModuleBuilder.java b/java/remote-servers/impl/src/com/intellij/remoteServer/impl/module/CloudModuleBuilder.java
index 4aa8d60bcea4..25b60523a0b3 100644
--- a/java/remote-servers/impl/src/com/intellij/remoteServer/impl/module/CloudModuleBuilder.java
+++ b/java/remote-servers/impl/src/com/intellij/remoteServer/impl/module/CloudModuleBuilder.java
@@ -100,15 +100,12 @@ public class CloudModuleBuilder extends JavaModuleBuilder {
myAccount = account;
}
- public RemoteServer> getAccount() {
- return myAccount;
- }
-
public void setApplicationConfiguration(CloudApplicationConfiguration applicationConfiguration) {
myApplicationConfiguration = applicationConfiguration;
}
private void configureModule(final Module module) {
- CloudModuleBuilderContribution.getInstanceByType(myAccount.getType()).configureModule(module, myAccount, myApplicationConfiguration);
+ CloudModuleBuilderContribution
+ .getInstanceByType(myAccount.getType()).configureModule(module, myAccount, myApplicationConfiguration, getContentEntryPath());
}
}
diff --git a/java/remote-servers/impl/src/com/intellij/remoteServer/impl/module/CloudModuleBuilderContribution.java b/java/remote-servers/impl/src/com/intellij/remoteServer/impl/module/CloudModuleBuilderContribution.java
index 6643c89cc1c4..945812ae05e0 100644
--- a/java/remote-servers/impl/src/com/intellij/remoteServer/impl/module/CloudModuleBuilderContribution.java
+++ b/java/remote-servers/impl/src/com/intellij/remoteServer/impl/module/CloudModuleBuilderContribution.java
@@ -35,7 +35,8 @@ public abstract class CloudModuleBuilderContribution {
public abstract void configureModule(Module module,
RemoteServer> account,
- CloudApplicationConfiguration configuration);
+ CloudApplicationConfiguration configuration,
+ String contentPath);
public static CloudModuleBuilderContribution getInstanceByType(ServerType> cloudType) {
for (CloudModuleBuilderContribution contribution : EP_NAME.getExtensions()) {
diff --git a/java/remote-servers/impl/src/com/intellij/remoteServer/impl/module/CloudModuleBuilderContributionBase.java b/java/remote-servers/impl/src/com/intellij/remoteServer/impl/module/CloudModuleBuilderContributionBase.java
index 6a927d97bb93..3652e4e757db 100644
--- a/java/remote-servers/impl/src/com/intellij/remoteServer/impl/module/CloudModuleBuilderContributionBase.java
+++ b/java/remote-servers/impl/src/com/intellij/remoteServer/impl/module/CloudModuleBuilderContributionBase.java
@@ -15,22 +15,28 @@
*/
package com.intellij.remoteServer.impl.module;
-import com.intellij.execution.RunManagerEx;
-import com.intellij.execution.RunnerAndConfigurationSettings;
-import com.intellij.execution.configurations.ConfigurationType;
+import com.intellij.ide.util.newProjectWizard.StepSequence;
+import com.intellij.ide.util.newProjectWizard.modes.CreateFromSourcesMode;
+import com.intellij.ide.util.projectWizard.AbstractStepWithProgress;
+import com.intellij.ide.util.projectWizard.ModuleWizardStep;
+import com.intellij.ide.util.projectWizard.ProjectBuilder;
+import com.intellij.ide.util.projectWizard.WizardContext;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.module.Module;
-import com.intellij.openapi.module.ModulePointer;
-import com.intellij.openapi.module.ModulePointerManager;
+import com.intellij.openapi.progress.ProgressIndicator;
+import com.intellij.openapi.progress.ProgressManager;
+import com.intellij.openapi.progress.Task;
import com.intellij.openapi.project.Project;
+import com.intellij.openapi.roots.ui.configuration.DefaultModulesProvider;
+import com.intellij.openapi.roots.ui.configuration.ModulesProvider;
import com.intellij.openapi.ui.MessageType;
+import com.intellij.openapi.util.Disposer;
import com.intellij.remoteServer.ServerType;
import com.intellij.remoteServer.configuration.RemoteServer;
-import com.intellij.remoteServer.impl.configuration.deployment.DeployToServerConfigurationType;
import com.intellij.remoteServer.impl.configuration.deployment.DeployToServerRunConfiguration;
-import com.intellij.remoteServer.impl.configuration.deployment.ModuleDeploymentSourceImpl;
import com.intellij.remoteServer.util.*;
import com.intellij.remoteServer.util.ssh.SshKeyChecker;
+import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -42,10 +48,20 @@ public abstract class CloudModuleBuilderContributionBase<
SR extends CloudMultiSourceServerRuntimeInstance>
extends CloudModuleBuilderContribution {
+ private CloudNotifier myNotifier;
+
+ private CloudNotifier getNotifier() {
+ if (myNotifier == null) {
+ myNotifier = new CloudNotifier(getCloudType().getPresentableName());
+ }
+ return myNotifier;
+ }
+
@Override
- public void configureModule(Module module,
+ public void configureModule(final Module module,
RemoteServer> account,
- CloudApplicationConfiguration applicationConfiguration) {
+ CloudApplicationConfiguration applicationConfiguration,
+ final String contentPath) {
RemoteServer castedAccount = (RemoteServer)account;
final AC castedApplicationConfiguration = (AC)applicationConfiguration;
@@ -56,74 +72,108 @@ public abstract class CloudModuleBuilderContributionBase<
deploymentConfiguration.setDeploymentName(applicationConfiguration.getExistingAppName());
}
- final DeployToServerRunConfiguration runConfiguration = createRunConfiguration(module, castedAccount, deploymentConfiguration);
+ final DeployToServerRunConfiguration runConfiguration
+ = CloudAccountSelectionEditor.createRunConfiguration(castedAccount, module, deploymentConfiguration);
- final String cloudName = account.getType().getPresentableName();
+ final ServerType> cloudType = account.getType();
final Project project = module.getProject();
- new CloudConnectionTask