[netbeans] branch master updated: Fixing project loading issues with micronaut complex project.

2022-12-21 Thread lkishalmi
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 861bbffd98 Fixing project loading issues with micronaut complex 
project.
861bbffd98 is described below

commit 861bbffd98935fe96149472fef28bba7e7bf01cc
Author: Svata Dedic 
AuthorDate: Mon Dec 19 19:15:36 2022 +0100

Fixing project loading issues with micronaut complex project.
---
 .../gradle/tooling/NbProjectInfoBuilder.java   | 22 ++
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git 
a/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NbProjectInfoBuilder.java
 
b/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NbProjectInfoBuilder.java
index 0fd561a2cd..b17933e692 100644
--- 
a/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NbProjectInfoBuilder.java
+++ 
b/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NbProjectInfoBuilder.java
@@ -186,7 +186,7 @@ class NbProjectInfoBuilder {
 
 public ValueAndType(Class type, Object value) {
 this.type = type;
-this.value = Optional.of(value);
+this.value = Optional.ofNullable(value);
 }
 
 public ValueAndType(Class type) {
@@ -290,7 +290,7 @@ class NbProjectInfoBuilder {
 Map taskProperties = new HashMap<>();
 Map taskPropertyTypes = new HashMap<>();
 
-Map taskList = project.getTasks().getAsMap();
+Map taskList = new 
HashMap<>(project.getTasks().getAsMap());
 for (String s : taskList.keySet()) {
 Task task = taskList.get(s);
 Class taskClass = task.getClass();
@@ -307,7 +307,7 @@ class NbProjectInfoBuilder {
 private void detectTaskDependencies(NbProjectInfoModel model) {
 Map tasks = new HashMap<>();
 
-Map taskList = project.getTasks().getAsMap();
+Map taskList = new 
HashMap<>(project.getTasks().getAsMap());
 for (String s : taskList.keySet()) {
 Task task = taskList.get(s);
 Map taskInfo = new HashMap<>();
@@ -684,7 +684,7 @@ class NbProjectInfoBuilder {
 }
 
 NamedDomainObjectContainer nc = 
(NamedDomainObjectContainer)value;
-Map m = nc.getAsMap();
+Map m = new HashMap<>(nc.getAsMap());
 List ss = new ArrayList<>(m.keySet());
 propertyTypes.put(prefix + propName + 
COLLECTION_KEYS_MARKER, String.join(";;", ss));
 for (String k : m.keySet()) {
@@ -1000,14 +1000,12 @@ class NbProjectInfoBuilder {
 
 List compilerArgs;
 
-try {
-compilerArgs = (List) 
getProperty(compileTask, "options", "allCompilerArgs");
-} catch (Throwable ex) {
-try {
-compilerArgs = (List) 
getProperty(compileTask, "options", "compilerArgs");
-} catch (Throwable ex2) {
-compilerArgs = (List) 
getProperty(compileTask, "kotlinOptions", "freeCompilerArgs");
-}
+compilerArgs = (List) 
getProperty(compileTask, "options", "allCompilerArgs");
+if (compilerArgs == null) {
+compilerArgs = (List) 
getProperty(compileTask, "options", "compilerArgs");
+}
+if (compilerArgs == null) {
+compilerArgs = (List) 
getProperty(compileTask, "kotlinOptions", "freeCompilerArgs");
 }
 model.getInfo().put(propBase + lang + 
"_compiler_args", new ArrayList<>(compilerArgs));
 }


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

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



[netbeans] branch master updated: globally enable maven stacktrace processing.

2022-12-21 Thread mbien
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 5a46d6d4c6 globally enable maven stacktrace processing.
 new a959587808 Merge pull request #5116 from 
mbien/global-stacktrace-parsing
5a46d6d4c6 is described below

commit 5a46d6d4c685677f5d877eae165fdb8fb5064d4e
Author: Michael Bien 
AuthorDate: Thu Dec 15 23:48:05 2022 +0100

globally enable maven stacktrace processing.
---
 .../output/DefaultOutputProcessorFactory.java  |  4 +-
 .../output/ExecPluginOutputListenerProvider.java   | 51 +++-
 ...der.java => JavaStacktraceOutputProcessor.java} | 55 +++---
 3 files changed, 35 insertions(+), 75 deletions(-)

diff --git 
a/java/maven/src/org/netbeans/modules/maven/output/DefaultOutputProcessorFactory.java
 
b/java/maven/src/org/netbeans/modules/maven/output/DefaultOutputProcessorFactory.java
index 18f923c53b..7f57110442 100644
--- 
a/java/maven/src/org/netbeans/modules/maven/output/DefaultOutputProcessorFactory.java
+++ 
b/java/maven/src/org/netbeans/modules/maven/output/DefaultOutputProcessorFactory.java
@@ -33,13 +33,13 @@ import org.openide.util.lookup.ServiceProvider;
 public class DefaultOutputProcessorFactory implements 
ContextOutputProcessorFactory {
 
 @Override public Set createProcessorsSet(Project project) 
{
-Set toReturn = new HashSet();
+Set toReturn = new HashSet<>();
 if (project != null) {
 toReturn.add(new JavadocOutputProcessor());
 toReturn.add(new TestOutputListenerProvider());
 toReturn.add(new SiteOutputProcessor(project));
 NbMavenProjectImpl nbprj = 
project.getLookup().lookup(NbMavenProjectImpl.class);
-toReturn.add(new ExecPluginOutputListenerProvider(nbprj));
+toReturn.add(new JavaStacktraceOutputProcessor(nbprj));
 toReturn.add(new DependencyAnalyzeOutputProcessor(nbprj));
 }
 return toReturn;
diff --git 
a/java/maven/src/org/netbeans/modules/maven/output/ExecPluginOutputListenerProvider.java
 
b/java/maven/src/org/netbeans/modules/maven/output/ExecPluginOutputListenerProvider.java
index 2da6103946..fa90801d70 100644
--- 
a/java/maven/src/org/netbeans/modules/maven/output/ExecPluginOutputListenerProvider.java
+++ 
b/java/maven/src/org/netbeans/modules/maven/output/ExecPluginOutputListenerProvider.java
@@ -19,64 +19,25 @@
 package org.netbeans.modules.maven.output;
 
 import org.netbeans.modules.maven.NbMavenProjectImpl;
-import org.netbeans.modules.maven.api.output.OutputProcessor;
-import org.netbeans.modules.maven.api.output.OutputUtils;
-import org.netbeans.modules.maven.api.output.OutputVisitor;
-import org.netbeans.api.java.classpath.ClassPath;
-import org.netbeans.api.project.Project;
-import 
org.netbeans.modules.maven.api.classpath.ProjectSourcesClassPathProvider;
-import org.netbeans.spi.java.classpath.support.ClassPathSupport;
-import org.openide.windows.OutputListener;
-
-
 
 
 /**
  * exec plugin output processing, just handle stacktraces.
  * @author  Milos Kleint
+ * 
+ * @deprecated use JavaStacktraceOutputListenerProvider instead
  */
-public class ExecPluginOutputListenerProvider implements OutputProcessor {
-
+public class ExecPluginOutputListenerProvider extends 
JavaStacktraceOutputProcessor {
+
 private static final String[] EXECGOALS = new String[] {
 "mojo-execute#exec:exec", //NOI18N
 "mojo-execute#exec:java", //NOI18N
 "mojo-execute#javafx:run" //NOI18N
 };
-private final NbMavenProjectImpl project;
-
+
 /** Creates a new instance of ExecPluginOutputListenerProvider */
 public ExecPluginOutputListenerProvider(NbMavenProjectImpl proj) {
-project = proj;
-}
-
-@Override
-public void processLine(String line, OutputVisitor visitor) {
-OutputVisitor.Context context = visitor.getContext();
-Project prj = project;
-if (context != null && context.getCurrentProject() != null) {
-prj = context.getCurrentProject();
-}
-OutputListener list = OutputUtils.matchStackTraceLine(line, prj);
-if (list != null) {
-visitor.setOutputListener(list);
-}
+super(proj, EXECGOALS);
 }
 
-@Override
-public String[] getRegisteredOutputSequences() {
-return EXECGOALS;
-}
-
-@Override
-public void sequenceStart(String sequenceId, OutputVisitor visitor) {
-}
-
-@Override
-public void sequenceEnd(String sequenceId, OutputVisitor visitor) {
-}
-
-@Override
-public void sequenceFail(String sequenceId, OutputVisitor visitor) {
-}
-
 }
diff --git 
a/java/maven/src/org/netbeans/modules/maven/output/ExecPluginOutputListenerProvider.java
 

[netbeans] branch master updated: fix output window stacktrace parsing when mvnd is used.

2022-12-21 Thread mbien
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new b2856f4e59 fix output window stacktrace parsing when mvnd is used.
 new 8678d582a4 Merge pull request #5099 from 
mbien/mvnd-stacktrace-parsing-fix
b2856f4e59 is described below

commit b2856f4e59642c20c747888ff29aefa10b8b622b
Author: Michael Bien 
AuthorDate: Mon Dec 12 22:44:24 2022 +0100

fix output window stacktrace parsing when mvnd is used.

mvnd is using WARN instead of WARNING and prints the output type
(stderr|stdout) on exceptions.

Improvements to some regex patterns so that the faster match() can
be used instead of find(), which improves parsing speed of long lines.
---
 .../modules/maven/api/output/OutputUtils.java  | 13 +++---
 .../maven/execute/CommandLineOutputHandler.java| 52 +-
 .../output/DependencyAnalyzeOutputProcessor.java   |  3 +-
 .../maven/output/JavaOutputListenerProvider.java   |  2 +-
 4 files changed, 50 insertions(+), 20 deletions(-)

diff --git 
a/java/maven/src/org/netbeans/modules/maven/api/output/OutputUtils.java 
b/java/maven/src/org/netbeans/modules/maven/api/output/OutputUtils.java
index 88a8e09a2b..ae905247fd 100644
--- a/java/maven/src/org/netbeans/modules/maven/api/output/OutputUtils.java
+++ b/java/maven/src/org/netbeans/modules/maven/api/output/OutputUtils.java
@@ -50,7 +50,9 @@ import org.openide.windows.OutputListener;
  * @author mkleint
  */
 public final class OutputUtils {
-public static final Pattern linePattern = 
Pattern.compile("(?:\\[catch\\])?\\sat (.*)\\((?:Native 
Method|(.*)\\.java\\:(\\d+))\\)"); //NOI18N
+
+// example: '[WARN]at 
java.base/java.util.ImmutableCollections.uoe(ImmutableCollections.java:142)'
+public static final Pattern linePattern = 
Pattern.compile("(?:\\[\\w+\\])?\\s*(?:\\[catch\\]\\s)?at\\s(.*)\\((?:Native 
Method|(.*)\\.java\\:(\\d+))\\)"); //NOI18N
  
 private static final Map 
projectStacktraceListeners = new WeakHashMap<>();
 private static final Map 
fileStacktraceListeners = new WeakHashMap<>();
@@ -115,13 +117,10 @@ public final class OutputUtils {
 return null;
 }
 
-/**
- * 
- * @param line
- * @param classPath
- * @return 
- */
 private static StacktraceAttributes matchStackTraceLine(String line) {
+if (!line.endsWith(")")) {
+return null; // fast path -> not a stack trace
+}
 Matcher match = linePattern.matcher(line);
 if (match.matches() && match.groupCount() == 3) {
 String method = match.group(1);
diff --git 
a/java/maven/src/org/netbeans/modules/maven/execute/CommandLineOutputHandler.java
 
b/java/maven/src/org/netbeans/modules/maven/execute/CommandLineOutputHandler.java
index ea8bcf98d0..0e4f54fff8 100644
--- 
a/java/maven/src/org/netbeans/modules/maven/execute/CommandLineOutputHandler.java
+++ 
b/java/maven/src/org/netbeans/modules/maven/execute/CommandLineOutputHandler.java
@@ -78,16 +78,25 @@ public class CommandLineOutputHandler extends 
AbstractOutputHandler {
 private static final RequestProcessor PROCESSOR = new 
RequestProcessor("Maven ComandLine Output Redirection", 
Integer.getInteger("maven.concurrent.builds", 16) * 2); //NOI18N
 private static final Logger LOG = 
Logger.getLogger(CommandLineOutputHandler.class.getName());
 private InputOutput inputOutput;
-private static final Pattern linePattern = 
Pattern.compile("\\[(DEBUG|INFO|WARNING|ERROR|FATAL)\\] (.*)"); // NOI18N
+
+/*
+ * example: '[WARN] [stderr] Exception in thread "main" 
java.lang.UnsupportedOperationException'
+ * @see Output#mapLevel for details
+ */
+private static final Pattern linePattern = 
Pattern.compile("(\\[(DEBUG|TRACE|INFO|WARN|WARNING|ERROR|FATAL)\\]\\s)?(?:\\[(?:stderr|stdout)\\]\\s)?(.*)");
 // NOI18N
+
 public static final Pattern startPatternM2 = Pattern.compile("\\[INFO\\] 
\\[([\\w]*):([\\w]*)[ ]?.*\\]"); // NOI18N
 public static final Pattern startPatternM3 = Pattern.compile("\\[INFO\\] 
--- (\\S+):\\S+:(\\S+)(?: [(]\\S+[)])? @ \\S+ ---"); // 
ExecutionEventLogger.mojoStarted NOI18N
+
 private static final Pattern mavenSomethingPlugin = 
Pattern.compile("maven-(.+)-plugin"); // NOI18N
 private static final Pattern somethingMavenPlugin = 
Pattern.compile("(.+)-maven-plugin"); // NOI18N
+
 /** @see org.apache.maven.cli.ExecutionEventLogger#logReactorSummary */
 static final Pattern reactorFailure = Pattern.compile("\\[INFO\\] (.+) 
[.]* FAILURE \\[.+\\]"); // NOI18N
-private static final Pattern stackTraceElement = OutputUtils.linePattern;
-
 public static final Pattern reactorSummaryLine = Pattern.compile("(.+) 
[.]* (FAILURE|SUCCESS) (\\[.+\\])?"); // NOI18N
+
+private static final Pattern stackTraceElement =