You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ji...@apache.org on 2023/04/17 07:28:32 UTC

[camel-quarkus] 21/27: camel-java-joor-dsl - Ease the way to get all the compiled classes

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

jiriondrusek pushed a commit to branch camel-main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit 5094e6128172f9be4725ad299d689ca5e1b7f655
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Wed Apr 5 20:47:27 2023 +0200

    camel-java-joor-dsl - Ease the way to get all the compiled classes
---
 .../java/joor/deployment/JavaJoorDslProcessor.java | 27 +++++-----------------
 .../component/joor/deployment/JoorProcessor.java   |  2 +-
 2 files changed, 7 insertions(+), 22 deletions(-)

diff --git a/extensions/java-joor-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/java/joor/deployment/JavaJoorDslProcessor.java b/extensions/java-joor-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/java/joor/deployment/JavaJoorDslProcessor.java
index a34f0d8e87..ff3bf2c335 100644
--- a/extensions/java-joor-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/java/joor/deployment/JavaJoorDslProcessor.java
+++ b/extensions/java-joor-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/java/joor/deployment/JavaJoorDslProcessor.java
@@ -99,29 +99,14 @@ public class JavaJoorDslProcessor {
                                 .map(Objects::toString)
                                 .collect(Collectors.joining(System.getProperty("path.separator")))));
         for (String className : result.getClassNames()) {
+            registerForReflection(reflectiveClass, lambdaCapturingTypeProducer, result.getClass(className));
+        }
+        for (String className : result.getCompiledClassNames()) {
+            int index = className.indexOf("$");
+            String outerClassName = index == -1 ? className : className.substring(0, index);
             generatedClass
-                    .produce(new JavaJoorGeneratedClassBuildItem(className, nameToResource.get(className).getLocation(),
+                    .produce(new JavaJoorGeneratedClassBuildItem(className, nameToResource.get(outerClassName).getLocation(),
                             result.getByteCode(className)));
-            Class<?> aClass = result.getClass(className);
-            // Inner classes
-            for (Class<?> clazz : aClass.getDeclaredClasses()) {
-                String name = clazz.getName();
-                generatedClass
-                        .produce(new JavaJoorGeneratedClassBuildItem(name, nameToResource.get(className).getLocation(),
-                                result.getByteCode(name)));
-            }
-            // Anonymous classes
-            for (int i = 1;; i++) {
-                String name = String.format("%s$%d", className, i);
-                byte[] content = result.getByteCode(name);
-                if (content == null) {
-                    break;
-                }
-                generatedClass
-                        .produce(new JavaJoorGeneratedClassBuildItem(name, nameToResource.get(className).getLocation(),
-                                content));
-            }
-            registerForReflection(reflectiveClass, lambdaCapturingTypeProducer, aClass);
         }
     }
 
diff --git a/extensions/joor/deployment/src/main/java/org/apache/camel/quarkus/component/joor/deployment/JoorProcessor.java b/extensions/joor/deployment/src/main/java/org/apache/camel/quarkus/component/joor/deployment/JoorProcessor.java
index cb8c10df23..49a3e9c674 100644
--- a/extensions/joor/deployment/src/main/java/org/apache/camel/quarkus/component/joor/deployment/JoorProcessor.java
+++ b/extensions/joor/deployment/src/main/java/org/apache/camel/quarkus/component/joor/deployment/JoorProcessor.java
@@ -144,7 +144,7 @@ class JoorProcessor {
                                 .flatMap(PathCollection::stream)
                                 .map(Objects::toString)
                                 .collect(Collectors.joining(System.getProperty("path.separator")))));
-        for (String className : compilationResult.getClassNames()) {
+        for (String className : compilationResult.getCompiledClassNames()) {
             generatedClass
                     .produce(
                             new GeneratedClassBuildItem(true, className, compilationResult.getByteCode(className)));