[jbosstools-commits] JBoss Tools SVN: r41419 - in trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal: ui/viewer and 1 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Fri May 25 09:42:23 EDT 2012


Author: rob.stryker at jboss.com
Date: 2012-05-25 09:42:22 -0400 (Fri, 25 May 2012)
New Revision: 41419

Modified:
   trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/console/UserDelegate.java
   trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/console/UserModel.java
   trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/viewer/ConnectToOpenShiftWizard.java
   trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/CredentialsWizardPage.java
   trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/CredentialsWizardPageModel.java
Log:
JBIDE-12008

Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/console/UserDelegate.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/console/UserDelegate.java	2012-05-25 13:16:50 UTC (rev 41418)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/console/UserDelegate.java	2012-05-25 13:42:22 UTC (rev 41419)
@@ -10,6 +10,7 @@
  ******************************************************************************/
 package org.jboss.tools.openshift.express.internal.core.console;
 
+import java.net.SocketTimeoutException;
 import java.util.List;
 
 import org.eclipse.jface.window.Window;
@@ -99,31 +100,60 @@
 	 */
 	public boolean checkForPassword() {
 		if(delegate == null) {
-			try {
-				this.alreadyPromptedForPassword = true;
-				Display.getDefault().syncExec(new Runnable() { public void run() {
-					final IWorkbenchWindow activeWorkbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-					final Shell shell = activeWorkbenchWindow != null ? activeWorkbenchWindow.getShell() : null;
-					if(shell == null) {
-						Logger.error("Could not open Credentials Wizard: no shell available");
-						return;
-					}
-					final IWizard connectToOpenShiftWizard = new ConnectToOpenShiftWizard();
-					int returnCode = WizardUtils.openWizardDialog(connectToOpenShiftWizard, shell);
-					if (returnCode == Window.OK) {
-						Logger.debug("OpenShift Auth succeeded.");
-						setDelegate(UserModel.getDefault().getRecentUser().getDelegate());
+			if( username != null && password != null ) {
+				if( checkCurrentCredentials() )
+					return true;
+			}
+			return promptForCredentials();
+		}
+		return true;
+	}
+	
+	private boolean checkCurrentCredentials() {
+		// First check if the current username / pw work
+		IUser user = null;
+		try {
+			user = UserModel.getDefault().createUser(username, password);
+			setDelegate(user);
+			setConnected(true);
+			return true;
+		} catch( OpenShiftException ose ) {
+			// ignore
+		} catch( SocketTimeoutException ste ) {
+			// ignore
+		}
+		return false;
+	}
+	
+	private boolean promptForCredentials() {
+		// The auto-login failed. Try to prompt
+		try {
+			this.alreadyPromptedForPassword = true;
+			Display.getDefault().syncExec(new Runnable() { public void run() {
+				final IWorkbenchWindow activeWorkbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+				final Shell shell = activeWorkbenchWindow != null ? activeWorkbenchWindow.getShell() : null;
+				if(shell == null) {
+					Logger.error("Could not open Credentials Wizard: no shell available");
+					return;
+				}
+				final ConnectToOpenShiftWizard connectToOpenShiftWizard = new ConnectToOpenShiftWizard();
+				int returnCode = WizardUtils.openWizardDialog(connectToOpenShiftWizard, shell);
+				if (returnCode == Window.OK) {
+					Logger.debug("OpenShift Auth succeeded.");
+					UserDelegate created = connectToOpenShiftWizard.getUser();
+					if( created != null ) {
+						setDelegate(created.getDelegate());
 						setConnected(true);
-						setRememberPassword(UserModel.getDefault().getRecentUser().isRememberPassword());
-					} else {
-						setConnected(false);
+						setRememberPassword(created.isRememberPassword());
 					}
-				}});
-			} catch( Exception e ) {
-				Logger.error("Failed to retrieve User's password", e);
-			}
+				} else {
+					setConnected(false);
+				}
+			}});
+		} catch( Exception e ) {
+			Logger.error("Failed to retrieve User's password", e);
 		}
-		return (delegate != null);
+		return delegate != null;
 	}
 	
 	public IApplication createApplication(final String applicationName, final ICartridge applicationType, final ApplicationScale scale, final IGearProfile gearProfile)

Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/console/UserModel.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/console/UserModel.java	2012-05-25 13:16:50 UTC (rev 41418)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/core/console/UserModel.java	2012-05-25 13:42:22 UTC (rev 41419)
@@ -62,8 +62,11 @@
 	}
 
 	/**
-	 * Create a user for temporary external use
+	 * Create a user for temporary external use.
 	 * 
+	 * This method WILL be long-running and should not be called directly
+	 * from the UI thread unless proper care is taken. 
+	 * 
 	 * @param username
 	 * @param password
 	 * @return
@@ -144,13 +147,7 @@
 		String[] users = pref.get();
 		for (int i = 0; i < users.length; i++) {
 			String password = getPasswordFromSecureStorage(users[i]);
-			try {
-				addUser(new UserDelegate(createUser(users[i], password), true));
-			} catch (OpenShiftException e) {
-				addUser(new UserDelegate(users[i], password));
-			} catch (SocketTimeoutException e) {
-				addUser(new UserDelegate(users[i], password));
-			}
+			addUser(new UserDelegate(users[i], password));
 		}
 	}
 

Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/viewer/ConnectToOpenShiftWizard.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/viewer/ConnectToOpenShiftWizard.java	2012-05-25 13:16:50 UTC (rev 41418)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/viewer/ConnectToOpenShiftWizard.java	2012-05-25 13:42:22 UTC (rev 41419)
@@ -11,8 +11,10 @@
 package org.jboss.tools.openshift.express.internal.ui.viewer;
 
 import org.eclipse.jface.wizard.Wizard;
+import org.jboss.tools.openshift.express.internal.core.console.UserDelegate;
 import org.jboss.tools.openshift.express.internal.ui.wizard.ConnectToOpenShiftWizardModel;
 import org.jboss.tools.openshift.express.internal.ui.wizard.CredentialsWizardPage;
+import org.w3c.dom.UserDataHandler;
 
 /**
  * @author Xavier Coulon
@@ -37,4 +39,8 @@
 	public void addPages() {
 		addPage(page);
 	}
+	
+	public UserDelegate getUser() {
+		return page.getUser();
+	}
 }

Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/CredentialsWizardPage.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/CredentialsWizardPage.java	2012-05-25 13:16:50 UTC (rev 41418)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/CredentialsWizardPage.java	2012-05-25 13:42:22 UTC (rev 41419)
@@ -42,10 +42,12 @@
 import org.jboss.tools.common.ui.DelegatingProgressMonitor;
 import org.jboss.tools.common.ui.WizardUtils;
 import org.jboss.tools.common.ui.databinding.ParametrizableWizardPageSupport;
+import org.jboss.tools.openshift.express.internal.core.console.UserDelegate;
 import org.jboss.tools.openshift.express.internal.ui.OpenShiftUIActivator;
 import org.jboss.tools.openshift.express.internal.ui.OpenshiftUIMessages;
 import org.jboss.tools.openshift.express.internal.ui.utils.Logger;
 import org.jboss.tools.openshift.express.internal.ui.utils.StringUtils;
+import org.w3c.dom.UserDataHandler;
 
 /**
  * @author Andre Dietisheim
@@ -242,4 +244,8 @@
 			return targets;
 		}
 	}
+	
+	public UserDelegate getUser() {
+		return pageModel.getUser();
+	}
 }

Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/CredentialsWizardPageModel.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/CredentialsWizardPageModel.java	2012-05-25 13:16:50 UTC (rev 41418)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/CredentialsWizardPageModel.java	2012-05-25 13:42:22 UTC (rev 41419)
@@ -217,5 +217,9 @@
 			erasePasswordStore();
 		}
 	}
+	
+	public UserDelegate getUser() {
+		return wizardModel.getUser();
+	}
 
 }



More information about the jbosstools-commits mailing list