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

cstamas pushed a commit to branch MDEPLOY-313-take2
in repository https://gitbox.apache.org/repos/asf/maven-deploy-plugin.git

commit 6d136a7e06d465ec4d100515d0971e18eae93e07
Author: Tamas Cservenak <[email protected]>
AuthorDate: Fri Jan 12 09:53:51 2024 +0100

    [MDEPLOY-313] Update to parent 41, cleanup
    
    In general perform a cleanup of plugin, apply updates,
    where needed. The plugin now builds against latest 3.9.x
    and minimum is lifted to 3.6.3.
    
    ---
    
    https://issues.apache.org/jira/browse/MDEPLOY-313
---
 pom.xml                                            | 58 +++++++++-----
 .../verify.groovy                                  |  4 +-
 .../maven/plugins/deploy/DeployFileMojo.java       | 27 ++-----
 .../maven/plugins/deploy/DeployFileMojoTest.java   | 16 ++--
 .../maven/plugins/deploy/DeployMojoTest.java       | 90 ++++------------------
 5 files changed, 70 insertions(+), 125 deletions(-)

diff --git a/pom.xml b/pom.xml
index fc75b7c..d831b1e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@ under the License.
   <parent>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-plugins</artifactId>
-    <version>39</version>
+    <version>41</version>
     <relativePath />
   </parent>
 
@@ -43,7 +43,7 @@ under the License.
   </contributors>
 
   <prerequisites>
-    <maven>${mavenVersion}</maven>
+    <maven>3.6.3</maven>
   </prerequisites>
 
   <scm>
@@ -69,23 +69,23 @@ under the License.
 
   <properties>
     <javaVersion>8</javaVersion>
-    <mavenVersion>3.2.5</mavenVersion>
+    <mavenVersion>3.9.6</mavenVersion>
     <!-- Keep in sync with resolver used in maven above -->
-    <slf4jVersion>1.7.5</slf4jVersion>
+    <slf4jVersion>1.7.36</slf4jVersion>
     <!-- Keep in sync with resolver used in maven above -->
-    <resolverVersion>1.0.0.v20140518</resolverVersion>
+    <resolverVersion>1.9.18</resolverVersion>
 
     <!-- plugins version used in IT tests -->
     <mavenAntrunPluginVersion>3.1.0</mavenAntrunPluginVersion>
-    <mavenCompilerPluginVersion>3.10.1</mavenCompilerPluginVersion>
-    <mavenEnforcerPluginVersion>3.1.0</mavenEnforcerPluginVersion>
-    <mavenInstallPluginVersion>3.1.0</mavenInstallPluginVersion>
+    <mavenCompilerPluginVersion>3.12.1</mavenCompilerPluginVersion>
+    <mavenEnforcerPluginVersion>3.4.1</mavenEnforcerPluginVersion>
+    <mavenInstallPluginVersion>3.1.1</mavenInstallPluginVersion>
     <mavenJarPluginVersion>3.3.0</mavenJarPluginVersion>
     <mavenJavadocPluginVersion>3.4.1</mavenJavadocPluginVersion>
     
<mavenPluginToolsVersion>${maven.plugin.tools.version}</mavenPluginToolsVersion>
     <mavenResourcesPluginVersion>3.3.0</mavenResourcesPluginVersion>
     <mavenSourcePluginVersion>3.2.1</mavenSourcePluginVersion>
-    
<mavenSurefirePluginVersion>${surefire.version}</mavenSurefirePluginVersion>
+    <mavenSurefirePluginVersion>3.2.5</mavenSurefirePluginVersion>
     <mavenWarPluginVersion>3.3.2</mavenWarPluginVersion>
 
     
<project.build.outputTimestamp>2023-03-21T14:38:01Z</project.build.outputTimestamp>
@@ -128,14 +128,18 @@ under the License.
       <artifactId>plexus-utils</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.eclipse.aether</groupId>
-      <artifactId>aether-api</artifactId>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-xml</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.resolver</groupId>
+      <artifactId>maven-resolver-api</artifactId>
       <version>${resolverVersion}</version>
       <scope>provided</scope>
     </dependency>
     <dependency>
-      <groupId>org.eclipse.aether</groupId>
-      <artifactId>aether-util</artifactId>
+      <groupId>org.apache.maven.resolver</groupId>
+      <artifactId>maven-resolver-util</artifactId>
       <version>${resolverVersion}</version>
       <!-- To work in Maven versions older than 3.9.0 -->
       <scope>compile</scope>
@@ -164,25 +168,25 @@ under the License.
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
-      <artifactId>maven-aether-provider</artifactId>
+      <artifactId>maven-resolver-provider</artifactId>
       <version>${mavenVersion}</version>
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>org.eclipse.aether</groupId>
-      <artifactId>aether-connector-basic</artifactId>
+      <groupId>org.apache.maven.resolver</groupId>
+      <artifactId>maven-resolver-connector-basic</artifactId>
       <version>${resolverVersion}</version>
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>org.eclipse.aether</groupId>
-      <artifactId>aether-transport-file</artifactId>
+      <groupId>org.apache.maven.resolver</groupId>
+      <artifactId>maven-resolver-transport-file</artifactId>
       <version>${resolverVersion}</version>
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>org.eclipse.aether</groupId>
-      <artifactId>aether-transport-http</artifactId>
+      <groupId>org.apache.maven.resolver</groupId>
+      <artifactId>maven-resolver-transport-http</artifactId>
       <version>${resolverVersion}</version>
       <scope>test</scope>
     </dependency>
@@ -204,9 +208,21 @@ under the License.
       <version>${slf4jVersion}</version>
       <scope>test</scope>
     </dependency>
-
   </dependencies>
 
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <proc>none</proc>
+          <showDeprecation>true</showDeprecation>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
   <profiles>
     <profile>
       <id>run-its</id>
diff --git a/src/it/MDEPLOY-178_deployfile-with-embedded-pom/verify.groovy 
b/src/it/MDEPLOY-178_deployfile-with-embedded-pom/verify.groovy
index 2b197b2..181104a 100644
--- a/src/it/MDEPLOY-178_deployfile-with-embedded-pom/verify.groovy
+++ b/src/it/MDEPLOY-178_deployfile-with-embedded-pom/verify.groovy
@@ -25,5 +25,5 @@ File buildLog = new File( basedir, 'build.log' )
 assert buildLog.exists()
 assert buildLog.text.contains( "[DEBUG] Using 
META-INF/maven/org.apache.maven.plugins.deploy.its/mdeploy178/pom.xml as 
pomFile" )
 
-def pomProject = new XmlSlurper().parse( deployedPom )
-assert "https://issues.apache.org/jira/browse/MDEPLOY-178".equals( 
pomProject.url.text() )
\ No newline at end of file
+def pomProject = new groovy.xml.XmlParser().parse( deployedPom )
+assert "https://issues.apache.org/jira/browse/MDEPLOY-178".equals( 
pomProject.get("url").text() )
\ No newline at end of file
diff --git a/src/main/java/org/apache/maven/plugins/deploy/DeployFileMojo.java 
b/src/main/java/org/apache/maven/plugins/deploy/DeployFileMojo.java
index aeaf5f7..7e6536f 100644
--- a/src/main/java/org/apache/maven/plugins/deploy/DeployFileMojo.java
+++ b/src/main/java/org/apache/maven/plugins/deploy/DeployFileMojo.java
@@ -43,9 +43,9 @@ import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.IOUtil;
-import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.StringUtils;
-import org.codehaus.plexus.util.WriterFactory;
+import org.codehaus.plexus.util.xml.ReaderFactory;
+import org.codehaus.plexus.util.xml.WriterFactory;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.artifact.Artifact;
@@ -429,21 +429,14 @@ public class DeployFileMojo extends AbstractDeployMojo {
      * @throws MojoExecutionException If the file doesn't exist or cannot be 
read.
      */
     Model readModel(File pomFile) throws MojoExecutionException {
-        Reader reader = null;
-        try {
-            reader = ReaderFactory.newXmlReader(pomFile);
-            final Model model = new MavenXpp3Reader().read(reader);
-            reader.close();
-            reader = null;
-            return model;
+        try (Reader reader = ReaderFactory.newXmlReader(pomFile)) {
+            return new MavenXpp3Reader().read(reader);
         } catch (FileNotFoundException e) {
             throw new MojoExecutionException("POM not found " + pomFile, e);
         } catch (IOException e) {
             throw new MojoExecutionException("Error reading POM " + pomFile, 
e);
         } catch (XmlPullParserException e) {
             throw new MojoExecutionException("Error parsing POM " + pomFile, 
e);
-        } finally {
-            IOUtil.close(reader);
         }
     }
 
@@ -456,23 +449,17 @@ public class DeployFileMojo extends AbstractDeployMojo {
     private File generatePomFile() throws MojoExecutionException {
         Model model = generateModel();
 
-        Writer fw = null;
         try {
             File tempFile = File.createTempFile("mvndeploy", ".pom");
             tempFile.deleteOnExit();
 
-            fw = WriterFactory.newXmlWriter(tempFile);
-
-            new MavenXpp3Writer().write(fw, model);
-
-            fw.close();
-            fw = null;
+            try (Writer fw = WriterFactory.newXmlWriter(tempFile)) {
+                new MavenXpp3Writer().write(fw, model);
+            }
 
             return tempFile;
         } catch (IOException e) {
             throw new MojoExecutionException("Error writing temporary pom 
file: " + e.getMessage(), e);
-        } finally {
-            IOUtil.close(fw);
         }
     }
 
diff --git 
a/src/test/java/org/apache/maven/plugins/deploy/DeployFileMojoTest.java 
b/src/test/java/org/apache/maven/plugins/deploy/DeployFileMojoTest.java
index f36e689..572d8e4 100644
--- a/src/test/java/org/apache/maven/plugins/deploy/DeployFileMojoTest.java
+++ b/src/test/java/org/apache/maven/plugins/deploy/DeployFileMojoTest.java
@@ -28,6 +28,7 @@ import org.apache.maven.model.Model;
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
 import org.apache.maven.project.ProjectBuildingRequest;
 import org.eclipse.aether.DefaultRepositorySystemSession;
+import org.eclipse.aether.internal.impl.DefaultLocalPathComposer;
 import org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory;
 import org.eclipse.aether.repository.LocalRepository;
 import org.mockito.InjectMocks;
@@ -86,8 +87,9 @@ public class DeployFileMojoTest extends AbstractMojoTestCase {
         
when(buildingRequest.getRepositoryMerging()).thenReturn(ProjectBuildingRequest.RepositoryMerging.POM_DOMINANT);
         when(session.getProjectBuildingRequest()).thenReturn(buildingRequest);
         DefaultRepositorySystemSession repositorySession = new 
DefaultRepositorySystemSession();
-        repositorySession.setLocalRepositoryManager(new 
SimpleLocalRepositoryManagerFactory()
-                .newInstance(repositorySession, new 
LocalRepository(LOCAL_REPO)));
+        repositorySession.setLocalRepositoryManager(
+                new SimpleLocalRepositoryManagerFactory(new 
DefaultLocalPathComposer())
+                        .newInstance(repositorySession, new 
LocalRepository(LOCAL_REPO)));
         
when(buildingRequest.getRepositorySession()).thenReturn(repositorySession);
         when(session.getRepositorySession()).thenReturn(repositorySession);
 
@@ -194,8 +196,9 @@ public class DeployFileMojoTest extends 
AbstractMojoTestCase {
         
when(buildingRequest.getRepositoryMerging()).thenReturn(ProjectBuildingRequest.RepositoryMerging.POM_DOMINANT);
         when(session.getProjectBuildingRequest()).thenReturn(buildingRequest);
         DefaultRepositorySystemSession repositorySession = new 
DefaultRepositorySystemSession();
-        repositorySession.setLocalRepositoryManager(new 
SimpleLocalRepositoryManagerFactory()
-                .newInstance(repositorySession, new 
LocalRepository(LOCAL_REPO)));
+        repositorySession.setLocalRepositoryManager(
+                new SimpleLocalRepositoryManagerFactory(new 
DefaultLocalPathComposer())
+                        .newInstance(repositorySession, new 
LocalRepository(LOCAL_REPO)));
         
when(buildingRequest.getRepositorySession()).thenReturn(repositorySession);
         when(session.getRepositorySession()).thenReturn(repositorySession);
 
@@ -248,8 +251,9 @@ public class DeployFileMojoTest extends 
AbstractMojoTestCase {
         
when(buildingRequest.getRepositoryMerging()).thenReturn(ProjectBuildingRequest.RepositoryMerging.POM_DOMINANT);
         when(session.getProjectBuildingRequest()).thenReturn(buildingRequest);
         DefaultRepositorySystemSession repositorySession = new 
DefaultRepositorySystemSession();
-        repositorySession.setLocalRepositoryManager(new 
SimpleLocalRepositoryManagerFactory()
-                .newInstance(repositorySession, new 
LocalRepository(LOCAL_REPO)));
+        repositorySession.setLocalRepositoryManager(
+                new SimpleLocalRepositoryManagerFactory(new 
DefaultLocalPathComposer())
+                        .newInstance(repositorySession, new 
LocalRepository(LOCAL_REPO)));
         
when(buildingRequest.getRepositorySession()).thenReturn(repositorySession);
         when(session.getRepositorySession()).thenReturn(repositorySession);
 
diff --git a/src/test/java/org/apache/maven/plugins/deploy/DeployMojoTest.java 
b/src/test/java/org/apache/maven/plugins/deploy/DeployMojoTest.java
index c43bdf5..fa2b7d5 100644
--- a/src/test/java/org/apache/maven/plugins/deploy/DeployMojoTest.java
+++ b/src/test/java/org/apache/maven/plugins/deploy/DeployMojoTest.java
@@ -23,7 +23,6 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
-import java.util.Properties;
 import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.maven.execution.MavenSession;
@@ -37,11 +36,10 @@ import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.ProjectBuildingRequest;
 import org.codehaus.plexus.util.FileUtils;
 import org.eclipse.aether.DefaultRepositorySystemSession;
-import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.internal.impl.DefaultLocalPathComposer;
 import org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory;
 import org.eclipse.aether.repository.LocalRepository;
 import org.eclipse.aether.repository.RemoteRepository;
-import org.junit.Ignore;
 import org.mockito.InjectMocks;
 import org.mockito.MockitoAnnotations;
 
@@ -75,10 +73,11 @@ public class DeployMojoTest extends AbstractMojoTestCase {
 
         session = mock(MavenSession.class);
         when(session.getPluginContext(any(PluginDescriptor.class), 
any(MavenProject.class)))
-                .thenReturn(new ConcurrentHashMap<String, Object>());
+                .thenReturn(new ConcurrentHashMap<>());
         DefaultRepositorySystemSession repositorySession = new 
DefaultRepositorySystemSession();
-        repositorySession.setLocalRepositoryManager(new 
SimpleLocalRepositoryManagerFactory()
-                .newInstance(repositorySession, new 
LocalRepository(LOCAL_REPO)));
+        repositorySession.setLocalRepositoryManager(
+                new SimpleLocalRepositoryManagerFactory(new 
DefaultLocalPathComposer())
+                        .newInstance(repositorySession, new 
LocalRepository(LOCAL_REPO)));
         when(session.getRepositorySession()).thenReturn(repositorySession);
 
         remoteRepo = new File(REMOTE_REPO);
@@ -124,8 +123,9 @@ public class DeployMojoTest extends AbstractMojoTestCase {
         ProjectBuildingRequest buildingRequest = 
mock(ProjectBuildingRequest.class);
         when(session.getProjectBuildingRequest()).thenReturn(buildingRequest);
         DefaultRepositorySystemSession repositorySession = new 
DefaultRepositorySystemSession();
-        repositorySession.setLocalRepositoryManager(new 
SimpleLocalRepositoryManagerFactory()
-                .newInstance(repositorySession, new 
LocalRepository(LOCAL_REPO)));
+        repositorySession.setLocalRepositoryManager(
+                new SimpleLocalRepositoryManagerFactory(new 
DefaultLocalPathComposer())
+                        .newInstance(repositorySession, new 
LocalRepository(LOCAL_REPO)));
         
when(buildingRequest.getRepositorySession()).thenReturn(repositorySession);
         when(session.getRepositorySession()).thenReturn(repositorySession);
 
@@ -300,8 +300,9 @@ public class DeployMojoTest extends AbstractMojoTestCase {
         ProjectBuildingRequest buildingRequest = 
mock(ProjectBuildingRequest.class);
         when(session.getProjectBuildingRequest()).thenReturn(buildingRequest);
         DefaultRepositorySystemSession repositorySession = new 
DefaultRepositorySystemSession();
-        repositorySession.setLocalRepositoryManager(new 
SimpleLocalRepositoryManagerFactory()
-                .newInstance(repositorySession, new 
LocalRepository(LOCAL_REPO)));
+        repositorySession.setLocalRepositoryManager(
+                new SimpleLocalRepositoryManagerFactory(new 
DefaultLocalPathComposer())
+                        .newInstance(repositorySession, new 
LocalRepository(LOCAL_REPO)));
         
when(buildingRequest.getRepositorySession()).thenReturn(repositorySession);
         when(session.getRepositorySession()).thenReturn(repositorySession);
 
@@ -413,8 +414,9 @@ public class DeployMojoTest extends AbstractMojoTestCase {
         ProjectBuildingRequest buildingRequest = 
mock(ProjectBuildingRequest.class);
         when(session.getProjectBuildingRequest()).thenReturn(buildingRequest);
         DefaultRepositorySystemSession repositorySession = new 
DefaultRepositorySystemSession();
-        repositorySession.setLocalRepositoryManager(new 
SimpleLocalRepositoryManagerFactory()
-                .newInstance(repositorySession, new 
LocalRepository(LOCAL_REPO)));
+        repositorySession.setLocalRepositoryManager(
+                new SimpleLocalRepositoryManagerFactory(new 
DefaultLocalPathComposer())
+                        .newInstance(repositorySession, new 
LocalRepository(LOCAL_REPO)));
         
when(buildingRequest.getRepositorySession()).thenReturn(repositorySession);
         when(session.getRepositorySession()).thenReturn(repositorySession);
 
@@ -490,70 +492,6 @@ public class DeployMojoTest extends AbstractMojoTestCase {
         assertEquals(0, getSizeOfExpectedFiles(fileList, expectedFiles));
     }
 
-    @Ignore("SCP is not part of Maven3 distribution. Aether handles transport 
extensions.")
-    public void _testBasicDeployWithScpAsProtocol() throws Exception {
-        String originalUserHome = System.getProperty("user.home");
-
-        // FIX THE DAMN user.home BEFORE YOU DELETE IT!!!
-        File altHome = new File(getBasedir(), "target/ssh-user-home");
-        altHome.mkdirs();
-
-        System.out.println("Testing user.home value for .ssh dir: " + 
altHome.getCanonicalPath());
-
-        Properties props = System.getProperties();
-        props.setProperty("user.home", altHome.getCanonicalPath());
-
-        System.setProperties(props);
-
-        File testPom = new File(getBasedir(), 
"target/test-classes/unit/basic-deploy-scp/plugin-config.xml");
-
-        mojo = (DeployMojo) lookupMojo("deploy", testPom);
-
-        assertNotNull(mojo);
-
-        RepositorySystem repositorySystem = mock(RepositorySystem.class);
-
-        setVariableValueToObject(mojo, "repositorySystem", repositorySystem);
-
-        File file = new File(
-                getBasedir(),
-                "target/test-classes/unit/basic-deploy-scp/target/" + 
"deploy-test-file-1.0-SNAPSHOT.jar");
-
-        assertTrue(file.exists());
-
-        MavenProject project = (MavenProject) getVariableValueFromObject(mojo, 
"project");
-
-        setVariableValueToObject(mojo, "pluginContext", new 
ConcurrentHashMap<>());
-        setVariableValueToObject(mojo, "reactorProjects", 
Collections.singletonList(project));
-
-        artifact = (DeployArtifactStub) project.getArtifact();
-
-        artifact.setFile(file);
-
-        String altUserHome = System.getProperty("user.home");
-
-        if (altUserHome.equals(originalUserHome)) {
-            // this is *very* bad!
-            throw new IllegalStateException(
-                    "Setting 'user.home' system property to alternate value 
did NOT work. Aborting test.");
-        }
-
-        File sshFile = new File(altUserHome, ".ssh");
-
-        System.out.println("Testing .ssh dir: " + sshFile.getCanonicalPath());
-
-        // delete first the .ssh folder if existing before executing the mojo
-        if (sshFile.exists()) {
-            FileUtils.deleteDirectory(sshFile);
-        }
-
-        mojo.execute();
-
-        assertTrue(sshFile.exists());
-
-        FileUtils.deleteDirectory(sshFile);
-    }
-
     public void testLegacyAltDeploymentRepositoryWithDefaultLayout() throws 
Exception {
         DeployMojo mojo = new DeployMojo();
 

Reply via email to