aboutsummaryrefslogtreecommitdiffstats
path: root/archiva-modules/archiva-base/archiva-converter
diff options
context:
space:
mode:
authorBrett Porter <brett@apache.org>2008-03-29 03:09:22 +0000
committerBrett Porter <brett@apache.org>2008-03-29 03:09:22 +0000
commita05f42cc0ec53b094ddd64661579374792a55231 (patch)
tree32274f5d8286676016f357caf10dce8be975f28e /archiva-modules/archiva-base/archiva-converter
parented0fa81292f6aaca377638a3fbf5b80cef029452 (diff)
downloadarchiva-a05f42cc0ec53b094ddd64661579374792a55231.tar.gz
archiva-a05f42cc0ec53b094ddd64661579374792a55231.zip
restructure according to discussion on the dev list
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@642497 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'archiva-modules/archiva-base/archiva-converter')
-rw-r--r--archiva-modules/archiva-base/archiva-converter/pom.xml88
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/RepositoryConversionException.java39
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/DefaultLegacyRepositoryConverter.java104
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/LegacyConverterArtifactConsumer.java161
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/LegacyRepositoryConverter.java48
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/main/resources/org/apache/maven/archiva/converter/DefaultRepositoryConverter.properties38
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-one.pom6
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-three.pom6
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-two.pom6
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-snapshot.pom28
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-timestamped-snapshot.pom28
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-warnings.pom28
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3.pom28
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/maven-foo-plugin-1.0.pom7
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/newversion-artifact-metadata.xml10
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/maven-metadata.xml6
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom28
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/maven-metadata.xml9
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom12
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-artifact-metadata.xml9
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-snapshot-artifact-metadata.xml9
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-snapshot-metadata.xml6
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-timestamped-snapshot-metadata.xml11
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-version-metadata.xml6
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-artifact-metadata.xml9
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-snapshot-artifact-metadata.xml9
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-snapshot-metadata.xml6
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-timestamped-snapshot-metadata.xml11
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-version-metadata.xml6
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/java/org/apache/maven/archiva/converter/RepositoryConverterTest.java153
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/resources/log4j.properties10
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/resources/org/apache/maven/archiva/converter/RepositoryConverterTest.xml125
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/1.0.0/incorrectArtifactMetadata-1.0.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/1.0.0/incorrectArtifactMetadata-1.0.0.pom25
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/maven-metadata.xml29
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/incorrectSnapshotMetadata-1.0.0-20060102.030405-6.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/incorrectSnapshotMetadata-1.0.0-20060102.030405-6.pom25
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/maven-metadata.xml31
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/maven-metadata.xml29
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/artifact-one-1.0.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/artifact-three-1.0.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/artifact-two-1.0.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/dryrun-artifact-1.0.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/existing-artifact-1.0.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectMd5Artifact-1.0.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectMd5Artifact-1.0.0.jar.md51
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectSha1Artifact-1.0.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectSha1Artifact-1.0.0.jar.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/modified-artifact-1.0.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/newversion-artifact-1.0.1.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/noPomArtifact-1.0.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/relocated-v3artifact-1.0.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/rollback-created-artifact-1.0.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/unmodified-artifact-1.0.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v3-warnings-artifact-1.0.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v3artifact-1.0.0-20060105.130101-3.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v3artifact-1.0.0-SNAPSHOT.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v3artifact-1.0.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0-20060111.120115-1.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0-SNAPSHOT.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0.jar.md51
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0.jar.sha11
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/plugins/maven-foo-plugin-1.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/artifact-one-1.0.0.pom6
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/artifact-three-1.0.0.pom6
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/artifact-two-1.0.0.pom6
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/dryrun-artifact-1.0.0.pom22
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/incorrectMd5Artifact-1.0.0.pom6
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/incorrectSha1Artifact-1.0.0.pom6
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/maven-foo-plugin-1.0.pom6
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/modified-artifact-1.0.0.pom22
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/newversion-artifact-1.0.1.pom22
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/relocated-v3artifact-1.0.0.pom27
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/rollback-created-artifact-1.0.0.pom39
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/unmodified-artifact-1.0.0.pom25
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3-warnings-artifact-1.0.0.pom48
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-20060105.130101-3.pom40
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-SNAPSHOT.pom40
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0.pom24
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-20060111.120115-1.pom22
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-SNAPSHOT.pom22
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0.pom6
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.pom25
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/newversion-artifact/1.0.0/newversion-artifact-1.0.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/newversion-artifact/1.0.0/newversion-artifact-1.0.0.pom25
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/newversion-artifact/maven-metadata.xml29
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/unmodified-artifact/1.0.0/unmodified-artifact-1.0.0.jar1
-rw-r--r--archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/unmodified-artifact/1.0.0/unmodified-artifact-1.0.0.pom25
91 files changed, 1719 insertions, 0 deletions
diff --git a/archiva-modules/archiva-base/archiva-converter/pom.xml b/archiva-modules/archiva-base/archiva-converter/pom.xml
new file mode 100644
index 000000000..162bd6aad
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/pom.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you 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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-base</artifactId>
+ <version>1.1-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>archiva-converter</artifactId>
+ <name>Archiva Base :: Repository Converter</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-consumer-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-repository-layer</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-artifact-converter</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-model-converter</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-digest</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-i18n</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.registry</groupId>
+ <artifactId>plexus-registry-commons</artifactId>
+ </dependency>
+ <!-- TEST DEPS -->
+ <dependency>
+ <groupId>hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <!-- Needed for PlexusTestCase -->
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/RepositoryConversionException.java b/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/RepositoryConversionException.java
new file mode 100644
index 000000000..cbc622d64
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/RepositoryConversionException.java
@@ -0,0 +1,39 @@
+package org.apache.maven.archiva.converter;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+/**
+ * Exception occuring during repository conversion.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ */
+public class RepositoryConversionException
+ extends Exception
+{
+ public RepositoryConversionException( String message )
+ {
+ super( message );
+ }
+
+ public RepositoryConversionException( String message, Throwable cause )
+ {
+ super( message, cause );
+ }
+}
diff --git a/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/DefaultLegacyRepositoryConverter.java b/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/DefaultLegacyRepositoryConverter.java
new file mode 100644
index 000000000..b2ab8e1fe
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/DefaultLegacyRepositoryConverter.java
@@ -0,0 +1,104 @@
+package org.apache.maven.archiva.converter.legacy;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+import org.apache.maven.archiva.common.utils.PathUtil;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+import org.apache.maven.archiva.converter.RepositoryConversionException;
+import org.apache.maven.archiva.repository.RepositoryException;
+import org.apache.maven.archiva.repository.scanner.RepositoryScanner;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * DefaultLegacyRepositoryConverter
+ *
+ * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
+ * @version $Id$
+ * @plexus.component
+ */
+public class DefaultLegacyRepositoryConverter
+ implements LegacyRepositoryConverter
+{
+ /**
+ * @plexus.requirement
+ */
+ private ArtifactRepositoryFactory artifactRepositoryFactory;
+
+ /**
+ * @plexus.requirement role-hint="default"
+ */
+ private ArtifactRepositoryLayout defaultLayout;
+
+ /**
+ * @plexus.requirement role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer"
+ * role-hint="artifact-legacy-to-default-converter"
+ */
+ private LegacyConverterArtifactConsumer legacyConverterConsumer;
+
+ /**
+ * @plexus.requirement
+ */
+ private RepositoryScanner repoScanner;
+
+ public void convertLegacyRepository( File legacyRepositoryDirectory, File repositoryDirectory,
+ List fileExclusionPatterns )
+ throws RepositoryConversionException
+ {
+ try
+ {
+ String defaultRepositoryUrl = PathUtil.toUrl( repositoryDirectory );
+
+ ManagedRepositoryConfiguration legacyRepository = new ManagedRepositoryConfiguration();
+ legacyRepository.setId( "legacy");
+ legacyRepository.setName( "Legacy Repository" );
+ legacyRepository.setLocation( legacyRepositoryDirectory.getAbsolutePath() );
+ legacyRepository.setLayout( "legacy" );
+
+ ArtifactRepository repository = artifactRepositoryFactory.createArtifactRepository( "default",
+ defaultRepositoryUrl,
+ defaultLayout, null,
+ null );
+ legacyConverterConsumer.setExcludes( fileExclusionPatterns );
+ legacyConverterConsumer.setDestinationRepository( repository );
+
+ List knownConsumers = new ArrayList();
+ knownConsumers.add( legacyConverterConsumer );
+
+ List invalidConsumers = Collections.EMPTY_LIST;
+ List ignoredContent = new ArrayList();
+ ignoredContent.addAll( Arrays.asList( RepositoryScanner.IGNORABLE_CONTENT ) );
+
+ repoScanner.scan( legacyRepository, knownConsumers, invalidConsumers, ignoredContent,
+ RepositoryScanner.FRESH_SCAN );
+ }
+ catch ( RepositoryException e )
+ {
+ throw new RepositoryConversionException( "Error convering legacy repository.", e );
+ }
+ }
+}
diff --git a/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/LegacyConverterArtifactConsumer.java b/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/LegacyConverterArtifactConsumer.java
new file mode 100644
index 000000000..a385c9087
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/LegacyConverterArtifactConsumer.java
@@ -0,0 +1,161 @@
+package org.apache.maven.archiva.converter.legacy;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer;
+import org.apache.maven.archiva.consumers.ConsumerException;
+import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
+import org.apache.maven.archiva.converter.artifact.ArtifactConversionException;
+import org.apache.maven.archiva.converter.artifact.ArtifactConverter;
+import org.apache.maven.archiva.model.ArtifactReference;
+import org.apache.maven.archiva.repository.ManagedRepositoryContent;
+import org.apache.maven.archiva.repository.content.ManagedDefaultRepositoryContent;
+import org.apache.maven.archiva.repository.layout.LayoutException;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * LegacyConverterArtifactConsumer - convert artifacts as they are found
+ * into the destination repository.
+ *
+ * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
+ * @version $Id$
+ *
+ * @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer"
+ * role-hint="artifact-legacy-to-default-converter"
+ * instantiation-strategy="per-lookup"
+ */
+public class LegacyConverterArtifactConsumer
+ extends AbstractMonitoredConsumer
+ implements KnownRepositoryContentConsumer
+{
+ private Logger log = LoggerFactory.getLogger( LegacyConverterArtifactConsumer.class );
+
+ /**
+ * @plexus.requirement role-hint="legacy-to-default"
+ */
+ private ArtifactConverter artifactConverter;
+
+ /**
+ * @plexus.requirement
+ */
+ private ArtifactFactory artifactFactory;
+
+ private ManagedRepositoryContent managedRepository;
+
+ private ArtifactRepository destinationRepository;
+
+ private List includes;
+
+ private List excludes;
+
+ public LegacyConverterArtifactConsumer()
+ {
+ includes = new ArrayList();
+ includes.add( "**/*.jar" );
+ includes.add( "**/*.ear" );
+ includes.add( "**/*.war" );
+ }
+
+ public void beginScan( ManagedRepositoryConfiguration repository )
+ throws ConsumerException
+ {
+ this.managedRepository = new ManagedDefaultRepositoryContent();
+ this.managedRepository.setRepository( repository );
+ }
+
+ public void completeScan()
+ {
+
+ }
+
+ public List getExcludes()
+ {
+ return excludes;
+ }
+
+ public List getIncludes()
+ {
+ return includes;
+ }
+
+ public void processFile( String path )
+ throws ConsumerException
+ {
+ try
+ {
+ ArtifactReference reference = managedRepository.toArtifactReference( path );
+ Artifact artifact = artifactFactory.createArtifact( reference.getGroupId(), reference.getArtifactId(),
+ reference.getVersion(), reference.getClassifier(),
+ reference.getType() );
+ artifactConverter.convert( artifact, destinationRepository );
+ }
+ catch ( LayoutException e )
+ {
+ log.warn( "Unable to convert artifact: " + path + " : " + e.getMessage(), e );
+ }
+ catch ( ArtifactConversionException e )
+ {
+ log.warn( "Unable to convert artifact: " + path + " : " + e.getMessage(), e );
+ }
+ }
+
+ public String getDescription()
+ {
+ return "Legacy Artifact to Default Artifact Converter";
+ }
+
+ public String getId()
+ {
+ return "artifact-legacy-to-default-converter";
+ }
+
+ public boolean isPermanent()
+ {
+ return false;
+ }
+
+ public void setExcludes( List excludes )
+ {
+ this.excludes = excludes;
+ }
+
+ public void setIncludes( List includes )
+ {
+ this.includes = includes;
+ }
+
+ public ArtifactRepository getDestinationRepository()
+ {
+ return destinationRepository;
+ }
+
+ public void setDestinationRepository( ArtifactRepository destinationRepository )
+ {
+ this.destinationRepository = destinationRepository;
+ }
+}
diff --git a/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/LegacyRepositoryConverter.java b/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/LegacyRepositoryConverter.java
new file mode 100644
index 000000000..9a2f88ae1
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/LegacyRepositoryConverter.java
@@ -0,0 +1,48 @@
+package org.apache.maven.archiva.converter.legacy;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+import org.apache.maven.archiva.converter.RepositoryConversionException;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * Convert an entire repository.
+ *
+ * @author Jason van Zyl
+ */
+public interface LegacyRepositoryConverter
+{
+ String ROLE = LegacyRepositoryConverter.class.getName();
+
+ /**
+ * Convert a legacy repository to a modern repository. This means a Maven 1.x repository
+ * using v3 POMs to a Maven 2.x repository using v4.0.0 POMs.
+ *
+ * @param legacyRepositoryDirectory the directory of the legacy repository.
+ * @param destinationRepositoryDirectory the directory of the modern repository.
+ * @param fileExclusionPatterns the list of patterns to exclude from the conversion.
+ * @throws RepositoryConversionException
+ */
+ void convertLegacyRepository( File legacyRepositoryDirectory, File destinationRepositoryDirectory,
+ List fileExclusionPatterns )
+ throws RepositoryConversionException;
+}
diff --git a/archiva-modules/archiva-base/archiva-converter/src/main/resources/org/apache/maven/archiva/converter/DefaultRepositoryConverter.properties b/archiva-modules/archiva-base/archiva-converter/src/main/resources/org/apache/maven/archiva/converter/DefaultRepositoryConverter.properties
new file mode 100644
index 000000000..8589df468
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/main/resources/org/apache/maven/archiva/converter/DefaultRepositoryConverter.properties
@@ -0,0 +1,38 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you 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.
+#
+
+failure.incorrect.md5=The MD5 checksum value was incorrect.
+failure.incorrect.sha1=The SHA1 checksum value was incorrect.
+failure.target.already.exists=The artifact could not be converted because it already exists.
+failure.invalid.source.pom=The source POM was invalid: {0}.
+
+warning.missing.pom=The artifact had no POM in the source repository.
+
+exception.repositories.match=Source and target repositories are identical.
+
+failure.incorrect.groupMetadata.groupId=The group ID in the source group metadata is incorrect.
+
+failure.incorrect.artifactMetadata.artifactId=The artifact ID in the source artifact metadata is incorrect.
+failure.incorrect.artifactMetadata.groupId=The group ID in the source artifact metadata is incorrect.
+failure.incorrect.artifactMetadata.versions=The version list in the source artifact metadata is incorrect.
+
+failure.incorrect.snapshotMetadata.artifactId=The artifact ID in the source artifact version metadata is incorrect.
+failure.incorrect.snapshotMetadata.groupId=The group ID in the source artifact version metadata is incorrect.
+failure.incorrect.snapshotMetadata.version=The version in the source artifact version metadata is incorrect.
+failure.incorrect.snapshotMetadata.snapshot=The snapshot information in the source artifact version metadata is incorrect.
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-one.pom b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-one.pom
new file mode 100644
index 000000000..cd3862d35
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-one.pom
@@ -0,0 +1,6 @@
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>test</groupId>
+ <artifactId>artifact-one</artifactId>
+ <version>1.0.0</version>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-three.pom b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-three.pom
new file mode 100644
index 000000000..343291037
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-three.pom
@@ -0,0 +1,6 @@
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>test</groupId>
+ <artifactId>artifact-three</artifactId>
+ <version>1.0.0</version>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-two.pom b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-two.pom
new file mode 100644
index 000000000..227470167
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-artifact-two.pom
@@ -0,0 +1,6 @@
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>test</groupId>
+ <artifactId>artifact-two</artifactId>
+ <version>1.0.0</version>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-snapshot.pom b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-snapshot.pom
new file mode 100644
index 000000000..1615b6663
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-snapshot.pom
@@ -0,0 +1,28 @@
+<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>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.2</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-timestamped-snapshot.pom b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-timestamped-snapshot.pom
new file mode 100644
index 000000000..94307d863
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-timestamped-snapshot.pom
@@ -0,0 +1,28 @@
+<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>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.2</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-warnings.pom b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-warnings.pom
new file mode 100644
index 000000000..25f4e76d0
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3-warnings.pom
@@ -0,0 +1,28 @@
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>test</groupId>
+ <artifactId>v3-warnings-artifact</artifactId>
+ <version>1.0.0</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>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.2</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3.pom b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3.pom
new file mode 100644
index 000000000..9f8b63e16
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/converted-v3.pom
@@ -0,0 +1,28 @@
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>test</groupId>
+ <artifactId>v3artifact</artifactId>
+ <version>1.0.0</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>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.2</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/maven-foo-plugin-1.0.pom b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/maven-foo-plugin-1.0.pom
new file mode 100644
index 000000000..17095cc57
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/maven-foo-plugin-1.0.pom
@@ -0,0 +1,7 @@
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-foo-plugin</artifactId>
+ <version>1.0.0</version>
+ <packaging>maven-plugin</version>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/newversion-artifact-metadata.xml b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/newversion-artifact-metadata.xml
new file mode 100644
index 000000000..ecc7f09a0
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/newversion-artifact-metadata.xml
@@ -0,0 +1,10 @@
+<metadata>
+ <groupId>test</groupId>
+ <artifactId>newversion-artifact</artifactId>
+ <versioning>
+ <versions>
+ <version>1.0.0</version>
+ <version>1.0.1</version>
+ </versions>
+ </versioning>
+</metadata>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/maven-metadata.xml b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/maven-metadata.xml
new file mode 100644
index 000000000..ebd9be970
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/maven-metadata.xml
@@ -0,0 +1,6 @@
+<metadata>
+ <groupId>relocated-test</groupId>
+ <artifactId>relocated-v3artifact</artifactId>
+ <version>1.0.0</version>
+ <versioning />
+</metadata> \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.jar b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.jar
new file mode 100644
index 000000000..29ef827e8
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.jar
@@ -0,0 +1 @@
+v3
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom
new file mode 100644
index 000000000..0180549f0
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom
@@ -0,0 +1,28 @@
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>relocated-test</groupId>
+ <artifactId>relocated-v3artifact</artifactId>
+ <version>1.0.0</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>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.2</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/maven-metadata.xml b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/maven-metadata.xml
new file mode 100644
index 000000000..b4b1a864a
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/relocated-test/relocated-v3artifact/maven-metadata.xml
@@ -0,0 +1,9 @@
+<metadata>
+ <groupId>relocated-test</groupId>
+ <artifactId>relocated-v3artifact</artifactId>
+ <versioning>
+ <versions>
+ <version>1.0.0</version>
+ </versions>
+ </versioning>
+</metadata> \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom
new file mode 100644
index 000000000..b20f62f9e
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/test/relocated-v3artifact/1.0.0/relocated-v3artifact-1.0.0.pom
@@ -0,0 +1,12 @@
+<project>
+ <groupId>test</groupId>
+ <artifactId>relocated-v3artifact</artifactId>
+ <version>1.0.0</version>
+ <distributionManagement>
+ <relocation>
+ <groupId>relocated-test</groupId>
+ <artifactId>relocated-v3artifact</artifactId>
+ <version>1.0.0</version>
+ </relocation>
+ </distributionManagement>
+</project> \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-artifact-metadata.xml b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-artifact-metadata.xml
new file mode 100644
index 000000000..a8a7f3748
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-artifact-metadata.xml
@@ -0,0 +1,9 @@
+<metadata>
+ <groupId>test</groupId>
+ <artifactId>v3artifact</artifactId>
+ <versioning>
+ <versions>
+ <version>1.0.0</version>
+ </versions>
+ </versioning>
+</metadata>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-snapshot-artifact-metadata.xml b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-snapshot-artifact-metadata.xml
new file mode 100644
index 000000000..24d25a0e0
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-snapshot-artifact-metadata.xml
@@ -0,0 +1,9 @@
+<metadata>
+ <groupId>test</groupId>
+ <artifactId>v3artifact</artifactId>
+ <versioning>
+ <versions>
+ <version>1.0.0-SNAPSHOT</version>
+ </versions>
+ </versioning>
+</metadata>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-snapshot-metadata.xml b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-snapshot-metadata.xml
new file mode 100644
index 000000000..b19c537b5
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-snapshot-metadata.xml
@@ -0,0 +1,6 @@
+<metadata>
+ <groupId>test</groupId>
+ <artifactId>v3artifact</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <versioning />
+</metadata>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-timestamped-snapshot-metadata.xml b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-timestamped-snapshot-metadata.xml
new file mode 100644
index 000000000..602c38ec8
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-timestamped-snapshot-metadata.xml
@@ -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>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-version-metadata.xml b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-version-metadata.xml
new file mode 100644
index 000000000..3c8938984
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v3-version-metadata.xml
@@ -0,0 +1,6 @@
+<metadata>
+ <groupId>test</groupId>
+ <artifactId>v3artifact</artifactId>
+ <version>1.0.0</version>
+ <versioning />
+</metadata>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-artifact-metadata.xml b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-artifact-metadata.xml
new file mode 100644
index 000000000..c0cdbfdb4
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-artifact-metadata.xml
@@ -0,0 +1,9 @@
+<metadata>
+ <groupId>test</groupId>
+ <artifactId>v4artifact</artifactId>
+ <versioning>
+ <versions>
+ <version>1.0.0</version>
+ </versions>
+ </versioning>
+</metadata>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-snapshot-artifact-metadata.xml b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-snapshot-artifact-metadata.xml
new file mode 100644
index 000000000..f8072b0df
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-snapshot-artifact-metadata.xml
@@ -0,0 +1,9 @@
+<metadata>
+ <groupId>test</groupId>
+ <artifactId>v4artifact</artifactId>
+ <versioning>
+ <versions>
+ <version>1.0.0-SNAPSHOT</version>
+ </versions>
+ </versioning>
+</metadata>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-snapshot-metadata.xml b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-snapshot-metadata.xml
new file mode 100644
index 000000000..d5ecb7d47
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-snapshot-metadata.xml
@@ -0,0 +1,6 @@
+<metadata>
+ <groupId>test</groupId>
+ <artifactId>v4artifact</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <versioning />
+</metadata>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-timestamped-snapshot-metadata.xml b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-timestamped-snapshot-metadata.xml
new file mode 100644
index 000000000..060a79cdd
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-timestamped-snapshot-metadata.xml
@@ -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>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-version-metadata.xml b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-version-metadata.xml
new file mode 100644
index 000000000..7cbd8ad3d
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/expected-files/v4-version-metadata.xml
@@ -0,0 +1,6 @@
+<metadata>
+ <groupId>test</groupId>
+ <artifactId>v4artifact</artifactId>
+ <version>1.0.0</version>
+ <versioning />
+</metadata>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/java/org/apache/maven/archiva/converter/RepositoryConverterTest.java b/archiva-modules/archiva-base/archiva-converter/src/test/java/org/apache/maven/archiva/converter/RepositoryConverterTest.java
new file mode 100644
index 000000000..4dbc2a434
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/java/org/apache/maven/archiva/converter/RepositoryConverterTest.java
@@ -0,0 +1,153 @@
+package org.apache.maven.archiva.converter;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+import org.apache.commons.io.FileUtils;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+import org.apache.maven.archiva.converter.legacy.LegacyRepositoryConverter;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.codehaus.plexus.i18n.I18N;
+import org.codehaus.plexus.spring.PlexusInSpringTestCase;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Test the repository converter.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * @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
+ */
+public class RepositoryConverterTest
+ extends PlexusInSpringTestCase
+{
+ private ArtifactRepository sourceRepository;
+
+ private ManagedRepositoryConfiguration targetRepository;
+
+ private LegacyRepositoryConverter repositoryConverter;
+
+ private ArtifactFactory artifactFactory;
+
+ private static final int SLEEP_MILLIS = 100;
+
+ private I18N i18n;
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+
+ ArtifactRepositoryFactory factory = (ArtifactRepositoryFactory) lookup( ArtifactRepositoryFactory.ROLE );
+
+ ArtifactRepositoryLayout layout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "legacy" );
+
+ File sourceBase = getTestFile( "src/test/source-repository" );
+ sourceRepository = factory.createArtifactRepository( "source", sourceBase.toURL().toString(), layout, null,
+ null );
+
+ layout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "default" );
+
+ File targetBase = getTestFile( "target/test-target-repository" );
+ copyDirectoryStructure( getTestFile( "src/test/target-repository" ), targetBase );
+
+ targetRepository = new ManagedRepositoryConfiguration();
+ targetRepository.setId( "target" );
+ targetRepository.setName( "Target Repo" );
+ targetRepository.setLocation( targetBase.getAbsolutePath() );
+ targetRepository.setLayout( "default" );
+
+ repositoryConverter = (LegacyRepositoryConverter) lookup( LegacyRepositoryConverter.ROLE, "default" );
+
+ artifactFactory = (ArtifactFactory) lookup( ArtifactFactory.ROLE );
+
+ i18n = (I18N) lookup( I18N.ROLE );
+ }
+
+ protected void tearDown()
+ throws Exception
+ {
+ super.tearDown();
+ }
+
+ private void copyDirectoryStructure( File sourceDirectory, File destinationDirectory )
+ throws IOException
+ {
+ if ( !sourceDirectory.exists() )
+ {
+ throw new IOException( "Source directory doesn't exists (" + sourceDirectory.getAbsolutePath() + ")." );
+ }
+
+ File[] files = sourceDirectory.listFiles();
+
+ String sourcePath = sourceDirectory.getAbsolutePath();
+
+ for ( int i = 0; i < files.length; i++ )
+ {
+ File file = files[i];
+
+ String dest = file.getAbsolutePath();
+
+ dest = dest.substring( sourcePath.length() + 1 );
+
+ File destination = new File( destinationDirectory, dest );
+
+ if ( file.isFile() )
+ {
+ destination = destination.getParentFile();
+
+ FileUtils.copyFileToDirectory( file, destination );
+ }
+ else if ( file.isDirectory() )
+ {
+ if ( !".svn".equals( file.getName() ) )
+ {
+ if ( !destination.exists() && !destination.mkdirs() )
+ {
+ throw new IOException( "Could not create destination directory '"
+ + destination.getAbsolutePath() + "'." );
+ }
+ copyDirectoryStructure( file, destination );
+ }
+ }
+ else
+ {
+ throw new IOException( "Unknown file type: " + file.getAbsolutePath() );
+ }
+ }
+ }
+
+ public void testLegacyConversion()
+ throws IOException, RepositoryConversionException
+ {
+ File legacyRepoDir = new File( sourceRepository.getBasedir() );
+ File destRepoDir = new File( targetRepository.getLocation() );
+ List excludes = new ArrayList();
+ repositoryConverter.convertLegacyRepository( legacyRepoDir, destRepoDir, excludes );
+ }
+}
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/resources/log4j.properties b/archiva-modules/archiva-base/archiva-converter/src/test/resources/log4j.properties
new file mode 100644
index 000000000..9b2c26ade
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/resources/log4j.properties
@@ -0,0 +1,10 @@
+# Set root logger level to DEBUG and its only appender to A1.
+log4j.rootLogger=WARN, A1
+
+# A1 is set to be a ConsoleAppender.
+log4j.appender.A1=org.apache.log4j.ConsoleAppender
+
+# A1 uses PatternLayout.
+log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
+
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/resources/org/apache/maven/archiva/converter/RepositoryConverterTest.xml b/archiva-modules/archiva-base/archiva-converter/src/test/resources/org/apache/maven/archiva/converter/RepositoryConverterTest.xml
new file mode 100644
index 000000000..b1cf9640a
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/resources/org/apache/maven/archiva/converter/RepositoryConverterTest.xml
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you 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.
+-->
+
+<component-set>
+ <components>
+
+ <component>
+ <role>org.apache.maven.archiva.converter.RepositoryConverter</role>
+ <implementation>org.apache.maven.archiva.converter.DefaultRepositoryConverter</implementation>
+ <role-hint>force-repository-converter</role-hint>
+ <configuration>
+ <force>true</force>
+ </configuration>
+ <requirements>
+ <requirement>
+ <role>org.codehaus.plexus.digest.Digester</role>
+ <field-name>digesters</field-name>
+ </requirement>
+ <requirement>
+ <role>org.apache.maven.artifact.factory.ArtifactFactory</role>
+ <field-name>artifactFactory</field-name>
+ </requirement>
+ <requirement>
+ <role>org.codehaus.plexus.i18n.I18N</role>
+ <field-name>i18n</field-name>
+ </requirement>
+ </requirements>
+ </component>
+ <component>
+ <role>org.apache.maven.archiva.converter.RepositoryConverter</role>
+ <implementation>org.apache.maven.archiva.converter.DefaultRepositoryConverter</implementation>
+ <role-hint>dryrun-repository-converter</role-hint>
+ <configuration>
+ <dryrun>true</dryrun>
+ </configuration>
+ <requirements>
+ <requirement>
+ <role>org.codehaus.plexus.digest.Digester</role>
+ <field-name>digesters</field-name>
+ </requirement>
+ <requirement>
+ <role>org.apache.maven.artifact.factory.ArtifactFactory</role>
+ <field-name>artifactFactory</field-name>
+ </requirement>
+ <requirement>
+ <role>org.codehaus.plexus.i18n.I18N</role>
+ <field-name>i18n</field-name>
+ </requirement>
+ </requirements>
+ </component>
+
+
+ <component>
+ <role>org.codehaus.plexus.jdo.JdoFactory</role>
+ <role-hint>archiva</role-hint>
+ <implementation>org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory</implementation>
+
+ <configuration>
+ <!-- Database Configuration -->
+ <driverName>org.hsqldb.jdbcDriver</driverName>
+ <url>jdbc:hsqldb:mem:TESTDB</url>
+ <userName>sa</userName>
+ <password></password>
+
+ <!-- JPOX and JDO configuration -->
+ <persistenceManagerFactoryClass>org.jpox.PersistenceManagerFactoryImpl</persistenceManagerFactoryClass>
+ <otherProperties>
+ <property>
+ <name>javax.jdo.PersistenceManagerFactoryClass</name>
+ <value>org.jpox.PersistenceManagerFactoryImpl</value>
+ </property>
+ <property>
+ <name>org.jpox.autoCreateSchema</name>
+ <value>true</value>
+ </property>
+ <property>
+ <name>org.jpox.validateTables</name>
+ <value>false</value>
+ </property>
+ <property>
+ <name>org.jpox.validateConstraints</name>
+ <value>false</value>
+ </property>
+ <property>
+ <name>org.jpox.validateColumns</name>
+ <value>false</value>
+ </property>
+ <property>
+ <name>org.jpox.autoStartMechanism</name>
+ <value>None</value>
+ </property>
+ <property>
+ <name>org.jpox.transactionIsolation</name>
+ <value>READ_UNCOMMITTED</value>
+ </property>
+ <property>
+ <name>org.jpox.poid.transactionIsolation</name>
+ <value>READ_UNCOMMITTED</value>
+ </property>
+ <property>
+ <name>org.jpox.rdbms.dateTimezone</name>
+ <value>JDK_DEFAULT_TIMEZONE</value>
+ </property>
+ </otherProperties>
+ </configuration>
+ </component>
+ </components>
+</component-set>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/1.0.0/incorrectArtifactMetadata-1.0.0.jar b/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/1.0.0/incorrectArtifactMetadata-1.0.0.jar
new file mode 100644
index 000000000..72af4bc10
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/1.0.0/incorrectArtifactMetadata-1.0.0.jar
@@ -0,0 +1 @@
+incorrectMd5
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/1.0.0/incorrectArtifactMetadata-1.0.0.pom b/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/1.0.0/incorrectArtifactMetadata-1.0.0.pom
new file mode 100644
index 000000000..b64e1d0f0
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/1.0.0/incorrectArtifactMetadata-1.0.0.pom
@@ -0,0 +1,25 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you 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>incorrectArtifactMetadata</artifactId>
+ <groupId>test</groupId>
+ <currentVersion>1.0.0</currentVersion>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/maven-metadata.xml b/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/maven-metadata.xml
new file mode 100644
index 000000000..b393bcd3d
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectArtifactMetadata/maven-metadata.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you 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.
+ -->
+
+<metadata>
+ <groupId>test</groupId>
+ <artifactId>incorrectArtifactMetadata</artifactId>
+ <versioning>
+ <versions>
+ <version>0.9</version>
+ </versions>
+ </versioning>
+</metadata> \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/incorrectSnapshotMetadata-1.0.0-20060102.030405-6.jar b/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/incorrectSnapshotMetadata-1.0.0-20060102.030405-6.jar
new file mode 100644
index 000000000..72af4bc10
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/incorrectSnapshotMetadata-1.0.0-20060102.030405-6.jar
@@ -0,0 +1 @@
+incorrectMd5
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/incorrectSnapshotMetadata-1.0.0-20060102.030405-6.pom b/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/incorrectSnapshotMetadata-1.0.0-20060102.030405-6.pom
new file mode 100644
index 000000000..929190af2
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/incorrectSnapshotMetadata-1.0.0-20060102.030405-6.pom
@@ -0,0 +1,25 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you 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>incorrectSnapshotMetadata</artifactId>
+ <groupId>test</groupId>
+ <currentVersion>1.0.0-20060102.030405-6</currentVersion>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/maven-metadata.xml b/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/maven-metadata.xml
new file mode 100644
index 000000000..5980278b3
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/1.0.0-SNAPSHOT/maven-metadata.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you 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.
+ -->
+
+<metadata>
+ <groupId>test</groupId>
+ <artifactId>incorrectSnapshotMetadata</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <versioning>
+ <snapshot>
+ <buildNumber>10</buildNumber>
+ <timestamp>20060102.040506</timestamp>
+ </snapshot>
+ </versioning>
+</metadata> \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/maven-metadata.xml b/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/maven-metadata.xml
new file mode 100644
index 000000000..3f9a0cef2
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-modern-repository/test/incorrectSnapshotMetadata/maven-metadata.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you 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.
+ -->
+
+<metadata>
+ <groupId>test</groupId>
+ <artifactId>incorrectSnapshotMetadata</artifactId>
+ <versioning>
+ <versions>
+ <version>1.0.0-SNAPSHOT</version>
+ </versions>
+ </versioning>
+</metadata> \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/artifact-one-1.0.0.jar b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/artifact-one-1.0.0.jar
new file mode 100644
index 000000000..5626abf0f
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/artifact-one-1.0.0.jar
@@ -0,0 +1 @@
+one
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/artifact-three-1.0.0.jar b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/artifact-three-1.0.0.jar
new file mode 100644
index 000000000..2bdf67abb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/artifact-three-1.0.0.jar
@@ -0,0 +1 @@
+three
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/artifact-two-1.0.0.jar b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/artifact-two-1.0.0.jar
new file mode 100644
index 000000000..f719efd43
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/artifact-two-1.0.0.jar
@@ -0,0 +1 @@
+two
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/dryrun-artifact-1.0.0.jar b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/dryrun-artifact-1.0.0.jar
new file mode 100644
index 000000000..cbaf024e5
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/dryrun-artifact-1.0.0.jar
@@ -0,0 +1 @@
+existing
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/existing-artifact-1.0.0.jar b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/existing-artifact-1.0.0.jar
new file mode 100644
index 000000000..cbaf024e5
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/existing-artifact-1.0.0.jar
@@ -0,0 +1 @@
+existing
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectMd5Artifact-1.0.0.jar b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectMd5Artifact-1.0.0.jar
new file mode 100644
index 000000000..72af4bc10
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectMd5Artifact-1.0.0.jar
@@ -0,0 +1 @@
+incorrectMd5
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectMd5Artifact-1.0.0.jar.md5 b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectMd5Artifact-1.0.0.jar.md5
new file mode 100644
index 000000000..316d9a4eb
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectMd5Artifact-1.0.0.jar.md5
@@ -0,0 +1 @@
+379dcfcd1e6312cc859111f696047eb4
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectSha1Artifact-1.0.0.jar b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectSha1Artifact-1.0.0.jar
new file mode 100644
index 000000000..f5812f3e5
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectSha1Artifact-1.0.0.jar
@@ -0,0 +1 @@
+incorrectSha1
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectSha1Artifact-1.0.0.jar.sha1 b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectSha1Artifact-1.0.0.jar.sha1
new file mode 100644
index 000000000..cce322eb2
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/incorrectSha1Artifact-1.0.0.jar.sha1
@@ -0,0 +1 @@
+52e07b82d944741f66bba5896d4cd74e9879e289
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/modified-artifact-1.0.0.jar b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/modified-artifact-1.0.0.jar
new file mode 100644
index 000000000..2e0996000
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/modified-artifact-1.0.0.jar
@@ -0,0 +1 @@
+modified
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/newversion-artifact-1.0.1.jar b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/newversion-artifact-1.0.1.jar
new file mode 100644
index 000000000..c694117fd
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/newversion-artifact-1.0.1.jar
@@ -0,0 +1 @@
+v4
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/noPomArtifact-1.0.0.jar b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/noPomArtifact-1.0.0.jar
new file mode 100644
index 000000000..3d27acdcc
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/noPomArtifact-1.0.0.jar
@@ -0,0 +1 @@
+noPom
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/relocated-v3artifact-1.0.0.jar b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/relocated-v3artifact-1.0.0.jar
new file mode 100644
index 000000000..29ef827e8
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/relocated-v3artifact-1.0.0.jar
@@ -0,0 +1 @@
+v3
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/rollback-created-artifact-1.0.0.jar b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/rollback-created-artifact-1.0.0.jar
new file mode 100644
index 000000000..29ef827e8
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/rollback-created-artifact-1.0.0.jar
@@ -0,0 +1 @@
+v3
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/unmodified-artifact-1.0.0.jar b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/unmodified-artifact-1.0.0.jar
new file mode 100644
index 000000000..27597bc21
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/unmodified-artifact-1.0.0.jar
@@ -0,0 +1 @@
+unmodified
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v3-warnings-artifact-1.0.0.jar b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v3-warnings-artifact-1.0.0.jar
new file mode 100644
index 000000000..29ef827e8
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v3-warnings-artifact-1.0.0.jar
@@ -0,0 +1 @@
+v3
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v3artifact-1.0.0-20060105.130101-3.jar b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v3artifact-1.0.0-20060105.130101-3.jar
new file mode 100644
index 000000000..29ef827e8
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v3artifact-1.0.0-20060105.130101-3.jar
@@ -0,0 +1 @@
+v3
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v3artifact-1.0.0-SNAPSHOT.jar b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v3artifact-1.0.0-SNAPSHOT.jar
new file mode 100644
index 000000000..29ef827e8
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v3artifact-1.0.0-SNAPSHOT.jar
@@ -0,0 +1 @@
+v3
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v3artifact-1.0.0.jar b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v3artifact-1.0.0.jar
new file mode 100644
index 000000000..29ef827e8
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v3artifact-1.0.0.jar
@@ -0,0 +1 @@
+v3
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0-20060111.120115-1.jar b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0-20060111.120115-1.jar
new file mode 100644
index 000000000..29ef827e8
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0-20060111.120115-1.jar
@@ -0,0 +1 @@
+v3
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0-SNAPSHOT.jar b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0-SNAPSHOT.jar
new file mode 100644
index 000000000..29ef827e8
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0-SNAPSHOT.jar
@@ -0,0 +1 @@
+v3
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0.jar b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0.jar
new file mode 100644
index 000000000..c694117fd
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0.jar
@@ -0,0 +1 @@
+v4
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0.jar.md5 b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0.jar.md5
new file mode 100644
index 000000000..1930bc6d3
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0.jar.md5
@@ -0,0 +1 @@
+4289bbdd6fba75013b317b2f9a540736 *v4artifact-1.0.0.jar
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0.jar.sha1 b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0.jar.sha1
new file mode 100644
index 000000000..466f209a7
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/jars/v4artifact-1.0.0.jar.sha1
@@ -0,0 +1 @@
+e3e4159da65a4257f0bffb7cac8e3e78241a4dca *v4artifact-1.0.0.jar
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/plugins/maven-foo-plugin-1.0.jar b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/plugins/maven-foo-plugin-1.0.jar
new file mode 100644
index 000000000..5626abf0f
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/plugins/maven-foo-plugin-1.0.jar
@@ -0,0 +1 @@
+one
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/artifact-one-1.0.0.pom b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/artifact-one-1.0.0.pom
new file mode 100644
index 000000000..cd3862d35
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/artifact-one-1.0.0.pom
@@ -0,0 +1,6 @@
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>test</groupId>
+ <artifactId>artifact-one</artifactId>
+ <version>1.0.0</version>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/artifact-three-1.0.0.pom b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/artifact-three-1.0.0.pom
new file mode 100644
index 000000000..343291037
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/artifact-three-1.0.0.pom
@@ -0,0 +1,6 @@
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>test</groupId>
+ <artifactId>artifact-three</artifactId>
+ <version>1.0.0</version>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/artifact-two-1.0.0.pom b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/artifact-two-1.0.0.pom
new file mode 100644
index 000000000..227470167
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/artifact-two-1.0.0.pom
@@ -0,0 +1,6 @@
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>test</groupId>
+ <artifactId>artifact-two</artifactId>
+ <version>1.0.0</version>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/dryrun-artifact-1.0.0.pom b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/dryrun-artifact-1.0.0.pom
new file mode 100644
index 000000000..1953c5523
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/dryrun-artifact-1.0.0.pom
@@ -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>
+ <artifactId>dryrun-artifact</artifactId>
+ <groupId>test</groupId>
+ <currentVersion>1.0.0</currentVersion>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/incorrectMd5Artifact-1.0.0.pom b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/incorrectMd5Artifact-1.0.0.pom
new file mode 100644
index 000000000..74d5e12b4
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/incorrectMd5Artifact-1.0.0.pom
@@ -0,0 +1,6 @@
+<project>
+ <pomVersion>3</pomVersion>
+ <artifactId>incorrectMd5Artifact</artifactId>
+ <groupId>test</groupId>
+ <currentVersion>1.0.0</currentVersion>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/incorrectSha1Artifact-1.0.0.pom b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/incorrectSha1Artifact-1.0.0.pom
new file mode 100644
index 000000000..fe3c7fd91
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/incorrectSha1Artifact-1.0.0.pom
@@ -0,0 +1,6 @@
+<project>
+ <pomVersion>3</pomVersion>
+ <artifactId>incorrectSha1Artifact</artifactId>
+ <groupId>test</groupId>
+ <currentVersion>1.0.0</currentVersion>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/maven-foo-plugin-1.0.pom b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/maven-foo-plugin-1.0.pom
new file mode 100644
index 000000000..a5a02c42d
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/maven-foo-plugin-1.0.pom
@@ -0,0 +1,6 @@
+<project>
+ <pomVersion>3</pomVersion>
+ <artifactId>maven-foo-plugin</artifactId>
+ <groupId>org.apache.maven.plugins</groupId>
+ <currentVersion>1.0</currentVersion>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/modified-artifact-1.0.0.pom b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/modified-artifact-1.0.0.pom
new file mode 100644
index 000000000..fcfdaacb4
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/modified-artifact-1.0.0.pom
@@ -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>
+ <artifactId>modified-artifact</artifactId>
+ <groupId>test</groupId>
+ <currentVersion>1.0.0</currentVersion>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/newversion-artifact-1.0.1.pom b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/newversion-artifact-1.0.1.pom
new file mode 100644
index 000000000..f441c9a46
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/newversion-artifact-1.0.1.pom
@@ -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>newversoin-artifact</artifactId>
+ <version>1.0.1</version>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/relocated-v3artifact-1.0.0.pom b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/relocated-v3artifact-1.0.0.pom
new file mode 100644
index 000000000..ab112a296
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/relocated-v3artifact-1.0.0.pom
@@ -0,0 +1,27 @@
+<project>
+ <pomVersion>3</pomVersion>
+ <artifactId>relocated-v3artifact</artifactId>
+ <groupId>test</groupId>
+ <currentVersion>1.0.0</currentVersion>
+ <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>
+ <properties>
+ <relocated.groupId>relocated-test</relocated.groupId>
+ </properties>
+</project> \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/rollback-created-artifact-1.0.0.pom b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/rollback-created-artifact-1.0.0.pom
new file mode 100644
index 000000000..00692be72
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/rollback-created-artifact-1.0.0.pom
@@ -0,0 +1,39 @@
+<!--
+ ~ 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</currentVersion>
+ <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>
+ <!-- deliberate parse error -->
+ <repository>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/unmodified-artifact-1.0.0.pom b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/unmodified-artifact-1.0.0.pom
new file mode 100644
index 000000000..a8428a8a4
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/unmodified-artifact-1.0.0.pom
@@ -0,0 +1,25 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you 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>
+ <artifactId>unmodified-artifact</artifactId>
+ <groupId>test</groupId>
+ <currentVersion>1.0.0</currentVersion>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3-warnings-artifact-1.0.0.pom b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3-warnings-artifact-1.0.0.pom
new file mode 100644
index 000000000..5f347f371
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3-warnings-artifact-1.0.0.pom
@@ -0,0 +1,48 @@
+<!--
+ ~ 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>
+ <extend>../project.xml</extend>
+ <artifactId>v3-warnings-artifact</artifactId>
+ <groupId>test</groupId>
+ <currentVersion>1.0.0</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>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-20060105.130101-3.pom b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-20060105.130101-3.pom
new file mode 100644
index 000000000..d7ae8953b
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-20060105.130101-3.pom
@@ -0,0 +1,40 @@
+<!--
+ ~ 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>
+ <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>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-SNAPSHOT.pom
new file mode 100644
index 000000000..3958a3358
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0-SNAPSHOT.pom
@@ -0,0 +1,40 @@
+<!--
+ ~ 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>
+ <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>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0.pom b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0.pom
new file mode 100644
index 000000000..5aed3437a
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v3artifact-1.0.0.pom
@@ -0,0 +1,24 @@
+<project>
+ <pomVersion>3</pomVersion>
+ <artifactId>v3artifact</artifactId>
+ <groupId>test</groupId>
+ <currentVersion>1.0.0</currentVersion>
+ <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>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-20060111.120115-1.pom b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-20060111.120115-1.pom
new file mode 100644
index 000000000..e4f36566a
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-20060111.120115-1.pom
@@ -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>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-SNAPSHOT.pom b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-SNAPSHOT.pom
new file mode 100644
index 000000000..be5b8b7e2
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0-SNAPSHOT.pom
@@ -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>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0.pom b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0.pom
new file mode 100644
index 000000000..fa6e82b1e
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/source-repository/test/poms/v4artifact-1.0.0.pom
@@ -0,0 +1,6 @@
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>test</groupId>
+ <artifactId>v4artifact</artifactId>
+ <version>1.0.0</version>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.jar b/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.jar
new file mode 100644
index 000000000..27597bc21
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.jar
@@ -0,0 +1 @@
+unmodified
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.pom b/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.pom
new file mode 100644
index 000000000..d23afd027
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.pom
@@ -0,0 +1,25 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you 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>
+ <artifactId>modified-artifact</artifactId>
+ <groupId>test</groupId>
+ <currentVersion>1.0.0</currentVersion>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/newversion-artifact/1.0.0/newversion-artifact-1.0.0.jar b/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/newversion-artifact/1.0.0/newversion-artifact-1.0.0.jar
new file mode 100644
index 000000000..27597bc21
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/newversion-artifact/1.0.0/newversion-artifact-1.0.0.jar
@@ -0,0 +1 @@
+unmodified
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/newversion-artifact/1.0.0/newversion-artifact-1.0.0.pom b/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/newversion-artifact/1.0.0/newversion-artifact-1.0.0.pom
new file mode 100644
index 000000000..e21492ebf
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/newversion-artifact/1.0.0/newversion-artifact-1.0.0.pom
@@ -0,0 +1,25 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you 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>
+ <artifactId>newversion-artifact</artifactId>
+ <groupId>test</groupId>
+ <currentVersion>1.0.0</currentVersion>
+</project>
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/newversion-artifact/maven-metadata.xml b/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/newversion-artifact/maven-metadata.xml
new file mode 100644
index 000000000..42537e4c5
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/newversion-artifact/maven-metadata.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you 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.
+ -->
+
+<metadata>
+ <groupId>test</groupId>
+ <artifactId>newversion-artifact</artifactId>
+ <versioning>
+ <versions>
+ <version>1.0.0</version>
+ </versions>
+ </versioning>
+</metadata> \ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/unmodified-artifact/1.0.0/unmodified-artifact-1.0.0.jar b/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/unmodified-artifact/1.0.0/unmodified-artifact-1.0.0.jar
new file mode 100644
index 000000000..27597bc21
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/unmodified-artifact/1.0.0/unmodified-artifact-1.0.0.jar
@@ -0,0 +1 @@
+unmodified
diff --git a/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/unmodified-artifact/1.0.0/unmodified-artifact-1.0.0.pom b/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/unmodified-artifact/1.0.0/unmodified-artifact-1.0.0.pom
new file mode 100644
index 000000000..a8428a8a4
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-converter/src/test/target-repository/test/unmodified-artifact/1.0.0/unmodified-artifact-1.0.0.pom
@@ -0,0 +1,25 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you 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>
+ <artifactId>unmodified-artifact</artifactId>
+ <groupId>test</groupId>
+ <currentVersion>1.0.0</currentVersion>
+</project>