Skip to content

Commit 223a8ab

Browse files
authored
prisms 2 (#346)
1 parent d2c5ebb commit 223a8ab

File tree

4 files changed

+45
-48
lines changed

4 files changed

+45
-48
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
<surefire.useModulePath>false</surefire.useModulePath>
2828
<nexus.staging.autoReleaseAfterClose>true</nexus.staging.autoReleaseAfterClose>
2929
<maven.compiler.release>17</maven.compiler.release>
30-
<inject.version>12.0</inject.version>
30+
<inject.version>12.1-RC6</inject.version>
3131
<spi.version>2.13</spi.version>
3232
<project.build.outputTimestamp>2025-12-01T15:48:59Z</project.build.outputTimestamp>
3333
</properties>

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>1.44-RC4</avaje.prisms.version>
16+
<avaje.prisms.version>2.0-RC1</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/ProcessingContext.java

Lines changed: 39 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package io.avaje.validation.generator;
22

33
import static io.avaje.validation.generator.APContext.filer;
4-
import static io.avaje.validation.generator.APContext.getModuleInfoReader;
54
import static io.avaje.validation.generator.APContext.getProjectModuleElement;
65
import static io.avaje.validation.generator.APContext.logWarn;
76
import static java.util.stream.Collectors.toSet;
@@ -14,11 +13,10 @@
1413

1514
import javax.annotation.processing.ProcessingEnvironment;
1615
import javax.lang.model.element.Element;
16+
import javax.lang.model.element.ModuleElement.RequiresDirective;
1717
import javax.tools.FileObject;
1818
import javax.tools.StandardLocation;
1919

20-
import io.avaje.validation.generator.ModuleInfoReader.Requires;
21-
2220
final class ProcessingContext {
2321

2422
private static final ThreadLocal<Ctx> CTX = new ThreadLocal<>();
@@ -64,44 +62,44 @@ static boolean isImported(Element element) {
6462

6563
static void validateModule() {
6664
var module = getProjectModuleElement();
67-
if (module != null && !module.isUnnamed()) {
68-
var injectPresent = CTX.get().injectPresent;
69-
var warnHttp = CTX.get().warnHttp;
70-
71-
try (var reader = getModuleInfoReader()) {
72-
var moduleInfo = new ModuleInfoReader(module, reader);
73-
74-
moduleInfo.validateServices("io.avaje.validation.spi.ValidationExtension", CTX.get().serviceSet);
75-
76-
var buildPluginAvailable = buildPluginAvailable();
77-
var requireSet =
78-
moduleInfo.requires().stream()
79-
.map(Requires::getDependency)
80-
.map(m -> m.getQualifiedName().toString())
81-
.collect(toSet());
82-
83-
boolean noHttpPlugin =
84-
injectPresent
85-
&& (!buildPluginAvailable || !requireSet.contains("io.avaje.http.api"))
86-
&& warnHttp
87-
&& !moduleInfo.containsOnModulePath("io.avaje.validation.http");
88-
89-
boolean noInjectPlugin =
90-
noHttpPlugin
91-
&& injectPresent
92-
&& (!buildPluginAvailable || !requireSet.contains("io.avaje.validation"))
93-
&& !moduleInfo.containsOnModulePath("io.avaje.validation.plugin");
94-
95-
if (noHttpPlugin) {
96-
logWarn(module, "`requires io.avaje.validation.http` must be explicity added or else avaje-inject may fail to detect the default http validator, validator, and method AOP validator");
97-
} else if (noInjectPlugin) {
98-
logWarn(module, "`requires io.avaje.validation.plugin` must be explicity added or else avaje-inject may fail to detect the default validator and method AOP validator");
99-
}
100-
101-
} catch (Exception e) {
102-
// can't read module
103-
}
104-
}
65+
var injectPresent = CTX.get().injectPresent;
66+
var warnHttp = CTX.get().warnHttp;
67+
68+
APContext.moduleInfoReader()
69+
.ifPresent(
70+
moduleInfo -> {
71+
moduleInfo.validateServices(
72+
"io.avaje.validation.spi.ValidationExtension", CTX.get().serviceSet);
73+
74+
var buildPluginAvailable = buildPluginAvailable();
75+
var requireSet =
76+
moduleInfo.requires().stream()
77+
.map(RequiresDirective::getDependency)
78+
.map(m -> m.getQualifiedName().toString())
79+
.collect(toSet());
80+
81+
boolean noHttpPlugin =
82+
injectPresent
83+
&& (!buildPluginAvailable || !requireSet.contains("io.avaje.http.api"))
84+
&& warnHttp
85+
&& !moduleInfo.containsOnModulePath("io.avaje.validation.http");
86+
87+
boolean noInjectPlugin =
88+
noHttpPlugin
89+
&& injectPresent
90+
&& (!buildPluginAvailable || !requireSet.contains("io.avaje.validation"))
91+
&& !moduleInfo.containsOnModulePath("io.avaje.validation.plugin");
92+
93+
if (noHttpPlugin) {
94+
logWarn(
95+
module,
96+
"`requires io.avaje.validation.http` must be explicity added or else avaje-inject may fail to detect the default http validator, validator, and method AOP validator");
97+
} else if (noInjectPlugin) {
98+
logWarn(
99+
module,
100+
"`requires io.avaje.validation.plugin` must be explicity added or else avaje-inject may fail to detect the default validator and method AOP validator");
101+
}
102+
});
105103
}
106104

107105
private static boolean buildPluginAvailable() {

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

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,10 @@
3838
import javax.tools.FileObject;
3939

4040
import io.avaje.prism.GenerateAPContext;
41-
import io.avaje.prism.GenerateModuleInfoReader;
4241
import io.avaje.prism.GenerateUtils;
4342

4443
@GenerateUtils
4544
@GenerateAPContext
46-
@GenerateModuleInfoReader
4745
@SupportedAnnotationTypes({
4846
AvajeValidPrism.PRISM_TYPE,
4947
ImportValidPojoPrism.PRISM_TYPE,
@@ -115,6 +113,10 @@ private void readModule() {
115113
@Override
116114
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment round) {
117115
if (generateComponent || round.errorRaised()) {
116+
if (round.processingOver()) {
117+
ProcessingContext.validateModule();
118+
ProcessingContext.clear();
119+
}
118120
return false;
119121
}
120122
generateComponent = rounds++ > 0;
@@ -302,11 +304,8 @@ private void writeComponent(boolean processingOver) {
302304
writer.write();
303305
}
304306
writeMetaInf();
305-
ProcessingContext.validateModule();
306307
} catch (final IOException e) {
307308
logError("Error writing component", e);
308-
} finally {
309-
ProcessingContext.clear();
310309
}
311310
}
312311
}

0 commit comments

Comments
 (0)