From 2596ff39fc61ccb95d85ceed4c6c3f85db8b1045 Mon Sep 17 00:00:00 2001
From: Konstantinos Giannoutakis <kgiannou@iti.gr>
Date: Fri, 20 May 2011 07:03:03 +0000
Subject: [PATCH] some improvements..

---
 .../plugin.xml                                |  10 +-
 .../actions/ConfigurationLauncher.java        |  56 ++++++-
 .../actions/DebugAction.java                  |  25 ++-
 .../actions/RunAction.java                    |  14 ++
 .../actions/UploadArtifact.java               | 158 ++++++++----------
 5 files changed, 157 insertions(+), 106 deletions(-)

diff --git a/build/org.universaal.tools.buildPlugin/plugin.xml b/build/org.universaal.tools.buildPlugin/plugin.xml
index 8829930f9..89bd8492c 100644
--- a/build/org.universaal.tools.buildPlugin/plugin.xml
+++ b/build/org.universaal.tools.buildPlugin/plugin.xml
@@ -33,7 +33,15 @@
                toolbarPath="uAALGroup"
                id="org.universaal.tools.buildserviceapplication.actions.UploadAction">			
          </action>
-                  
+        <action
+               label="&amp;Debug universAAL application"
+               icon="icons/run.png"
+               class="org.universaal.tools.buildserviceapplication.actions.DebugAction"
+               tooltip="Debug universAAL application"
+               menubarPath="org.universaal.tools.AALStudio.menu/uAALGroup"
+               toolbarPath="uAALGroup"
+               id="org.universaal.tools.buildserviceapplication.actions.DebugAction" >			
+         </action>                  
          <action
                label="&amp;Run universAAL application"
                icon="icons/run.png"
diff --git a/build/org.universaal.tools.buildPlugin/src/org/universaal/tools/buildserviceapplication/actions/ConfigurationLauncher.java b/build/org.universaal.tools.buildPlugin/src/org/universaal/tools/buildserviceapplication/actions/ConfigurationLauncher.java
index 2bd77ef61..d296fe83c 100644
--- a/build/org.universaal.tools.buildPlugin/src/org/universaal/tools/buildserviceapplication/actions/ConfigurationLauncher.java
+++ b/build/org.universaal.tools.buildPlugin/src/org/universaal/tools/buildserviceapplication/actions/ConfigurationLauncher.java
@@ -5,11 +5,14 @@ package org.universaal.tools.buildserviceapplication.actions;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.*;
+import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.debug.core.*;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.dialogs.MessageDialog;
 
 
+
+
 public class ConfigurationLauncher extends Action{
 	private String configurationName="";
 
@@ -21,9 +24,24 @@ public class ConfigurationLauncher extends Action{
 
 	public void run() {
 		try {
-			ILaunchConfiguration config = findLaunchConfiguration();			
+			final ILaunchConfigurationWorkingCopy config = findLaunchConfiguration();			
 			if (config != null){
-				config.launch(ILaunchManager.RUN_MODE, null);			
+				Job job = new Job("AAL Studio") {
+					protected IStatus run(IProgressMonitor monitor) {
+						monitor.beginTask("Running application ...", 50);
+						try{
+							config.launch(ILaunchManager.RUN_MODE, null);	
+						}
+						catch(Exception ex){
+							ex.printStackTrace();
+							return Status.CANCEL_STATUS;
+						}
+						return Status.OK_STATUS;
+					}
+				};
+
+				job.setUser(true);
+				job.schedule();		
 			}
 			else{
 				ResourcesPlugin.getWorkspace().getRoot()
@@ -31,7 +49,7 @@ public class ConfigurationLauncher extends Action{
 				MessageDialog
 				.openInformation(null,
 						"BuildServiceApplication",
-						"An error occured while running service.\n Please try again");
+						"An error occured while running appication.\n Please try again");
 			}
 		} catch (Exception e) {
 			e.printStackTrace();
@@ -42,17 +60,41 @@ public class ConfigurationLauncher extends Action{
 	
 	public void debug() {
 		try {
-			ILaunchConfiguration config = findLaunchConfiguration();			
+			final ILaunchConfiguration config = findLaunchConfiguration();			
 			if (config != null){
-				config.launch(ILaunchManager.DEBUG_MODE, null);	
+				Job job = new Job("AAL Studio") {
+					protected IStatus run(IProgressMonitor monitor) {
+						monitor.beginTask("Running application ...", 50);
+						try{
+							config.launch(ILaunchManager.DEBUG_MODE, null);
+						}
+						catch(Exception ex){
+							ex.printStackTrace();
+							return Status.CANCEL_STATUS;
+						}
+						return Status.OK_STATUS;
+					}
+				};
+
+				job.setUser(true);
+				job.schedule();		
+			}
+			else{
+				ResourcesPlugin.getWorkspace().getRoot()
+				.refreshLocal(IResource.DEPTH_INFINITE, null);
+				MessageDialog
+				.openInformation(null,
+						"BuildServiceApplication",
+						"An error occured while running appication.\n Please try again");
 			}
 		} catch (Exception e) {
 			e.printStackTrace();
+			
 		}
 	}
 	
 	
-	public ILaunchConfiguration findLaunchConfiguration() throws CoreException {		
+	public ILaunchConfigurationWorkingCopy findLaunchConfiguration() throws CoreException {		
 		ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager();
 		   ILaunchConfigurationType type =
 		      manager.getLaunchConfigurationType("org.eclipse.pde.ui.EquinoxLauncher");	   
@@ -60,7 +102,7 @@ public class ConfigurationLauncher extends Action{
 		   for (int i = 0; i < lcs.length; ++i) {
 		        if (lcs[i].getName().equals(configurationName)) {
 		        	ILaunchConfiguration t=lcs[i];	
-		        	return t;		        	
+		        	return t.getWorkingCopy();		        	
 		        }
 		   }
 		 return null;		
diff --git a/build/org.universaal.tools.buildPlugin/src/org/universaal/tools/buildserviceapplication/actions/DebugAction.java b/build/org.universaal.tools.buildPlugin/src/org/universaal/tools/buildserviceapplication/actions/DebugAction.java
index 58a6d1a1b..320197a99 100644
--- a/build/org.universaal.tools.buildPlugin/src/org/universaal/tools/buildserviceapplication/actions/DebugAction.java
+++ b/build/org.universaal.tools.buildPlugin/src/org/universaal/tools/buildserviceapplication/actions/DebugAction.java
@@ -33,19 +33,26 @@ public class DebugAction implements IWorkbenchWindowActionDelegate {
 	 * @see IWorkbenchWindowActionDelegate#run
 	 */
 	public void run(IAction action) {
-		if (BuildAction.buildedProjects.contains(BuildAction
-				.getSelectedProjectPath())) {
-			try {
-				ConfigurationLauncher launcher = new ConfigurationLauncher(CreateConfigurationFile.artifactId);
-				launcher.debug();
-			} catch (Exception ex) {
-				ex.printStackTrace();
+		if (!BuildAction.getSelectedProjectPath().equals("")) {
+			if (BuildAction.buildedProjects.contains(BuildAction
+					.getSelectedProjectPath())) {
+				try {
+					ConfigurationLauncher launcher = new ConfigurationLauncher(
+							CreateConfigurationFile.artifactId);
+					launcher.debug();
+				} catch (Exception ex) {
+					ex.printStackTrace();
+					MessageDialog.openInformation(null,
+							"BuildServiceApplication",
+							"Could not debug application");
+				}
+			} else {
 				MessageDialog.openInformation(null, "BuildServiceApplication",
-						"Could not run application");
+						"Please build the project first.");
 			}
 		} else {
 			MessageDialog.openInformation(null, "BuildServiceApplication",
-					"Please build the project first.");
+					"Please select a project in the Project Explorer tab.");
 		}
 	}
 
diff --git a/build/org.universaal.tools.buildPlugin/src/org/universaal/tools/buildserviceapplication/actions/RunAction.java b/build/org.universaal.tools.buildPlugin/src/org/universaal/tools/buildserviceapplication/actions/RunAction.java
index 20f45024d..415decf5a 100644
--- a/build/org.universaal.tools.buildPlugin/src/org/universaal/tools/buildserviceapplication/actions/RunAction.java
+++ b/build/org.universaal.tools.buildPlugin/src/org/universaal/tools/buildserviceapplication/actions/RunAction.java
@@ -6,6 +6,7 @@ import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.IWorkbenchWindowActionDelegate;
 
+
 /**
  * Our sample action implements workbench action delegate. The action proxy will
  * be created by the workbench and shown in the UI. When the user tries to use
@@ -35,6 +36,19 @@ public class RunAction implements IWorkbenchWindowActionDelegate {
 			if (BuildAction.buildedProjects.contains(BuildAction
 					.getSelectedProjectPath())) {
 				try {
+					
+					
+				
+					
+					
+					
+					
+					
+					
+					
+					
+					
+					
 					ConfigurationLauncher launcher = new ConfigurationLauncher(
 							CreateConfigurationFile.artifactId);
 					launcher.run();
diff --git a/build/org.universaal.tools.buildPlugin/src/org/universaal/tools/buildserviceapplication/actions/UploadArtifact.java b/build/org.universaal.tools.buildPlugin/src/org/universaal/tools/buildserviceapplication/actions/UploadArtifact.java
index f1f10ef47..645aee318 100644
--- a/build/org.universaal.tools.buildPlugin/src/org/universaal/tools/buildserviceapplication/actions/UploadArtifact.java
+++ b/build/org.universaal.tools.buildPlugin/src/org/universaal/tools/buildserviceapplication/actions/UploadArtifact.java
@@ -15,25 +15,23 @@ import org.codehaus.plexus.util.Base64;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.ui.IWorkbenchWindow;
 
-
-
-
 public class UploadArtifact {
-	private String NEXUS_URL="";
-	private String NEXUS_USERNAME="";
-	private String NEXUS_PASSWORD="";		
-	private IWorkbenchWindow window;	
+	private String NEXUS_URL = "";
+	private String NEXUS_USERNAME = "";
+	private String NEXUS_PASSWORD = "";
+	private IWorkbenchWindow window;
 	private String repositoryPath = "";
 	private boolean artifactUploaded = true;
 	private boolean isArtifactRelease = true;
-	
-	public UploadArtifact(String nexusUrl, String nexusUserName, String nexusPassword){
-		this.NEXUS_URL=nexusUrl;
-		this.NEXUS_USERNAME=nexusUserName;
-		this.NEXUS_PASSWORD=nexusPassword;
+
+	public UploadArtifact(String nexusUrl, String nexusUserName,
+			String nexusPassword) {
+		this.NEXUS_URL = nexusUrl;
+		this.NEXUS_USERNAME = nexusUserName;
+		this.NEXUS_PASSWORD = nexusPassword;
 	}
-	
-	public void upload(){
+
+	public void upload() {
 		if (!BuildAction.getSelectedProjectPath().equals("")) {
 			if (BuildAction.buildedProjects.contains(BuildAction
 					.getSelectedProjectPath())) {
@@ -92,7 +90,7 @@ public class UploadArtifact {
 					"Please select a project in the Project Explorer tab.");
 		}
 	}
-	
+
 	private void postArtifact() {
 		artifactUploaded = true;
 		String[] tempString = MavenCli.DEFAULT_USER_SETTINGS_FILE
@@ -104,30 +102,23 @@ public class UploadArtifact {
 		try {
 			String webPage = "";
 			if (isArtifactRelease) {
-				webPage = NEXUS_URL+"releases/"
+				webPage = NEXUS_URL + "releases/"
 						+ CreateConfigurationFile.groupId.replace(".", "/")
-						+ "/"
-						+ CreateConfigurationFile.artifactId
-						+ "/"
-						+ CreateConfigurationFile.artifactVersion
-						+ "/"
+						+ "/" + CreateConfigurationFile.artifactId + "/"
+						+ CreateConfigurationFile.artifactVersion + "/"
 						+ BuildAction.artifactFileName;
 			} else {
-				webPage = NEXUS_URL+"snapshots/"
+				webPage = NEXUS_URL + "snapshots/"
 						+ CreateConfigurationFile.groupId.replace(".", "/")
-						+ "/"
-						+ CreateConfigurationFile.artifactId
-						+ "/"
-						+ CreateConfigurationFile.artifactVersion
-						+ "/"
+						+ "/" + CreateConfigurationFile.artifactId + "/"
+						+ CreateConfigurationFile.artifactVersion + "/"
 						+ BuildAction.artifactFileName;
 			}
-		
 
 			String authString = NEXUS_USERNAME + ":" + NEXUS_PASSWORD;
 			byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
 			String authStringEnc = new String(authEncBytes);
-			
+
 			URL url = new URL(webPage);
 			HttpURLConnection urlConnection = (HttpURLConnection) url
 					.openConnection();
@@ -139,22 +130,20 @@ public class UploadArtifact {
 
 			OutputStreamWriter out = new OutputStreamWriter(urlConnection
 					.getOutputStream());
-			
+
 			File file = new File(repositoryPath + "repository/"
 					+ CreateConfigurationFile.groupId.replace(".", "/") + "/"
 					+ CreateConfigurationFile.artifactId + "/"
 					+ CreateConfigurationFile.artifactVersion + "/"
 					+ BuildAction.artifactFileName);
-			try {
-				FileInputStream fis = new FileInputStream(file);
-				char current;
-				while (fis.available() > 0) {
-					current = (char) fis.read();
-					out.write(current);
-				}
-			} catch (IOException e) {
-				e.printStackTrace();
+
+			FileInputStream fis = new FileInputStream(file);
+			char current;
+			while (fis.available() > 0) {
+				current = (char) fis.read();
+				out.write(current);
 			}
+
 			out.close();
 			InputStream is = urlConnection.getInputStream();
 			InputStreamReader isr = new InputStreamReader(is);
@@ -164,7 +153,7 @@ public class UploadArtifact {
 			while ((numCharsRead = isr.read(charArray)) > 0) {
 				sb.append(charArray, 0, numCharsRead);
 			}
-		
+
 		} catch (Exception ex) {
 			artifactUploaded = false;
 			ex.printStackTrace();
@@ -180,48 +169,45 @@ public class UploadArtifact {
 				String webPage = "";
 				if (metadata.getRemoteFilename().endsWith(".pom")) {
 					if (isArtifactRelease) {
-						webPage = NEXUS_URL+"releases/"
-								+ CreateConfigurationFile.groupId.replace(".", "/")
-								+ "/"
-								+ CreateConfigurationFile.artifactId
-								+ "/"
-								+ CreateConfigurationFile.artifactVersion
-								+ "/"
+						webPage = NEXUS_URL
+								+ "releases/"
+								+ CreateConfigurationFile.groupId.replace(".",
+										"/") + "/"
+								+ CreateConfigurationFile.artifactId + "/"
+								+ CreateConfigurationFile.artifactVersion + "/"
 								+ metadata.getRemoteFilename();
 					} else {
-						webPage = NEXUS_URL+"snapshots/"
-								+ CreateConfigurationFile.groupId.replace(".", "/")
-								+ "/"
-								+ CreateConfigurationFile.artifactId
-								+ "/"
-								+ CreateConfigurationFile.artifactVersion
-								+ "/"
+						webPage = NEXUS_URL
+								+ "snapshots/"
+								+ CreateConfigurationFile.groupId.replace(".",
+										"/") + "/"
+								+ CreateConfigurationFile.artifactId + "/"
+								+ CreateConfigurationFile.artifactVersion + "/"
 								+ metadata.getRemoteFilename();
 					}
 				} else {
 					if (isArtifactRelease) {
-						webPage = NEXUS_URL+"releases/"
-								+ CreateConfigurationFile.groupId.replace(".", "/")
-								+ "/"
-								+ CreateConfigurationFile.artifactId
-								+ "/"
+						webPage = NEXUS_URL
+								+ "releases/"
+								+ CreateConfigurationFile.groupId.replace(".",
+										"/") + "/"
+								+ CreateConfigurationFile.artifactId + "/"
 								+ metadata.getRemoteFilename();
 					} else {
-						webPage = NEXUS_URL+"snapshots/"
-								+ CreateConfigurationFile.groupId.replace(".", "/")
-								+ "/"
-								+ CreateConfigurationFile.artifactId
-								+ "/"
+						webPage = NEXUS_URL
+								+ "snapshots/"
+								+ CreateConfigurationFile.groupId.replace(".",
+										"/") + "/"
+								+ CreateConfigurationFile.artifactId + "/"
 								+ metadata.getRemoteFilename();
 					}
 				}
-			
 
 				String authString = NEXUS_USERNAME + ":" + NEXUS_PASSWORD;
 				byte[] authEncBytes = Base64
 						.encodeBase64(authString.getBytes());
 				String authStringEnc = new String(authEncBytes);
-				
+
 				URL url = new URL(webPage);
 				HttpURLConnection urlConnection = (HttpURLConnection) url
 						.openConnection();
@@ -233,31 +219,27 @@ public class UploadArtifact {
 
 				OutputStreamWriter out = new OutputStreamWriter(urlConnection
 						.getOutputStream());
-				File file =null;
+				File file = null;
 				if (metadata.getRemoteFilename().endsWith(".pom")) {
 					file = new File(repositoryPath + "repository/"
-							+ CreateConfigurationFile.groupId.replace(".", "/") + "/"
-							+ CreateConfigurationFile.artifactId + "/"
-							+ CreateConfigurationFile.artifactVersion
-							+ "/"
+							+ CreateConfigurationFile.groupId.replace(".", "/")
+							+ "/" + CreateConfigurationFile.artifactId + "/"
+							+ CreateConfigurationFile.artifactVersion + "/"
 							+ metadata.getRemoteFilename());
+				} else {
+					file = new File(repositoryPath + "repository/"
+							+ CreateConfigurationFile.groupId.replace(".", "/")
+							+ "/" + CreateConfigurationFile.artifactId + "/"
+							+ "maven-metadata-local.xml");
 				}
-				else{
-				file = new File(repositoryPath + "repository/"
-						+ CreateConfigurationFile.groupId.replace(".", "/") + "/"
-						+ CreateConfigurationFile.artifactId + "/"
-						+ "maven-metadata-local.xml");
-				}
-				try {
-					FileInputStream fis = new FileInputStream(file);
-					char current;
-					while (fis.available() > 0) {
-						current = (char) fis.read();
-						out.write(current);
-					}
-				} catch (IOException e) {
-					e.printStackTrace();
+
+				FileInputStream fis = new FileInputStream(file);
+				char current;
+				while (fis.available() > 0) {
+					current = (char) fis.read();
+					out.write(current);
 				}
+
 				out.close();
 				InputStream is = urlConnection.getInputStream();
 				InputStreamReader isr = new InputStreamReader(is);
@@ -273,7 +255,5 @@ public class UploadArtifact {
 			}
 		}
 	}
-	
-	
-	
+
 }
-- 
GitLab