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

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


The following commit(s) were added to refs/heads/master by this push:
     new 03dae06  Annotation processors in Gradle do not see resources. Turning 
the error into a warning. (#28)
03dae06 is described below

commit 03dae06694bd9b4f0d983fc3a89b50e722c4c9a2
Author: Jaroslav Tulach <[email protected]>
AuthorDate: Thu Aug 20 20:26:28 2020 +0200

    Annotation processors in Gradle do not see resources. Turning the error 
into a warning. (#28)
    
    Co-authored-by: Jaroslav Tulach <[email protected]>
---
 .../html/boot/impl/JavaScriptProcesor.java         | 49 +++++++++++++++-------
 html4j-maven-plugin/pom.xml                        |  3 +-
 .../java/org/netbeans/html/mojo/Gradle1Test.java   |  9 +++-
 .../org/netbeans/html/mojo/gradle1/build.gradle    | 11 +++--
 .../mojo/gradle1/src/main/java/Gradle1Check.java   |  4 +-
 .../src/main/resources/{empty.js => meaning.js}    |  2 +
 6 files changed, 54 insertions(+), 24 deletions(-)

diff --git 
a/boot/src/main/java/org/netbeans/html/boot/impl/JavaScriptProcesor.java 
b/boot/src/main/java/org/netbeans/html/boot/impl/JavaScriptProcesor.java
index 9344809..d87385f 100644
--- a/boot/src/main/java/org/netbeans/html/boot/impl/JavaScriptProcesor.java
+++ b/boot/src/main/java/org/netbeans/html/boot/impl/JavaScriptProcesor.java
@@ -179,22 +179,7 @@ public final class JavaScriptProcesor extends 
AbstractProcessor {
             res = findPkg(e).replace('.', '/') + "/" + r.value();
         }
 
-        try {
-            FileObject os = 
processingEnv.getFiler().getResource(StandardLocation.SOURCE_PATH, "", res);
-            os.openInputStream().close();
-        } catch (IOException ex1) {
-            try {
-                FileObject os2 = 
processingEnv.getFiler().getResource(StandardLocation.CLASS_OUTPUT, "", res);
-                os2.openInputStream().close();
-            } catch (IOException ex2) {
-                try {
-                    FileObject os3 = 
processingEnv.getFiler().getResource(StandardLocation.CLASS_PATH, "", res);
-                    os3.openInputStream().close();
-                } catch (IOException ex3) {
-                    msg.printMessage(Diagnostic.Kind.ERROR, "Cannot find 
resource " + res, e);
-                }
-            }
-        }
+        verifyResource(res, msg, e);
 
         boolean found = false;
         for (Element mthod : e.getEnclosedElements()) {
@@ -213,6 +198,38 @@ public final class JavaScriptProcesor extends 
AbstractProcessor {
         }
     }
 
+    private void verifyResource(final String res, final Messager msg, Element 
e) {
+        Diagnostic.Kind[] missingReferenceError = { Diagnostic.Kind.ERROR };
+        IOException[] ex = { null };
+        if (verifyResourceAtPath(res, StandardLocation.SOURCE_PATH, ex, 
missingReferenceError)) {
+            return;
+        }
+        if (verifyResourceAtPath(res, StandardLocation.CLASS_OUTPUT, ex, 
missingReferenceError)) {
+            return;
+        }
+        if (verifyResourceAtPath(res, StandardLocation.CLASS_PATH, ex, 
missingReferenceError)) {
+            return;
+        }
+        if (ex[0] != null) {
+            ex[0].printStackTrace();
+        }
+        msg.printMessage(missingReferenceError[0], "Cannot find resource " + 
res, e);
+    }
+
+    private boolean verifyResourceAtPath(final String res, StandardLocation 
location, IOException[] exArr, Diagnostic.Kind[] missingReferenceError)  {
+        try {
+            FileObject os = processingEnv.getFiler().getResource(location, "", 
res);
+            os.openInputStream().close();
+            return true;
+        } catch (IOException ex) {
+            exArr[0] = ex;
+            return false;
+        } catch (Exception | Error err) {
+            missingReferenceError[0] = Diagnostic.Kind.MANDATORY_WARNING;
+            return false;
+        }
+    }
+
     @Override
     public Iterable<? extends Completion> getCompletions(Element e,
         AnnotationMirror annotation, ExecutableElement member, String userText
diff --git a/html4j-maven-plugin/pom.xml b/html4j-maven-plugin/pom.xml
index f689c26..deb9d76 100644
--- a/html4j-maven-plugin/pom.xml
+++ b/html4j-maven-plugin/pom.xml
@@ -144,12 +144,13 @@
                   <plugin>
                       <groupId>org.thingsboard</groupId>
                       <artifactId>gradle-maven-plugin</artifactId>
-                      <version>1.0.9</version>
+                      <version>1.0.10</version>
                       <configuration>
                           <tasks>
                               <task>build</task>
                           </tasks>
                           
<gradleProjectDirectory>src/test/resources/org/netbeans/html/mojo/gradle1</gradleProjectDirectory>
+                          <gradleVersion>6.3</gradleVersion>
                       </configuration>
                       <executions>
                           <execution>
diff --git 
a/html4j-maven-plugin/src/test/java/org/netbeans/html/mojo/Gradle1Test.java 
b/html4j-maven-plugin/src/test/java/org/netbeans/html/mojo/Gradle1Test.java
index 0a3335e..1a1ea98 100644
--- a/html4j-maven-plugin/src/test/java/org/netbeans/html/mojo/Gradle1Test.java
+++ b/html4j-maven-plugin/src/test/java/org/netbeans/html/mojo/Gradle1Test.java
@@ -23,6 +23,7 @@ import java.io.Closeable;
 import java.io.Reader;
 import java.net.URL;
 import java.net.URLClassLoader;
+import java.util.Properties;
 import java.util.concurrent.Callable;
 import org.netbeans.html.boot.spi.Fn;
 import static org.testng.Assert.*;
@@ -57,6 +58,7 @@ public class Gradle1Test {
     }
 
     private static final class NumberPresenter implements Fn.Presenter {
+        private final Properties p = new Properties();
 
         private int loadScriptCount;
 
@@ -66,7 +68,11 @@ public class Gradle1Test {
                 code = code.substring(6);
             }
             code = code.replace(';', ' ').trim();
-            return new NumberFn(Integer.valueOf(code));
+            String number = p.getProperty(code);
+            if (number == null) {
+                return new NumberFn(42);
+            }
+            return new NumberFn(Integer.valueOf(number));
         }
 
         @Override
@@ -76,6 +82,7 @@ public class Gradle1Test {
 
         @Override
         public void loadScript(Reader reader) throws Exception {
+            p.load(reader);
             loadScriptCount++;
         }
 
diff --git 
a/html4j-maven-plugin/src/test/resources/org/netbeans/html/mojo/gradle1/build.gradle
 
b/html4j-maven-plugin/src/test/resources/org/netbeans/html/mojo/gradle1/build.gradle
index 060f4bc..9e00c43 100644
--- 
a/html4j-maven-plugin/src/test/resources/org/netbeans/html/mojo/gradle1/build.gradle
+++ 
b/html4j-maven-plugin/src/test/resources/org/netbeans/html/mojo/gradle1/build.gradle
@@ -36,11 +36,14 @@ version '1.0-SNAPSHOT'
 apply plugin: 'java'
 apply plugin: 'html4j'
 
-compileJava {
-    classpath += files("src/main/resources")
-}
+//compileJava {
+//    classpath += files("src/main/resources")
+//}
+
+def jars = fileTree(dir: '../../../../../../../../../boot/target/', include: 
['*.jar'])
 
 dependencies {
-    compile fileTree(dir: '../../../../../../../../../boot/target/', include: 
['*.jar'])
+    compile jars
+    annotationProcessor jars
 }
 
diff --git 
a/html4j-maven-plugin/src/test/resources/org/netbeans/html/mojo/gradle1/src/main/java/Gradle1Check.java
 
b/html4j-maven-plugin/src/test/resources/org/netbeans/html/mojo/gradle1/src/main/java/Gradle1Check.java
index 6fb3e61..d96b273 100644
--- 
a/html4j-maven-plugin/src/test/resources/org/netbeans/html/mojo/gradle1/src/main/java/Gradle1Check.java
+++ 
b/html4j-maven-plugin/src/test/resources/org/netbeans/html/mojo/gradle1/src/main/java/Gradle1Check.java
@@ -21,7 +21,7 @@ import net.java.html.js.JavaScriptBody;
 import java.util.concurrent.Callable;
 import net.java.html.js.JavaScriptResource;
 
-@JavaScriptResource("/empty.js")
+@JavaScriptResource("/meaning.js")
 public class Gradle1Check implements Callable<Integer> {
 
     @Override
@@ -29,7 +29,7 @@ public class Gradle1Check implements Callable<Integer> {
         return compute();
     }
 
-    @JavaScriptBody(args = {}, body = "return 42;")
+    @JavaScriptBody(args = {}, body = "return meaningOfWorld;")
     private static int compute() {
         return -1;
     }
diff --git 
a/html4j-maven-plugin/src/test/resources/org/netbeans/html/mojo/gradle1/src/main/resources/empty.js
 
b/html4j-maven-plugin/src/test/resources/org/netbeans/html/mojo/gradle1/src/main/resources/meaning.js
similarity index 97%
rename from 
html4j-maven-plugin/src/test/resources/org/netbeans/html/mojo/gradle1/src/main/resources/empty.js
rename to 
html4j-maven-plugin/src/test/resources/org/netbeans/html/mojo/gradle1/src/main/resources/meaning.js
index 51da6c0..8e24540 100644
--- 
a/html4j-maven-plugin/src/test/resources/org/netbeans/html/mojo/gradle1/src/main/resources/empty.js
+++ 
b/html4j-maven-plugin/src/test/resources/org/netbeans/html/mojo/gradle1/src/main/resources/meaning.js
@@ -16,3 +16,5 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
+meaningOfWorld = 42;


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