001package org.apache.maven.artifact.repository; 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 java.io.File; 023import java.util.Collections; 024import java.util.List; 025 026import org.apache.maven.artifact.Artifact; 027import org.apache.maven.artifact.metadata.ArtifactMetadata; 028import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; 029import org.apache.maven.repository.Proxy; 030import org.apache.maven.wagon.repository.Repository; 031 032/** 033 * This class is an abstraction of the location from/to resources can be 034 * transfered. 035 * 036 * @author <a href="michal.maczka@dimatics.com">Michal Maczka </a> 037 */ 038@Deprecated 039public class DefaultArtifactRepository 040 extends Repository 041 implements ArtifactRepository 042{ 043 private ArtifactRepositoryLayout layout; 044 045 private ArtifactRepositoryPolicy snapshots; 046 047 private ArtifactRepositoryPolicy releases; 048 049 private boolean blacklisted; 050 051 private Authentication authentication; 052 053 private Proxy proxy; 054 055 private List<ArtifactRepository> mirroredRepositories = Collections.emptyList(); 056 057 /** 058 * Create a local repository or a test repository. 059 * 060 * @param id the unique identifier of the repository 061 * @param url the URL of the repository 062 * @param layout the layout of the repository 063 */ 064 public DefaultArtifactRepository( String id, String url, ArtifactRepositoryLayout layout ) 065 { 066 this( id, url, layout, null, null ); 067 } 068 069 /** 070 * Create a remote deployment repository. 071 * 072 * @param id the unique identifier of the repository 073 * @param url the URL of the repository 074 * @param layout the layout of the repository 075 * @param uniqueVersion whether to assign each snapshot a unique version 076 */ 077 public DefaultArtifactRepository( String id, String url, ArtifactRepositoryLayout layout, boolean uniqueVersion ) 078 { 079 super( id, url ); 080 this.layout = layout; 081 } 082 083 /** 084 * Create a remote download repository. 085 * 086 * @param id the unique identifier of the repository 087 * @param url the URL of the repository 088 * @param layout the layout of the repository 089 * @param snapshots the policies to use for snapshots 090 * @param releases the policies to use for releases 091 */ 092 public DefaultArtifactRepository( String id, String url, ArtifactRepositoryLayout layout, 093 ArtifactRepositoryPolicy snapshots, ArtifactRepositoryPolicy releases ) 094 { 095 super( id, url ); 096 097 this.layout = layout; 098 099 if ( snapshots == null ) 100 { 101 snapshots = new ArtifactRepositoryPolicy( true, ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS, 102 ArtifactRepositoryPolicy.CHECKSUM_POLICY_IGNORE ); 103 } 104 105 this.snapshots = snapshots; 106 107 if ( releases == null ) 108 { 109 releases = new ArtifactRepositoryPolicy( true, ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS, 110 ArtifactRepositoryPolicy.CHECKSUM_POLICY_IGNORE ); 111 } 112 113 this.releases = releases; 114 } 115 116 public String pathOf( Artifact artifact ) 117 { 118 return layout.pathOf( artifact ); 119 } 120 121 public String pathOfRemoteRepositoryMetadata( ArtifactMetadata artifactMetadata ) 122 { 123 return layout.pathOfRemoteRepositoryMetadata( artifactMetadata ); 124 } 125 126 public String pathOfLocalRepositoryMetadata( ArtifactMetadata metadata, ArtifactRepository repository ) 127 { 128 return layout.pathOfLocalRepositoryMetadata( metadata, repository ); 129 } 130 131 public void setLayout( ArtifactRepositoryLayout layout ) 132 { 133 this.layout = layout; 134 } 135 136 public ArtifactRepositoryLayout getLayout() 137 { 138 return layout; 139 } 140 141 public void setSnapshotUpdatePolicy( ArtifactRepositoryPolicy snapshots ) 142 { 143 this.snapshots = snapshots; 144 } 145 146 public ArtifactRepositoryPolicy getSnapshots() 147 { 148 return snapshots; 149 } 150 151 public void setReleaseUpdatePolicy( ArtifactRepositoryPolicy releases ) 152 { 153 this.releases = releases; 154 } 155 156 public ArtifactRepositoryPolicy getReleases() 157 { 158 return releases; 159 } 160 161 public String getKey() 162 { 163 return getId(); 164 } 165 166 public boolean isBlacklisted() 167 { 168 return blacklisted; 169 } 170 171 public void setBlacklisted( boolean blacklisted ) 172 { 173 this.blacklisted = blacklisted; 174 } 175 176 public String toString() 177 { 178 StringBuilder sb = new StringBuilder(); 179 180 sb.append( " id: " ).append( getId() ).append( "\n" ); 181 sb.append( " url: " ).append( getUrl() ).append( "\n" ); 182 sb.append( " layout: " ).append( layout != null ? layout : "none" ).append( "\n" ); 183 184 if ( snapshots != null ) 185 { 186 sb.append( "snapshots: [enabled => " ).append( snapshots.isEnabled() ); 187 sb.append( ", update => " ).append( snapshots.getUpdatePolicy() ).append( "]\n" ); 188 } 189 190 if ( releases != null ) 191 { 192 sb.append( " releases: [enabled => " ).append( releases.isEnabled() ); 193 sb.append( ", update => " ).append( releases.getUpdatePolicy() ).append( "]\n" ); 194 } 195 196 return sb.toString(); 197 } 198 199 public Artifact find( Artifact artifact ) 200 { 201 File artifactFile = new File( getBasedir(), pathOf( artifact ) ); 202 203 // We need to set the file here or the resolver will fail with an NPE, not fully equipped to deal 204 // with multiple local repository implementations yet. 205 artifact.setFile( artifactFile ); 206 207 if ( artifactFile.exists() ) 208 { 209 artifact.setResolved( true ); 210 } 211 212 return artifact; 213 } 214 215 public List<String> findVersions( Artifact artifact ) 216 { 217 return Collections.emptyList(); 218 } 219 220 public boolean isProjectAware() 221 { 222 return false; 223 } 224 225 public Authentication getAuthentication() 226 { 227 return authentication; 228 } 229 230 public void setAuthentication( Authentication authentication ) 231 { 232 this.authentication = authentication; 233 } 234 235 public Proxy getProxy() 236 { 237 return proxy; 238 } 239 240 public void setProxy( Proxy proxy ) 241 { 242 this.proxy = proxy; 243 } 244 245 public boolean isUniqueVersion() 246 { 247 return true; 248 } 249 250 public List<ArtifactRepository> getMirroredRepositories() 251 { 252 return mirroredRepositories; 253 } 254 255 public void setMirroredRepositories( List<ArtifactRepository> mirroredRepositories ) 256 { 257 if ( mirroredRepositories != null ) 258 { 259 this.mirroredRepositories = mirroredRepositories; 260 } 261 else 262 { 263 this.mirroredRepositories = Collections.emptyList(); 264 } 265 } 266 267}