[jbosstools-commits] JBoss Tools SVN: r41426 - in trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal: ui/action and 1 other directories.
jbosstools-commits at lists.jboss.org
jbosstools-commits at lists.jboss.org
Fri May 25 10:48:19 EDT 2012
Author: xcoulon
Date: 2012-05-25 10:48:18 -0400 (Fri, 25 May 2012)
New Revision: 41426
Modified:
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/portforward/ApplicationPortForwardingAction.java
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/portforward/ApplicationPortForwardingWizardModel.java
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/action/ShowEnvironmentAction.java
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/utils/OpenShiftSshSessionFactory.java
Log:
Fixed - JBIDE-11841
Make OpenShift Explorer actions available from Server Adapter
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/portforward/ApplicationPortForwardingAction.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/portforward/ApplicationPortForwardingAction.java 2012-05-25 14:48:01 UTC (rev 41425)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/portforward/ApplicationPortForwardingAction.java 2012-05-25 14:48:18 UTC (rev 41426)
@@ -31,21 +31,20 @@
public void run() {
if (selection != null && selection instanceof ITreeSelection) {
Object sel = ((ITreeSelection) selection).getFirstElement();
- IApplication application = null;
if (sel instanceof IApplication) {
- application = (IApplication) sel;
+ openPortForwarding((IApplication) sel);
} else if (sel instanceof IServer) {
openPortForwarding((IServer) sel);
}
- if (application != null) {
- openPortForwarding(application);
- }
}
}
/**
- * @param sel
- * @return
+ * Retrieves the application from the given server, then opens the dialog.
+ * Since retrieving the application can be time consuming, the task is
+ * performed in a separate job (ie, in a background thread).
+ *
+ * @param server
*/
private void openPortForwarding(final IServer server) {
Job job = new Job("Retrieving application's forwardable ports...") {
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/portforward/ApplicationPortForwardingWizardModel.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/portforward/ApplicationPortForwardingWizardModel.java 2012-05-25 14:48:01 UTC (rev 41425)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/portforward/ApplicationPortForwardingWizardModel.java 2012-05-25 14:48:18 UTC (rev 41426)
@@ -216,14 +216,9 @@
final boolean hasSSHSession = getApplication().hasSSHSession();
if (!hasSSHSession) {
Logger.debug("Opening a new SSH Session for application '" + getApplication().getName() + "'");
- try {
- final Session session = OpenShiftSshSessionFactory.getInstance().createSession(
- getApplication());
- getApplication().setSSHSession(session);
- } catch (JSchException e) {
- throw new OpenShiftSSHOperationException(e, "Failed to open a new SSH session for application ''{0}''", getApplication().getName());
-
- }
+ final Session session = OpenShiftSshSessionFactory.getInstance().createSession(
+ getApplication());
+ getApplication().setSSHSession(session);
}
}
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/action/ShowEnvironmentAction.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/action/ShowEnvironmentAction.java 2012-05-25 14:48:01 UTC (rev 41425)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/action/ShowEnvironmentAction.java 2012-05-25 14:48:18 UTC (rev 41426)
@@ -12,9 +12,16 @@
import java.util.List;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.viewers.ITreeSelection;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.console.MessageConsole;
import org.eclipse.ui.console.MessageConsoleStream;
+import org.eclipse.wst.server.core.IServer;
+import org.jboss.tools.openshift.express.internal.core.behaviour.ExpressServerUtils;
import org.jboss.tools.openshift.express.internal.ui.OpenShiftUIActivator;
import org.jboss.tools.openshift.express.internal.ui.console.ConsoleUtils;
import org.jboss.tools.openshift.express.internal.ui.messages.OpenShiftExpressUIMessages;
@@ -35,48 +42,75 @@
/*
* (non-Javadoc)
+ *
* @see org.eclipse.jface.action.Action#run()
*/
@Override
public void run() {
- try {
- final ITreeSelection treeSelection = (ITreeSelection) selection;
- if (selection instanceof ITreeSelection && treeSelection.getFirstElement() instanceof IApplication) {
- final IApplication application = (IApplication) treeSelection.getFirstElement();
- showEnvironmentProperties(application);
- }
- } catch (Exception e) {
- OpenShiftUIActivator.createErrorStatus("Failed to display remote environment variables", e);
+ final ITreeSelection treeSelection = (ITreeSelection) selection;
+ if (selection instanceof ITreeSelection && treeSelection.getFirstElement() instanceof IApplication) {
+ final IApplication application = (IApplication) treeSelection.getFirstElement();
+ showEnvironmentProperties(application);
+ } else if (selection instanceof ITreeSelection && treeSelection.getFirstElement() instanceof IServer) {
+ final IServer server = (IServer) treeSelection.getFirstElement();
+ showEnvironmentProperties(server);
}
}
/**
+ * Retrieves the application from the given server, then opens the dialog.
+ * Since retrieving the application can be time consuming, the task is
+ * performed in a separate job (ie, in a background thread).
+ *
+ * @param server
+ */
+ private void showEnvironmentProperties(final IServer server) {
+ Job job = new Job("Retrieving application's forwardable ports...") {
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ final IApplication application = ExpressServerUtils.getApplication(server);
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ showEnvironmentProperties(application);
+ }
+ });
+ return Status.OK_STATUS;
+ }
+ };
+ job.setUser(true);
+ job.schedule();
+ }
+
+ /**
* @param application
* @throws JSchException
* @throws OpenShiftSSHOperationException
*/
- private void showEnvironmentProperties(final IApplication application) throws JSchException,
- OpenShiftSSHOperationException {
- if(!application.hasSSHSession()) {
- application.setSSHSession(OpenShiftSshSessionFactory.getInstance().createSession(application));
+ private void showEnvironmentProperties(final IApplication application) {
+ try {
+ if (!application.hasSSHSession()) {
+ application.setSSHSession(OpenShiftSshSessionFactory.getInstance().createSession(application));
+ }
+ List<String> props = application.getEnvironmentProperties();
+ final MessageConsole console = ConsoleUtils.findMessageConsole(getMessageConsoleName(application));
+ console.clearConsole();
+ MessageConsoleStream stream = console.newMessageStream();
+ for (String prop : props) {
+ stream.println(prop);
+ }
+ ConsoleUtils.displayConsoleView(console);
+ } catch (Exception e) {
+ OpenShiftUIActivator.createErrorStatus("Failed to display remote environment variables", e);
}
- List<String> props = application.getEnvironmentProperties();
- final MessageConsole console = ConsoleUtils.findMessageConsole(getMessageConsoleName(application));
- console.clearConsole();
- MessageConsoleStream stream = console.newMessageStream();
- for (String prop : props) {
- stream.println(prop);
- }
- ConsoleUtils.displayConsoleView(console);
}
-
+
/**
* @return
*/
private String getMessageConsoleName(final IApplication application) {
- return "Environment Variables for application '" + application.getName() + "' (" + application.getDomain().getId() + ")";
+ return "Environment Variables for application '" + application.getName() + "' ("
+ + application.getDomain().getId() + ")";
}
-
}
Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/utils/OpenShiftSshSessionFactory.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/utils/OpenShiftSshSessionFactory.java 2012-05-25 14:48:01 UTC (rev 41425)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/utils/OpenShiftSshSessionFactory.java 2012-05-25 14:48:18 UTC (rev 41426)
@@ -31,6 +31,7 @@
import com.jcraft.jsch.Session;
import com.jcraft.jsch.UserInfo;
import com.openshift.client.IApplication;
+import com.openshift.client.OpenShiftSSHOperationException;
/**
* Same as EclipseSshSessinFactory, but provides a mean to retrieve the pure Jsch Session, not a RemoteSession.
@@ -67,7 +68,7 @@
this.provider = (IJSchService) context.getService(ssh);
}
- public Session createSession(final IApplication application) throws JSchException {
+ public Session createSession(final IApplication application) throws OpenShiftSSHOperationException {
final URIish uri = getSshUri(application);
final Session session = cache.get(uri);
if (session == null || !session.isConnected()) {
@@ -80,7 +81,11 @@
int port = uri.getPort();
JSch.setLogger(new JschToEclipseLogger());
final OpenSshConfig.Host hc = config.lookup(host);
- cache.put(uri, createSession(hc, user, host, port, fs));
+ try {
+ cache.put(uri, createSession(hc, user, host, port, fs));
+ } catch (JSchException e) {
+ throw new OpenShiftSSHOperationException(e, "Unable to create SSH session for application ''{0}}''", application);
+ }
}
return cache.get(uri);
}
More information about the jbosstools-commits
mailing list