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/23 22:26:12 UTC
svn commit: r729127 - in /maven/mercury/trunk: mercury-ant/mercury-ant-tasks/
mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/
mercury-ant/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/
mercury-repo/ ...
Author: ogusakov
Date: Tue Dec 23 13:26:12 2008
New Revision: 729127
URL: http://svn.apache.org/viewvc?rev=729127&view=rev
Log:
[MERCURY-65] adding mapped repo implementation
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/Config.java
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/Messages.properties
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/MecuryAntTest.java
maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryWriter.java
maven/mercury/trunk/mercury-repo/pom.xml
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=729127&r1=729126&r2=729127&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/build.xml (original)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/build.xml Tue Dec 23 13:26:12 2008
@@ -179,5 +179,37 @@
file="${jar.target}/t.jar"
/>
</target>
+
+ <target name="compile-thin-path" depends="init">
+ <javac srcdir="${src}"
+ destdir="${target}"
+ debug="on"
+ source="${compiler.version}"
+ target="${compiler.version}"
+ >
+ <classpath>
+ <merc:dep>
+ <merc:dependency name="asm:asm:3.0"/>
+ </merc:dep>
+ </classpath>
+ </javac>
+ </target>
+
+ <target name="compile-thin-path-2" depends="init">
+
+ <path id="thin-path-2">
+ <merc:dep>
+ <merc:dependency name="asm:asm:3.0"/>
+ </merc:dep>
+ </path>
+
+ <javac srcdir="${src}"
+ destdir="${target}"
+ classpathref="thin-path-2"
+ debug="on"
+ source="${compiler.version}"
+ target="${compiler.version}"
+ />
+ </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/Config.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Config.java?rev=729127&r1=729126&r2=729127&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Config.java (original)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Config.java Tue Dec 23 13:26:12 2008
@@ -58,7 +58,7 @@
Repo central = createRepo();
central.setId( "central" );
- central.setUrl( remoteUrl );
+ central.setUrl( remoteUrl == null ? DEFAULT_CENTRAL_URL : remoteUrl );
}
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=729127&r1=729126&r2=729127&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 Tue Dec 23 13:26:12 2008
@@ -1,5 +1,6 @@
package org.apache.maven.mercury.ant.tasks;
+import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
@@ -16,6 +17,7 @@
import org.apache.maven.mercury.metadata.DependencyBuilderFactory;
import org.apache.maven.mercury.repository.api.ArtifactResults;
import org.apache.maven.mercury.repository.api.Repository;
+import org.apache.maven.mercury.repository.api.RepositoryException;
import org.apache.maven.mercury.repository.virtual.VirtualRepositoryReader;
import org.apache.maven.mercury.util.Util;
import org.apache.tools.ant.BuildException;
@@ -38,29 +40,34 @@
private List<Artifact> _artifacts;
+ private List<File> _files;
+
private String _configId;
- String _pom;
-
private ArtifactScopeEnum _scope = ArtifactScopeEnum.compile;
private boolean _transitive = true;
- protected List<ArtifactBasicMetadata> getDependencies()
+ private List<ArtifactBasicMetadata> getDependencies( VirtualRepositoryReader vr )
+ throws RepositoryException
{
if ( Util.isEmpty( _dependencies ) )
- {
- if( Util.isEmpty( _pom ) )
- return null;
-
- // TODO: 2008-12-22 oleg: to be implemented
- throw new UnsupportedOperationException( _lang.getMessage( "dep.pom.not.implemented" ) );
- }
+ return null;
List<ArtifactBasicMetadata> res = new ArrayList<ArtifactBasicMetadata>( _dependencies.size() );
for ( Dependency d : _dependencies )
- res.add( d._amd );
+ {
+ if( d._amd == null )
+ throw new IllegalArgumentException( _lang.getMessage( "dep.dependency.name.mandatory" ) );
+
+ if( Util.isEmpty( d._pom ))
+ res.add( d._amd );
+ else
+ {
+ ArtifactMetadata deps = vr.readDependencies( d._amd );
+ }
+ }
return res;
}
@@ -103,9 +110,9 @@
public void setPom( String pom )
{
this._pom = pom;
-
- // TODO: 2008-12-22 oleg: to be implemented
- throw new UnsupportedOperationException( _lang.getMessage( "dep.dependency.pom.not.implemented" ) );
+
+ if( _amd == null )
+ throw new UnsupportedOperationException( _lang.getMessage( "dep.dependency.pom.needs.name", pom ) );
}
}
@@ -131,14 +138,14 @@
DependencyBuilder db =
DependencyBuilderFactory.create( DependencyBuilderFactory.JAVA_DEPENDENCY_MODEL, repos, null, null, null );
+
+ VirtualRepositoryReader vr = new VirtualRepositoryReader( repos );
- List<ArtifactMetadata> res = db.resolveConflicts( scope, getDependencies() );
+ List<ArtifactMetadata> res = db.resolveConflicts( scope, getDependencies(vr) );
if ( Util.isEmpty( res ) )
return null;
- VirtualRepositoryReader vr = new VirtualRepositoryReader( repos );
-
ArtifactResults aRes = vr.readArtifacts( res );
if ( aRes == null )
@@ -190,14 +197,6 @@
{
this._scope = scope;
}
-
- public void setPom( String pom )
- {
- this._pom = pom;
-
- // TODO: 2008-12-22 oleg: to be implemented
- throw new UnsupportedOperationException( _lang.getMessage( "dep.pom.not.implemented" ) );
- }
public void setTransitive( boolean val )
{
@@ -218,12 +217,20 @@
{
try
{
+ if( _files != null )
+ return _files.iterator();
+
List<Artifact> artifacts = resolve();
if( Util.isEmpty( artifacts ) )
return null;
- return artifacts.iterator();
+ _files = new ArrayList<File>( artifacts.size() );
+
+ for( Artifact a : _artifacts )
+ _files.add( a.getFile() );
+
+ return _files.iterator();
}
catch ( Exception e )
{
Modified: 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=729127&r1=729126&r2=729127&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Messages.properties (original)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Messages.properties Tue Dec 23 13:26:12 2008
@@ -38,6 +38,5 @@
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
-
-dep.pom.not.implemented=pom attribute not implemented for <dep ../> tag
-dep.dependency.pom.not.implemented=pom attribute not implemented for <dependency ../> tag
\ No newline at end of file
+dep.dependency.pom.needs.name=currently pom attribute "{}" should be prepended by a name attribute
+dep.dependency.name.mandatory=found a dependency without name attribute. Please correct you build file.
\ No newline at end of file
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=729127&r1=729126&r2=729127&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 Tue Dec 23 13:26:12 2008
@@ -239,7 +239,7 @@
assertFalse( jar.exists() );
- executeTarget( "compile" );
+ executeTarget( title );
assertTrue( af.exists() );
@@ -247,6 +247,38 @@
}
// -----------------------------------
+ public void testCompileThinPath()
+ {
+ String title = "compile-thin-path";
+ System.out.println( "========> start " + title );
+ System.out.flush();
+
+ File af = new File( _compileDirFile, "T.class" );
+
+ assertFalse( af.exists() );
+
+ executeTarget( title );
+
+ assertTrue( af.exists() );
+ }
+
+ // -----------------------------------
+ public void testCompileThinPath2()
+ {
+ String title = "compile-thin-path-2";
+ System.out.println( "========> start " + title );
+ System.out.flush();
+
+ File af = new File( _compileDirFile, "T.class" );
+
+ assertFalse( af.exists() );
+
+ executeTarget( title );
+
+ assertTrue( af.exists() );
+ }
+
+ // -----------------------------------
public void testBadAuthRepo()
throws Exception
{
Modified: maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryWriter.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryWriter.java?rev=729127&r1=729126&r2=729127&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryWriter.java (original)
+++ maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryWriter.java Tue Dec 23 13:26:12 2008
@@ -47,4 +47,39 @@
public void setMetadataCache( RepositoryMetadataCache mdCache );
public RepositoryMetadataCache getMetadataCache();
+
+ public static final RepositoryWriter NULL_WRITER =
+ new RepositoryWriter()
+ {
+
+ public RepositoryMetadataCache getMetadataCache()
+ {
+ return null;
+ }
+
+ public void setMetadataCache( RepositoryMetadataCache mdCache )
+ {
+ }
+
+ public void writeArtifacts( Collection<Artifact> artifact )
+ throws RepositoryException
+ {
+ }
+
+ public boolean canHandle( String protocol )
+ {
+ return false;
+ }
+
+ public void close()
+ {
+ }
+
+ public String[] getProtocols()
+ {
+ return null;
+ }
+
+ };
+
}
Modified: maven/mercury/trunk/mercury-repo/pom.xml
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/pom.xml?rev=729127&r1=729126&r2=729127&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-repo/pom.xml (original)
+++ maven/mercury/trunk/mercury-repo/pom.xml Tue Dec 23 13:26:12 2008
@@ -35,6 +35,7 @@
<module>mercury-repo-api</module>
<module>mercury-repo-local-m2</module>
<module>mercury-repo-local-flat</module>
+ <module>mercury-repo-local-map</module>
<module>mercury-repo-remote-m2</module>
<module>mercury-repo-cache-fs</module>
<module>mercury-repo-virtual</module>