Skip to content

Commit a57f582

Browse files
authored
Merge pull request #636 from SentryMan/import-filter
Update Generated Imports
2 parents aeb2d9a + a1c536a commit a57f582

File tree

10 files changed

+32
-32
lines changed

10 files changed

+32
-32
lines changed

inject-generator/src/main/java/io/avaje/inject/generator/AssistBeanReader.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -140,12 +140,8 @@ void buildRegister(Append writer) {
140140
}
141141

142142
private Set<String> importTypes() {
143-
importTypes.add("io.avaje.inject.AssistFactory");
144143
Optional.ofNullable(targetType).ifPresent(t -> importTypes.add(t.getQualifiedName().toString()));
145144

146-
if (Util.validImportType(type)) {
147-
importTypes.add(type);
148-
}
149145
if (qualifierName != null) {
150146
importTypes.add(NamedPrism.PRISM_TYPE);
151147
}
@@ -159,13 +155,13 @@ private Set<String> importTypes() {
159155
return importTypes.forImport();
160156
}
161157

162-
void writeImports(Append writer) {
158+
void writeImports(Append writer, String pkgName) {
163159
importTypes.add(Constants.COMPONENT);
164160
if (!injectFields().isEmpty()) {
165161
importTypes.add(Constants.TYPE);
166162
}
167163
for (String importType : importTypes()) {
168-
if (Util.validImportType(importType)) {
164+
if (Util.validImportType(importType, pkgName)) {
169165
writer.append("import %s;", Util.sanitizeImports(importType)).eol();
170166
}
171167
}

inject-generator/src/main/java/io/avaje/inject/generator/BeanReader.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -346,9 +346,7 @@ private void lifeCycleNotSupported(String lifecycle) {
346346
}
347347

348348
private Set<String> importTypes() {
349-
if (Util.validImportType(type)) {
350-
importTypes.add(type);
351-
}
349+
importTypes.add(type);
352350
typeReader.extraImports(importTypes);
353351
requestParams.addImports(importTypes);
354352
aspects.extraImports(importTypes);
@@ -365,7 +363,7 @@ private Set<String> importTypes() {
365363
if (!suppressGeneratedImport){
366364
importTypes.add(Constants.GENERATED);
367365
}
368-
if (!suppressBuilderImport) {
366+
if (!suppressBuilderImport && !isGenerateProxy()) {
369367
importTypes.add(Constants.BUILDER);
370368
}
371369
return importTypes.forImport();
@@ -384,13 +382,13 @@ String generatedType() {
384382
return suppressGeneratedImport ? "@io.avaje.inject.spi.Generated" : "@Generated";
385383
}
386384

387-
void writeImports(Append writer) {
385+
void writeImports(Append writer, String pkgName) {
388386
if (!allGenericTypes().isEmpty()) {
389387
importTypes.add(Constants.TYPE);
390388
importTypes.add(Constants.GENERICTYPE);
391389
}
392390
for (String importType : importTypes()) {
393-
if (Util.validImportType(importType)) {
391+
if (Util.validImportType(importType, pkgName)) {
394392
writer.append("import %s;", Util.sanitizeImports(importType)).eol();
395393
}
396394
}

inject-generator/src/main/java/io/avaje/inject/generator/EventPublisherWriter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
/** Write the source code for the bean. */
2020
final class EventPublisherWriter {
2121
private static final Map<String, String> GENERATED_PUBLISHERS = new HashMap<>();
22-
private final String TEMPLATE =
22+
private static final String TEMPLATE =
2323
"package {0};\n\n"
2424
+ "{1}"
2525
+ "@Component\n"
@@ -131,7 +131,7 @@ String imports() {
131131

132132
StringBuilder writer = new StringBuilder();
133133
for (String importType : importTypes.forImport()) {
134-
if (Util.validImportType(importType)) {
134+
if (Util.validImportType(importType, packageName)) {
135135
writer.append(String.format("import %s;\n", Util.sanitizeImports(importType)));
136136
}
137137
}

inject-generator/src/main/java/io/avaje/inject/generator/SimpleAssistWriter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ private void writePackage() {
7272
}
7373

7474
private void writeImports() {
75-
beanReader.writeImports(writer);
75+
beanReader.writeImports(writer, packageName);
7676
}
7777

7878
private void writeClassStart() {

inject-generator/src/main/java/io/avaje/inject/generator/SimpleBeanProxyWriter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ private void writeImports() {
9595
writer.append("import %s;", Constants.INVOCATION_EXCEPTION).eol();
9696
writer.append("import %s;", Constants.METHOD_INTERCEPTOR).eol();
9797
writer.append("import %s;", Constants.PROXY).eol();
98-
beanReader.writeImports(writer);
98+
beanReader.writeImports(writer, packageName);
9999
}
100100

101101
private void writeClassEnd() {

inject-generator/src/main/java/io/avaje/inject/generator/SimpleBeanWriter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ private void writeMethodParams(String builderRef, MethodReader methodReader) {
325325
}
326326

327327
private void writeImports() {
328-
beanReader.writeImports(writer);
328+
beanReader.writeImports(writer, packageName);
329329
}
330330

331331
private void writeClassEnd() {

inject-generator/src/main/java/io/avaje/inject/generator/SimpleModuleWriter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ private void writePackage() {
194194
writer.append("import %s;", type).eol();
195195
}
196196
for (String type : scopeInfo.initModuleDependencies(ordering.importTypes())) {
197-
if (Util.validImportType(type)) {
197+
if (Util.validImportType(type, modulePackage)) {
198198
writer.append("import %s;", type).eol();
199199
}
200200
}

inject-generator/src/main/java/io/avaje/inject/generator/SimpleOrderWriter.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,8 @@
11
package io.avaje.inject.generator;
22

3-
import static io.avaje.inject.generator.APContext.logError;
4-
import static io.avaje.inject.generator.ProcessingContext.createMetaInfWriterFor;
5-
63
import java.io.IOException;
7-
import java.io.Writer;
84
import java.util.Set;
95

10-
import javax.tools.FileObject;
11-
126
/** Write the source code for the factory. */
137
final class SimpleOrderWriter {
148

@@ -44,7 +38,6 @@ private void writePackage() {
4438
writer
4539
.append(
4640
"import static java.util.Map.entry;\n"
47-
+ "import static java.util.List.of;\n"
4841
+ "\n"
4942
+ "import java.util.List;\n"
5043
+ "import java.util.Map;\n"

inject-generator/src/main/java/io/avaje/inject/generator/Util.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import javax.lang.model.type.TypeKind;
77
import javax.lang.model.type.TypeMirror;
88
import java.util.Optional;
9+
import java.util.function.Function;
910
import java.util.regex.Pattern;
1011

1112
final class Util {
@@ -24,8 +25,19 @@ static boolean isVoid(String type) {
2425
return "void".equalsIgnoreCase(type);
2526
}
2627

27-
static boolean validImportType(String type) {
28-
return type.indexOf('.') > 0;
28+
static boolean validImportType(String type, String packageName) {
29+
return type.indexOf('.') > -1
30+
&& !type.startsWith("java.lang.")
31+
&& importDifferentPackage(type, packageName)
32+
|| importJavaLangSubpackage(type);
33+
}
34+
35+
private static boolean importDifferentPackage(String type, String packageName) {
36+
return type.replace(packageName + '.', "").indexOf('.') > -1;
37+
}
38+
39+
private static boolean importJavaLangSubpackage(String type) {
40+
return type.startsWith("java.lang.") && importDifferentPackage(type, "java.lang");
2941
}
3042

3143
static String classOfMethod(String method) {

inject-generator/src/test/java/io/avaje/inject/generator/UtilTest.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -98,15 +98,16 @@ void addForInterface() {
9898

9999
@Test
100100
void validImportType() {
101-
assertTrue(Util.validImportType("my.Foo"));
102-
assertTrue(Util.validImportType("other.pack.Foo"));
101+
assertTrue(Util.validImportType("java.lang.something.Foo", "org.foo"));
102+
assertTrue(Util.validImportType("org.foo.some.Bar", "org.foo"));
103+
assertTrue(Util.validImportType("org.other.Bar", "org.foo"));
103104
}
104105

105106
@Test
106107
void validImportType_not() {
107-
assertFalse(Util.validImportType("void"));
108-
assertFalse(Util.validImportType("Foo"));
109-
assertFalse(Util.validImportType("NoPackage"));
108+
assertFalse(Util.validImportType("int", "org.foo"));
109+
assertFalse(Util.validImportType("java.lang.Integer", "org.foo"));
110+
assertFalse(Util.validImportType("org.foo.Bar", "org.foo"));
110111
}
111112

112113
@Test

0 commit comments

Comments
 (0)