@@ -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