[jboss-svn-commits] JBL Code SVN: r20667 - in labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools: META-INF and 5 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jun 20 14:37:47 EDT 2008


Author: john.graham at jboss.org
Date: 2008-06-20 14:37:47 -0400 (Fri, 20 Jun 2008)
New Revision: 20667

Added:
   labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/plugin.properties
Modified:
   labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/META-INF/MANIFEST.MF
   labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/build.properties
   labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/plugin.xml
   labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/GuvnorLocationManager.java
   labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/GuvnorRepository.java
   labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/webdav/WebDavAuthenticator.java
   labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/webdav/WebDavClient.java
   labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/RepositoryView.java
   labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/model/TreeParent.java
   labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/wizards/NewRepLocationWizard.java
Log:
Refactor to use platform key-ring for user name and password

Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/META-INF/MANIFEST.MF
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/META-INF/MANIFEST.MF	2008-06-20 16:29:34 UTC (rev 20666)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/META-INF/MANIFEST.MF	2008-06-20 18:37:47 UTC (rev 20667)
@@ -1,10 +1,11 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
-Bundle-Name: JBoss Guvnor Tools Plug-in
+Bundle-Name: %plugin.name
 Bundle-SymbolicName: org.guvnor.tools;singleton:=true
 Bundle-Version: 0.5.0
 Bundle-Activator: org.guvnor.tools.Activator
-Bundle-Vendor: JBoss.org
+Bundle-Vendor: %plugin.provider
+Bundle-Localization: plugin
 Require-Bundle: org.eclipse.ui,
  org.eclipse.ui.ide,
  org.eclipse.core.resources,

Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/build.properties
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/build.properties	2008-06-20 16:29:34 UTC (rev 20666)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/build.properties	2008-06-20 18:37:47 UTC (rev 20667)
@@ -4,6 +4,7 @@
                META-INF/,\
                .,\
                icons/,\
-               about.html
+               about.html,\
+               plugin.properties
 src.includes = about.html,\
                src/

Added: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/plugin.properties
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/plugin.properties	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/plugin.properties	2008-06-20 18:37:47 UTC (rev 20667)
@@ -0,0 +1,12 @@
+plugin.name = JBoss Guvnor Tools Plug-in
+plugin.provider = JBoss.org
+
+category.name = Guvnor
+
+repositories.view.name = Guvnor Repositories
+resource.history.view.name = Guvnor Resource History
+
+wiz.new.repository.location = Guvnor repository location
+wiz.new.repository.location.desc = New Guvnor repository location
+
+persp.name = Guvnor Repository Exploring
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/plugin.xml
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/plugin.xml	2008-06-20 16:29:34 UTC (rev 20666)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/plugin.xml	2008-06-20 18:37:47 UTC (rev 20667)
@@ -3,17 +3,17 @@
 <plugin>
 
    <extension point="org.eclipse.ui.views">
-      <category name="Guvnor" id="org.guvnor.tools"/>
-      <view name="Guvnor Repositories"
+      <category name="%category.name" id="org.guvnor.tools"/>
+      <view name="%repositories.view.name"
             icon="icons/guvnor_rep.gif"
             category="org.guvnor.tools"
             class="org.guvnor.tools.views.RepositoryView"
             id="org.guvnor.tools.views.RepositoryView"/>
-      <view category="org.guvnor.tools"
+      <view name="%resource.history.view.name"
+            icon="icons/guvnor_rep.gif"
+            category="org.guvnor.tools"
             class="org.guvnor.tools.views.ResourceHistoryView"
-            icon="icons/guvnor_rep.gif"
-            id="org.guvnor.tools.views.ResourceHistoryView"
-            name="Guvnor Resource History"/>
+            id="org.guvnor.tools.views.ResourceHistoryView"/>
    </extension>
    
    <extension point="org.eclipse.ui.perspectiveExtensions">
@@ -26,7 +26,7 @@
    </extension>
   
   <extension point = "org.eclipse.ui.newWizards">
-		<category id = "org.guvnor.tools.wizcat" name="Guvnor"/>
+		<category id = "org.guvnor.tools.wizcat" name="%category.name"/>
 		<!--
 	 	<wizard id = "org.guvnor.tools.wizards.CheckoutWizard"
 	      	    name = "Checkout Projects from Guvnor"
@@ -37,12 +37,12 @@
 	    	   <description>Checkout Projects from Guvnor</description>
 		</wizard>
 		-->
-		<wizard id = "org.guvnor.tools.wizards.NewRepLocationWizard"
-	      	    name = "Guvnor repository location"
+		<wizard name = "%wiz.new.repository.location"
+		        id = "org.guvnor.tools.wizards.NewRepLocationWizard"
 		        class="org.guvnor.tools.wizards.NewRepLocationWizard"
 		        category="org.guvnor.tools.wizcat"
 		        icon="icons/guvnor_rep.gif">
-	    	   <description>New Guvnor repository location</description>
+	    	   <description>%wiz.new.repository.location.desc</description>
 		</wizard>
 	</extension>
 	<!--
@@ -73,7 +73,7 @@
   </extension>
  
   <extension point="org.eclipse.ui.perspectives">
-      <perspective name="Guvnor Repository Exploring"
+      <perspective name="%persp.name"
                    icon="icons/guvnor_rep.gif"
                    class="org.guvnor.tools.perspectives.GuvnorRepExplorerPerspective"
                    id="org.guvnor.tools.perspectives.GuvnorRepExplorerPerspective"/>

Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/GuvnorLocationManager.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/GuvnorLocationManager.java	2008-06-20 16:29:34 UTC (rev 20666)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/GuvnorLocationManager.java	2008-06-20 18:37:47 UTC (rev 20667)
@@ -6,10 +6,12 @@
 import java.io.FileOutputStream;
 import java.io.InputStreamReader;
 import java.io.PrintWriter;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
 
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
 
 public class GuvnorLocationManager {
 	
@@ -28,8 +30,8 @@
 		}
 	}
 	
-	public void addRespository(String location, String username, String password) throws Exception {
-		addRepository(new GuvnorRepository(location, username, password));
+	public void addRespository(String location) throws Exception {
+		addRepository(new GuvnorRepository(location));
 	}
 	
 	public void addRepository(GuvnorRepository rep) throws Exception {
@@ -50,13 +52,15 @@
 	}
 	
 	public boolean removeRepository(String rep) {
-		GuvnorRepository theRep = findRepository(rep);
-		if (theRep == null) {
-			return false;
-		}
-		boolean res = repList.remove(theRep);
-		notifyListeners(IRepositorySetListener.REP_ADDED);
+		boolean res = false;
 		try {
+			GuvnorRepository theRep = findRepository(rep);
+			if (theRep == null) {
+				return false;
+			}
+			res = repList.remove(theRep);
+Platform.flushAuthorizationInfo(new URL(rep), "", "basic");
+			notifyListeners(IRepositorySetListener.REP_ADDED);
 			commit();
 		} catch (Exception e) {
 			e.printStackTrace();
@@ -83,14 +87,13 @@
 		for (int i = 0; i < repList.size(); i++) {
 			GuvnorRepository oneRep = repList.get(i);
 			writer.println(oneRep.getLocation());
-			writer.println(oneRep.getUsername());
-			writer.println(oneRep.getPassword());
 		}
 		writer.flush();
 		fos.flush();
 		fos.close();
 	}
 	
+	@SuppressWarnings("unchecked")
 	private void load() throws Exception {
 		repList.clear();
 		File repFile = Activator.getDefault().getStateLocation().
@@ -103,18 +106,9 @@
 		String oneRep = null;
 		do {
 			oneRep = reader.readLine();
-			if (oneRep != null && oneRep.trim().length() == 0) {
-				oneRep = null;
+			if (oneRep != null && oneRep.trim().length() > 0) {
+				repList.add(new GuvnorRepository(oneRep));
 			}
-			String oneUN = reader.readLine();
-			String onePW = reader.readLine();
-			if (oneRep != null) {
-				if (oneUN != null && onePW != null) {
-					repList.add(new GuvnorRepository(oneRep, oneUN, onePW));
-				} else {
-					System.out.println("incomplete rep: " + oneRep);
-				}
-			}
 		} while (oneRep != null);
 	}
 	

Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/GuvnorRepository.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/GuvnorRepository.java	2008-06-20 16:29:34 UTC (rev 20666)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/GuvnorRepository.java	2008-06-20 18:37:47 UTC (rev 20667)
@@ -2,24 +2,12 @@
 
 public class GuvnorRepository {
 	private String location;
-	private String username;
-	private String password;
 	
-	public GuvnorRepository(String location, String username, String password) {
+	public GuvnorRepository(String location) {
 		this.location = location;
-		this.username = username;
-		this.password = password;
 	}
 
 	public String getLocation() {
 		return location;
 	}
-
-	public String getUsername() {
-		return username;
-	}
-
-	public String getPassword() {
-		return password;
-	}
 }

Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/webdav/WebDavAuthenticator.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/webdav/WebDavAuthenticator.java	2008-06-20 16:29:34 UTC (rev 20666)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/webdav/WebDavAuthenticator.java	2008-06-20 18:37:47 UTC (rev 20667)
@@ -4,6 +4,7 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.eclipse.core.runtime.Platform;
 import org.eclipse.webdav.http.client.IAuthenticator;
 
 public class WebDavAuthenticator implements IAuthenticator {
@@ -33,14 +34,10 @@
 		serverAuthMaps = new HashMap<String, ServerAuthenInfo>();
 	}
 	
-	public WebDavAuthenticator(URL serverUrl, 
-							  String username, 
-							  String password, 
-							  String scheme) {
+	@SuppressWarnings("unchecked")
+	public WebDavAuthenticator(URL serverUrl, String scheme) {
 		this();
-		HashMap<String, String> info = new HashMap<String, String>();
-		info.put("username", username);
-		info.put("password", password);
+		Map info = Platform.getAuthorizationInfo(serverUrl, "", scheme);
 		addAuthenticationInfo(serverUrl, null, scheme, info);
 	}
 	

Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/webdav/WebDavClient.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/webdav/WebDavClient.java	2008-06-20 16:29:34 UTC (rev 20666)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/webdav/WebDavClient.java	2008-06-20 18:37:47 UTC (rev 20667)
@@ -22,14 +22,10 @@
 	/**
 	 * Ctor for this wrapper WebDav client.
 	 * @param serverUrl The WebDav repository location (server)
-	 * @param username User identification
-	 * @param password User password
 	 * @param scheme The authentication scheme { Basic | Digest }
 	 */
-	public WebDavClient(URL serverUrl, String username, 
-			           String password, String scheme) {
-		WebDavAuthenticator authen =  new WebDavAuthenticator(serverUrl, username, 
-				                                             password, scheme);
+	public WebDavClient(URL serverUrl, String scheme) {
+		WebDavAuthenticator authen =  new WebDavAuthenticator(serverUrl, scheme);
 		HttpClient hClient = new HttpClient();
 		hClient.setAuthenticator(authen);
 		client = new RemoteDAVClient(new WebDAVFactory(), hClient);
@@ -38,14 +34,10 @@
 	/**
 	 * Ctor for this wrapper WebDav client, assuming "basic" authentication.
 	 * @param serverUrl The WebDav repository location (server)
-	 * @param username User identification
-	 * @param password User password
 	 */
-	public WebDavClient(URL serverUrl,
-			           String username,
-			           String password) {
+	public WebDavClient(URL serverUrl) {
 		// basic authentication is assumed as the default
-		this(serverUrl, username, password, "basic");
+		this(serverUrl, "basic");
 	}
 	
 	/**

Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/RepositoryView.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/RepositoryView.java	2008-06-20 16:29:34 UTC (rev 20666)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/RepositoryView.java	2008-06-20 18:37:47 UTC (rev 20667)
@@ -4,10 +4,14 @@
 import java.io.FileOutputStream;
 import java.io.PrintWriter;
 import java.net.URL;
+import java.rmi.server.UID;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Properties;
 
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.IMenuListener;
 import org.eclipse.jface.action.IMenuManager;
@@ -105,16 +109,10 @@
 					return;
 				}
 				try {
-					String contents = getResourceContents(target);
-					IPath path = Activator.getDefault().getStateLocation();
-					File transfer = new File(path.toOSString() + File.separator + target.getName());
-					transfer.deleteOnExit();
-					FileOutputStream fos = new FileOutputStream(transfer);
-					PrintWriter writer = new PrintWriter(fos);
-					writer.write(contents);
-					writer.flush();
-					writer.close();
-					event.data = new String[] { transfer.getAbsolutePath() };
+					List<String> files = prepareFileTransfer(target);
+					String[] res = new String[files.size()];
+					files.toArray(res);
+					event.data = res;
 				} catch (Exception e) {
 					Activator.getDefault().writeLog(IStatus.ERROR, e.getMessage(), e);
 				}
@@ -133,7 +131,46 @@
 			}
 		});
 	}
-
+	
+	private List<String> prepareFileTransfer(TreeObject node) throws Exception {
+		List<String> res = new ArrayList<String>();
+		String contents = getResourceContents(node);
+		IPath path = new Path(Activator.getDefault().getStateLocation().toOSString() + 
+								File.separator + new UID().toString());
+		if (!path.toFile().mkdir()) {
+			throw new Exception("Could not create directory " + path.toOSString());
+		}
+		path.toFile().deleteOnExit();
+		File transfer = new File(path + File.separator + node.getName());
+		transfer.deleteOnExit();
+		FileOutputStream fos = new FileOutputStream(transfer);
+		PrintWriter writer = new PrintWriter(fos);
+		writer.write(contents);
+		writer.flush();
+		writer.close();
+		res.add(transfer.getAbsolutePath());
+		
+		IPath metaPath = new Path(path.toOSString() + File.separator + ".guvnorinfo");
+		if (!metaPath.toFile().mkdir()) {
+			throw new Exception("Could not create directory " + metaPath.toOSString());
+		}
+		metaPath.toFile().deleteOnExit();
+		File metaFile = new File(metaPath.toOSString() + File.separator + node.getName());
+		metaFile.deleteOnExit();
+		fos = new FileOutputStream(metaFile);
+		Properties props = new Properties();
+		props.put("repository", node.getGuvnorRepository().getLocation());
+		props.put("fullpath", node.getFullPath());
+		props.put("filename", node.getName());
+		props.put("lastmodified", node.getResourceProps().getLastModifiedDate());
+		props.store(fos, null);
+		fos.flush();
+		fos.close();
+		res.add(metaFile.getAbsolutePath());
+		
+		return res;
+	}
+	
 	private void hookContextMenu() {
 		MenuManager menuMgr = new MenuManager("#PopupMenu");
 		menuMgr.setRemoveAllWhenShown(true);
@@ -252,8 +289,7 @@
 		GuvnorRepository rep = node.getGuvnorRepository();
 		WebDavClient webdav = WebDavServerCache.getWebDavClient(rep.getLocation());
 		if (webdav == null) {
-			webdav = new WebDavClient(new URL(rep.getLocation()), 
-					                 rep.getUsername(), rep.getPassword());
+			webdav = new WebDavClient(new URL(rep.getLocation()));
 			WebDavServerCache.cacheWebDavClient(rep.getLocation(), webdav);
 		}
 		return webdav.getResourceContents(node.getFullPath());	

Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/model/TreeParent.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/model/TreeParent.java	2008-06-20 16:29:34 UTC (rev 20666)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/model/TreeParent.java	2008-06-20 18:37:47 UTC (rev 20667)
@@ -82,8 +82,7 @@
 			try {
 				WebDavClient webdav = WebDavServerCache.getWebDavClient(rep.getLocation());
 				if (webdav == null) {
-					webdav = new WebDavClient(new URL(rep.getLocation()), 
-							                 rep.getUsername(), rep.getPassword());
+					webdav = new WebDavClient(new URL(rep.getLocation()));
 					WebDavServerCache.cacheWebDavClient(rep.getLocation(), webdav);
 				}
 				Map<String, ResourceProperties> listing = webdav.listDirectory(node.getFullPath());

Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/wizards/NewRepLocationWizard.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/wizards/NewRepLocationWizard.java	2008-06-20 16:29:34 UTC (rev 20666)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/wizards/NewRepLocationWizard.java	2008-06-20 18:37:47 UTC (rev 20667)
@@ -1,6 +1,11 @@
 package org.guvnor.tools.wizards;
 
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.wizard.Wizard;
 import org.eclipse.ui.INewWizard;
@@ -34,10 +39,12 @@
 	@Override
 	public boolean performFinish() {
 		try {
-			Activator.getLocationManager().addRepository(
-					new GuvnorRepository(model.getRepLocation(), 
-							            model.getUsername(), 
-							            model.getPassword()));
+			Activator.getLocationManager().addRepository(new GuvnorRepository(model.getRepLocation()));
+			Map<String, String> info = new HashMap<String, String>();
+			//TODO: Deal with case where un or password are not specified
+			info.put("username", model.getUsername());
+			info.put("password", model.getPassword());
+			Platform.addAuthorizationInfo(new URL(model.getRepLocation()), "", "basic", info);
 		} catch (Exception e) {
 			Activator.getDefault().writeLog(IStatus.ERROR, e.getMessage(), e);
 		}




More information about the jboss-svn-commits mailing list