diff options
Diffstat (limited to 'plugins/google-app-engine')
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()); } } } |