Author: ogusakov
Date: Mon Dec 29 11:18:21 2008
New Revision: 729975

URL: http://svn.apache.org/viewvc?rev=729975&view=rev
Log:
[MERCURY-65] simple "usage" syntax for maven ant tasks: 
localRepository/remoteRepository/dependencies/dependency works, authentication 
- tbd

Added:
    
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Dependency.java
   (with props)
Modified:
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/build.xml
    
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Dep.java
    
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Repo.java
    
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/ResolveTask.java
    
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/Messages.properties
    
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/java/org/apache/maven/mercury/ant/tasks/MecuryAntTest.java

Modified: 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=729975&r1=729974&r2=729975&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/build.xml (original)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/build.xml Mon Dec 29 
11:18:21 2008
@@ -267,4 +267,25 @@
 
   </target>
   
+
+  <target name="compile-old-syntax" depends="init">
+    
+       <remoteRepository id="remote.repository.old" 
url="http://localhost:${repo.port}/maven2"; />
+
+       <localRepository path="${basedir}/target/path-old" layout="default"/>
+    
+       <dependencies pathId="dependency.classpath">
+         <dependency groupId="asm" artifactId="asm" version="3.0"/>
+       </dependencies>
+       
+    <javac srcdir="${src}"
+           destdir="${target}"
+           source="${compiler.version}"
+           target="${compiler.version}"
+    >
+      <classpath refid="dependency.classpath"/> 
+    </javac>
+
+  </target>
+
 </project>
\ No newline at end of file

Modified: 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Dep.java
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Dep.java?rev=729975&r1=729974&r2=729975&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Dep.java
 (original)
+++ 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Dep.java
 Mon Dec 29 11:18:21 2008
@@ -111,39 +111,6 @@
 
         return dep;
     }
-
-    public class Dependency
-    {
-        ArtifactBasicMetadata _amd;
-        
-        String _pom;
-
-        boolean _optional = false;
-
-        public void setName( String name )
-        {
-            _amd = new ArtifactBasicMetadata( name );
-
-            _amd.setOptional( _optional );
-        }
-
-        public void setOptional( boolean optional )
-        {
-            this._optional = optional;
-
-            if ( _amd != null )
-                _amd.setOptional( optional );
-        }
-
-        public void setPom( String pom )
-        {
-            this._pom = pom;
-            
-            if( _amd == null )
-                throw new UnsupportedOperationException( LANG.getMessage( 
"dep.dependency.pom.needs.name", pom ) );
-        }
-
-    }
     
//----------------------------------------------------------------------------------------
     protected List<Artifact> resolve()
     throws Exception

Added: 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Dependency.java
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Dependency.java?rev=729975&view=auto
==============================================================================
--- 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Dependency.java
 (added)
+++ 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Dependency.java
 Mon Dec 29 11:18:21 2008
@@ -0,0 +1,81 @@
+package org.apache.maven.mercury.ant.tasks;
+
+import org.apache.maven.mercury.artifact.ArtifactBasicMetadata;
+import org.codehaus.plexus.lang.DefaultLanguage;
+import org.codehaus.plexus.lang.Language;
+
+/**
+ *
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+
+public class Dependency
+{
+    private static final Language LANG = new DefaultLanguage( Dependency.class 
);
+
+    ArtifactBasicMetadata _amd;
+    
+    String _pom;
+
+    boolean _optional = false;
+
+    public void setName( String name )
+    {
+        _amd = new ArtifactBasicMetadata( name );
+
+        _amd.setOptional( _optional );
+    }
+
+    public void setOptional( boolean optional )
+    {
+        this._optional = optional;
+
+        if ( _amd != null )
+            _amd.setOptional( optional );
+    }
+
+    public void setPom( String pom )
+    {
+        this._pom = pom;
+        
+        if( _amd == null )
+            throw new UnsupportedOperationException( LANG.getMessage( 
"dep.dependency.pom.needs.name", pom ) );
+    }
+
+    public void setGroupId( String groupId )
+    {
+        if( _amd == null )
+            _amd = new ArtifactBasicMetadata();
+        
+        _amd.setGroupId( groupId );
+    }
+
+    public void setGroupid( String groupId )
+    {
+        setGroupId( groupId );
+    }
+
+    public void setArtifactId( String artifactId )
+    {
+        if( _amd == null )
+            _amd = new ArtifactBasicMetadata();
+        
+        _amd.setArtifactId( artifactId );
+    }
+
+    public void setArtifactid( String artifactId )
+    {
+        setArtifactId( artifactId );
+    }
+
+    public void setVersion( String version )
+    {
+        if( _amd == null )
+            _amd = new ArtifactBasicMetadata();
+        
+        _amd.setVersion( version );
+    }
+}

Propchange: 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Dependency.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Dependency.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Repo.java
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Repo.java?rev=729975&r1=729974&r2=729975&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Repo.java
 (original)
+++ 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Repo.java
 Mon Dec 29 11:18:21 2008
@@ -40,31 +40,35 @@
 {
     private static final Language LANG = new DefaultLanguage( Repo.class );
     
-    String _dir;
+    private static final String DEFAULT_LAYOUT = "default";
+    
+    private String _dir;
 
-    String _url;
+    private String _url;
 
-    String _type;
+    private String _type;
+
+    private String _authid;
 
-    String _authid;
+    private String _layout = DEFAULT_LAYOUT;
 
-    String _proxyauthid;
+    private String _proxyauthid;
 
-    boolean _readable = true;
+    private boolean _readable = true;
 
-    boolean _writeable = false;
+    private boolean _writeable = false;
 
-    Auth _auth;
+    private Auth _auth;
 
-    Auth _proxyAuth;
+    private Auth _proxyAuth;
 
-    List<Verify> _writeVerifiers;
+    private List<Verify> _writeVerifiers;
 
-    List<Verify> _readVerifiers;
+    private List<Verify> _readVerifiers;
 
-    transient boolean _managed = false;
+    private transient boolean _managed = false;
 
-    transient boolean _registered = false;
+    private transient boolean _registered = false;
 
     public Repo()
     {
@@ -75,57 +79,95 @@
         _managed = managed;
     }
     
-    @Override
-    public void setId( String id )
+    private void processDefaults()
     {
-        super.setId( id );
-        
         if( _managed )
             return;
         
-        Config.addDefaultRepository( getProject(), this );
+        if( _registered )
+            return;
+        
+        if( getId() == null )
+        {
+            String id = "random." + (int)(Math.random()*10000.) + 
("."+System.nanoTime() ) ;
 
+            super.setId( id );
+        }
+        
+        Config.addDefaultRepository( getProject(), this );
+        
+        _registered = true;
+    }
+    
+    @Override
+    public void setId( String id )
+    {
+        super.setId( id );
+        
+        processDefaults();
     }
 
     public void setReadable( boolean readable )
     {
         this._readable = readable;
+        
+        processDefaults();
     }
 
     public void setWriteable( boolean writeable )
     {
         this._writeable = writeable;
+        
+        processDefaults();
     }
 
     public void setUrl( String url )
     {
-        if( getId() == null )
-            throw new IllegalArgumentException( LANG.getMessage( "repo.no.id", 
url ) );
-        
         this._url = url;
+        
+        processDefaults();
     }
 
     public void setDir( String dir )
     {
-        if( getId() == null )
-            throw new IllegalArgumentException( LANG.getMessage( "repo.no.id", 
dir ) );
-        
         this._dir = dir;
+        
+        processDefaults();
+    }
+
+    // alternative - old - syntax
+    public void setPath( String path )
+    {
+        setDir( path );
     }
 
     public void setType( String type )
     {
         this._type = type;
+        
+        processDefaults();
     }
 
     public void setAuthid( String authid )
     {
         this._authid = authid;
+        
+        processDefaults();
     }
 
     public void setProxyauthid( String proxyauthid )
     {
         this._proxyauthid = proxyauthid;
+        
+        processDefaults();
+    }
+
+    public void setLayout( String layout )
+    {
+        if( !DEFAULT_LAYOUT.equals( layout ) )
+            throw new IllegalArgumentException( LANG.getMessage( 
"repo.layout.not.supported", layout ) );
+        
+        processDefaults();
     }
 
     boolean isLocal()

Modified: 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/ResolveTask.java
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/ResolveTask.java?rev=729975&r1=729974&r2=729975&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/ResolveTask.java
 (original)
+++ 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/ResolveTask.java
 Mon Dec 29 11:18:21 2008
@@ -39,7 +39,7 @@
 
     private ArtifactScopeEnum _scope = ArtifactScopeEnum.compile;
 
-    private List<Dep.Dependency> _dependencies;
+    private List<Dependency> _dependencies;
 
     // 
----------------------------------------------------------------------------------------
     @Override
@@ -235,11 +235,15 @@
         this._scope = scope;
     }
 
-    public void addConfiguredDependency( Dep.Dependency dependency )
+    public Dependency createDependency(  )
     {
         if ( Util.isEmpty( _dependencies ) )
-            _dependencies = new ArrayList<Dep.Dependency>( 8 );
+            _dependencies = new ArrayList<Dependency>( 8 );
+        
+        Dependency dependency = new Dependency();
 
         _dependencies.add( dependency );
+        
+        return dependency;
     }
 }
\ No newline at end of file

Modified: 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/Messages.properties
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/Messages.properties?rev=729975&r1=729974&r2=729975&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/Messages.properties
 (original)
+++ 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/Messages.properties
 Mon Dec 29 11:18:21 2008
@@ -38,7 +38,7 @@
 config.repo.verifier.bad.type=Verfier does not understand type {0}
 config.repo.verifier.pgp.bad.keyid=Bad key "{0}" for secret keyring {1}; 
expected to see 16 hex number, but did not find them
 repo.no.id=repo {0} does not have an id attribute, or it's not the first 
attribute.  
-
+repo.layout.not.supported=layout {0} is not supported
 
 dep.pom.not.implemented=pom attribute not implemented for <dep ../> tag
 dep.dependency.pom.not.implemented=pom attribute not implemented for 
<dependency ../> tag

Modified: 
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=729975&r1=729974&r2=729975&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/antlib.xml
 (original)
+++ 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/antlib.xml
 Mon Dec 29 11:18:21 2008
@@ -2,15 +2,26 @@
 
 <antlib>
 
-  <taskdef name="resolve"      
classname="org.apache.maven.mercury.ant.tasks.ResolveTask"/>
+  <taskdef name="resolve"          
classname="org.apache.maven.mercury.ant.tasks.ResolveTask"/>
+  <taskdef name="write"            
classname="org.apache.maven.mercury.ant.tasks.WriteTask"/>
+
+  <typedef name="dep"              
classname="org.apache.maven.mercury.ant.tasks.Dep"/>
+  <typedef name="repository"       
classname="org.apache.maven.mercury.ant.tasks.Repo"/>
+  <typedef name="config"           
classname="org.apache.maven.mercury.ant.tasks.Config"/>
+  
+  <!-- helper sytaxes -->
+  <typedef name="deps"             
classname="org.apache.maven.mercury.ant.tasks.Dep"/>
+  <typedef name="dependencySet"    
classname="org.apache.maven.mercury.ant.tasks.Dep"/>
+  <typedef name="settings"         
classname="org.apache.maven.mercury.ant.tasks.Config"/>
+
+  <!-- do we need them as upper-level elements ?? -->
+  <typedef name="auth"             
classname="org.apache.maven.mercury.ant.tasks.Auth"/>
+  <typedef name="proxyauth"        
classname="org.apache.maven.mercury.ant.tasks.Auth"/>
+  
+  <!--  good old syntax -->  
   <taskdef name="dependencies" 
classname="org.apache.maven.mercury.ant.tasks.ResolveTask"/>
-  <taskdef name="write"        
classname="org.apache.maven.mercury.ant.tasks.WriteTask"/>
 
-  <typedef name="dep"             
classname="org.apache.maven.mercury.ant.tasks.Dep"/>
-  <typedef name="deps"            
classname="org.apache.maven.mercury.ant.tasks.Dep"/>
-  <typedef name="config"          
classname="org.apache.maven.mercury.ant.tasks.Config"/>
-  <typedef name="repository"      
classname="org.apache.maven.mercury.ant.tasks.Repo"/>
-  <typedef name="auth"            
classname="org.apache.maven.mercury.ant.tasks.Auth"/>
-  <typedef name="proxyauth"       
classname="org.apache.maven.mercury.ant.tasks.Auth"/>
+  <typedef name="localRepository"  
classname="org.apache.maven.mercury.ant.tasks.Repo"/>
+  <typedef name="remoteRepository" 
classname="org.apache.maven.mercury.ant.tasks.Repo"/>
   
 </antlib>

Modified: 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/MecuryAntTest.java
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/MecuryAntTest.java?rev=729975&r1=729974&r2=729975&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/MecuryAntTest.java
 (original)
+++ 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/MecuryAntTest.java
 Mon Dec 29 11:18:21 2008
@@ -57,9 +57,9 @@
 
     Dep _dep;
 
-    Dep.Dependency _asm;
+    Dependency _asm;
 
-    Dep.Dependency _ant;
+    Dependency _ant;
 
     // -----------------------------------
     final class Resolver
@@ -360,6 +360,32 @@
 
         assertTrue( asm.exists() );
     }
+    // -----------------------------------
+    public void testCompileOldSyntax()
+    throws Exception
+    {
+        String title = "compile-old-syntax";
+        System.out.println( "========> start " + title );
+        System.out.flush();
+
+        File af = new File( _compileDirFile, "T.class" );
+
+        assertFalse( af.exists() );
+
+        File asm = new File( "target/path-old/asm/asm/3.0/asm-3.0.jar" );
+
+        FileUtil.delete( asm );
+
+        asm.delete();
+
+        assertFalse( asm.exists() );
+        
+        executeTarget( title );
+
+        assertTrue( af.exists() );
+
+        assertTrue( asm.exists() );
+    }
 
     // -----------------------------------
     public void testBadAuthRepo()


Reply via email to