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

jlahoda pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/incubator-netbeans-jackpot30.git


The following commit(s) were added to refs/heads/master by this push:
     new a398cba  Fixing the maven plugin for jackpot; various related 
improvements.
a398cba is described below

commit a398cba7679a1a6e0591b6b227f107fdb19d7b6d
Author: Jan Lahoda <lah...@gmail.com>
AuthorDate: Sun Mar 17 23:02:24 2019 +0100

    Fixing the maven plugin for jackpot; various related improvements.
---
 cmdline/README.md                                  |   5 +-
 cmdline/build.xml                                  |  30 ++++++
 cmdline/maven/pom.xml                              |  39 +++++--
 .../modules/jackpot30/maven/RunAnalyze.java        |   2 +-
 .../netbeans/modules/jackpot30/maven/RunApply.java |   2 +-
 .../modules/jackpot30/maven/RunJackpot30.java      |  20 +++-
 .../modules/jackpot30/maven/ShowGuiJackpot30.java  |   2 +-
 .../netbeans/modules/jackpot30/maven/Utils.java    |   2 +-
 .../modules/jackpot30/maven/RunJackpot30Test.java  |   1 +
 cmdline/maven/tests/sl-15/golden                   |   0
 cmdline/maven/tests/sl-17/golden                   |   3 -
 cmdline/maven/tests/sl-17/jackpot-settings.xml     |  13 ++-
 cmdline/maven/tests/sl-17/pom.xml                  |   4 +-
 .../maven/tests/sl-17/src/main/java/test/App.java  |   4 +-
 cmdline/maven/tests/sl-18/golden                   |   3 +
 .../tests/{sl-15 => sl-18}/jackpot-settings.xml    |  13 ++-
 cmdline/maven/tests/{sl-15 => sl-18}/pom.xml       |   8 +-
 .../{sl-15 => sl-18}/src/main/java/test/App.java   |   4 +-
 cmdline/maven/tests/test-custom/golden             |   2 +-
 cmdline/maven/tests/test-custom/pom.xml            |   4 +-
 cmdline/maven/tests/test1/golden                   |   2 +-
 cmdline/maven/tests/test1/jackpot-settings.xml     |  16 ++-
 cmdline/maven/tests/test1/pom.xml                  |   4 +-
 .../netbeans/modules/jackpot30/cmdline/Main.java   | 117 ++++++++-------------
 .../modules/jackpot30/cmdline/ProcessorImpl.java   |   5 +-
 .../modules/jackpot30/cmdline/CreateTool.java      |   4 +
 .../modules/jackpot30/cmdline/CreateToolTest.java  |   4 -
 .../modules/jackpot30/cmdline/MainTest.java        |  34 +++++-
 28 files changed, 213 insertions(+), 134 deletions(-)

diff --git a/cmdline/README.md b/cmdline/README.md
index e9f4463..9149e4b 100644
--- a/cmdline/README.md
+++ b/cmdline/README.md
@@ -27,10 +27,11 @@ This tool allows to run NetBeans Java code checker without 
the NetBeans IDE. Thi
 
 #### To Build
 
-* NetBeans 10.0
+* Apache NetBeans 10.0
 * JDK 8 and JDK 11
 * bash
-* ant 1.9.9 or above
+* Apache ant 1.9.9 or above
+* Apache Maven 3.3.9 or above
 
 #### To Run
 
diff --git a/cmdline/build.xml b/cmdline/build.xml
index a22e2a8..60e9d18 100644
--- a/cmdline/build.xml
+++ b/cmdline/build.xml
@@ -44,6 +44,7 @@
     </target>
 
     <target name="build-and-test">
+        <property name="version" value="10.0" />
         <condition property="jackpot.root" value="${basedir}" 
else="${basedir}/..">
             <available file="${basedir}/LICENSE" />
         </condition>
@@ -70,6 +71,35 @@
             <env key="JAVA_HOME" path="${JDK11}" />
             <env key="PATH" path="${JDK11}/bin:${env.PATH}" />
         </exec>
+        <echo>Installing tool to the local maven repository:</echo>
+        <exec dir="." executable="mvn" failonerror="true">
+            <arg line="install:install-file 
-Dfile=tool/build/jackpot/jackpot.jar 
-DgroupId=org.apache.netbeans.modules.jackpot30 -DartifactId=tool 
-Dversion=${version} -Dpackaging=jar -DgeneratePom=true" />
+        </exec>
+        <echo>Building maven plugin:</echo>
+        <exec dir="maven" executable="mvn" failonerror="true">
+            <arg line="-Dversion=${version} install -DskipTests" />
+        </exec>
+        <echo>Run plugin tests:</echo>
+        <exec dir="maven" executable="mvn" failonerror="true">
+            <env key="JAVA_HOME" path="${JDK11}" />
+            <arg line="-Dmaven.executable=mvn 
-Djackpot.plugin.version=${version} test" />
+        </exec>
+        <property name="build.maven.repo" location="build/.m2" />
+        <mkdir dir="${build.maven.repo}" />
+        <echo>Installing tool to the target maven repository:</echo>
+        <exec dir="maven" executable="mvn" failonerror="true">
+            <arg line="deploy:deploy-file 
-Dfile=${basedir}/tool/build/jackpot/jackpot.jar 
-DgroupId=org.apache.netbeans.modules.jackpot30 -DartifactId=tool 
-Dversion=${version} -Dpackaging=jar -DgeneratePom=true 
-DaltDeploymentRepository=temp::default::file://${build.maven.repo} 
-Durl=file://${build.maven.repo}" />
+        </exec>
+        <echo>Installing plugin to the target maven repository:</echo>
+        <exec dir="maven" executable="mvn" failonerror="true">
+            <arg line="-DskipTests 
-DaltDeploymentRepository=temp::default::file://${build.maven.repo} deploy" />
+        </exec>
+        <zip destfile="build/.m2.zip">
+            <zipfileset dir="${build.maven.repo}/" />
+            <zipfileset dir="tool/scripts" includes="LICENSE-bin-tool.txt" 
fullpath="META-INF/LICENSE" />
+            <zipfileset dir="tool/scripts" includes="NOTICE-bin-tool.txt" 
fullpath="META-INF/NOTICE" />
+            <zipfileset dir="${jackpot.root}" includes="DISCLAIMER" 
fullpath="META-INF/DISCLAIMER" />
+        </zip>
     </target>
 
     <target name="rat">
diff --git a/cmdline/maven/pom.xml b/cmdline/maven/pom.xml
index 474d465..0fe862e 100644
--- a/cmdline/maven/pom.xml
+++ b/cmdline/maven/pom.xml
@@ -19,12 +19,17 @@
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
   <modelVersion>4.0.0</modelVersion>
 
-  <groupId>org.netbeans.modules.jackpot30</groupId>
+  <groupId>org.apache.netbeans.modules.jackpot30</groupId>
   <artifactId>jackpot30-maven-plugin</artifactId>
-  <version>9.0-SNAPSHOT</version>
+  <version>10.0</version>
   <packaging>maven-plugin</packaging>
 
   <name>Jackpot 3.0 Command Line Tool Maven Bridge</name>
+  <parent>
+    <groupId>org.apache.netbeans</groupId>
+    <artifactId>netbeans-parent</artifactId>
+    <version>1</version>
+  </parent>
   <url>https://bitbucket.org/jlahoda/jackpot30/overview</url>
 
   <properties>
@@ -36,12 +41,22 @@
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-plugin-api</artifactId>
-      <version>2.0</version>
+      <version>2.1.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-toolchain</artifactId>
+      <version>2.1.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-core</artifactId>
+      <version>2.1.0</version>
     </dependency>
     <dependency>
-      <groupId>org.netbeans.modules.jackpot30</groupId>
+      <groupId>org.apache.netbeans.modules.jackpot30</groupId>
       <artifactId>tool</artifactId>
-      <version>9.0-SNAPSHOT</version>
+      <version>${version}</version>
     </dependency>
     <dependency>
       <groupId>junit</groupId>
@@ -79,12 +94,20 @@
           <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-compiler-plugin</artifactId>
-              <version>2.3.2</version>
+              <version>3.8.0</version>
               <configuration>
-                  <source>1.5</source>
-                  <target>1.5</target>
+                  <compilerArgs>
+                      <arg>-AdisableJackpotProcessor=true</arg>
+                  </compilerArgs>
+                  <source>1.8</source>
+                  <target>1.8</target>
               </configuration>
           </plugin>
+         <plugin>
+             <groupId>org.apache.maven.plugins</groupId>
+             <artifactId>maven-plugin-plugin</artifactId>
+             <version>3.5.2</version>
+         </plugin>
       </plugins>
   </build>
 </project>
diff --git 
a/cmdline/maven/src/main/java/org/netbeans/modules/jackpot30/maven/RunAnalyze.java
 
b/cmdline/maven/src/main/java/org/netbeans/modules/jackpot30/maven/RunAnalyze.java
index f90991a..234c6a0 100644
--- 
a/cmdline/maven/src/main/java/org/netbeans/modules/jackpot30/maven/RunAnalyze.java
+++ 
b/cmdline/maven/src/main/java/org/netbeans/modules/jackpot30/maven/RunAnalyze.java
@@ -30,7 +30,7 @@ import org.apache.maven.project.MavenProject;
 public class RunAnalyze extends RunJackpot30 {
 
     /**
-     * @parameter expression="${project}"
+     * @parameter property="project"
      * @required
      * @readonly
      */
diff --git 
a/cmdline/maven/src/main/java/org/netbeans/modules/jackpot30/maven/RunApply.java
 
b/cmdline/maven/src/main/java/org/netbeans/modules/jackpot30/maven/RunApply.java
index c5f60b6..84863bb 100644
--- 
a/cmdline/maven/src/main/java/org/netbeans/modules/jackpot30/maven/RunApply.java
+++ 
b/cmdline/maven/src/main/java/org/netbeans/modules/jackpot30/maven/RunApply.java
@@ -30,7 +30,7 @@ import org.apache.maven.project.MavenProject;
 public class RunApply extends RunJackpot30 {
 
     /**
-     * @parameter expression="${project}"
+     * @parameter property="project"
      * @required
      * @readonly
      */
diff --git 
a/cmdline/maven/src/main/java/org/netbeans/modules/jackpot30/maven/RunJackpot30.java
 
b/cmdline/maven/src/main/java/org/netbeans/modules/jackpot30/maven/RunJackpot30.java
index 1a329c5..567fe18 100644
--- 
a/cmdline/maven/src/main/java/org/netbeans/modules/jackpot30/maven/RunJackpot30.java
+++ 
b/cmdline/maven/src/main/java/org/netbeans/modules/jackpot30/maven/RunJackpot30.java
@@ -20,6 +20,10 @@ package org.netbeans.modules.jackpot30.maven;
 
 import java.io.File;
 import java.io.IOException;
+import java.nio.file.DirectoryStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -80,10 +84,22 @@ public abstract class RunJackpot30 extends AbstractMojo {
                 return ;
             }
 
-            Main.compile(cmdLine.toArray(new String[0]));
+            Path bin = Paths.get(System.getProperty("java.home"))
+                            .resolve("bin");
+            Path launcher = bin.resolve("java");
+            if (!Files.exists(launcher)) {
+                launcher = bin.resolve("java.exe");
+            }
+            cmdLine.addAll(0, 
Arrays.asList(launcher.toAbsolutePath().toString(),
+                                            "-classpath", 
Main.class.getProtectionDomain().getCodeSource().getLocation().getPath(),
+                                            
"--add-exports=jdk.javadoc/com.sun.tools.javadoc.main=ALL-UNNAMED",
+                                            
"--add-opens=java.base/java.net=ALL-UNNAMED",
+                                            
"--add-opens=java.desktop/sun.awt=ALL-UNNAMED",
+                                            Main.class.getCanonicalName()));
+            new ProcessBuilder(cmdLine).inheritIO().start().waitFor();
         } catch (IOException ex) {
             throw new MojoExecutionException(ex.getMessage(), ex);
-        } catch (ClassNotFoundException ex) {
+        } catch (InterruptedException ex) {
             throw new MojoExecutionException(ex.getMessage(), ex);
         } catch (DependencyResolutionRequiredException ex) {
             throw new MojoExecutionException(ex.getMessage(), ex);
diff --git 
a/cmdline/maven/src/main/java/org/netbeans/modules/jackpot30/maven/ShowGuiJackpot30.java
 
b/cmdline/maven/src/main/java/org/netbeans/modules/jackpot30/maven/ShowGuiJackpot30.java
index cdcf0c2..d96a1df 100644
--- 
a/cmdline/maven/src/main/java/org/netbeans/modules/jackpot30/maven/ShowGuiJackpot30.java
+++ 
b/cmdline/maven/src/main/java/org/netbeans/modules/jackpot30/maven/ShowGuiJackpot30.java
@@ -35,7 +35,7 @@ import org.netbeans.modules.jackpot30.cmdline.Main;
 public class ShowGuiJackpot30 extends AbstractMojo {
 
     /**
-     * @parameter expression="${project}"
+     * @parameter property="project"
      * @required
      * @readonly
      */
diff --git 
a/cmdline/maven/src/main/java/org/netbeans/modules/jackpot30/maven/Utils.java 
b/cmdline/maven/src/main/java/org/netbeans/modules/jackpot30/maven/Utils.java
index 3278617..5ea91a9 100644
--- 
a/cmdline/maven/src/main/java/org/netbeans/modules/jackpot30/maven/Utils.java
+++ 
b/cmdline/maven/src/main/java/org/netbeans/modules/jackpot30/maven/Utils.java
@@ -47,7 +47,7 @@ public class Utils {
     }
 
     public static String getJackpotConfigurationFile(MavenProject project) {
-        Xpp3Dom configuration = getPluginConfiguration(project, 
"org.netbeans.modules.jackpot30", "jackpot30-maven-plugin");
+        Xpp3Dom configuration = getPluginConfiguration(project, 
"org.apache.netbeans.modules.jackpot30", "jackpot30-maven-plugin");
         
         if (configuration != null) {
             Xpp3Dom configurationFileElement = 
configuration.getChild("configurationFile");
diff --git 
a/cmdline/maven/src/test/java/org/netbeans/modules/jackpot30/maven/RunJackpot30Test.java
 
b/cmdline/maven/src/test/java/org/netbeans/modules/jackpot30/maven/RunJackpot30Test.java
index a4ce6fe..ab8bd81 100644
--- 
a/cmdline/maven/src/test/java/org/netbeans/modules/jackpot30/maven/RunJackpot30Test.java
+++ 
b/cmdline/maven/src/test/java/org/netbeans/modules/jackpot30/maven/RunJackpot30Test.java
@@ -67,6 +67,7 @@ public class RunJackpot30Test extends TestCase {
 
         Process p = Runtime.getRuntime().exec(new String[] {
             maven,
+            "-Djackpot.plugin.version=10.0",
             "-q",
             "jackpot30:analyze"
         }, null, testDir);
diff --git a/cmdline/maven/tests/sl-15/golden b/cmdline/maven/tests/sl-15/golden
deleted file mode 100644
index e69de29..0000000
diff --git a/cmdline/maven/tests/sl-17/golden b/cmdline/maven/tests/sl-17/golden
index ca57851..e69de29 100644
--- a/cmdline/maven/tests/sl-17/golden
+++ b/cmdline/maven/tests/sl-17/golden
@@ -1,3 +0,0 @@
-${basedir}/src/main/java/test/App.java:51: warning: [Can_Use_Diamond] 
redundant type arguments in new expression (use diamond operator instead).
-        List<String> l = new ArrayList<String>();
-                             ^
diff --git a/cmdline/maven/tests/sl-17/jackpot-settings.xml 
b/cmdline/maven/tests/sl-17/jackpot-settings.xml
index ad1cb92..a0a69de 100644
--- a/cmdline/maven/tests/sl-17/jackpot-settings.xml
+++ b/cmdline/maven/tests/sl-17/jackpot-settings.xml
@@ -16,8 +16,11 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<hints>
-    <settings>
-        <Javac_canUseDiamond enabled="true"/>
-    </settings>
-</hints>
+<!DOCTYPE configuration PUBLIC "-//NetBeans//DTD Tool Configuration 1.0//EN" 
"http://www.netbeans.org/dtds/ToolConfiguration-1_0.dtd";>
+<configuration>
+    <tool kind="hints" type="text/x-java">
+        <node name="Javac_canUseLambda">
+            <attribute name="enabled" value="true"/>
+        </node>
+    </tool>
+</configuration>
diff --git a/cmdline/maven/tests/sl-17/pom.xml 
b/cmdline/maven/tests/sl-17/pom.xml
index 7d2e6ae..405c3e6 100644
--- a/cmdline/maven/tests/sl-17/pom.xml
+++ b/cmdline/maven/tests/sl-17/pom.xml
@@ -42,9 +42,9 @@
   <build>
     <plugins>
       <plugin>
-        <groupId>org.netbeans.modules.jackpot30</groupId>
+        <groupId>org.apache.netbeans.modules.jackpot30</groupId>
         <artifactId>jackpot30-maven-plugin</artifactId>
-        <version>1.0-SNAPSHOT</version>
+        <version>${jackpot.plugin.version}</version>
         <configuration>
              <configurationFile>jackpot-settings.xml</configurationFile>
         </configuration>
diff --git a/cmdline/maven/tests/sl-17/src/main/java/test/App.java 
b/cmdline/maven/tests/sl-17/src/main/java/test/App.java
index ed277d6..80b18f6 100644
--- a/cmdline/maven/tests/sl-17/src/main/java/test/App.java
+++ b/cmdline/maven/tests/sl-17/src/main/java/test/App.java
@@ -18,11 +18,9 @@
  */
 package test;
 
-import java.util.*;
-
 public class App  {
 
     public static void main( String[] args ) {
-        List<String> l = new ArrayList<String>();
+        Runnable r = new Runnable() { public void run() { } };
     }
 }
diff --git a/cmdline/maven/tests/sl-18/golden b/cmdline/maven/tests/sl-18/golden
new file mode 100644
index 0000000..880da9c
--- /dev/null
+++ b/cmdline/maven/tests/sl-18/golden
@@ -0,0 +1,3 @@
+${basedir}/src/main/java/test/App.java:24: warning: 
[Convert_to_Lambda_or_Member_Reference] This anonymous inner class creation can 
be turned into a lambda expression.
+        Runnable r = new Runnable() { public void run() { } };
+                         ^
diff --git a/cmdline/maven/tests/sl-15/jackpot-settings.xml 
b/cmdline/maven/tests/sl-18/jackpot-settings.xml
similarity index 71%
rename from cmdline/maven/tests/sl-15/jackpot-settings.xml
rename to cmdline/maven/tests/sl-18/jackpot-settings.xml
index ad1cb92..a0a69de 100644
--- a/cmdline/maven/tests/sl-15/jackpot-settings.xml
+++ b/cmdline/maven/tests/sl-18/jackpot-settings.xml
@@ -16,8 +16,11 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<hints>
-    <settings>
-        <Javac_canUseDiamond enabled="true"/>
-    </settings>
-</hints>
+<!DOCTYPE configuration PUBLIC "-//NetBeans//DTD Tool Configuration 1.0//EN" 
"http://www.netbeans.org/dtds/ToolConfiguration-1_0.dtd";>
+<configuration>
+    <tool kind="hints" type="text/x-java">
+        <node name="Javac_canUseLambda">
+            <attribute name="enabled" value="true"/>
+        </node>
+    </tool>
+</configuration>
diff --git a/cmdline/maven/tests/sl-15/pom.xml 
b/cmdline/maven/tests/sl-18/pom.xml
similarity index 91%
rename from cmdline/maven/tests/sl-15/pom.xml
rename to cmdline/maven/tests/sl-18/pom.xml
index 4dd38ce..d080ea1 100644
--- a/cmdline/maven/tests/sl-15/pom.xml
+++ b/cmdline/maven/tests/sl-18/pom.xml
@@ -42,9 +42,9 @@
   <build>
     <plugins>
       <plugin>
-        <groupId>org.netbeans.modules.jackpot30</groupId>
+        <groupId>org.apache.netbeans.modules.jackpot30</groupId>
         <artifactId>jackpot30-maven-plugin</artifactId>
-        <version>1.0-SNAPSHOT</version>
+        <version>${jackpot.plugin.version}</version>
         <configuration>
              <configurationFile>jackpot-settings.xml</configurationFile>
         </configuration>
@@ -54,8 +54,8 @@
         <artifactId>maven-compiler-plugin</artifactId>
         <version>2.3.2</version>
         <configuration>
-            <source>1.5</source>
-            <target>1.5</target>
+            <source>1.8</source>
+            <target>1.8</target>
         </configuration>
       </plugin>
     </plugins>
diff --git a/cmdline/maven/tests/sl-15/src/main/java/test/App.java 
b/cmdline/maven/tests/sl-18/src/main/java/test/App.java
similarity index 92%
rename from cmdline/maven/tests/sl-15/src/main/java/test/App.java
rename to cmdline/maven/tests/sl-18/src/main/java/test/App.java
index ed277d6..80b18f6 100644
--- a/cmdline/maven/tests/sl-15/src/main/java/test/App.java
+++ b/cmdline/maven/tests/sl-18/src/main/java/test/App.java
@@ -18,11 +18,9 @@
  */
 package test;
 
-import java.util.*;
-
 public class App  {
 
     public static void main( String[] args ) {
-        List<String> l = new ArrayList<String>();
+        Runnable r = new Runnable() { public void run() { } };
     }
 }
diff --git a/cmdline/maven/tests/test-custom/golden 
b/cmdline/maven/tests/test-custom/golden
index 8965aa8..c1e0330 100644
--- a/cmdline/maven/tests/test-custom/golden
+++ b/cmdline/maven/tests/test-custom/golden
@@ -1,3 +1,3 @@
-${basedir}/src/main/java/test/App.java:48: warning: [test] test
+${basedir}/src/main/java/test/App.java:23: warning: [test] test
         System.err.println(args[0].length() == 0);
                            ^
diff --git a/cmdline/maven/tests/test-custom/pom.xml 
b/cmdline/maven/tests/test-custom/pom.xml
index 8a652e4..f263af8 100644
--- a/cmdline/maven/tests/test-custom/pom.xml
+++ b/cmdline/maven/tests/test-custom/pom.xml
@@ -42,9 +42,9 @@
   <build>
     <plugins>
       <plugin>
-        <groupId>org.netbeans.modules.jackpot30</groupId>
+        <groupId>org.apache.netbeans.modules.jackpot30</groupId>
         <artifactId>jackpot30-maven-plugin</artifactId>
-        <version>1.0-SNAPSHOT</version>
+        <version>${jackpot.plugin.version}</version>
       </plugin>
     </plugins>
   </build>
diff --git a/cmdline/maven/tests/test1/golden b/cmdline/maven/tests/test1/golden
index 6488245..6bafa1b 100644
--- a/cmdline/maven/tests/test1/golden
+++ b/cmdline/maven/tests/test1/golden
@@ -1,3 +1,3 @@
-${basedir}/src/main/java/test/App.java:50: warning: 
[Synchronization_on_non_final_field] Synchronization on non-final field
+${basedir}/src/main/java/test/App.java:25: warning: 
[Synchronization_on_non_final_field] Synchronization on non-final field
         synchronized (LOCK) {
                      ^
diff --git a/cmdline/maven/tests/test1/jackpot-settings.xml 
b/cmdline/maven/tests/test1/jackpot-settings.xml
index d7a49c2..bf0a94a 100644
--- a/cmdline/maven/tests/test1/jackpot-settings.xml
+++ b/cmdline/maven/tests/test1/jackpot-settings.xml
@@ -16,8 +16,14 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<hints>
-    <settings>
-        <org.netbeans.modules.java.hints.SyncOnNonFinal enabled="true"/>
-    </settings>
-</hints>
+<!DOCTYPE configuration PUBLIC "-//NetBeans//DTD Tool Configuration 1.0//EN" 
"http://www.netbeans.org/dtds/ToolConfiguration-1_0.dtd";>
+<configuration>
+    <tool kind="hints" type="text/x-java">
+        <node name="org.netbeans.modules.java.hints.SyncOnNonFinal">
+            <attribute name="enabled" value="true"/>
+        </node>
+        <node name="org.netbeans.modules.java.hints.threading.Tiny.canBeFinal">
+            <attribute name="enabled" value="false"/>
+        </node>
+    </tool>
+</configuration>
diff --git a/cmdline/maven/tests/test1/pom.xml 
b/cmdline/maven/tests/test1/pom.xml
index a350188..87b4c1b 100644
--- a/cmdline/maven/tests/test1/pom.xml
+++ b/cmdline/maven/tests/test1/pom.xml
@@ -42,9 +42,9 @@
   <build>
     <plugins>
       <plugin>
-        <groupId>org.netbeans.modules.jackpot30</groupId>
+        <groupId>org.apache.netbeans.modules.jackpot30</groupId>
         <artifactId>jackpot30-maven-plugin</artifactId>
-        <version>1.0-SNAPSHOT</version>
+        <version>${jackpot.plugin.version}</version>
         <configuration>
              <configurationFile>jackpot-settings.xml</configurationFile>
         </configuration>
diff --git a/cmdline/tool/src/org/netbeans/modules/jackpot30/cmdline/Main.java 
b/cmdline/tool/src/org/netbeans/modules/jackpot30/cmdline/Main.java
index 39d995a..d154e78 100644
--- a/cmdline/tool/src/org/netbeans/modules/jackpot30/cmdline/Main.java
+++ b/cmdline/tool/src/org/netbeans/modules/jackpot30/cmdline/Main.java
@@ -19,9 +19,6 @@
 
 package org.netbeans.modules.jackpot30.cmdline;
 
-import java.awt.BorderLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
 import java.io.BufferedWriter;
 import java.io.File;
 import java.io.FileOutputStream;
@@ -30,11 +27,7 @@ import java.io.OutputStreamWriter;
 import java.io.PrintStream;
 import java.io.UncheckedIOException;
 import java.io.Writer;
-import java.lang.reflect.Field;
 import java.lang.reflect.InvocationTargetException;
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -50,7 +43,6 @@ import java.util.Map.Entry;
 import java.util.Set;
 import java.util.TreeSet;
 import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicReference;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 import java.util.prefs.AbstractPreferences;
@@ -58,11 +50,6 @@ import java.util.prefs.BackingStoreException;
 import java.util.prefs.Preferences;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
-import javax.lang.model.SourceVersion;
-import javax.swing.JCheckBox;
-import javax.swing.JDialog;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
 import javax.swing.SwingUtilities;
 import javax.swing.event.ChangeListener;
 import joptsimple.ArgumentAcceptingOptionSpec;
@@ -70,7 +57,6 @@ import joptsimple.OptionException;
 import joptsimple.OptionParser;
 import joptsimple.OptionSet;
 import org.netbeans.api.java.classpath.ClassPath;
-import org.netbeans.api.java.classpath.GlobalPathRegistry;
 import org.netbeans.api.java.source.CompilationController;
 import org.netbeans.api.java.source.ModificationResult;
 import org.netbeans.modules.editor.tools.storage.api.ToolPreferences;
@@ -96,26 +82,20 @@ import 
org.netbeans.modules.java.hints.spiimpl.batch.BatchUtilities;
 import org.netbeans.modules.java.hints.spiimpl.batch.ProgressHandleWrapper;
 import 
org.netbeans.modules.java.hints.spiimpl.batch.ProgressHandleWrapper.ProgressHandleAbstraction;
 import org.netbeans.modules.java.hints.spiimpl.batch.Scopes;
-import org.netbeans.modules.java.hints.spiimpl.options.HintsPanel;
 import org.netbeans.modules.java.hints.spiimpl.options.HintsSettings;
-import 
org.netbeans.modules.java.hints.spiimpl.refactoring.Utilities.ClassPathBasedHintWrapper;
-import org.netbeans.modules.java.source.parsing.JavaPathRecognizer;
 import org.netbeans.modules.parsing.impl.indexing.CacheFolder;
 import org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater;
+import org.netbeans.modules.refactoring.spi.RefactoringElementImplementation;
 import org.netbeans.spi.editor.hints.ErrorDescription;
 import org.netbeans.spi.editor.hints.ErrorDescriptionFactory;
 import org.netbeans.spi.editor.hints.Fix;
 import org.netbeans.spi.editor.hints.Severity;
 import org.netbeans.spi.java.classpath.ClassPathProvider;
-import org.netbeans.spi.java.classpath.PathResourceImplementation;
 import org.netbeans.spi.java.classpath.support.ClassPathSupport;
 import org.netbeans.spi.java.hints.Hint.Kind;
 import org.netbeans.spi.java.queries.SourceLevelQueryImplementation2;
 import org.openide.filesystems.FileObject;
-import org.openide.filesystems.FileStateInvalidException;
 import org.openide.filesystems.FileUtil;
-import org.openide.filesystems.URLMapper;
-import org.openide.util.BaseUtilities;
 import org.openide.util.Exceptions;
 import org.openide.util.Lookup;
 import org.openide.util.Pair;
@@ -145,10 +125,11 @@ public class Main {
         try {
             Class.forName("javax.lang.model.element.ModuleElement");
         } catch (ClassNotFoundException ex) {
-            System.err.println("Error: no suitable javac found, please run on 
JDK 10+.");
+            System.err.println("Error: no suitable javac found, please run on 
JDK 11+.");
             return 1;
         }
         System.setProperty("netbeans.user", "/tmp/tmp-foo");
+        System.setProperty("SourcePath.no.source.filter", "true");
 
         OptionParser parser = new OptionParser();
 //        ArgumentAcceptingOptionSpec<File> projects = 
parser.accepts("project", "project(s) to 
refactor").withRequiredArg().withValuesSeparatedBy(File.pathSeparatorChar).ofType(File.class);
@@ -520,44 +501,31 @@ public class Main {
             return GroupResult.NO_HINTS_FOUND;
         }
 
-        Object[] register2Lookup = new Object[] {
-            new ClassPathProviderImpl(rootConfiguration.bootCP, 
rootConfiguration.compileCP, rootConfiguration.sourceCP),
-            new JavaPathRecognizer(),
-            new SourceLevelQueryImpl(rootConfiguration.sourceCP, sourceLevel)
-        };
-
-        GroupResult[] result = new GroupResult[1];
+        RootConfiguration prevConfig = currentRootConfiguration.get();
 
-        Lookups.executeWith(new ProxyLookup(Lookups.fixed(register2Lookup), 
Lookup.getDefault()), () -> {
-            try {
-                Field implementations = 
ClassPath.class.getDeclaredField("implementations");
-                implementations.setAccessible(true);
-                AtomicReference r = (AtomicReference) 
implementations.get(null);
-                r.set(null);
-            } catch (Throwable t) {
-                throw new IllegalStateException(t);
-            }
+        try {
+            currentRootConfiguration.set(rootConfiguration);
 
             try {
                 if (globalConfig.apply) {
                     apply(hints, rootConfiguration.rootFolders.toArray(new 
Folder[0]), progress, hintSettings, globalConfig.out);
 
-                    result[0] = GroupResult.SUCCESS; //TODO: WarningsAndErrors?
+                    return GroupResult.SUCCESS; //TODO: WarningsAndErrors?
                 } else {
                     findOccurrences(hints, 
rootConfiguration.rootFolders.toArray(new Folder[0]), progress, hintSettings, 
wae);
 
                     if (wae.errors != 0 || (wae.warnings != 0 && 
globalConfig.failOnWarnings)) {
-                        result[0] = GroupResult.FAILURE;
+                        return GroupResult.FAILURE;
                     } else {
-                        result[0] = GroupResult.SUCCESS;
+                        return GroupResult.SUCCESS;
                     }
                 }
             } catch (IOException t) {
                 throw new UncheckedIOException(t);
             }
-        });
-
-        return result[0];
+        } finally {
+            currentRootConfiguration.set(prevConfig);
+        }
     }
 
     private static class MemoryPreferences extends AbstractPreferences {
@@ -687,7 +655,6 @@ public class Main {
         for (Entry<HintMetadata, ? extends Collection<? extends 
HintDescription>> entry: all.entrySet()) {
             if (hardcoded.containsKey(entry.getKey())) {
                 if (toEnableIn.isEnabled(entry.getKey()) && 
entry.getKey().kind == Kind.INSPECTION && 
!entry.getKey().options.contains(Options.NO_BATCH)) {
-                    System.err.println("enabled:" + 
entry.getKey().displayName);
                     descs.addAll(entry.getValue());
                 }
             } else {
@@ -728,7 +695,7 @@ public class Main {
             @Override public void cannotVerifySpan(Resource r) {
                 //TODO: ignored - what to do?
             }
-        }, problems, new AtomicBoolean());
+        }, true, problems, new AtomicBoolean());
     }
 
     private static void print(ErrorDescription error, WarningsAndErrors wae, 
Map<String, String> id2DisplayName) throws IOException {
@@ -766,7 +733,7 @@ public class Main {
         BatchResult occurrences = BatchSearch.findOccurrences(descs, 
Scopes.specifiedFoldersScope(sourceRoot), w, settings);
 
         List<MessageImpl> problems = new LinkedList<MessageImpl>();
-        Collection<ModificationResult> diffs = 
BatchUtilities.applyFixes(occurrences, w, new AtomicBoolean(), problems);
+        Collection<ModificationResult> diffs = 
BatchUtilities.applyFixes(occurrences, w, new AtomicBoolean(), new 
ArrayList<RefactoringElementImplementation>(), null, true, problems);
 
         if (out != null) {
             for (ModificationResult mr : diffs) {
@@ -938,26 +905,26 @@ public class Main {
         }
     }
 
-    public static final class ClassPathProviderImpl implements 
ClassPathProvider {
-        private final ClassPath boot;
-        private final ClassPath compile;
-        private final ClassPath source;
+    private static final ThreadLocal<RootConfiguration> 
currentRootConfiguration = new ThreadLocal<>();
 
-        public ClassPathProviderImpl(ClassPath boot, ClassPath compile, 
ClassPath source) {
-            this.boot = boot;
-            this.compile = compile;
-            this.source = source;
-        }
+    @ServiceProvider(service=ClassPathProvider.class, position=100)
+    public static final class ClassPathProviderImpl implements 
ClassPathProvider {
 
         @Override
         public ClassPath findClassPath(FileObject file, String type) {
-            if (source.findOwnerRoot(file) != null) {
+            RootConfiguration rootConfiguration = 
currentRootConfiguration.get();
+
+            if (rootConfiguration == null) {
+                return null;
+            }
+
+            if (rootConfiguration.sourceCP.findOwnerRoot(file) != null) {
                 if (ClassPath.BOOT.equals(type)) {
-                    return boot;
+                    return rootConfiguration.bootCP;
                 } else if (ClassPath.COMPILE.equals(type)) {
-                    return compile;
+                    return rootConfiguration.compileCP;
                 } else  if (ClassPath.SOURCE.equals(type)) {
-                    return source;
+                    return rootConfiguration.sourceCP;
                 }
             }
 
@@ -965,25 +932,25 @@ public class Main {
         }
     }
 
+    @ServiceProvider(service=SourceLevelQueryImplementation2.class, 
position=100)
     public static final class SourceLevelQueryImpl implements 
SourceLevelQueryImplementation2 {
-        private final ClassPath sourceCP;
-        private final Result sourceLevel;
-
-        public SourceLevelQueryImpl(ClassPath sourceCP, final String 
sourceLevel) {
-            this.sourceCP = sourceCP;
-            this.sourceLevel = new Result() {
-                @Override public String getSourceLevel() {
-                    return sourceLevel;
-                }
-                @Override public void addChangeListener(ChangeListener 
listener) {}
-                @Override public void removeChangeListener(ChangeListener 
listener) {}
-            };
-        }
 
         @Override
         public Result getSourceLevel(FileObject javaFile) {
-            if (sourceCP.findOwnerRoot(javaFile) != null) {
-                return sourceLevel;
+            RootConfiguration rootConfiguration = 
currentRootConfiguration.get();
+
+            if (rootConfiguration == null) {
+                return null;
+            }
+
+            if (rootConfiguration.sourceCP.findOwnerRoot(javaFile) != null) {
+                return new Result() {
+                    @Override public String getSourceLevel() {
+                        return rootConfiguration.sourceLevel;
+                    }
+                    @Override public void addChangeListener(ChangeListener 
listener) {}
+                    @Override public void removeChangeListener(ChangeListener 
listener) {}
+                };
             } else {
                 return null;
             }
diff --git 
a/cmdline/tool/src/org/netbeans/modules/jackpot30/cmdline/ProcessorImpl.java 
b/cmdline/tool/src/org/netbeans/modules/jackpot30/cmdline/ProcessorImpl.java
index 74784bc..0014e97 100644
--- a/cmdline/tool/src/org/netbeans/modules/jackpot30/cmdline/ProcessorImpl.java
+++ b/cmdline/tool/src/org/netbeans/modules/jackpot30/cmdline/ProcessorImpl.java
@@ -93,7 +93,7 @@ import org.openide.util.Lookup;
  * @author lahvac
  */
 @SupportedAnnotationTypes("*")
-@SupportedOptions("hintsConfiguration")
+@SupportedOptions({"hintsConfiguration", "disableJackpotProcessor"})
 public class ProcessorImpl extends AbstractProcessor {
 
     public static final String CONFIGURATION_OPTION = "hintsConfiguration";
@@ -102,7 +102,8 @@ public class ProcessorImpl extends AbstractProcessor {
 
     @Override
     public boolean process(Set<? extends TypeElement> annotations, 
RoundEnvironment roundEnv) {
-
+        if 
("true".equals(processingEnv.getOptions().get("disableJackpotProcessor")))
+            return false;
         if (!roundEnv.processingOver()) {
             Trees trees = Trees.instance(processingEnv);
             for (Element root : roundEnv.getRootElements()) {
diff --git 
a/cmdline/tool/test/unit/src/org/netbeans/modules/jackpot30/cmdline/CreateTool.java
 
b/cmdline/tool/test/unit/src/org/netbeans/modules/jackpot30/cmdline/CreateTool.java
index 1418643..2b04b7b 100644
--- 
a/cmdline/tool/test/unit/src/org/netbeans/modules/jackpot30/cmdline/CreateTool.java
+++ 
b/cmdline/tool/test/unit/src/org/netbeans/modules/jackpot30/cmdline/CreateTool.java
@@ -21,6 +21,7 @@ package org.netbeans.modules.jackpot30.cmdline;
 import java.util.regex.Pattern;
 import javax.annotation.processing.Processor;
 import org.netbeans.modules.jackpot30.cmdline.Main.BCPFallBack;
+import org.netbeans.modules.jackpot30.cmdline.Main.SourceLevelQueryImpl;
 import org.netbeans.modules.jackpot30.cmdline.lib.CreateStandaloneJar;
 import org.netbeans.modules.jackpot30.cmdline.lib.CreateStandaloneJar.Info;
 import org.netbeans.modules.java.hints.declarative.PatternConvertorImpl;
@@ -30,6 +31,7 @@ import org.netbeans.modules.java.j2seproject.J2SEProject;
 import org.netbeans.modules.java.platform.DefaultJavaPlatformProvider;
 import org.netbeans.modules.project.ui.OpenProjectsTrampolineImpl;
 import org.netbeans.spi.java.classpath.ClassPathProvider;
+import org.netbeans.spi.java.queries.SourceLevelQueryImplementation2;
 
 /**
  *
@@ -49,6 +51,8 @@ public class CreateTool extends CreateStandaloneJar {
                          .addMetaInfRegistrations(new 
MetaInfRegistration(org.netbeans.modules.project.uiapi.OpenProjectsTrampoline.class,
 OpenProjectsTrampolineImpl.class))
                          .addMetaInfRegistrations(new 
MetaInfRegistration(Processor.class, ProcessorImpl.class))
                          .addMetaInfRegistrations(new 
MetaInfRegistration(ClassPathProvider.class.getName(), 
BCPFallBack.class.getName(), 9999))
+                         .addMetaInfRegistrations(new 
MetaInfRegistration(ClassPathProvider.class.getName(), 
Main.ClassPathProviderImpl.class.getName(), 100))
+                         .addMetaInfRegistrations(new 
MetaInfRegistration(SourceLevelQueryImplementation2.class.getName(), 
SourceLevelQueryImpl.class.getName(), 100))
                          
.addMetaInfRegistrationToCopy(PatternConvertor.class.getName())
                          
.addExcludePattern(Pattern.compile("junit\\.framework\\..*"));
     }
diff --git 
a/cmdline/tool/test/unit/src/org/netbeans/modules/jackpot30/cmdline/CreateToolTest.java
 
b/cmdline/tool/test/unit/src/org/netbeans/modules/jackpot30/cmdline/CreateToolTest.java
index e65513d..2e3fe02 100644
--- 
a/cmdline/tool/test/unit/src/org/netbeans/modules/jackpot30/cmdline/CreateToolTest.java
+++ 
b/cmdline/tool/test/unit/src/org/netbeans/modules/jackpot30/cmdline/CreateToolTest.java
@@ -188,8 +188,4 @@ public class CreateToolTest extends MainTest {
         };
     }
 
-    public void testSourcePath() throws Exception {
-        //the test is unstable in MainTest, but run it here:
-        DISABLEDtestSourcePath();
-    }
 }
diff --git 
a/cmdline/tool/test/unit/src/org/netbeans/modules/jackpot30/cmdline/MainTest.java
 
b/cmdline/tool/test/unit/src/org/netbeans/modules/jackpot30/cmdline/MainTest.java
index d92851d..5310b20 100644
--- 
a/cmdline/tool/test/unit/src/org/netbeans/modules/jackpot30/cmdline/MainTest.java
+++ 
b/cmdline/tool/test/unit/src/org/netbeans/modules/jackpot30/cmdline/MainTest.java
@@ -457,7 +457,7 @@ public class MainTest extends NbTestCase {
                       "1.6");
     }
 
-    public void DISABLEDtestSourcePath() throws Exception {
+    public void testSourcePath() throws Exception {
         String golden =
             "package test;\n" +
             "public class Test {\n" +
@@ -829,6 +829,38 @@ public class MainTest extends NbTestCase {
                      Arrays.asList(Main.splitGroupArg("a\\ b a\\\\b")));
     }
 
+    public void testSourceLevelMatches1() throws Exception {
+        runSourceLevelMatches("1.8",
+                              "${workdir}/src/test/Test.java:4: warning: 
[Convert_to_Lambda_or_Member_Reference] This anonymous inner class creation can 
be turned into a lambda expression.\n" +
+                              "        Runnable r = new Runnable() { public 
void run() { } };\n" +
+                              "                         ^\n");
+    }
+
+    public void testSourceLevelMatches2() throws Exception {
+        runSourceLevelMatches("1.7",
+                              "");
+    }
+
+    private void runSourceLevelMatches(String sourceLevel, String 
expectedOutput) throws Exception {
+        String code = "package test;\n" +
+                      "public class Test {\n" +
+                      "    private void test(java.util.Collection c) {\n" +
+                      "        Runnable r = new Runnable() { public void run() 
{ } };\n" +
+                      "    }\n" +
+                      "}\n";
+
+        doRunCompiler(code,
+                      expectedOutput,
+                      null,
+                      "src/test/Test.java",
+                      code,
+                      null,
+                      "--hint",
+                      "Convert to Lambda or Member Reference",
+                      "--source",
+                      sourceLevel);
+    }
+
     private static final String DONT_APPEND_PATH = new 
String("DONT_APPEND_PATH");
     private static final String IGNORE = new String("IGNORE");
 


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

Reply via email to