mirror of https://github.com/apache/maven.git
MNG-4221: First phase of changing the direction of the dependencies so that maven-compat only points toward the core. The core cannot depend on anything in maven-compat.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@789077 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
84bfe465ef
commit
ba289ad502
|
@ -20,7 +20,6 @@
|
|||
</parent>
|
||||
|
||||
<artifactId>maven-compat</artifactId>
|
||||
|
||||
<name>Maven Compat</name>
|
||||
|
||||
<dependencies>
|
||||
|
|
|
@ -1,22 +1,18 @@
|
|||
package org.apache.maven.artifact.deployer;
|
||||
|
||||
/*
|
||||
* 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.
|
||||
* 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.io.File;
|
||||
|
@ -29,37 +25,31 @@ public interface ArtifactDeployer
|
|||
String ROLE = ArtifactDeployer.class.getName();
|
||||
|
||||
/**
|
||||
* Deploy an artifact from a particular directory. The artifact handler is used to determine the filename
|
||||
* of the source file.
|
||||
*
|
||||
* @param basedir the directory where the artifact is stored
|
||||
* @param finalName the name of the artifact sans extension
|
||||
* @param artifact the artifact definition
|
||||
* Deploy an artifact from a particular directory. The artifact handler is used to determine the
|
||||
* filename of the source file.
|
||||
*
|
||||
* @param basedir the directory where the artifact is stored
|
||||
* @param finalName the name of the artifact sans extension
|
||||
* @param artifact the artifact definition
|
||||
* @param deploymentRepository the repository to deploy to
|
||||
* @param localRepository the local repository to install into
|
||||
* @param localRepository the local repository to install into
|
||||
* @throws ArtifactDeploymentException if an error occurred deploying the artifact
|
||||
* @deprecated to be removed before 2.0 after the instlal/deploy plugins use the alternate method
|
||||
* @deprecated to be removed before 2.0 after the instlal/deploy plugins use the alternate
|
||||
* method
|
||||
*/
|
||||
@Deprecated
|
||||
void deploy( String basedir,
|
||||
String finalName,
|
||||
Artifact artifact,
|
||||
ArtifactRepository deploymentRepository,
|
||||
ArtifactRepository localRepository )
|
||||
void deploy( String basedir, String finalName, Artifact artifact, ArtifactRepository deploymentRepository, ArtifactRepository localRepository )
|
||||
throws ArtifactDeploymentException;
|
||||
|
||||
/**
|
||||
* Deploy an artifact from a particular file.
|
||||
*
|
||||
* @param source the file to deploy
|
||||
* @param artifact the artifact definition
|
||||
*
|
||||
* @param source the file to deploy
|
||||
* @param artifact the artifact definition
|
||||
* @param deploymentRepository the repository to deploy to
|
||||
* @param localRepository the local repository to install into
|
||||
* @param localRepository the local repository to install into
|
||||
* @throws ArtifactDeploymentException if an error occurred deploying the artifact
|
||||
*/
|
||||
void deploy( File source,
|
||||
Artifact artifact,
|
||||
ArtifactRepository deploymentRepository,
|
||||
ArtifactRepository localRepository )
|
||||
void deploy( File source, Artifact artifact, ArtifactRepository deploymentRepository, ArtifactRepository localRepository )
|
||||
throws ArtifactDeploymentException;
|
||||
}
|
||||
|
|
|
@ -19,14 +19,12 @@ import java.io.File;
|
|||
import java.io.IOException;
|
||||
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.manager.WagonManager;
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadata;
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
|
||||
import org.apache.maven.artifact.repository.metadata.RepositoryMetadataDeploymentException;
|
||||
import org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager;
|
||||
import org.apache.maven.artifact.transform.ArtifactTransformationManager;
|
||||
import org.apache.maven.repository.legacy.WagonManager;
|
||||
import org.apache.maven.wagon.TransferFailedException;
|
||||
import org.codehaus.plexus.component.annotations.Component;
|
||||
import org.codehaus.plexus.component.annotations.Requirement;
|
||||
|
@ -47,12 +45,6 @@ public class DefaultArtifactDeployer
|
|||
@Requirement
|
||||
private RepositoryMetadataManager repositoryMetadataManager;
|
||||
|
||||
@Requirement
|
||||
private ArtifactMetadataSource metadataSource;
|
||||
|
||||
@Requirement(hint="default")
|
||||
private ArtifactRepositoryLayout defaultLayout;
|
||||
|
||||
/**
|
||||
* @deprecated we want to use the artifact method only, and ensure artifact.file is set
|
||||
* correctly.
|
||||
|
|
|
@ -20,9 +20,9 @@ import org.apache.maven.artifact.versioning.VersionRange;
|
|||
|
||||
public interface ArtifactFactory
|
||||
{
|
||||
@Deprecated
|
||||
String ROLE = ArtifactFactory.class.getName();
|
||||
|
||||
// TODO: deprecate and chase down (probably used for copying only)
|
||||
Artifact createArtifact( String groupId, String artifactId, String version, String scope, String type );
|
||||
|
||||
Artifact createArtifactWithClassifier( String groupId, String artifactId, String version, String type, String classifier );
|
||||
|
|
|
@ -1,22 +1,18 @@
|
|||
package org.apache.maven.artifact.installer;
|
||||
|
||||
/*
|
||||
* 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.
|
||||
* 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.io.File;
|
||||
|
@ -33,34 +29,29 @@ public interface ArtifactInstaller
|
|||
String ROLE = ArtifactInstaller.class.getName();
|
||||
|
||||
/**
|
||||
* Install an artifact from a particular directory. The artifact handler is used to determine the filename
|
||||
* of the source file.
|
||||
*
|
||||
* @param basedir the directory where the artifact is stored
|
||||
* @param finalName the name of the artifact sans extension
|
||||
* @param artifact the artifact definition
|
||||
* Install an artifact from a particular directory. The artifact handler is used to determine
|
||||
* the filename of the source file.
|
||||
*
|
||||
* @param basedir the directory where the artifact is stored
|
||||
* @param finalName the name of the artifact sans extension
|
||||
* @param artifact the artifact definition
|
||||
* @param localRepository the local repository to install into
|
||||
* @throws ArtifactInstallationException if an error occurred installing the artifact
|
||||
* @deprecated to be removed before 2.0 after the instlal/deploy plugins use the alternate method
|
||||
* @deprecated to be removed before 2.0 after the instlal/deploy plugins use the alternate
|
||||
* method
|
||||
*/
|
||||
@Deprecated
|
||||
void install( String basedir,
|
||||
String finalName,
|
||||
Artifact artifact,
|
||||
ArtifactRepository localRepository )
|
||||
void install( String basedir, String finalName, Artifact artifact, ArtifactRepository localRepository )
|
||||
throws ArtifactInstallationException;
|
||||
|
||||
|
||||
/**
|
||||
* Install an artifact from a particular file.
|
||||
*
|
||||
* @param source the file to install
|
||||
* @param artifact the artifact definition
|
||||
*
|
||||
* @param source the file to install
|
||||
* @param artifact the artifact definition
|
||||
* @param localRepository the local repository to install into
|
||||
* @throws ArtifactInstallationException if an error occurred installing the artifact
|
||||
*/
|
||||
void install( File source,
|
||||
Artifact artifact,
|
||||
ArtifactRepository localRepository )
|
||||
void install( File source, Artifact artifact, ArtifactRepository localRepository )
|
||||
throws ArtifactInstallationException;
|
||||
}
|
||||
|
|
|
@ -1,99 +0,0 @@
|
|||
package org.apache.maven.artifact.manager;
|
||||
|
||||
/*
|
||||
* 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.io.File;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadata;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.wagon.ResourceDoesNotExistException;
|
||||
import org.apache.maven.wagon.TransferFailedException;
|
||||
import org.apache.maven.wagon.UnsupportedProtocolException;
|
||||
import org.apache.maven.wagon.Wagon;
|
||||
import org.apache.maven.wagon.events.TransferListener;
|
||||
import org.apache.maven.wagon.repository.Repository;
|
||||
|
||||
/**
|
||||
* Manages <a href="http://maven.apache.org/wagon">Wagon</a> related operations in Maven.
|
||||
*
|
||||
* @author <a href="michal.maczka@dimatics.com">Michal Maczka </a>
|
||||
* @version $Id$
|
||||
*/
|
||||
public interface WagonManager
|
||||
{
|
||||
|
||||
void getArtifact( Artifact artifact, ArtifactRepository repository, TransferListener downloadMonitor, boolean forceUpdateCheck )
|
||||
throws TransferFailedException, ResourceDoesNotExistException;
|
||||
|
||||
void putArtifact( File source, Artifact artifact, ArtifactRepository deploymentRepository, TransferListener downloadMonitor )
|
||||
throws TransferFailedException;
|
||||
|
||||
/**
|
||||
* Get a Wagon provider that understands the protocol passed as argument.
|
||||
* It doesn't configure the Wagon.
|
||||
*
|
||||
* @param protocol the protocol the {@link Wagon} will handle
|
||||
* @return the {@link Wagon} instance able to handle the protocol provided
|
||||
* @throws UnsupportedProtocolException if there is no provider able to handle the protocol
|
||||
* @deprecated prone to errors. use {@link #getWagon(Repository)} instead.
|
||||
*/
|
||||
Wagon getWagon( String protocol )
|
||||
throws UnsupportedProtocolException;
|
||||
|
||||
/**
|
||||
* Get a Wagon provider for the provided repository.
|
||||
* It will configure the Wagon for that repository.
|
||||
*
|
||||
* @param repository the repository
|
||||
* @return the {@link Wagon} instance that can be used to connect to the repository
|
||||
* @throws UnsupportedProtocolException if there is no provider able to handle the protocol
|
||||
* @throws WagonConfigurationException if the wagon can't be configured for the repository
|
||||
*/
|
||||
Wagon getWagon( Repository repository )
|
||||
throws UnsupportedProtocolException, WagonConfigurationException;
|
||||
|
||||
void getArtifact( Artifact artifact, List<ArtifactRepository> remoteRepositories, TransferListener tl, boolean force )
|
||||
throws TransferFailedException, ResourceDoesNotExistException;
|
||||
|
||||
void getArtifact( Artifact artifact, ArtifactRepository repository, TransferListener tl )
|
||||
throws TransferFailedException, ResourceDoesNotExistException;
|
||||
|
||||
void putArtifactMetadata( File source, ArtifactMetadata artifactMetadata, ArtifactRepository repository )
|
||||
throws TransferFailedException;
|
||||
|
||||
void getArtifactMetadata( ArtifactMetadata metadata, ArtifactRepository remoteRepository, File destination, String checksumPolicy )
|
||||
throws TransferFailedException, ResourceDoesNotExistException;
|
||||
|
||||
void getArtifactMetadataFromDeploymentRepository( ArtifactMetadata metadata, ArtifactRepository remoteRepository, File file, String checksumPolicyWarn )
|
||||
throws TransferFailedException, ResourceDoesNotExistException;
|
||||
|
||||
Set<String> getSupportProtocols();
|
||||
|
||||
void getRemoteFile( ArtifactRepository repository, File destination, String remotePath, TransferListener downloadMonitor, String checksumPolicy, boolean force )
|
||||
throws TransferFailedException, ResourceDoesNotExistException;
|
||||
|
||||
void putRemoteFile( ArtifactRepository repository, File source, String remotePath, TransferListener downloadMonitor )
|
||||
throws TransferFailedException;
|
||||
|
||||
}
|
|
@ -21,46 +21,13 @@ package org.apache.maven.artifact.metadata;
|
|||
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
|
||||
/**
|
||||
* Common elements of artifact metadata.
|
||||
*
|
||||
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
|
||||
* @version $Id$
|
||||
*/
|
||||
@Deprecated
|
||||
public abstract class AbstractArtifactMetadata
|
||||
implements ArtifactMetadata
|
||||
extends org.apache.maven.repository.legacy.metadata.AbstractArtifactMetadata
|
||||
implements org.apache.maven.artifact.metadata.ArtifactMetadata
|
||||
{
|
||||
protected Artifact artifact;
|
||||
|
||||
protected AbstractArtifactMetadata( Artifact artifact )
|
||||
{
|
||||
this.artifact = artifact;
|
||||
}
|
||||
|
||||
public boolean storedInGroupDirectory()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public String getGroupId()
|
||||
{
|
||||
return artifact.getGroupId();
|
||||
}
|
||||
|
||||
public String getArtifactId()
|
||||
{
|
||||
return artifact.getArtifactId();
|
||||
}
|
||||
|
||||
public String extendedToString()
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append( "\nArtifact Metadata\n--------------------------" );
|
||||
buffer.append( "\nGroupId: " ).append( getGroupId() );
|
||||
buffer.append( "\nArtifactId: " ).append( getArtifactId() );
|
||||
buffer.append( "\nMetadata Type: " ).append( getClass().getName() );
|
||||
|
||||
return buffer.toString();
|
||||
super( artifact );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,66 +19,9 @@ package org.apache.maven.artifact.metadata;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.repository.metadata.RepositoryMetadataStoreException;
|
||||
|
||||
/**
|
||||
* Contains metadata about an artifact, and methods to retrieve/store it from an artifact repository.
|
||||
*
|
||||
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
|
||||
* @version $Id$
|
||||
* @todo merge with artifactmetadatasource
|
||||
* @todo retrieval exception not appropriate for store
|
||||
*/
|
||||
@Deprecated
|
||||
public interface ArtifactMetadata
|
||||
extends org.apache.maven.repository.legacy.metadata.ArtifactMetadata
|
||||
{
|
||||
/** Whether this metadata should be stored alongside the artifact. */
|
||||
boolean storedInArtifactVersionDirectory();
|
||||
|
||||
/** Whether this metadata should be stored alongside the group. */
|
||||
boolean storedInGroupDirectory();
|
||||
|
||||
String getGroupId();
|
||||
|
||||
String getArtifactId();
|
||||
|
||||
String getBaseVersion();
|
||||
|
||||
Object getKey();
|
||||
|
||||
/**
|
||||
* Get the filename of this metadata on the local repository.
|
||||
*
|
||||
* @param repository the remote repository it came from
|
||||
* @return the filename
|
||||
*/
|
||||
String getLocalFilename( ArtifactRepository repository );
|
||||
|
||||
/**
|
||||
* Get the filename of this metadata on the remote repository.
|
||||
*
|
||||
* @return the filename
|
||||
*/
|
||||
String getRemoteFilename();
|
||||
|
||||
/**
|
||||
* Merge a new metadata set into this piece of metadata.
|
||||
*
|
||||
* @param metadata the new metadata
|
||||
* @todo this should only be needed on the repository metadata
|
||||
*/
|
||||
void merge( ArtifactMetadata metadata );
|
||||
|
||||
/**
|
||||
* Store the metadata in the local repository.
|
||||
*
|
||||
* @param localRepository the local repository
|
||||
* @param remoteRepository the remote repository it came from
|
||||
* @todo this should only be needed on the repository metadata
|
||||
*/
|
||||
void storeInLocalRepository( ArtifactRepository localRepository,
|
||||
ArtifactRepository remoteRepository )
|
||||
throws RepositoryMetadataStoreException;
|
||||
|
||||
String extendedToString();
|
||||
void merge( ArtifactMetadata metadata );
|
||||
}
|
||||
|
|
|
@ -21,49 +21,12 @@ package org.apache.maven.artifact.metadata;
|
|||
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
|
||||
/**
|
||||
* Error while retrieving repository metadata from the repository.
|
||||
*
|
||||
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
|
||||
* @version $Id$
|
||||
*/
|
||||
@Deprecated
|
||||
public class ArtifactMetadataRetrievalException
|
||||
extends Exception
|
||||
extends org.apache.maven.repository.legacy.metadata.ArtifactMetadataRetrievalException
|
||||
{
|
||||
private Artifact artifact;
|
||||
|
||||
/** @deprecated use {@link #ArtifactMetadataRetrievalException(String, Throwable, Artifact)} */
|
||||
@Deprecated
|
||||
public ArtifactMetadataRetrievalException( String message )
|
||||
public ArtifactMetadataRetrievalException( String message, Throwable cause, Artifact artifact )
|
||||
{
|
||||
this( message, null, null );
|
||||
}
|
||||
|
||||
/** @deprecated use {@link #ArtifactMetadataRetrievalException(String, Throwable, Artifact)} */
|
||||
@Deprecated
|
||||
public ArtifactMetadataRetrievalException( Throwable cause )
|
||||
{
|
||||
this( null, cause, null );
|
||||
}
|
||||
|
||||
/** @deprecated use {@link #ArtifactMetadataRetrievalException(String, Throwable, Artifact)} */
|
||||
@Deprecated
|
||||
public ArtifactMetadataRetrievalException( String message,
|
||||
Throwable cause )
|
||||
{
|
||||
this( message, cause, null );
|
||||
}
|
||||
|
||||
public ArtifactMetadataRetrievalException( String message,
|
||||
Throwable cause,
|
||||
Artifact artifact )
|
||||
{
|
||||
super( message, cause );
|
||||
this.artifact = artifact;
|
||||
}
|
||||
|
||||
public Artifact getArtifact()
|
||||
{
|
||||
return artifact;
|
||||
super( message, cause, artifact );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,70 +1,36 @@
|
|||
package org.apache.maven.artifact.metadata;
|
||||
|
||||
/*
|
||||
* 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.List;
|
||||
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.versioning.ArtifactVersion;
|
||||
|
||||
/**
|
||||
* Provides some metadata operations, like querying the remote repository for a list of versions available for an
|
||||
* artifact.
|
||||
*
|
||||
* @author <a href="mailto:jason@maven.org">Jason van Zyl </a>
|
||||
* @version $Id$
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
@Deprecated
|
||||
public interface ArtifactMetadataSource
|
||||
extends org.apache.maven.repository.legacy.metadata.ArtifactMetadataSource
|
||||
{
|
||||
ResolutionGroup retrieve( Artifact artifact, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories )
|
||||
throws ArtifactMetadataRetrievalException;
|
||||
|
||||
/**
|
||||
* Get a list of available versions for an artifact in the remote repository
|
||||
*
|
||||
* @param artifact artifact we are interested in. Only <code>groupid</code> and <code>artifactId</code>
|
||||
* are needed, for instance the following code will work
|
||||
* <code>artifactFactory.createProjectArtifact( "org.apache.maven", "maven", "" )</code>
|
||||
* @param localRepository local repository
|
||||
* @param remoteRepositories remote repositories, {@link List} $lt; {@link ArtifactRepository} >
|
||||
* @return {@link List} $lt; {@link ArtifactVersion} >
|
||||
* @throws ArtifactMetadataRetrievalException
|
||||
* in case of error while retrieving repository metadata from the repository.
|
||||
*/
|
||||
List<ArtifactVersion> retrieveAvailableVersions( Artifact artifact, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories )
|
||||
throws ArtifactMetadataRetrievalException;
|
||||
|
||||
/**
|
||||
* Get a list of available versions for an artifact in the remote deployment repository. This ignores any update
|
||||
* policy checks and mirrors and always retrieves the latest information from the given repository.
|
||||
*
|
||||
* @param artifact artifact we are interested in. Only <code>groupid</code> and <code>artifactId</code> are
|
||||
* needed, for instance the following code will work
|
||||
* <code>artifactFactory.createProjectArtifact( "org.apache.maven", "maven", "" )</code>
|
||||
* @param localRepository local repository
|
||||
* @param deploymentRepository remote repository
|
||||
* @return {@link List} $lt; {@link ArtifactVersion} >
|
||||
* @throws ArtifactMetadataRetrievalException
|
||||
* in case of error while retrieving repository metadata from the repository.
|
||||
*/
|
||||
List<ArtifactVersion> retrieveAvailableVersionsFromDeploymentRepository( Artifact artifact, ArtifactRepository localRepository, ArtifactRepository remoteRepository )
|
||||
List<ArtifactVersion> retrieveAvailableVersionsFromDeploymentRepository( Artifact artifact, ArtifactRepository localRepository, ArtifactRepository remoteRepository )
|
||||
throws ArtifactMetadataRetrievalException;
|
||||
}
|
|
@ -1,22 +1,18 @@
|
|||
package org.apache.maven.artifact.metadata;
|
||||
|
||||
/*
|
||||
* 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.
|
||||
* 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.List;
|
||||
|
@ -25,37 +21,12 @@ import java.util.Set;
|
|||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
|
||||
@Deprecated
|
||||
public class ResolutionGroup
|
||||
extends org.apache.maven.repository.legacy.metadata.ResolutionGroup
|
||||
{
|
||||
|
||||
private final Set<Artifact> artifacts;
|
||||
|
||||
private final List<ArtifactRepository> resolutionRepositories;
|
||||
|
||||
private final Artifact pomArtifact;
|
||||
|
||||
public ResolutionGroup( Artifact pomArtifact,
|
||||
Set<Artifact> artifacts,
|
||||
List<ArtifactRepository> resolutionRepositories )
|
||||
public ResolutionGroup( Artifact pomArtifact, Set<Artifact> artifacts, List<ArtifactRepository> resolutionRepositories )
|
||||
{
|
||||
this.pomArtifact = pomArtifact;
|
||||
this.artifacts = artifacts;
|
||||
this.resolutionRepositories = resolutionRepositories;
|
||||
super( pomArtifact, artifacts, resolutionRepositories );
|
||||
}
|
||||
|
||||
public Artifact getPomArtifact()
|
||||
{
|
||||
return pomArtifact;
|
||||
}
|
||||
|
||||
public Set<Artifact> getArtifacts()
|
||||
{
|
||||
return artifacts;
|
||||
}
|
||||
|
||||
public List<ArtifactRepository> getResolutionRepositories()
|
||||
{
|
||||
return resolutionRepositories;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -43,9 +43,6 @@ public class MavenArtifactRepository
|
|||
private ArtifactRepositoryPolicy snapshots;
|
||||
|
||||
private ArtifactRepositoryPolicy releases;
|
||||
|
||||
//TODO: this should be tracked externally, not by the repository itself
|
||||
private boolean blacklisted;
|
||||
|
||||
public MavenArtifactRepository()
|
||||
{
|
||||
|
@ -123,16 +120,6 @@ public class MavenArtifactRepository
|
|||
{
|
||||
return getId();
|
||||
}
|
||||
|
||||
public boolean isBlacklisted()
|
||||
{
|
||||
return blacklisted;
|
||||
}
|
||||
|
||||
public void setBlacklisted( boolean blacklisted )
|
||||
{
|
||||
this.blacklisted = blacklisted;
|
||||
}
|
||||
|
||||
public String toString()
|
||||
{
|
||||
|
|
|
@ -189,6 +189,13 @@ public abstract class AbstractRepositoryMetadata
|
|||
return metadata;
|
||||
}
|
||||
|
||||
public void merge( org.apache.maven.repository.legacy.metadata.ArtifactMetadata metadata )
|
||||
{
|
||||
// TODO: not sure that it should assume this, maybe the calls to addMetadata should pre-merge, then artifact replaces?
|
||||
AbstractRepositoryMetadata repoMetadata = (AbstractRepositoryMetadata) metadata;
|
||||
this.metadata.merge( repoMetadata.getMetadata() );
|
||||
}
|
||||
|
||||
public void merge( ArtifactMetadata metadata )
|
||||
{
|
||||
// TODO: not sure that it should assume this, maybe the calls to addMetadata should pre-merge, then artifact replaces?
|
||||
|
|
|
@ -23,12 +23,12 @@ import java.util.HashMap;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.maven.artifact.manager.UpdateCheckManager;
|
||||
import org.apache.maven.artifact.manager.WagonManager;
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadata;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
|
||||
import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
|
||||
import org.apache.maven.repository.legacy.UpdateCheckManager;
|
||||
import org.apache.maven.repository.legacy.WagonManager;
|
||||
import org.apache.maven.wagon.ResourceDoesNotExistException;
|
||||
import org.apache.maven.wagon.TransferFailedException;
|
||||
import org.codehaus.plexus.component.annotations.Component;
|
||||
|
|
|
@ -19,7 +19,7 @@ package org.apache.maven.artifact.repository.metadata;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadata;
|
||||
//import org.apache.maven.artifact.metadata.ArtifactMetadata;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
|
||||
/**
|
||||
|
@ -30,8 +30,8 @@ import org.apache.maven.artifact.repository.ArtifactRepository;
|
|||
* @todo not happy about the store method - they use "this"
|
||||
*/
|
||||
public interface RepositoryMetadata
|
||||
extends ArtifactMetadata
|
||||
{
|
||||
extends org.apache.maven.artifact.metadata.ArtifactMetadata
|
||||
{
|
||||
/**
|
||||
* Set the repository the metadata was located in.
|
||||
*
|
||||
|
@ -58,5 +58,5 @@ public interface RepositoryMetadata
|
|||
*
|
||||
* @return if it is a snapshot
|
||||
*/
|
||||
boolean isSnapshot();
|
||||
boolean isSnapshot();
|
||||
}
|
||||
|
|
|
@ -1,31 +1,27 @@
|
|||
package org.apache.maven.artifact.resolver;
|
||||
|
||||
/*
|
||||
* 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.
|
||||
* 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.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.repository.metadata.RepositoryMetadataResolutionException;
|
||||
import org.apache.maven.repository.legacy.metadata.ArtifactMetadataRetrievalException;
|
||||
import org.apache.maven.wagon.TransferFailedException;
|
||||
|
||||
/**
|
||||
|
@ -35,46 +31,28 @@ import org.apache.maven.wagon.TransferFailedException;
|
|||
public class ArtifactResolutionException
|
||||
extends AbstractArtifactResolutionException
|
||||
{
|
||||
public ArtifactResolutionException( String message,
|
||||
String groupId,
|
||||
String artifactId,
|
||||
String version,
|
||||
String type,
|
||||
String classifier,
|
||||
List<ArtifactRepository> remoteRepositories,
|
||||
List path,
|
||||
public ArtifactResolutionException( String message, String groupId, String artifactId, String version, String type, String classifier, List<ArtifactRepository> remoteRepositories, List path,
|
||||
Throwable t )
|
||||
{
|
||||
super( message, groupId, artifactId, version, type, classifier, remoteRepositories, path, t );
|
||||
}
|
||||
|
||||
public ArtifactResolutionException( String message,
|
||||
String groupId,
|
||||
String artifactId,
|
||||
String version,
|
||||
String type,
|
||||
String classifier,
|
||||
Throwable t )
|
||||
public ArtifactResolutionException( String message, String groupId, String artifactId, String version, String type, String classifier, Throwable t )
|
||||
{
|
||||
super( message, groupId, artifactId, version, type, classifier, null, null, t );
|
||||
}
|
||||
|
||||
public ArtifactResolutionException( String message,
|
||||
Artifact artifact )
|
||||
public ArtifactResolutionException( String message, Artifact artifact )
|
||||
{
|
||||
super( message, artifact );
|
||||
}
|
||||
|
||||
public ArtifactResolutionException( String message,
|
||||
Artifact artifact,
|
||||
List<ArtifactRepository> remoteRepositories )
|
||||
public ArtifactResolutionException( String message, Artifact artifact, List<ArtifactRepository> remoteRepositories )
|
||||
{
|
||||
super( message, artifact, remoteRepositories );
|
||||
}
|
||||
|
||||
public ArtifactResolutionException( String message,
|
||||
Artifact artifact,
|
||||
ArtifactMetadataRetrievalException cause )
|
||||
public ArtifactResolutionException( String message, Artifact artifact, ArtifactMetadataRetrievalException cause )
|
||||
{
|
||||
super( message, artifact, null, cause );
|
||||
}
|
||||
|
@ -85,40 +63,28 @@ public class ArtifactResolutionException
|
|||
super( message, artifact, null, cause );
|
||||
}
|
||||
|
||||
protected ArtifactResolutionException( String message,
|
||||
Artifact artifact,
|
||||
List<ArtifactRepository> remoteRepositories,
|
||||
ArtifactMetadataRetrievalException cause )
|
||||
public ArtifactResolutionException( String message, Artifact artifact, List<ArtifactRepository> remoteRepositories, ArtifactMetadataRetrievalException cause )
|
||||
{
|
||||
super( message, artifact, remoteRepositories, cause );
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
protected ArtifactResolutionException( String message, Artifact artifact,
|
||||
List<ArtifactRepository> remoteRepositories, Throwable cause )
|
||||
protected ArtifactResolutionException( String message, Artifact artifact, List<ArtifactRepository> remoteRepositories, Throwable cause )
|
||||
{
|
||||
super( message, artifact, remoteRepositories, cause );
|
||||
}
|
||||
|
||||
protected ArtifactResolutionException( String message,
|
||||
Artifact artifact,
|
||||
List<ArtifactRepository> remoteRepositories,
|
||||
TransferFailedException cause )
|
||||
protected ArtifactResolutionException( String message, Artifact artifact, List<ArtifactRepository> remoteRepositories, TransferFailedException cause )
|
||||
{
|
||||
super( message, artifact, remoteRepositories, cause );
|
||||
}
|
||||
|
||||
protected ArtifactResolutionException( String message,
|
||||
Artifact artifact,
|
||||
List<ArtifactRepository> remoteRepositories,
|
||||
IOException cause )
|
||||
protected ArtifactResolutionException( String message, Artifact artifact, List<ArtifactRepository> remoteRepositories, IOException cause )
|
||||
{
|
||||
super( message, artifact, remoteRepositories, cause );
|
||||
}
|
||||
|
||||
public ArtifactResolutionException( String message,
|
||||
Artifact artifact,
|
||||
RepositoryMetadataResolutionException cause )
|
||||
public ArtifactResolutionException( String message, Artifact artifact, RepositoryMetadataResolutionException cause )
|
||||
{
|
||||
super( message, artifact, null, cause );
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@ import java.util.Set;
|
|||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.versioning.OverConstrainedVersionException;
|
||||
import org.apache.maven.repository.legacy.resolver.DefaultArtifactCollector;
|
||||
|
||||
/**
|
||||
* Specific problems during resolution that we want to account for:
|
||||
|
|
|
@ -11,51 +11,44 @@ import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
|
|||
import org.apache.maven.wagon.events.TransferListener;
|
||||
|
||||
/*
|
||||
* 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.
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @author Jason van Zyl
|
||||
*/
|
||||
// Just hide the one method we want behind the RepositorySystem interface.
|
||||
public interface ArtifactResolver
|
||||
{
|
||||
ArtifactResolutionResult resolve( ArtifactResolutionRequest request );
|
||||
|
||||
// The rest is deprecated
|
||||
|
||||
|
||||
// USED BY MAVEN ASSEMBLY PLUGIN 2.2-beta-2
|
||||
@Deprecated
|
||||
String ROLE = ArtifactResolver.class.getName();
|
||||
|
||||
// USED BY SUREFIRE
|
||||
@Deprecated
|
||||
ArtifactResolutionResult resolveTransitively( Set<Artifact> artifacts, Artifact originatingArtifact,
|
||||
ArtifactRepository localRepository,
|
||||
List<ArtifactRepository> remoteRepositories,
|
||||
ArtifactResolutionResult resolveTransitively( Set<Artifact> artifacts, Artifact originatingArtifact, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories,
|
||||
ArtifactMetadataSource source, ArtifactFilter filter )
|
||||
throws ArtifactResolutionException, ArtifactNotFoundException;
|
||||
|
||||
// USED BY MAVEN ASSEMBLY PLUGIN
|
||||
@Deprecated
|
||||
public ArtifactResolutionResult resolveTransitively( Set<Artifact> artifacts, Artifact originatingArtifact,
|
||||
Map managedVersions, ArtifactRepository localRepository,
|
||||
List<ArtifactRepository> remoteRepositories,
|
||||
ArtifactMetadataSource source, ArtifactFilter filter )
|
||||
public ArtifactResolutionResult resolveTransitively( Set<Artifact> artifacts, Artifact originatingArtifact, Map managedVersions, ArtifactRepository localRepository,
|
||||
List<ArtifactRepository> remoteRepositories, ArtifactMetadataSource source, ArtifactFilter filter )
|
||||
throws ArtifactResolutionException, ArtifactNotFoundException;
|
||||
|
||||
// USED BY REMOTE RESOURCES PLUGIN
|
||||
|
@ -71,5 +64,5 @@ public interface ArtifactResolver
|
|||
// USED BY ARCHETYPE DOWNLOADER
|
||||
@Deprecated
|
||||
void resolveAlways( Artifact artifact, List<ArtifactRepository> remoteRepositories, ArtifactRepository localRepository )
|
||||
throws ArtifactResolutionException, ArtifactNotFoundException;
|
||||
throws ArtifactResolutionException, ArtifactNotFoundException;
|
||||
}
|
||||
|
|
|
@ -27,8 +27,6 @@ import java.util.Set;
|
|||
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.factory.ArtifactFactory;
|
||||
import org.apache.maven.artifact.manager.WagonManager;
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadata;
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
|
@ -36,9 +34,12 @@ import org.apache.maven.artifact.repository.metadata.Metadata;
|
|||
import org.apache.maven.artifact.repository.metadata.Snapshot;
|
||||
import org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata;
|
||||
import org.apache.maven.artifact.repository.metadata.Versioning;
|
||||
import org.apache.maven.artifact.resolver.conflict.ConflictResolver;
|
||||
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
|
||||
import org.apache.maven.artifact.transform.ArtifactTransformationManager;
|
||||
import org.apache.maven.repository.legacy.WagonManager;
|
||||
import org.apache.maven.repository.legacy.metadata.ArtifactMetadata;
|
||||
import org.apache.maven.repository.legacy.resolver.ArtifactCollector;
|
||||
import org.apache.maven.repository.legacy.resolver.conflict.ConflictResolver;
|
||||
import org.apache.maven.wagon.ResourceDoesNotExistException;
|
||||
import org.apache.maven.wagon.TransferFailedException;
|
||||
import org.apache.maven.wagon.events.TransferListener;
|
||||
|
@ -146,10 +147,6 @@ public class DefaultArtifactResolver
|
|||
return;
|
||||
}
|
||||
|
||||
//String localPath = localRepository.pathOf( artifact );
|
||||
|
||||
//artifact.setFile( new File( localRepository.getBasedir(), localPath ) );
|
||||
|
||||
transformationManager.transformForResolve( artifact, remoteRepositories, localRepository );
|
||||
|
||||
boolean localCopy = isLocalCopy( artifact );
|
||||
|
@ -158,13 +155,6 @@ public class DefaultArtifactResolver
|
|||
|
||||
boolean resolved = false;
|
||||
|
||||
boolean destinationExists = destination.exists();
|
||||
|
||||
// There are three conditions in which we'll go after the artifact here:
|
||||
// 1. the force flag is set.
|
||||
// 2. the artifact's file doesn't exist (this would be true for release or snapshot artifacts)
|
||||
// 3. the artifact is a snapshot and is not a locally installed snapshot
|
||||
|
||||
if ( force || !destination.exists() || ( artifact.isSnapshot() && !localCopy ) )
|
||||
{
|
||||
try
|
||||
|
@ -172,11 +162,11 @@ public class DefaultArtifactResolver
|
|||
if ( artifact.getRepository() != null )
|
||||
{
|
||||
// the transformations discovered the artifact - so use it exclusively
|
||||
wagonManager.getArtifact( artifact, artifact.getRepository(), downloadMonitor, force );
|
||||
wagonManager.getArtifact( artifact, artifact.getRepository(), downloadMonitor );
|
||||
}
|
||||
else
|
||||
{
|
||||
wagonManager.getArtifact( artifact, remoteRepositories, downloadMonitor, force );
|
||||
wagonManager.getArtifact( artifact, remoteRepositories, downloadMonitor );
|
||||
}
|
||||
|
||||
if ( !artifact.isResolved() && !destination.exists() )
|
||||
|
|
|
@ -22,7 +22,6 @@ package org.apache.maven.artifact.transform;
|
|||
import java.util.List;
|
||||
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.manager.WagonManager;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
|
||||
import org.apache.maven.artifact.repository.metadata.Metadata;
|
||||
|
@ -31,6 +30,7 @@ import org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager;
|
|||
import org.apache.maven.artifact.repository.metadata.RepositoryMetadataResolutionException;
|
||||
import org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata;
|
||||
import org.apache.maven.artifact.repository.metadata.Versioning;
|
||||
import org.apache.maven.repository.legacy.WagonManager;
|
||||
import org.codehaus.plexus.component.annotations.Requirement;
|
||||
import org.codehaus.plexus.logging.AbstractLogEnabled;
|
||||
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
package org.apache.maven.execution;
|
||||
|
||||
import org.apache.maven.artifact.versioning.ArtifactVersion;
|
||||
|
||||
@Deprecated
|
||||
public class ApplicationInformation
|
||||
{
|
||||
private ArtifactVersion version;
|
||||
private String builtOn;
|
||||
|
||||
public ApplicationInformation( ArtifactVersion version, String builtOn )
|
||||
{
|
||||
this.version = version;
|
||||
this.builtOn = builtOn;
|
||||
}
|
||||
|
||||
public ArtifactVersion getVersion()
|
||||
{
|
||||
return version;
|
||||
}
|
||||
|
||||
public String getBuiltOn()
|
||||
{
|
||||
return builtOn;
|
||||
}
|
||||
}
|
|
@ -1,110 +0,0 @@
|
|||
package org.apache.maven.execution;
|
||||
|
||||
/*
|
||||
* 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.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.apache.maven.artifact.versioning.ArtifactVersion;
|
||||
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
|
||||
import org.codehaus.plexus.component.annotations.Component;
|
||||
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
|
||||
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
|
||||
import org.codehaus.plexus.util.IOUtil;
|
||||
|
||||
/**
|
||||
* Describes runtime information about the application.
|
||||
*
|
||||
* @author Jason van Zyl
|
||||
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
|
||||
* @version $Id$
|
||||
*/
|
||||
@Deprecated
|
||||
@Component(role = RuntimeInformation.class)
|
||||
public class DefaultRuntimeInformation
|
||||
implements RuntimeInformation, Initializable
|
||||
{
|
||||
private ApplicationInformation applicationInformation;
|
||||
|
||||
public ApplicationInformation getApplicationInformation()
|
||||
{
|
||||
return applicationInformation;
|
||||
}
|
||||
|
||||
/** @deprecated Use getApplicationInformation() */
|
||||
public ArtifactVersion getApplicationVersion()
|
||||
{
|
||||
return applicationInformation.getVersion();
|
||||
}
|
||||
|
||||
public void initialize()
|
||||
throws InitializationException
|
||||
{
|
||||
applicationInformation = getVersion( getClass().getClassLoader(), "org.apache.maven", "maven-core" );
|
||||
}
|
||||
|
||||
public static ApplicationInformation getVersion( ClassLoader loader, String groupId, String artifactId )
|
||||
{
|
||||
String MAVEN_PROPERTIES = "META-INF/maven/" + groupId + "/" + artifactId + "/pom.properties";
|
||||
|
||||
String version = "unknown";
|
||||
String builtOn = "unknown";
|
||||
|
||||
InputStream resourceAsStream = null;
|
||||
try
|
||||
{
|
||||
Properties properties = new Properties();
|
||||
resourceAsStream = loader.getResourceAsStream( MAVEN_PROPERTIES );
|
||||
|
||||
if ( resourceAsStream == null )
|
||||
{
|
||||
return new ApplicationInformation( new DefaultArtifactVersion( "3.0" ), builtOn );
|
||||
}
|
||||
|
||||
properties.load( resourceAsStream );
|
||||
|
||||
String property = properties.getProperty( "version" );
|
||||
|
||||
if ( property != null )
|
||||
{
|
||||
version = property;
|
||||
}
|
||||
|
||||
property = properties.getProperty( "builtOn" );
|
||||
|
||||
if ( property != null )
|
||||
{
|
||||
builtOn = property;
|
||||
}
|
||||
|
||||
return new ApplicationInformation( new DefaultArtifactVersion( version ), builtOn );
|
||||
|
||||
}
|
||||
catch ( IOException e )
|
||||
{
|
||||
return new ApplicationInformation( new DefaultArtifactVersion( version ), builtOn );
|
||||
}
|
||||
finally
|
||||
{
|
||||
IOUtil.close( resourceAsStream );
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,39 +0,0 @@
|
|||
package org.apache.maven.execution;
|
||||
|
||||
import org.apache.maven.artifact.versioning.ArtifactVersion;
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Describes runtime information about the application.
|
||||
*
|
||||
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
|
||||
* @version $Id$
|
||||
*/
|
||||
@Deprecated
|
||||
public interface RuntimeInformation
|
||||
{
|
||||
ApplicationInformation getApplicationInformation();
|
||||
|
||||
/** @deprecated Use getApplicationInformation() */
|
||||
//!!BC Used by the Eclipse Plugin
|
||||
ArtifactVersion getApplicationVersion();
|
||||
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.manager;
|
||||
package org.apache.maven.repository.legacy;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.manager;
|
||||
package org.apache.maven.repository.legacy;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.manager;
|
||||
package org.apache.maven.repository.legacy;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more contributor license
|
||||
|
@ -17,13 +17,10 @@ package org.apache.maven.artifact.manager;
|
|||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadata;
|
||||
|
@ -42,15 +39,13 @@ import org.apache.maven.wagon.repository.Repository;
|
|||
import org.codehaus.plexus.PlexusContainer;
|
||||
import org.codehaus.plexus.component.annotations.Component;
|
||||
import org.codehaus.plexus.component.annotations.Requirement;
|
||||
import org.codehaus.plexus.component.configurator.BasicComponentConfigurator;
|
||||
import org.codehaus.plexus.component.configurator.ComponentConfigurationException;
|
||||
import org.codehaus.plexus.component.configurator.ComponentConfigurator;
|
||||
import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException;
|
||||
import org.codehaus.plexus.configuration.PlexusConfiguration;
|
||||
import org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration;
|
||||
import org.codehaus.plexus.logging.Logger;
|
||||
import org.codehaus.plexus.util.FileUtils;
|
||||
|
||||
//TODO: remove the update check manager
|
||||
//TODO: separate into retriever and publisher
|
||||
//TODO: rmeove hardcoding of checksum logic
|
||||
@Component(role = WagonManager.class)
|
||||
public class DefaultWagonManager
|
||||
implements WagonManager
|
||||
|
@ -66,278 +61,33 @@ public class DefaultWagonManager
|
|||
@Requirement
|
||||
private PlexusContainer container;
|
||||
|
||||
/** Map( String, XmlPlexusConfiguration ) with the repository id and the wagon configuration */
|
||||
private Map<String, XmlPlexusConfiguration> serverConfigurationMap = new HashMap<String, XmlPlexusConfiguration>();
|
||||
|
||||
@Requirement(role = Wagon.class)
|
||||
private Map<String,Wagon> wagons;
|
||||
private Map<String, Wagon> wagons;
|
||||
|
||||
@Requirement
|
||||
private UpdateCheckManager updateCheckManager;
|
||||
|
||||
private String httpUserAgent = "Apache-Maven/3.0-alpha-1";
|
||||
|
||||
private TransferListener downloadMonitor;
|
||||
|
||||
public void setDownloadMonitor( TransferListener downloadMonitor )
|
||||
{
|
||||
this.downloadMonitor = downloadMonitor;
|
||||
}
|
||||
|
||||
public Wagon getWagon( Repository repository )
|
||||
throws UnsupportedProtocolException, WagonConfigurationException
|
||||
{
|
||||
String protocol = repository.getProtocol();
|
||||
|
||||
if ( protocol == null )
|
||||
{
|
||||
throw new UnsupportedProtocolException( "The repository " + repository + " does not specify a protocol" );
|
||||
}
|
||||
|
||||
Wagon wagon = getWagon( protocol );
|
||||
|
||||
configureWagon( wagon, repository.getId(), protocol );
|
||||
|
||||
return wagon;
|
||||
}
|
||||
|
||||
public Wagon getWagon( String protocol )
|
||||
throws UnsupportedProtocolException
|
||||
{
|
||||
if ( protocol == null )
|
||||
{
|
||||
throw new UnsupportedProtocolException( "Unspecified protocol" );
|
||||
}
|
||||
|
||||
String hint = protocol.toLowerCase( java.util.Locale.ENGLISH );
|
||||
Wagon wagon = (Wagon) wagons.get( hint );
|
||||
|
||||
if ( wagon == null )
|
||||
{
|
||||
throw new UnsupportedProtocolException( "Cannot find wagon which supports the requested protocol: " + protocol );
|
||||
}
|
||||
|
||||
return wagon;
|
||||
}
|
||||
|
||||
public void putArtifact( File source, Artifact artifact, ArtifactRepository deploymentRepository )
|
||||
throws TransferFailedException
|
||||
{
|
||||
putRemoteFile( deploymentRepository, source, deploymentRepository.pathOf( artifact ), downloadMonitor );
|
||||
}
|
||||
|
||||
public void putArtifact( File source, Artifact artifact, ArtifactRepository deploymentRepository, TransferListener downloadMonitor )
|
||||
throws TransferFailedException
|
||||
{
|
||||
putRemoteFile( deploymentRepository, source, deploymentRepository.pathOf( artifact ), downloadMonitor );
|
||||
}
|
||||
|
||||
public void putArtifactMetadata( File source, ArtifactMetadata artifactMetadata, ArtifactRepository repository )
|
||||
throws TransferFailedException
|
||||
{
|
||||
logger.info( "Uploading " + artifactMetadata );
|
||||
putRemoteFile( repository, source, repository.pathOfRemoteRepositoryMetadata( artifactMetadata ), null );
|
||||
}
|
||||
|
||||
public void putRemoteFile( ArtifactRepository repository, File source, String remotePath, TransferListener downloadMonitor )
|
||||
throws TransferFailedException
|
||||
{
|
||||
String protocol = repository.getProtocol();
|
||||
|
||||
Wagon wagon;
|
||||
try
|
||||
{
|
||||
wagon = getWagon( protocol );
|
||||
|
||||
configureWagon( wagon, repository );
|
||||
}
|
||||
catch ( UnsupportedProtocolException e )
|
||||
{
|
||||
throw new TransferFailedException( "Unsupported Protocol: '" + protocol + "': " + e.getMessage(), e );
|
||||
}
|
||||
|
||||
if ( downloadMonitor != null )
|
||||
{
|
||||
wagon.addTransferListener( downloadMonitor );
|
||||
}
|
||||
|
||||
Map<String, ChecksumObserver> checksums = new HashMap<String, ChecksumObserver>( 2 );
|
||||
|
||||
Map<String, String> sums = new HashMap<String, String>( 2 );
|
||||
|
||||
// TODO: configure these on the repository
|
||||
for ( int i = 0; i < CHECKSUM_IDS.length; i++ )
|
||||
{
|
||||
checksums.put( CHECKSUM_IDS[i], addChecksumObserver( wagon, CHECKSUM_ALGORITHMS[i] ) );
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
try
|
||||
{
|
||||
wagon.connect( new Repository( repository.getId(), repository.getUrl() ) );
|
||||
|
||||
wagon.put( source, remotePath );
|
||||
}
|
||||
finally
|
||||
{
|
||||
if ( downloadMonitor != null )
|
||||
{
|
||||
wagon.removeTransferListener( downloadMonitor );
|
||||
}
|
||||
}
|
||||
|
||||
// Pre-store the checksums as any future puts will overwrite them
|
||||
for ( String extension : checksums.keySet() )
|
||||
{
|
||||
ChecksumObserver observer = checksums.get( extension );
|
||||
sums.put( extension, observer.getActualChecksum() );
|
||||
}
|
||||
|
||||
// We do this in here so we can checksum the artifact metadata too, otherwise it could be metadata itself
|
||||
for ( String extension : checksums.keySet() )
|
||||
{
|
||||
// TODO: shouldn't need a file intermediatary - improve wagon to take a stream
|
||||
File temp = File.createTempFile( "maven-artifact", null );
|
||||
temp.deleteOnExit();
|
||||
FileUtils.fileWrite( temp.getAbsolutePath(), "UTF-8", sums.get( extension ) );
|
||||
|
||||
wagon.put( temp, remotePath + "." + extension );
|
||||
}
|
||||
}
|
||||
catch ( ConnectionException e )
|
||||
{
|
||||
throw new TransferFailedException( "Connection failed: " + e.getMessage(), e );
|
||||
}
|
||||
catch ( AuthenticationException e )
|
||||
{
|
||||
throw new TransferFailedException( "Authentication failed: " + e.getMessage(), e );
|
||||
}
|
||||
catch ( AuthorizationException e )
|
||||
{
|
||||
throw new TransferFailedException( "Authorization failed: " + e.getMessage(), e );
|
||||
}
|
||||
catch ( ResourceDoesNotExistException e )
|
||||
{
|
||||
throw new TransferFailedException( "Resource to deploy not found: " + e.getMessage(), e );
|
||||
}
|
||||
catch ( IOException e )
|
||||
{
|
||||
throw new TransferFailedException( "Error creating temporary file for deployment: " + e.getMessage(), e );
|
||||
}
|
||||
finally
|
||||
{
|
||||
// Remove every checksum listener
|
||||
for ( String aCHECKSUM_IDS : CHECKSUM_IDS )
|
||||
{
|
||||
TransferListener checksumListener = checksums.get( aCHECKSUM_IDS );
|
||||
if ( checksumListener != null )
|
||||
{
|
||||
wagon.removeTransferListener( checksumListener );
|
||||
}
|
||||
}
|
||||
|
||||
disconnectWagon( wagon );
|
||||
|
||||
releaseWagon( protocol, wagon );
|
||||
}
|
||||
}
|
||||
|
||||
private ChecksumObserver addChecksumObserver( Wagon wagon, String algorithm )
|
||||
throws TransferFailedException
|
||||
{
|
||||
try
|
||||
{
|
||||
ChecksumObserver checksumObserver = new ChecksumObserver( algorithm );
|
||||
wagon.addTransferListener( checksumObserver );
|
||||
return checksumObserver;
|
||||
}
|
||||
catch ( NoSuchAlgorithmException e )
|
||||
{
|
||||
throw new TransferFailedException( "Unable to add checksum for unsupported algorithm " + algorithm, e );
|
||||
}
|
||||
}
|
||||
|
||||
// NOTE: It is not possible that this method throws TransferFailedException under current conditions.
|
||||
// FIXME: Change the throws clause to reflect the fact that we're never throwing TransferFailedException
|
||||
public void getArtifact( Artifact artifact, ArtifactRepository remoteRepository, boolean force )
|
||||
throws TransferFailedException, ResourceDoesNotExistException
|
||||
{
|
||||
getArtifact( artifact, remoteRepository, downloadMonitor, force );
|
||||
}
|
||||
|
||||
public void getArtifact( Artifact artifact, ArtifactRepository remoteRepository )
|
||||
throws TransferFailedException, ResourceDoesNotExistException
|
||||
{
|
||||
getArtifact( artifact, remoteRepository, downloadMonitor, true );
|
||||
}
|
||||
|
||||
public void getArtifact( Artifact artifact, List<ArtifactRepository> remoteRepositories, TransferListener downloadMonitor )
|
||||
throws TransferFailedException, ResourceDoesNotExistException
|
||||
{
|
||||
getArtifact( artifact, remoteRepositories, downloadMonitor, true );
|
||||
}
|
||||
|
||||
public void getArtifact( Artifact artifact, List<ArtifactRepository> remoteRepositories, TransferListener downloadMonitor, boolean force )
|
||||
throws TransferFailedException, ResourceDoesNotExistException
|
||||
{
|
||||
for ( ArtifactRepository repository : remoteRepositories )
|
||||
{
|
||||
try
|
||||
{
|
||||
getArtifact( artifact, repository, downloadMonitor, force );
|
||||
|
||||
if ( artifact.isResolved() )
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
catch ( ResourceDoesNotExistException e )
|
||||
{
|
||||
// This one we will eat when looking through remote repositories
|
||||
// because we want to cycle through them all before squawking.
|
||||
|
||||
logger.debug( "Unable to get resource '" + artifact.getId() + "' from repository " + repository.getId() + " (" + repository.getUrl() + ")", e );
|
||||
}
|
||||
catch ( TransferFailedException e )
|
||||
{
|
||||
logger.debug( "Unable to get resource '" + artifact.getId() + "' from repository " + repository.getId() + " (" + repository.getUrl() + ")", e );
|
||||
}
|
||||
}
|
||||
|
||||
// if it already exists locally we were just trying to force it - ignore the update
|
||||
if ( !artifact.getFile().exists() )
|
||||
{
|
||||
throw new ResourceDoesNotExistException( "Unable to download the artifact from any repository" );
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Retriever
|
||||
//
|
||||
public void getArtifact( Artifact artifact, ArtifactRepository repository, TransferListener downloadMonitor )
|
||||
throws TransferFailedException, ResourceDoesNotExistException
|
||||
{
|
||||
getArtifact( artifact, repository, downloadMonitor, true );
|
||||
}
|
||||
|
||||
//TODO: all of this needs to move into the repository system
|
||||
|
||||
public void getArtifact( Artifact artifact, ArtifactRepository repository, TransferListener downloadMonitor, boolean force )
|
||||
throws TransferFailedException, ResourceDoesNotExistException
|
||||
{
|
||||
String remotePath = repository.pathOf( artifact );
|
||||
|
||||
|
||||
ArtifactRepositoryPolicy policy = artifact.isSnapshot() ? repository.getSnapshots() : repository.getReleases();
|
||||
|
||||
|
||||
boolean updateCheckIsRequired = updateCheckManager.isUpdateRequired( artifact, repository );
|
||||
|
||||
|
||||
if ( !policy.isEnabled() )
|
||||
{
|
||||
{
|
||||
logger.debug( "Skipping disabled repository " + repository.getId() );
|
||||
}
|
||||
|
||||
|
||||
// If the artifact is a snapshot, we need to determine whether it's time to check this repository for an update:
|
||||
// 1. If it's forced, then check
|
||||
// 2. If the updateInterval has been exceeded since the last check for this artifact on this repository, then check.
|
||||
else if ( artifact.isSnapshot() && ( force || updateCheckIsRequired ) )
|
||||
else if ( artifact.isSnapshot() && updateCheckIsRequired )
|
||||
{
|
||||
logger.debug( "Trying repository " + repository.getId() );
|
||||
|
||||
|
@ -362,7 +112,7 @@ public class DefaultWagonManager
|
|||
else if ( "pom".equals( artifact.getType() ) && !artifact.getFile().exists() )
|
||||
{
|
||||
// if POM is not present locally, try and get it if it's forced, out of date, or has not been attempted yet
|
||||
if ( force || updateCheckManager.isPomUpdateRequired( artifact, repository ) )
|
||||
if ( updateCheckManager.isPomUpdateRequired( artifact, repository ) )
|
||||
{
|
||||
logger.debug( "Trying repository " + repository.getId() );
|
||||
|
||||
|
@ -408,6 +158,40 @@ public class DefaultWagonManager
|
|||
}
|
||||
}
|
||||
|
||||
public void getArtifact( Artifact artifact, List<ArtifactRepository> remoteRepositories, TransferListener downloadMonitor )
|
||||
throws TransferFailedException, ResourceDoesNotExistException
|
||||
{
|
||||
for ( ArtifactRepository repository : remoteRepositories )
|
||||
{
|
||||
try
|
||||
{
|
||||
getArtifact( artifact, repository, downloadMonitor );
|
||||
|
||||
if ( artifact.isResolved() )
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
catch ( ResourceDoesNotExistException e )
|
||||
{
|
||||
// This one we will eat when looking through remote repositories
|
||||
// because we want to cycle through them all before squawking.
|
||||
|
||||
logger.debug( "Unable to get resource '" + artifact.getId() + "' from repository " + repository.getId() + " (" + repository.getUrl() + ")", e );
|
||||
}
|
||||
catch ( TransferFailedException e )
|
||||
{
|
||||
logger.debug( "Unable to get resource '" + artifact.getId() + "' from repository " + repository.getId() + " (" + repository.getUrl() + ")", e );
|
||||
}
|
||||
}
|
||||
|
||||
// if it already exists locally we were just trying to force it - ignore the update
|
||||
if ( !artifact.getFile().exists() )
|
||||
{
|
||||
throw new ResourceDoesNotExistException( "Unable to download the artifact from any repository" );
|
||||
}
|
||||
}
|
||||
|
||||
public void getArtifactMetadata( ArtifactMetadata metadata, ArtifactRepository repository, File destination, String checksumPolicy )
|
||||
throws TransferFailedException, ResourceDoesNotExistException
|
||||
{
|
||||
|
@ -428,20 +212,18 @@ public class DefaultWagonManager
|
|||
throws TransferFailedException, ResourceDoesNotExistException
|
||||
{
|
||||
String protocol = repository.getProtocol();
|
||||
|
||||
|
||||
Wagon wagon;
|
||||
|
||||
try
|
||||
{
|
||||
wagon = getWagon( protocol );
|
||||
|
||||
configureWagon( wagon, repository );
|
||||
}
|
||||
catch ( UnsupportedProtocolException e )
|
||||
{
|
||||
throw new TransferFailedException( "Unsupported Protocol: '" + protocol + "': " + e.getMessage(), e );
|
||||
}
|
||||
|
||||
|
||||
if ( downloadMonitor != null )
|
||||
{
|
||||
wagon.addTransferListener( downloadMonitor );
|
||||
|
@ -454,7 +236,7 @@ public class DefaultWagonManager
|
|||
boolean downloaded = false;
|
||||
|
||||
try
|
||||
{
|
||||
{
|
||||
wagon.connect( new Repository( repository.getId(), repository.getUrl() ) );
|
||||
|
||||
boolean firstRun = true;
|
||||
|
@ -635,6 +417,139 @@ public class DefaultWagonManager
|
|||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Publisher
|
||||
//
|
||||
public void putArtifact( File source, Artifact artifact, ArtifactRepository deploymentRepository, TransferListener downloadMonitor )
|
||||
throws TransferFailedException
|
||||
{
|
||||
putRemoteFile( deploymentRepository, source, deploymentRepository.pathOf( artifact ), downloadMonitor );
|
||||
}
|
||||
|
||||
public void putArtifactMetadata( File source, ArtifactMetadata artifactMetadata, ArtifactRepository repository )
|
||||
throws TransferFailedException
|
||||
{
|
||||
logger.info( "Uploading " + artifactMetadata );
|
||||
putRemoteFile( repository, source, repository.pathOfRemoteRepositoryMetadata( artifactMetadata ), null );
|
||||
}
|
||||
|
||||
public void putRemoteFile( ArtifactRepository repository, File source, String remotePath, TransferListener downloadMonitor )
|
||||
throws TransferFailedException
|
||||
{
|
||||
String protocol = repository.getProtocol();
|
||||
|
||||
Wagon wagon;
|
||||
try
|
||||
{
|
||||
wagon = getWagon( protocol );
|
||||
}
|
||||
catch ( UnsupportedProtocolException e )
|
||||
{
|
||||
throw new TransferFailedException( "Unsupported Protocol: '" + protocol + "': " + e.getMessage(), e );
|
||||
}
|
||||
|
||||
if ( downloadMonitor != null )
|
||||
{
|
||||
wagon.addTransferListener( downloadMonitor );
|
||||
}
|
||||
|
||||
Map<String, ChecksumObserver> checksums = new HashMap<String, ChecksumObserver>( 2 );
|
||||
|
||||
Map<String, String> sums = new HashMap<String, String>( 2 );
|
||||
|
||||
// TODO: configure these on the repository
|
||||
for ( int i = 0; i < CHECKSUM_IDS.length; i++ )
|
||||
{
|
||||
checksums.put( CHECKSUM_IDS[i], addChecksumObserver( wagon, CHECKSUM_ALGORITHMS[i] ) );
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
try
|
||||
{
|
||||
wagon.connect( new Repository( repository.getId(), repository.getUrl() ) );
|
||||
|
||||
wagon.put( source, remotePath );
|
||||
}
|
||||
finally
|
||||
{
|
||||
if ( downloadMonitor != null )
|
||||
{
|
||||
wagon.removeTransferListener( downloadMonitor );
|
||||
}
|
||||
}
|
||||
|
||||
// Pre-store the checksums as any future puts will overwrite them
|
||||
for ( String extension : checksums.keySet() )
|
||||
{
|
||||
ChecksumObserver observer = checksums.get( extension );
|
||||
sums.put( extension, observer.getActualChecksum() );
|
||||
}
|
||||
|
||||
// We do this in here so we can checksum the artifact metadata too, otherwise it could be metadata itself
|
||||
for ( String extension : checksums.keySet() )
|
||||
{
|
||||
// TODO: shouldn't need a file intermediatary - improve wagon to take a stream
|
||||
File temp = File.createTempFile( "maven-artifact", null );
|
||||
temp.deleteOnExit();
|
||||
FileUtils.fileWrite( temp.getAbsolutePath(), "UTF-8", sums.get( extension ) );
|
||||
|
||||
wagon.put( temp, remotePath + "." + extension );
|
||||
}
|
||||
}
|
||||
catch ( ConnectionException e )
|
||||
{
|
||||
throw new TransferFailedException( "Connection failed: " + e.getMessage(), e );
|
||||
}
|
||||
catch ( AuthenticationException e )
|
||||
{
|
||||
throw new TransferFailedException( "Authentication failed: " + e.getMessage(), e );
|
||||
}
|
||||
catch ( AuthorizationException e )
|
||||
{
|
||||
throw new TransferFailedException( "Authorization failed: " + e.getMessage(), e );
|
||||
}
|
||||
catch ( ResourceDoesNotExistException e )
|
||||
{
|
||||
throw new TransferFailedException( "Resource to deploy not found: " + e.getMessage(), e );
|
||||
}
|
||||
catch ( IOException e )
|
||||
{
|
||||
throw new TransferFailedException( "Error creating temporary file for deployment: " + e.getMessage(), e );
|
||||
}
|
||||
finally
|
||||
{
|
||||
// Remove every checksum listener
|
||||
for ( String aCHECKSUM_IDS : CHECKSUM_IDS )
|
||||
{
|
||||
TransferListener checksumListener = checksums.get( aCHECKSUM_IDS );
|
||||
if ( checksumListener != null )
|
||||
{
|
||||
wagon.removeTransferListener( checksumListener );
|
||||
}
|
||||
}
|
||||
|
||||
disconnectWagon( wagon );
|
||||
|
||||
releaseWagon( protocol, wagon );
|
||||
}
|
||||
}
|
||||
|
||||
private ChecksumObserver addChecksumObserver( Wagon wagon, String algorithm )
|
||||
throws TransferFailedException
|
||||
{
|
||||
try
|
||||
{
|
||||
ChecksumObserver checksumObserver = new ChecksumObserver( algorithm );
|
||||
wagon.addTransferListener( checksumObserver );
|
||||
return checksumObserver;
|
||||
}
|
||||
catch ( NoSuchAlgorithmException e )
|
||||
{
|
||||
throw new TransferFailedException( "Unable to add checksum for unsupported algorithm " + algorithm, e );
|
||||
}
|
||||
}
|
||||
|
||||
private void handleChecksumFailure( String checksumPolicy, String message, Throwable cause )
|
||||
throws ChecksumFailedException
|
||||
{
|
||||
|
@ -729,95 +644,23 @@ public class DefaultWagonManager
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks the URL to see if this repository refers to an external repository
|
||||
*
|
||||
* @param originalRepository
|
||||
* @return true if external.
|
||||
*/
|
||||
public boolean isExternalRepo( ArtifactRepository originalRepository )
|
||||
@Deprecated
|
||||
public Wagon getWagon( String protocol )
|
||||
throws UnsupportedProtocolException
|
||||
{
|
||||
try
|
||||
if ( protocol == null )
|
||||
{
|
||||
URL url = new URL( originalRepository.getUrl() );
|
||||
return !( url.getHost().equals( "localhost" ) || url.getHost().equals( "127.0.0.1" ) || url.getProtocol().equals( "file" ) );
|
||||
throw new UnsupportedProtocolException( "Unspecified protocol" );
|
||||
}
|
||||
catch ( MalformedURLException e )
|
||||
|
||||
String hint = protocol.toLowerCase( java.util.Locale.ENGLISH );
|
||||
Wagon wagon = (Wagon) wagons.get( hint );
|
||||
|
||||
if ( wagon == null )
|
||||
{
|
||||
// bad url just skip it here. It should have been validated already, but the wagon lookup will deal with it
|
||||
return false;
|
||||
throw new UnsupportedProtocolException( "Cannot find wagon which supports the requested protocol: " + protocol );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Applies the server configuration to the wagon
|
||||
*
|
||||
* @param wagon the wagon to configure
|
||||
* @param repository the repository that has the configuration
|
||||
* @throws WagonConfigurationException wraps any error given during configuration of the wagon
|
||||
* instance
|
||||
*/
|
||||
private void configureWagon( Wagon wagon, ArtifactRepository repository )
|
||||
throws WagonConfigurationException
|
||||
{
|
||||
configureWagon( wagon, repository.getId(), repository.getProtocol() );
|
||||
}
|
||||
|
||||
private void configureWagon( Wagon wagon, String repositoryId, String protocol )
|
||||
throws WagonConfigurationException
|
||||
{
|
||||
PlexusConfiguration config = (PlexusConfiguration) serverConfigurationMap.get( repositoryId );
|
||||
|
||||
if ( config != null )
|
||||
{
|
||||
ComponentConfigurator componentConfigurator = null;
|
||||
|
||||
try
|
||||
{
|
||||
componentConfigurator = new BasicComponentConfigurator();
|
||||
|
||||
componentConfigurator.configureComponent( wagon, config, container.getContainerRealm() );
|
||||
}
|
||||
catch ( ComponentConfigurationException e )
|
||||
{
|
||||
throw new WagonConfigurationException( repositoryId, "Unable to apply wagon configuration.", e );
|
||||
}
|
||||
finally
|
||||
{
|
||||
if ( componentConfigurator != null )
|
||||
{
|
||||
try
|
||||
{
|
||||
container.release( componentConfigurator );
|
||||
}
|
||||
catch ( ComponentLifecycleException e )
|
||||
{
|
||||
logger.error( "Problem releasing configurator - ignoring: " + e.getMessage() );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public void setHttpUserAgent( String userAgent )
|
||||
{
|
||||
this.httpUserAgent = userAgent;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public String getHttpUserAgent()
|
||||
{
|
||||
return httpUserAgent;
|
||||
}
|
||||
|
||||
public Set<String> getSupportProtocols()
|
||||
{
|
||||
return wagons.keySet();
|
||||
return wagon;
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.manager;
|
||||
package org.apache.maven.repository.legacy;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.manager;
|
||||
package org.apache.maven.repository.legacy;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
@ -0,0 +1,59 @@
|
|||
package org.apache.maven.repository.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.io.File;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadata;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.wagon.ResourceDoesNotExistException;
|
||||
import org.apache.maven.wagon.TransferFailedException;
|
||||
import org.apache.maven.wagon.events.TransferListener;
|
||||
|
||||
public interface WagonManager
|
||||
{
|
||||
//
|
||||
// Retriever
|
||||
//
|
||||
void getArtifact( Artifact artifact, ArtifactRepository repository, TransferListener transferListener )
|
||||
throws TransferFailedException, ResourceDoesNotExistException;
|
||||
|
||||
void getArtifact( Artifact artifact, List<ArtifactRepository> remoteRepositories, TransferListener transferListener )
|
||||
throws TransferFailedException, ResourceDoesNotExistException;
|
||||
|
||||
void getRemoteFile( ArtifactRepository repository, File destination, String remotePath, TransferListener downloadMonitor, String checksumPolicy, boolean force )
|
||||
throws TransferFailedException, ResourceDoesNotExistException;
|
||||
|
||||
void getArtifactMetadata( ArtifactMetadata metadata, ArtifactRepository remoteRepository, File destination, String checksumPolicy )
|
||||
throws TransferFailedException, ResourceDoesNotExistException;
|
||||
|
||||
void getArtifactMetadataFromDeploymentRepository( ArtifactMetadata metadata, ArtifactRepository remoteRepository, File file, String checksumPolicyWarn )
|
||||
throws TransferFailedException, ResourceDoesNotExistException;
|
||||
|
||||
//
|
||||
// Deployer
|
||||
//
|
||||
void putArtifact( File source, Artifact artifact, ArtifactRepository deploymentRepository, TransferListener downloadMonitor )
|
||||
throws TransferFailedException;
|
||||
|
||||
void putRemoteFile( ArtifactRepository repository, File source, String remotePath, TransferListener downloadMonitor )
|
||||
throws TransferFailedException;
|
||||
|
||||
void putArtifactMetadata( File source, ArtifactMetadata artifactMetadata, ArtifactRepository repository )
|
||||
throws TransferFailedException;
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
package org.apache.maven.repository.legacy.metadata;
|
||||
|
||||
/*
|
||||
* 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.artifact.Artifact;
|
||||
|
||||
/**
|
||||
* Common elements of artifact metadata.
|
||||
*
|
||||
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
|
||||
* @version $Id$
|
||||
*/
|
||||
public abstract class AbstractArtifactMetadata
|
||||
implements ArtifactMetadata
|
||||
{
|
||||
protected Artifact artifact;
|
||||
|
||||
protected AbstractArtifactMetadata( Artifact artifact )
|
||||
{
|
||||
this.artifact = artifact;
|
||||
}
|
||||
|
||||
public boolean storedInGroupDirectory()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public String getGroupId()
|
||||
{
|
||||
return artifact.getGroupId();
|
||||
}
|
||||
|
||||
public String getArtifactId()
|
||||
{
|
||||
return artifact.getArtifactId();
|
||||
}
|
||||
|
||||
public String extendedToString()
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append( "\nArtifact Metadata\n--------------------------" );
|
||||
buffer.append( "\nGroupId: " ).append( getGroupId() );
|
||||
buffer.append( "\nArtifactId: " ).append( getArtifactId() );
|
||||
buffer.append( "\nMetadata Type: " ).append( getClass().getName() );
|
||||
|
||||
return buffer.toString();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,84 @@
|
|||
package org.apache.maven.repository.legacy.metadata;
|
||||
|
||||
/*
|
||||
* 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.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.repository.metadata.RepositoryMetadataStoreException;
|
||||
|
||||
/**
|
||||
* Contains metadata about an artifact, and methods to retrieve/store it from an artifact repository.
|
||||
*
|
||||
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
|
||||
* @version $Id$
|
||||
* @todo merge with artifactmetadatasource
|
||||
* @todo retrieval exception not appropriate for store
|
||||
*/
|
||||
public interface ArtifactMetadata
|
||||
{
|
||||
/** Whether this metadata should be stored alongside the artifact. */
|
||||
boolean storedInArtifactVersionDirectory();
|
||||
|
||||
/** Whether this metadata should be stored alongside the group. */
|
||||
boolean storedInGroupDirectory();
|
||||
|
||||
String getGroupId();
|
||||
|
||||
String getArtifactId();
|
||||
|
||||
String getBaseVersion();
|
||||
|
||||
Object getKey();
|
||||
|
||||
/**
|
||||
* Get the filename of this metadata on the local repository.
|
||||
*
|
||||
* @param repository the remote repository it came from
|
||||
* @return the filename
|
||||
*/
|
||||
String getLocalFilename( ArtifactRepository repository );
|
||||
|
||||
/**
|
||||
* Get the filename of this metadata on the remote repository.
|
||||
*
|
||||
* @return the filename
|
||||
*/
|
||||
String getRemoteFilename();
|
||||
|
||||
/**
|
||||
* Merge a new metadata set into this piece of metadata.
|
||||
*
|
||||
* @param metadata the new metadata
|
||||
* @todo this should only be needed on the repository metadata
|
||||
*/
|
||||
void merge( ArtifactMetadata metadata );
|
||||
|
||||
/**
|
||||
* Store the metadata in the local repository.
|
||||
*
|
||||
* @param localRepository the local repository
|
||||
* @param remoteRepository the remote repository it came from
|
||||
* @todo this should only be needed on the repository metadata
|
||||
*/
|
||||
void storeInLocalRepository( ArtifactRepository localRepository,
|
||||
ArtifactRepository remoteRepository )
|
||||
throws RepositoryMetadataStoreException;
|
||||
|
||||
String extendedToString();
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
package org.apache.maven.repository.legacy.metadata;
|
||||
|
||||
/*
|
||||
* 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.artifact.Artifact;
|
||||
|
||||
/**
|
||||
* Error while retrieving repository metadata from the repository.
|
||||
*
|
||||
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class ArtifactMetadataRetrievalException
|
||||
extends Exception
|
||||
{
|
||||
private Artifact artifact;
|
||||
|
||||
/** @deprecated use {@link #ArtifactMetadataRetrievalException(String, Throwable, Artifact)} */
|
||||
@Deprecated
|
||||
public ArtifactMetadataRetrievalException( String message )
|
||||
{
|
||||
this( message, null, null );
|
||||
}
|
||||
|
||||
/** @deprecated use {@link #ArtifactMetadataRetrievalException(String, Throwable, Artifact)} */
|
||||
@Deprecated
|
||||
public ArtifactMetadataRetrievalException( Throwable cause )
|
||||
{
|
||||
this( null, cause, null );
|
||||
}
|
||||
|
||||
/** @deprecated use {@link #ArtifactMetadataRetrievalException(String, Throwable, Artifact)} */
|
||||
@Deprecated
|
||||
public ArtifactMetadataRetrievalException( String message,
|
||||
Throwable cause )
|
||||
{
|
||||
this( message, cause, null );
|
||||
}
|
||||
|
||||
public ArtifactMetadataRetrievalException( String message,
|
||||
Throwable cause,
|
||||
Artifact artifact )
|
||||
{
|
||||
super( message, cause );
|
||||
this.artifact = artifact;
|
||||
}
|
||||
|
||||
public Artifact getArtifact()
|
||||
{
|
||||
return artifact;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,70 @@
|
|||
package org.apache.maven.repository.legacy.metadata;
|
||||
|
||||
/*
|
||||
* 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.List;
|
||||
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.versioning.ArtifactVersion;
|
||||
|
||||
/**
|
||||
* Provides some metadata operations, like querying the remote repository for a list of versions available for an
|
||||
* artifact.
|
||||
*
|
||||
* @author <a href="mailto:jason@maven.org">Jason van Zyl </a>
|
||||
* @version $Id$
|
||||
*/
|
||||
public interface ArtifactMetadataSource
|
||||
{
|
||||
ResolutionGroup retrieve( Artifact artifact, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories )
|
||||
throws ArtifactMetadataRetrievalException;
|
||||
|
||||
/**
|
||||
* Get a list of available versions for an artifact in the remote repository
|
||||
*
|
||||
* @param artifact artifact we are interested in. Only <code>groupid</code> and <code>artifactId</code>
|
||||
* are needed, for instance the following code will work
|
||||
* <code>artifactFactory.createProjectArtifact( "org.apache.maven", "maven", "" )</code>
|
||||
* @param localRepository local repository
|
||||
* @param remoteRepositories remote repositories, {@link List} $lt; {@link ArtifactRepository} >
|
||||
* @return {@link List} $lt; {@link ArtifactVersion} >
|
||||
* @throws ArtifactMetadataRetrievalException
|
||||
* in case of error while retrieving repository metadata from the repository.
|
||||
*/
|
||||
List<ArtifactVersion> retrieveAvailableVersions( Artifact artifact, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories )
|
||||
throws ArtifactMetadataRetrievalException;
|
||||
|
||||
/**
|
||||
* Get a list of available versions for an artifact in the remote deployment repository. This ignores any update
|
||||
* policy checks and mirrors and always retrieves the latest information from the given repository.
|
||||
*
|
||||
* @param artifact artifact we are interested in. Only <code>groupid</code> and <code>artifactId</code> are
|
||||
* needed, for instance the following code will work
|
||||
* <code>artifactFactory.createProjectArtifact( "org.apache.maven", "maven", "" )</code>
|
||||
* @param localRepository local repository
|
||||
* @param deploymentRepository remote repository
|
||||
* @return {@link List} $lt; {@link ArtifactVersion} >
|
||||
* @throws ArtifactMetadataRetrievalException
|
||||
* in case of error while retrieving repository metadata from the repository.
|
||||
*/
|
||||
List<ArtifactVersion> retrieveAvailableVersionsFromDeploymentRepository( Artifact artifact, ArtifactRepository localRepository, ArtifactRepository remoteRepository )
|
||||
throws ArtifactMetadataRetrievalException;
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
package org.apache.maven.repository.legacy.metadata;
|
||||
|
||||
/*
|
||||
* 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.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
|
||||
public class ResolutionGroup
|
||||
{
|
||||
|
||||
private final Set<Artifact> artifacts;
|
||||
|
||||
private final List<ArtifactRepository> resolutionRepositories;
|
||||
|
||||
private final Artifact pomArtifact;
|
||||
|
||||
public ResolutionGroup( Artifact pomArtifact,
|
||||
Set<Artifact> artifacts,
|
||||
List<ArtifactRepository> resolutionRepositories )
|
||||
{
|
||||
this.pomArtifact = pomArtifact;
|
||||
this.artifacts = artifacts;
|
||||
this.resolutionRepositories = resolutionRepositories;
|
||||
}
|
||||
|
||||
public Artifact getPomArtifact()
|
||||
{
|
||||
return pomArtifact;
|
||||
}
|
||||
|
||||
public Set<Artifact> getArtifacts()
|
||||
{
|
||||
return artifacts;
|
||||
}
|
||||
|
||||
public List<ArtifactRepository> getResolutionRepositories()
|
||||
{
|
||||
return resolutionRepositories;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver;
|
||||
package org.apache.maven.repository.legacy.resolver;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
|
@ -26,8 +26,10 @@ import java.util.Set;
|
|||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.resolver.conflict.ConflictResolver;
|
||||
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
|
||||
import org.apache.maven.artifact.resolver.ResolutionListener;
|
||||
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
|
||||
import org.apache.maven.repository.legacy.resolver.conflict.ConflictResolver;
|
||||
|
||||
/**
|
||||
* Artifact collector - takes a set of original artifacts and resolves all of the best versions to use
|
||||
|
@ -36,6 +38,7 @@ import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
|
|||
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
|
||||
* @version $Id$
|
||||
*/
|
||||
@Deprecated
|
||||
public interface ArtifactCollector
|
||||
{
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver;
|
||||
package org.apache.maven.repository.legacy.resolver;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
|
@ -33,13 +33,19 @@ import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
|
|||
import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
|
||||
import org.apache.maven.artifact.metadata.ResolutionGroup;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.resolver.conflict.ConflictResolver;
|
||||
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
|
||||
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
|
||||
import org.apache.maven.artifact.resolver.CyclicDependencyException;
|
||||
import org.apache.maven.artifact.resolver.ResolutionListener;
|
||||
import org.apache.maven.artifact.resolver.ResolutionListenerForDepMgmt;
|
||||
import org.apache.maven.artifact.resolver.ResolutionNode;
|
||||
import org.apache.maven.artifact.resolver.filter.AndArtifactFilter;
|
||||
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
|
||||
import org.apache.maven.artifact.versioning.ArtifactVersion;
|
||||
import org.apache.maven.artifact.versioning.ManagedVersionMap;
|
||||
import org.apache.maven.artifact.versioning.OverConstrainedVersionException;
|
||||
import org.apache.maven.artifact.versioning.VersionRange;
|
||||
import org.apache.maven.repository.legacy.resolver.conflict.ConflictResolver;
|
||||
import org.codehaus.plexus.component.annotations.Component;
|
||||
import org.codehaus.plexus.component.annotations.Requirement;
|
||||
import org.codehaus.plexus.logging.Logger;
|
||||
|
@ -438,9 +444,7 @@ public class DefaultArtifactCollector
|
|||
List<ArtifactVersion> versions = artifact.getAvailableVersions();
|
||||
if ( versions == null )
|
||||
{
|
||||
versions =
|
||||
source.retrieveAvailableVersions( artifact, localRepository,
|
||||
childRemoteRepositories );
|
||||
versions = source.retrieveAvailableVersions( artifact, localRepository, childRemoteRepositories );
|
||||
artifact.setAvailableVersions( versions );
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.conflict;
|
||||
package org.apache.maven.repository.legacy.resolver.conflict;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.conflict;
|
||||
package org.apache.maven.repository.legacy.resolver.conflict;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.conflict;
|
||||
package org.apache.maven.repository.legacy.resolver.conflict;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.conflict;
|
||||
package org.apache.maven.repository.legacy.resolver.conflict;
|
||||
|
||||
import org.codehaus.plexus.component.annotations.Component;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.conflict;
|
||||
package org.apache.maven.repository.legacy.resolver.conflict;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.conflict;
|
||||
package org.apache.maven.repository.legacy.resolver.conflict;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.conflict;
|
||||
package org.apache.maven.repository.legacy.resolver.conflict;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.conflict;
|
||||
package org.apache.maven.repository.legacy.resolver.conflict;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.conflict;
|
||||
package org.apache.maven.repository.legacy.resolver.conflict;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.metadata;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
import java.util.Collection;
|
||||
|
|
@ -1,13 +1,10 @@
|
|||
package org.apache.maven.artifact.transform;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.maven.artifact.ArtifactScopeEnum;
|
||||
import org.apache.maven.artifact.resolver.metadata.ArtifactMetadata;
|
||||
import org.apache.maven.artifact.resolver.metadata.MetadataResolutionException;
|
||||
import org.apache.maven.artifact.resolver.metadata.MetadataTreeNode;
|
||||
|
||||
/**
|
||||
* classpath container that is aware of the classpath scope
|
|
@ -1,7 +1,6 @@
|
|||
package org.apache.maven.artifact.transform;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
import org.apache.maven.artifact.ArtifactScopeEnum;
|
||||
import org.apache.maven.artifact.resolver.metadata.MetadataGraph;
|
||||
|
||||
|
||||
/**
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.transform;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
@ -6,12 +6,6 @@ import java.util.Comparator;
|
|||
import java.util.List;
|
||||
|
||||
import org.apache.maven.artifact.ArtifactScopeEnum;
|
||||
import org.apache.maven.artifact.resolver.conflict.GraphConflictResolutionException;
|
||||
import org.apache.maven.artifact.resolver.conflict.GraphConflictResolver;
|
||||
import org.apache.maven.artifact.resolver.metadata.ArtifactMetadata;
|
||||
import org.apache.maven.artifact.resolver.metadata.MetadataGraph;
|
||||
import org.apache.maven.artifact.resolver.metadata.MetadataGraphEdge;
|
||||
import org.apache.maven.artifact.resolver.metadata.MetadataGraphVertex;
|
||||
import org.codehaus.plexus.component.annotations.Component;
|
||||
import org.codehaus.plexus.component.annotations.Requirement;
|
||||
|
|
@ -1,6 +1,5 @@
|
|||
package org.apache.maven.artifact.resolver.conflict;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
import org.apache.maven.artifact.resolver.metadata.MetadataGraphEdge;
|
||||
import org.apache.maven.artifact.versioning.ArtifactVersion;
|
||||
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
|
||||
import org.codehaus.plexus.component.annotations.Component;
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.conflict;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
|
@ -24,11 +24,6 @@ import java.util.List;
|
|||
import java.util.TreeSet;
|
||||
|
||||
import org.apache.maven.artifact.ArtifactScopeEnum;
|
||||
import org.apache.maven.artifact.resolver.metadata.ArtifactMetadata;
|
||||
import org.apache.maven.artifact.resolver.metadata.MetadataGraph;
|
||||
import org.apache.maven.artifact.resolver.metadata.MetadataGraphEdge;
|
||||
import org.apache.maven.artifact.resolver.metadata.MetadataGraphVertex;
|
||||
import org.apache.maven.artifact.resolver.metadata.MetadataResolutionException;
|
||||
import org.codehaus.plexus.component.annotations.Component;
|
||||
import org.codehaus.plexus.component.annotations.Requirement;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.conflict;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
/**
|
||||
*
|
|
@ -1,6 +1,5 @@
|
|||
package org.apache.maven.artifact.resolver.conflict;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
import org.apache.maven.artifact.resolver.metadata.MetadataGraphEdge;
|
||||
|
||||
/**
|
||||
* MetadataGraph edge selection policy. Complements
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.conflict;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
|
@ -20,7 +20,6 @@ package org.apache.maven.artifact.resolver.conflict;
|
|||
*/
|
||||
|
||||
import org.apache.maven.artifact.ArtifactScopeEnum;
|
||||
import org.apache.maven.artifact.resolver.metadata.MetadataGraph;
|
||||
|
||||
/**
|
||||
* Resolves conflicts in the supplied dependency graph.
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.metadata;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.metadata;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
import org.apache.maven.artifact.ArtifactScopeEnum;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.transform;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
/**
|
||||
* @author <a href="oleg@codehaus.org">Oleg Gusakov</a>
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.metadata;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
import org.apache.maven.artifact.ArtifactScopeEnum;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.metadata;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
import java.util.Collection;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.metadata;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
public class MetadataResolutionException
|
||||
extends Exception
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.metadata;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.metadata;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
public enum MetadataResolutionRequestTypeEnum
|
||||
{
|
|
@ -1,11 +1,6 @@
|
|||
package org.apache.maven.artifact.resolver.metadata;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
import org.apache.maven.artifact.ArtifactScopeEnum;
|
||||
import org.apache.maven.artifact.resolver.conflict.GraphConflictResolutionException;
|
||||
import org.apache.maven.artifact.resolver.conflict.GraphConflictResolver;
|
||||
import org.apache.maven.artifact.transform.ClasspathContainer;
|
||||
import org.apache.maven.artifact.transform.ClasspathTransformation;
|
||||
import org.apache.maven.artifact.transform.MetadataGraphTransformationException;
|
||||
import org.codehaus.plexus.PlexusContainer;
|
||||
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.metadata;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.metadata;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.metadata;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.ArtifactScopeEnum;
|
|
@ -23,13 +23,13 @@ import java.util.Collections;
|
|||
import java.util.List;
|
||||
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
|
||||
import org.apache.maven.artifact.metadata.ResolutionGroup;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
|
||||
import org.apache.maven.artifact.versioning.ArtifactVersion;
|
||||
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
|
||||
import org.apache.maven.repository.legacy.metadata.ArtifactMetadataRetrievalException;
|
||||
import org.apache.maven.repository.legacy.metadata.ArtifactMetadataSource;
|
||||
import org.apache.maven.repository.legacy.metadata.ResolutionGroup;
|
||||
|
||||
/** @author Jason van Zyl */
|
||||
public class SimpleArtifactMetadataSource
|
||||
|
|
|
@ -11,5 +11,4 @@ public class DefaultArtifactResolverTest
|
|||
{
|
||||
ArtifactResolver resolver = lookup( ArtifactResolver.class, "default" );
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.manager;
|
||||
package org.apache.maven.repository.legacy;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
|
@ -27,6 +27,7 @@ import org.apache.maven.artifact.factory.ArtifactFactory;
|
|||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
|
||||
import org.apache.maven.artifact.repository.metadata.RepositoryMetadata;
|
||||
import org.apache.maven.repository.legacy.DefaultUpdateCheckManager;
|
||||
import org.codehaus.plexus.logging.Logger;
|
||||
import org.codehaus.plexus.logging.console.ConsoleLogger;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.manager;
|
||||
package org.apache.maven.repository.legacy;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
|
@ -23,7 +23,6 @@ import java.io.File;
|
|||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.DefaultArtifact;
|
||||
|
@ -32,10 +31,13 @@ import org.apache.maven.artifact.metadata.ArtifactMetadata;
|
|||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
|
||||
import org.apache.maven.artifact.repository.DefaultArtifactRepository;
|
||||
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
|
||||
import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
|
||||
import org.apache.maven.artifact.versioning.VersionRange;
|
||||
import org.apache.maven.repository.legacy.ChecksumFailedException;
|
||||
import org.apache.maven.repository.legacy.DefaultWagonManager;
|
||||
import org.apache.maven.repository.legacy.UpdateCheckManager;
|
||||
import org.apache.maven.repository.legacy.WagonManager;
|
||||
import org.apache.maven.wagon.ResourceDoesNotExistException;
|
||||
import org.apache.maven.wagon.TransferFailedException;
|
||||
import org.apache.maven.wagon.UnsupportedProtocolException;
|
||||
|
@ -45,10 +47,8 @@ import org.apache.maven.wagon.events.TransferEvent;
|
|||
import org.apache.maven.wagon.events.TransferListener;
|
||||
import org.apache.maven.wagon.observers.AbstractTransferListener;
|
||||
import org.apache.maven.wagon.observers.Debug;
|
||||
import org.apache.maven.wagon.repository.Repository;
|
||||
import org.codehaus.plexus.PlexusTestCase;
|
||||
import org.codehaus.plexus.util.FileUtils;
|
||||
import org.codehaus.plexus.util.xml.Xpp3Dom;
|
||||
import org.easymock.MockControl;
|
||||
|
||||
/**
|
||||
|
@ -81,14 +81,7 @@ public class DefaultWagonManagerTest
|
|||
artifactFactory = null;
|
||||
super.tearDown();
|
||||
}
|
||||
|
||||
public void testAvailableProtocols()
|
||||
throws Exception
|
||||
{
|
||||
Set<String> protocols = wagonManager.getSupportProtocols();
|
||||
System.out.println( protocols );
|
||||
}
|
||||
|
||||
|
||||
public void testUnnecessaryRepositoryLookup() throws Exception {
|
||||
Artifact artifact = createTestPomArtifact( "target/test-data/get-missing-pom" );
|
||||
|
||||
|
@ -108,8 +101,7 @@ public class DefaultWagonManagerTest
|
|||
}
|
||||
};
|
||||
TransferListener listener = new TransferListener();
|
||||
wagonManager.setDownloadMonitor(listener);
|
||||
wagonManager.getArtifact( artifact, repos, listener, false );
|
||||
wagonManager.getArtifact( artifact, repos, listener );
|
||||
assertEquals(1, listener.events.size());
|
||||
}
|
||||
|
||||
|
@ -126,11 +118,9 @@ public class DefaultWagonManagerTest
|
|||
wagon.addExpectedContent( repo.getLayout().pathOf( artifact ), "expected" );
|
||||
|
||||
MockControl control = MockControl.createControl( UpdateCheckManager.class );
|
||||
UpdateCheckManager updateCheckManager = (UpdateCheckManager) control.getMock();
|
||||
|
||||
control.replay();
|
||||
|
||||
wagonManager.getArtifact( artifact, repo, true );
|
||||
wagonManager.getArtifact( artifact, repo, null );
|
||||
|
||||
assertTrue( artifact.getFile().exists() );
|
||||
assertEquals( "expected", FileUtils.fileRead( artifact.getFile(), "UTF-8" ) );
|
||||
|
@ -146,7 +136,7 @@ public class DefaultWagonManagerTest
|
|||
|
||||
try
|
||||
{
|
||||
wagonManager.getArtifact( artifact, repo, false );
|
||||
wagonManager.getArtifact( artifact, repo, null );
|
||||
|
||||
fail();
|
||||
}
|
||||
|
@ -166,7 +156,7 @@ public class DefaultWagonManagerTest
|
|||
|
||||
try
|
||||
{
|
||||
wagonManager.getArtifact( artifact, repo, true );
|
||||
wagonManager.getArtifact( artifact, repo, null );
|
||||
|
||||
fail();
|
||||
}
|
||||
|
@ -190,11 +180,9 @@ public class DefaultWagonManagerTest
|
|||
wagon.addExpectedContent( repo.getLayout().pathOf( artifact ), "expected" );
|
||||
|
||||
MockControl control = MockControl.createControl( UpdateCheckManager.class );
|
||||
UpdateCheckManager updateCheckManager = (UpdateCheckManager) control.getMock();
|
||||
|
||||
control.replay();
|
||||
|
||||
wagonManager.getArtifact( artifact, repo, false );
|
||||
wagonManager.getArtifact( artifact, repo, null );
|
||||
|
||||
assertTrue( artifact.getFile().exists() );
|
||||
assertEquals( "expected", FileUtils.fileRead( artifact.getFile(), "UTF-8" ) );
|
||||
|
@ -215,11 +203,9 @@ public class DefaultWagonManagerTest
|
|||
wagon.addExpectedContent( repo.getLayout().pathOf( artifact ), "expected" );
|
||||
|
||||
MockControl control = MockControl.createControl( UpdateCheckManager.class );
|
||||
UpdateCheckManager updateCheckManager = (UpdateCheckManager) control.getMock();
|
||||
|
||||
control.replay();
|
||||
|
||||
wagonManager.getArtifact( artifact, repo, true );
|
||||
wagonManager.getArtifact( artifact, repo, null );
|
||||
|
||||
assertTrue( artifact.getFile().exists() );
|
||||
assertEquals( "expected", FileUtils.fileRead( artifact.getFile(), "UTF-8" ) );
|
||||
|
@ -311,26 +297,6 @@ public class DefaultWagonManagerTest
|
|||
}
|
||||
}
|
||||
|
||||
public void testGetWagonRepositoryNullProtocol()
|
||||
throws Exception
|
||||
{
|
||||
try
|
||||
{
|
||||
Repository repository = new Repository();
|
||||
|
||||
repository.setProtocol( null );
|
||||
|
||||
Wagon wagon = wagonManager.getWagon( repository );
|
||||
|
||||
fail( "Expected :" + UnsupportedProtocolException.class.getName() );
|
||||
}
|
||||
catch ( UnsupportedProtocolException e )
|
||||
{
|
||||
// ok
|
||||
assertTrue( true );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check that transfer listeners are properly removed after getArtifact and putArtifact
|
||||
*/
|
||||
|
@ -345,8 +311,7 @@ public class DefaultWagonManagerTest
|
|||
/* getArtifact */
|
||||
assertFalse( "Transfer listener is registered before test",
|
||||
wagon.getTransferEventSupport().hasTransferListener( transferListener ) );
|
||||
wagonManager.setDownloadMonitor( transferListener );
|
||||
wagonManager.getArtifact( artifact, repo );
|
||||
wagonManager.getArtifact( artifact, repo, transferListener);
|
||||
assertFalse( "Transfer listener still registered after getArtifact",
|
||||
wagon.getTransferEventSupport().hasTransferListener( transferListener ) );
|
||||
|
||||
|
@ -354,12 +319,9 @@ public class DefaultWagonManagerTest
|
|||
File sampleFile = getTestFile( "target/test-file" );
|
||||
FileUtils.fileWrite( sampleFile.getAbsolutePath(), "sample file" );
|
||||
|
||||
assertFalse( "Transfer listener is registered before test",
|
||||
wagon.getTransferEventSupport().hasTransferListener( transferListener ) );
|
||||
wagonManager.setDownloadMonitor( transferListener );
|
||||
wagonManager.putArtifact( sampleFile, artifact, repo );
|
||||
assertFalse( "Transfer listener still registered after putArtifact",
|
||||
wagon.getTransferEventSupport().hasTransferListener( transferListener ) );
|
||||
assertFalse( "Transfer listener is registered before test", wagon.getTransferEventSupport().hasTransferListener( transferListener ) );
|
||||
wagonManager.putArtifact( sampleFile, artifact, repo, transferListener );
|
||||
assertFalse( "Transfer listener still registered after putArtifact", wagon.getTransferEventSupport().hasTransferListener( transferListener ) );
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -385,7 +347,7 @@ public class DefaultWagonManagerTest
|
|||
|
||||
try
|
||||
{
|
||||
wagonManager.getArtifact( artifact, repo, true );
|
||||
wagonManager.getArtifact( artifact, repo, null );
|
||||
}
|
||||
catch ( ChecksumFailedException e )
|
||||
{
|
||||
|
@ -398,7 +360,7 @@ public class DefaultWagonManagerTest
|
|||
|
||||
try
|
||||
{
|
||||
wagonManager.getArtifact( artifact, repo, true );
|
||||
wagonManager.getArtifact( artifact, repo, null );
|
||||
}
|
||||
catch ( ChecksumFailedException e )
|
||||
{
|
||||
|
@ -411,7 +373,7 @@ public class DefaultWagonManagerTest
|
|||
|
||||
try
|
||||
{
|
||||
wagonManager.getArtifact( artifact, repo, true );
|
||||
wagonManager.getArtifact( artifact, repo, null );
|
||||
fail( "Checksum verification did not fail" );
|
||||
}
|
||||
catch ( ChecksumFailedException e )
|
||||
|
@ -425,7 +387,7 @@ public class DefaultWagonManagerTest
|
|||
|
||||
try
|
||||
{
|
||||
wagonManager.getArtifact( artifact, repo, true );
|
||||
wagonManager.getArtifact( artifact, repo, null );
|
||||
}
|
||||
catch ( ChecksumFailedException e )
|
||||
{
|
||||
|
@ -438,7 +400,7 @@ public class DefaultWagonManagerTest
|
|||
|
||||
try
|
||||
{
|
||||
wagonManager.getArtifact( artifact, repo, true );
|
||||
wagonManager.getArtifact( artifact, repo, null );
|
||||
}
|
||||
catch ( ChecksumFailedException e )
|
||||
{
|
||||
|
@ -451,7 +413,7 @@ public class DefaultWagonManagerTest
|
|||
|
||||
try
|
||||
{
|
||||
wagonManager.getArtifact( artifact, repo, true );
|
||||
wagonManager.getArtifact( artifact, repo, null );
|
||||
fail( "Checksum verification did not fail" );
|
||||
}
|
||||
catch ( ChecksumFailedException e )
|
||||
|
@ -468,32 +430,6 @@ public class DefaultWagonManagerTest
|
|||
assertNotNull( "Check wagon, protocol=" + protocol, wagon );
|
||||
}
|
||||
|
||||
private void assertWagonRepository( String protocol )
|
||||
throws Exception
|
||||
{
|
||||
Repository repository = new Repository();
|
||||
|
||||
String s = "value=" + protocol;
|
||||
|
||||
repository.setId( "id=" + protocol );
|
||||
|
||||
repository.setProtocol( protocol );
|
||||
|
||||
Xpp3Dom conf = new Xpp3Dom( "configuration" );
|
||||
|
||||
Xpp3Dom configurableField = new Xpp3Dom( "configurableField" );
|
||||
|
||||
configurableField.setValue( s );
|
||||
|
||||
conf.addChild( configurableField );
|
||||
|
||||
WagonMock wagon = (WagonMock) wagonManager.getWagon( repository );
|
||||
|
||||
assertNotNull( "Check wagon, protocol=" + protocol, wagon );
|
||||
|
||||
assertEquals( "Check configuration for wagon, protocol=" + protocol, s, wagon.getConfigurableField() );
|
||||
}
|
||||
|
||||
private final class ArtifactRepositoryLayoutStub
|
||||
implements ArtifactRepositoryLayout
|
||||
{
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.manager;
|
||||
package org.apache.maven.repository.legacy;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.manager;
|
||||
package org.apache.maven.repository.legacy;
|
||||
|
||||
import org.apache.maven.wagon.Wagon;
|
||||
import org.codehaus.plexus.component.annotations.Component;
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.manager;
|
||||
package org.apache.maven.repository.legacy;
|
||||
|
||||
import org.apache.maven.wagon.Wagon;
|
||||
import org.codehaus.plexus.component.annotations.Component;
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.manager;
|
||||
package org.apache.maven.repository.legacy;
|
||||
|
||||
import org.apache.maven.wagon.Wagon;
|
||||
import org.codehaus.plexus.component.annotations.Component;
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.manager;
|
||||
package org.apache.maven.repository.legacy;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver;
|
||||
package org.apache.maven.repository.legacy.resolver;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
|
@ -36,6 +36,9 @@ import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
|
|||
import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
|
||||
import org.apache.maven.artifact.metadata.ResolutionGroup;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
|
||||
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
|
||||
import org.apache.maven.artifact.resolver.CyclicDependencyException;
|
||||
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
|
||||
import org.apache.maven.artifact.resolver.filter.ExclusionSetFilter;
|
||||
import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
|
||||
|
@ -44,6 +47,7 @@ import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
|
|||
import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
|
||||
import org.apache.maven.artifact.versioning.OverConstrainedVersionException;
|
||||
import org.apache.maven.artifact.versioning.VersionRange;
|
||||
import org.apache.maven.repository.legacy.resolver.ArtifactCollector;
|
||||
import org.codehaus.plexus.PlexusTestCase;
|
||||
|
||||
/**
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.conflict;
|
||||
package org.apache.maven.repository.legacy.resolver.conflict;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
|
@ -24,6 +24,7 @@ import org.apache.maven.artifact.factory.ArtifactFactory;
|
|||
import org.apache.maven.artifact.resolver.ResolutionNode;
|
||||
import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
|
||||
import org.apache.maven.artifact.versioning.VersionRange;
|
||||
import org.apache.maven.repository.legacy.resolver.conflict.ConflictResolver;
|
||||
import org.codehaus.plexus.PlexusTestCase;
|
||||
|
||||
/**
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.conflict;
|
||||
package org.apache.maven.repository.legacy.resolver.conflict;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
|
@ -22,6 +22,7 @@ package org.apache.maven.artifact.resolver.conflict;
|
|||
import java.util.Collections;
|
||||
|
||||
import org.apache.maven.artifact.resolver.ResolutionNode;
|
||||
import org.apache.maven.repository.legacy.resolver.conflict.FarthestConflictResolver;
|
||||
|
||||
/**
|
||||
* Tests <code>FarthestConflictResolver</code>.
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.conflict;
|
||||
package org.apache.maven.repository.legacy.resolver.conflict;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
|
@ -22,6 +22,7 @@ package org.apache.maven.artifact.resolver.conflict;
|
|||
import java.util.Collections;
|
||||
|
||||
import org.apache.maven.artifact.resolver.ResolutionNode;
|
||||
import org.apache.maven.repository.legacy.resolver.conflict.NearestConflictResolver;
|
||||
|
||||
/**
|
||||
* Tests <code>NearestConflictResolver</code>.
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.conflict;
|
||||
package org.apache.maven.repository.legacy.resolver.conflict;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
|
@ -22,6 +22,7 @@ package org.apache.maven.artifact.resolver.conflict;
|
|||
import java.util.Collections;
|
||||
|
||||
import org.apache.maven.artifact.resolver.ResolutionNode;
|
||||
import org.apache.maven.repository.legacy.resolver.conflict.NewestConflictResolver;
|
||||
|
||||
/**
|
||||
* Tests <code>NewestConflictResolver</code>.
|
|
@ -1,4 +1,4 @@
|
|||
package org.apache.maven.artifact.resolver.conflict;
|
||||
package org.apache.maven.repository.legacy.resolver.conflict;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
|
@ -22,6 +22,7 @@ package org.apache.maven.artifact.resolver.conflict;
|
|||
import java.util.Collections;
|
||||
|
||||
import org.apache.maven.artifact.resolver.ResolutionNode;
|
||||
import org.apache.maven.repository.legacy.resolver.conflict.OldestConflictResolver;
|
||||
|
||||
/**
|
||||
* Tests <code>OldestConflictResolver</code>.
|
|
@ -1,10 +1,12 @@
|
|||
package org.apache.maven.artifact.transform;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
import org.apache.maven.artifact.ArtifactScopeEnum;
|
||||
import org.apache.maven.artifact.resolver.metadata.ArtifactMetadata;
|
||||
import org.apache.maven.artifact.resolver.metadata.MetadataGraph;
|
||||
import org.apache.maven.artifact.resolver.metadata.MetadataGraphEdge;
|
||||
import org.apache.maven.artifact.resolver.metadata.MetadataGraphVertex;
|
||||
import org.apache.maven.repository.metadata.ArtifactMetadata;
|
||||
import org.apache.maven.repository.metadata.ClasspathContainer;
|
||||
import org.apache.maven.repository.metadata.ClasspathTransformation;
|
||||
import org.apache.maven.repository.metadata.MetadataGraph;
|
||||
import org.apache.maven.repository.metadata.MetadataGraphEdge;
|
||||
import org.apache.maven.repository.metadata.MetadataGraphVertex;
|
||||
import org.codehaus.plexus.PlexusTestCase;
|
||||
|
||||
/**
|
|
@ -1,6 +1,7 @@
|
|||
package org.apache.maven.artifact.resolver.conflict;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
import org.apache.maven.artifact.resolver.metadata.MetadataGraphEdge;
|
||||
import org.apache.maven.repository.metadata.GraphConflictResolutionPolicy;
|
||||
import org.apache.maven.repository.metadata.MetadataGraphEdge;
|
||||
import org.codehaus.plexus.PlexusTestCase;
|
||||
|
||||
/**
|
|
@ -1,10 +1,11 @@
|
|||
package org.apache.maven.artifact.resolver.conflict;
|
||||
package org.apache.maven.repository.metadata;
|
||||
|
||||
import org.apache.maven.artifact.ArtifactScopeEnum;
|
||||
import org.apache.maven.artifact.resolver.metadata.ArtifactMetadata;
|
||||
import org.apache.maven.artifact.resolver.metadata.MetadataGraph;
|
||||
import org.apache.maven.artifact.resolver.metadata.MetadataGraphEdge;
|
||||
import org.apache.maven.artifact.resolver.metadata.MetadataGraphVertex;
|
||||
import org.apache.maven.repository.metadata.ArtifactMetadata;
|
||||
import org.apache.maven.repository.metadata.GraphConflictResolver;
|
||||
import org.apache.maven.repository.metadata.MetadataGraph;
|
||||
import org.apache.maven.repository.metadata.MetadataGraphEdge;
|
||||
import org.apache.maven.repository.metadata.MetadataGraphVertex;
|
||||
import org.codehaus.plexus.PlexusTestCase;
|
||||
import org.codehaus.plexus.logging.Logger;
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
package org.apache.maven.repository.metadata;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.factory.ArtifactFactory;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
|
||||
import org.apache.maven.artifact.versioning.ArtifactVersion;
|
||||
import org.apache.maven.repository.legacy.metadata.ArtifactMetadataRetrievalException;
|
||||
import org.apache.maven.repository.legacy.metadata.ArtifactMetadataSource;
|
||||
import org.apache.maven.repository.legacy.metadata.ResolutionGroup;
|
||||
import org.codehaus.plexus.component.annotations.Component;
|
||||
import org.codehaus.plexus.component.annotations.Requirement;
|
||||
|
||||
@Component(role = ArtifactMetadataSource.class)
|
||||
public class TestMetadataSource
|
||||
implements ArtifactMetadataSource
|
||||
{
|
||||
@Requirement
|
||||
private ArtifactFactory factory;
|
||||
|
||||
public ResolutionGroup retrieve( Artifact artifact, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories )
|
||||
throws ArtifactMetadataRetrievalException
|
||||
{
|
||||
Set dependencies = new HashSet();
|
||||
|
||||
if ( "g".equals( artifact.getArtifactId() ) )
|
||||
{
|
||||
Artifact a = null;
|
||||
try
|
||||
{
|
||||
a = factory.createBuildArtifact( "org.apache.maven", "h", "1.0", "jar" );
|
||||
dependencies.add( a );
|
||||
}
|
||||
catch ( Exception e )
|
||||
{
|
||||
throw new ArtifactMetadataRetrievalException( "Error retrieving metadata", e, a );
|
||||
}
|
||||
}
|
||||
|
||||
if ( "i".equals( artifact.getArtifactId() ) )
|
||||
{
|
||||
Artifact a = null;
|
||||
try
|
||||
{
|
||||
a = factory.createBuildArtifact( "org.apache.maven", "j", "1.0-SNAPSHOT", "jar" );
|
||||
dependencies.add( a );
|
||||
}
|
||||
catch ( Exception e )
|
||||
{
|
||||
throw new ArtifactMetadataRetrievalException( "Error retrieving metadata", e, a );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return new ResolutionGroup( artifact, dependencies, remoteRepositories );
|
||||
}
|
||||
|
||||
public List<ArtifactVersion> retrieveAvailableVersions( Artifact artifact, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories )
|
||||
throws ArtifactMetadataRetrievalException
|
||||
{
|
||||
throw new UnsupportedOperationException( "Cannot get available versions in this test case" );
|
||||
}
|
||||
|
||||
public List<ArtifactVersion> retrieveAvailableVersionsFromDeploymentRepository( Artifact artifact, ArtifactRepository localRepository, ArtifactRepository remoteRepository )
|
||||
throws ArtifactMetadataRetrievalException
|
||||
{
|
||||
throw new UnsupportedOperationException( "Cannot get available versions in this test case" );
|
||||
}
|
||||
|
||||
public Artifact retrieveRelocatedArtifact( Artifact artifact, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories )
|
||||
throws ArtifactMetadataRetrievalException
|
||||
{
|
||||
return artifact;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue