Skip to content

Commit 27452f1

Browse files
committed
fix 'CONSTANT_Package at entry 10 has illegal character: '.''
1 parent 64fa6e0 commit 27452f1

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ allprojects {
1717
}
1818

1919
group = "org.glavo"
20-
version = "1.4" + "-SNAPSHOT"
20+
version = "1.4"// + "-SNAPSHOT"
2121

2222
repositories {
2323
mavenCentral()

src/main/java/org/glavo/mic/ModuleInfoCompiler.java

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public ModuleInfoCompiler(int targetCompatibility, String moduleVersion, String
4141
this.mainClass = mainClass;
4242
}
4343

44-
private static String[] nameListToArray(NodeList<Name> list) {
44+
private static String[] moduleNameListToArray(NodeList<Name> list) {
4545
if (list.isEmpty()) {
4646
return EMPTY_STRING_ARRAY;
4747
}
@@ -53,6 +53,18 @@ private static String[] nameListToArray(NodeList<Name> list) {
5353
return res;
5454
}
5555

56+
private static String[] packageNameListToArray(NodeList<Name> list) {
57+
if (list.isEmpty()) {
58+
return EMPTY_STRING_ARRAY;
59+
}
60+
61+
String[] res = new String[list.size()];
62+
for (int i = 0; i < list.size(); i++) {
63+
res[i] = list.get(i).asString().replace('.', '/');
64+
}
65+
return res;
66+
}
67+
5668
public void compile(Path source, Path target) throws IOException {
5769
try (Reader reader = Files.newBufferedReader(source);
5870
OutputStream output = Files.newOutputStream(target)) {
@@ -80,21 +92,21 @@ public void compile(Reader source, OutputStream target) throws IOException {
8092
for (ModuleDirective directive : md.getDirectives()) {
8193
if (directive.isModuleExportsDirective()) {
8294
ModuleExportsDirective export = directive.asModuleExportsDirective();
83-
moduleVisitor.visitExport(export.getNameAsString(), 0, nameListToArray(export.getModuleNames()));
95+
moduleVisitor.visitExport(export.getNameAsString().replace('.', '/'), 0, moduleNameListToArray(export.getModuleNames()));
8496
} else if (directive.isModuleOpensDirective()) {
8597
ModuleOpensDirective open = directive.asModuleOpensDirective();
86-
moduleVisitor.visitOpen(open.getNameAsString(), 0, nameListToArray(open.getModuleNames()));
98+
moduleVisitor.visitOpen(open.getNameAsString().replace('.', '/'), 0, moduleNameListToArray(open.getModuleNames()));
8799
} else if (directive.isModuleProvidesDirective()) {
88100
ModuleProvidesDirective provides = directive.asModuleProvidesDirective();
89-
moduleVisitor.visitProvide(provides.getNameAsString(), nameListToArray(provides.getWith()));
101+
moduleVisitor.visitProvide(provides.getNameAsString().replace('.', '/'), packageNameListToArray(provides.getWith()));
90102
} else if (directive.isModuleRequiresDirective()) {
91103
ModuleRequiresDirective requires = directive.asModuleRequiresDirective();
92104
if (!requires.getNameAsString().equals("java.base")) {
93105
moduleVisitor.visitRequire(requires.getNameAsString(), 0, null);
94106
}
95107
} else if (directive.isModuleUsesDirective()) {
96108
ModuleUsesDirective uses = directive.asModuleUsesDirective();
97-
moduleVisitor.visitUse(uses.getNameAsString());
109+
moduleVisitor.visitUse(uses.getNameAsString().replace('.', '/'));
98110
} else {
99111
throw new AssertionError("Unknown module directive: " + directive);
100112
}

0 commit comments

Comments
 (0)