This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 26074e82794 CAMEL-20141: Add debug logging to Java compiler via joor
to better see what happens (#12185)
26074e82794 is described below
commit 26074e827943fcf1e247dae4b1e6d334415c6514
Author: Claus Ibsen <[email protected]>
AuthorDate: Thu Nov 23 19:05:23 2023 +0100
CAMEL-20141: Add debug logging to Java compiler via joor to better see what
happens (#12185)
---
.../java/org/apache/camel/language/joor/JoorCompiler.java | 2 ++
.../org/apache/camel/language/joor/JoorScriptingCompiler.java | 2 ++
.../java/org/apache/camel/dsl/java/joor/CompilationUnit.java | 5 +++++
.../apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java | 5 ++++-
.../java/org/apache/camel/dsl/java/joor/MultiCompile.java | 11 +++++++++++
5 files changed, 24 insertions(+), 1 deletion(-)
diff --git
a/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorCompiler.java
b/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorCompiler.java
index d6e59d2f94f..b957440d29e 100644
---
a/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorCompiler.java
+++
b/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorCompiler.java
@@ -104,8 +104,10 @@ public class JoorCompiler extends ServiceSupport
implements StaticService {
if (LOG.isDebugEnabled()) {
LOG.debug("Compiling code:\n\n{}\n", code);
}
+ LOG.debug("Compiling: {}", className);
Reflect ref = Reflect.compile(className, code);
Class<?> clazz = ref.type();
+ LOG.debug("Compiled to Java class: {}", clazz);
answer = (JoorMethod)
clazz.getConstructor(CamelContext.class).newInstance(camelContext);
} catch (Exception e) {
throw new JoorCompilationException(className, code, e);
diff --git
a/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorScriptingCompiler.java
b/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorScriptingCompiler.java
index 7855cca7708..1be6bc8e29c 100644
---
a/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorScriptingCompiler.java
+++
b/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorScriptingCompiler.java
@@ -93,8 +93,10 @@ public class JoorScriptingCompiler extends ServiceSupport
implements StaticServi
co = new CompileOptions();
co = co.classLoader(cl);
}
+ LOG.debug("Compiling: {}", className);
Reflect ref = Reflect.compile(className, code, co);
Class<?> clazz = ref.type();
+ LOG.debug("Compiled to Java class: {}", clazz);
answer = (JoorScriptingMethod)
clazz.getConstructor(CamelContext.class).newInstance(camelContext);
} catch (Exception e) {
throw new JoorCompilationException(className, code, e);
diff --git
a/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/CompilationUnit.java
b/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/CompilationUnit.java
index e53b365f1ec..3f802eafc50 100644
---
a/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/CompilationUnit.java
+++
b/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/CompilationUnit.java
@@ -112,4 +112,9 @@ public class CompilationUnit {
return files;
}
+ @Override
+ public String toString() {
+ String names = String.join(", ", files.keySet());
+ return "CompilationUnit[" + names + "]";
+ }
}
diff --git
a/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java
b/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java
index 54ea61bf897..b3605946ff7 100644
---
a/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java
+++
b/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java
@@ -181,7 +181,10 @@ public class JavaRoutesBuilderLoader extends
ExtendedRouteBuilderLoaderSupport {
}
}
- LOG.debug("Compiling unit: {}", unit);
+ if (LOG.isDebugEnabled()) {
+ String names = String.join(", ", unit.getInput().keySet());
+ LOG.debug("Compiling: {}", names);
+ }
CompilationUnit.Result result = MultiCompile.compileUnit(unit);
// remember the last loaded resource-set if route reloading is enabled
diff --git
a/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/MultiCompile.java
b/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/MultiCompile.java
index 05a85739c67..24984f7ad82 100644
---
a/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/MultiCompile.java
+++
b/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/MultiCompile.java
@@ -94,7 +94,9 @@ public final class MultiCompile {
try {
Class<?> clazz = cl.loadClass(cn);
result.addResult(cn, clazz, null);
+ LOG.debug("Class already compiled: {}", cn);
} catch (ClassNotFoundException ignore) {
+ LOG.debug("Class must be compiled: {}", cn);
files.add(new CharSequenceJavaFileObject(cn, code));
}
});
@@ -143,7 +145,11 @@ public final class MultiCompile {
StringWriter out = new StringWriter();
CompilationTask task = compiler.getTask(out, fileManager, dc,
options, null, files);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Compiling files: {}", files);
+ }
boolean success = task.call();
+ LOG.debug("Compiled success: {}", success);
// after compilation then we need to clean up some unexpected
output
cleanupWaste();
@@ -351,6 +357,11 @@ public final class MultiCompile {
public CharSequence getCharContent(boolean ignoreEncodingErrors) {
return content;
}
+
+ @Override
+ public String toString() {
+ return className;
+ }
}
/**