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:22 UTC
[netbeans] 03/07: [NETBEANS-2348] Added support for 'Test Package'.
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