summaryrefslogtreecommitdiff
path: root/plugins/google-app-engine/source
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2013-08-15 14:06:37 -0700
committerTor Norbye <tnorbye@google.com>2013-08-15 14:06:37 -0700
commita3c36999a717e0d9923378ca5e0ae1160118c1e6 (patch)
treeeda7fde5565d08649c0f5952e957a5ff4b2070d5 /plugins/google-app-engine/source
parentd1129abbe4dc0ce9bbad9118a35a85dbebc8758f (diff)
downloadidea-a3c36999a717e0d9923378ca5e0ae1160118c1e6.tar.gz
Snapshot 13baaa319cd568c4e19b9232b24f2002f2631688 from master branch of git://git.jetbrains.org/idea/community.git
Change-Id: I2ede7fef748e781ed425346a4e03e721bf4d2610
Diffstat (limited to 'plugins/google-app-engine/source')
-rw-r--r--plugins/google-app-engine/source/com/intellij/appengine/actions/AppEngineUploader.java61
-rw-r--r--plugins/google-app-engine/source/com/intellij/appengine/actions/UploadApplicationAction.java2
-rw-r--r--plugins/google-app-engine/source/com/intellij/appengine/cloud/AppEngineCloudType.java21
-rw-r--r--plugins/google-app-engine/source/com/intellij/appengine/cloud/AppEngineServerConfiguration.java23
4 files changed, 51 insertions, 56 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 5e2d5ead054d..803bdc389454 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
@@ -71,6 +71,7 @@ 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.remoteServer.runtime.log.LoggingHandler;
import com.intellij.util.net.HttpConfigurable;
import com.intellij.util.xml.GenericDomValue;
import org.jetbrains.annotations.NotNull;
@@ -93,9 +94,10 @@ public class AppEngineUploader {
private final String myEmail;
private final String myPassword;
private final ServerRuntimeInstance.DeploymentOperationCallback myCallback;
+ private final LoggingHandler myLoggingHandler;
private AppEngineUploader(Project project, Artifact artifact, AppEngineFacet appEngineFacet, AppEngineSdk sdk, String email,
- String password, ServerRuntimeInstance.DeploymentOperationCallback callback) {
+ String password, ServerRuntimeInstance.DeploymentOperationCallback callback, @Nullable LoggingHandler loggingHandler) {
myProject = project;
myArtifact = artifact;
myAppEngineFacet = appEngineFacet;
@@ -103,13 +105,14 @@ public class AppEngineUploader {
myEmail = email;
myPassword = password;
myCallback = callback;
+ myLoggingHandler = loggingHandler;
}
@Nullable
public static AppEngineUploader createUploader(@NotNull Project project,
@NotNull Artifact artifact,
@Nullable AppEngineServerConfiguration configuration,
- ServerRuntimeInstance.DeploymentOperationCallback callback) {
+ @NotNull ServerRuntimeInstance.DeploymentOperationCallback callback, @Nullable LoggingHandler loggingHandler) {
final String explodedPath = artifact.getOutputPath();
if (explodedPath == null) {
callback.errorOccurred("Output path isn't specified for '" + artifact.getName() + "' artifact");
@@ -170,7 +173,7 @@ public class AppEngineUploader {
password = dialog.getPassword();
}
- return new AppEngineUploader(project, artifact, appEngineFacet, sdk, email, password, callback);
+ return new AppEngineUploader(project, artifact, appEngineFacet, sdk, email, password, callback, loggingHandler);
}
public void startUploading() {
@@ -240,32 +243,40 @@ public class AppEngineUploader {
return;
}
- final Executor executor = DefaultRunExecutor.getRunExecutorInstance();
- final ConsoleView console = TextConsoleBuilderFactory.getInstance().createBuilder(myProject).getConsole();
- final RunnerLayoutUi ui = RunnerLayoutUi.Factory.getInstance(myProject).create("Upload", "Upload Application", "Upload Application", myProject);
- final DefaultActionGroup group = new DefaultActionGroup();
- ui.getOptions().setLeftToolbar(group, ActionPlaces.UNKNOWN);
- ui.addContent(ui.createContent("upload", console.getComponent(), "Upload Application", null, console.getPreferredFocusableComponent()));
-
final ProcessHandler processHandler = new OSProcessHandler(process, commandLine.getCommandLineString());
- processHandler.addProcessListener(new MyProcessListener(processHandler, console));
- console.attachToProcess(processHandler);
- final RunContentDescriptor contentDescriptor = new RunContentDescriptor(console, processHandler, ui.getComponent(), "Upload Application");
- group.add(ActionManager.getInstance().getAction(IdeActions.ACTION_STOP_PROGRAM));
- group.add(new CloseAction(executor, contentDescriptor, myProject));
+ if (myLoggingHandler == null) {
+ final Executor executor = DefaultRunExecutor.getRunExecutorInstance();
+ final ConsoleView console = TextConsoleBuilderFactory.getInstance().createBuilder(myProject).getConsole();
+ final RunnerLayoutUi ui = RunnerLayoutUi.Factory.getInstance(myProject).create("Upload", "Upload Application", "Upload Application", myProject);
+ final DefaultActionGroup group = new DefaultActionGroup();
+ ui.getOptions().setLeftToolbar(group, ActionPlaces.UNKNOWN);
+ ui.addContent(ui.createContent("upload", console.getComponent(), "Upload Application", null, console.getPreferredFocusableComponent()));
+
+ processHandler.addProcessListener(new MyProcessListener(processHandler, console, null));
+ console.attachToProcess(processHandler);
+ final RunContentDescriptor contentDescriptor = new RunContentDescriptor(console, processHandler, ui.getComponent(), "Upload Application");
+ group.add(ActionManager.getInstance().getAction(IdeActions.ACTION_STOP_PROGRAM));
+ group.add(new CloseAction(executor, contentDescriptor, myProject));
- ExecutionManager.getInstance(myProject).getContentManager().showRunContent(executor, contentDescriptor);
+ ExecutionManager.getInstance(myProject).getContentManager().showRunContent(executor, contentDescriptor);
+ }
+ else {
+ processHandler.addProcessListener(new MyProcessListener(processHandler, null, myLoggingHandler));
+ myLoggingHandler.attachToProcess(processHandler);
+ }
processHandler.startNotify();
}
private class MyProcessListener extends ProcessAdapter {
private boolean myPasswordEntered;
private final ProcessHandler myProcessHandler;
- private final ConsoleView myConsole;
+ @Nullable private final ConsoleView myConsole;
+ @Nullable private final LoggingHandler myLoggingHandler;
- public MyProcessListener(ProcessHandler processHandler, ConsoleView console) {
+ public MyProcessListener(ProcessHandler processHandler, @Nullable ConsoleView console, @Nullable LoggingHandler loggingHandler) {
myProcessHandler = processHandler;
myConsole = console;
+ myLoggingHandler = loggingHandler;
}
@Override
@@ -278,16 +289,26 @@ public class AppEngineUploader {
final PrintWriter input = new PrintWriter(processInput);
input.println(myPassword);
input.flush();
- myConsole.print(StringUtil.repeatSymbol('*', myPassword.length()) + "\n", ConsoleViewContentType.USER_INPUT);
+ String message = StringUtil.repeatSymbol('*', myPassword.length()) + "\n";
+ if (myConsole != null) {
+ myConsole.print(message, ConsoleViewContentType.USER_INPUT);
+ }
+ else if (myLoggingHandler != null) {
+ myLoggingHandler.print(message);
+ }
}
}
}
@Override
public void processTerminated(ProcessEvent event) {
- if (event.getExitCode() == 0) {
+ int exitCode = event.getExitCode();
+ if (exitCode == 0) {
myCallback.succeeded(new DeploymentRuntime());
}
+ else {
+ myCallback.errorOccurred("Process terminated with exit code " + exitCode);
+ }
}
}
}
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 fe7f71dbb51b..f243a799b9a8 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
@@ -70,7 +70,7 @@ public class UploadApplicationAction extends AnAction {
public void errorOccurred(@NotNull String errorMessage) {
Messages.showErrorDialog(project, errorMessage, CommonBundle.getErrorTitle());
}
- });
+ }, null);
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 b69b47a034fe..855ed7a64dfe 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
@@ -22,7 +22,6 @@ import com.intellij.openapi.options.SettingsEditor;
import com.intellij.openapi.options.UnnamedConfigurable;
import com.intellij.openapi.project.Project;
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;
@@ -38,7 +37,6 @@ import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import java.awt.*;
-import java.util.ArrayList;
import java.util.List;
/**
@@ -83,7 +81,7 @@ public class AppEngineCloudType extends ServerType<AppEngineServerConfiguration>
@NotNull
@Override
- public DeploymentConfigurator createDeployer(Project project) {
+ public DeploymentConfigurator createDeploymentConfigurator(Project project) {
return new AppEngineDeploymentConfigurator(project);
}
@@ -134,12 +132,7 @@ public class AppEngineCloudType extends ServerType<AppEngineServerConfiguration>
@Override
public List<DeploymentSource> getAvailableDeploymentSources() {
List<Artifact> artifacts = AppEngineUtil.collectWebArtifacts(myProject, true);
- List<DeploymentSource> sources = new ArrayList<DeploymentSource>();
- ArtifactPointerManager pointerManager = ArtifactPointerManager.getInstance(myProject);
- for (Artifact artifact : artifacts) {
- sources.add(DeploymentSourceUtil.getInstance().createArtifactDeploymentSource(pointerManager.createPointer(artifact)));
- }
- return sources;
+ return DeploymentSourceUtil.getInstance().createArtifactDeploymentSources(myProject, artifacts);
}
@NotNull
@@ -165,10 +158,6 @@ public class AppEngineCloudType extends ServerType<AppEngineServerConfiguration>
public void connect(@NotNull final ConnectionCallback<DummyDeploymentConfiguration> callback) {
callback.connected(new AppEngineRuntimeInstance(myConfiguration));
}
-
- @Override
- public void disconnect() {
- }
}
private static class AppEngineRuntimeInstance extends ServerRuntimeInstance<DummyDeploymentConfiguration> {
@@ -183,7 +172,7 @@ public class AppEngineCloudType extends ServerType<AppEngineServerConfiguration>
Artifact artifact = ((ArtifactDeploymentSource)task.getSource()).getArtifact();
if (artifact == null) return;
- AppEngineUploader uploader = AppEngineUploader.createUploader(task.getProject(), artifact, myConfiguration, callback);
+ AppEngineUploader uploader = AppEngineUploader.createUploader(task.getProject(), artifact, myConfiguration, callback, task.getLoggingHandler());
if (uploader != null) {
uploader.startUploading();
}
@@ -193,5 +182,9 @@ public class AppEngineCloudType extends ServerType<AppEngineServerConfiguration>
public void computeDeployments(@NotNull ComputeDeploymentsCallback deployments) {
deployments.succeeded(ContainerUtil.<Deployment>emptyList());
}
+
+ @Override
+ public void disconnect() {
+ }
}
}
diff --git a/plugins/google-app-engine/source/com/intellij/appengine/cloud/AppEngineServerConfiguration.java b/plugins/google-app-engine/source/com/intellij/appengine/cloud/AppEngineServerConfiguration.java
index 9291f376fc7d..4576fb41bdde 100644
--- a/plugins/google-app-engine/source/com/intellij/appengine/cloud/AppEngineServerConfiguration.java
+++ b/plugins/google-app-engine/source/com/intellij/appengine/cloud/AppEngineServerConfiguration.java
@@ -15,16 +15,13 @@
*/
package com.intellij.appengine.cloud;
-import com.intellij.openapi.components.PersistentStateComponent;
-import com.intellij.remoteServer.configuration.ServerConfiguration;
-import com.intellij.util.xmlb.XmlSerializerUtil;
+import com.intellij.remoteServer.configuration.ServerConfigurationBase;
import com.intellij.util.xmlb.annotations.Attribute;
-import org.jetbrains.annotations.Nullable;
/**
* @author nik
*/
-public class AppEngineServerConfiguration extends ServerConfiguration implements PersistentStateComponent<AppEngineServerConfiguration> {
+public class AppEngineServerConfiguration extends ServerConfigurationBase<AppEngineServerConfiguration> {
private String myEmail;
@Attribute("email")
@@ -35,20 +32,4 @@ public class AppEngineServerConfiguration extends ServerConfiguration implements
public void setEmail(String email) {
myEmail = email;
}
-
- @Nullable
- @Override
- public AppEngineServerConfiguration getState() {
- return this;
- }
-
- @Override
- public void loadState(AppEngineServerConfiguration state) {
- XmlSerializerUtil.copyBean(state, this);
- }
-
- @Override
- public PersistentStateComponent<?> getSerializer() {
- return this;
- }
}