I'd want to be able to work with the module on JDK 1.8 and JDK 11, and
maybe JDK17 later. I'll try again tomorrow.

Kind regards,
Peter


Am 05.02.22 um 19:15 schrieb Michael Bien:
you shouldn't need nb-javac since the javac API is in the JDK.

build on JDK 11 or 17 and it should work. Java 17 however will require
some --add-opens flags added to your maven pom but has the most recent
javac API.

-mbien

On 05.02.22 17:14, Peter Nabbefeld wrote:

I still cannot build the example hint using maven.

Error:
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running org.my.custom.hints.JOptionPaneHintTest
Feb 05, 2022 5:06:15 PM org.netbeans.modules.masterfs.watcher.Watcher
getNotifierForPlatform
INFORMATION: Native file watcher is disabled
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed:
0.411 s <<< FAILURE! - in org.my.custom.hints.JOptionPaneHintTest
[ERROR] testWarningProduced(org.my.custom.hints.JOptionPaneHintTest)
Time elapsed: 0.346 s  <<< ERROR!
java.lang.NoClassDefFoundError: com/sun/tools/javac/util/Abort
    at
org.my.custom.hints.JOptionPaneHintTest.testWarningProduced(JOptionPaneHintTest.java:23)

Caused by: java.lang.ClassNotFoundException:
com.sun.tools.javac.util.Abort
    at
org.my.custom.hints.JOptionPaneHintTest.testWarningProduced(JOptionPaneHintTest.java:23)



Trying to resolve the error by adding nb-javac dependencies results in:

[ERROR] Failures:
[ERROR]   JOptionPaneHintTest.testWarningProduced:30 found JavaSource
for
/tmp/tests-peter/org.my.custom.hints.JOptionPaneHintTest/testWarningProduced/src/test/Test.java@3f9f1b68:bd8db5a



The error is logged in the generated test method.

However, the only available nb-javac-* modules available in maven
central repository are versioned RELEASE82, so they're probably wrong.


Probably someone has a working implementation of a Java Hint (as shown
in the tutorial at
https://netbeans.apache.org/tutorials/nbm-java-hint.html) based on Maven
or knows about some at Github?

Kind regards,
Peter



Am 30.01.22 um 21:22 schrieb Peter Nabbefeld:

Hm, strange, I'll try again next week-end, then. Thank You for helping!

Kind regards,
Peter


Am 30.01.22 um 21:14 schrieb Michael Bien:
I ran the tests which were generated by the wizzard before i gave you
the pom.

-mbien

On 30.01.22 20:45, Peter Nabbefeld wrote:


Thank You for the links, especially the example code looks really
helpful!

But I still have problems with the POM - the auto-generated testfile
fails to compile.

Kind regards,
Peter


/*
 * To change this license header, choose License Headers in Project
Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package org.nb.hintdemo;

import org.junit.Test;
import org.netbeans.modules.java.hints.test.api.HintTest;

/* TODO to make this test work:
   - to ensure that the newest Java language features supported by
the IDE are available,
     regardless of which JDK you build the module with:
   -- for Ant-based modules, add "requires.nb.javac=true" into
nbproject/project.properties
   -- for Maven-based modules, use dependency:copy in validate phase
to create
      target/endorsed/org-netbeans-libs-javacapi-*.jar and add to
endorseddirs
      in maven-compiler-plugin and maven-surefire-plugin
configuration
      See: http://wiki.netbeans.org/JavaHintsTestMaven
 */
public class JOptionPaneHintTest {

    @Test
    public void testWarningProduced() throws Exception {
        HintTest.create()
                .input("package test;\n"
                        + "public class Test {\n"
                        + "    public static void main(String[]
args) {\n"
                        + "        assert args[0].equals(\"\");\n"
                        + "    }\n"
                        + "}\n")
                .run(JOptionPaneHint.class)
                .assertWarnings("3:23-3:29:verifier:" +
Bundle.ERR_JOptionPaneHint());
    }
}



Am 30.01.22 um 20:07 schrieb Michael Bien:
On 30.01.22 19:43, Peter Nabbefeld wrote:

Hello Michael,

thank You for Your reply!

(1) I don't know about those .hint files, so especially I don't
know about how much complexity they can handle. Do You have a
link, probably?

the basics are explained here:

https://netbeans.apache.org/jackpot/HintsFileFormat.html

for some examples for hint files, i have a small collection of
general purpose hints here:

https://github.com/mbien/jackpot-inspections


(2) If complexity grows so that I cannot handle it with .hint
files, I'd still prefer to have a fallback solution with Java
classes, so adding the needed POM to the tutorial would still be
great.


i think its quicker if i give you a pom which works, you can diff
it yourself to figure out the... differences.

This will be able to build a newly created module with a hint in it
(JDK 8 or 11, please update group id etc).


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
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>dev.mbien</groupId>
    <artifactId>hintmod</artifactId>
    <version>0.1-SNAPSHOT</version>
    <packaging>nbm</packaging>
    <build>
        <plugins>
            <plugin>
<groupId>org.apache.netbeans.utilities</groupId>
<artifactId>nbm-maven-plugin</artifactId>
                <version>4.6</version>
<extensions>true</extensions>
            </plugin>
            <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
                <version>3.1.2</version>
                <configuration>
                    <archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>


                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-netbeans-api-annotations-common</artifactId>
            <version>RELEASE126</version>
        </dependency>
        <dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-netbeans-modules-java-source-base</artifactId>
            <version>RELEASE126</version>
        </dependency>
        <dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-netbeans-modules-java-source</artifactId>
            <version>RELEASE126</version>
        </dependency>
        <dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-netbeans-spi-java-hints</artifactId>
            <version>RELEASE126</version>
        </dependency>
        <dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-netbeans-spi-editor-hints</artifactId>
            <version>RELEASE126</version>
        </dependency>
        <dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-openide-util</artifactId>
            <version>RELEASE126</version>
        </dependency>
        <dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-netbeans-libs-javacapi</artifactId>
            <version>RELEASE126</version>
        </dependency>
        <dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-netbeans-modules-java-hints-test</artifactId>
            <version>RELEASE126</version>
            <scope>test</scope>
        </dependency>
        <dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-netbeans-libs-junit4</artifactId>
            <version>RELEASE126</version>
            <scope>test</scope>
        </dependency>
        <dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-netbeans-modules-nbjunit</artifactId>
            <version>RELEASE126</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
</project>


-mbien


---------------------------------------------------------------------

To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

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





---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

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





---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

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





---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

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





---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

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






---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

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



Reply via email to