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

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


The following commit(s) were added to refs/heads/master by this push:
     new c6b8a728 [MRESOLVER-338] Drop FileTransform API (#337)
c6b8a728 is described below

commit c6b8a728727220a4362b45e50317deb40562c0bc
Author: Tamas Cservenak <ta...@cservenak.net>
AuthorDate: Sat Oct 14 15:28:02 2023 +0200

    [MRESOLVER-338] Drop FileTransform API (#337)
    
    To streamline logic all way down to transport and remove OOM prone code.
    
    Note: japicmp config was added, as we did a mistake, we deprecated types, 
but not related methods, so without these japicm would fail the build due 
breakages.
    
    ---
    
    https://issues.apache.org/jira/browse/MRESOLVER-338
---
 .../AbstractForwardingRepositorySystemSession.java |  6 --
 .../aether/DefaultRepositorySystemSession.java     | 31 -----------
 .../eclipse/aether/RepositorySystemSession.java    | 11 ----
 .../eclipse/aether/transform/FileTransformer.java  | 54 ------------------
 .../aether/transform/FileTransformerManager.java   | 50 -----------------
 .../aether/transform/TransformException.java       | 64 ----------------------
 .../connector/basic/BasicRepositoryConnector.java  | 48 +---------------
 .../aether/internal/impl/DefaultDeployer.java      | 25 ++-------
 .../aether/internal/impl/DefaultInstaller.java     | 51 +++--------------
 .../aether/internal/impl/DefaultDeployerTest.java  | 32 -----------
 .../aether/internal/impl/DefaultInstallerTest.java | 42 --------------
 .../internal/impl/StubFileTransformerManager.java  | 44 ---------------
 .../aether/spi/connector/ArtifactUpload.java       | 35 +-----------
 pom.xml                                            | 30 +++++++++-
 14 files changed, 44 insertions(+), 479 deletions(-)

diff --git 
a/maven-resolver-api/src/main/java/org/eclipse/aether/AbstractForwardingRepositorySystemSession.java
 
b/maven-resolver-api/src/main/java/org/eclipse/aether/AbstractForwardingRepositorySystemSession.java
index 4583b065..b2d6bd67 100644
--- 
a/maven-resolver-api/src/main/java/org/eclipse/aether/AbstractForwardingRepositorySystemSession.java
+++ 
b/maven-resolver-api/src/main/java/org/eclipse/aether/AbstractForwardingRepositorySystemSession.java
@@ -35,7 +35,6 @@ import org.eclipse.aether.repository.WorkspaceReader;
 import org.eclipse.aether.resolution.ArtifactDescriptorPolicy;
 import org.eclipse.aether.resolution.ResolutionErrorPolicy;
 import org.eclipse.aether.transfer.TransferListener;
-import org.eclipse.aether.transform.FileTransformerManager;
 
 /**
  * A special repository system session to enable decorating or proxying 
another session. To do so, clients have to
@@ -186,9 +185,4 @@ public abstract class 
AbstractForwardingRepositorySystemSession implements Repos
     public RepositoryCache getCache() {
         return getSession().getCache();
     }
-
-    @Override
-    public FileTransformerManager getFileTransformerManager() {
-        return getSession().getFileTransformerManager();
-    }
 }
diff --git 
a/maven-resolver-api/src/main/java/org/eclipse/aether/DefaultRepositorySystemSession.java
 
b/maven-resolver-api/src/main/java/org/eclipse/aether/DefaultRepositorySystemSession.java
index 9738d9a0..6bcf1be7 100644
--- 
a/maven-resolver-api/src/main/java/org/eclipse/aether/DefaultRepositorySystemSession.java
+++ 
b/maven-resolver-api/src/main/java/org/eclipse/aether/DefaultRepositorySystemSession.java
@@ -18,12 +18,10 @@
  */
 package org.eclipse.aether;
 
-import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.artifact.ArtifactType;
 import org.eclipse.aether.artifact.ArtifactTypeRegistry;
 import org.eclipse.aether.collection.DependencyGraphTransformer;
@@ -44,8 +42,6 @@ import org.eclipse.aether.repository.WorkspaceReader;
 import org.eclipse.aether.resolution.ArtifactDescriptorPolicy;
 import org.eclipse.aether.resolution.ResolutionErrorPolicy;
 import org.eclipse.aether.transfer.TransferListener;
-import org.eclipse.aether.transform.FileTransformer;
-import org.eclipse.aether.transform.FileTransformerManager;
 
 import static java.util.Objects.requireNonNull;
 
@@ -77,8 +73,6 @@ public final class DefaultRepositorySystemSession implements 
RepositorySystemSes
 
     private LocalRepositoryManager localRepositoryManager;
 
-    private FileTransformerManager fileTransformerManager;
-
     private WorkspaceReader workspaceReader;
 
     private RepositoryListener repositoryListener;
@@ -135,7 +129,6 @@ public final class DefaultRepositorySystemSession 
implements RepositorySystemSes
         proxySelector = NullProxySelector.INSTANCE;
         authenticationSelector = NullAuthenticationSelector.INSTANCE;
         artifactTypeRegistry = NullArtifactTypeRegistry.INSTANCE;
-        fileTransformerManager = NullFileTransformerManager.INSTANCE;
         data = new DefaultSessionData();
     }
 
@@ -173,7 +166,6 @@ public final class DefaultRepositorySystemSession 
implements RepositorySystemSes
         setDependencySelector(session.getDependencySelector());
         setVersionFilter(session.getVersionFilter());
         setDependencyGraphTransformer(session.getDependencyGraphTransformer());
-        setFileTransformerManager(session.getFileTransformerManager());
         setData(session.getData());
         setCache(session.getCache());
     }
@@ -341,20 +333,6 @@ public final class DefaultRepositorySystemSession 
implements RepositorySystemSes
         return this;
     }
 
-    @Override
-    public FileTransformerManager getFileTransformerManager() {
-        return fileTransformerManager;
-    }
-
-    public DefaultRepositorySystemSession 
setFileTransformerManager(FileTransformerManager fileTransformerManager) {
-        verifyStateForMutation();
-        this.fileTransformerManager = fileTransformerManager;
-        if (this.fileTransformerManager == null) {
-            this.fileTransformerManager = NullFileTransformerManager.INSTANCE;
-        }
-        return this;
-    }
-
     @Override
     public WorkspaceReader getWorkspaceReader() {
         return workspaceReader;
@@ -814,13 +792,4 @@ public final class DefaultRepositorySystemSession 
implements RepositorySystemSes
             return null;
         }
     }
-
-    static final class NullFileTransformerManager implements 
FileTransformerManager {
-        public static final FileTransformerManager INSTANCE = new 
NullFileTransformerManager();
-
-        @Override
-        public Collection<FileTransformer> getTransformersForArtifact(Artifact 
artifact) {
-            return Collections.emptyList();
-        }
-    }
 }
diff --git 
a/maven-resolver-api/src/main/java/org/eclipse/aether/RepositorySystemSession.java
 
b/maven-resolver-api/src/main/java/org/eclipse/aether/RepositorySystemSession.java
index 58116111..66ce8bff 100644
--- 
a/maven-resolver-api/src/main/java/org/eclipse/aether/RepositorySystemSession.java
+++ 
b/maven-resolver-api/src/main/java/org/eclipse/aether/RepositorySystemSession.java
@@ -36,7 +36,6 @@ import org.eclipse.aether.repository.WorkspaceReader;
 import org.eclipse.aether.resolution.ArtifactDescriptorPolicy;
 import org.eclipse.aether.resolution.ResolutionErrorPolicy;
 import org.eclipse.aether.transfer.TransferListener;
-import org.eclipse.aether.transform.FileTransformerManager;
 
 /**
  * Defines settings and components that control the repository system. Once 
initialized, the session object itself is
@@ -270,14 +269,4 @@ public interface RepositorySystemSession {
      * @return The repository cache or {@code null} if none.
      */
     RepositoryCache getCache();
-
-    /**
-     * Get the file transformer manager
-     *
-     * @return the manager, never {@code null}
-     * @deprecated Without any direct replacement for now. This API is 
OOM-prone, and also lacks a lot of context about
-     * transforming.
-     */
-    @Deprecated
-    FileTransformerManager getFileTransformerManager();
 }
diff --git 
a/maven-resolver-api/src/main/java/org/eclipse/aether/transform/FileTransformer.java
 
b/maven-resolver-api/src/main/java/org/eclipse/aether/transform/FileTransformer.java
deleted file mode 100644
index bf45d975..00000000
--- 
a/maven-resolver-api/src/main/java/org/eclipse/aether/transform/FileTransformer.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * 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.
- */
-package org.eclipse.aether.transform;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.aether.artifact.Artifact;
-
-/**
- * Can transform a file while installing/deploying
- *
- * @author Robert Scholte
- * @since 1.3.0
- * @deprecated Without any direct replacement for now. This API is OOM-prone, 
and also lacks a lot of context about
- * transforming.
- */
-@Deprecated
-public interface FileTransformer {
-    /**
-     * Transform the target location
-     *
-     * @param artifact the original artifact
-     * @return the transformed artifact
-     */
-    Artifact transformArtifact(Artifact artifact);
-
-    /**
-     * Transform the data
-     *
-     * @param file the file with the original data
-     * @return the transformed data
-     * @throws IOException If an I/O error occurred
-     * @throws TransformException If the file could not be transformed
-     */
-    InputStream transformData(File file) throws IOException, 
TransformException;
-}
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
deleted file mode 100644
index 7b7c87d7..00000000
--- 
a/maven-resolver-api/src/main/java/org/eclipse/aether/transform/FileTransformerManager.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.
- */
-package org.eclipse.aether.transform;
-
-import java.util.Collection;
-
-import org.eclipse.aether.artifact.Artifact;
-
-/**
- * Manager the FileTransformers
- *
- * @author Robert Scholte
- * @since 1.3.0
- * @deprecated Without any direct replacement for now. This API is OOM-prone, 
and also lacks a lot of context about
- * transforming.
- */
-@Deprecated
-public interface FileTransformerManager {
-    /**
-     * <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-api/src/main/java/org/eclipse/aether/transform/TransformException.java
 
b/maven-resolver-api/src/main/java/org/eclipse/aether/transform/TransformException.java
deleted file mode 100644
index 9e24b1d3..00000000
--- 
a/maven-resolver-api/src/main/java/org/eclipse/aether/transform/TransformException.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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.
- */
-package org.eclipse.aether.transform;
-
-/**
- * Thrown when transformation failed.
- *
- * @deprecated Without any direct replacement for now. This API is OOM-prone, 
and also lacks a lot of context about
- * transforming.
- */
-@Deprecated
-public class TransformException extends Exception {
-
-    /**
-     * Creates a new exception with default detail message.
-     */
-    public TransformException() {
-        super("Transformation failed");
-    }
-
-    /**
-     * Creates a new exception with the specified detail message.
-     *
-     * @param message The detail message, may be {@code null}.
-     */
-    public TransformException(String message) {
-        super(message);
-    }
-
-    /**
-     * Creates a new exception with the specified cause.
-     *
-     * @param cause The exception that caused this one, may be {@code null}.
-     */
-    public TransformException(Throwable cause) {
-        super(cause);
-    }
-
-    /**
-     * Creates a new exception with the specified detail message and cause.
-     *
-     * @param message The detail message, may be {@code null}.
-     * @param cause   The exception that caused this one, may be {@code null}.
-     */
-    public TransformException(String message, Throwable cause) {
-        super(message, cause);
-    }
-}
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 11e9a913..051d679c 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
@@ -18,10 +18,8 @@
  */
 package org.eclipse.aether.connector.basic;
 
-import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.IOException;
-import java.io.InputStream;
 import java.io.UncheckedIOException;
 import java.net.URI;
 import java.util.ArrayList;
@@ -61,7 +59,6 @@ import 
org.eclipse.aether.transfer.NoRepositoryLayoutException;
 import org.eclipse.aether.transfer.NoTransporterException;
 import org.eclipse.aether.transfer.TransferEvent;
 import org.eclipse.aether.transfer.TransferResource;
-import org.eclipse.aether.transform.FileTransformer;
 import org.eclipse.aether.util.ConfigUtils;
 import org.eclipse.aether.util.FileUtils;
 import org.eclipse.aether.util.concurrency.ExecutorUtils;
@@ -291,8 +288,7 @@ final class BasicRepositoryConnector implements 
RepositoryConnector {
             List<RepositoryLayout.ChecksumLocation> checksumLocations =
                     layout.getChecksumLocations(transfer.getArtifact(), true, 
location);
 
-            Runnable task = new PutTaskRunner(
-                    location, transfer.getFile(), 
transfer.getFileTransformer(), checksumLocations, listener);
+            Runnable task = new PutTaskRunner(location, transfer.getFile(), 
checksumLocations, listener);
             if (first) {
                 task.run();
                 first = false;
@@ -509,8 +505,6 @@ final class BasicRepositoryConnector implements 
RepositoryConnector {
 
         private final File file;
 
-        private final FileTransformer fileTransformer;
-
         private final Collection<RepositoryLayout.ChecksumLocation> 
checksumLocations;
 
         PutTaskRunner(
@@ -518,52 +512,16 @@ final class BasicRepositoryConnector implements 
RepositoryConnector {
                 File file,
                 List<RepositoryLayout.ChecksumLocation> checksumLocations,
                 TransferTransportListener<?> listener) {
-            this(path, file, null, checksumLocations, 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 checksumLocations
-         * @param listener
-         */
-        PutTaskRunner(
-                URI path,
-                File file,
-                FileTransformer fileTransformer,
-                List<RepositoryLayout.ChecksumLocation> checksumLocations,
-                TransferTransportListener<?> listener) {
             super(path, listener);
             this.file = requireNonNull(file, "source file cannot be null");
-            this.fileTransformer = fileTransformer;
             this.checksumLocations = safe(checksumLocations);
         }
 
         @SuppressWarnings("checkstyle:innerassignment")
         @Override
         protected void runTask() throws Exception {
-            if (fileTransformer != null) {
-                // transform data once to byte array, ensure constant data for 
checksum
-                ByteArrayOutputStream baos = new ByteArrayOutputStream();
-                byte[] buffer = new byte[1024];
-
-                try (InputStream transformData = 
fileTransformer.transformData(file)) {
-                    for (int read; (read = transformData.read(buffer, 0, 
buffer.length)) != -1; ) {
-                        baos.write(buffer, 0, read);
-                    }
-                }
-
-                byte[] bytes = baos.toByteArray();
-                transporter.put(new 
PutTask(path).setDataBytes(bytes).setListener(listener));
-                uploadChecksums(file, bytes);
-            } else {
-                transporter.put(new 
PutTask(path).setDataFile(file).setListener(listener));
-                uploadChecksums(file, null);
-            }
+            transporter.put(new 
PutTask(path).setDataFile(file).setListener(listener));
+            uploadChecksums(file, null);
         }
 
         /**
diff --git 
a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDeployer.java
 
b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDeployer.java
index e451fa1a..ea415820 100644
--- 
a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDeployer.java
+++ 
b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDeployer.java
@@ -71,8 +71,6 @@ import 
org.eclipse.aether.transfer.NoRepositoryConnectorException;
 import org.eclipse.aether.transfer.RepositoryOfflineException;
 import org.eclipse.aether.transfer.TransferCancelledException;
 import org.eclipse.aether.transfer.TransferEvent;
-import org.eclipse.aether.transform.FileTransformer;
-import org.eclipse.aether.transform.FileTransformerManager;
 
 import static java.util.Objects.requireNonNull;
 
@@ -221,8 +219,6 @@ public class DefaultDeployer implements Deployer, Service {
         try {
             List<? extends MetadataGenerator> generators = 
getMetadataGenerators(session, request);
 
-            FileTransformerManager fileTransformerManager = 
session.getFileTransformerManager();
-
             List<ArtifactUpload> artifactUploads = new ArrayList<>();
             List<MetadataUpload> metadataUploads = new ArrayList<>();
             IdentityHashMap<Metadata, Object> processedMetadata = new 
IdentityHashMap<>();
@@ -249,23 +245,10 @@ public class DefaultDeployer implements Deployer, Service 
{
 
                 iterator.set(artifact);
 
-                Collection<FileTransformer> fileTransformers =
-                        
fileTransformerManager.getTransformersForArtifact(artifact);
-                if (!fileTransformers.isEmpty()) {
-                    for (FileTransformer fileTransformer : fileTransformers) {
-                        Artifact targetArtifact = 
fileTransformer.transformArtifact(artifact);
-
-                        ArtifactUpload upload = new 
ArtifactUpload(targetArtifact, artifact.getFile(), fileTransformer);
-                        upload.setTrace(trace);
-                        upload.setListener(new 
ArtifactUploadListener(catapult, upload));
-                        artifactUploads.add(upload);
-                    }
-                } else {
-                    ArtifactUpload upload = new ArtifactUpload(artifact, 
artifact.getFile());
-                    upload.setTrace(trace);
-                    upload.setListener(new ArtifactUploadListener(catapult, 
upload));
-                    artifactUploads.add(upload);
-                }
+                ArtifactUpload upload = new ArtifactUpload(artifact, 
artifact.getFile());
+                upload.setTrace(trace);
+                upload.setListener(new ArtifactUploadListener(catapult, 
upload));
+                artifactUploads.add(upload);
             }
 
             connector.put(artifactUploads, null);
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 c30f75a2..84297566 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
@@ -23,7 +23,6 @@ import javax.inject.Named;
 import javax.inject.Singleton;
 
 import java.io.File;
-import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.IdentityHashMap;
@@ -53,7 +52,6 @@ import org.eclipse.aether.spi.io.FileProcessor;
 import org.eclipse.aether.spi.locator.Service;
 import org.eclipse.aether.spi.locator.ServiceLocator;
 import org.eclipse.aether.spi.synccontext.SyncContextFactory;
-import org.eclipse.aether.transform.FileTransformer;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -211,39 +209,11 @@ public class DefaultInstaller implements Installer, 
Service {
 
     private void install(RepositorySystemSession session, RequestTrace trace, 
Artifact artifact)
             throws InstallationException {
-        LocalRepositoryManager lrm = session.getLocalRepositoryManager();
+        final LocalRepositoryManager lrm = session.getLocalRepositoryManager();
+        final File srcFile = artifact.getFile();
+        final File dstFile = new File(lrm.getRepository().getBasedir(), 
lrm.getPathForLocalArtifact(artifact));
 
-        File srcFile = artifact.getFile();
-
-        Collection<FileTransformer> fileTransformers =
-                
session.getFileTransformerManager().getTransformersForArtifact(artifact);
-        if (fileTransformers.isEmpty()) {
-            install(session, trace, artifact, lrm, srcFile, null);
-        } else {
-            for (FileTransformer fileTransformer : fileTransformers) {
-                install(session, trace, artifact, lrm, srcFile, 
fileTransformer);
-            }
-        }
-    }
-
-    private void install(
-            RepositorySystemSession session,
-            RequestTrace trace,
-            Artifact artifact,
-            LocalRepositoryManager lrm,
-            File srcFile,
-            FileTransformer fileTransformer)
-            throws InstallationException {
-        final Artifact targetArtifact;
-        if (fileTransformer != null) {
-            targetArtifact = fileTransformer.transformArtifact(artifact);
-        } else {
-            targetArtifact = artifact;
-        }
-
-        File dstFile = new File(lrm.getRepository().getBasedir(), 
lrm.getPathForLocalArtifact(targetArtifact));
-
-        artifactInstalling(session, trace, targetArtifact, dstFile);
+        artifactInstalling(session, trace, artifact, dstFile);
 
         Exception exception = null;
         try {
@@ -251,29 +221,24 @@ public class DefaultInstaller implements Installer, 
Service {
                 throw new IllegalStateException("cannot install " + dstFile + 
" to same path");
             }
 
-            boolean copy = "pom".equals(targetArtifact.getExtension())
+            boolean copy = "pom".equals(artifact.getExtension())
                     || srcFile.lastModified() != dstFile.lastModified()
                     || srcFile.length() != dstFile.length()
                     || !srcFile.exists();
 
             if (!copy) {
                 LOGGER.debug("Skipped re-installing {} to {}, seems 
unchanged", srcFile, dstFile);
-            } else if (fileTransformer != null) {
-                try (InputStream is = fileTransformer.transformData(srcFile)) {
-                    fileProcessor.write(dstFile, is);
-                    dstFile.setLastModified(srcFile.lastModified());
-                }
             } else {
                 fileProcessor.copy(srcFile, dstFile);
                 dstFile.setLastModified(srcFile.lastModified());
             }
 
-            lrm.add(session, new LocalArtifactRegistration(targetArtifact));
+            lrm.add(session, new LocalArtifactRegistration(artifact));
         } catch (Exception e) {
             exception = e;
-            throw new InstallationException("Failed to install artifact " + 
targetArtifact + ": " + e.getMessage(), e);
+            throw new InstallationException("Failed to install artifact " + 
artifact + ": " + e.getMessage(), e);
         } finally {
-            artifactInstalled(session, trace, targetArtifact, dstFile, 
exception);
+            artifactInstalled(session, trace, artifact, dstFile, exception);
         }
     }
 
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 499f3107..aa739fe5 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
@@ -18,11 +18,8 @@
  */
 package org.eclipse.aether.internal.impl;
 
-import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.IOException;
-import java.io.InputStream;
-import java.nio.charset.StandardCharsets;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
@@ -51,8 +48,6 @@ import org.eclipse.aether.spi.connector.MetadataDownload;
 import org.eclipse.aether.spi.connector.MetadataUpload;
 import org.eclipse.aether.spi.connector.RepositoryConnector;
 import org.eclipse.aether.transfer.MetadataNotFoundException;
-import org.eclipse.aether.transform.FileTransformer;
-import org.eclipse.aether.util.artifact.SubArtifact;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -339,31 +334,4 @@ public class DefaultDeployerTest {
         TestFileUtils.readProps(metadataFile, props);
         assertNull(props.toString(), props.get("old"));
     }
-
-    @Test
-    public void testFileTransformer() throws Exception {
-        final Artifact transformedArtifact = new SubArtifact(artifact, null, 
"raj");
-        FileTransformer transformer = new FileTransformer() {
-            @Override
-            public InputStream transformData(File file) {
-                return new ByteArrayInputStream("transformed 
data".getBytes(StandardCharsets.UTF_8));
-            }
-
-            @Override
-            public Artifact transformArtifact(Artifact artifact) {
-                return transformedArtifact;
-            }
-        };
-
-        StubFileTransformerManager fileTransformerManager = new 
StubFileTransformerManager();
-        fileTransformerManager.addFileTransformer("jar", transformer);
-        session.setFileTransformerManager(fileTransformerManager);
-
-        request = new DeployRequest();
-        request.addArtifact(artifact);
-        deployer.deploy(session, request);
-
-        Artifact putArtifact = connector.getActualArtifactPutRequests().get(0);
-        assertEquals(transformedArtifact, putArtifact);
-    }
 }
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 9313c692..f923388b 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
@@ -18,13 +18,8 @@
  */
 package org.eclipse.aether.internal.impl;
 
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
 import java.io.File;
-import java.io.FileReader;
 import java.io.IOException;
-import java.io.InputStream;
-import java.nio.charset.StandardCharsets;
 import java.util.List;
 
 import org.eclipse.aether.DefaultRepositorySystemSession;
@@ -42,8 +37,6 @@ import org.eclipse.aether.internal.test.util.TestUtils;
 import org.eclipse.aether.metadata.DefaultMetadata;
 import org.eclipse.aether.metadata.Metadata;
 import org.eclipse.aether.metadata.Metadata.Nature;
-import org.eclipse.aether.transform.FileTransformer;
-import org.eclipse.aether.util.artifact.SubArtifact;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -376,39 +369,4 @@ public class DefaultInstallerTest {
                 artifact.getFile().lastModified(),
                 localArtifactFile.lastModified());
     }
-
-    @Test
-    public void testFileTransformer() throws Exception {
-        final Artifact transformedArtifact = new SubArtifact(artifact, null, 
"raj");
-        FileTransformer transformer = new FileTransformer() {
-            @Override
-            public InputStream transformData(File file) {
-                return new ByteArrayInputStream("transformed 
data".getBytes(StandardCharsets.UTF_8));
-            }
-
-            @Override
-            public Artifact transformArtifact(Artifact artifact) {
-                return transformedArtifact;
-            }
-        };
-
-        StubFileTransformerManager fileTransformerManager = new 
StubFileTransformerManager();
-        fileTransformerManager.addFileTransformer("jar", transformer);
-        session.setFileTransformerManager(fileTransformerManager);
-
-        request = new InstallRequest();
-        request.addArtifact(artifact);
-        installer.install(session, request);
-
-        assertFalse(localArtifactFile.exists());
-
-        String transformedArtifactPath =
-                
session.getLocalRepositoryManager().getPathForLocalArtifact(transformedArtifact);
-        File transformedArtifactFile = new 
File(session.getLocalRepository().getBasedir(), transformedArtifactPath);
-        assertTrue(transformedArtifactFile.exists());
-
-        try (BufferedReader r = new BufferedReader(new 
FileReader(transformedArtifactFile))) {
-            assertEquals("transformed data", r.readLine());
-        }
-    }
 }
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
deleted file mode 100644
index 808f6053..00000000
--- 
a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/StubFileTransformerManager.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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.
- */
-package org.eclipse.aether.internal.impl;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.transform.FileTransformer;
-import org.eclipse.aether.transform.FileTransformerManager;
-
-public class StubFileTransformerManager implements FileTransformerManager {
-    private Map<String, Collection<FileTransformer>> fileTransformers = new 
HashMap<>();
-
-    @Override
-    public Collection<FileTransformer> getTransformersForArtifact(Artifact 
artifact) {
-        return fileTransformers.get(artifact.getExtension());
-    }
-
-    public void addFileTransformer(String extension, FileTransformer 
fileTransformer) {
-        if (!fileTransformers.containsKey(extension)) {
-            fileTransformers.put(extension, new HashSet<>());
-        }
-        fileTransformers.get(extension).add(fileTransformer);
-    }
-}
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 8c1fa795..81530621 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
@@ -24,15 +24,12 @@ import org.eclipse.aether.RequestTrace;
 import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.transfer.ArtifactTransferException;
 import org.eclipse.aether.transfer.TransferListener;
-import org.eclipse.aether.transform.FileTransformer;
 
 /**
  * An upload of an artifact to a remote repository. A repository connector 
processing this upload has to use
  * {@link #setException(ArtifactTransferException)} to report the results of 
the transfer.
  */
 public final class ArtifactUpload extends ArtifactTransfer {
-    private FileTransformer fileTransformer;
-
     /**
      * Creates a new uninitialized upload.
      */
@@ -51,23 +48,6 @@ public final class ArtifactUpload extends ArtifactTransfer {
         setFile(file);
     }
 
-    /**
-     * <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}.
-     * @param fileTransformer The file transformer, may be {@code null}.
-     */
-    public ArtifactUpload(Artifact artifact, File file, FileTransformer 
fileTransformer) {
-        setArtifact(artifact);
-        setFile(file);
-        setFileTransformer(fileTransformer);
-    }
-
     @Override
     public ArtifactUpload setArtifact(Artifact artifact) {
         super.setArtifact(artifact);
@@ -98,21 +78,8 @@ public final class ArtifactUpload extends ArtifactTransfer {
         return this;
     }
 
-    public ArtifactUpload setFileTransformer(FileTransformer fileTransformer) {
-        this.fileTransformer = fileTransformer;
-        return this;
-    }
-
-    public FileTransformer getFileTransformer() {
-        return fileTransformer;
-    }
-
     @Override
     public String toString() {
-        if (getFileTransformer() != null) {
-            return getArtifact() + " >>> " + 
getFileTransformer().transformArtifact(getArtifact()) + " - " + getFile();
-        } else {
-            return getArtifact() + " - " + getFile();
-        }
+        return getArtifact() + " - " + getFile();
     }
 }
diff --git a/pom.xml b/pom.xml
index ea95b910..dc18e3ce 100644
--- a/pom.xml
+++ b/pom.xml
@@ -244,14 +244,14 @@
         <plugin>
           <groupId>com.github.siom79.japicmp</groupId>
           <artifactId>japicmp-maven-plugin</artifactId>
-          <version>0.17.2</version>
+          <version>0.18.1</version>
           <configuration>
             <oldVersion>
               <!-- We compare same module against 1.8.0 set as "baseline" -->
               <dependency>
                 <groupId>${project.groupId}</groupId>
                 <artifactId>${project.artifactId}</artifactId>
-                <version>1.8.0</version>
+                <version>1.9.16</version>
                 <type>${project.packaging}</type>
               </dependency>
             </oldVersion>
@@ -285,7 +285,19 @@
                     
<exclude>org.eclipse.aether.spi.connector.checksum.ChecksumPolicyProvider</exclude>
                     
<exclude>org.eclipse.aether.spi.connector.layout.RepositoryLayoutProvider</exclude>
                     
<exclude>org.eclipse.aether.spi.connector.transport.TransporterProvider</exclude>
+                    <!-- MRESOLVER-338 (Attention: we made a mistake, by 
deprecating type, but not related methods) -->
+                    
<exclude>org.eclipse.aether.RepositorySystemSession#getFileTransformerManager()</exclude>
+                    
<exclude>org.eclipse.aether.DefaultRepositorySystemSession#getFileTransformerManager()</exclude>
+                    
<exclude>org.eclipse.aether.DefaultRepositorySystemSession#setFileTransformerManager(org.eclipse.aether.transform.FileTransformerManager)</exclude>
+                    
<exclude>org.eclipse.aether.AbstractForwardingRepositorySystemSession#getFileTransformerManager()</exclude>
+                    
<exclude>org.eclipse.aether.transform.TransformException</exclude>
+                    
<exclude>org.eclipse.aether.transform.FileTransformer</exclude>
+                    
<exclude>org.eclipse.aether.transform.FileTransformerManager</exclude>
+                    
<exclude>org.eclipse.aether.spi.connector.ArtifactUpload#getFileTransformer()</exclude>
+                    
<exclude>org.eclipse.aether.spi.connector.ArtifactUpload#setFileTransformer(org.eclipse.aether.transform.FileTransformer)</exclude>
+                    
<exclude>org.eclipse.aether.spi.connector.ArtifactUpload#ArtifactUpload(org.eclipse.aether.artifact.Artifact,java.io.File,org.eclipse.aether.transform.FileTransformer)</exclude>
                   </excludes>
+                  <ignoreMissingClasses>true</ignoreMissingClasses>
                   
<breakBuildOnBinaryIncompatibleModifications>false</breakBuildOnBinaryIncompatibleModifications>
                   
<breakBuildOnSourceIncompatibleModifications>true</breakBuildOnSourceIncompatibleModifications>
                 </parameter>
@@ -299,6 +311,20 @@
               <phase>verify</phase>
               <configuration>
                 <parameter>
+                  <excludes>
+                    <!-- MRESOLVER-338 (Attention: we made a mistake, by 
deprecating type, but not related methods) -->
+                    
<exclude>org.eclipse.aether.RepositorySystemSession#getFileTransformerManager()</exclude>
+                    
<exclude>org.eclipse.aether.DefaultRepositorySystemSession#getFileTransformerManager()</exclude>
+                    
<exclude>org.eclipse.aether.DefaultRepositorySystemSession#setFileTransformerManager(org.eclipse.aether.transform.FileTransformerManager)</exclude>
+                    
<exclude>org.eclipse.aether.AbstractForwardingRepositorySystemSession#getFileTransformerManager()</exclude>
+                    
<exclude>org.eclipse.aether.transform.TransformException</exclude>
+                    
<exclude>org.eclipse.aether.transform.FileTransformer</exclude>
+                    
<exclude>org.eclipse.aether.transform.FileTransformerManager</exclude>
+                    
<exclude>org.eclipse.aether.spi.connector.ArtifactUpload#getFileTransformer()</exclude>
+                    
<exclude>org.eclipse.aether.spi.connector.ArtifactUpload#setFileTransformer(org.eclipse.aether.transform.FileTransformer)</exclude>
+                    
<exclude>org.eclipse.aether.spi.connector.ArtifactUpload#ArtifactUpload(org.eclipse.aether.artifact.Artifact,java.io.File,org.eclipse.aether.transform.FileTransformer)</exclude>
+                  </excludes>
+                  <ignoreMissingClasses>true</ignoreMissingClasses>
                   
<breakBuildOnBinaryIncompatibleModifications>true</breakBuildOnBinaryIncompatibleModifications>
                   
<breakBuildOnSourceIncompatibleModifications>false</breakBuildOnSourceIncompatibleModifications>
                 </parameter>


Reply via email to