summaryrefslogtreecommitdiff
path: root/plugins/google-app-engine
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/google-app-engine')
-rw-r--r--plugins/google-app-engine/source/com/intellij/appengine/actions/AppEngineUploader.java32
-rw-r--r--plugins/google-app-engine/source/com/intellij/appengine/actions/UploadApplicationAction.java15
-rw-r--r--plugins/google-app-engine/source/com/intellij/appengine/cloud/AppEngineCloudType.java8
3 files changed, 39 insertions, 16 deletions
diff --git a/plugins/google-app-engine/source/com/intellij/appengine/actions/AppEngineUploader.java b/plugins/google-app-engine/source/com/intellij/appengine/actions/AppEngineUploader.java
index 2e7dae2262ea..5e2d5ead054d 100644
--- a/plugins/google-app-engine/source/com/intellij/appengine/actions/AppEngineUploader.java
+++ b/plugins/google-app-engine/source/com/intellij/appengine/actions/AppEngineUploader.java
@@ -69,6 +69,8 @@ import com.intellij.packaging.impl.artifacts.ArtifactUtil;
import com.intellij.packaging.impl.compiler.ArtifactCompileScope;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiFile;
+import com.intellij.remoteServer.runtime.deployment.DeploymentRuntime;
+import com.intellij.remoteServer.runtime.deployment.ServerRuntimeInstance;
import com.intellij.util.net.HttpConfigurable;
import com.intellij.util.xml.GenericDomValue;
import org.jetbrains.annotations.NotNull;
@@ -90,40 +92,39 @@ public class AppEngineUploader {
private final AppEngineSdk mySdk;
private final String myEmail;
private final String myPassword;
+ private final ServerRuntimeInstance.DeploymentOperationCallback myCallback;
- private AppEngineUploader(Project project,
- Artifact artifact,
- AppEngineFacet appEngineFacet,
- AppEngineSdk sdk,
- String email,
- String password) {
+ private AppEngineUploader(Project project, Artifact artifact, AppEngineFacet appEngineFacet, AppEngineSdk sdk, String email,
+ String password, ServerRuntimeInstance.DeploymentOperationCallback callback) {
myProject = project;
myArtifact = artifact;
myAppEngineFacet = appEngineFacet;
mySdk = sdk;
myEmail = email;
myPassword = password;
+ myCallback = callback;
}
@Nullable
public static AppEngineUploader createUploader(@NotNull Project project,
@NotNull Artifact artifact,
- @Nullable AppEngineServerConfiguration configuration) {
+ @Nullable AppEngineServerConfiguration configuration,
+ ServerRuntimeInstance.DeploymentOperationCallback callback) {
final String explodedPath = artifact.getOutputPath();
if (explodedPath == null) {
- Messages.showErrorDialog(project, "Output path isn't specified for '" + artifact.getName() + "' artifact", CommonBundle.getErrorTitle());
+ callback.errorOccurred("Output path isn't specified for '" + artifact.getName() + "' artifact");
return null;
}
final AppEngineFacet appEngineFacet = AppEngineUtil.findAppEngineFacet(project, artifact);
if (appEngineFacet == null) {
- Messages.showErrorDialog(project, "App Engine facet not found in '" + artifact.getName() + "' artifact", CommonBundle.getErrorTitle());
+ callback.errorOccurred("App Engine facet not found in '" + artifact.getName() + "' artifact");
return null;
}
final AppEngineSdk sdk = appEngineFacet.getSdk();
if (!sdk.getAppCfgFile().exists()) {
- Messages.showErrorDialog(project, "Path to App Engine SDK isn't specified correctly in App Engine Facet settings", CommonBundle.getErrorTitle());
+ callback.errorOccurred("Path to App Engine SDK isn't specified correctly in App Engine Facet settings");
return null;
}
@@ -169,7 +170,7 @@ public class AppEngineUploader {
password = dialog.getPassword();
}
- return new AppEngineUploader(project, artifact, appEngineFacet, sdk, email, password);
+ return new AppEngineUploader(project, artifact, appEngineFacet, sdk, email, password, callback);
}
public void startUploading() {
@@ -235,7 +236,7 @@ public class AppEngineUploader {
process = commandLine.createProcess();
}
catch (ExecutionException e) {
- Messages.showErrorDialog(myProject, "Cannot start uploading: " + e.getMessage(), CommonBundle.getErrorTitle());
+ myCallback.errorOccurred("Cannot start uploading: " + e.getMessage());
return;
}
@@ -281,5 +282,12 @@ public class AppEngineUploader {
}
}
}
+
+ @Override
+ public void processTerminated(ProcessEvent event) {
+ if (event.getExitCode() == 0) {
+ myCallback.succeeded(new DeploymentRuntime());
+ }
+ }
}
}
diff --git a/plugins/google-app-engine/source/com/intellij/appengine/actions/UploadApplicationAction.java b/plugins/google-app-engine/source/com/intellij/appengine/actions/UploadApplicationAction.java
index 15fb4051d1db..fe7f71dbb51b 100644
--- a/plugins/google-app-engine/source/com/intellij/appengine/actions/UploadApplicationAction.java
+++ b/plugins/google-app-engine/source/com/intellij/appengine/actions/UploadApplicationAction.java
@@ -24,6 +24,9 @@ import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Messages;
import com.intellij.packaging.artifacts.Artifact;
+import com.intellij.remoteServer.runtime.deployment.DeploymentRuntime;
+import com.intellij.remoteServer.runtime.deployment.ServerRuntimeInstance;
+import org.jetbrains.annotations.NotNull;
import java.util.List;
@@ -57,7 +60,17 @@ public class UploadApplicationAction extends AnAction {
return;
}
}
- final AppEngineUploader uploader = AppEngineUploader.createUploader(project, artifact, null);
+ final AppEngineUploader uploader = AppEngineUploader.createUploader(project, artifact, null, new ServerRuntimeInstance.DeploymentOperationCallback() {
+ @Override
+ public void succeeded(@NotNull DeploymentRuntime deployment) {
+
+ }
+
+ @Override
+ public void errorOccurred(@NotNull String errorMessage) {
+ Messages.showErrorDialog(project, errorMessage, CommonBundle.getErrorTitle());
+ }
+ });
if (uploader != null) {
uploader.startUploading();
}
diff --git a/plugins/google-app-engine/source/com/intellij/appengine/cloud/AppEngineCloudType.java b/plugins/google-app-engine/source/com/intellij/appengine/cloud/AppEngineCloudType.java
index a7b798c6df2e..b69b47a034fe 100644
--- a/plugins/google-app-engine/source/com/intellij/appengine/cloud/AppEngineCloudType.java
+++ b/plugins/google-app-engine/source/com/intellij/appengine/cloud/AppEngineCloudType.java
@@ -25,10 +25,12 @@ import com.intellij.packaging.artifacts.Artifact;
import com.intellij.packaging.artifacts.ArtifactPointerManager;
import com.intellij.remoteServer.ServerType;
import com.intellij.remoteServer.configuration.deployment.*;
+import com.intellij.remoteServer.runtime.Deployment;
import com.intellij.remoteServer.runtime.ServerConnector;
import com.intellij.remoteServer.runtime.ServerTaskExecutor;
import com.intellij.remoteServer.runtime.deployment.DeploymentTask;
import com.intellij.remoteServer.runtime.deployment.ServerRuntimeInstance;
+import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.ui.FormBuilder;
import icons.GoogleAppEngineIcons;
import org.jetbrains.annotations.NotNull;
@@ -181,15 +183,15 @@ public class AppEngineCloudType extends ServerType<AppEngineServerConfiguration>
Artifact artifact = ((ArtifactDeploymentSource)task.getSource()).getArtifact();
if (artifact == null) return;
- AppEngineUploader uploader = AppEngineUploader.createUploader(task.getProject(), artifact, myConfiguration);
+ AppEngineUploader uploader = AppEngineUploader.createUploader(task.getProject(), artifact, myConfiguration, callback);
if (uploader != null) {
uploader.startUploading();
}
}
@Override
- public void undeploy(@NotNull DeploymentTask<DummyDeploymentConfiguration> task,
- @NotNull DeploymentOperationCallback callback) {
+ public void computeDeployments(@NotNull ComputeDeploymentsCallback deployments) {
+ deployments.succeeded(ContainerUtil.<Deployment>emptyList());
}
}
}