You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2006/01/16 04:39:20 UTC

svn commit: r369330 - in /maven/repository-manager/trunk/maven-repository-converter/src: main/java/org/apache/maven/repository/converter/ test/expected-files/ test/java/org/apache/maven/repository/converter/ test/source-repository/test/jars/ test/sourc...

Author: brett
Date: Sun Jan 15 19:39:15 2006
New Revision: 369330

URL: http://svn.apache.org/viewcvs?rev=369330&view=rev
Log:
[MRM-9] test metadata conversion

Added:
    maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/converted-v3-snapshot.pom   (with props)
    maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/converted-v3-timestamped-snapshot.pom   (with props)
    maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v3-artifact-metadata.xml   (with props)
    maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v3-snapshot-metadata.xml   (with props)
    maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v3-timestamped-snapshot-metadata.xml   (with props)
    maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4-artifact-metadata.xml   (with props)
    maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4-snapshot-metadata.xml   (with props)
    maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4-timestamped-snapshot-metadata.xml   (with props)
    maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/jars/v3artifact-1.0.0-20060105.130101-3.jar
    maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/jars/v3artifact-1.0.0-SNAPSHOT.jar
    maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/jars/v4artifact-1.0.0-20060111.120115-1.jar
    maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/jars/v4artifact-1.0.0-SNAPSHOT.jar
    maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-20060105.130101-3.pom   (with props)
    maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-SNAPSHOT.pom   (with props)
    maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-20060111.120115-1.pom   (with props)
    maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-SNAPSHOT.pom   (with props)
Modified:
    maven/repository-manager/trunk/maven-repository-converter/src/main/java/org/apache/maven/repository/converter/DefaultRepositoryConverter.java
    maven/repository-manager/trunk/maven-repository-converter/src/test/java/org/apache/maven/repository/converter/RepositoryConverterTest.java

Modified: maven/repository-manager/trunk/maven-repository-converter/src/main/java/org/apache/maven/repository/converter/DefaultRepositoryConverter.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-converter/src/main/java/org/apache/maven/repository/converter/DefaultRepositoryConverter.java?rev=369330&r1=369329&r2=369330&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-converter/src/main/java/org/apache/maven/repository/converter/DefaultRepositoryConverter.java (original)
+++ maven/repository-manager/trunk/maven-repository-converter/src/main/java/org/apache/maven/repository/converter/DefaultRepositoryConverter.java Sun Jan 15 19:39:15 2006
@@ -18,18 +18,29 @@
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.metadata.ArtifactMetadata;
 import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
+import org.apache.maven.artifact.repository.metadata.Metadata;
+import org.apache.maven.artifact.repository.metadata.Snapshot;
+import org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata;
+import org.apache.maven.artifact.repository.metadata.Versioning;
+import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
+import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Writer;
 import org.apache.maven.model.converter.ArtifactPomRewriter;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
 import java.io.File;
+import java.io.FileReader;
 import java.io.FileWriter;
 import java.io.IOException;
 import java.io.StringReader;
 import java.io.Writer;
 import java.util.Iterator;
 import java.util.List;
+import java.util.regex.Matcher;
 
 /**
  * Implementation of repository conversion class.
@@ -66,6 +77,99 @@
         copyArtifact( artifact, targetRepository );
 
         copyPom( artifact, targetRepository );
+
+        Metadata metadata = createBaseMetadata( artifact );
+        Versioning versioning = new Versioning();
+        versioning.addVersion( artifact.getBaseVersion() );
+        metadata.setVersioning( versioning );
+        updateMetadata( new ArtifactRepositoryMetadata( artifact ), targetRepository, metadata );
+
+        metadata = createBaseMetadata( artifact );
+        metadata.setVersion( artifact.getBaseVersion() );
+        versioning = new Versioning();
+
+        Matcher matcher = Artifact.VERSION_FILE_PATTERN.matcher( artifact.getVersion() );
+        if ( matcher.matches() )
+        {
+            Snapshot snapshot = new Snapshot();
+            snapshot.setBuildNumber( Integer.valueOf( matcher.group( 3 ) ).intValue() );
+            snapshot.setTimestamp( matcher.group( 2 ) );
+            versioning.setSnapshot( snapshot );
+        }
+
+        // TODO: merge latest/release/snapshot from source instead
+        metadata.setVersioning( versioning );
+        updateMetadata( new SnapshotArtifactRepositoryMetadata( artifact ), targetRepository, metadata );
+    }
+
+    private static Metadata createBaseMetadata( Artifact artifact )
+    {
+        Metadata metadata = new Metadata();
+        metadata.setArtifactId( artifact.getArtifactId() );
+        metadata.setGroupId( artifact.getGroupId() );
+        return metadata;
+    }
+
+    private void updateMetadata( ArtifactMetadata artifactMetadata, ArtifactRepository targetRepository,
+                                 Metadata newMetadata )
+        throws RepositoryConversionException
+    {
+        File file = new File( targetRepository.getBasedir(),
+                              targetRepository.pathOfRemoteRepositoryMetadata( artifactMetadata ) );
+
+        Metadata metadata;
+        boolean changed;
+
+        if ( file.exists() )
+        {
+            MetadataXpp3Reader reader = new MetadataXpp3Reader();
+            FileReader fileReader = null;
+            try
+            {
+                fileReader = new FileReader( file );
+                metadata = reader.read( fileReader );
+            }
+            catch ( IOException e )
+            {
+                throw new RepositoryConversionException( "Error reading target metadata", e );
+            }
+            catch ( XmlPullParserException e )
+            {
+                throw new RepositoryConversionException( "Error reading target metadata", e );
+            }
+            finally
+            {
+                IOUtil.close( fileReader );
+            }
+            changed = metadata.merge( newMetadata );
+        }
+        else
+        {
+            changed = true;
+            metadata = newMetadata;
+        }
+
+        if ( changed )
+        {
+            Writer writer = null;
+            try
+            {
+                file.getParentFile().mkdirs();
+                writer = new FileWriter( file );
+
+                MetadataXpp3Writer mappingWriter = new MetadataXpp3Writer();
+
+                mappingWriter.write( writer, metadata );
+            }
+            catch ( IOException e )
+            {
+                throw new RepositoryConversionException( "Error writing target metadata", e );
+            }
+            finally
+            {
+                IOUtil.close( writer );
+            }
+        }
     }
 
     private void copyPom( Artifact artifact, ArtifactRepository targetRepository )
@@ -73,6 +177,7 @@
     {
         Artifact pom = artifactFactory.createProjectArtifact( artifact.getGroupId(), artifact.getArtifactId(),
                                                               artifact.getVersion() );
+        pom.setBaseVersion( artifact.getBaseVersion() );
         ArtifactRepository repository = artifact.getRepository();
         File file = new File( repository.getBasedir(), repository.pathOf( pom ) );
 

Added: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/converted-v3-snapshot.pom
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/converted-v3-snapshot.pom?rev=369330&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/converted-v3-snapshot.pom (added)
+++ maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/converted-v3-snapshot.pom Sun Jan 15 19:39:15 2006
@@ -0,0 +1,22 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>test</groupId>
+  <artifactId>v3artifact</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+  <scm>
+    <connection>scm:cvs:ext:${maven.username}@localhost:/home/cvs</connection>
+  </scm>
+  <dependencies>
+    <dependency>
+      <groupId>groupId</groupId>
+      <artifactId>artifactId</artifactId>
+      <version>version</version>
+    </dependency>
+    <dependency>
+      <groupId>groupId</groupId>
+      <artifactId>test-artifactId</artifactId>
+      <version>version</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+</project>

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/converted-v3-snapshot.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/converted-v3-snapshot.pom
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/converted-v3-timestamped-snapshot.pom
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/converted-v3-timestamped-snapshot.pom?rev=369330&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/converted-v3-timestamped-snapshot.pom (added)
+++ maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/converted-v3-timestamped-snapshot.pom Sun Jan 15 19:39:15 2006
@@ -0,0 +1,22 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>test</groupId>
+  <artifactId>v3artifact</artifactId>
+  <version>1.0.0-20060105.130101-3</version>
+  <scm>
+    <connection>scm:cvs:ext:${maven.username}@localhost:/home/cvs</connection>
+  </scm>
+  <dependencies>
+    <dependency>
+      <groupId>groupId</groupId>
+      <artifactId>artifactId</artifactId>
+      <version>version</version>
+    </dependency>
+    <dependency>
+      <groupId>groupId</groupId>
+      <artifactId>test-artifactId</artifactId>
+      <version>version</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+</project>

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/converted-v3-timestamped-snapshot.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/converted-v3-timestamped-snapshot.pom
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v3-artifact-metadata.xml
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v3-artifact-metadata.xml?rev=369330&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v3-artifact-metadata.xml (added)
+++ maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v3-artifact-metadata.xml Sun Jan 15 19:39:15 2006
@@ -0,0 +1,9 @@
+<metadata>
+  <groupId>test</groupId>
+  <artifactId>v3artifact</artifactId>
+  <versioning>
+    <versions>
+      <version>1.0.0-SNAPSHOT</version>
+    </versions>
+  </versioning>
+</metadata>
\ No newline at end of file

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v3-artifact-metadata.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v3-artifact-metadata.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v3-snapshot-metadata.xml
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v3-snapshot-metadata.xml?rev=369330&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v3-snapshot-metadata.xml (added)
+++ maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v3-snapshot-metadata.xml Sun Jan 15 19:39:15 2006
@@ -0,0 +1,6 @@
+<metadata>
+  <groupId>test</groupId>
+  <artifactId>v3artifact</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+  <versioning/>
+</metadata>
\ No newline at end of file

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v3-snapshot-metadata.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v3-snapshot-metadata.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v3-timestamped-snapshot-metadata.xml
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v3-timestamped-snapshot-metadata.xml?rev=369330&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v3-timestamped-snapshot-metadata.xml (added)
+++ maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v3-timestamped-snapshot-metadata.xml Sun Jan 15 19:39:15 2006
@@ -0,0 +1,11 @@
+<metadata>
+  <groupId>test</groupId>
+  <artifactId>v3artifact</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+  <versioning>
+    <snapshot>
+      <timestamp>20060105.130101</timestamp>
+      <buildNumber>3</buildNumber>
+    </snapshot>
+  </versioning>
+</metadata>
\ No newline at end of file

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v3-timestamped-snapshot-metadata.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v3-timestamped-snapshot-metadata.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4-artifact-metadata.xml
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4-artifact-metadata.xml?rev=369330&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4-artifact-metadata.xml (added)
+++ maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4-artifact-metadata.xml Sun Jan 15 19:39:15 2006
@@ -0,0 +1,9 @@
+<metadata>
+  <groupId>test</groupId>
+  <artifactId>v4artifact</artifactId>
+  <versioning>
+    <versions>
+      <version>1.0.0-SNAPSHOT</version>
+    </versions>
+  </versioning>
+</metadata>
\ No newline at end of file

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4-artifact-metadata.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4-artifact-metadata.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4-snapshot-metadata.xml
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4-snapshot-metadata.xml?rev=369330&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4-snapshot-metadata.xml (added)
+++ maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4-snapshot-metadata.xml Sun Jan 15 19:39:15 2006
@@ -0,0 +1,6 @@
+<metadata>
+  <groupId>test</groupId>
+  <artifactId>v4artifact</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+  <versioning/>
+</metadata>
\ No newline at end of file

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4-snapshot-metadata.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4-snapshot-metadata.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4-timestamped-snapshot-metadata.xml
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4-timestamped-snapshot-metadata.xml?rev=369330&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4-timestamped-snapshot-metadata.xml (added)
+++ maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4-timestamped-snapshot-metadata.xml Sun Jan 15 19:39:15 2006
@@ -0,0 +1,11 @@
+<metadata>
+  <groupId>test</groupId>
+  <artifactId>v4artifact</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+  <versioning>
+    <snapshot>
+      <timestamp>20060111.120115</timestamp>
+      <buildNumber>1</buildNumber>
+    </snapshot>
+  </versioning>
+</metadata>
\ No newline at end of file

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4-timestamped-snapshot-metadata.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4-timestamped-snapshot-metadata.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: maven/repository-manager/trunk/maven-repository-converter/src/test/java/org/apache/maven/repository/converter/RepositoryConverterTest.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-converter/src/test/java/org/apache/maven/repository/converter/RepositoryConverterTest.java?rev=369330&r1=369329&r2=369330&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-converter/src/test/java/org/apache/maven/repository/converter/RepositoryConverterTest.java (original)
+++ maven/repository-manager/trunk/maven-repository-converter/src/test/java/org/apache/maven/repository/converter/RepositoryConverterTest.java Sun Jan 15 19:39:15 2006
@@ -18,9 +18,12 @@
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.metadata.ArtifactMetadata;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
+import org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.util.FileUtils;
 
@@ -29,6 +32,7 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+import java.util.regex.Matcher;
 
 /**
  * Test the repository converter.
@@ -37,6 +41,8 @@
  * @todo what about deletions from the source repository?
  * @todo use artifact-test instead
  * @todo should reject if dependencies are missing - rely on reporting?
+ * @todo group metadata
+ * @todo write timestamp into the metadata
  */
 public class RepositoryConverterTest
     extends PlexusTestCase
@@ -94,9 +100,9 @@
         File sourcePomFile = new File( sourceRepository.getBasedir(), sourceRepository.pathOf( artifact ) );
         assertTrue( "Check POM created", pomFile.exists() );
 
-        String sourceContent = FileUtils.fileRead( sourcePomFile ).trim();
-        String targetContent = FileUtils.fileRead( pomFile ).trim();
-        assertEquals( "Check POM matches", sourceContent, targetContent );
+        compareFiles( sourcePomFile, pomFile );
+
+        // TODO: metadata
     }
 
     public void testV3PomConvert()
@@ -118,20 +124,182 @@
 
         compareFiles( expectedPomFile, pomFile );
 
-        // TODO: test warnings (separate test?)
+        // TODO: metadata
     }
 
-    private static void compareFiles( File expectedPomFile, File pomFile )
-        throws IOException
+    public void testV3PomWarningsOnConvert()
     {
-        String expectedContent = normalizeString( FileUtils.fileRead( expectedPomFile ) );
-        String targetContent = normalizeString( FileUtils.fileRead( pomFile ) );
-        assertEquals( "Check POM was converted", expectedContent, targetContent );
+        // test that the pom is converted but that warnings are reported
+
+        // TODO
     }
 
-    private static String normalizeString( String path )
+    public void testV4SnapshotPomConvert()
+        throws IOException, RepositoryConversionException
     {
-        return path.trim().replace( "\r\n", "\n" ).replace( '\r', '\n' );
+        // test that it is copied as is
+
+        Artifact artifact = createArtifact( "test", "v4artifact", "1.0.0-SNAPSHOT" );
+        ArtifactMetadata artifactMetadata = new ArtifactRepositoryMetadata( artifact );
+        File artifactMetadataFile = new File( targetRepository.getBasedir(),
+                                              targetRepository.pathOfRemoteRepositoryMetadata( artifactMetadata ) );
+        artifactMetadataFile.delete();
+
+        ArtifactMetadata snapshotMetadata = new SnapshotArtifactRepositoryMetadata( artifact );
+        File snapshotMetadataFile = new File( targetRepository.getBasedir(),
+                                              targetRepository.pathOfRemoteRepositoryMetadata( snapshotMetadata ) );
+        snapshotMetadataFile.delete();
+
+        repositoryConverter.convert( artifact, targetRepository );
+
+        File artifactFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) );
+        assertTrue( "Check artifact created", artifactFile.exists() );
+        assertTrue( "Check artifact matches", FileUtils.contentEquals( artifactFile, artifact.getFile() ) );
+
+        artifact = createPomArtifact( artifact );
+        File pomFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) );
+        File sourcePomFile = new File( sourceRepository.getBasedir(), sourceRepository.pathOf( artifact ) );
+        assertTrue( "Check POM created", pomFile.exists() );
+
+        compareFiles( sourcePomFile, pomFile );
+
+        assertTrue( "Check artifact metadata created", artifactMetadataFile.exists() );
+
+        File expectedMetadataFile = getTestFile( "src/test/expected-files/v4-artifact-metadata.xml" );
+
+        compareFiles( expectedMetadataFile, artifactMetadataFile );
+
+        assertTrue( "Check snapshot metadata created", snapshotMetadataFile.exists() );
+
+        expectedMetadataFile = getTestFile( "src/test/expected-files/v4-snapshot-metadata.xml" );
+
+        compareFiles( expectedMetadataFile, snapshotMetadataFile );
+    }
+
+    public void testV3SnapshotPomConvert()
+        throws IOException, RepositoryConversionException
+    {
+        // test that the pom is coverted
+
+        Artifact artifact = createArtifact( "test", "v3artifact", "1.0.0-SNAPSHOT" );
+        ArtifactMetadata artifactMetadata = new ArtifactRepositoryMetadata( artifact );
+        File artifactMetadataFile = new File( targetRepository.getBasedir(),
+                                              targetRepository.pathOfRemoteRepositoryMetadata( artifactMetadata ) );
+        artifactMetadataFile.delete();
+
+        ArtifactMetadata snapshotMetadata = new SnapshotArtifactRepositoryMetadata( artifact );
+        File snapshotMetadataFile = new File( targetRepository.getBasedir(),
+                                              targetRepository.pathOfRemoteRepositoryMetadata( snapshotMetadata ) );
+        snapshotMetadataFile.delete();
+
+        repositoryConverter.convert( artifact, targetRepository );
+
+        File artifactFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) );
+        assertTrue( "Check artifact created", artifactFile.exists() );
+        assertTrue( "Check artifact matches", FileUtils.contentEquals( artifactFile, artifact.getFile() ) );
+
+        artifact = createPomArtifact( artifact );
+        File pomFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) );
+        File expectedPomFile = getTestFile( "src/test/expected-files/converted-v3-snapshot.pom" );
+        assertTrue( "Check POM created", pomFile.exists() );
+
+        compareFiles( expectedPomFile, pomFile );
+
+        assertTrue( "Check artifact metadata created", artifactMetadataFile.exists() );
+
+        File expectedMetadataFile = getTestFile( "src/test/expected-files/v3-artifact-metadata.xml" );
+
+        compareFiles( expectedMetadataFile, artifactMetadataFile );
+
+        assertTrue( "Check snapshot metadata created", snapshotMetadataFile.exists() );
+
+        expectedMetadataFile = getTestFile( "src/test/expected-files/v3-snapshot-metadata.xml" );
+
+        compareFiles( expectedMetadataFile, snapshotMetadataFile );
+    }
+
+    public void testV4TimestampedSnapshotPomConvert()
+        throws IOException, RepositoryConversionException
+    {
+        // test that it is copied as is
+
+        Artifact artifact = createArtifact( "test", "v4artifact", "1.0.0-20060111.120115-1" );
+        ArtifactMetadata artifactMetadata = new ArtifactRepositoryMetadata( artifact );
+        File artifactMetadataFile = new File( targetRepository.getBasedir(),
+                                              targetRepository.pathOfRemoteRepositoryMetadata( artifactMetadata ) );
+        artifactMetadataFile.delete();
+
+        ArtifactMetadata snapshotMetadata = new SnapshotArtifactRepositoryMetadata( artifact );
+        File snapshotMetadataFile = new File( targetRepository.getBasedir(),
+                                              targetRepository.pathOfRemoteRepositoryMetadata( snapshotMetadata ) );
+        snapshotMetadataFile.delete();
+
+        repositoryConverter.convert( artifact, targetRepository );
+
+        File artifactFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) );
+        assertTrue( "Check artifact created", artifactFile.exists() );
+        assertTrue( "Check artifact matches", FileUtils.contentEquals( artifactFile, artifact.getFile() ) );
+
+        artifact = createPomArtifact( artifact );
+        File pomFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) );
+        File sourcePomFile = new File( sourceRepository.getBasedir(), sourceRepository.pathOf( artifact ) );
+        assertTrue( "Check POM created", pomFile.exists() );
+
+        compareFiles( sourcePomFile, pomFile );
+
+        assertTrue( "Check artifact metadata created", artifactMetadataFile.exists() );
+
+        File expectedMetadataFile = getTestFile( "src/test/expected-files/v4-artifact-metadata.xml" );
+
+        compareFiles( expectedMetadataFile, artifactMetadataFile );
+
+        assertTrue( "Check snapshot metadata created", snapshotMetadataFile.exists() );
+
+        expectedMetadataFile = getTestFile( "src/test/expected-files/v4-timestamped-snapshot-metadata.xml" );
+
+        compareFiles( expectedMetadataFile, snapshotMetadataFile );
+    }
+
+    public void testV3TimestampedSnapshotPomConvert()
+        throws IOException, RepositoryConversionException
+    {
+        // test that the pom is coverted
+
+        Artifact artifact = createArtifact( "test", "v3artifact", "1.0.0-20060105.130101-3" );
+        ArtifactMetadata artifactMetadata = new ArtifactRepositoryMetadata( artifact );
+        File artifactMetadataFile = new File( targetRepository.getBasedir(),
+                                              targetRepository.pathOfRemoteRepositoryMetadata( artifactMetadata ) );
+        artifactMetadataFile.delete();
+
+        ArtifactMetadata snapshotMetadata = new SnapshotArtifactRepositoryMetadata( artifact );
+        File snapshotMetadataFile = new File( targetRepository.getBasedir(),
+                                              targetRepository.pathOfRemoteRepositoryMetadata( snapshotMetadata ) );
+        snapshotMetadataFile.delete();
+
+        repositoryConverter.convert( artifact, targetRepository );
+
+        File artifactFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) );
+        assertTrue( "Check artifact created", artifactFile.exists() );
+        assertTrue( "Check artifact matches", FileUtils.contentEquals( artifactFile, artifact.getFile() ) );
+
+        artifact = createPomArtifact( artifact );
+        File pomFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) );
+        File expectedPomFile = getTestFile( "src/test/expected-files/converted-v3-timestamped-snapshot.pom" );
+        assertTrue( "Check POM created", pomFile.exists() );
+
+        compareFiles( expectedPomFile, pomFile );
+
+        assertTrue( "Check artifact snapshotMetadata created", artifactMetadataFile.exists() );
+
+        File expectedMetadataFile = getTestFile( "src/test/expected-files/v3-artifact-metadata.xml" );
+
+        compareFiles( expectedMetadataFile, artifactMetadataFile );
+
+        assertTrue( "Check snapshot snapshotMetadata created", snapshotMetadataFile.exists() );
+
+        expectedMetadataFile = getTestFile( "src/test/expected-files/v3-timestamped-snapshot-metadata.xml" );
+
+        compareFiles( expectedMetadataFile, snapshotMetadataFile );
     }
 
     public void testNoPomConvert()
@@ -213,13 +381,8 @@
 
         repositoryConverter.convert( artifact, targetRepository );
 
-        String expectedContent = FileUtils.fileRead( sourceFile ).trim();
-        String targetContent = FileUtils.fileRead( targetFile ).trim();
-        assertEquals( "Check file matches", expectedContent, targetContent );
-
-        expectedContent = FileUtils.fileRead( sourcePomFile ).trim();
-        targetContent = FileUtils.fileRead( targetPomFile ).trim();
-        assertEquals( "Check POM matches", expectedContent, targetContent );
+        compareFiles( sourceFile, targetFile );
+        compareFiles( sourcePomFile, targetPomFile );
 
         assertEquals( "Check unmodified", origTime, targetFile.lastModified() );
         assertEquals( "Check unmodified", origPomTime, targetPomFile.lastModified() );
@@ -259,13 +422,8 @@
 
         repositoryConverter.convert( artifact, targetRepository );
 
-        String expectedContent = FileUtils.fileRead( sourceFile ).trim();
-        String targetContent = FileUtils.fileRead( targetFile ).trim();
-        assertEquals( "Check file matches", expectedContent, targetContent );
-
-        expectedContent = FileUtils.fileRead( sourcePomFile ).trim();
-        targetContent = FileUtils.fileRead( targetPomFile ).trim();
-        assertEquals( "Check POM matches", expectedContent, targetContent );
+        compareFiles( sourceFile, targetFile );
+        compareFiles( sourcePomFile, targetPomFile );
 
         assertFalse( "Check modified", origTime == targetFile.lastModified() );
         assertFalse( "Check modified", origPomTime == targetPomFile.lastModified() );
@@ -366,13 +524,6 @@
         // TODO
     }
 
-    public void testSnapshotArtifact()
-    {
-        // test snapshot artifact is converted
-
-        // TODO
-    }
-
     public void testInvalidSourceSnapshotMetadata()
     {
         // test artifact is not converted when source snapshot metadata is invalid and returns failure
@@ -380,20 +531,6 @@
         // TODO
     }
 
-    public void testCreateArtifactMetadata()
-    {
-        // test artifact level metadata is created when it doesn't exist on successful conversion
-
-        // TODO
-    }
-
-    public void testCreateSnapshotMetadata()
-    {
-        // test snapshot metadata is created when it doesn't exist on successful conversion
-
-        // TODO
-    }
-
     public void testMergeArtifactMetadata()
     {
         // test artifact level metadata is merged when it already exists on successful conversion
@@ -417,12 +554,24 @@
 
     private Artifact createArtifact( String groupId, String artifactId, String version )
     {
-        return createArtifact( groupId, artifactId, version, "jar" );
+        Matcher matcher = Artifact.VERSION_FILE_PATTERN.matcher( version );
+        String baseVersion;
+        if ( matcher.matches() )
+        {
+            baseVersion = matcher.group( 1 ) + "-SNAPSHOT";
+        }
+        else
+        {
+            baseVersion = version;
+        }
+        return createArtifact( groupId, artifactId, baseVersion, version, "jar" );
     }
 
-    private Artifact createArtifact( String groupId, String artifactId, String version, String type )
+    private Artifact createArtifact( String groupId, String artifactId, String baseVersion, String version,
+                                     String type )
     {
         Artifact artifact = artifactFactory.createArtifact( groupId, artifactId, version, null, type );
+        artifact.setBaseVersion( baseVersion );
         artifact.setRepository( sourceRepository );
         artifact.setFile( new File( sourceRepository.getBasedir(), sourceRepository.pathOf( artifact ) ) );
         return artifact;
@@ -430,7 +579,21 @@
 
     private Artifact createPomArtifact( Artifact artifact )
     {
-        return createArtifact( artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), "pom" );
+        return createArtifact( artifact.getGroupId(), artifact.getArtifactId(), artifact.getBaseVersion(),
+                               artifact.getVersion(), "pom" );
+    }
+
+    private static void compareFiles( File expectedPomFile, File pomFile )
+        throws IOException
+    {
+        String expectedContent = normalizeString( FileUtils.fileRead( expectedPomFile ) );
+        String targetContent = normalizeString( FileUtils.fileRead( pomFile ) );
+        assertEquals( "Check file match", expectedContent, targetContent );
+    }
+
+    private static String normalizeString( String path )
+    {
+        return path.trim().replace( "\r\n", "\n" ).replace( '\r', '\n' );
     }
 
 }

Added: maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/jars/v3artifact-1.0.0-20060105.130101-3.jar
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/jars/v3artifact-1.0.0-20060105.130101-3.jar?rev=369330&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/jars/v3artifact-1.0.0-20060105.130101-3.jar (added)
+++ maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/jars/v3artifact-1.0.0-20060105.130101-3.jar Sun Jan 15 19:39:15 2006
@@ -0,0 +1 @@
+v3

Added: maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/jars/v3artifact-1.0.0-SNAPSHOT.jar
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/jars/v3artifact-1.0.0-SNAPSHOT.jar?rev=369330&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/jars/v3artifact-1.0.0-SNAPSHOT.jar (added)
+++ maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/jars/v3artifact-1.0.0-SNAPSHOT.jar Sun Jan 15 19:39:15 2006
@@ -0,0 +1 @@
+v3

Added: maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/jars/v4artifact-1.0.0-20060111.120115-1.jar
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/jars/v4artifact-1.0.0-20060111.120115-1.jar?rev=369330&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/jars/v4artifact-1.0.0-20060111.120115-1.jar (added)
+++ maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/jars/v4artifact-1.0.0-20060111.120115-1.jar Sun Jan 15 19:39:15 2006
@@ -0,0 +1 @@
+v3

Added: maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/jars/v4artifact-1.0.0-SNAPSHOT.jar
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/jars/v4artifact-1.0.0-SNAPSHOT.jar?rev=369330&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/jars/v4artifact-1.0.0-SNAPSHOT.jar (added)
+++ maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/jars/v4artifact-1.0.0-SNAPSHOT.jar Sun Jan 15 19:39:15 2006
@@ -0,0 +1 @@
+v3

Added: maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-20060105.130101-3.pom
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-20060105.130101-3.pom?rev=369330&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-20060105.130101-3.pom (added)
+++ maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-20060105.130101-3.pom Sun Jan 15 19:39:15 2006
@@ -0,0 +1,47 @@
+<!--
+  ~ Copyright 2005-2006 The Apache Software Foundation.
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<project>
+  <pomVersion>3</pomVersion>
+  <artifactId>v3artifact</artifactId>
+  <groupId>test</groupId>
+  <currentVersion>1.0.0-20060105.130101-3</currentVersion>
+  <versions>
+    <version>
+      <id>1.0</id>
+      <name>1.0</name>
+      <tag>1_0</tag>
+    </version>
+  </versions>
+  <dependencies>
+    <dependency>
+      <groupId>groupId</groupId>
+      <artifactId>artifactId</artifactId>
+      <version>version</version>
+    </dependency>
+    <dependency>
+      <groupId>groupId</groupId>
+      <artifactId>test-artifactId</artifactId>
+      <version>version</version>
+      <properties>
+        <scope>test</scope>
+      </properties>
+    </dependency>
+  </dependencies>
+  <repository>
+    <connection>scm:cvs:ext:${maven.username}@localhost:/home/cvs</connection>
+  </repository>
+</project>

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-20060105.130101-3.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-20060105.130101-3.pom
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-SNAPSHOT.pom
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-SNAPSHOT.pom?rev=369330&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-SNAPSHOT.pom (added)
+++ maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-SNAPSHOT.pom Sun Jan 15 19:39:15 2006
@@ -0,0 +1,47 @@
+<!--
+  ~ Copyright 2005-2006 The Apache Software Foundation.
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<project>
+  <pomVersion>3</pomVersion>
+  <artifactId>v3artifact</artifactId>
+  <groupId>test</groupId>
+  <currentVersion>1.0.0-SNAPSHOT</currentVersion>
+  <versions>
+    <version>
+      <id>1.0</id>
+      <name>1.0</name>
+      <tag>1_0</tag>
+    </version>
+  </versions>
+  <dependencies>
+    <dependency>
+      <groupId>groupId</groupId>
+      <artifactId>artifactId</artifactId>
+      <version>version</version>
+    </dependency>
+    <dependency>
+      <groupId>groupId</groupId>
+      <artifactId>test-artifactId</artifactId>
+      <version>version</version>
+      <properties>
+        <scope>test</scope>
+      </properties>
+    </dependency>
+  </dependencies>
+  <repository>
+    <connection>scm:cvs:ext:${maven.username}@localhost:/home/cvs</connection>
+  </repository>
+</project>

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-SNAPSHOT.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-SNAPSHOT.pom
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-20060111.120115-1.pom
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-20060111.120115-1.pom?rev=369330&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-20060111.120115-1.pom (added)
+++ maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-20060111.120115-1.pom Sun Jan 15 19:39:15 2006
@@ -0,0 +1,22 @@
+<!--
+  ~ Copyright 2005-2006 The Apache Software Foundation.
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>test</groupId>
+  <artifactId>v4artifact</artifactId>
+  <version>1.0.0-20060111.120115-1</version>
+</project>

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-20060111.120115-1.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-20060111.120115-1.pom
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-SNAPSHOT.pom
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-SNAPSHOT.pom?rev=369330&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-SNAPSHOT.pom (added)
+++ maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-SNAPSHOT.pom Sun Jan 15 19:39:15 2006
@@ -0,0 +1,22 @@
+<!--
+  ~ Copyright 2005-2006 The Apache Software Foundation.
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>test</groupId>
+  <artifactId>v4artifact</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+</project>

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-SNAPSHOT.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-SNAPSHOT.pom
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision