Skip to content

Commit 84009aa

Browse files
authored
Support Default Package (#347)
1 parent 38533a6 commit 84009aa

File tree

7 files changed

+28
-14
lines changed

7 files changed

+28
-14
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
<nexus.staging.autoReleaseAfterClose>true</nexus.staging.autoReleaseAfterClose>
2929
<maven.compiler.release>17</maven.compiler.release>
3030
<inject.version>12.1-RC6</inject.version>
31-
<spi.version>2.13</spi.version>
31+
<spi.version>2.14-RC1</spi.version>
3232
<project.build.outputTimestamp>2025-12-01T15:48:59Z</project.build.outputTimestamp>
3333
</properties>
3434

validator-generator/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<name>validator generator</name>
1414
<description>annotation processor generating validation adapters</description>
1515
<properties>
16-
<avaje.prisms.version>2.0-RC1</avaje.prisms.version>
16+
<avaje.prisms.version>2.0-RC2</avaje.prisms.version>
1717
<io.jstach.version>1.3.7</io.jstach.version>
1818
</properties>
1919

validator-generator/src/main/java/io/avaje/validation/generator/AdapterName.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,16 @@ final class AdapterName {
2020
String originPackage = APContext.elements().getPackageOf(type).getQualifiedName().toString();
2121
var name = shortName(type);
2222
shortName = name.substring(0, name.length() - 1);
23-
if (pkgPrivate) {
23+
if (pkgPrivate || "".equals(originPackage)) {
2424
this.adapterPackage = originPackage;
25-
} else if ("".equals(originPackage)) {
26-
this.adapterPackage = "valid";
2725
} else {
2826
this.adapterPackage =
2927
ProcessingContext.isImported(type) ? originPackage + ".valid" : originPackage;
3028
}
31-
this.fullName = adapterPackage + "." + shortName + "ValidationAdapter";
29+
this.fullName =
30+
adapterPackage.isBlank()
31+
? shortName + "ValidationAdapter"
32+
: adapterPackage + "." + shortName + "ValidationAdapter";
3233
}
3334

3435
private String shortName(TypeElement origin) {

validator-generator/src/main/java/io/avaje/validation/generator/ComponentMetaData.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,24 @@ String fullName(boolean pkgPrivate) {
4747
adapter.getQualifiedName().toString().transform(types::add);
4848
}
4949
String topPackage = TopPackage.of(types);
50-
if (!topPackage.endsWith(".valid") && !pkgPrivate) {
50+
var defaultPackage =
51+
!topPackage.contains(".")
52+
&& APContext.getProjectModuleElement().isUnnamed()
53+
&& APContext.elements().getPackageElement(topPackage) == null;
54+
55+
if (!defaultPackage && !pkgPrivate && !topPackage.endsWith(".valid")) {
5156
topPackage += ".valid";
5257
}
53-
fullName =
54-
pkgPrivate
55-
? topPackage + "." + name(topPackage) + "ValidatorComponent"
56-
: topPackage + ".GeneratedValidatorComponent";
58+
59+
if (defaultPackage) {
60+
fullName = "GeneratedValidatorComponent";
61+
} else if (pkgPrivate) {
62+
fullName = topPackage + "." + name(topPackage) + "ValidatorComponent";
63+
} else if (APContext.isTestCompilation()) {
64+
fullName = topPackage + ".TestValidatorComponent";
65+
} else {
66+
fullName = topPackage + ".GeneratedValidatorComponent";
67+
}
5768
}
5869
return fullName;
5970
}

validator-generator/src/main/java/io/avaje/validation/generator/SimpleAdapterWriter.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ private void writeImports() {
107107
}
108108

109109
private void writePackage() {
110-
writer.append("package %s;", adapterPackage).eol().eol();
110+
if (!adapterPackage.isBlank()) {
111+
writer.append("package %s;", adapterPackage).eol().eol();
112+
}
111113
}
112114
}

validator-generator/src/main/java/io/avaje/validation/generator/SimpleComponentWriter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ final class SimpleComponentWriter {
2525

2626
void initialise(boolean pkgPrivate) throws IOException {
2727
fullName = metaData.fullName(pkgPrivate);
28-
packageName = ProcessorUtils.packageOf(fullName);
28+
packageName = "GeneratedValidatorComponent".equals(fullName) ? "" : ProcessorUtils.packageOf(fullName);
2929
if (fileObject == null) {
3030
fileObject = createSourceFile(fullName);
3131
}

validator-generator/src/main/java/io/avaje/validation/generator/Util.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ && importDifferentPackage(type, packageName)
5454
}
5555

5656
private static boolean importDifferentPackage(String type, String packageName) {
57-
return type.replace(packageName + '.', "").indexOf('.') > 0;
57+
return packageName.isBlank() || type.replace(packageName + '.', "").indexOf('.') > 0;
5858
}
5959

6060
private static boolean importJavaLangSubpackage(String type) {

0 commit comments

Comments
 (0)