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/05/08 05:05:19 UTC

[netbeans] branch release110-gradle-patch-1 created (now b2a39ac)

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

lkishalmi pushed a change to branch release110-gradle-patch-1
in repository https://gitbox.apache.org/repos/asf/netbeans.git.


      at b2a39ac  [NETBEANS-2035] Enable Always show Gradle Build output by default.

This branch includes the following new commits:

     new aebe5f9  [NETBEANS-2346] Fixed index out of bound exception in GAV parsing.
     new bad021c  [NETBEANS-2378] Tighten the Groovy more to the Gralde plugin
     new 152d90d  [NETBEANS-2348] Added support for 'Test Package'.
     new e2dbd27  [NETBEANS-2348] Less intrustive support for Test Package.
     new c3071d7  [NETBEANS-2293] Fix possible NPE on selected method detection.
     new f5ecf6f  [NETBEANS-2399] Make sub Project node as a Tree based on the paths on the Gradle projects
     new b2a39ac  [NETBEANS-2035] Enable Always show Gradle Build output by default.

The 7 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



---------------------------------------------------------------------
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


[netbeans] 01/07: [NETBEANS-2346] Fixed index out of bound exception in GAV parsing.

Posted by lk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lkishalmi pushed a commit to branch release110-gradle-patch-1
in repository https://gitbox.apache.org/repos/asf/netbeans.git

commit aebe5f9bf438c7df73d5fdac1ce3b9c10c634796
Author: Laszlo Kishalmi <la...@gmail.com>
AuthorDate: Sat Apr 6 05:35:25 2019 -0700

    [NETBEANS-2346] Fixed index out of bound exception in GAV parsing.
---
 .../modules/gradle/api/GradleBaseProject.java      |  2 +-
 .../modules/gradle/api/GradleConfiguration.java    |  2 +-
 .../modules/gradle/api/GradleDependency.java       | 15 ++++-
 .../modules/gradle/nodes/ConfigurationsNode.java   |  4 +-
 .../actions/ActionMappingPropertyReaderTest.java   | 22 +++---
 .../modules/gradle/api/GradleDepandencyTest.java   | 78 ++++++++++++++++++++++
 6 files changed, 105 insertions(+), 18 deletions(-)

diff --git a/groovy/gradle/src/org/netbeans/modules/gradle/api/GradleBaseProject.java b/groovy/gradle/src/org/netbeans/modules/gradle/api/GradleBaseProject.java
index 8c16759..49a4f14 100644
--- a/groovy/gradle/src/org/netbeans/modules/gradle/api/GradleBaseProject.java
+++ b/groovy/gradle/src/org/netbeans/modules/gradle/api/GradleBaseProject.java
@@ -256,7 +256,7 @@ public final class GradleBaseProject implements Serializable, ModuleSearchSuppor
 
     @Override
     public Set<GradleDependency.ModuleDependency> findModules(String gav) {
-        String parts[] = gav.split(":");
+        String parts[] = GradleDependency.gavSplit(gav);
         if (parts.length != 3) {
             throw new IllegalArgumentException("Invalid gav filter: "  + gav);
         }
diff --git a/groovy/gradle/src/org/netbeans/modules/gradle/api/GradleConfiguration.java b/groovy/gradle/src/org/netbeans/modules/gradle/api/GradleConfiguration.java
index f269b5e..fe6b233 100644
--- a/groovy/gradle/src/org/netbeans/modules/gradle/api/GradleConfiguration.java
+++ b/groovy/gradle/src/org/netbeans/modules/gradle/api/GradleConfiguration.java
@@ -86,7 +86,7 @@ public final class GradleConfiguration implements Serializable, ModuleSearchSupp
 
     @Override
     public Set<GradleDependency.ModuleDependency> findModules(String gav) {
-        String parts[] = gav.split(":");
+        String parts[] = GradleDependency.gavSplit(gav);
         if (parts.length != 3) {
             throw new IllegalArgumentException("Invalid gav filter: "  + gav);
         }
diff --git a/groovy/gradle/src/org/netbeans/modules/gradle/api/GradleDependency.java b/groovy/gradle/src/org/netbeans/modules/gradle/api/GradleDependency.java
index 7d1decb..ab2b588 100644
--- a/groovy/gradle/src/org/netbeans/modules/gradle/api/GradleDependency.java
+++ b/groovy/gradle/src/org/netbeans/modules/gradle/api/GradleDependency.java
@@ -63,6 +63,19 @@ public abstract class GradleDependency implements Serializable, Comparable<Gradl
 
     public abstract Type getType();
 
+    static final String[] gavSplit(String gav) {
+        int firstColon = gav.indexOf(':');
+        int lastColon = gav.lastIndexOf(':');
+        if (firstColon == -1 || firstColon == lastColon) {
+            throw new IllegalArgumentException("Invalig GAV format: " + gav);
+        }
+        return new String[] {
+            gav.substring(0, firstColon),
+            gav.substring(firstColon + 1, lastColon),
+            gav.substring(lastColon + 1)
+        };
+    }
+
     /**
      * Dependency for modules usually downloaded from a remote repository.
      * @since 1.0
@@ -79,7 +92,7 @@ public abstract class GradleDependency implements Serializable, Comparable<Gradl
         ModuleDependency(String id, Set<File> artifacts) {
             super(id);
             this.artifacts = artifacts;
-            String[] parts = id.split(":");
+            String[] parts = gavSplit(id);
             group = parts[0];
             name = parts[1];
             version = parts[2];
diff --git a/groovy/gradle/src/org/netbeans/modules/gradle/nodes/ConfigurationsNode.java b/groovy/gradle/src/org/netbeans/modules/gradle/nodes/ConfigurationsNode.java
index e57077e..4300195 100644
--- a/groovy/gradle/src/org/netbeans/modules/gradle/nodes/ConfigurationsNode.java
+++ b/groovy/gradle/src/org/netbeans/modules/gradle/nodes/ConfigurationsNode.java
@@ -290,7 +290,7 @@ public class ConfigurationsNode extends AbstractNode {
             GradleProject gp = project.getGradleProject();
             ArrayList<GradleDependency> ret = new ArrayList<>();
             GradleConfiguration conf = gp.getBaseProject().getConfigurations().get(configuration);
-            // We can get null here ins ome extreme cases, e.g. when the project is being deleted
+            // We can get null here in some extreme cases, e.g. when the project is being deleted
             if (conf != null) {
                 ret.addAll(conf.getUnresolved());
                 ret.addAll(conf.getProjects());
@@ -370,7 +370,7 @@ public class ConfigurationsNode extends AbstractNode {
 
         @Override
         public String getDisplayName() {
-            return module.getName() + ":" + module.getVersion();
+            return module.getVersion().isEmpty() ? module.getName() : module.getName() + ":" + module.getVersion();
         }
 
         @Override
diff --git a/groovy/gradle/test/unit/src/org/netbeans/modules/gradle/actions/ActionMappingPropertyReaderTest.java b/groovy/gradle/test/unit/src/org/netbeans/modules/gradle/actions/ActionMappingPropertyReaderTest.java
index 99a7dfd..d6ad668 100644
--- a/groovy/gradle/test/unit/src/org/netbeans/modules/gradle/actions/ActionMappingPropertyReaderTest.java
+++ b/groovy/gradle/test/unit/src/org/netbeans/modules/gradle/actions/ActionMappingPropertyReaderTest.java
@@ -22,10 +22,6 @@ import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Properties;
 import java.util.Set;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
 import org.junit.Test;
 import static org.junit.Assert.*;
 import org.netbeans.modules.gradle.api.execute.ActionMapping;
@@ -49,7 +45,7 @@ public class ActionMappingPropertyReaderTest {
     @Test
     public void testLoadMappings2() {
         Properties props = new Properties();
-        props.put("nb-action.run.args", "runArgs");
+        props.put("action.run.args", "runArgs");
         Set<ActionMapping> result = ActionMappingPropertyReader.loadMappings(props);
         assertEquals(result.size(), 1);
         ActionMapping mapping = result.iterator().next();
@@ -63,11 +59,11 @@ public class ActionMappingPropertyReaderTest {
     @Test
     public void testLoadMappings3() {
         Properties props = new Properties();
-        props.put("nb-action.custom-1", "Build with Arguments");
-        props.put("nb-action.custom-1.args", "runArgs ${test}");
-        props.put("nb-action.custom-1.reload.args", "runArgs");
-        props.put("nb-action.custom-1.reload.rule", "NEVER");
-        props.put("nb-action.custom-1.repeatable", "false");
+        props.put("action.custom-1", "Build with Arguments");
+        props.put("action.custom-1.args", "runArgs ${test}");
+        props.put("action.custom-1.reload.args", "runArgs");
+        props.put("action.custom-1.reload.rule", "NEVER");
+        props.put("action.custom-1.repeatable", "false");
         Set<ActionMapping> result = ActionMappingPropertyReader.loadMappings(props);
         assertEquals(result.size(), 1);
         ActionMapping mapping = result.iterator().next();
@@ -82,9 +78,9 @@ public class ActionMappingPropertyReaderTest {
     @Test
     public void testLoadMappings4() {
         Properties props = new Properties();
-        props.put("nb-action.build.args", "build");
-        props.put("nb-action.build.priority", "100");
-        props.put("nb-action.build.plugins", "groovy, war");
+        props.put("action.build.args", "build");
+        props.put("action.build.priority", "100");
+        props.put("action.build.plugins", "groovy, war");
         Set<ActionMapping> result = ActionMappingPropertyReader.loadMappings(props);
         assertEquals(result.size(), 1);
         DefaultActionMapping mapping = (DefaultActionMapping) result.iterator().next();
diff --git a/groovy/gradle/test/unit/src/org/netbeans/modules/gradle/api/GradleDepandencyTest.java b/groovy/gradle/test/unit/src/org/netbeans/modules/gradle/api/GradleDepandencyTest.java
new file mode 100644
index 0000000..43c1881
--- /dev/null
+++ b/groovy/gradle/test/unit/src/org/netbeans/modules/gradle/api/GradleDepandencyTest.java
@@ -0,0 +1,78 @@
+/*
+ * 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.api;
+
+import java.util.Collections;
+import static org.junit.Assert.assertEquals;
+import org.junit.Test;
+
+/**
+ *
+ * @author lkishalmi
+ */
+public class GradleDepandencyTest {
+
+    @Test
+    public void testGetGroup1() {
+        GradleDependency.ModuleDependency instance = new GradleDependency.ModuleDependency(":hamcrest-core-1.3:", Collections.emptySet());
+        String expResult = "";
+        String result = instance.getGroup();
+        assertEquals(expResult, result);
+    }
+
+    @Test
+    public void testGetGroup2() {
+        GradleDependency.ModuleDependency instance = new GradleDependency.ModuleDependency("org.hamcrest:hamcrest-core:1.3", Collections.emptySet());
+        String expResult = "org.hamcrest";
+        String result = instance.getGroup();
+        assertEquals(expResult, result);
+    }
+
+    @Test
+    public void testGetName1() {
+        GradleDependency.ModuleDependency instance = new GradleDependency.ModuleDependency(":hamcrest-core-1.3:", Collections.emptySet());
+        String expResult = "hamcrest-core-1.3";
+        String result = instance.getName();
+        assertEquals(expResult, result);
+    }
+
+    @Test
+    public void testGetName2() {
+        GradleDependency.ModuleDependency instance = new GradleDependency.ModuleDependency("org.hamcrest:hamcrest-core:1.3", Collections.emptySet());
+        String expResult = "hamcrest-core";
+        String result = instance.getName();
+        assertEquals(expResult, result);
+    }
+
+    @Test
+    public void testGetVersion1() {
+        GradleDependency.ModuleDependency instance = new GradleDependency.ModuleDependency(":hamcrest-core-1.3:", Collections.emptySet());
+        String expResult = "";
+        String result = instance.getVersion();
+        assertEquals(expResult, result);
+    }
+
+    @Test
+    public void testGetVersion2() {
+        GradleDependency.ModuleDependency instance = new GradleDependency.ModuleDependency("org.hamcrest:hamcrest-core:1.3", Collections.emptySet());
+        String expResult = "1.3";
+        String result = instance.getVersion();
+        assertEquals(expResult, result);
+    }
+}


---------------------------------------------------------------------
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


[netbeans] 03/07: [NETBEANS-2348] Added support for 'Test Package'.

Posted by lk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lkishalmi pushed a commit to branch release110-gradle-patch-1
in repository https://gitbox.apache.org/repos/asf/netbeans.git

commit 152d90d3f2630a98a19476b7b287794ceb525b1c
Author: Laszlo Kishalmi <la...@gmail.com>
AuthorDate: Sat Apr 6 10:55:46 2019 -0700

    [NETBEANS-2348] Added support for 'Test Package'.
---
 .../gradle/java/GradleJavaTokenProvider.java       | 32 ++++++++++++++--------
 .../modules/gradle/java/JavaActionProvider.java    | 30 +++++++++++++-------
 .../modules/gradle/java/action-mapping.xml         |  3 ++
 .../modules/gradle/ActionProviderImpl.java         | 19 +++++++++++--
 .../gradle/execute/GradleDaemonExecutor.java       |  4 +--
 5 files changed, 62 insertions(+), 26 deletions(-)

diff --git a/groovy/gradle.java/src/org/netbeans/modules/gradle/java/GradleJavaTokenProvider.java b/groovy/gradle.java/src/org/netbeans/modules/gradle/java/GradleJavaTokenProvider.java
index d396a45..980c122 100644
--- a/groovy/gradle.java/src/org/netbeans/modules/gradle/java/GradleJavaTokenProvider.java
+++ b/groovy/gradle.java/src/org/netbeans/modules/gradle/java/GradleJavaTokenProvider.java
@@ -57,11 +57,12 @@ import org.openide.util.Lookup;
 public class GradleJavaTokenProvider implements ReplaceTokenProvider {
 
     private static final Set<String> SUPPORTED = Collections.unmodifiableSet(new HashSet(Arrays.asList(
-            "selectedClass",
-            "selectedMethod",
-            "affectedBuildTasks"
+            "selectedClass",       //NOI18N
+            "selectedMethod",      //NOI18N
+            "selectedPackage",     //NOI18N
+            "affectedBuildTasks"   //NOI18N
     )));
-    
+
     final Project project;
 
     public GradleJavaTokenProvider(Project project) {
@@ -76,22 +77,29 @@ public class GradleJavaTokenProvider implements ReplaceTokenProvider {
     @Override
     public Map<String, String> createReplacements(String action, Lookup context) {
         Map<String, String> ret = new HashMap<>();
-        processSelectedClass(ret, context);
+        processSelectedPackageAndClass(ret, context);
         processSelectedMethod(ret, context);
         processSourceSets(ret, context);
         return ret;
     }
 
-    private void processSelectedClass(final Map<String, String> map, Lookup context) {
+    private void processSelectedPackageAndClass(final Map<String, String> map, Lookup context) {
         FileObject fo = RunUtils.extractFileObjectfromLookup(context);
         GradleJavaProject gjp = GradleJavaProject.get(project);
         if ((gjp != null) && (fo != null)) {
             File f = FileUtil.toFile(fo);
             GradleJavaSourceSet sourceSet = gjp.containingSourceSet(f);
-            if (sourceSet != null) {
-                String relPath = sourceSet.relativePath(f);
-                String className = relPath.substring(0, relPath.lastIndexOf('.')).replace('/', '.');
-                map.put("selectedClass", className);
+            if (sourceSet != null)  {
+                if (f.isFile()) {
+                    String relPath = sourceSet.relativePath(f);
+                    String className = (relPath.lastIndexOf('.') > 0 ?
+                            relPath.substring(0, relPath.lastIndexOf('.')) :
+                            relPath).replace('/', '.');
+                    map.put("selectedClass", className);  //NOI18N
+                    f = f.getParentFile();
+                }
+                String pkg = sourceSet.relativePath(f).replace('/', '.');
+                map.put("selectedPackage", pkg); //NOI18N
             }
         }
     }
@@ -102,7 +110,7 @@ public class GradleJavaTokenProvider implements ReplaceTokenProvider {
         String methodName = method != null ? method.getMethodName() : null;
         if (fo != null) {
              String selectedMethod = evaluateSingleMethod(fo, methodName);
-             map.put("selectedMethod", selectedMethod);
+             map.put("selectedMethod", selectedMethod); //NOI18N
         }
     }
 
@@ -125,7 +133,7 @@ public class GradleJavaTokenProvider implements ReplaceTokenProvider {
             for (String task : buildTasks) {
                 tasks.append(task).append(' ');
             }
-            map.put("affectedBuildTasks", tasks.toString());
+            map.put("affectedBuildTasks", tasks.toString()); //NOI18N
         }
     }
 
diff --git a/groovy/gradle.java/src/org/netbeans/modules/gradle/java/JavaActionProvider.java b/groovy/gradle.java/src/org/netbeans/modules/gradle/java/JavaActionProvider.java
index 305c786..3add6f2 100644
--- a/groovy/gradle.java/src/org/netbeans/modules/gradle/java/JavaActionProvider.java
+++ b/groovy/gradle.java/src/org/netbeans/modules/gradle/java/JavaActionProvider.java
@@ -25,6 +25,7 @@ import org.netbeans.modules.gradle.java.api.GradleJavaProject;
 import org.netbeans.modules.gradle.java.api.GradleJavaSourceSet;
 import org.netbeans.modules.gradle.spi.actions.DefaultGradleActionsProvider;
 import org.netbeans.modules.gradle.spi.actions.GradleActionsProvider;
+import static org.netbeans.modules.gradle.java.api.GradleJavaSourceSet.SourceType.*;
 import java.io.File;
 import static org.netbeans.spi.project.ActionProvider.*;
 import static org.netbeans.api.java.project.JavaProjectConstants.*;
@@ -46,8 +47,9 @@ import org.openide.util.lookup.ServiceProvider;
 @ServiceProvider(service = GradleActionsProvider.class)
 public class JavaActionProvider extends DefaultGradleActionsProvider {
 
-    private static final String GATLING_PLUGIN = "com.github.lkishalmi.gatling";
-    private static final String SIMULATION_POSTFIX = "Simulation.scala";
+    public static final String COMMAND_TEST_SINGLE_PACKAGE = "test.single.package"; //NOI18N
+    private static final String GATLING_PLUGIN = "com.github.lkishalmi.gatling"; //NOI18N
+    private static final String SIMULATION_POSTFIX = "Simulation.scala"; //NOI18N
 
     private static final String[] SUPPORTED = new String[]{
         COMMAND_BUILD,
@@ -64,7 +66,8 @@ public class JavaActionProvider extends DefaultGradleActionsProvider {
         COMMAND_DEBUG_FIX,
         COMMAND_RUN_SINGLE,
         COMMAND_DEBUG_SINGLE,
-        COMMAND_COMPILE_SINGLE
+        COMMAND_COMPILE_SINGLE,
+        COMMAND_TEST_SINGLE_PACKAGE
     };
 
     public JavaActionProvider() {
@@ -81,6 +84,8 @@ public class JavaActionProvider extends DefaultGradleActionsProvider {
                 if (gbp.hasPlugins(GATLING_PLUGIN) && COMMAND_RUN_SINGLE.equals(action)) {
                     ret = fo.getNameExt().endsWith(SIMULATION_POSTFIX);
                 } else {
+                    ret = false;
+                    GradleJavaProject gjp = GradleJavaProject.get(project);
                     switch (action) {
                         case COMMAND_COMPILE_SINGLE:
                             FileBuiltQuery.Status status = FileBuiltQuery.getStatus(fo);
@@ -88,8 +93,6 @@ public class JavaActionProvider extends DefaultGradleActionsProvider {
                             break;
                         case COMMAND_DEBUG_SINGLE:
                         case COMMAND_RUN_SINGLE: {
-                            ret = false;
-                            GradleJavaProject gjp = GradleJavaProject.get(project);
                             if (RunUtils.isAugmentedBuildEnabled(project) && (gjp != null)) {
                                 File f = FileUtil.toFile(fo);
                                 GradleJavaSourceSet sourceSet = gjp.containingSourceSet(f);
@@ -98,7 +101,7 @@ public class JavaActionProvider extends DefaultGradleActionsProvider {
                                     if (relPath != null) {
                                         relPath = relPath.substring(0, relPath.lastIndexOf('.')).replace('/', '.');
                                         ret = SourceUtils.isMainClass(relPath, ClasspathInfo.create(fo), true);
-                                    } 
+                                    }
                                 }
                             }
 
@@ -109,14 +112,21 @@ public class JavaActionProvider extends DefaultGradleActionsProvider {
                         case COMMAND_RUN_SINGLE_METHOD:
                         case COMMAND_DEBUG_SINGLE_METHOD: {
                             if ("text/x-java".equals(fo.getMIMEType())) { //NOI18N
-                                GradleJavaProject gjp = GradleJavaProject.get(project);
-                                if (gjp != null) {
-                                    GradleJavaSourceSet sourceSet = gjp.containingSourceSet(FileUtil.toFile(fo));
-                                    ret = sourceSet != null && sourceSet.isTestSourceSet();
+                                if ( gjp != null ) {
+                                    File f = FileUtil.toFile(fo);
+                                    GradleJavaSourceSet sourceSet = gjp.containingSourceSet(f);
+                                    ret = sourceSet != null && sourceSet.isTestSourceSet() && sourceSet.getSourceType(f) != RESOURCES;
                                 }
                             }
                             break;
                         }
+                        case COMMAND_TEST_SINGLE_PACKAGE:
+                            if ( (gjp != null) && fo.isFolder() ) {
+                                File dir = FileUtil.toFile(fo);
+                                GradleJavaSourceSet sourceSet = gjp.containingSourceSet(dir);
+                                ret = sourceSet != null && sourceSet.getSourceType(dir) != RESOURCES;
+                            }
+                            break;
                     }
                 }
             }
diff --git a/groovy/gradle.java/src/org/netbeans/modules/gradle/java/action-mapping.xml b/groovy/gradle.java/src/org/netbeans/modules/gradle/java/action-mapping.xml
index 32d303a..26b9f26 100644
--- a/groovy/gradle.java/src/org/netbeans/modules/gradle/java/action-mapping.xml
+++ b/groovy/gradle.java/src/org/netbeans/modules/gradle/java/action-mapping.xml
@@ -25,6 +25,9 @@
         <action name="test.single">
             <args>--rerun-tasks test --tests ${selectedClass}</args>
         </action>
+        <action name="test.single.package">
+            <args>--rerun-tasks test --tests ${selectedPackage}*</args>
+        </action>
         <action name="run.single.method">
             <args>--rerun-tasks test --tests ${selectedMethod}</args>
         </action>
diff --git a/groovy/gradle/src/org/netbeans/modules/gradle/ActionProviderImpl.java b/groovy/gradle/src/org/netbeans/modules/gradle/ActionProviderImpl.java
index 7626954..7527dc9 100644
--- a/groovy/gradle/src/org/netbeans/modules/gradle/ActionProviderImpl.java
+++ b/groovy/gradle/src/org/netbeans/modules/gradle/ActionProviderImpl.java
@@ -124,13 +124,28 @@ public class ActionProviderImpl implements ActionProvider {
 
     @Override
     public void invokeAction(String command, Lookup context) throws IllegalArgumentException {
-        ActionMapping mapping = ActionToTaskUtils.getActiveMapping(command, project);
+        String cmd = translateCommand(command, context);
+        ActionMapping mapping = ActionToTaskUtils.getActiveMapping(cmd, project);
         invokeProjectAction(project, mapping, context, false);
     }
 
     @Override
     public boolean isActionEnabled(String command, Lookup context) throws IllegalArgumentException {
-        return ActionToTaskUtils.isActionEnabled(command, project, context);
+        String cmd = translateCommand(command, context);
+        return ActionToTaskUtils.isActionEnabled(cmd, project, context);
+    }
+
+    // TODO: Create an SPI for these kind of translations. Maven projects do something similar
+    // Fix for: NETBEANS-2348
+    private String translateCommand(String command, Lookup context) {
+        String ret = command;
+        if ("test.single".equals(command)) { //NOI18N
+            FileObject fo = RunUtils.extractFileObjectfromLookup(context);
+            if (fo.isFolder()) {
+                ret = "test.single.package"; //NOI18N
+            }
+        }
+        return ret;
     }
 
     @NbBundle.Messages({
diff --git a/groovy/gradle/src/org/netbeans/modules/gradle/execute/GradleDaemonExecutor.java b/groovy/gradle/src/org/netbeans/modules/gradle/execute/GradleDaemonExecutor.java
index 84a75de..d5067a0 100644
--- a/groovy/gradle/src/org/netbeans/modules/gradle/execute/GradleDaemonExecutor.java
+++ b/groovy/gradle/src/org/netbeans/modules/gradle/execute/GradleDaemonExecutor.java
@@ -231,8 +231,8 @@ public final class GradleDaemonExecutor extends AbstractGradleExecutor {
 
         for (String arg : config.getCommandLine().getSupportedCommandLine()) {
             commandLine.append(' ');
-            if (arg.contains(" ")) { //NOI18N
-                commandLine.append('"').append(arg).append('"');
+            if (arg.contains(" ") || arg.contains("*")) { //NOI18N
+                commandLine.append('\'').append(arg).append('\'');
             } else {
                 commandLine.append(arg);
             }


---------------------------------------------------------------------
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


[netbeans] 02/07: [NETBEANS-2378] Tighten the Groovy more to the Gralde plugin

Posted by lk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lkishalmi pushed a commit to branch release110-gradle-patch-1
in repository https://gitbox.apache.org/repos/asf/netbeans.git

commit bad021ced2440cbe21b3df825a568d91c6991ffc
Author: Laszlo Kishalmi <la...@gmail.com>
AuthorDate: Tue Apr 9 06:38:06 2019 -0700

    [NETBEANS-2378] Tighten the Groovy more to the Gralde plugin
---
 groovy/gradle/manifest.mf | 1 +
 1 file changed, 1 insertion(+)

diff --git a/groovy/gradle/manifest.mf b/groovy/gradle/manifest.mf
index b80a5f9..fedf0d3 100644
--- a/groovy/gradle/manifest.mf
+++ b/groovy/gradle/manifest.mf
@@ -4,3 +4,4 @@ OpenIDE-Module: org.netbeans.modules.gradle
 OpenIDE-Module-Layer: org/netbeans/modules/gradle/layer.xml
 OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/gradle/Bundle.properties
 OpenIDE-Module-Specification-Version: 1.0.1
+


---------------------------------------------------------------------
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


[netbeans] 07/07: [NETBEANS-2035] Enable Always show Gradle Build output by default.

Posted by lk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lkishalmi pushed a commit to branch release110-gradle-patch-1
in repository https://gitbox.apache.org/repos/asf/netbeans.git

commit b2a39acaf2b8fb931b461654f92e1414fdb84128
Author: Laszlo Kishalmi <la...@gmail.com>
AuthorDate: Fri Apr 26 11:34:46 2019 -0700

    [NETBEANS-2035] Enable Always show Gradle Build output by default.
---
 groovy/gradle/src/org/netbeans/modules/gradle/spi/GradleSettings.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/groovy/gradle/src/org/netbeans/modules/gradle/spi/GradleSettings.java b/groovy/gradle/src/org/netbeans/modules/gradle/spi/GradleSettings.java
index 20bb104..6a0102d 100644
--- a/groovy/gradle/src/org/netbeans/modules/gradle/spi/GradleSettings.java
+++ b/groovy/gradle/src/org/netbeans/modules/gradle/spi/GradleSettings.java
@@ -170,7 +170,7 @@ public final class GradleSettings {
     }
 
     public boolean isAlwaysShowOutput() {
-        return getPreferences().getBoolean(PROP_ALWAYS_SHOW_OUTPUT, false);
+        return getPreferences().getBoolean(PROP_ALWAYS_SHOW_OUTPUT, true);
     }
 
     public void setStartDaemonOnStart(boolean b) {


---------------------------------------------------------------------
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


[netbeans] 05/07: [NETBEANS-2293] Fix possible NPE on selected method detection.

Posted by lk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lkishalmi pushed a commit to branch release110-gradle-patch-1
in repository https://gitbox.apache.org/repos/asf/netbeans.git

commit c3071d7ca8c29fc1c097cf11b8a9cb7b4df90708
Author: Laszlo Kishalmi <la...@gmail.com>
AuthorDate: Sat Apr 6 15:23:06 2019 -0700

    [NETBEANS-2293] Fix possible NPE on selected method detection.
---
 .../gradle/java/GradleJavaTokenProvider.java       | 86 ++++++----------------
 .../modules/gradle/java/action-mapping.xml         |  4 +-
 .../gradle/java/api/output/LocationOpener.java     | 58 +++++++--------
 3 files changed, 52 insertions(+), 96 deletions(-)

diff --git a/groovy/gradle.java/src/org/netbeans/modules/gradle/java/GradleJavaTokenProvider.java b/groovy/gradle.java/src/org/netbeans/modules/gradle/java/GradleJavaTokenProvider.java
index 87018fb..8e79ed4 100644
--- a/groovy/gradle.java/src/org/netbeans/modules/gradle/java/GradleJavaTokenProvider.java
+++ b/groovy/gradle.java/src/org/netbeans/modules/gradle/java/GradleJavaTokenProvider.java
@@ -24,24 +24,13 @@ import org.netbeans.modules.gradle.api.execute.RunUtils;
 import org.netbeans.modules.gradle.java.api.GradleJavaProject;
 import org.netbeans.modules.gradle.java.api.GradleJavaSourceSet;
 import org.netbeans.modules.gradle.spi.actions.ReplaceTokenProvider;
-import com.sun.source.tree.CompilationUnitTree;
-import com.sun.source.tree.Tree;
-import com.sun.source.util.Trees;
 import java.io.File;
-import java.io.IOException;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import javax.lang.model.element.Element;
-import javax.lang.model.element.ElementKind;
-import javax.lang.model.element.TypeElement;
-import org.netbeans.api.java.source.CompilationController;
-import org.netbeans.api.java.source.JavaSource;
-import org.netbeans.api.java.source.Task;
 import org.netbeans.api.project.Project;
 import org.netbeans.spi.project.ProjectServiceProvider;
 import org.netbeans.spi.project.SingleMethod;
@@ -85,32 +74,20 @@ public class GradleJavaTokenProvider implements ReplaceTokenProvider {
     private void processSelectedPackageAndClass(final Map<String, String> map, Lookup context) {
         FileObject fo = RunUtils.extractFileObjectfromLookup(context);
         GradleJavaProject gjp = GradleJavaProject.get(project);
-        if ((gjp != null) && (fo != null)) {
-            File f = FileUtil.toFile(fo);
-            GradleJavaSourceSet sourceSet = gjp.containingSourceSet(f);
-            if (sourceSet != null)  {
-                if (f.isFile()) {
-                    String relPath = sourceSet.relativePath(f);
-                    String className = (relPath.lastIndexOf('.') > 0 ?
-                            relPath.substring(0, relPath.lastIndexOf('.')) :
-                            relPath).replace('/', '.');
-                    map.put("selectedClass", className);  //NOI18N
-                    f = f.getParentFile();
-                } else {
-                    String pkg = sourceSet.relativePath(f).replace('/', '.');
-                    map.put("selectedClass", pkg + "*"); //NOI18N
-                }
-            }
+        String className = evaluateClassName(gjp, fo);
+        if (className != null) {
+            map.put("selectedClass", className);
         }
     }
 
-    private static void processSelectedMethod(final Map<String, String> map, Lookup context) {
+    private void processSelectedMethod(final Map<String, String> map, Lookup context) {
         SingleMethod method = context.lookup(SingleMethod.class);
         FileObject fo = method != null ? method.getFile() : RunUtils.extractFileObjectfromLookup(context);
-        String methodName = method != null ? method.getMethodName() : null;
-        if (fo != null) {
-             String selectedMethod = evaluateSingleMethod(fo, methodName);
-             map.put("selectedMethod", selectedMethod); //NOI18N
+        if ((fo != null) && fo.isData()) {
+            GradleJavaProject gjp = GradleJavaProject.get(project);
+            String className = evaluateClassName(gjp, fo);
+            String selectedMethod = method != null ? className + '.' + method.getMethodName() : className;
+            map.put("selectedMethod", selectedMethod);
         }
     }
 
@@ -137,37 +114,22 @@ public class GradleJavaTokenProvider implements ReplaceTokenProvider {
         }
     }
 
-    private static String evaluateSingleMethod(final FileObject fo, final String method) {
-        final Object[] ret = new Object[1];
-        JavaSource javaSource = JavaSource.forFileObject(fo);
-        if (javaSource != null) {
-            try {
-                javaSource.runUserActionTask(new Task<CompilationController>() {
-                    @Override
-                    public void run(CompilationController compilationController) throws Exception {
-                        compilationController.toPhase(JavaSource.Phase.ELEMENTS_RESOLVED);
-                        Trees trees = compilationController.getTrees();
-                        CompilationUnitTree compilationUnitTree = compilationController.getCompilationUnit();
-                        List<? extends Tree> typeDecls = compilationUnitTree.getTypeDecls();
-                        for (Tree tree : typeDecls) {
-                            Element element = trees.getElement(trees.getPath(compilationUnitTree, tree));
-                            if (element != null && element.getKind() == ElementKind.CLASS && element.getSimpleName().contentEquals(fo.getName())) {
-                                TypeElement type = (TypeElement) element;
-                                StringBuilder sb = new StringBuilder(type.getQualifiedName());
-                                if (method != null) {
-                                    sb.append('.').append(method);
-                                }
-                                ret[0] = sb.toString();
-                                break;
-                            }
-                        }
-                    }
-                }, true);
-                return ret[0].toString();
-            } catch (IOException ioe) {
-                //TODO: Do nothing?
+    private String evaluateClassName(GradleJavaProject gjp, FileObject fo) {
+        String ret = null;
+        if ((gjp != null) && (fo != null)) {
+            File f = FileUtil.toFile(fo);
+            GradleJavaSourceSet sourceSet = gjp.containingSourceSet(f);
+            if (sourceSet != null) {
+                String relPath = sourceSet.relativePath(f);
+                ret = (relPath.lastIndexOf('.') > 0 ?
+                        relPath.substring(0, relPath.lastIndexOf('.')) :
+                        relPath).replace('/', '.');
+                if (fo.isFolder()) {
+                    ret = ret + '*';
+                }
             }
         }
-        return null;
+        return ret;
     }
+
 }
diff --git a/groovy/gradle.java/src/org/netbeans/modules/gradle/java/action-mapping.xml b/groovy/gradle.java/src/org/netbeans/modules/gradle/java/action-mapping.xml
index 32d303a..3a616bd 100644
--- a/groovy/gradle.java/src/org/netbeans/modules/gradle/java/action-mapping.xml
+++ b/groovy/gradle.java/src/org/netbeans/modules/gradle/java/action-mapping.xml
@@ -40,12 +40,12 @@
         </action>
 
         <action name="debug.fix" repeatable="false">
-            <args>--offline --no-rebuild ${affectedBuildTasks}</args>
+            <args>--offline ${affectedBuildTasks}</args>
             <reload rule="NEVER"/>
         </action>
 
         <action name="compile.single" repetable="false">
-            <args>--offline --no-rebuild ${affectedBuildTasks}</args>
+            <args>--offline ${affectedBuildTasks}</args>
             <reload rule="NEVER"/>
         </action>
 
diff --git a/groovy/gradle.java/src/org/netbeans/modules/gradle/java/api/output/LocationOpener.java b/groovy/gradle.java/src/org/netbeans/modules/gradle/java/api/output/LocationOpener.java
index 7cfc359..0974c80 100644
--- a/groovy/gradle.java/src/org/netbeans/modules/gradle/java/api/output/LocationOpener.java
+++ b/groovy/gradle.java/src/org/netbeans/modules/gradle/java/api/output/LocationOpener.java
@@ -85,23 +85,20 @@ public final class LocationOpener {
         JavaSource javaSource = JavaSource.forFileObject(fo);
         if (javaSource != null) {
             try {
-                javaSource.runUserActionTask(new Task<CompilationController>() {
-                    @Override
-                    public void run(CompilationController compilationController) throws Exception {
-                        compilationController.toPhase(JavaSource.Phase.ELEMENTS_RESOLVED);
-                        Trees trees = compilationController.getTrees();
-                        CompilationUnitTree compilationUnitTree = compilationController.getCompilationUnit();
-                        List<? extends Tree> typeDecls = compilationUnitTree.getTypeDecls();
-                        for (Tree tree : typeDecls) {
-                            Element element = trees.getElement(trees.getPath(compilationUnitTree, tree));
-                            if (element != null && element.getKind() == ElementKind.CLASS && element.getSimpleName().contentEquals(fo.getName())) {
-                                List<? extends ExecutableElement> methodElements = ElementFilter.methodsIn(element.getEnclosedElements());
-                                for (Element child : methodElements) {
-                                    if (child.getSimpleName().contentEquals(methodName)) {
-                                        long pos = trees.getSourcePositions().getStartPosition(compilationUnitTree, trees.getTree(child));
-                                        line[0] = (int) compilationUnitTree.getLineMap().getLineNumber(pos);
-                                        break;
-                                    }
+                javaSource.runUserActionTask((CompilationController compilationController) -> {
+                    compilationController.toPhase(JavaSource.Phase.ELEMENTS_RESOLVED);
+                    Trees trees = compilationController.getTrees();
+                    CompilationUnitTree compilationUnitTree = compilationController.getCompilationUnit();
+                    List<? extends Tree> typeDecls = compilationUnitTree.getTypeDecls();
+                    for (Tree tree : typeDecls) {
+                        Element element = trees.getElement(trees.getPath(compilationUnitTree, tree));
+                        if (element != null && element.getKind() == ElementKind.CLASS && element.getSimpleName().contentEquals(fo.getName())) {
+                            List<? extends ExecutableElement> methodElements = ElementFilter.methodsIn(element.getEnclosedElements());
+                            for (Element child : methodElements) {
+                                if (child.getSimpleName().contentEquals(methodName)) {
+                                    long pos = trees.getSourcePositions().getStartPosition(compilationUnitTree, trees.getTree(child));
+                                    line[0] = (int) compilationUnitTree.getLineMap().getLineNumber(pos);
+                                    break;
                                 }
                             }
                         }
@@ -120,20 +117,17 @@ public final class LocationOpener {
         JavaSource javaSource = JavaSource.forFileObject(fo);
         if (javaSource != null) {
             try {
-                javaSource.runUserActionTask(new Task<CompilationController>() {
-                    @Override
-                    public void run(CompilationController compilationController) throws Exception {
-                        compilationController.toPhase(JavaSource.Phase.ELEMENTS_RESOLVED);
-                        Trees trees = compilationController.getTrees();
-                        CompilationUnitTree compilationUnitTree = compilationController.getCompilationUnit();
-                        List<? extends Tree> typeDecls = compilationUnitTree.getTypeDecls();
-                        for (Tree tree : typeDecls) {
-                            Element element = trees.getElement(trees.getPath(compilationUnitTree, tree));
-                            if (element != null && element.getKind() == ElementKind.CLASS && element.getSimpleName().contentEquals(fo.getName())) {
-                                long pos = trees.getSourcePositions().getStartPosition(compilationUnitTree, tree);
-                                line[0] = (int) compilationUnitTree.getLineMap().getLineNumber(pos);
-                                break;
-                            }
+                javaSource.runUserActionTask((CompilationController compilationController) -> {
+                    compilationController.toPhase(JavaSource.Phase.ELEMENTS_RESOLVED);
+                    Trees trees = compilationController.getTrees();
+                    CompilationUnitTree compilationUnitTree = compilationController.getCompilationUnit();
+                    List<? extends Tree> typeDecls = compilationUnitTree.getTypeDecls();
+                    for (Tree tree : typeDecls) {
+                        Element element = trees.getElement(trees.getPath(compilationUnitTree, tree));
+                        if (element != null && element.getKind() == ElementKind.CLASS && element.getSimpleName().contentEquals(fo.getName())) {
+                            long pos = trees.getSourcePositions().getStartPosition(compilationUnitTree, tree);
+                            line[0] = (int) compilationUnitTree.getLineMap().getLineNumber(pos);
+                            break;
                         }
                     }
                 }, true);
@@ -147,7 +141,7 @@ public final class LocationOpener {
     public static void openAtLine(FileObject file, final int line) {
         openAtLine(file, line, false);
     }
-    
+
     public static void openAtLine(FileObject file, final int line, final boolean reuse) {
         try {
             DataObject data = DataObject.find(file);


---------------------------------------------------------------------
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


[netbeans] 06/07: [NETBEANS-2399] Make sub Project node as a Tree based on the paths on the Gradle projects

Posted by lk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lkishalmi pushed a commit to branch release110-gradle-patch-1
in repository https://gitbox.apache.org/repos/asf/netbeans.git

commit f5ecf6fc867cffdbe2d8433497f2ebb1315c1a19
Author: Laszlo Kishalmi <la...@gmail.com>
AuthorDate: Sat Apr 20 08:01:36 2019 -0700

    [NETBEANS-2399] Make sub Project node as a Tree based on the paths on
    the Gradle projects
---
 .../modules/gradle/nodes/SubProjectsNode.java      | 79 ++++++++++++++++------
 1 file changed, 58 insertions(+), 21 deletions(-)

diff --git a/groovy/gradle/src/org/netbeans/modules/gradle/nodes/SubProjectsNode.java b/groovy/gradle/src/org/netbeans/modules/gradle/nodes/SubProjectsNode.java
index 3b25ef5..0114cb0 100644
--- a/groovy/gradle/src/org/netbeans/modules/gradle/nodes/SubProjectsNode.java
+++ b/groovy/gradle/src/org/netbeans/modules/gradle/nodes/SubProjectsNode.java
@@ -30,6 +30,7 @@ import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashSet;
 import java.util.List;
 import javax.swing.AbstractAction;
 import javax.swing.Action;
@@ -53,6 +54,11 @@ import org.openide.util.WeakListeners;
 
 import static org.netbeans.modules.gradle.nodes.Bundle.*;
 import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+import org.netbeans.modules.gradle.spi.Utils;
+import org.openide.ErrorManager;
+import org.openide.nodes.Children;
 
 /**
  *
@@ -63,14 +69,23 @@ public class SubProjectsNode extends AbstractNode {
     @StaticResource
     private static final String SP_BADGE
             = "org/netbeans/modules/gradle/resources/gradle-badge.png";
-    private final NbGradleProjectImpl proj;
 
     @NbBundle.Messages("LBL_SubProjects=Sub Projects")
+    public SubProjectsNode(NbGradleProjectImpl proj, String path) {
+        super(FilterNode.Children.create(new SubProjectsChildFactory(proj, path), true));
+        if (":".equals(path)) {     //NOI18N
+            setName("SubProjects"); //NOI18N
+            setDisplayName(LBL_SubProjects());
+        } else {
+            int colon = path.lastIndexOf(':', path.length() - 2);
+            String partName = path.substring(colon + 1, path.length() - 1);
+            setDisplayName(Utils.capitalize(partName));
+            setName(path);
+        }
+    }
+
     public SubProjectsNode(NbGradleProjectImpl proj) {
-        super(FilterNode.Children.create(new SubProjectsChildFactory(proj), true));
-        this.proj = proj;
-        setName("SubProjects"); //NOI18N
-        setDisplayName(LBL_SubProjects());
+        this(proj, ":"); //NOI18N
     }
 
     @Override
@@ -78,7 +93,7 @@ public class SubProjectsNode extends AbstractNode {
         return new Action[]{};
     }
 
-    private Image getIcon(boolean opened) {
+    private static Image getIcon(boolean opened) {
         Image badge = ImageUtilities.loadImage(SP_BADGE, true); //NOI18N
         return ImageUtilities.mergeImages(NodeUtils.getTreeFolderIcon(opened), badge, 8, 8);
     }
@@ -93,13 +108,15 @@ public class SubProjectsNode extends AbstractNode {
         return getIcon(true);
     }
 
-    private static class SubProjectsChildFactory extends ChildFactory<NbGradleProjectImpl> {
+    private static class SubProjectsChildFactory extends ChildFactory<String> {
 
         private final NbGradleProjectImpl project;
         private final PropertyChangeListener listener;
+        private final String rootPath;
 
-        SubProjectsChildFactory(NbGradleProjectImpl proj) {
+        SubProjectsChildFactory(NbGradleProjectImpl proj, String rootPath) {
             project = proj;
+            this.rootPath = rootPath;
             NbGradleProject watcher = project.getProjectWatcher();
             listener = new PropertyChangeListener() {
                 @Override
@@ -115,34 +132,54 @@ public class SubProjectsNode extends AbstractNode {
         }
 
         @Override
-        protected boolean createKeys(final List<NbGradleProjectImpl> modules) {
+        protected boolean createKeys(final List<String> paths) {
             Map<String, File> subProjects = project.getGradleProject().getBaseProject().getSubProjects();
+            Set<String> components = new TreeSet<String>();
+            Set<String> projects = new TreeSet<>();
             for (String path : subProjects.keySet()) {
-                File projDir = subProjects.get(path);
-                FileObject fo = FileUtil.toFileObject(projDir);
+                if (path.startsWith(rootPath)) {
+                    String relPath = path.substring(rootPath.length());
+                    int firstColon = relPath.indexOf(':');
+                    int lastColon = relPath.lastIndexOf(':');
+                    if ((firstColon >= 0) && (firstColon == lastColon)) {
+                        components.add(path.substring(0, rootPath.length() + firstColon + 1));
+                    }
+                    if (firstColon < 0 ) {
+                        projects.add(path);
+                    }
+                }
+            }
+            paths.addAll(components);
+            paths.addAll(projects);
+            return true;
+        }
+
+        @Override
+        protected Node createNodeForKey(String path) {
+            Node ret = null;
+            Map<String, File> subProjects = project.getGradleProject().getBaseProject().getSubProjects();
+            File projectDir = subProjects.get(path);
+            if (projectDir != null) {
+                FileObject fo = FileUtil.toFileObject(projectDir);
                 if (fo != null) {
                     try {
                         Project prj = ProjectManager.getDefault().findProject(fo);
                         if (prj != null && prj.getLookup().lookup(NbGradleProjectImpl.class) != null) {
                             NbGradleProjectImpl proj = (NbGradleProjectImpl) prj;
                             assert prj.getLookup().lookup(LogicalViewProvider.class) != null;
-                            modules.add(proj);
+                            Node original = proj.getLookup().lookup(LogicalViewProvider.class).createLogicalView();
+                            ret = new ProjectFilterNode(proj, original);
                         }
                     } catch (IllegalArgumentException | IOException ex) {
-                        ex.printStackTrace();//TODO log ?
+                        ErrorManager.getDefault().notify(ex);
                     }
                 } else {
                     //TODO broken module reference.. show as such..
                 }
-
+            } else {
+                ret = new SubProjectsNode(project, path);
             }
-            return true;
-        }
-
-        @Override
-        protected Node createNodeForKey(NbGradleProjectImpl proj) {
-            Node original = proj.getLookup().lookup(LogicalViewProvider.class).createLogicalView();
-            return new ProjectFilterNode(proj, original);
+            return ret;
         }
 
     }


---------------------------------------------------------------------
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


[netbeans] 04/07: [NETBEANS-2348] Less intrustive support for Test Package.

Posted by lk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lkishalmi pushed a commit to branch release110-gradle-patch-1
in repository https://gitbox.apache.org/repos/asf/netbeans.git

commit e2dbd2756ab0f03d1e977d168db6519f0bed7dfd
Author: Laszlo Kishalmi <la...@gmail.com>
AuthorDate: Fri Apr 12 20:00:58 2019 -0700

    [NETBEANS-2348] Less intrustive support for Test Package.
---
 .../gradle/java/GradleJavaTokenProvider.java       |  6 +-
 .../modules/gradle/java/JavaActionProvider.java    | 65 ++++++++++------------
 .../modules/gradle/java/action-mapping.xml         |  3 -
 .../modules/gradle/ActionProviderImpl.java         | 19 +------
 4 files changed, 34 insertions(+), 59 deletions(-)

diff --git a/groovy/gradle.java/src/org/netbeans/modules/gradle/java/GradleJavaTokenProvider.java b/groovy/gradle.java/src/org/netbeans/modules/gradle/java/GradleJavaTokenProvider.java
index 980c122..87018fb 100644
--- a/groovy/gradle.java/src/org/netbeans/modules/gradle/java/GradleJavaTokenProvider.java
+++ b/groovy/gradle.java/src/org/netbeans/modules/gradle/java/GradleJavaTokenProvider.java
@@ -59,7 +59,6 @@ public class GradleJavaTokenProvider implements ReplaceTokenProvider {
     private static final Set<String> SUPPORTED = Collections.unmodifiableSet(new HashSet(Arrays.asList(
             "selectedClass",       //NOI18N
             "selectedMethod",      //NOI18N
-            "selectedPackage",     //NOI18N
             "affectedBuildTasks"   //NOI18N
     )));
 
@@ -97,9 +96,10 @@ public class GradleJavaTokenProvider implements ReplaceTokenProvider {
                             relPath).replace('/', '.');
                     map.put("selectedClass", className);  //NOI18N
                     f = f.getParentFile();
+                } else {
+                    String pkg = sourceSet.relativePath(f).replace('/', '.');
+                    map.put("selectedClass", pkg + "*"); //NOI18N
                 }
-                String pkg = sourceSet.relativePath(f).replace('/', '.');
-                map.put("selectedPackage", pkg); //NOI18N
             }
         }
     }
diff --git a/groovy/gradle.java/src/org/netbeans/modules/gradle/java/JavaActionProvider.java b/groovy/gradle.java/src/org/netbeans/modules/gradle/java/JavaActionProvider.java
index 3add6f2..4aab8cb 100644
--- a/groovy/gradle.java/src/org/netbeans/modules/gradle/java/JavaActionProvider.java
+++ b/groovy/gradle.java/src/org/netbeans/modules/gradle/java/JavaActionProvider.java
@@ -47,7 +47,6 @@ import org.openide.util.lookup.ServiceProvider;
 @ServiceProvider(service = GradleActionsProvider.class)
 public class JavaActionProvider extends DefaultGradleActionsProvider {
 
-    public static final String COMMAND_TEST_SINGLE_PACKAGE = "test.single.package"; //NOI18N
     private static final String GATLING_PLUGIN = "com.github.lkishalmi.gatling"; //NOI18N
     private static final String SIMULATION_POSTFIX = "Simulation.scala"; //NOI18N
 
@@ -67,7 +66,6 @@ public class JavaActionProvider extends DefaultGradleActionsProvider {
         COMMAND_RUN_SINGLE,
         COMMAND_DEBUG_SINGLE,
         COMMAND_COMPILE_SINGLE,
-        COMMAND_TEST_SINGLE_PACKAGE
     };
 
     public JavaActionProvider() {
@@ -86,47 +84,42 @@ public class JavaActionProvider extends DefaultGradleActionsProvider {
                 } else {
                     ret = false;
                     GradleJavaProject gjp = GradleJavaProject.get(project);
-                    switch (action) {
-                        case COMMAND_COMPILE_SINGLE:
-                            FileBuiltQuery.Status status = FileBuiltQuery.getStatus(fo);
-                            ret = status == null || !status.isBuilt();
-                            break;
-                        case COMMAND_DEBUG_SINGLE:
-                        case COMMAND_RUN_SINGLE: {
-                            if (RunUtils.isAugmentedBuildEnabled(project) && (gjp != null)) {
-                                File f = FileUtil.toFile(fo);
-                                GradleJavaSourceSet sourceSet = gjp.containingSourceSet(f);
-                                if ((sourceSet != null) && fo.isData()) {
-                                    String relPath = sourceSet.relativePath(f);
-                                    if (relPath != null) {
-                                        relPath = relPath.substring(0, relPath.lastIndexOf('.')).replace('/', '.');
-                                        ret = SourceUtils.isMainClass(relPath, ClasspathInfo.create(fo), true);
+                    if ( gjp != null ) {
+                        switch (action) {
+                            case COMMAND_COMPILE_SINGLE:
+                                FileBuiltQuery.Status status = FileBuiltQuery.getStatus(fo);
+                                ret = status == null || !status.isBuilt();
+                                break;
+                            case COMMAND_DEBUG_SINGLE:
+                            case COMMAND_RUN_SINGLE:
+                                if (RunUtils.isAugmentedBuildEnabled(project)) {
+                                    File f = FileUtil.toFile(fo);
+                                    GradleJavaSourceSet sourceSet = gjp.containingSourceSet(f);
+                                    if ((sourceSet != null) && fo.isData()) {
+                                        String relPath = sourceSet.relativePath(f);
+                                        if (relPath != null) {
+                                            relPath = relPath.substring(0, relPath.lastIndexOf('.')).replace('/', '.');
+                                            ret = SourceUtils.isMainClass(relPath, ClasspathInfo.create(fo), true);
+                                        }
                                     }
                                 }
-                            }
-
-                            break;
-                        }
-                        case COMMAND_TEST_SINGLE:
-                        case COMMAND_DEBUG_TEST_SINGLE:
-                        case COMMAND_RUN_SINGLE_METHOD:
-                        case COMMAND_DEBUG_SINGLE_METHOD: {
-                            if ("text/x-java".equals(fo.getMIMEType())) { //NOI18N
-                                if ( gjp != null ) {
+                                break;
+                            case COMMAND_TEST_SINGLE:
+                            case COMMAND_DEBUG_TEST_SINGLE:
+                            case COMMAND_RUN_SINGLE_METHOD:
+                            case COMMAND_DEBUG_SINGLE_METHOD:
+                                if ("text/x-java".equals(fo.getMIMEType())) { //NOI18N
                                     File f = FileUtil.toFile(fo);
                                     GradleJavaSourceSet sourceSet = gjp.containingSourceSet(f);
                                     ret = sourceSet != null && sourceSet.isTestSourceSet() && sourceSet.getSourceType(f) != RESOURCES;
                                 }
-                            }
-                            break;
+                                if ( fo.isFolder() ) {
+                                    File dir = FileUtil.toFile(fo);
+                                    GradleJavaSourceSet sourceSet = gjp.containingSourceSet(dir);
+                                    ret = sourceSet != null && sourceSet.getSourceType(dir) != RESOURCES;
+                                }
+                                break;
                         }
-                        case COMMAND_TEST_SINGLE_PACKAGE:
-                            if ( (gjp != null) && fo.isFolder() ) {
-                                File dir = FileUtil.toFile(fo);
-                                GradleJavaSourceSet sourceSet = gjp.containingSourceSet(dir);
-                                ret = sourceSet != null && sourceSet.getSourceType(dir) != RESOURCES;
-                            }
-                            break;
                     }
                 }
             }
diff --git a/groovy/gradle.java/src/org/netbeans/modules/gradle/java/action-mapping.xml b/groovy/gradle.java/src/org/netbeans/modules/gradle/java/action-mapping.xml
index 26b9f26..32d303a 100644
--- a/groovy/gradle.java/src/org/netbeans/modules/gradle/java/action-mapping.xml
+++ b/groovy/gradle.java/src/org/netbeans/modules/gradle/java/action-mapping.xml
@@ -25,9 +25,6 @@
         <action name="test.single">
             <args>--rerun-tasks test --tests ${selectedClass}</args>
         </action>
-        <action name="test.single.package">
-            <args>--rerun-tasks test --tests ${selectedPackage}*</args>
-        </action>
         <action name="run.single.method">
             <args>--rerun-tasks test --tests ${selectedMethod}</args>
         </action>
diff --git a/groovy/gradle/src/org/netbeans/modules/gradle/ActionProviderImpl.java b/groovy/gradle/src/org/netbeans/modules/gradle/ActionProviderImpl.java
index 7527dc9..7626954 100644
--- a/groovy/gradle/src/org/netbeans/modules/gradle/ActionProviderImpl.java
+++ b/groovy/gradle/src/org/netbeans/modules/gradle/ActionProviderImpl.java
@@ -124,28 +124,13 @@ public class ActionProviderImpl implements ActionProvider {
 
     @Override
     public void invokeAction(String command, Lookup context) throws IllegalArgumentException {
-        String cmd = translateCommand(command, context);
-        ActionMapping mapping = ActionToTaskUtils.getActiveMapping(cmd, project);
+        ActionMapping mapping = ActionToTaskUtils.getActiveMapping(command, project);
         invokeProjectAction(project, mapping, context, false);
     }
 
     @Override
     public boolean isActionEnabled(String command, Lookup context) throws IllegalArgumentException {
-        String cmd = translateCommand(command, context);
-        return ActionToTaskUtils.isActionEnabled(cmd, project, context);
-    }
-
-    // TODO: Create an SPI for these kind of translations. Maven projects do something similar
-    // Fix for: NETBEANS-2348
-    private String translateCommand(String command, Lookup context) {
-        String ret = command;
-        if ("test.single".equals(command)) { //NOI18N
-            FileObject fo = RunUtils.extractFileObjectfromLookup(context);
-            if (fo.isFolder()) {
-                ret = "test.single.package"; //NOI18N
-            }
-        }
-        return ret;
+        return ActionToTaskUtils.isActionEnabled(command, project, context);
     }
 
     @NbBundle.Messages({


---------------------------------------------------------------------
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