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/11 00:47:32 UTC

[netbeans] branch release110-gradle-patch-1 updated (b2a39ac -> bc64dbd)

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.


 discard b2a39ac  [NETBEANS-2035] Enable Always show Gradle Build output by default.
 discard f5ecf6f  [NETBEANS-2399] Make sub Project node as a Tree based on the paths on the Gradle projects
 discard c3071d7  [NETBEANS-2293] Fix possible NPE on selected method detection.
 discard e2dbd27  [NETBEANS-2348] Less intrustive support for Test Package.
 discard 152d90d  [NETBEANS-2348] Added support for 'Test Package'.
 discard bad021c  [NETBEANS-2378] Tighten the Groovy more to the Gralde plugin
 discard aebe5f9  [NETBEANS-2346] Fixed index out of bound exception in GAV parsing.
     add 8ffe15b  Ensuring important DTDs are used locally when running java.completion… (#1206)
     new 0aa1185  [NETBEANS-2346] Fixed index out of bound exception in GAV parsing.
     new a2921ad  [NETBEANS-2378] Tighten the Groovy more to the Gralde plugin
     new 6ffcaba  [NETBEANS-2348] Added support for 'Test Package'.
     new b58d293  [NETBEANS-2348] Less intrustive support for Test Package.
     new a12d7ce  [NETBEANS-2293] Fix possible NPE on selected method detection.
     new 39ea1e4  [NETBEANS-2399] Make sub Project node as a Tree based on the paths on the Gradle projects
     new bc64dbd  [NETBEANS-2035] Enable Always show Gradle Build output by default.

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (b2a39ac)
            \
             N -- N -- N   refs/heads/release110-gradle-patch-1 (bc64dbd)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

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.


Summary of changes:
 .../modules/java/completion/CompletionTestBase.java  | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)


---------------------------------------------------------------------
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 a12d7ce749703bab29c27d3be0b61f47fcb0a998
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] 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 6ffcaba12406d67b86a50164fac147921f14a2ab
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] 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 0aa1185f2c9af595f9a6c4b368276b9dd613cc6b
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] 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 39ea1e43ae595d57f4bb5c67658e34b6a2ac23fe
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] 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 bc64dbd18c7ac95615dddccbaac7b8196b0ed5fa
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] 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 b58d293919be829f088863016240a1e5c1dd0609
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


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