Skip to content

Commit 689ee85

Browse files
authored
Merge pull request #41 from SentryMan/moduleReading
Fix Edge Cases in module parsing
2 parents a3ea577 + 426e866 commit 689ee85

File tree

1 file changed

+6
-11
lines changed

1 file changed

+6
-11
lines changed

prism-core/src/main/java/io/avaje/prism/internal/ModuleInfoReaderWriter.java

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -113,27 +113,22 @@ public static void write(PrintWriter out, String packageName) {
113113
+ " var imports = new ArrayList<String>();\n"
114114
+ "\n"
115115
+ " while (importMatcher.find()) {\n"
116-
+ " imports.add(usesMatcher.group(1));\n"
116+
+ " imports.add(importMatcher.group(1));\n"
117117
+ " }\n"
118118
+ "\n"
119119
+ " while (providesMatcher.find()) {\n"
120-
+ " String providedInterface = providesMatcher.group(1);\n"
120+
+ " String providedInterface = resolveImport(imports,providesMatcher.group(1));\n"
121121
+ " String implementationClasses = providesMatcher.group(2);\n"
122122
+ "\n"
123-
+ " if (!providedInterface.contains(\".\")) {\n"
124-
+ " implementationClasses = resolveImport(imports, providedInterface);\n"
125-
+ " }\n"
126123
+ " List<String> implementations =\n"
127124
+ " Arrays.stream(implementationClasses.split(SPLIT_PATTERN))\n"
128-
+ " .map(s -> s.contains(\".\") ? s : resolveImport(imports, providedInterface))\n"
125+
+ " .map(s -> resolveImport(imports, s))\n"
129126
+ " .collect(toList());\n"
130127
+ " provides.add(new Provides(providedInterface, implementations));\n"
131128
+ " }\n"
132129
+ " while (usesMatcher.find()) {\n"
133-
+ " String usedInterface = usesMatcher.group(1);\n"
134-
+ " if (!usedInterface.contains(\".\")) {\n"
135-
+ " usedInterface = resolveImport(imports, usedInterface);\n"
136-
+ " }\n"
130+
+ " String usedInterface = resolveImport(imports, usesMatcher.group(1));\n"
131+
+ "\n"
137132
+ " uses.add(new Uses(usedInterface));\n"
138133
+ " }\n"
139134
+ " }\n"
@@ -142,7 +137,7 @@ public static void write(PrintWriter out, String packageName) {
142137
+ " return imports.stream()\n"
143138
+ " .filter(s -> s.contains(providedInterface))\n"
144139
+ " .findFirst()\n"
145-
+ " .orElse(providedInterface);\n"
140+
+ " .orElse(providedInterface).replaceAll(\"\\\\s\", \"\");\n"
146141
+ " }\n"
147142
+ "\n"
148143
+ " /**\n"

0 commit comments

Comments
 (0)