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()