From 8cbaa370347e6fc997381cf35d6c295685b90f98 Mon Sep 17 00:00:00 2001
From: Kenmegne <stephanie.kenmegne@gmail.com>
Date: Fri, 19 Jun 2026 11:29:14 +0000
Subject: [PATCH] move to new repo
---
dynamicjsonparser/src/main/java/com/megatim/dynamicjsonparser/extender/SourceCompiler.java | 35 +++++++++++++++++++++++++++++++++++
1 files changed, 35 insertions(+), 0 deletions(-)
diff --git a/dynamicjsonparser/src/main/java/com/megatim/dynamicjsonparser/extender/SourceCompiler.java b/dynamicjsonparser/src/main/java/com/megatim/dynamicjsonparser/extender/SourceCompiler.java
new file mode 100644
index 0000000..5d1afb8
--- /dev/null
+++ b/dynamicjsonparser/src/main/java/com/megatim/dynamicjsonparser/extender/SourceCompiler.java
@@ -0,0 +1,35 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.dynamicjsonparser.extender;
+
+import org.burningwave.core.assembler.ComponentContainer;
+import static org.burningwave.core.assembler.StaticComponentContainer.ClassLoaders;
+import org.burningwave.core.classes.JavaMemoryCompiler;
+import org.burningwave.core.classes.JavaMemoryCompiler.Compilation;
+import org.burningwave.core.classes.UnitSourceGenerator;
+import org.burningwave.core.concurrent.QueuedTaskExecutor.ProducerTask;
+
+/**
+ *
+ * @author ASUS
+ */
+public class SourceCompiler {
+
+ public static Class<?> compileAndLoad(UnitSourceGenerator unitSG, String binaryFilePath, String fullQualifiedName) throws ClassNotFoundException {
+ ComponentContainer componentContainer = ComponentContainer.getInstance();
+ JavaMemoryCompiler javaMemoryCompiler = componentContainer.getJavaMemoryCompiler();
+
+ ProducerTask<Compilation.Result> compilationTask = javaMemoryCompiler.compile(
+ Compilation.Config.forUnitSourceGenerator(unitSG).storeCompiledClassesTo(binaryFilePath));
+ Compilation.Result compilationResult = compilationTask.join();
+
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ ClassLoaders.addClassPaths(classLoader, compilationResult.getDependencies());
+ ClassLoaders.addClassPath(classLoader, compilationResult.getClassPath().getAbsolutePath());
+
+ return classLoader.loadClass(fullQualifiedName);
+ }
+
+}
--
Gitblit v1.10.0