[MSHARED-922] Remove checksum calculation from DefaultProjectDeployer The checksums are generated by Maven Resolver This closes #16
diff --git a/src/main/java/org/apache/maven/shared/transfer/project/deploy/internal/DefaultProjectDeployer.java b/src/main/java/org/apache/maven/shared/transfer/project/deploy/internal/DefaultProjectDeployer.java index 1a066dc..166ca24 100644 --- a/src/main/java/org/apache/maven/shared/transfer/project/deploy/internal/DefaultProjectDeployer.java +++ b/src/main/java/org/apache/maven/shared/transfer/project/deploy/internal/DefaultProjectDeployer.java
@@ -20,7 +20,6 @@ */ import java.io.File; -import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -37,7 +36,6 @@ import org.apache.maven.shared.transfer.repository.RepositoryManager; import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.component.annotations.Requirement; -import org.codehaus.plexus.util.FileUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -59,8 +57,6 @@ @Requirement private RepositoryManager repositoryManager; - private final DualDigester digester = new DualDigester(); - /** * {@inheritDoc} */ @@ -127,7 +123,6 @@ deployableArtifacts.add( attached ); } - installChecksumsForAllArtifacts( buildingRequest, deployableArtifacts ); deploy( buildingRequest, deployableArtifacts, artifactRepository, retryFailedDeploymentCount ); } @@ -149,23 +144,6 @@ } } - private void installChecksumsForAllArtifacts( ProjectBuildingRequest request, Collection<Artifact> artifacts ) - { - for ( Artifact item : artifacts ) - { - try - { - LOGGER.debug( "Installing checksum for " + item.getId() ); - installChecksums( request, item ); - } - catch ( IOException e ) - { - // THINK HARD ABOUT IT - LOGGER.error( "Failure during checksum generation for " + item.getId() ); - } - } - } - private void deploy( ProjectBuildingRequest request, Collection<Artifact> artifacts, ArtifactRepository deploymentRepository, int retryFailedDeploymentCount ) throws ArtifactDeployerException @@ -207,76 +185,4 @@ } } - /** - * @param buildingRequest The project building request, must not be <code>null</code>. - * @param artifact The artifact for which to create checksums, must not be <code>null</code>. - * @throws IOException If the checksums could not be installed. - */ - private void installChecksums( ProjectBuildingRequest buildingRequest, Artifact artifact ) - throws IOException - { - File artifactFile = getLocalRepoFile( buildingRequest, artifact ); - installChecksums( artifactFile ); - } - - /** - * Installs the checksums for the specified file (if it exists). - * - * @param installedFile The path to the already installed file in the local repo for which to generate checksums, - * must not be <code>null</code>. - * @throws IOException In case of errors. Could not install checksums. - */ - private void installChecksums( File installedFile ) - throws IOException - { - boolean signatureFile = installedFile.getName().endsWith( ".asc" ); - if ( installedFile.isFile() && !signatureFile ) - { - LOGGER.debug( "Calculating checksums for " + installedFile ); - digester.calculate( installedFile ); - installChecksum( installedFile, ".md5", digester.getMd5() ); - installChecksum( installedFile, ".sha1", digester.getSha1() ); - } - } - - /** - * Installs a checksum for the specified file. - * - * @param installedFile The base path from which the path to the checksum files is derived by appending the given - * file extension, must not be <code>null</code>. - * @param ext The file extension (including the leading dot) to use for the checksum file, must not be - * <code>null</code>. - * @param checksum the checksum to write - * @throws IOException If the checksum could not be installed. - */ - private void installChecksum( File installedFile, String ext, String checksum ) - throws IOException - { - File checksumFile = new File( installedFile.getAbsolutePath() + ext ); - LOGGER.debug( "Installing checksum to " + checksumFile ); - try - { - // noinspection ResultOfMethodCallIgnored - checksumFile.getParentFile().mkdirs(); - FileUtils.fileWrite( checksumFile.getAbsolutePath(), "UTF-8", checksum ); - } - catch ( IOException e ) - { - throw new IOException( "Failed to install checksum to " + checksumFile, e ); - } - } - - /** - * Gets the path of the specified artifact within the local repository. Note that the returned path need not exist - * (yet). - * - * @param buildingRequest The project building request, must not be <code>null</code>. - * @param artifact The artifact whose local repo path should be determined, must not be <code>null</code>. - * @return The absolute path to the artifact when installed, never <code>null</code>. - */ - private File getLocalRepoFile( ProjectBuildingRequest buildingRequest, Artifact artifact ) - { - String path = repositoryManager.getPathForLocalArtifact( buildingRequest, artifact ); - return new File( repositoryManager.getLocalRepositoryBasedir( buildingRequest ), path ); - } }
diff --git a/src/main/java/org/apache/maven/shared/transfer/project/deploy/internal/DualDigester.java b/src/main/java/org/apache/maven/shared/transfer/project/deploy/internal/DualDigester.java deleted file mode 100644 index 60100dd..0000000 --- a/src/main/java/org/apache/maven/shared/transfer/project/deploy/internal/DualDigester.java +++ /dev/null
@@ -1,115 +0,0 @@ -package org.apache.maven.shared.transfer.project.deploy.internal; - -/* - * 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.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; - -import org.apache.commons.codec.binary.Hex; -import org.codehaus.plexus.util.IOUtil; - - -/** - * Calculates md5 and sha1 digest. - * <p/> - * Todo: Consider using a thread to calculate one of the digests when the files are large; it's fairly slow ! - * - * @author Kristian Rosenvold - */ -//TODO: Think about this class if we could use the ChecksumUtils class of -// aether-util ? I think we need to go via reflection. -// -class DualDigester -{ - private final MessageDigest md5 = getDigester( "MD5" ); - - private final MessageDigest sh1 = getDigester( "SHA-1" ); - - private static final int BUFSIZE = 65536 * 2; - - private final byte[] buffer = new byte[BUFSIZE]; - - static MessageDigest getDigester( String algorithm ) - { - try - { - return MessageDigest.getInstance( algorithm ); - } - catch ( NoSuchAlgorithmException e ) - { - throw new RuntimeException( "Unable to initialize digest " + algorithm + " : " + e.getMessage() ); - } - } - - public void calculate( File file ) throws IOException - { - FileInputStream fis = null; - - try - { - fis = new FileInputStream( file ); - calculate( fis ); - fis.close(); - fis = null; - } - catch ( IOException e ) - { - throw new IOException( "Failed to calculate digest checksum for " + file, e ); - } - finally - { - IOUtil.close( fis ); - } - } - - void calculate( InputStream stream ) - throws IOException - { - md5.reset(); - sh1.reset(); - update( stream ); - } - - public String getMd5() - { - return Hex.encodeHexString( md5.digest() ); - } - - public String getSha1() - { - return Hex.encodeHexString( sh1.digest() ); - } - - private void update( InputStream is ) - throws IOException - { - int size = is.read( buffer, 0, BUFSIZE ); - while ( size >= 0 ) - { - md5.update( buffer, 0, size ); - sh1.update( buffer, 0, size ); - size = is.read( buffer, 0, BUFSIZE ); - } - } -}