This project has retired. For details please refer to its Attic page.
Source code
001package org.apache.archiva.metadata.repository.storage.maven2;
002
003/*
004 * Licensed to the Apache Software Foundation (ASF) under one
005 * or more contributor license agreements.  See the NOTICE file
006 * distributed with this work for additional information
007 * regarding copyright ownership.  The ASF licenses this file
008 * to you under the Apache License, Version 2.0 (the
009 * "License"); you may not use this file except in compliance
010 * with the License.  You may obtain a copy of the License at
011 *
012 *   http://www.apache.org/licenses/LICENSE-2.0
013 *
014 * Unless required by applicable law or agreed to in writing,
015 * software distributed under the License is distributed on an
016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017 * KIND, either express or implied.  See the License for the
018 * specific language governing permissions and limitations
019 * under the License.
020 */
021
022import org.springframework.stereotype.Service;
023
024import java.util.HashMap;
025import java.util.Map;
026
027/**
028 *
029 */
030@Service( "artifactMappingProvider#default" )
031public class DefaultArtifactMappingProvider
032    implements ArtifactMappingProvider
033{
034    private final Map<String, String> classifierAndExtensionToTypeMap;
035
036    private final Map<String, String> typeToExtensionMap;
037
038    public DefaultArtifactMappingProvider()
039    {
040        classifierAndExtensionToTypeMap = new HashMap<>( 4 );
041
042        // Maven 2.2.1 supplied types (excluding defaults where extension == type and no classifier)
043        classifierAndExtensionToTypeMap.put( "client:jar", "ejb-client" );
044        classifierAndExtensionToTypeMap.put( "sources:jar", "java-source" );
045        classifierAndExtensionToTypeMap.put( "javadoc:jar", "javadoc" );
046        classifierAndExtensionToTypeMap.put( "tests:jar", "test-jar" );
047
048        typeToExtensionMap = new HashMap<>();
049
050        // Maven 2.2.1 supplied types (excluding defaults where extension == type and no classifier)
051        typeToExtensionMap.put( "ejb-client", "jar" );
052        typeToExtensionMap.put( "ejb", "jar" );
053        typeToExtensionMap.put( "java-source", "jar" );
054        typeToExtensionMap.put( "javadoc", "jar" );
055        typeToExtensionMap.put( "test-jar", "jar" );
056        typeToExtensionMap.put( "maven-plugin", "jar" );
057
058        // Additional type
059        typeToExtensionMap.put( "maven-archetype", "jar" );
060
061        // TODO: move to maven 1 plugin - but note that it won't have the interface type and might need to reproduce the
062        //       same thing
063        typeToExtensionMap.put( "maven-one-plugin", "jar" );
064        typeToExtensionMap.put( "javadoc.jar", "jar" );
065        typeToExtensionMap.put( "uberjar", "jar" );
066        typeToExtensionMap.put( "distribution-tgz", "tar.gz" );
067        typeToExtensionMap.put( "distribution-zip", "zip" );
068        typeToExtensionMap.put( "aspect", "jar" );
069    }
070
071    @Override
072    public String mapClassifierAndExtensionToType( String classifier, String ext )
073    {
074        if ( classifier == null )
075        {
076            classifier = "";
077        }
078        if ( ext == null )
079        {
080            ext = "";
081        }
082        return classifierAndExtensionToTypeMap.get( classifier + ":" + ext );
083    }
084
085    @Override
086    public String mapTypeToExtension( String type )
087    {
088        return typeToExtensionMap.get( type );
089    }
090}