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/07/30 22:07:28 UTC

svn commit: r681187 - in /maven/sandbox/trunk/mercury/src: main/java/org/apache/maven/mercury/artifact/ main/java/org/apache/maven/mercury/repository/api/ main/java/org/apache/maven/mercury/repository/local/m2/ main/java/org/apache/maven/mercury/reposi...

Author: ogusakov
Date: Wed Jul 30 13:07:27 2008
New Revision: 681187

URL: http://svn.apache.org/viewvc?rev=681187&view=rev
Log:
MetadataReaderTest passes with RemoteRepositoryReader using jetty-client.

Exposed low-level readRawData(String) method in RepositoryReader

Modified:
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/artifact/ArtifactBasicMetadata.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RepositoryReader.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java
    maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/repository/metadata/MetadataReaderTest.java

Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/artifact/ArtifactBasicMetadata.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/artifact/ArtifactBasicMetadata.java?rev=681187&r1=681186&r2=681187&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/artifact/ArtifactBasicMetadata.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/artifact/ArtifactBasicMetadata.java Wed Jul 30 13:07:27 2008
@@ -44,38 +44,50 @@
   transient RepositoryReader _reader;
   
   //------------------------------------------------------------------
+  public ArtifactBasicMetadata()
+  {
+  }
+  //------------------------------------------------------------------
   /**
    * create basic out of <b>group:artifact:version:classifier:type</b> string, use 
    * empty string to specify missing component - for instance query for common-1.3.zip
    * can be specified as ":common:1.3::zip" - note missing groupId and classifier. 
    */
-  public static ArtifactBasicMetadata create( String query )
+  public ArtifactBasicMetadata( String query )
   {
-    ArtifactBasicMetadata mdq = new ArtifactBasicMetadata();
-    
     if( query == null )
-      return null;
+      return;
     
     String [] tokens = query.split(":");
     
     if( tokens == null || tokens.length < 1 )
-      return mdq;
+      return;
 
     int count = tokens.length;
     
-    mdq.groupId = nullify( tokens[0] );
+    this.groupId = nullify( tokens[0] );
   
     if( count > 1 )
-      mdq.artifactId = nullify( tokens[1] );
+      this.artifactId = nullify( tokens[1] );
     
     if( count > 2 )
-      mdq.version = nullify( tokens[2] );
+      this.version = nullify( tokens[2] );
     
     if( count > 3 )
-      mdq.classifier = nullify( tokens[3] );
+      this.classifier = nullify( tokens[3] );
     
     if( count > 4 )
-      mdq.type = nullify( tokens[4] );
+      this.type = nullify( tokens[4] );
+  }
+  //------------------------------------------------------------------
+  /**
+   * create basic out of <b>group:artifact:version:classifier:type</b> string, use 
+   * empty string to specify missing component - for instance query for common-1.3.zip
+   * can be specified as ":common:1.3::zip" - note missing groupId and classifier. 
+   */
+  public static ArtifactBasicMetadata create( String query )
+  {
+    ArtifactBasicMetadata mdq = new ArtifactBasicMetadata( query );
     
     return mdq;
   }

Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RepositoryReader.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RepositoryReader.java?rev=681187&r1=681186&r2=681187&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RepositoryReader.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RepositoryReader.java Wed Jul 30 13:07:27 2008
@@ -67,4 +67,15 @@
    */
   public void setMetadataProcessor( MetadataProcessor mdProcessor );
   public MetadataProcessor getMetadataProcessor();
+  
+  /**
+   * read content pointed by relative path. It will return content bytes
+   * 
+   * @param path - realative resource path in this repository
+   * @return byte [] of the resource content, pointed by the path
+   * @throws MetadataProcessingException
+   */
+  public byte [] readRawData( String path )
+  throws MetadataProcessingException;
+
 }

Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java?rev=681187&r1=681186&r2=681187&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java Wed Jul 30 13:07:27 2008
@@ -179,17 +179,25 @@
   {
     String bmdPath = bmd.getGroupId().replace( '.', '/' )+"/"+bmd.getArtifactId()+"/"+bmd.getVersion();
     
-    File pomFile = new File( _repoDir, bmdPath+"/"+bmd.getBaseName(classifier)+'.' + (type == null ? bmd.getType() : type ) );
+    String path = bmdPath+"/"+bmd.getBaseName(classifier)+'.' + (type == null ? bmd.getType() : type );
     
-    if( ! pomFile.exists() )
+    return readRawData( path );
+  }
+  //---------------------------------------------------------------------------------------------------------------
+  public byte[] readRawData( String path )
+  throws MetadataProcessingException
+  {
+    File file = new File( _repoDir, path );
+    
+    if( ! file.exists() )
       return null;
     
     FileInputStream fis = null;
     
     try
     {
-      fis = new FileInputStream( pomFile );
-      int len = (int)pomFile.length();
+      fis = new FileInputStream( file );
+      int len = (int)file.length();
       byte [] pom = new byte [ len ];
       fis.read( pom );
       return pom;

Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java?rev=681187&r1=681186&r2=681187&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java Wed Jul 30 13:07:27 2008
@@ -235,14 +235,22 @@
     return readRawData( bmdPath );
   }
   //---------------------------------------------------------------------------------------------------------------
-  private byte[] readRawData( String path )
+  public byte[] readRawData( String path )
   throws MetadataProcessingException
   {
+    if( path == null || path.length() < 1 )
+      return null;
+    
     FileInputStream fis = null;
     try
     {
       File tempFile = File.createTempFile( "mercury", "readraw" );
-      Binding binding = new Binding( new URL(_repo.getServer().getURL().toString()+'/'+path) , tempFile);
+      
+      String separator = "/";
+      if( path.startsWith( separator ))
+        separator = "";
+      
+      Binding binding = new Binding( new URL(_repo.getServer().getURL().toString() + separator + path) , tempFile );
       DefaultRetrievalRequest request = new DefaultRetrievalRequest();
       request.addBinding( binding );
       

Modified: maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/repository/metadata/MetadataReaderTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/repository/metadata/MetadataReaderTest.java?rev=681187&r1=681186&r2=681187&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/repository/metadata/MetadataReaderTest.java (original)
+++ maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/repository/metadata/MetadataReaderTest.java Wed Jul 30 13:07:27 2008
@@ -1,5 +1,6 @@
 package org.apache.maven.mercury.repository.metadata;
 
+import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -10,7 +11,9 @@
 
 import junit.framework.TestCase;
 
+import org.apache.maven.mercury.artifact.ArtifactBasicMetadata;
 import org.apache.maven.mercury.repository.MetadataProcessorMock;
+import org.apache.maven.mercury.repository.api.MetadataProcessingException;
 import org.apache.maven.mercury.repository.api.RepositoryException;
 import org.apache.maven.mercury.repository.api.RepositoryReader;
 import org.apache.maven.mercury.repository.metadata.io.xpp3.MetadataXpp3Reader;
@@ -88,30 +91,17 @@
   }
   //-------------------------------------------------------------------------
   public void testReadRemoteMdViaRepositoryReader()
-  throws FileNotFoundException, IOException, XmlPullParserException, RepositoryException
+  throws FileNotFoundException, IOException, XmlPullParserException, RepositoryException, MetadataProcessingException
   {
-    File temp = File.createTempFile("maven", "metadata" );
-    RemoteRepositoryReaderM2Factory rf = new RemoteRepositoryReaderM2Factory();
-    
     Server server = new Server( "test", new URL("http://localhost:"+_port+"/repo") );
+
     RemoteRepositoryM2 rrm2 = new RemoteRepositoryM2( "testRepo", server );
     
-    RepositoryReader reader = rf.getReader( rrm2, new MetadataProcessorMock() );
-    
-    HashSet<Binding> bindings = new HashSet<Binding>();
-    
-    Binding aaMdBinding = new Binding( new URL("http://localhost:"+_port+"/repo/a/a/maven-metadata.xml"), temp);
-    bindings.add( aaMdBinding );
-    
-    _request.setBindings(bindings);
-    
-    RetrievalResponse response = _retriever.retrieve(_request);
+    RepositoryReader reader = rrm2.getReader( new MetadataProcessorMock() );
     
-    if( response.hasExceptions() )
-      fail("retrieval exceptions: "+response.getExceptions()+"\nReading from "+aaMdBinding.getRemoteResource() );
+    byte [] mmBuf = reader.readRawData( "a/a/maven-metadata.xml" );
     
-    Metadata mmd = _reader.read( new FileInputStream( temp ) );
-    temp.delete();
+    Metadata mmd = _reader.read( new ByteArrayInputStream( mmBuf ) );
     
     validateMmd( mmd );