Skip to content

Commit 84e933a

Browse files
committed
Finally made bootstrap better... got rid of Config.java stuff...
1 parent 6e17da4 commit 84e933a

File tree

5 files changed

+131
-366
lines changed

5 files changed

+131
-366
lines changed

boot-config.cfg

Lines changed: 0 additions & 26 deletions
This file was deleted.
Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
package org.mangorage.bootstrap;
22

3+
import org.mangorage.bootstrap.internal.JarHandler;
4+
import org.mangorage.bootstrap.internal.MangoLoader;
35
import org.mangorage.bootstrap.internal.Util;
46

57
import java.io.IOException;
8+
import java.lang.module.Configuration;
9+
import java.lang.module.ModuleFinder;
10+
import java.nio.file.Files;
611
import java.nio.file.Path;
712
import java.util.List;
813

@@ -11,33 +16,40 @@
1116
public final class Bootstrap {
1217

1318
public static void main(String[] args) throws IOException {
14-
final var cfgOptional = Util.findBootConfig(Path.of(""));
1519

16-
if (!cfgOptional.isPresent()) {
17-
throw new IllegalStateException("Failed to find any boot.cfg from the root folder/sub folders");
18-
}
20+
final var librariesPath = Path.of("libraries");
21+
final var pluginsPath = Path.of("plugins");
1922

20-
final var cfg = cfgOptional.get();
23+
JarHandler.safeHandle(Path.of("libraries"), Path.of("sorted-libraries"));
2124

25+
List<Path> deleteFiles = List.of(
26+
Path.of("sorted-libraries").resolve("okio-jvm-3.6.0.jar")
27+
);
2228

23-
cfg.handleJars();
29+
for (Path deleteFile : deleteFiles) {
30+
Files.deleteIfExists(deleteFile);
31+
}
2432

25-
final var moduleCfg = cfg.constructModuleConfiguration();
33+
final var moduleCfg = Configuration.resolve(
34+
ModuleFinder.of(pluginsPath),
35+
List.of(
36+
ModuleLayer.boot().configuration()
37+
),
38+
ModuleFinder.of(
39+
Path.of("sorted-libraries")
40+
),
41+
Util.getModuleNames(pluginsPath)
42+
);
2643

27-
final var cl = cfg.constructClassloaders();
28-
Thread.currentThread().setContextClassLoader(cl);
44+
final var moduleCl = new MangoLoader(fetchJars(librariesPath, pluginsPath), moduleCfg.modules(), Thread.currentThread().getContextClassLoader());
2945

30-
final var moduleController = ModuleLayer.defineModules(moduleCfg, List.of(ModuleLayer.boot()), s -> {
31-
if (s.startsWith("org.mangorage") & !s.contains("scanner")) {
32-
return cl;
33-
} else {
34-
return cl.getParent();
35-
}
36-
});
46+
final var moduleLayerController = ModuleLayer.defineModules(moduleCfg, List.of(ModuleLayer.boot()), s -> moduleCl);
47+
final var moduleLayer = moduleLayerController.layer();
3748

3849

39-
// moduleControllaer.layer().modules().forEach(moduleControllaer::enableNativeAccess);
50+
System.out.println("Imagiine we worked!");
51+
Thread.currentThread().setContextClassLoader(moduleCl);
4052

41-
callMain(cfg.getMainClass(), args, moduleController.layer().findModule("org.mangorage.mangobotcore").get());
53+
callMain("org.mangorage.entrypoint.MangoBotCore", args, moduleLayer.findModule("org.mangorage.mangobotcore").get());
4254
}
4355
}

src/main/java/org/mangorage/bootstrap/internal/Config.java

Lines changed: 0 additions & 186 deletions
This file was deleted.

0 commit comments

Comments
 (0)