Author: ogusakov Date: Sun Dec 28 18:22:44 2008 New Revision: 729824 URL: http://svn.apache.org/viewvc?rev=729824&view=rev Log: [MERCURY-65] pom attribute UT works, can read POMs now !! :)
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/resources/org/apache/maven/mercury/ant/tasks/Messages.properties maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/DefaultStorage.java maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/LocalRepositoryMap.java maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/Storage.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=729824&r1=729823&r2=729824&view=diff ============================================================================== --- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/build.xml (original) +++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/build.xml Sun Dec 28 18:22:44 2008 @@ -260,7 +260,7 @@ > <classpath> <deps> - <dependency name="t:t:3.0::pom" pom="${basedir}/target/test-classes/" /> + <dependency name="t:t:3.0::pom" pom="${basedir}/target/test-classes/t-3.0.pom" /> </deps> </classpath> </javac> 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=729824&r1=729823&r2=729824&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 Sun Dec 28 18:22:44 2008 @@ -2,6 +2,7 @@ import java.util.ArrayList; import java.util.Collection; +import java.util.List; import org.apache.maven.mercury.repository.api.Repository; import org.apache.maven.mercury.util.Util; @@ -31,7 +32,7 @@ Collection<Auth> _auths; - Collection<Repository> _repositories; + List<Repository> _repositories; public Config() { @@ -48,7 +49,7 @@ central.setUrl( remoteUrl == null ? DEFAULT_CENTRAL_URL : remoteUrl ); } - public Collection<Repository> getRepositories() + public List<Repository> getRepositories() throws BuildException { if ( Util.isEmpty( _repos ) ) 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=729824&r1=729823&r2=729824&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 Sun Dec 28 18:22:44 2008 @@ -2,15 +2,16 @@ import java.io.File; import java.util.ArrayList; -import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Map; +import org.apache.maven.mercury.MavenDependencyProcessor; import org.apache.maven.mercury.artifact.Artifact; import org.apache.maven.mercury.artifact.ArtifactBasicMetadata; import org.apache.maven.mercury.artifact.ArtifactMetadata; import org.apache.maven.mercury.artifact.ArtifactScopeEnum; +import org.apache.maven.mercury.builder.api.DependencyProcessor; import org.apache.maven.mercury.logging.IMercuryLogger; import org.apache.maven.mercury.logging.MercuryLoggerManager; import org.apache.maven.mercury.metadata.DependencyBuilder; @@ -18,6 +19,10 @@ 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.local.map.DefaultStorage; +import org.apache.maven.mercury.repository.local.map.LocalRepositoryMap; +import org.apache.maven.mercury.repository.local.map.Storage; +import org.apache.maven.mercury.repository.local.map.StorageException; import org.apache.maven.mercury.repository.virtual.VirtualRepositoryReader; import org.apache.maven.mercury.util.Util; import org.apache.tools.ant.BuildException; @@ -47,6 +52,10 @@ private ArtifactScopeEnum _scope = ArtifactScopeEnum.compile; private boolean _transitive = true; + + private LocalRepositoryMap _pomRepo; + + private Storage _pomStorage; private List<ArtifactBasicMetadata> getDependencies( VirtualRepositoryReader vr ) throws RepositoryException @@ -56,8 +65,6 @@ List<ArtifactBasicMetadata> res = new ArrayList<ArtifactBasicMetadata>( _dependencies.size() ); - - for ( Dependency d : _dependencies ) { if( d._amd == null ) @@ -67,10 +74,22 @@ res.add( d._amd ); else { + String key = d._amd.getGAV(); + + ArtifactMetadata deps = null; -// vr.addRepository( repo ); + try + { + _pomStorage.add( key, new File(d._pom) ); + + deps = vr.readDependencies( d._amd ); - ArtifactMetadata deps = vr.readDependencies( d._amd ); + _pomStorage.removeRaw( key ); + } + catch ( StorageException e ) + { + throw new RepositoryException(e); + } if( deps != null && !Util.isEmpty( deps.getDependencies() ) ) for( ArtifactBasicMetadata bmd : deps.getDependencies() ) @@ -143,7 +162,15 @@ if( Util.isEmpty( _dependencies ) ) return null; - Collection<Repository> repos = config.getRepositories(); + List<Repository> repos = config.getRepositories(); + + DependencyProcessor dp = new MavenDependencyProcessor(); + + _pomStorage = new DefaultStorage(); + + _pomRepo = new LocalRepositoryMap( "inMemMdRepo", dp, _pomStorage ); + + repos.add( 0, _pomRepo ); DependencyBuilder db = DependencyBuilderFactory.create( DependencyBuilderFactory.JAVA_DEPENDENCY_MODEL, repos, null, null, null ); @@ -221,7 +248,7 @@ { return true; } - + //---------------------------------------------------------------------------------------- public Iterator iterator() { try @@ -248,7 +275,7 @@ return null; } } - + //---------------------------------------------------------------------------------------- public int size() { try @@ -267,4 +294,6 @@ return 0; } } + //---------------------------------------------------------------------------------------- + //---------------------------------------------------------------------------------------- } \ 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=729824&r1=729823&r2=729824&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 Sun Dec 28 18:22:44 2008 @@ -41,4 +41,6 @@ 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.not.implemented=pom attribute not implemented for <dependency ../> tag +dep.cannot.remove=cannot delete non-existing datum for: {0} +defaultStorage.add.file.no.file=file for the key {0} does not exist. Modified: maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/DefaultStorage.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/DefaultStorage.java?rev=729824&r1=729823&r2=729824&view=diff ============================================================================== --- maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/DefaultStorage.java (original) +++ maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/DefaultStorage.java Sun Dec 28 18:22:44 2008 @@ -117,11 +117,25 @@ } public void add( String key, File file ) + throws StorageException { + if( file == null || !file.exists() ) + throw new StorageException( _lang.getMessage( "defaultStorage.add.file.no.file", key ) ); + if( _files == null ) _files = new HashMap<String, File>(32); _files.put( key, file ); } + + /* (non-Javadoc) + * @see org.apache.maven.mercury.repository.local.map.Storage#removeRaw(java.lang.String) + */ + public void removeRaw( String key ) + throws StorageException + { + if( Util.isEmpty( _files ) ) + throw new StorageException( _lang.getMessage( "dep.cannot.remove", key ) ); + } } Modified: maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/LocalRepositoryMap.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/LocalRepositoryMap.java?rev=729824&r1=729823&r2=729824&view=diff ============================================================================== --- maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/LocalRepositoryMap.java (original) +++ maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/LocalRepositoryMap.java Sun Dec 28 18:22:44 2008 @@ -42,6 +42,11 @@ protected Storage _storage; // ---------------------------------------------------------------------------------- + public Storage getStorage() + { + return _storage; + } + // ---------------------------------------------------------------------------------- public LocalRepositoryMap( String id, DependencyProcessor dp, Storage storage ) { super( id, FLAT_REPOSITORY_TYPE ); Modified: maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/Storage.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/Storage.java?rev=729824&r1=729823&r2=729824&view=diff ============================================================================== --- maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/Storage.java (original) +++ maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/Storage.java Sun Dec 28 18:22:44 2008 @@ -52,7 +52,17 @@ * * @param key * @param file + * @throws StorageException */ - public abstract void add( String key, File file ); + public abstract void add( String key, File file ) + throws StorageException; + + /** + * delete this datum + * + * @param key + */ + public abstract void removeRaw( String key ) + throws StorageException; } \ No newline at end of file