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

jglick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git


The following commit(s) were added to refs/heads/master by this push:
     new d849cdf  Look for .mvn/maven.config in parent directories as well.
     new abd7b26  Merge pull request #1766 from jglick/maven.config-redux
d849cdf is described below

commit d849cdf5a669e03fd2672234a0f7836ac0bc83aa
Author: Jesse Glick <[email protected]>
AuthorDate: Mon Dec 9 15:41:24 2019 -0500

    Look for .mvn/maven.config in parent directories as well.
---
 .../maven/modelcache/MavenProjectCache.java        |  9 ++++++---
 .../modules/maven/NbMavenProjectImplTest.java      | 23 ++++++++++++++++++++++
 2 files changed, 29 insertions(+), 3 deletions(-)

diff --git 
a/java/maven/src/org/netbeans/modules/maven/modelcache/MavenProjectCache.java 
b/java/maven/src/org/netbeans/modules/maven/modelcache/MavenProjectCache.java
index 9905a16..8b507d5 100644
--- 
a/java/maven/src/org/netbeans/modules/maven/modelcache/MavenProjectCache.java
+++ 
b/java/maven/src/org/netbeans/modules/maven/modelcache/MavenProjectCache.java
@@ -150,10 +150,13 @@ public final class MavenProjectCache {
         M2Configuration active = config.getActiveConfiguration();
         MavenExecutionResult res = null;
         try {
-            FileObject mavenConfig = 
projectDir.getFileObject(".mvn/maven.config");
             List<String> mavenConfigOpts = Collections.emptyList();
-            if (mavenConfig != null && mavenConfig.isData()) {
-                mavenConfigOpts = 
Arrays.asList(mavenConfig.asText().split("\\s+"));
+            for (FileObject root = projectDir; root != null; root = 
root.getParent()) {
+                FileObject mavenConfig = 
root.getFileObject(".mvn/maven.config");
+                if (mavenConfig != null && mavenConfig.isData()) {
+                    mavenConfigOpts = 
Arrays.asList(mavenConfig.asText().split("\\s+"));
+                    break;
+                }
             }
             final MavenExecutionRequest req = 
projectEmbedder.createMavenExecutionRequest();
             req.addActiveProfiles(active.getActivatedProfiles());
diff --git 
a/java/maven/test/unit/src/org/netbeans/modules/maven/NbMavenProjectImplTest.java
 
b/java/maven/test/unit/src/org/netbeans/modules/maven/NbMavenProjectImplTest.java
index 61dc1f5..a3ebc5d 100644
--- 
a/java/maven/test/unit/src/org/netbeans/modules/maven/NbMavenProjectImplTest.java
+++ 
b/java/maven/test/unit/src/org/netbeans/modules/maven/NbMavenProjectImplTest.java
@@ -191,6 +191,29 @@ public class NbMavenProjectImplTest extends NbTestCase {
         assertEquals("1.8", slqr.getSourceLevel());
         assertEquals("1.6", testSlqr.getSourceLevel());
     }
+
+    public void testMavenConfigReactor() throws Exception {
+        writeMavenConfig("-Pnew");
+        TestFileUtils.writeFile(wd, "pom.xml", 
"<project><modelVersion>4.0.0</modelVersion>"
+                + 
"<groupId>test</groupId><artifactId>parent</artifactId><version>1.0</version><packaging>pom</packaging>"
+                + "<modules><module>mod</module></modules>"
+                + "</project>");
+        TestFileUtils.writeFile(wd, "mod/pom.xml", 
"<project><modelVersion>4.0.0</modelVersion>"
+                + 
"<parent><groupId>test</groupId><artifactId>parent</artifactId><version>1.0</version></parent>"
+                + "<artifactId>prj</artifactId>"
+                + 
"<properties><java>1.5</java><testJava>1.5</testJava></properties>"
+                + 
"<build><plugins><plugin><artifactId>maven-compiler-plugin</artifactId><version>2.1</version>"
+                + 
"<configuration><source>${java}</source><testSource>${testJava}</testSource></configuration></plugin></plugins></build>"
+                + "<profiles>"
+                + 
"<profile><id>new</id><properties><java>1.6</java></properties></profile>"
+                + "</profiles>"
+                + "</project>");
+        FileObject source = TestFileUtils.writeFile(wd, 
"mod/src/main/java/p/C.java", "package p; class C {}");
+        SourceLevelQuery.Result slqr = 
SourceLevelQuery.getSourceLevel2(source);
+        assertEquals("1.6", slqr.getSourceLevel());
+        // TODO listening to changes not yet implemented in FileProvider
+    }
+
     private void writeMavenConfig(String text) throws IOException, 
InterruptedException {
         // Need the touch call, since NbMavenProjectImpl.Updater checks 
timestamps.
         TestFileUtils.touch(TestFileUtils.writeFile(wd, ".mvn/maven.config", 
text), null);


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to