diff options
author | Tor Norbye <tnorbye@google.com> | 2013-08-15 14:06:37 -0700 |
---|---|---|
committer | Tor Norbye <tnorbye@google.com> | 2013-08-15 14:06:37 -0700 |
commit | a3c36999a717e0d9923378ca5e0ae1160118c1e6 (patch) | |
tree | eda7fde5565d08649c0f5952e957a5ff4b2070d5 /plugins/google-app-engine/source | |
parent | d1129abbe4dc0ce9bbad9118a35a85dbebc8758f (diff) | |
download | idea-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')
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; - } } |