This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a commit to branch MRESOLVER-46
in repository https://gitbox.apache.org/repos/asf/maven-resolver.git


The following commit(s) were added to refs/heads/MRESOLVER-46 by this push:
     new 33f4a64  [MRESOLVER-46] Apply review comments
33f4a64 is described below

commit 33f4a64b6393a042f34e900b029fb05dcd280681
Author: rfscholte <rfscho...@apache.org>
AuthorDate: Fri Sep 28 13:14:53 2018 +0200

    [MRESOLVER-46] Apply review comments
---
 .../aether/transform/FileTransformerManager.java     | 17 ++++++++++++-----
 .../connector/basic/BasicRepositoryConnector.java    | 20 +++++++++++++++++---
 .../aether/internal/impl/DefaultInstaller.java       |  8 +++++---
 .../aether/internal/impl/DefaultDeployerTest.java    | 13 +++++++------
 .../aether/internal/impl/DefaultInstallerTest.java   | 15 +++++++++------
 .../internal/impl/StubFileTransformerManager.java    |  2 +-
 .../eclipse/aether/spi/connector/ArtifactUpload.java |  6 +++++-
 7 files changed, 56 insertions(+), 25 deletions(-)

diff --git 
a/maven-resolver-api/src/main/java/org/eclipse/aether/transform/FileTransformerManager.java
 
b/maven-resolver-api/src/main/java/org/eclipse/aether/transform/FileTransformerManager.java
index 753a739..9eaec01 100644
--- 
a/maven-resolver-api/src/main/java/org/eclipse/aether/transform/FileTransformerManager.java
+++ 
b/maven-resolver-api/src/main/java/org/eclipse/aether/transform/FileTransformerManager.java
@@ -32,11 +32,18 @@ import org.eclipse.aether.artifact.Artifact;
 public interface FileTransformerManager
 {
     /**
-     * All transformers for this specific artifact. Be aware that if you want 
to create additional files, but also want to the original
-     * to be deployed, you must add an explicit transformer for that file too 
(one that doesn't transform the artifact and data).
-     *  
-     * @param artifact
-     * @return
+     * <p>
+     * All transformers for this specific artifact. Be aware that if you want 
to create additional files, but also want
+     * to the original to be deployed, you must add an explicit transformer 
for that file too (one that doesn't
+     * transform the artifact and data).
+     * </p>
+     * 
+     * <p><strong>IMPORTANT</strong> When using a fileTransformer, the content 
of the file is stored in memory to ensure
+     * that file content and checksums stay in sync!
+     * </p>
+     * 
+     * @param artifact the artifact
+     * @return a collection of FileTransformers to apply on the artifact, 
never {@code null}
      */
     Collection<FileTransformer> getTransformersForArtifact( Artifact artifact 
);
 }
diff --git 
a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java
 
b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java
index 968581f..d15f80c 100644
--- 
a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java
+++ 
b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java
@@ -24,6 +24,7 @@ import static java.util.Objects.requireNonNull;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 import java.net.URI;
 import java.util.Collection;
 import java.util.Collections;
@@ -508,6 +509,16 @@ final class BasicRepositoryConnector
             this( path, file, null, checksums, listener );
         }
 
+        /**
+         * <strong>IMPORTANT</strong> When using a fileTransformer, the 
content of the file is stored in memory to 
+         * ensure that file content and checksums stay in sync!
+         * 
+         * @param path
+         * @param file
+         * @param fileTransformer
+         * @param checksums
+         * @param listener
+         */
         PutTaskRunner( URI path, File file, FileTransformer fileTransformer, 
List<RepositoryLayout.Checksum> checksums,
                               TransferTransportListener<?> listener )
         {
@@ -525,10 +536,13 @@ final class BasicRepositoryConnector
                 // transform data once to byte array, ensure constant data for 
checksum
                 ByteArrayOutputStream baos = new ByteArrayOutputStream();
                 byte[] buffer = new byte[1024];
-                for ( int read; ( read =
-                    fileTransformer.transformData( file ).read( buffer, 0, 
buffer.length ) ) != -1; )
+                
+                try ( InputStream transformData = 
fileTransformer.transformData( file ) )
                 {
-                    baos.write( buffer, 0, read );
+                    for ( int read; ( read = transformData.read( buffer, 0, 
buffer.length ) ) != -1; )
+                    {
+                        baos.write( buffer, 0, read );
+                    }
                 }
 
                 byte[] bytes = baos.toByteArray();
diff --git 
a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultInstaller.java
 
b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultInstaller.java
index 2bd34fb..e4c998a 100644
--- 
a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultInstaller.java
+++ 
b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultInstaller.java
@@ -289,9 +289,11 @@ public class DefaultInstaller
             }
             else if ( fileTransformer != null ) 
             {
-                InputStream is = fileTransformer.transformData( srcFile );
-                fileProcessor.write( dstFile, is );
-                dstFile.setLastModified( srcFile.lastModified() );
+                try ( InputStream is = fileTransformer.transformData( srcFile 
) )
+                {
+                    fileProcessor.write( dstFile, is );
+                    dstFile.setLastModified( srcFile.lastModified() );
+                }
             }
             else
             {
diff --git 
a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultDeployerTest.java
 
b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultDeployerTest.java
index be47aad..fa7dc42 100644
--- 
a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultDeployerTest.java
+++ 
b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultDeployerTest.java
@@ -19,13 +19,16 @@ package org.eclipse.aether.internal.impl;
  * under the License.
  */
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
 
 import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
-import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
@@ -40,7 +43,6 @@ import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.artifact.DefaultArtifact;
 import org.eclipse.aether.deployment.DeployRequest;
 import org.eclipse.aether.deployment.DeploymentException;
-import org.eclipse.aether.internal.impl.DefaultDeployer;
 import org.eclipse.aether.internal.test.util.TestFileProcessor;
 import org.eclipse.aether.internal.test.util.TestFileUtils;
 import org.eclipse.aether.internal.test.util.TestUtils;
@@ -395,9 +397,8 @@ public class DefaultDeployerTest
         {
             @Override
             public InputStream transformData( File file )
-                throws IOException
             {
-                return new ByteArrayInputStream( "transformed data".getBytes( 
Charset.forName( "UTF-8" ) ) );
+                return new ByteArrayInputStream( "transformed data".getBytes( 
StandardCharsets.UTF_8 ) );
             }
             
             @Override
@@ -408,7 +409,7 @@ public class DefaultDeployerTest
         };
         
         StubFileTransformerManager fileTransformerManager = new 
StubFileTransformerManager();
-        fileTransformerManager.addFileTransformer( transformer, "jar" );
+        fileTransformerManager.addFileTransformer( "jar", transformer );
         session.setFileTransformerManager( fileTransformerManager );
         
         request = new DeployRequest();
diff --git 
a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultInstallerTest.java
 
b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultInstallerTest.java
index df87e1a..68a3547 100644
--- 
a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultInstallerTest.java
+++ 
b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultInstallerTest.java
@@ -19,7 +19,12 @@ package org.eclipse.aether.internal.impl;
  * under the License.
  */
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
 import java.io.BufferedReader;
 import java.io.ByteArrayInputStream;
@@ -27,7 +32,7 @@ import java.io.File;
 import java.io.FileReader;
 import java.io.IOException;
 import java.io.InputStream;
-import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 import java.util.List;
 
 import org.eclipse.aether.DefaultRepositorySystemSession;
@@ -38,8 +43,6 @@ import org.eclipse.aether.artifact.DefaultArtifact;
 import org.eclipse.aether.installation.InstallRequest;
 import org.eclipse.aether.installation.InstallResult;
 import org.eclipse.aether.installation.InstallationException;
-import org.eclipse.aether.internal.impl.DefaultFileProcessor;
-import org.eclipse.aether.internal.impl.DefaultInstaller;
 import org.eclipse.aether.internal.test.util.TestFileProcessor;
 import org.eclipse.aether.internal.test.util.TestFileUtils;
 import org.eclipse.aether.internal.test.util.TestLocalRepositoryManager;
@@ -428,7 +431,7 @@ public class DefaultInstallerTest
             public InputStream transformData( File file )
                 throws IOException
             {
-                return new ByteArrayInputStream( "transformed data".getBytes( 
Charset.forName( "UTF-8" ) ) );
+                return new ByteArrayInputStream( "transformed data".getBytes( 
StandardCharsets.UTF_8 ) );
             }
             
             @Override
@@ -439,7 +442,7 @@ public class DefaultInstallerTest
         };
         
         StubFileTransformerManager fileTransformerManager = new 
StubFileTransformerManager();
-        fileTransformerManager.addFileTransformer( transformer, "jar" );
+        fileTransformerManager.addFileTransformer( "jar", transformer );
         session.setFileTransformerManager( fileTransformerManager );
         
         request = new InstallRequest();
diff --git 
a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/StubFileTransformerManager.java
 
b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/StubFileTransformerManager.java
index cafb52e..a079a2a 100644
--- 
a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/StubFileTransformerManager.java
+++ 
b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/StubFileTransformerManager.java
@@ -38,7 +38,7 @@ public class StubFileTransformerManager implements 
FileTransformerManager
         return fileTransformers.get( artifact.getExtension() );
     }
     
-    public void addFileTransformer( FileTransformer fileTransformer, String 
extension )
+    public void addFileTransformer( String extension, FileTransformer 
fileTransformer )
     {
         if ( !fileTransformers.containsKey( extension ) )
         {
diff --git 
a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/ArtifactUpload.java
 
b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/ArtifactUpload.java
index baea84a..90323b1 100644
--- 
a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/ArtifactUpload.java
+++ 
b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/ArtifactUpload.java
@@ -57,7 +57,11 @@ public final class ArtifactUpload
     }
 
     /**
-     * Creates a new upload with the specified properties.
+     * <p>Creates a new upload with the specified properties.</p> 
+     * 
+     * <p><strong>IMPORTANT</strong> When using a fileTransformer, the
+     * content of the file is stored in memory to ensure that file content and 
checksums stay in sync!
+     * </p>
      * 
      * @param artifact The artifact to upload, may be {@code null}.
      * @param file The local file to upload the artifact from, may be {@code 
null}.

Reply via email to