View Javadoc

1   package org.apache.maven.repository;
2   
3   /* ====================================================================
4    *   Licensed to the Apache Software Foundation (ASF) under one or more
5    *   contributor license agreements.  See the NOTICE file distributed with
6    *   this work for additional information regarding copyright ownership.
7    *   The ASF licenses this file to You under the Apache License, Version 2.0
8    *   (the "License"); you may not use this file except in compliance with
9    *   the License.  You may obtain a copy of the License at
10   *
11   *       http://www.apache.org/licenses/LICENSE-2.0
12   *
13   *   Unless required by applicable law or agreed to in writing, software
14   *   distributed under the License is distributed on an "AS IS" BASIS,
15   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16   *   See the License for the specific language governing permissions and
17   *   limitations under the License.
18   * ====================================================================
19   */
20  
21  import org.apache.maven.project.Project;
22  
23  /**
24   *  This will do until wagon debuts.
25   * 
26   * @author <a href="mailto:brett@apache.org">Brett Porter</a> 
27   * @version $Id: DefaultArtifactTypeHandler.java 517014 2007-03-11 21:15:50Z ltheussl $
28   */
29  public class DefaultArtifactTypeHandler
30      implements ArtifactTypeHandler
31  {
32      /**
33       * Map an artifact to a repository directory path.
34       * 
35       * @param project the project for the artifact
36       * @param type  The type of the artifact 
37       * @return the path
38       */
39      public String constructRepositoryDirectoryPath( String type, Project project )
40      {
41          StringBuffer path = new StringBuffer();
42          path.append( project.getArtifactDirectory() );
43          path.append( "/" );
44          path.append( type + "s" );
45          path.append( "/" );
46          return path.toString();
47      }
48  
49      /**
50       * Map an artifact to a repository path.
51       * 
52       * @param project the project for the artifact
53       * @param type  The type of the artifact 
54       * @param version  The version of the artifact (may be a snapshot)
55       * @return the path
56       */
57      public String constructRepositoryFullPath( String type, Project project, String version )
58      {
59          StringBuffer path = new StringBuffer( constructRepositoryDirectoryPath( type, project ) );
60          path.append( project.getArtifactId() );
61          path.append( "-" );
62          path.append( version );
63          path.append( extensionForType( type ) );
64          return path.toString();
65      }
66  
67      /** @deprecated plugin, ejb and uberjar should provide their own implementation. */
68      private String extensionForType( String type )
69      {
70          if ( "uberjar".equals( type ) || "ejb".equals( type ) || "plugin".equals( type ) )
71          {
72              return ".jar";
73          }
74          else
75          {
76              return "." + type;
77          }
78      }
79  }