You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2023/12/12 15:32:22 UTC
(camel) 02/07: CAMEL-20141: Consolidate camel-joor and camel-java-joor-dsl
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch joor
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 68b8b9a9fc58bb389a117e7f90a412623add2f54
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Dec 12 12:01:11 2023 +0100
CAMEL-20141: Consolidate camel-joor and camel-java-joor-dsl
---
.../org/apache/camel/language/joor/CompilationUnit.java | 13 +++++++++++++
.../java/org/apache/camel/language/joor/MultiCompile.java | 4 ++--
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/components/camel-joor/src/main/java/org/apache/camel/language/joor/CompilationUnit.java b/components/camel-joor/src/main/java/org/apache/camel/language/joor/CompilationUnit.java
index 5f3f677e559..64fd9bfc56f 100644
--- a/components/camel-joor/src/main/java/org/apache/camel/language/joor/CompilationUnit.java
+++ b/components/camel-joor/src/main/java/org/apache/camel/language/joor/CompilationUnit.java
@@ -27,6 +27,7 @@ import java.util.Set;
public class CompilationUnit {
private final Map<String, String> files = new LinkedHashMap<>();
+ private ClassLoader classLoader;
/**
* The result of the compilation that holds mapping for each className -> class.
@@ -108,10 +109,22 @@ public class CompilationUnit {
return this;
}
+ /**
+ * To use a custom classloader
+ */
+ public CompilationUnit withClassLoader(ClassLoader classLoader) {
+ this.classLoader = classLoader;
+ return this;
+ }
+
public Map<String, String> getInput() {
return files;
}
+ public ClassLoader getClassLoader() {
+ return classLoader;
+ }
+
@Override
public String toString() {
String names = String.join(", ", files.keySet());
diff --git a/components/camel-joor/src/main/java/org/apache/camel/language/joor/MultiCompile.java b/components/camel-joor/src/main/java/org/apache/camel/language/joor/MultiCompile.java
index 7a5e07f387a..9ef05add484 100644
--- a/components/camel-joor/src/main/java/org/apache/camel/language/joor/MultiCompile.java
+++ b/components/camel-joor/src/main/java/org/apache/camel/language/joor/MultiCompile.java
@@ -89,7 +89,7 @@ public final class MultiCompile {
List<CharSequenceJavaFileObject> files = new ArrayList<>();
Lookup lookup = MethodHandles.lookup();
- ClassLoader cl = lookup.lookupClass().getClassLoader();
+ ClassLoader cl = unit.getClassLoader() != null ? unit.getClassLoader() : lookup.lookupClass().getClassLoader();
unit.getInput().forEach((cn, code) -> {
try {
Class<?> clazz = cl.loadClass(cn);
@@ -124,7 +124,7 @@ public final class MultiCompile {
if (cl instanceof URLClassLoader) {
for (URL url : ((URLClassLoader) cl).getURLs()) {
- if (classpath.length() > 0) {
+ if (!classpath.isEmpty()) {
classpath.append(separator);
}