List<LegacyArtifactPath> getLegacyArtifactPaths()
throws ArchivaRestServiceException;
- @Path( "addLegacyArtifactPath" )
- @POST
- @Consumes( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
- @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
- @RedbackAuthorization( permissions = ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION )
- void addLegacyArtifactPath( LegacyArtifactPath legacyArtifactPath )
- throws ArchivaRestServiceException;
-
@Path( "deleteLegacyArtifactPath" )
@GET
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
import org.apache.archiva.admin.model.beans.NetworkConfiguration;
import org.apache.archiva.admin.model.beans.OrganisationInformation;
import org.apache.archiva.admin.model.beans.UiConfiguration;
-import org.apache.archiva.model.ArtifactReference;
-import org.apache.archiva.repository.ManagedRepositoryContent;
import org.apache.archiva.repository.scanner.RepositoryContentConsumers;
import org.apache.archiva.rest.api.model.AdminRepositoryConsumer;
import org.apache.archiva.rest.api.services.ArchivaAdministrationService;
import org.springframework.stereotype.Service;
import javax.inject.Inject;
-import javax.inject.Named;
-import javax.ws.rs.core.Response;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@Inject
private ArchivaAdministration archivaAdministration;
- @Inject
- @Named ( value = "managedRepositoryContent#legacy" )
- private ManagedRepositoryContent repositoryContent;
@Inject
private RepositoryContentConsumers repoConsumerUtil;
}
}
- @Override
- public void addLegacyArtifactPath( LegacyArtifactPath legacyArtifactPath )
- throws ArchivaRestServiceException
- {
-
- // Check the proposed Artifact matches the path
- ArtifactReference artifact = new ArtifactReference();
-
- artifact.setGroupId( legacyArtifactPath.getGroupId() );
- artifact.setArtifactId( legacyArtifactPath.getArtifactId() );
- artifact.setClassifier( legacyArtifactPath.getClassifier() );
- artifact.setVersion( legacyArtifactPath.getVersion() );
- artifact.setType( legacyArtifactPath.getType() );
- String path = repositoryContent.toPath( artifact );
- if ( !StringUtils.equals( path, legacyArtifactPath.getPath() ) )
- {
- throw new ArchivaRestServiceException(
- "artifact path reference '" + legacyArtifactPath.getPath() + "' does not match the initial path: '"
- + path + "'", Response.Status.BAD_REQUEST.getStatusCode(), null );
- }
-
- try
- {
-
- archivaAdministration.addLegacyArtifactPath( legacyArtifactPath, getAuditInformation() );
- }
- catch ( RepositoryAdminException e )
- {
- throw new ArchivaRestServiceException( e.getMessage(), e );
- }
- }
@Override
public Boolean deleteLegacyArtifactPath( String path )
import org.apache.archiva.repository.RepositoryContentFactory;
import org.apache.archiva.repository.RepositoryException;
import org.apache.archiva.repository.RepositoryNotFoundException;
-import org.apache.archiva.repository.content.legacy.LegacyPathParser;
import org.apache.archiva.repository.content.maven2.RepositoryRequest;
import org.apache.archiva.repository.events.AuditListener;
import org.apache.archiva.repository.layout.LayoutException;
this.digestSha1 = plexusSisuBridge.lookup( Digester.class, "sha1" );
// TODO remove this hard dependency on maven !!
- repositoryRequest = new RepositoryRequest( new LegacyPathParser( archivaConfiguration ) );
+ repositoryRequest = new RepositoryRequest( );
}
@PostConstruct
import org.apache.archiva.proxy.model.ProxyFetchResult;
import org.apache.archiva.repository.ManagedRepositoryContent;
import org.apache.archiva.repository.RepositoryContentFactory;
-import org.apache.archiva.repository.content.legacy.LegacyPathParser;
import org.apache.archiva.repository.content.maven2.ManagedDefaultRepositoryContent;
import org.apache.archiva.repository.content.maven2.RepositoryRequest;
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
ManagedRepositoryContent internalRepo = createManagedRepositoryContent( INTERNAL_REPO );
// use actual object (this performs the isMetadata, isDefault and isSupportFile check!)
- RepositoryRequest repoRequest = new RepositoryRequest( new LegacyPathParser( this.archivaConfiguration ) );
+ RepositoryRequest repoRequest = new RepositoryRequest( );
resourceFactory.setRepositoryRequest( repoRequest );
try
ManagedRepositoryContent internalRepo = createManagedRepositoryContent( INTERNAL_REPO );
// use actual object (this performs the isMetadata, isDefault and isSupportFile check!)
- RepositoryRequest repoRequest = new RepositoryRequest( new LegacyPathParser( this.archivaConfiguration ) );
+ RepositoryRequest repoRequest = new RepositoryRequest( );
resourceFactory.setRepositoryRequest( repoRequest );
try
ManagedRepositoryContent legacyRepo = createManagedRepositoryContent( LEGACY_REPO );
// use actual object (this performs the isMetadata, isDefault and isSupportFile check!)
- RepositoryRequest repoRequest = new RepositoryRequest( new LegacyPathParser( this.archivaConfiguration ) );
+ RepositoryRequest repoRequest = new RepositoryRequest( );
resourceFactory.setRepositoryRequest( repoRequest );
try
import org.apache.archiva.model.ArtifactReference;
import org.apache.archiva.repository.ManagedRepositoryContent;
import org.apache.archiva.repository.content.PathParser;
-import org.apache.archiva.repository.content.legacy.LegacyPathParser;
-import org.apache.archiva.repository.content.legacy.ManagedLegacyRepositoryContent;
import org.apache.archiva.repository.layout.LayoutException;
import org.apache.archiva.repository.metadata.MetadataTools;
import org.apache.commons.lang.StringUtils;
{
private PathParser defaultPathParser = new DefaultPathParser();
- private PathParser legacyPathParser;
-
- public RepositoryRequest( LegacyPathParser legacyPathParser )
+ public RepositoryRequest()
{
- this.legacyPathParser = legacyPathParser;
+ // no op
}
/**
}
else if ( isLegacy( path ) )
{
- return legacyPathParser.toArtifactReference( path );
+ throw new LayoutException( "Legacy Maven1 repository not supported anymore." );
}
else
{
if ( isMetadata( referencedResource ) )
{
- if ( repository instanceof ManagedLegacyRepositoryContent )
- {
- throw new LayoutException( "Cannot translate metadata request to legacy layout." );
- }
-
/* Nothing to translate.
* Default layout is the only layout that can contain maven-metadata.xml files, and
* if the managedRepository is layout legacy, this request would never occur.
<context:annotation-config/>
<context:component-scan base-package="org.apache.archiva.dependency.tree.maven2,org.apache.archiva.metadata.repository.storage.maven2,
- org.apache.archiva.repository.content.maven2,org.apache.archiva.repository.content.legacy"/>
+ org.apache.archiva.repository.content.maven2"/>
- <bean name="pathParser#legacy" class="org.apache.archiva.repository.content.legacy.LegacyPathParser">
- <constructor-arg>
- <ref bean="archivaConfiguration#default"/>
- </constructor-arg>
- </bean>
<alias name="repositoryStorage#maven2" alias="repositoryStorage#default"/>
<alias name="repositoryStorage#maven2" alias="repositoryStorage#legacy"/>
+++ /dev/null
-package org.apache.archiva.metadata.repository.storage.maven2;
-
-/*
- * 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.archiva.model.ArtifactReference;
-import org.apache.archiva.repository.AbstractRepositoryLayerTestCase;
-import org.apache.archiva.repository.layout.LayoutException;
-import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.test.context.ContextConfiguration;
-
-import static org.junit.Assert.*;
-
-/**
- * AbstractLegacyRepositoryContentTestCase
- */
-@RunWith ( ArchivaSpringJUnit4ClassRunner.class )
-@ContextConfiguration ( { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context-no-mock-conf.xml" } )
-public abstract class AbstractLegacyRepositoryContentTestCase
- extends AbstractRepositoryLayerTestCase
-{
-
- @Test
- public void testBadPathArtifactIdMissingA()
- {
- assertBadPath( "groupId/jars/-1.0.jar", "artifactId is missing" );
- }
-
- @Test
- public void testBadPathArtifactIdMissingB()
- {
- assertBadPath( "groupId/jars/1.0.jar", "artifactId is missing" );
- }
-
-
- @Test
- public void testBadPathMissingType()
- {
- assertBadPath( "invalid/invalid/1/invalid-1", "missing type" );
- }
-
- @Test
- public void testBadPathTooShort()
- {
- // NEW
- assertBadPath( "invalid/invalid-1.0.jar", "path is too short" );
- }
-
-
- @Test
- public void testBadPathWrongPackageExtension()
- {
- assertBadPath( "org.apache.maven.test/jars/artifactId-1.0.war", "wrong package extension" );
- }
-
- /**
- * [MRM-432] Oddball version spec.
- * Example of an oddball / unusual version spec.
- *
- * @throws org.apache.archiva.repository.layout.LayoutException
- *
- */
- @Test
- public void testGoodButOddVersionSpecGanymedSsh2()
- throws LayoutException
- {
- String groupId = "ch.ethz.ganymed";
- String artifactId = "ganymed-ssh2";
- String version = "build210";
- String type = "jar";
- String path = "ch.ethz.ganymed/jars/ganymed-ssh2-build210.jar";
-
- assertLayout( path, groupId, artifactId, version, null, type );
- }
-
- /**
- * [MRM-432] Oddball version spec.
- * Example of an oddball / unusual version spec.
- *
- * @throws org.apache.archiva.repository.layout.LayoutException
- *
- */
- @Test
- public void testGoodButOddVersionSpecJavaxComm()
- throws LayoutException
- {
- String groupId = "javax";
- String artifactId = "comm";
- String version = "3.0-u1";
- String type = "jar";
- String path = "javax/jars/comm-3.0-u1.jar";
-
- assertLayout( path, groupId, artifactId, version, null, type );
- }
-
- /**
- * [MRM-432] Oddball version spec.
- * Example of an oddball / unusual version spec.
- *
- * @throws org.apache.archiva.repository.layout.LayoutException
- *
- */
- @Test
- public void testGoodButOddVersionSpecJavaxPersistence()
- throws LayoutException
- {
- String groupId = "javax.persistence";
- String artifactId = "ejb";
- String version = "3.0-public_review";
- String type = "jar";
- String path = "javax.persistence/jars/ejb-3.0-public_review.jar";
-
- /*
- * The version id of "public_review" can cause problems. is it part of
- * the version spec? or the classifier?
- */
-
- assertLayout( path, groupId, artifactId, version, null, type );
- }
-
- @Test
- public void testGoodCommonsLang()
- throws LayoutException
- {
- String groupId = "commons-lang";
- String artifactId = "commons-lang";
- String version = "2.1";
- String type = "jar";
- String path = "commons-lang/jars/commons-lang-2.1.jar";
-
- assertLayout( path, groupId, artifactId, version, null, type );
- }
-
- @Test
- public void testGoodDerby()
- throws LayoutException
- {
- String groupId = "org.apache.derby";
- String artifactId = "derby";
- String version = "10.2.2.0";
- String type = "jar";
- String path = "org.apache.derby/jars/derby-10.2.2.0.jar";
-
- assertLayout( path, groupId, artifactId, version, null, type );
- }
-
- /**
- * Test the ejb-client type spec.
- * Type specs are not a 1 to 1 map to the extension.
- * This tests that effect.
- * @throws org.apache.archiva.repository.layout.LayoutException
- */
- /* TODO: Re-enabled in the future.
- public void testGoodFooEjbClient()
- throws LayoutException
- {
- String groupId = "com.foo";
- String artifactId = "foo-client";
- String version = "1.0";
- String type = "ejb"; // oddball type-spec (should result in jar extension)
- String path = "com.foo/ejbs/foo-client-1.0.jar";
-
- assertLayout( path, groupId, artifactId, version, classifier, type );
- }
- */
-
- /**
- * Test the classifier.
- *
- * @throws org.apache.archiva.repository.layout.LayoutException
- *
- */
- @Test
- public void testGoodFooLibJavadoc()
- throws LayoutException
- {
- String groupId = "com.foo.lib";
- String artifactId = "foo-lib";
- String version = "2.1-alpha-1";
- String type = "javadoc";
- String classifier = "javadoc";
- String path = "com.foo.lib/javadoc.jars/foo-lib-2.1-alpha-1-javadoc.jar";
-
- assertLayout( path, groupId, artifactId, version, classifier, type );
- }
-
- /**
- * Test the classifier, and java-source type spec.
- *
- * @throws org.apache.archiva.repository.layout.LayoutException
- *
- */
- @Test
- public void testGoodFooLibSources()
- throws LayoutException
- {
- String groupId = "com.foo.lib";
- String artifactId = "foo-lib";
- String version = "2.1-alpha-1";
- String type = "java-source"; // oddball type-spec (should result in jar extension)
- String classifier = "sources";
- String path = "com.foo.lib/java-sources/foo-lib-2.1-alpha-1-sources.jar";
-
- assertLayout( path, groupId, artifactId, version, classifier, type );
- }
-
- @Test
- public void testGoodFooTool()
- throws LayoutException
- {
- String groupId = "com.foo";
- String artifactId = "foo-tool";
- String version = "1.0";
- String type = "jar";
- String path = "com.foo/jars/foo-tool-1.0.jar";
-
- assertLayout( path, groupId, artifactId, version, null, type );
- }
-
- @Test
- public void testGoodGeronimoEjbSpec()
- throws LayoutException
- {
- String groupId = "org.apache.geronimo.specs";
- String artifactId = "geronimo-ejb_2.1_spec";
- String version = "1.0.1";
- String type = "jar";
- String path = "org.apache.geronimo.specs/jars/geronimo-ejb_2.1_spec-1.0.1.jar";
-
- assertLayout( path, groupId, artifactId, version, null, type );
- }
-
- @Test
- public void testGoodLdapClientsPom()
- throws LayoutException
- {
- String groupId = "directory-clients";
- String artifactId = "ldap-clients";
- String version = "0.9.1-SNAPSHOT";
- String type = "pom";
- String path = "directory-clients/poms/ldap-clients-0.9.1-SNAPSHOT.pom";
-
- assertLayout( path, groupId, artifactId, version, null, type );
- }
-
- /**
- * A timestamped versioned artifact, should reside in a SNAPSHOT baseversion directory.
- *
- * @throws org.apache.archiva.repository.layout.LayoutException
- *
- */
- @Test
- public void testGoodSnapshotMavenTest()
- throws LayoutException
- {
- String groupId = "org.apache.archiva.test";
- String artifactId = "redonkulous";
- String version = "3.1-beta-1-20050831.101112-42";
- String type = "jar";
- String path = "org.apache.archiva.test/jars/redonkulous-3.1-beta-1-20050831.101112-42.jar";
-
- assertLayout( path, groupId, artifactId, version, null, type );
- }
-
- /**
- * [MRM-519] version identifiers within filename cause misidentification of version.
- * Example uses "test" in artifact Id, which is also part of the versionKeyword list.
- */
- @Test
- public void testGoodVersionKeywordInArtifactId()
- throws LayoutException
- {
- String groupId = "maven";
- String artifactId = "maven-test-plugin";
- String version = "1.8.2";
- String type = "pom";
-
- String path = "maven/poms/maven-test-plugin-1.8.2.pom";
-
- assertLayout( path, groupId, artifactId, version, null, type );
- }
-
- /**
- * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods.
- * Example uses "test" in artifact Id, which is also part of the versionKeyword list.
- */
- @Test
- public void testGoodDetectPluginMavenTest()
- throws LayoutException
- {
- String groupId = "maven";
- String artifactId = "maven-test-plugin";
- String version = "1.8.2";
- String type = "maven-one-plugin";
- String path = "maven/plugins/maven-test-plugin-1.8.2.jar";
-
- assertLayout( path, groupId, artifactId, version, null, type );
- }
-
- /**
- * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods.
- */
- @Test
- public void testGoodDetectPluginAvalonMeta()
- throws LayoutException
- {
- String groupId = "avalon-meta";
- String artifactId = "avalon-meta-plugin";
- String version = "1.1";
- String type = "maven-one-plugin";
- String path = "avalon-meta/plugins/avalon-meta-plugin-1.1.jar";
-
- assertLayout( path, groupId, artifactId, version, null, type );
- }
-
- /**
- * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods.
- */
- @Test
- public void testGoodDetectPluginCactusMaven()
- throws LayoutException
- {
- String groupId = "cactus";
- String artifactId = "cactus-maven";
- String version = "1.7dev-20040815";
- String type = "maven-one-plugin";
- String path = "cactus/plugins/cactus-maven-1.7dev-20040815.jar";
-
- assertLayout( path, groupId, artifactId, version, null, type );
- }
-
- /**
- * [MRM-562] Artifact type "maven-plugin" is not detected correctly in .toArtifactReference() methods.
- */
- @Test
- public void testGoodDetectPluginGeronimoPackaging()
- throws LayoutException
- {
- String groupId = "geronimo";
- String artifactId = "geronimo-packaging-plugin";
- String version = "1.0.1";
- String type = "maven-one-plugin";
- String path = "geronimo/plugins/geronimo-packaging-plugin-1.0.1.jar";
-
- assertLayout( path, groupId, artifactId, version, null, type );
- }
-
- /**
- * [MRM-768] Artifact type "maven-plugin" does not distinguish maven1 and maven2 plugins.
- * This produces conflicts when m2 plugins are stored in legacy-layout repository
- */
- @Test
- public void testMaven1Maven2PluginTypeDistinc()
- throws Exception
- {
- String groupId = "com.sun.tools.xjc.maven2";
- String artifactId = "maven-jaxb-plugin";
- String version = "1.1";
- String type = "maven-plugin";
- String path = "com.sun.tools.xjc.maven2/maven-plugins/maven-jaxb-plugin-1.1.jar";
-
- assertLayout( path, groupId, artifactId, version, null, type );
- }
-
- /**
- * Perform a roundtrip through the layout routines to determine success.
- *
- * @param classifier TODO
- */
- private void assertLayout( String path, String groupId, String artifactId, String version, String classifier,
- String type )
- throws LayoutException
- {
- ArtifactReference expectedArtifact = createArtifact( groupId, artifactId, version, classifier, type );
-
- // --- Artifact Tests.
- // Artifact to Path
- assertEquals( "Artifact <" + expectedArtifact + "> to path:", path, toPath( expectedArtifact ) );
-
- // --- Artifact Reference Tests
-
- // Path to Artifact Reference.
- ArtifactReference testReference = toArtifactReference( path );
- assertArtifactReference( testReference, groupId, artifactId, version, classifier, type );
-
- // And back again, using test Reference from previous step.
- assertEquals( "Artifact <" + expectedArtifact + "> to path:", path, toPath( testReference ) );
- }
-
- private void assertArtifactReference( ArtifactReference actualReference, String groupId, String artifactId,
- String version, String classifier, String type )
- {
- String expectedId = "ArtifactReference - " + groupId + ":" + artifactId + ":" + version + ":" + type;
-
- assertNotNull( expectedId + " - Should not be null.", actualReference );
-
- assertEquals( expectedId + " - Group ID", groupId, actualReference.getGroupId() );
- assertEquals( expectedId + " - Artifact ID", artifactId, actualReference.getArtifactId() );
- assertEquals( expectedId + " - Version ID", version, actualReference.getVersion() );
- assertEquals( expectedId + " - classifier", classifier, actualReference.getClassifier() );
- assertEquals( expectedId + " - Type", type, actualReference.getType() );
- }
-
- protected ArtifactReference createArtifact( String groupId, String artifactId, String version, String classifier,
- String type )
- {
- ArtifactReference artifact = new ArtifactReference();
- artifact.setGroupId( groupId );
- artifact.setArtifactId( artifactId );
- artifact.setVersion( version );
- artifact.setClassifier( classifier );
- artifact.setType( type );
- assertNotNull( artifact );
- return artifact;
- }
-
- private void assertBadPath( String path, String reason )
- {
- try
- {
- toArtifactReference( path );
- fail(
- "Should have thrown a LayoutException on the invalid path [" + path + "] because of [" + reason + "]" );
- }
- catch ( LayoutException e )
- {
- /* expected path */
- }
- }
-
-
- protected abstract ArtifactReference toArtifactReference( String path )
- throws LayoutException;
-
- protected abstract String toPath( ArtifactReference reference );
-
-}
+++ /dev/null
-package org.apache.archiva.metadata.repository.storage.maven2;
-
-/*
- * 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.archiva.admin.model.beans.ManagedRepository;
-import org.apache.archiva.common.utils.VersionComparator;
-import org.apache.archiva.model.ArtifactReference;
-import org.apache.archiva.model.ProjectReference;
-import org.apache.archiva.model.VersionedReference;
-import org.apache.archiva.repository.ManagedRepositoryContent;
-import org.apache.archiva.repository.layout.LayoutException;
-import org.junit.Before;
-import org.junit.Test;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-
-import static org.junit.Assert.*;
-
-/**
- * ManagedLegacyRepositoryContentTest
- *
- *
- */
-public class ManagedLegacyRepositoryContentTest
- extends AbstractLegacyRepositoryContentTestCase
-{
- @Inject
- @Named( "managedRepositoryContent#legacy" )
- private ManagedRepositoryContent repoContent;
-
- @Before
- public void setUp()
- throws Exception
- {
- File repoDir = new File( "src/test/repositories/legacy-repository" );
-
- ManagedRepository repository = createRepository( "testRepo", "Unit Test Repo", repoDir );
- repository.setLayout( "legacy" );
-
- //repoContent = (ManagedRepositoryContent) lookup( ManagedRepositoryContent.class, "legacy" );
- repoContent.setRepository( repository );
- }
-
- @Test
- public void testGetVersionsFromProjectReference()
- throws Exception
- {
- assertVersions( "org.apache.maven", "testing", new String[]{ "UNKNOWN",
-// "1.0-javadoc",
-// "1.0-sources",
- "1.0", "1.0-20050611.112233-1" } );
- }
-
- @Test
- public void testGetVersionsFromVersionedReference()
- throws Exception
- {
- assertVersions( "org.apache.maven", "testing", "1.0", new String[]{
-// "1.0-javadoc",
-// "1.0-sources",
- "1.0", "1.0-20050611.112233-1" } );
- }
-
- private void assertVersions( String groupId, String artifactId, String[] expectedVersions )
- throws Exception
- {
- ProjectReference reference = new ProjectReference();
- reference.setGroupId( groupId );
- reference.setArtifactId( artifactId );
-
- // Request the versions.
- Set<String> testedVersionSet = repoContent.getVersions( reference );
-
- // Sort the list (for asserts later)
- List<String> testedVersions = new ArrayList<>();
- testedVersions.addAll( testedVersionSet );
- Collections.sort( testedVersions, new VersionComparator() );
-
- // Test the expected array of versions, to the actual tested versions
- assertEquals( "Assert (Project) Versions: length/size", expectedVersions.length, testedVersions.size() );
-
- for ( int i = 0; i < expectedVersions.length; i++ )
- {
- String actualVersion = testedVersions.get( i );
- assertEquals( "(Project) Versions[" + i + "]", expectedVersions[i], actualVersion );
- }
- }
-
- private void assertVersions( String groupId, String artifactId, String version, String[] expectedVersions )
- throws Exception
- {
- VersionedReference reference = new VersionedReference();
- reference.setGroupId( groupId );
- reference.setArtifactId( artifactId );
- reference.setVersion( version );
-
- // Request the versions.
- Set<String> testedVersionSet = repoContent.getVersions( reference );
-
- // Sort the list (for asserts later)
- List<String> testedVersions = new ArrayList<>();
- testedVersions.addAll( testedVersionSet );
- Collections.sort( testedVersions, new VersionComparator() );
-
- // Test the expected array of versions, to the actual tested versions
- assertEquals( "Assert (Project) Versions: length/size", expectedVersions.length, testedVersions.size() );
-
- for ( int i = 0; i < expectedVersions.length; i++ )
- {
- String actualVersion = testedVersions.get( i );
- assertEquals( "(Project) Versions[" + i + "]", expectedVersions[i], actualVersion );
- }
- }
-
- @Test
- public void testGetRelatedArtifacts()
- throws Exception
- {
- ArtifactReference reference = createArtifact( "org.apache.maven", "testing", "1.0", null, "jar" );
-
- Set<ArtifactReference> related = repoContent.getRelatedArtifacts( reference );
- assertNotNull( related );
-
- String expected[] = new String[]{ "org.apache.maven/jars/testing-1.0.jar",
- "org.apache.maven/java-sources/testing-1.0-sources.jar",
- "org.apache.maven/jars/testing-1.0-20050611.112233-1.jar", "org.apache.maven/poms/testing-1.0.pom",
- "org.apache.maven/distributions/testing-1.0.tar.gz", "org.apache.maven/distributions/testing-1.0.zip",
- "org.apache.maven/javadoc.jars/testing-1.0-javadoc.jar" };
-
- StringBuilder relatedDebugString = new StringBuilder();
- relatedDebugString.append( "[" );
- for ( ArtifactReference ref : related )
- {
- String actualPath = repoContent.toPath( ref );
- relatedDebugString.append( actualPath ).append( ":" );
- }
- relatedDebugString.append( "]" );
-
- for ( String expectedPath : expected )
- {
- boolean found = false;
- for ( ArtifactReference actualRef : related )
- {
- String actualPath = repoContent.toPath( actualRef );
- if ( actualPath.endsWith( expectedPath ) )
- {
- found = true;
- break;
- }
- }
- if ( !found )
- {
- fail( "Unable to find expected artifact [" + expectedPath + "] in list of related artifacts. "
- + "Related <" + relatedDebugString + ">" );
- }
- }
- assertEquals( "Related <" + relatedDebugString + ">:", expected.length, related.size() );
- }
-
-
- @Override
- protected ArtifactReference toArtifactReference( String path )
- throws LayoutException
- {
- return repoContent.toArtifactReference( path );
- }
-
- @Override
- protected String toPath( ArtifactReference reference )
- {
- return repoContent.toPath( reference );
- }
-}
+++ /dev/null
-package org.apache.archiva.metadata.repository.storage.maven2;
-
-/*
- * 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.archiva.admin.model.beans.RemoteRepository;
-import org.apache.archiva.model.ArtifactReference;
-import org.apache.archiva.repository.RemoteRepositoryContent;
-import org.apache.archiva.repository.layout.LayoutException;
-import org.junit.Before;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-
-/**
- * RemoteLegacyRepositoryContentTest
- *
- *
- */
-public class RemoteLegacyRepositoryContentTest
- extends AbstractLegacyRepositoryContentTestCase
-{
- @Inject
- @Named( "remoteRepositoryContent#legacy" )
- private RemoteRepositoryContent repoContent;
-
- @Before
- public void setUp()
- throws Exception
- {
- RemoteRepository repository =
- createRemoteRepository( "testRemoteLegacyRepo", "Unit Test Remote Legacy Repo",
- "http://repo1.maven.org/maven/" );
- repository.setLayout( "legacy" );
-
- //repoContent = (RemoteRepositoryContent) lookup( RemoteRepositoryContent.class, "legacy" );
- repoContent.setRepository( repository );
- }
-
- @Override
- protected ArtifactReference toArtifactReference( String path )
- throws LayoutException
- {
- return repoContent.toArtifactReference( path );
- }
-
- @Override
- protected String toPath( ArtifactReference reference )
- {
- return repoContent.toPath( reference );
- }
-}
--- /dev/null
+package org.apache.archiva.repository;
+
+/*
+ * 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.archiva.admin.model.beans.ManagedRepository;
+import org.apache.archiva.admin.model.beans.RemoteRepository;
+import org.junit.Rule;
+import org.junit.rules.TestName;
+import org.junit.runner.RunWith;
+import org.springframework.context.ApplicationContext;
+import org.springframework.test.context.ContextConfiguration;
+
+import java.io.File;
+import javax.inject.Inject;
+import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
+
+/**
+ * AbstractRepositoryLayerTestCase
+ *
+ *
+ */
+@RunWith( ArchivaSpringJUnit4ClassRunner.class )
+@ContextConfiguration( { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context-no-mock-conf.xml" } )
+public abstract class AbstractRepositoryLayerTestCase
+{
+ @Rule
+ public TestName name = new TestName();
+
+ @Inject
+ protected ApplicationContext applicationContext;
+
+ protected ManagedRepository createRepository( String id, String name, File location )
+ {
+ ManagedRepository repo = new ManagedRepository();
+ repo.setId( id );
+ repo.setName( name );
+ repo.setLocation( location.getAbsolutePath() );
+ return repo;
+ }
+
+ protected RemoteRepository createRemoteRepository( String id, String name, String url )
+ {
+ RemoteRepository repo = new RemoteRepository();
+ repo.setId( id );
+ repo.setName( name );
+ repo.setUrl( url );
+ return repo;
+ }
+
+ protected ManagedRepositoryContent createManagedRepositoryContent( String id, String name, File location,
+ String layout )
+ throws Exception
+ {
+ ManagedRepository repo = new ManagedRepository();
+ repo.setId( id );
+ repo.setName( name );
+ repo.setLocation( location.getAbsolutePath() );
+ repo.setLayout( layout );
+
+ ManagedRepositoryContent repoContent =
+ applicationContext.getBean( "managedRepositoryContent#" + layout, ManagedRepositoryContent.class );
+ repoContent.setRepository( repo );
+
+ return repoContent;
+ }
+
+ protected RemoteRepositoryContent createRemoteRepositoryContent( String id, String name, String url, String layout )
+ throws Exception
+ {
+ RemoteRepository repo = new RemoteRepository();
+ repo.setId( id );
+ repo.setName( name );
+ repo.setUrl( url );
+ repo.setLayout( layout );
+
+ RemoteRepositoryContent repoContent =
+ applicationContext.getBean( "remoteRepositoryContent#" + layout, RemoteRepositoryContent.class );
+ repoContent.setRepository( repo );
+
+ return repoContent;
+ }
+}
import org.apache.archiva.configuration.ArchivaConfiguration;
import org.apache.archiva.model.ArtifactReference;
import org.apache.archiva.repository.ManagedRepositoryContent;
-import org.apache.archiva.repository.content.legacy.LegacyPathParser;
import org.apache.archiva.repository.layout.LayoutException;
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
import org.apache.commons.lang.StringUtils;
/**
* RepositoryRequestTest
*/
-@RunWith ( ArchivaSpringJUnit4ClassRunner.class )
-@ContextConfiguration (
- { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context-repo-request-test.xml" } )
+@RunWith( ArchivaSpringJUnit4ClassRunner.class )
+@ContextConfiguration( { "classpath*:/META-INF/spring-context.xml",
+ "classpath:/spring-context-repo-request-test.xml" } )
public class RepositoryRequestTest
{
protected ApplicationContext applicationContext;
@Inject
- @Named ( "archivaConfiguration#repo-request-test" )
+ @Named( "archivaConfiguration#repo-request-test" )
private ArchivaConfiguration archivaConfiguration;
private RepositoryRequest repoRequest;
public void setUp()
throws Exception
{
- LegacyPathParser legacyPathParser = new LegacyPathParser( archivaConfiguration );
- repoRequest = new RepositoryRequest( legacyPathParser );
+ repoRequest = new RepositoryRequest();
}
@Test
assertInvalidRequest( "groupId/jars/-1.0.jar" );
}
- @Test
- public void testInvalidLegacyRequestBadLocation()
- {
- assertInvalidRequest( "org.apache.maven.test/jars/artifactId-1.0.war" );
- }
@Test
public void testInvalidRequestTooShort()
assertInvalidRequest( "invalid/invalid/1.0-20050611.123456-1/invalid-1.0-20050611.123456-1.jar" );
}
- @Test
+ @Test( expected = LayoutException.class )
public void testValidLegacyGanymed()
throws Exception
{
"ganymed-ssh2", "build210", null, "jar" );
}
- @Test
+ @Test( expected = LayoutException.class )
public void testValidLegacyJavaxComm()
throws Exception
{
assertValid( "javax/comm/3.0-u1/comm-3.0-u1.jar", "javax", "comm", "3.0-u1", null, "jar" );
}
- @Test
+ @Test( expected = LayoutException.class )
public void testValidLegacyJavaxPersistence()
throws Exception
{
"3.0-public_review", null, "jar" );
}
- @Test
+ @Test( expected = LayoutException.class )
public void testValidLegacyMavenTestPlugin()
throws Exception
{
null, "pom" );
}
- @Test
+ @Test( expected = LayoutException.class )
public void testValidLegacyCommonsLangJavadoc()
throws Exception
{
"2.1", "javadoc", "javadoc" );
}
- @Test
+ @Test( expected = LayoutException.class )
public void testValidLegacyDerbyPom()
throws Exception
{
null, "pom" );
}
- @Test
+ @Test( expected = LayoutException.class )
public void testValidLegacyGeronimoEjbSpec()
throws Exception
{
"org.apache.geronimo.specs", "geronimo-ejb_2.1_spec", "1.0.1", null, "jar" );
}
- @Test
+ @Test( expected = LayoutException.class )
public void testValidLegacyLdapSnapshot()
throws Exception
{
"directory-clients", "ldap-clients", "0.9.1-SNAPSHOT", null, "pom" );
}
- @Test
+ @Test( expected = LayoutException.class )
public void testValidLegacyTestArchSnapshot()
throws Exception
{
"test-arch", "2.0.3-SNAPSHOT", null, "pom" );
}
- @Test
+ @Test( expected = LayoutException.class )
public void testValidLegacyOddDottedArtifactId()
throws Exception
{
"com.company.department", "com.company.department.project", "0.2", null, "pom" );
}
- @Test
+ @Test( expected = LayoutException.class )
public void testValidLegacyTimestampedSnapshot()
throws Exception
{
repository ) );
}
- /**
- * [MRM-481] Artifact requests with a .xml.zip extension fail with a 404 Error
- */
- @Test
- public void testToNativePathArtifactLegacyToDefaultDualExtension()
- throws Exception
- {
- ManagedRepositoryContent repository = createManagedRepo( "default" );
-
- // TODO: this is a good test case for maven 1 -> maven 2 link, since m2 doesn't support the distribution-zip type
-
- // Test (artifact) legacy to default - dual extension
- // NOTE: The detection of a dual extension is flawed.
- assertEquals( "org/project/example-presentation/3.2.xml/example-presentation-3.2.xml.zip",
- repoRequest.toNativePath( "org.project/zips/example-presentation-3.2.xml.zip", repository ) );
- }
@Test
public void testToNativePathMetadataDefaultToDefault()
repository ) );
}
- @Test
- public void testNativePathPomLegacyToDefault()
- throws Exception
- {
- ManagedRepositoryContent repository = createManagedRepo( "default" );
-
- // Test (pom) legacy to default
- assertEquals( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0.pom",
- repoRequest.toNativePath( "org.apache.derby/poms/derby-10.2.2.0.pom", repository ) );
- }
-
- @Test
- public void testNativePathPomLegacyToLegacy()
- throws Exception
- {
- ManagedRepositoryContent repository = createManagedRepo( "legacy" );
-
- // Test (pom) legacy to default
- assertEquals( "org.apache.derby/poms/derby-10.2.2.0.pom",
- repoRequest.toNativePath( "org.apache.derby/poms/derby-10.2.2.0.pom", repository ) );
- }
-
- @Test
- public void testNativePathPomLegacyToDefaultEjb()
- throws Exception
- {
- ManagedRepositoryContent repository = createManagedRepo( "default" );
-
- // Test (pom) legacy to default
- String result = repoRequest.toNativePath( "mygroup/ejbs/myejb-1.0.jar", repository );
- assertEquals( "mygroup/myejb/1.0/myejb-1.0.jar", result );
- }
-
- @Test
- public void testNativePathPomLegacyToLegacyEjb()
- throws Exception
- {
- ManagedRepositoryContent repository = createManagedRepo( "legacy" );
-
- // Test (pom) legacy to default
- assertEquals( "mygroup/ejbs/myejb-1.0.jar",
- repoRequest.toNativePath( "mygroup/ejbs/myejb-1.0.jar", repository ) );
- }
-
- @Test
- public void testNativePathPomLegacyToLegacyStrutsModule()
- throws Exception
- {
- ManagedRepositoryContent repository = createManagedRepo( "legacy" );
-
- // Test (pom) legacy to default
- assertEquals( "WebPortal/struts-modules/eventsDB-1.2.3.struts-module",
- repoRequest.toNativePath( "WebPortal/struts-modules/eventsDB-1.2.3.struts-module", repository ) );
- }
-
- @Test
- public void testNativePathSupportFileLegacyToDefault()
- throws Exception
- {
- ManagedRepositoryContent repository = createManagedRepo( "default" );
-
- // Test (supportfile) legacy to default
- assertEquals( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0.jar.sha1",
- repoRequest.toNativePath( "org.apache.derby/jars/derby-10.2.2.0.jar.sha1", repository ) );
- }
@Test
public void testNativePathBadRequestTooShort()
}
}
- @Test
- public void testToNativePathLegacyMetadataDefaultToLegacy()
- throws Exception
- {
- ManagedRepositoryContent repository = createManagedRepo( "legacy" );
-
- // Test (metadata) default to legacy
-
- // Special Case: This direction is not supported, should throw a LayoutException.
- try
- {
- repoRequest.toNativePath( "org/apache/derby/derby/10.2.2.0/maven-metadata.xml", repository );
- fail( "Should have thrown a LayoutException, can't translate a maven-metadata.xml to a legacy layout." );
- }
- catch ( LayoutException e )
- {
- // expected path.
- }
- }
-
- @Test
- public void testNativePathPomDefaultToLegacy()
- throws Exception
- {
- ManagedRepositoryContent repository = createManagedRepo( "legacy" );
-
- // Test (pom) default to legacy
- assertEquals( "org.apache.derby/poms/derby-10.2.2.0.pom",
- repoRequest.toNativePath( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0.pom", repository ) );
- }
-
- @Test
- public void testNativePathSupportFileDefaultToLegacy()
- throws Exception
- {
- ManagedRepositoryContent repository = createManagedRepo( "legacy" );
-
- // Test (supportfile) default to legacy
- assertEquals( "org.apache.derby/jars/derby-10.2.2.0.jar.sha1",
- repoRequest.toNativePath( "org/apache/derby/derby/10.2.2.0/derby-10.2.2.0.jar.sha1",
- repository ) );
- }
private void assertValid( String path, String groupId, String artifactId, String version, String classifier,
String type )