You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by sp...@apache.org on 2006/03/25 21:54:00 UTC

svn commit: r388825 - /geronimo/devtools/eclipse-plugin/trunk/maven-plugins/maven-geronimodevtools-plugin/src/main/java/org/apache/geronimo/eclipse/devtools/DownloadMojo.java

Author: sppatel
Date: Sat Mar 25 12:53:59 2006
New Revision: 388825

URL: http://svn.apache.org/viewcvs?rev=388825&view=rev
Log:
clean before extract

Modified:
    geronimo/devtools/eclipse-plugin/trunk/maven-plugins/maven-geronimodevtools-plugin/src/main/java/org/apache/geronimo/eclipse/devtools/DownloadMojo.java

Modified: geronimo/devtools/eclipse-plugin/trunk/maven-plugins/maven-geronimodevtools-plugin/src/main/java/org/apache/geronimo/eclipse/devtools/DownloadMojo.java
URL: http://svn.apache.org/viewcvs/geronimo/devtools/eclipse-plugin/trunk/maven-plugins/maven-geronimodevtools-plugin/src/main/java/org/apache/geronimo/eclipse/devtools/DownloadMojo.java?rev=388825&r1=388824&r2=388825&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/maven-plugins/maven-geronimodevtools-plugin/src/main/java/org/apache/geronimo/eclipse/devtools/DownloadMojo.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/maven-plugins/maven-geronimodevtools-plugin/src/main/java/org/apache/geronimo/eclipse/devtools/DownloadMojo.java Sat Mar 25 12:53:59 2006
@@ -22,12 +22,16 @@
 import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
 import java.util.Properties;
 
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.tools.ant.Project;
+import org.apache.tools.ant.taskdefs.Delete;
 import org.apache.tools.ant.taskdefs.Expand;
 import org.apache.tools.ant.taskdefs.GUnzip;
 import org.apache.tools.ant.taskdefs.Get;
@@ -60,10 +64,10 @@
 	 */
 	private URL platformUrl;
 
-	private File distributionDir;
-	private File installDir;
-	private File pluginsDir;
-	private File propsFile;
+	private File distributionsDir; // ../repository/eclipse/distributions
+	private File installToDir; // ../repository/eclipse/
+	private File pluginsDir; // ../repository/eclipse/plugins
+	private File propsFile; // ../repository/eclipse/install.props
 
 	private Properties props;
 
@@ -72,17 +76,17 @@
 	}
 
 	private void init() {
-		distributionDir = new File(localRepoLoc + File.separator + DISTRO_PATH);
-		installDir = new File(localRepoLoc + File.separator
+		distributionsDir = new File(localRepoLoc + File.separator + DISTRO_PATH);
+		installToDir = new File(localRepoLoc + File.separator
 				+ ECLIPSE_INSTALL_PATH);
-		pluginsDir = new File(installDir.getAbsolutePath() + File.separator
+		pluginsDir = new File(installToDir.getAbsolutePath() + File.separator
 				+ "eclipse" + File.separator + "plugins");
-		propsFile = new File(installDir.getAbsolutePath() + File.separator
+		propsFile = new File(installToDir.getAbsolutePath() + File.separator
 				+ "install.props");
 		getLog().debug("Distribution directory: "
-				+ distributionDir.getAbsolutePath());
+				+ distributionsDir.getAbsolutePath());
 		getLog().debug("Installation directory: "
-				+ installDir.getAbsolutePath());
+				+ installToDir.getAbsolutePath());
 	}
 
 	/*
@@ -98,15 +102,15 @@
 			return;
 		}
 
-		if (!distributionDir.exists())
-			distributionDir.mkdirs();
+		if (!distributionsDir.exists())
+			distributionsDir.mkdirs();
 
 		load();
 
 		URL[] allUrls = urls;
 		if (platformUrl != null) {
-			String platformDriver = platformUrl.toExternalForm()
-					+ "-" + getPlatformUrlSuffix();
+			String platformDriver = platformUrl.toExternalForm() + "-"
+					+ getPlatformUrlSuffix();
 			allUrls = new URL[urls.length + 1];
 			try {
 				URL url = new URL(platformDriver);
@@ -117,21 +121,36 @@
 			}
 		}
 
+		List images = new ArrayList();
 		for (int i = 0; i < allUrls.length; i++) {
 			File distro = getRepositoryDestination(allUrls[i]);
+			images.add(distro);
 			if (!distro.exists()) {
 				download(allUrls[i]);
 			} else {
 				getLog().info(distro.getName()
 						+ " already exists in local repository");
 			}
-			if (shouldExtract())
-				install(distro);
 		}
+
+		if (shouldExtract()) {
+			clean();
+			Iterator i = images.iterator();
+			while (i.hasNext())
+				install((File) i.next());
+		}
+
 		setModified();
 		save();
 	}
 
+	private void clean() {
+		Delete deleteTask = new Delete();
+		deleteTask.setProject(new Project());
+		deleteTask.setDir(pluginsDir.getParentFile());
+		deleteTask.execute();
+	}
+
 	private String getPlatformUrlSuffix() {
 		String os = System.getProperty("os.name");
 		if (os.startsWith("Windows")) {
@@ -184,14 +203,14 @@
 		if (expandTask != null) {
 			expandTask.setProject(new Project());
 			expandTask.setSrc(file);
-			expandTask.setDest(installDir);
+			expandTask.setDest(installToDir);
 			getLog().info("Extracting " + file.getAbsolutePath());
 			expandTask.execute();
 		}
 	}
 
 	private boolean shouldExtract() {
-		return distributionDir.lastModified() > getModified()
+		return distributionsDir.lastModified() > getModified()
 				|| !pluginsDir.exists()
 				|| pluginsDir.lastModified() > getModified();
 	}