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