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;
+        }
     }
 
     /**

Reply via email to