SF.net SVN: ant-contrib: [171] ant-contrib/trunk

[email protected] Mon, 16 Jun 2008 10:39:14 -0700
Newsgroups gmane.comp.java.ant-contrib.devel
Message-ID <[email protected]>
Revision: 171
          http://ant-contrib.svn.sourceforge.net/ant-contrib/?rev=171&view=rev
Author:   mattinger
Date:     2008-06-16 10:38:26 -0700 (Mon, 16 Jun 2008)

Log Message:
-----------
Adding in Ivy 2.0 support, but maintaining backward compatibility with Ivy 1.4.1

Modified Paths:
--------------
    ant-contrib/trunk/ivy-conf.xml
    ant-contrib/trunk/ivy.xml
    ant-contrib/trunk/src/main/java/net/sf/antcontrib/net/URLImportTask.java

Added Paths:
-----------
    ant-contrib/trunk/lib/ivy/jars/ivy-2.0.0-rc1.jar
    ant-contrib/trunk/src/main/java/net/sf/antcontrib/net/Ivy14Adapter.java
    ant-contrib/trunk/src/main/java/net/sf/antcontrib/net/Ivy20Adapter.java
    ant-contrib/trunk/src/main/java/net/sf/antcontrib/net/IvyAdapter.java

Modified: ant-contrib/trunk/ivy-conf.xml
===================================================================
--- ant-contrib/trunk/ivy-conf.xml	2008-04-03 00:47:02 UTC (rev 170)
+++ ant-contrib/trunk/ivy-conf.xml	2008-06-16 17:38:26 UTC (rev 171)
@@ -1,5 +1,5 @@
 <ivy-conf>
-  <properties file="build.properties" />
+  <properties file="${ivy.conf.dir}/build.properties" />
   
   <conf defaultResolver="default-resolver" checkUpToDate="true" />
   

Modified: ant-contrib/trunk/ivy.xml
===================================================================
--- ant-contrib/trunk/ivy.xml	2008-04-03 00:47:02 UTC (rev 170)
+++ ant-contrib/trunk/ivy.xml	2008-06-16 17:38:26 UTC (rev 171)
@@ -18,7 +18,7 @@
                     conf="default->default" />
         <dependency org="apache"
                     name="ant"
-                    rev="1.6.5"
+                    rev="1.7.0"
                     conf="provided->default" />
         <dependency org="apache"
                     name="xercesImpl"
@@ -32,6 +32,10 @@
                     name="commons-logging"
                     rev="1.0.4"
                     conf="default->default" />
+        <dependency org="apache"
+                    name="ivy"
+                    rev="2.0.0-rc1"
+                    conf="default->default" />
         <dependency org="jayasoft"
                     name="ivy"
                     rev="1.4.1"

Added: ant-contrib/trunk/lib/ivy/jars/ivy-2.0.0-rc1.jar
===================================================================
(Binary files differ)


Property changes on: ant-contrib/trunk/lib/ivy/jars/ivy-2.0.0-rc1.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: ant-contrib/trunk/src/main/java/net/sf/antcontrib/net/Ivy14Adapter.java
===================================================================
--- ant-contrib/trunk/src/main/java/net/sf/antcontrib/net/Ivy14Adapter.java	                        (rev 0)
+++ ant-contrib/trunk/src/main/java/net/sf/antcontrib/net/Ivy14Adapter.java	2008-06-16 17:38:26 UTC (rev 171)
@@ -0,0 +1,130 @@
+package net.sf.antcontrib.net;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.apache.tools.ant.BuildException;
+
+import fr.jayasoft.ivy.ant.IvyCacheFileset;
+import fr.jayasoft.ivy.ant.IvyConfigure;
+
+public class Ivy14Adapter
+	implements IvyAdapter {
+
+	public void configure(URLImportTask task) {
+		IvyConfigure configure = new IvyConfigure();
+		configure.setProject(task.getProject());
+		configure.setLocation(task.getLocation());
+		configure.setOwningTarget(task.getOwningTarget());
+		configure.setTaskName(task.getTaskName());
+		configure.init();
+		
+		URL ivyConfUrl = task.getIvyConfUrl();
+		File ivyConfFile = task.getIvyConfFile();
+		String repositoryUrl = task.getRepositoryUrl();
+		File repositoryDir = task.getRepositoryDir();
+		String ivyPattern = task.getIvyPattern();
+		String artifactPattern = task.getArtifactPattern();
+		
+		if (ivyConfUrl != null) {
+			if (ivyConfUrl.getProtocol().equalsIgnoreCase("file")) {
+				String path = ivyConfUrl.getPath();
+				File f = new File(path);
+				if (! f.isAbsolute()) {
+					f = new File(task.getProject().getBaseDir(), path);
+				}
+				configure.setFile(f);
+			}
+			else {
+				try {
+					configure.setUrl(ivyConfUrl.toExternalForm());
+				}
+				catch (MalformedURLException e) {
+					throw new BuildException(e);
+				}
+			}
+		}
+		else if (ivyConfFile != null) {
+			configure.setFile(ivyConfFile);
+		}
+		else if (repositoryDir != null ||
+				 repositoryUrl != null) {
+			File temp = null;
+			FileWriter fw = null;
+			
+			try {
+				temp = File.createTempFile("ivyconf", ".xml");
+				temp.deleteOnExit();
+				fw = new FileWriter(temp);
+				fw.write("<ivyconf>");
+				fw.write("<conf defaultResolver=\"default\" />");
+				fw.write("<resolvers>");
+				if (repositoryDir != null) {
+					fw.write("<filesystem name=\"default\">");
+					fw.write("<ivy pattern=\"" + repositoryDir + "/" + ivyPattern + "\"  />");
+					fw.write("<artifact pattern=\"" + repositoryDir + "/" + artifactPattern + "\"  />");
+					fw.write("</filesystem>");
+				}
+				else {
+					fw.write("<url name=\"default\">");
+					fw.write("<ivy pattern=\"" + repositoryUrl + "/" + ivyPattern + "\"  />");
+					fw.write("<artifact pattern=\"" + repositoryUrl + "/" + artifactPattern + "\"  />");
+					fw.write("</url>");
+				}
+				fw.write("</resolvers>");
+	
+				fw.write("<latest-strategies>");
+				fw.write("<latest-revision name=\"latest\"/>");
+				fw.write("</latest-strategies>");
+				fw.write("</ivyconf>");
+				fw.close();
+				
+
+				fw = null;
+				
+				configure.setFile(temp);
+			}
+			catch (IOException e) {
+				throw new BuildException(e);
+			}
+			finally {
+				try {
+					if (fw != null) {
+						fw.close();
+						fw = null;
+					}
+				}
+				catch (IOException e) {
+					;
+				}
+			}
+		}
+		
+		configure.execute();
+	}
+
+	public void fileset(URLImportTask task, String setId) {
+		String org = task.getOrg();
+		String module = task.getModule();
+		String rev = task.getRev();
+		String conf = task.getConf();
+		
+		IvyCacheFileset cacheFileSet = new IvyCacheFileset();
+		cacheFileSet.setProject(task.getProject());
+		cacheFileSet.setLocation(task.getLocation());
+		cacheFileSet.setOwningTarget(task.getOwningTarget());
+		cacheFileSet.setTaskName(task.getTaskName());
+		cacheFileSet.setInline(true);
+		cacheFileSet.setOrganisation(org);
+		cacheFileSet.setModule(module);
+		cacheFileSet.setRevision(rev);
+		cacheFileSet.setConf(conf);
+		cacheFileSet.init();
+		cacheFileSet.setSetid(setId);
+		cacheFileSet.execute();
+	}
+
+}

Added: ant-contrib/trunk/src/main/java/net/sf/antcontrib/net/Ivy20Adapter.java
===================================================================
--- ant-contrib/trunk/src/main/java/net/sf/antcontrib/net/Ivy20Adapter.java	                        (rev 0)
+++ ant-contrib/trunk/src/main/java/net/sf/antcontrib/net/Ivy20Adapter.java	2008-06-16 17:38:26 UTC (rev 171)
@@ -0,0 +1,133 @@
+package net.sf.antcontrib.net;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.apache.ivy.ant.IvyAntSettings;
+import org.apache.ivy.ant.IvyCacheFileset;
+import org.apache.tools.ant.BuildException;
+
+public class Ivy20Adapter
+	implements IvyAdapter {
+
+	public void configure(URLImportTask task) {
+		IvyAntSettings configure = new IvyAntSettings();
+		configure.setProject(task.getProject());
+		configure.setLocation(task.getLocation());
+		configure.setOwningTarget(task.getOwningTarget());
+		configure.setTaskName(task.getTaskName());
+        configure.setOverride("true");
+        configure.setId("urlimporttask");
+		configure.init();
+		
+		URL ivyConfUrl = task.getIvyConfUrl();
+		File ivyConfFile = task.getIvyConfFile();
+		String repositoryUrl = task.getRepositoryUrl();
+		File repositoryDir = task.getRepositoryDir();
+		String ivyPattern = task.getIvyPattern();
+		String artifactPattern = task.getArtifactPattern();
+		
+		if (ivyConfUrl != null) {
+			if (ivyConfUrl.getProtocol().equalsIgnoreCase("file")) {
+				String path = ivyConfUrl.getPath();
+				File f = new File(path);
+				if (! f.isAbsolute()) {
+					f = new File(task.getProject().getBaseDir(), path);
+				}
+				configure.setFile(f);
+			}
+			else {
+				try {
+					configure.setUrl(ivyConfUrl.toExternalForm());
+				}
+				catch (MalformedURLException e) {
+					throw new BuildException(e);
+				}
+			}
+		}
+		else if (ivyConfFile != null) {
+			configure.setFile(ivyConfFile);
+		}
+		else if (repositoryDir != null ||
+				 repositoryUrl != null) {
+			File temp = null;
+			FileWriter fw = null;
+			
+			try {
+				temp = File.createTempFile("ivyconf", ".xml");
+				temp.deleteOnExit();
+				fw = new FileWriter(temp);
+				fw.write("<ivysettings>");
+				fw.write("<settings defaultResolver=\"default\" />");
+				fw.write("<resolvers>");
+				if (repositoryDir != null) {
+					fw.write("<filesystem name=\"default\">");
+					fw.write("<ivy pattern=\"" + repositoryDir + "/" + ivyPattern + "\"  />");
+					fw.write("<artifact pattern=\"" + repositoryDir + "/" + artifactPattern + "\"  />");
+					fw.write("</filesystem>");
+				}
+				else {
+					fw.write("<url name=\"default\">");
+					fw.write("<ivy pattern=\"" + repositoryUrl + "/" + ivyPattern + "\"  />");
+					fw.write("<artifact pattern=\"" + repositoryUrl + "/" + artifactPattern + "\"  />");
+					fw.write("</url>");
+				}
+				fw.write("</resolvers>");
+				
+				fw.write("<latest-strategies>");
+				fw.write("<latest-revision name=\"latest\"/>");
+				fw.write("</latest-strategies>");
+				fw.write("</ivysettings>");
+				fw.close();
+				
+
+				fw = null;
+				
+				configure.setFile(temp);
+			}
+			catch (IOException e) {
+				throw new BuildException(e);
+			}
+			finally {
+				try {
+					if (fw != null) {
+						fw.close();
+						fw = null;
+					}
+				}
+				catch (IOException e) {
+					;
+				}
+			}
+		}
+		
+		configure.execute();
+	}
+
+	public void fileset(URLImportTask task, String setId) {
+		String org = task.getOrg();
+		String module = task.getModule();
+		String rev = task.getRev();
+		String conf = task.getConf();
+		
+		IvyCacheFileset cacheFileSet = new IvyCacheFileset();
+		cacheFileSet.setProject(task.getProject());
+		cacheFileSet.setLocation(task.getLocation());
+		cacheFileSet.setOwningTarget(task.getOwningTarget());
+		cacheFileSet.setTaskName(task.getTaskName());
+		cacheFileSet.setInline(true);
+		cacheFileSet.setOrganisation(org);
+		cacheFileSet.setModule(module);
+		cacheFileSet.setRevision(rev);
+		cacheFileSet.setConf(conf);
+		cacheFileSet.init();
+		cacheFileSet.setSetid(setId);
+                cacheFileSet.setSettingsRef(
+                  new org.apache.tools.ant.types.Reference(task.getProject(), "urlimporttask"));
+		cacheFileSet.execute();
+	}
+
+}

Added: ant-contrib/trunk/src/main/java/net/sf/antcontrib/net/IvyAdapter.java
===================================================================
--- ant-contrib/trunk/src/main/java/net/sf/antcontrib/net/IvyAdapter.java	                        (rev 0)
+++ ant-contrib/trunk/src/main/java/net/sf/antcontrib/net/IvyAdapter.java	2008-06-16 17:38:26 UTC (rev 171)
@@ -0,0 +1,6 @@
+package net.sf.antcontrib.net;
+
+public interface IvyAdapter {
+	void configure(URLImportTask task);
+	void fileset(URLImportTask task, String setId);
+}

Modified: ant-contrib/trunk/src/main/java/net/sf/antcontrib/net/URLImportTask.java
===================================================================
--- ant-contrib/trunk/src/main/java/net/sf/antcontrib/net/URLImportTask.java	2008-04-03 00:47:02 UTC (rev 170)
+++ ant-contrib/trunk/src/main/java/net/sf/antcontrib/net/URLImportTask.java	2008-06-16 17:38:26 UTC (rev 171)
@@ -16,9 +16,6 @@
 package net.sf.antcontrib.net;
 
 import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.net.MalformedURLException;
 import java.net.URL;
 
 import org.apache.tools.ant.BuildException;
@@ -28,9 +25,6 @@
 import org.apache.tools.ant.taskdefs.ImportTask;
 import org.apache.tools.ant.types.FileSet;
 
-import fr.jayasoft.ivy.ant.IvyCacheFileset;
-import fr.jayasoft.ivy.ant.IvyConfigure;
-
 /***
  * Task to import a build file from a url.  The build file can be a build.xml,
  * or a .zip/.jar, in which case we download and extract the entire archive, and
@@ -106,105 +100,72 @@
 		throw new BuildException("'file' property not accessed for ImportURL.");
 	}
 
+	public String getOrg() {
+		return org;
+	}
+
+	public String getModule() {
+		return module;
+	}
+
+	public String getRev() {
+		return rev;
+	}
+
+	public String getConf() {
+		return conf;
+	}
+
+	public String getType() {
+		return type;
+	}
+
+	public String getRepositoryUrl() {
+		return repositoryUrl;
+	}
+
+	public File getRepositoryDir() {
+		return repositoryDir;
+	}
+
+	public URL getIvyConfUrl() {
+		return ivyConfUrl;
+	}
+
+	public File getIvyConfFile() {
+		return ivyConfFile;
+	}
+
+	public String getResource() {
+		return resource;
+	}
+
+	public String getArtifactPattern() {
+		return artifactPattern;
+	}
+
+	public String getIvyPattern() {
+		return ivyPattern;
+	}
+
 	public void execute()
 		throws BuildException {
 		
-		IvyConfigure configure = new IvyConfigure();
-		configure.setProject(getProject());
-		configure.setLocation(getLocation());
-		configure.setOwningTarget(getOwningTarget());
-		configure.setTaskName(getTaskName());
-		configure.init();
-		if (ivyConfUrl != null) {
-			if (ivyConfUrl.getProtocol().equalsIgnoreCase("file")) {
-				String path = ivyConfUrl.getPath();
-				File f = new File(path);
-				if (! f.isAbsolute()) {
-					f = new File(getProject().getBaseDir(), path);
-				}
-				configure.setFile(f);
-			}
-			else {
-				try {
-					configure.setUrl(ivyConfUrl.toExternalForm());
-				}
-				catch (MalformedURLException e) {
-					throw new BuildException(e);
-				}
-			}
+		IvyAdapter adapter = null;
+		
+		try {
+			Class.forName("org.apache.ivy.Ivy");
+			adapter = new Ivy20Adapter();
 		}
-		else if (ivyConfFile != null) {
-			configure.setFile(ivyConfFile);
+		catch (ClassNotFoundException e) {
+			adapter = new Ivy14Adapter();
 		}
-		else if (repositoryDir != null ||
-				 repositoryUrl != null) {
-			File temp = null;
-			FileWriter fw = null;
-			
-			try {
-				temp = File.createTempFile("ivyconf", ".xml");
-				temp.deleteOnExit();
-				fw = new FileWriter(temp);
-				fw.write("<ivyconf>");
-				fw.write("<conf defaultResolver=\"default\" />");
-				fw.write("<resolvers>");
-				if (repositoryDir != null) {
-					fw.write("<filesystem name=\"default\">");
-					fw.write("<ivy pattern=\"" + repositoryDir + "/" + ivyPattern + "\"  />");
-					fw.write("<artifact pattern=\"" + repositoryDir + "/" + artifactPattern + "\"  />");
-					fw.write("</filesystem>");
-				}
-				else {
-					fw.write("<url name=\"default\">");
-					fw.write("<ivy pattern=\"" + repositoryUrl + "/" + ivyPattern + "\"  />");
-					fw.write("<artifact pattern=\"" + repositoryUrl + "/" + artifactPattern + "\"  />");
-					fw.write("</url>");
-				}
-				fw.write("</resolvers>");
-	
-				fw.write("<latest-strategies>");
-				fw.write("<latest-revision name=\"latest\"/>");
-				fw.write("</latest-strategies>");
-				fw.write("</ivyconf>");
-				fw.close();
-				fw = null;
-				
-				configure.setFile(temp);
-			}
-			catch (IOException e) {
-				throw new BuildException(e);
-			}
-			finally {
-				try {
-					if (fw != null) {
-						fw.close();
-						fw = null;
-					}
-				}
-				catch (IOException e) {
-					;
-				}
-			}
-		}
 		
-		configure.execute();
-
-		IvyCacheFileset cacheFileSet = new IvyCacheFileset();
-		cacheFileSet.setProject(getProject());
-		cacheFileSet.setLocation(getLocation());
-		cacheFileSet.setOwningTarget(getOwningTarget());
-		cacheFileSet.setTaskName(getTaskName());
-		cacheFileSet.setInline(true);
-		cacheFileSet.setOrganisation(org);
-		cacheFileSet.setModule(module);
-		cacheFileSet.setRevision(rev);
-		cacheFileSet.setConf(conf);
-		cacheFileSet.init();
-		cacheFileSet.setSetid(org + module + rev + ".fileset");
-		cacheFileSet.execute();
+		String setId = org + "." + module + "." + rev + ".fileset";
+		adapter.configure(this);
+		adapter.fileset(this, setId);
 		
-		FileSet fileset =
-			(FileSet) getProject().getReference(org + module + rev + ".fileset");
+		FileSet fileset =(FileSet) getProject().getReference(setId);
 		
 		DirectoryScanner scanner =
 			fileset.getDirectoryScanner(getProject());


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php