You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by lk...@apache.org on 2019/11/18 13:59:28 UTC

[netbeans] branch master updated: [NETBEANS-2983] Gradre returns CompileCP instead of RuntimeCP on non-modular projects

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

lkishalmi 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 cf40803  [NETBEANS-2983] Gradre returns CompileCP instead of RuntimeCP on non-modular projects
cf40803 is described below

commit cf40803e37d87d61231311b97b9a4035ab41c625
Author: Laszlo Kishalmi <la...@gmail.com>
AuthorDate: Sun Nov 17 08:35:05 2019 -0800

    [NETBEANS-2983] Gradre returns CompileCP instead of RuntimeCP on non-modular projects
---
 .../java/classpath/ClassPathProviderImpl.java      |  2 +-
 ...plTest.java => AbstractGradleJavaTestCase.java} | 50 +++++++---------
 .../java/classpath/ClassPathProviderImplTest.java  | 67 ++++++++++++++++++++++
 .../java/classpath/GradleSourcesImplTest.java      | 39 ++-----------
 4 files changed, 93 insertions(+), 65 deletions(-)

diff --git a/groovy/gradle.java/src/org/netbeans/modules/gradle/java/classpath/ClassPathProviderImpl.java b/groovy/gradle.java/src/org/netbeans/modules/gradle/java/classpath/ClassPathProviderImpl.java
index f527cfd..ad2fdb2 100644
--- a/groovy/gradle.java/src/org/netbeans/modules/gradle/java/classpath/ClassPathProviderImpl.java
+++ b/groovy/gradle.java/src/org/netbeans/modules/gradle/java/classpath/ClassPathProviderImpl.java
@@ -231,7 +231,7 @@ public final class ClassPathProviderImpl extends ProjectOpenedHook implements Cl
                                     getJava8RuntimeClassPath(),
                                     null)
                         ),
-                        getJava8CompileClassPath()
+                        getJava8RuntimeClassPath()
                 );
             }
             return runTime;
diff --git a/groovy/gradle.java/test/unit/src/org/netbeans/modules/gradle/java/classpath/GradleSourcesImplTest.java b/groovy/gradle.java/test/unit/src/org/netbeans/modules/gradle/java/AbstractGradleJavaTestCase.java
similarity index 61%
copy from groovy/gradle.java/test/unit/src/org/netbeans/modules/gradle/java/classpath/GradleSourcesImplTest.java
copy to groovy/gradle.java/test/unit/src/org/netbeans/modules/gradle/java/AbstractGradleJavaTestCase.java
index d6ccbab..82018e3 100644
--- a/groovy/gradle.java/test/unit/src/org/netbeans/modules/gradle/java/classpath/GradleSourcesImplTest.java
+++ b/groovy/gradle.java/test/unit/src/org/netbeans/modules/gradle/java/AbstractGradleJavaTestCase.java
@@ -16,16 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.netbeans.modules.gradle.java.classpath;
+package org.netbeans.modules.gradle.java;
 
 import java.io.File;
+import java.io.IOException;
 import static junit.framework.TestCase.assertNotNull;
-import org.netbeans.api.java.project.JavaProjectConstants;
 import org.netbeans.api.project.Project;
 import org.netbeans.api.project.ProjectManager;
-import org.netbeans.api.project.ProjectUtils;
-import org.netbeans.api.project.SourceGroup;
-import org.netbeans.api.project.Sources;
 import org.netbeans.junit.NbTestCase;
 import org.netbeans.modules.apisupport.project.InstalledFileLocatorImpl;
 import org.netbeans.modules.project.uiapi.ProjectOpenedTrampoline;
@@ -38,45 +35,41 @@ import org.openide.filesystems.test.TestFileUtils;
  *
  * @author lkishalmi
  */
-public class GradleSourcesImplTest extends NbTestCase {
+public class AbstractGradleJavaTestCase extends NbTestCase {
 
-    public GradleSourcesImplTest(String name) {
+    public AbstractGradleJavaTestCase(String name) {
         super(name);
     }
 
-    private FileObject d;
     /** Represents destination directory with NetBeans (always available). */
     protected File destDirF;
-    
+
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         clearWorkDir();
-        d = FileUtil.toFileObject(getWorkDir());
         destDirF = getTestNBDestDir();
+        InstalledFileLocatorImpl.registerDestDir(destDirF);
     }
 
-    public void testGeneratedSources() throws Exception { // #187595
-        InstalledFileLocatorImpl.registerDestDir(destDirF);
+    protected FileObject createGradleProject(String buildScript) throws IOException {
+        return getGradleProject(buildScript, null);
+    }
 
-        TestFileUtils.writeFile(d,
-                "build.gradle",
-                "apply plugin: 'java'\n" +
-                "sourceSets { main { java { srcDirs = [ 'src', 'build/gen-src' ] }}}");
-        FileObject src = FileUtil.createFolder(d, "src/");
-        FileObject gsrc = FileUtil.createFolder(d, "build/gen-src");
-        FileObject source = src.createData("Whatever.java");
-        FileObject generated = gsrc.createData("WhateverGen.java");
-        Project prj = ProjectManager.getDefault().findProject(d);
+    protected Project openProject(FileObject projectDir) throws IOException {
+        Project prj = ProjectManager.getDefault().findProject(projectDir);
         assertNotNull(prj);
         ProjectOpenedTrampoline.DEFAULT.projectOpened(prj.getLookup().lookup(ProjectOpenedHook.class));
-        Sources srcs = ProjectUtils.getSources(prj);
-        SourceGroup[] groups = srcs.getSourceGroups(JavaProjectConstants.SOURCES_TYPE_JAVA);
-        assertEquals(2, groups.length);
-        assertTrue(groups[0].contains(source));
-        assertFalse(groups[0].contains(generated));
-        assertTrue(groups[1].contains(generated));
-        assertFalse(groups[1].contains(source));
+        return prj;
+    }
+
+    protected FileObject getGradleProject(String buildScript, String settingsScript) throws IOException {
+        FileObject ret = FileUtil.toFileObject(getWorkDir());
+        TestFileUtils.writeFile(ret, "build.gradle", buildScript);
+        if (settingsScript != null) {
+            TestFileUtils.writeFile(ret, "settings.gradle", settingsScript);
+        }
+        return ret;
     }
 
     private static File getTestNBDestDir() {
@@ -85,5 +78,4 @@ public class GradleSourcesImplTest extends NbTestCase {
         assertNotNull("test.netbeans.dest.dir property has to be set when running within binary distribution", destDir);
         return new File(destDir);
     }
-
 }
diff --git a/groovy/gradle.java/test/unit/src/org/netbeans/modules/gradle/java/classpath/ClassPathProviderImplTest.java b/groovy/gradle.java/test/unit/src/org/netbeans/modules/gradle/java/classpath/ClassPathProviderImplTest.java
new file mode 100644
index 0000000..0e719c2
--- /dev/null
+++ b/groovy/gradle.java/test/unit/src/org/netbeans/modules/gradle/java/classpath/ClassPathProviderImplTest.java
@@ -0,0 +1,67 @@
+/*
+ * 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.netbeans.modules.gradle.java.classpath;
+
+import java.io.File;
+import java.util.HashSet;
+import java.util.Set;
+import org.junit.Test;
+import org.netbeans.api.java.classpath.ClassPath;
+import org.netbeans.api.project.Project;
+import org.netbeans.modules.gradle.java.AbstractGradleJavaTestCase;
+import org.netbeans.modules.gradle.java.api.GradleJavaProject;
+import org.netbeans.spi.java.classpath.ClassPathProvider;
+import org.openide.filesystems.FileObject;
+import org.openide.filesystems.FileUtil;
+
+/**
+ *
+ * @author lkishalmi
+ */
+public class ClassPathProviderImplTest extends AbstractGradleJavaTestCase {
+
+    public ClassPathProviderImplTest(String name) {
+        super(name);
+    }
+
+    @Test
+    public void testRuntimeClassPath() throws Exception {
+        System.out.println("find runtime ClassPath");
+        FileObject fo = createGradleProject("apply plugin: 'java'");
+        FileObject src = FileUtil.createFolder(fo, "src/main/java");
+        FileObject java = src.createData("Whatever.java");
+        Project prj = openProject(fo);
+        ClassPathProvider cpp = prj.getLookup().lookup(ClassPathProvider.class);
+        assertNotNull(cpp);
+        GradleJavaProject gjp = GradleJavaProject.get(prj);
+
+
+        Set<FileObject> outputs = new HashSet<>();
+        outputs.add(FileUtil.createFolder(gjp.getMainSourceSet().getOutputResources()));
+        for (File dir : gjp.getMainSourceSet().getOutputClassDirs()) {
+            outputs.add(FileUtil.createFolder(dir));
+        }
+
+        ClassPath rt = cpp.findClassPath(java, ClassPath.EXECUTE);
+        for (FileObject output : outputs) {
+            assertTrue(rt.contains(output));
+        }
+    }
+
+}
diff --git a/groovy/gradle.java/test/unit/src/org/netbeans/modules/gradle/java/classpath/GradleSourcesImplTest.java b/groovy/gradle.java/test/unit/src/org/netbeans/modules/gradle/java/classpath/GradleSourcesImplTest.java
index d6ccbab..f1a3d08 100644
--- a/groovy/gradle.java/test/unit/src/org/netbeans/modules/gradle/java/classpath/GradleSourcesImplTest.java
+++ b/groovy/gradle.java/test/unit/src/org/netbeans/modules/gradle/java/classpath/GradleSourcesImplTest.java
@@ -18,58 +18,34 @@
  */
 package org.netbeans.modules.gradle.java.classpath;
 
-import java.io.File;
-import static junit.framework.TestCase.assertNotNull;
 import org.netbeans.api.java.project.JavaProjectConstants;
 import org.netbeans.api.project.Project;
-import org.netbeans.api.project.ProjectManager;
 import org.netbeans.api.project.ProjectUtils;
 import org.netbeans.api.project.SourceGroup;
 import org.netbeans.api.project.Sources;
-import org.netbeans.junit.NbTestCase;
-import org.netbeans.modules.apisupport.project.InstalledFileLocatorImpl;
-import org.netbeans.modules.project.uiapi.ProjectOpenedTrampoline;
-import org.netbeans.spi.project.ui.ProjectOpenedHook;
+import org.netbeans.modules.gradle.java.AbstractGradleJavaTestCase;
 import org.openide.filesystems.FileObject;
 import org.openide.filesystems.FileUtil;
-import org.openide.filesystems.test.TestFileUtils;
 
 /**
  *
  * @author lkishalmi
  */
-public class GradleSourcesImplTest extends NbTestCase {
+public class GradleSourcesImplTest extends AbstractGradleJavaTestCase {
 
     public GradleSourcesImplTest(String name) {
         super(name);
     }
 
-    private FileObject d;
-    /** Represents destination directory with NetBeans (always available). */
-    protected File destDirF;
-    
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        clearWorkDir();
-        d = FileUtil.toFileObject(getWorkDir());
-        destDirF = getTestNBDestDir();
-    }
-
     public void testGeneratedSources() throws Exception { // #187595
-        InstalledFileLocatorImpl.registerDestDir(destDirF);
-
-        TestFileUtils.writeFile(d,
-                "build.gradle",
+        FileObject d = createGradleProject(
                 "apply plugin: 'java'\n" +
                 "sourceSets { main { java { srcDirs = [ 'src', 'build/gen-src' ] }}}");
         FileObject src = FileUtil.createFolder(d, "src/");
         FileObject gsrc = FileUtil.createFolder(d, "build/gen-src");
         FileObject source = src.createData("Whatever.java");
         FileObject generated = gsrc.createData("WhateverGen.java");
-        Project prj = ProjectManager.getDefault().findProject(d);
-        assertNotNull(prj);
-        ProjectOpenedTrampoline.DEFAULT.projectOpened(prj.getLookup().lookup(ProjectOpenedHook.class));
+        Project prj = openProject(d);
         Sources srcs = ProjectUtils.getSources(prj);
         SourceGroup[] groups = srcs.getSourceGroups(JavaProjectConstants.SOURCES_TYPE_JAVA);
         assertEquals(2, groups.length);
@@ -79,11 +55,4 @@ public class GradleSourcesImplTest extends NbTestCase {
         assertFalse(groups[1].contains(source));
     }
 
-    private static File getTestNBDestDir() {
-        String destDir = System.getProperty("test.netbeans.dest.dir");
-        // set in project.properties as test-unit-sys-prop.test.netbeans.dest.dir
-        assertNotNull("test.netbeans.dest.dir property has to be set when running within binary distribution", destDir);
-        return new File(destDir);
-    }
-
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

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