You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by og...@apache.org on 2008/12/08 21:17:13 UTC

svn commit: r724468 - in /maven/mercury/trunk/mercury-ant: ./ mercury-ant-tasks/ mercury-ant-tasks/src/ mercury-ant-tasks/src/main/ mercury-ant-tasks/src/main/java/ mercury-ant-tasks/src/main/java/org/ mercury-ant-tasks/src/main/java/org/apache/ mercur...

Author: ogusakov
Date: Mon Dec  8 12:17:02 2008
New Revision: 724468

URL: http://svn.apache.org/viewvc?rev=724468&view=rev
Log:
MERCURY-10: adding ant wrapper

Added:
    maven/mercury/trunk/mercury-ant/   (with props)
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/   (with props)
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/build.xml
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/mercury-build.xml
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/pom.xml
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/AbstractAntTask.java
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/AbstractDataType.java
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/AbstractRepository.java
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/DependenciesTask.java
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Messages.properties
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Settings.java
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/resources/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/resources/org/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/resources/org/apache/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/resources/org/apache/maven/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/antlib.xml
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/java/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/java/org/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/java/org/apache/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/java/org/apache/maven/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/DependenciesTaskTest.java
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/resources/
    maven/mercury/trunk/mercury-ant/pom.xml

Propchange: maven/mercury/trunk/mercury-ant/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Dec  8 12:17:02 2008
@@ -0,0 +1,4 @@
+.settings
+target
+.classpath
+.project

Propchange: maven/mercury/trunk/mercury-ant/mercury-ant-tasks/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Dec  8 12:17:02 2008
@@ -0,0 +1,4 @@
+.settings
+target
+.classpath
+.project

Added: maven/mercury/trunk/mercury-ant/mercury-ant-tasks/build.xml
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/build.xml?rev=724468&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/build.xml (added)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/build.xml Mon Dec  8 12:17:02 2008
@@ -0,0 +1,13 @@
+<project name="test" xmlns:mvn="antlib:org.apache.maven.mercury.ant.tasks" >
+
+	<mvn:settings>
+	      <mvn:localRepositoryM2  id="localRepo" path="/app/maven.repo"/>
+	      <mvn:remoteRepositoryM2 id="central"   url="/app/maven.repo"/>
+  </mvn:settings>
+	
+  <mvn:dependencies name="all-deps" pathid="myLibs">
+    <mvn:dependency name="ant:ant:1.6.5"/>
+    <mvn:dependency name="asm:asm-xml:3.0"/>
+  </mvn:dependencies>
+
+</project>
\ No newline at end of file

Added: maven/mercury/trunk/mercury-ant/mercury-ant-tasks/mercury-build.xml
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/mercury-build.xml?rev=724468&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/mercury-build.xml (added)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/mercury-build.xml Mon Dec  8 12:17:02 2008
@@ -0,0 +1,92 @@
+<project name="test" default="compile-tests" xmlns:mvn="antlib:org.apache.maven.mercury.ant.tasks" >
+	
+	<!--
+	    this example does not include <mvn:write .../> task, which 
+	    will be used to install / deploy artifacts into repositories
+	    nor this example show how to configure artifact 
+	     validation - for the sake of simplicity
+	-->
+
+  <target name="init">
+    <property name="settings.name" value="home-settings"/>
+    <property name="java.version" value="1.5"/>
+    
+    <property name="src" value="${basedir}/src/main/java"/>
+    <property name="target" value="${basedir}/target/classes"/>
+    
+    <property name="test.src" value="${basedir}/src/test/java"/>
+    <property name="test.target" value="${basedir}/target/test-classes"/>
+  
+    <!--
+     | configration: repositories, ?possibly profiles 
+     -->
+    <mvn:settings id="work-settings">
+          <mvn:localRepositoryM2  id="localRepo" path="/app/maven.repo"/>
+          <mvn:remoteRepositoryM2 id="central"   url="http://repo1.maven.org/maven2"/>
+    </mvn:settings>
+  
+    <mvn:settings id="home-settings">
+          <mvn:localRepositoryM2  id="localRepo" path="/app/maven.repo"/>
+          <mvn:remoteRepositoryM2 id="central"   url="http://localhost:8081/nexus/contents/groups/public"/>
+    </mvn:settings>
+  	
+  
+    <!--
+     | dependency sets, identified and referred to by id - path-like structure declarations
+     -->
+    <mvn:dependencies id="my-libs">
+      <!-- coordinates as string  -->
+      <mvn:dependency name="ant:ant:1.6.5"/>
+      <!-- coordinates as named attributes  -->
+      <mvn:dependency groupid="asm" artifactid="asm-xml" version="[3.0,4.0)"/>
+      <!-- 
+       | a set of dependencies from a pom
+       |  
+       |    will be implemented last as mercury does not know
+       |    about POMs - this will be a special read-only repository type   
+      -->
+      <mvn:dependency groupid="org.apache.maven" artifactid="maven" version="3.0-SNAPSHOT" pom="${basedir}/pom.xml"/>
+    </mvn:dependencies>
+
+  </target>
+
+  <target name="compile" depends="init">
+  	<!--
+  	 | this is the workhorse task - creates a classpath named "compile-path"
+  	 |  and adds all the transitive dependencies from "my-libs" in compile scope 
+  	-->
+    <mvn:resolve name="resolve-compile-deps"
+                 pathid="compile-path"
+                 depref="my-libs"
+                 settingsref="${settings.name}"
+                 />
+    
+    <javac srcdir="${src}"
+           destdir="${target}"
+           classpathref="compile-path"
+           debug="on"
+           source="${java.version}"
+    />
+  </target>
+  
+  <target name="compile-tests" depends="compile">  
+    <!--
+     | this is the workhorse task - creates a classpath named "test-path"
+     |  and adds all the transitive dependencies from "my-libs" in test scope 
+    -->
+    <mvn:resolve name="resolve-test-deps"
+                 pathid="test-path"
+                 depref="my-libs"
+                 settingsref="${settings.name}"
+                 scope="test"
+                 />
+    
+    <javac srcdir="${test.src}"
+           destdir="${test.target}"
+           classpathref="test-path"
+           debug="on"
+           source="${java.version}"
+    />
+  </target>
+  
+</project>
\ No newline at end of file

Added: maven/mercury/trunk/mercury-ant/mercury-ant-tasks/pom.xml
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/pom.xml?rev=724468&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/pom.xml (added)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/pom.xml Mon Dec  8 12:17:02 2008
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+  <groupId>org.apache.maven.mercury</groupId>
+  <artifactId>mercury-ant</artifactId>
+  <version>1.0-alpha-1-SNAPSHOT</version>
+  </parent>
+
+  <groupId>org.apache.maven.mercury</groupId>
+  <artifactId>mercury-ant-tasks</artifactId>
+  <name>Mercury Ant Tasks</name>
+  <description>Maven Mercury Ant tasks code</description>
+
+  <dependencies>
+
+      <dependency>
+        <groupId>ant</groupId>
+        <artifactId>ant</artifactId>
+      </dependency>
+    
+      <!-- Mercury deps -->
+      
+      <dependency>
+        <groupId>org.apache.maven.mercury</groupId>
+        <artifactId>mercury-repo-virtual</artifactId>
+      </dependency>
+      
+      <dependency>
+        <groupId>org.apache.maven.mercury</groupId>
+        <artifactId>mercury-repo-local-m2</artifactId>
+      </dependency>
+
+      <dependency>
+        <groupId>org.apache.maven.mercury</groupId>
+        <artifactId>mercury-repo-remote-m2</artifactId>
+      </dependency>
+      
+       <dependency>
+        <groupId>org.apache.maven.mercury</groupId>
+        <artifactId>mercury-md-sat</artifactId>
+      </dependency>
+  
+      <!-- Maven dependencies -->
+
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-mercury</artifactId>
+      </dependency>
+  
+  </dependencies>
+
+  <build>
+    <plugins>
+
+      <plugin>
+        <artifactId>maven-shade-plugin</artifactId>
+<!--         <version>1.1</version>
+ -->
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>shade</goal>
+            </goals>
+            <configuration>
+              <finalName>${project.artifactId}-all</finalName>
+              <keepDependenciesWithProvidedScope>true</keepDependenciesWithProvidedScope>
+              <createDependencyReducedPom>true</createDependencyReducedPom>
+              <artifactSet>
+                <excludes>
+                  <exclude>ant:ant</exclude>
+                  <exclude>org.bouncycastle:bcprov-jdk15</exclude>
+                  <exclude>org.bouncycastle:bcpg-jdk15</exclude>
+                  <exclude>bouncycastle:bcprov-jdk15</exclude>
+                  <exclude>bouncycastle:bcpg-jdk15</exclude>
+                </excludes>
+              </artifactSet>
+              <filters>
+                <filter>
+                  <excludes>
+                    <exclude>/META-INF/BCKEY.DSA</exclude>
+                    <exclude>/META-INF/BCKEY.SF</exclude>
+                  </excludes>
+                </filter>
+              </filters>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+    </plugins>
+  </build>
+
+</project>

Added: maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/AbstractAntTask.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/AbstractAntTask.java?rev=724468&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/AbstractAntTask.java (added)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/AbstractAntTask.java Mon Dec  8 12:17:02 2008
@@ -0,0 +1,29 @@
+package org.apache.maven.mercury.ant.tasks;
+
+import org.apache.tools.ant.Task;
+
+/**
+ * 
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public class AbstractAntTask
+extends Task
+{
+  private String name;
+  
+  public String getName()
+  {
+    return name;
+  }
+
+  public void setName( String name )
+  {
+    this.name = name;
+  }
+  
+  
+
+}

Added: maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/AbstractDataType.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/AbstractDataType.java?rev=724468&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/AbstractDataType.java (added)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/AbstractDataType.java Mon Dec  8 12:17:02 2008
@@ -0,0 +1,26 @@
+package org.apache.maven.mercury.ant.tasks;
+
+import org.apache.tools.ant.ProjectComponent;
+
+/**
+ *
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public abstract class AbstractDataType
+extends ProjectComponent
+{
+  private String id;
+  
+  public String getId()
+  {
+    return id;
+  }
+  
+  public void setId( String id )
+  {
+      this.id = id;
+  }
+}

Added: maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/AbstractRepository.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/AbstractRepository.java?rev=724468&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/AbstractRepository.java (added)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/AbstractRepository.java Mon Dec  8 12:17:02 2008
@@ -0,0 +1,13 @@
+package org.apache.maven.mercury.ant.tasks;
+
+/**
+ *
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public class AbstractRepository
+extends AbstractDataType
+{
+}

Added: maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/DependenciesTask.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/DependenciesTask.java?rev=724468&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/DependenciesTask.java (added)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/DependenciesTask.java Mon Dec  8 12:17:02 2008
@@ -0,0 +1,223 @@
+package org.apache.maven.mercury.ant.tasks;
+
+import java.net.MalformedURLException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.maven.mercury.artifact.ArtifactBasicMetadata;
+import org.apache.maven.mercury.metadata.DependencyBuilder;
+import org.apache.maven.mercury.metadata.DependencyBuilderFactory;
+import org.apache.maven.mercury.repository.api.Repository;
+import org.apache.maven.mercury.repository.api.RepositoryException;
+import org.apache.tools.ant.BuildException;
+import org.codehaus.plexus.lang.DefaultLanguage;
+import org.codehaus.plexus.lang.Language;
+
+/**
+ *
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public class DependenciesTask
+extends AbstractAntTask
+{
+  private static final Language _lang = new DefaultLanguage( DependenciesTask.class );
+  
+  public static final String TASK_NAME = _lang.getMessage( "dependencies.task.name" );
+  public static final String TASK_DESC = _lang.getMessage( "dependencies.task.desc" );
+  
+  private List<Dependency> _dependencies;
+  
+  private boolean _transitive = true;
+  
+  private String _pathId;
+  
+  private String _refPathId;
+  
+  private String _settingsid;
+  
+  private boolean _failonerror = true;
+  
+  //----------------------------------------------------------------------------------------
+  @Override
+  public String getDescription()
+  {
+    return TASK_DESC;
+  }
+
+  @Override
+  public String getTaskName()
+  {
+    return TASK_NAME;
+  }
+
+  @Override
+  public void execute()
+  throws BuildException
+  {
+    if( _settingsid == null )
+      if( _failonerror )
+        throw new BuildException( _lang.getMessage( "settings.id.mandatory" ));
+      else 
+        return;
+    
+    Object so = getProject().getReference( _settingsid );
+
+    if( so == null )
+      if( _failonerror )
+        throw new BuildException( _lang.getMessage( "settings.id.object.null", _settingsid ));
+      else 
+        return;
+    
+    if( ! Settings.class.isAssignableFrom( so.getClass() ) )
+      if( _failonerror )
+        throw new BuildException( _lang.getMessage( "settings.id.object.wrong", _settingsid, so.getClass().getName() ));
+      else 
+        return;
+    
+    Settings settings = (Settings)so;
+    
+    try
+    {
+      Collection<Repository> repos = settings.getRepositories();
+    
+      DependencyBuilder db = DependencyBuilderFactory.create( DependencyBuilderFactory.JAVA_DEPENDENCY_MODEL
+                                                            , repos
+                                                            , null
+                                                            , null
+                                                            , null 
+                                                            );
+     
+    }
+    catch( Exception e )
+    {
+      if( _failonerror )
+        throw new BuildException( e.getMessage() );
+      else 
+        return;
+    }
+    
+    if( _dependencies != null )
+      for( Dependency d : _dependencies )
+        System.out.println( d._amd );
+  }
+  
+  public void setFailonerror( boolean failonerror )
+  {
+    this._failonerror = failonerror;
+  }
+
+  public String getSettingsid()
+  {
+    return _settingsid;
+  }
+
+  public void setSettingsid( String settingsid )
+  {
+    this._settingsid = settingsid;
+  }
+
+  public void setTransitive( boolean val )
+  {
+    this._transitive = val;
+  }
+
+  public boolean getTransitive()
+  {
+    return _transitive;
+  }
+  
+  public String getPathid()
+  {
+    return _pathId;
+  }
+
+  public void setPathid( String pathId )
+  {
+    this._pathId = pathId;
+  }
+
+  public String getRefpathid()
+  {
+    return _refPathId;
+  }
+
+  public void setRefpathid( String refPathId )
+  {
+    this._refPathId = refPathId;
+  }
+
+  public Dependency createDependency()
+  {
+    if( _dependencies == null )
+      _dependencies = new ArrayList<Dependency>(8);
+    
+    Dependency dep = new Dependency();
+    
+    _dependencies.add( dep );
+    
+    return dep;
+  }
+
+  public class Dependency
+  {
+    ArtifactBasicMetadata _amd;
+
+    private void init()
+    {
+      if( _amd == null )
+        _amd = new ArtifactBasicMetadata();
+    }
+
+    public void setGroupId( String groupId )
+    {
+      init();
+      
+      _amd.setArtifactId( groupId );
+    }
+
+    public void setArtifactId( String artifactId )
+    {
+      init();
+      
+      _amd.setArtifactId( artifactId );
+    }
+
+    public void setVersion( String version )
+    {
+      init();
+      
+      _amd.setVersion( version );
+    }
+
+    public void setType( String type )
+    {
+      init();
+      
+      _amd.setVersion( type );
+    }
+
+    public void setClassifier( String classifier )
+    {
+      init();
+      
+      _amd.setClassifier( classifier );
+    }
+
+    public void setScope( String scope )
+    {
+      init();
+      
+      _amd.setScope( scope );
+    }
+
+    public void setName( String name )
+    {
+      _amd = new ArtifactBasicMetadata( name );
+    }
+
+  }
+}
\ No newline at end of file

Added: maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Messages.properties
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Messages.properties?rev=724468&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Messages.properties (added)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Messages.properties Mon Dec  8 12:17:02 2008
@@ -0,0 +1,5 @@
+dependencies.task.name=Mercury Dependencies
+dependencies.task.desc=this task prepares a list of dependencies, resolves them and arranges into a path
+settings.id.mandatory=settingsid attribute is mandatory, cannot create repositories without it
+settings.id.object.null=object pointed by {0} is null 
+settings.id.object.wrong=object pointed by {0} is of type {1} instead of Settings

Added: maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Settings.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Settings.java?rev=724468&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Settings.java (added)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Settings.java Mon Dec  8 12:17:02 2008
@@ -0,0 +1,139 @@
+package org.apache.maven.mercury.ant.tasks;
+
+import java.io.File;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.apache.maven.mercury.MavenDependencyProcessor;
+import org.apache.maven.mercury.builder.api.DependencyProcessor;
+import org.apache.maven.mercury.repository.api.LocalRepository;
+import org.apache.maven.mercury.repository.api.Repository;
+import org.apache.maven.mercury.transport.api.Server;
+import org.apache.maven.mercury.util.Util;
+
+/**
+ *
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public class Settings
+extends AbstractDataType
+{
+  Collection<AbstractRepository> _repositories;
+  
+  private void init()
+  {
+    if( _repositories != null )
+      return;
+    
+    _repositories = new ArrayList<AbstractRepository>(4);
+    
+  }
+  
+  @Override
+  public void setId( String id )
+  {
+    super.setId( id );
+    
+    getProject().addReference( id, this );
+  }
+  
+  public Collection<Repository> getRepositories()
+  throws MalformedURLException
+  {
+    if( Util.isEmpty( _repositories ) )
+      return null;
+    
+    Collection<Repository> repos = new ArrayList<Repository>( _repositories.size() );
+    
+    for( AbstractRepository ar : _repositories )
+    {
+      if( LocalRepositoryM2.class.isAssignableFrom( ar.getClass() ) )
+      {
+        LocalRepositoryM2 lr = (LocalRepositoryM2)ar;
+        
+        DependencyProcessor dp = new MavenDependencyProcessor();
+        
+        org.apache.maven.mercury.repository.local.m2.LocalRepositoryM2 r 
+            = new org.apache.maven.mercury.repository.local.m2.LocalRepositoryM2( lr.getId(), new File( lr.getPath() ), dp  );
+        
+        repos.add( r );
+      }
+      else
+      {
+        RemoteRepositoryM2 rr = (RemoteRepositoryM2)ar;
+        
+        DependencyProcessor dp = new MavenDependencyProcessor();
+        
+        Server server = new Server( rr.getId(), new URL( rr.getUrl() ) );
+        
+        org.apache.maven.mercury.repository.remote.m2.RemoteRepositoryM2 r 
+            = new org.apache.maven.mercury.repository.remote.m2.RemoteRepositoryM2( server, dp  );
+        
+        repos.add( r );
+      }
+    }
+    
+    return repos;
+  }
+  
+  public LocalRepositoryM2 createLocalRepositoryM2()
+  {
+    init();
+    
+    LocalRepositoryM2 r = new LocalRepositoryM2();
+    
+    _repositories.add( r );
+    
+    return r;
+  }
+  
+  public class LocalRepositoryM2
+  extends AbstractRepository
+  {
+    String _path;
+
+    public String getPath()
+    {
+      return _path;
+    }
+
+    public void setPath( String path )
+    {
+      this._path = path;
+    }
+  }
+  
+  public RemoteRepositoryM2 createRemoteRepositoryM2()
+  {
+    init();
+    
+    RemoteRepositoryM2 r = new RemoteRepositoryM2();
+    
+    _repositories.add( r );
+    
+    return r;
+  }
+
+  public class RemoteRepositoryM2
+  extends AbstractRepository
+  {
+    String _url;
+
+    public String getUrl()
+    {
+      return _url;
+    }
+
+    public void setUrl(
+        String url )
+    {
+      this._url = url;
+    }
+  }
+
+}

Added: maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/antlib.xml
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/antlib.xml?rev=724468&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/antlib.xml (added)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/antlib.xml Mon Dec  8 12:17:02 2008
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+
+<antlib>
+
+  <taskdef name="dependencies" classname="org.apache.maven.mercury.ant.tasks.DependenciesTask"/>
+
+  <typedef name="settings" classname="org.apache.maven.mercury.ant.tasks.Settings"/>
+  
+</antlib>

Added: maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/DependenciesTaskTest.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/DependenciesTaskTest.java?rev=724468&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/DependenciesTaskTest.java (added)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/DependenciesTaskTest.java Mon Dec  8 12:17:02 2008
@@ -0,0 +1,50 @@
+package org.apache.maven.mercury.ant.tasks;
+
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.Target;
+
+import junit.framework.TestCase;
+
+/**
+ *
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public class DependenciesTaskTest
+    extends TestCase
+{
+  final class Contributor
+  extends DependenciesTask
+  {
+    @SuppressWarnings("deprecation")
+    public Contributor()
+    {
+      project = new Project();
+      project.init();
+      target = new Target();
+    }
+  }
+    
+  Contributor _contributor;
+  
+  DependenciesTask.Dependency _dep;
+    
+  @Override
+  protected void setUp()
+  throws Exception
+  {
+    _contributor = new Contributor();
+    
+    _dep = _contributor.createDependency();
+    _dep.setName( "ant:ant:1.6.5" );
+    
+  }
+  
+  public void testReadDependency()
+  {
+    _contributor.execute();
+  }
+
+}

Added: maven/mercury/trunk/mercury-ant/pom.xml
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/pom.xml?rev=724468&view=auto
==============================================================================
--- maven/mercury/trunk/mercury-ant/pom.xml (added)
+++ maven/mercury/trunk/mercury-ant/pom.xml Mon Dec  8 12:17:02 2008
@@ -0,0 +1,370 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+  <parent>
+    <groupId>org.apache.maven</groupId>
+    <artifactId>maven-parent</artifactId>
+    <version>9</version>
+  </parent>
+
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.mercury</groupId>
+  <artifactId>mercury-ant</artifactId>
+  <packaging>pom</packaging>
+  <name>Mercury Ant</name>
+  <version>1.0-alpha-1-SNAPSHOT</version>
+  <description>Maven Mercury Ant is an ant-task wrapper for MErcry functionality: classpath creation, artifact deployment .</description>
+
+  <developers>
+    <developer>
+      <name>Oleg Gusakov</name>
+    </developer>
+  </developers>
+
+  <modules>
+    <module>mercury-ant-tasks</module>
+  </modules>
+
+  <properties>
+
+    <ant.version>1.6.5</ant.version>
+    <mercury.version>1.0.0-alpha-2</mercury.version>
+    <maven.version>3.0-SNAPSHOT</maven.version>
+
+    <junit.version>3.8.2</junit.version>
+
+
+    <java.version>1.5</java.version>
+    
+    <distMgmtReleasesId>apache.releases</distMgmtReleasesId>
+    <distMgmtReleasesName>Apache Releases</distMgmtReleasesName>
+    <distMgmtReleasesUrl>scp://people.apache.org/www/people.apache.org/repo/m2-release-repository</distMgmtReleasesUrl>
+
+    <distMgmtSnapshotsId>apache.snapshots</distMgmtSnapshotsId>
+    <distMgmtSnapshotsName>Apache Snapshots</distMgmtSnapshotsName>
+    <distMgmtSnapshotsUrl>scp://people.apache.org/www/people.apache.org/repo/m2-snapshot-repository</distMgmtSnapshotsUrl>
+
+  </properties>
+
+  <dependencyManagement>
+    <dependencies>
+
+      <dependency>
+        <groupId>ant</groupId>
+        <artifactId>ant</artifactId>
+        <version>${ant.version}</version>
+      </dependency>
+    
+      <!-- Mercury deps -->
+      
+      <dependency>
+        <groupId>org.apache.maven.mercury</groupId>
+        <artifactId>mercury-repo-virtual</artifactId>
+        <version>${mercury.version}</version>
+      </dependency>
+      
+      <dependency>
+        <groupId>org.apache.maven.mercury</groupId>
+        <artifactId>mercury-repo-local-m2</artifactId>
+        <version>${mercury.version}</version>
+      </dependency>
+      
+      <dependency>
+        <groupId>org.apache.maven.mercury</groupId>
+        <artifactId>mercury-repo-remote-m2</artifactId>
+        <version>${mercury.version}</version>
+      </dependency>
+      
+       <dependency>
+        <groupId>org.apache.maven.mercury</groupId>
+        <artifactId>mercury-md-sat</artifactId>
+        <version>${mercury.version}</version>
+      </dependency>
+  
+      <!-- Maven dependencies -->
+
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-mercury</artifactId>
+        <version>${maven.version}</version>
+      </dependency>
+  
+      <!-- Test Dependencies -->
+      <dependency>
+        <groupId>junit</groupId>
+        <artifactId>junit</artifactId>
+        <version>${junit.version}</version>
+        <scope>test</scope>
+      </dependency>
+      
+    </dependencies>
+    
+  </dependencyManagement>
+
+
+  <dependencies>
+      
+    <!-- Test Dependencies -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+
+  </dependencies>
+
+
+
+  <build>
+    <defaultGoal>install</defaultGoal>
+    <resources>
+      <resource>
+        <directory>src/main/java</directory>
+        <filtering>false</filtering>
+        <includes>
+            <include>**/Messages.properties</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+        <filtering>false</filtering>
+      </resource>
+    </resources>
+
+    <testResources>
+      <testResource>
+        <directory>src/test/java</directory>
+        <filtering>false</filtering>
+        <includes>
+            <include>**/Messages.properties</include>
+        </includes>
+      </testResource>
+      <testResource>
+        <directory>src/test/resources</directory>
+        <filtering>false</filtering>
+      </testResource>
+    </testResources>
+
+    <plugins>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>package-tests</id>
+            <goals>
+              <goal>test-jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>${java.version}</source>
+          <target>${java.version}</target>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-site-plugin</artifactId>
+      </plugin>
+      <plugin>
+
+                   <artifactId>maven-enforcer-plugin</artifactId>
+                   <version>1.0-alpha-4</version>
+                   <executions>
+                       <execution>
+                           <goals>
+                               <goal>enforce</goal>
+                           </goals>
+                           <id>enforce</id>
+                           <configuration>
+                               <rules>
+                                   <bannedDependencies>
+                                       <excludes>
+                                           <exclude>*:plexus-component-api</exclude>
+                                       </excludes>
+                                       <message> plexus-component-api conflicts with newer plexus-container-default. You probably added a dependency
+                                           that is plexus component made
+                                           with older plexus container. </message>
+                                   </bannedDependencies>
+                                   <!--  <requirePluginVersions>
+                                       <banSnapshots>false</banSnapshots>
+                                       </requirePluginVersions>-->
+                               </rules>
+                               <fail>true</fail>
+                           </configuration>
+                       </execution>
+                   </executions>
+               </plugin>
+    </plugins>
+
+  </build>
+
+  <profiles>
+    <profile>
+      <id>mercury.install.all</id>
+      <activation>
+        <property>
+          <name>mercury.install.all</name>
+          <value>true</value>
+        </property>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-enforcer-plugin</artifactId>
+            <version>1.0-alpha-3</version>
+            <executions>
+              <execution>
+                <goals>
+                  <goal>enforce</goal>
+                </goals>
+                <configuration>
+                  <rules>
+                    <requireMavenVersion>
+                      <version>[2.0.9,)</version>
+                    </requireMavenVersion>
+                    <requireJavaVersion>
+                      <version>1.5.0</version>
+                    </requireJavaVersion>
+                  </rules>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+          <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>cobertura-maven-plugin</artifactId>
+            <version>2.0</version>
+            <executions>
+              <execution>
+                <id>clean</id>
+                <goals>
+                  <goal>clean</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-javadoc-plugin</artifactId>
+            <version>2.2</version>
+          </plugin>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-source-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>attach-sources</id>
+                <goals>
+                  <goal>jar</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-javadoc-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>attach-javadocs</id>
+                <goals>
+                  <goal>jar</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+
+    <profile>
+      <id>reporting-aggregate</id>
+      <!-- To generate aggregate reports -->
+      <!-- To deploy both aggregate reports for top-level project and standalone reports for modules, call
+           mvn site -Preporting
+           mvn site:deploy
+           mvn site -Preporting-aggregate
+           mvn -N site:deploy
+      -->
+      <reporting>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-project-info-reports-plugin</artifactId>
+            <version>2.1</version>
+          </plugin>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-jxr-plugin</artifactId>
+            <version>2.1</version>
+            <configuration>
+              <aggregate>true</aggregate>
+            </configuration>
+          </plugin>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-javadoc-plugin</artifactId>
+            <version>2.5</version>
+            <configuration>
+              <links>
+                <link>http://java.sun.com/j2se/1.4.2/docs/api</link>
+                <link>http://java.sun.com/j2ee/1.4/docs/api</link>
+                <link>http://java.sun.com/j2se/1.5.0/docs/api</link>
+                <link>http://commons.apache.org/collections/apidocs-COLLECTIONS_3_0/</link>
+                <link>http://commons.apache.org/dbcp/apidocs/</link>
+                <link>http://commons.apache.org/fileupload/apidocs/</link>
+                <link>http://commons.apache.org/httpclient/apidocs/</link>
+                <link>http://commons.apache.org/logging/apidocs/</link>
+                <link>http://commons.apache.org/pool/apidocs/</link>
+                <link>http://junit.sourceforge.net/javadoc/</link>
+                <link>http://logging.apache.org/log4j/1.2/apidocs/</link>
+                <link>http://jakarta.apache.org/regexp/apidocs/</link>
+                <link>http://velocity.apache.org/engine/releases/velocity-1.5/apidocs/</link>
+              </links>
+              <aggregate>true</aggregate>
+            </configuration>
+          </plugin>
+        </plugins>
+      </reporting>
+    </profile>
+  </profiles>
+
+  <distributionManagement>
+    <repository>
+      <id>${distMgmtReleasesId}</id>
+      <name>${distMgmtReleasesName}</name>
+      <url>${distMgmtReleasesUrl}</url>
+    </repository>
+    <snapshotRepository>
+      <id>${distMgmtSnapshotsId}</id>
+      <name>${distMgmtSnapshotsName}</name>
+      <url>${distMgmtSnapshotsUrl}</url>
+    </snapshotRepository>
+  </distributionManagement>
+  
+  <url>http://maven.apache.org/mercury/</url>
+  
+  <issueManagement>
+    <system>jira</system>
+    <url>http://jira.codehaus.org/browse/MERCURY</url>
+  </issueManagement>
+  
+  <ciManagement>
+    <system>hudson</system>
+    <url>http://grid.sonatype.org/ci/view/Mercury/job/mercury</url>
+  </ciManagement>
+
+  <scm>
+    <connection>scm:svn:http://svn.apache.org/repos/asf/maven/mercury/trunk/</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/mercury/trunk/</developerConnection>
+    <url>http://svn.apache.org/viewvc/maven/mercury/trunk/</url>
+  </scm>
+
+</project>