Skip to content

Commit de424ff

Browse files
committed
Cleaned up MangoBotLaunchTarget stuff...
1 parent 3087a9f commit de424ff

9 files changed

Lines changed: 94 additions & 291 deletions

File tree

src/main/java/org/mangorage/mangobotlaunch/launch/ClassTransformers.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,9 @@
1212

1313
public final class ClassTransformers {
1414
private final Map<String, Class<?>> classes = new ConcurrentHashMap<>();
15-
private final List<IClassTransformer> transformers = new CopyOnWriteArrayList<>(); // Transformer's
16-
private final ClassLoader loader;
15+
private final List<IClassTransformer> transformers = new CopyOnWriteArrayList<>();
1716

18-
ClassTransformers(ClassLoader loader) {
19-
this.loader = loader;
20-
}
17+
ClassTransformers() {}
2118

2219
void add(String name, Class<?> clz) {
2320
classes.put(name, clz);
@@ -31,7 +28,7 @@ boolean isEmpty() {
3128
return transformers.isEmpty();
3229
}
3330

34-
byte[] transform(String name, byte[] classData) {;
31+
byte[] transform(String name, byte[] classData) {
3532

3633
AtomicReference<TransformResult> result = new AtomicReference<>(TransformerFlag.NO_REWRITE.of(classData));
3734
AtomicReference<IClassTransformer> _transformer = new AtomicReference<>();

src/main/java/org/mangorage/mangobotlaunch/launch/LoadedModule.java

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.io.IOException;
44
import java.lang.module.ModuleReader;
55
import java.lang.module.ModuleReference;
6+
import java.net.MalformedURLException;
67
import java.net.URI;
78
import java.security.CodeSigner;
89
import java.security.CodeSource;
@@ -11,25 +12,31 @@
1112
import java.util.Optional;
1213
import java.util.stream.Stream;
1314

14-
public final class LoadedModule implements ModuleReader {
15+
public final class LoadedModule {
1516
private final List<LoadedModule> children = new ArrayList<>();
1617

1718
private final ModuleReference moduleReference;
18-
private final ModuleReader moduleReader;
1919
private final CodeSource codeSource;
2020

21-
LoadedModule(ModuleReference moduleReference) throws IOException {
21+
LoadedModule(ModuleReference moduleReference) {
2222
this.moduleReference = moduleReference;
23-
this.moduleReader = moduleReference.open();
24-
this.codeSource = new CodeSource(moduleReference.location().get().toURL(), (CodeSigner[]) null);
23+
try {
24+
this.codeSource = new CodeSource(moduleReference.location().get().toURL(), (CodeSigner[]) null);
25+
} catch (MalformedURLException e) {
26+
throw new IllegalStateException(e);
27+
}
2528
}
2629

2730
ModuleReference getModuleReference() {
2831
return moduleReference;
2932
}
3033

3134
ModuleReader getModuleReader() {
32-
return moduleReader;
35+
try {
36+
return moduleReference.open();
37+
} catch (IOException e) {
38+
throw new RuntimeException(e);
39+
}
3340
}
3441

3542
CodeSource getCodeSource() {
@@ -44,7 +51,6 @@ String name() {
4451
return getModuleReference().descriptor().name();
4552
}
4653

47-
@Override
4854
public Optional<URI> find(String name) throws IOException {
4955
final var optional = getModuleReader().find(name);
5056
if (optional.isPresent()) return optional;
@@ -57,14 +63,4 @@ public Optional<URI> find(String name) throws IOException {
5763

5864
return Optional.empty();
5965
}
60-
61-
@Override
62-
public Stream<String> list() throws IOException {
63-
return Stream.empty();
64-
}
65-
66-
@Override
67-
public void close() throws IOException {
68-
69-
}
7066
}

src/main/java/org/mangorage/mangobotlaunch/launch/MangoBotDependencyLocator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import org.mangorage.bootstrap.api.dependency.IDependency;
44
import org.mangorage.bootstrap.api.dependency.IDependencyLocator;
5-
import org.mangorage.mangobotlaunch.DependencyHandler;
5+
import org.mangorage.mangobotlaunch.util.handler.DependencyHandler;
66

77
import java.nio.file.Path;
88
import java.util.List;

src/main/java/org/mangorage/mangobotlaunch/launch/MangoBotLaunchTarget.java

Lines changed: 1 addition & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -23,52 +23,13 @@
2323

2424
public final class MangoBotLaunchTarget implements ILaunchTarget {
2525

26-
/**
27-
* Deletes the target directory if it exists, then copies all files from the list into it.
28-
*
29-
* @param files List of files to copy
30-
* @param targetDir Directory to copy files into
31-
* @throws IOException if anything goes wrong
32-
*/
33-
public static void copyFilesToDirectory(List<Path> files, Path targetDir) throws IOException {
34-
// Delete directory if it exists
35-
if (Files.exists(targetDir)) {
36-
deleteDirectoryRecursively(targetDir);
37-
}
38-
39-
// Recreate the empty directory
40-
Files.createDirectories(targetDir);
41-
42-
// Copy each file
43-
for (Path file : files) {
44-
if (!Files.isRegularFile(file)) continue; // skip garbage
45-
Path dest = targetDir.resolve(file.getFileName());
46-
Files.copy(file, dest, StandardCopyOption.REPLACE_EXISTING);
47-
}
48-
}
49-
50-
private static void deleteDirectoryRecursively(Path dir) throws IOException {
51-
if (!Files.exists(dir)) return;
52-
53-
// Walk the directory bottom-up and delete everything
54-
Files.walk(dir)
55-
.sorted(Comparator.reverseOrder()) // delete children first
56-
.forEach(path -> {
57-
try {
58-
Files.delete(path);
59-
} catch (IOException e) {
60-
throw new RuntimeException("Failed to delete " + path, e);
61-
}
62-
});
63-
}
64-
6526
@Override
6627
public String getId() {
6728
return "mangobot";
6829
}
6930

7031
@Override
71-
public void launch(ModuleLayer bootstrapLayer, ModuleLayer parent, String[] args) throws Throwable {
32+
public void launch(ModuleLayer bootstrapLayer, ModuleLayer parent, String[] args) {
7233
final var pluginsPath = Path.of("plugins");
7334

7435
List<IDependencyLocator> dependencyLocators = ServiceLoader.load(bootstrapLayer, IDependencyLocator.class)

0 commit comments

Comments
 (0)