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

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

commit 66c0415afdd6a28773b1b98c22662de01a21bfee
Author: rfscholte <rfscho...@apache.org>
AuthorDate: Sun Feb 14 15:53:23 2021 +0100

    [MNG-7063] Add unittest to ensure rereading a pom won't return the cached 
Model
---
 .../project/DefaultMavenProjectBuilderTest.java    | 83 ++++++++++------------
 .../src/test/resources/projects/reread/pom1.xml    |  6 ++
 .../src/test/resources/projects/reread/pom2.xml    |  7 ++
 3 files changed, 51 insertions(+), 45 deletions(-)

diff --git 
a/maven-core/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
 
b/maven-core/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
index 73942a0..18e2357 100644
--- 
a/maven-core/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
+++ 
b/maven-core/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
@@ -19,20 +19,11 @@ package org.apache.maven.project;
  * under the License.
  */
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.codehaus.plexus.util.FileUtils;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
 import static org.apache.maven.test.PlexusExtension.getTestFile;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.containsString;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.nullValue;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -40,50 +31,34 @@ import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.fail;
 
+import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.StandardCopyOption;
+import java.util.List;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
+
 public class DefaultMavenProjectBuilderTest
     extends AbstractMavenProjectTestCase
 {
-
-    private List<File> filesToDelete = new ArrayList<>();
-
-    private File localRepoDir;
+    @TempDir
+    File localRepoDir;
+    
+    // only use by reread()
+    @TempDir
+    Path projectRoot;
 
     @Override
     @BeforeEach
     public void setUp()
         throws Exception
     {
-        super.setUp();
-
         projectBuilder = getContainer().lookup( ProjectBuilder.class );
-
-        localRepoDir = new File( System.getProperty( "java.io.tmpdir" ), 
"local-repo." + System.currentTimeMillis() );
-        localRepoDir.mkdirs();
-
-        filesToDelete.add( localRepoDir );
-    }
-
-    @AfterEach
-    public void tearDown()
-        throws Exception
-    {
-        if ( !filesToDelete.isEmpty() )
-        {
-            for ( File file : filesToDelete )
-            {
-                if ( file.exists() )
-                {
-                    if ( file.isDirectory() )
-                    {
-                        FileUtils.deleteDirectory( file );
-                    }
-                    else
-                    {
-                        file.delete();
-                    }
-                }
-            }
-        }
     }
 
     protected MavenProject getProject( Artifact pom, boolean allowStub )
@@ -356,5 +331,23 @@ public class DefaultMavenProjectBuilderTest
         assertNotNull( e.getMessage() );
         assertThat( e.getMessage(), containsString( "Version must be a 
constant" ) );
     }
+    
+    @Test
+    public void rereadPom_mng7063() throws Exception
+    {
+        final Path pom = projectRoot.resolve( "pom.xml" );
+
+        Files.copy( DefaultMavenProjectBuilderTest.class.getResourceAsStream( 
"/projects/reread/pom1.xml" ),
+                    pom, StandardCopyOption.REPLACE_EXISTING );
+        
+        MavenProject project = getProject( pom.toFile() );
+        assertThat( project.getName(), is( "aid" ) ); // inherited from 
artifactId
+        
+        Files.copy( DefaultMavenProjectBuilderTest.class.getResourceAsStream( 
"/projects/reread/pom2.xml" ),
+                    pom, StandardCopyOption.REPLACE_EXISTING );
+
+        project = getProject( pom.toFile() );
+        assertThat( project.getName(), is( "PROJECT NAME" ) );
+    }
 
 }
diff --git a/maven-core/src/test/resources/projects/reread/pom1.xml 
b/maven-core/src/test/resources/projects/reread/pom1.xml
new file mode 100644
index 0000000..c439214
--- /dev/null
+++ b/maven-core/src/test/resources/projects/reread/pom1.xml
@@ -0,0 +1,6 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>gid</groupId>
+  <artifactId>aid</artifactId>
+  <version>1.0</version>
+</project>
diff --git a/maven-core/src/test/resources/projects/reread/pom2.xml 
b/maven-core/src/test/resources/projects/reread/pom2.xml
new file mode 100644
index 0000000..b71b8a8
--- /dev/null
+++ b/maven-core/src/test/resources/projects/reread/pom2.xml
@@ -0,0 +1,7 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>gid</groupId>
+  <artifactId>aid</artifactId>
+  <version>1.0</version>
+  <name>PROJECT NAME</name>
+</project>

Reply via email to