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