-
Notifications
You must be signed in to change notification settings - Fork 2.5k
/
ValidationPhaseBuildItem.java
68 lines (53 loc) · 2.29 KB
/
ValidationPhaseBuildItem.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package io.quarkus.arc.deployment;
import java.util.Arrays;
import java.util.List;
import io.quarkus.arc.processor.BeanDeploymentValidator;
import io.quarkus.arc.processor.BeanProcessor;
import io.quarkus.arc.processor.BeanResolver;
import io.quarkus.builder.item.MultiBuildItem;
import io.quarkus.builder.item.SimpleBuildItem;
import io.quarkus.deployment.annotations.BuildProducer;
/**
* Validation phase can be used to validate the deployment.
* <p>
* An extension that needs to produce other build items during the "validation" phase should use this build item. The
* build step should produce a {@link ValidationErrorBuildItem} or at least inject a {@link BuildProducer} for this build
* item, otherwise it could be ignored or processed at the wrong time, e.g. after
* {@link ArcProcessor#generateResources(io.quarkus.arc.runtime.ArcRecorder, io.quarkus.deployment.builditem.ShutdownContextBuildItem, ValidationPhaseBuildItem, List, List, BuildProducer, BuildProducer, BuildProducer, BuildProducer, BuildProducer)}.
*
* @see ValidationErrorBuildItem
*/
public final class ValidationPhaseBuildItem extends SimpleBuildItem {
private final BeanProcessor beanProcessor;
private final BeanDeploymentValidator.ValidationContext context;
public ValidationPhaseBuildItem(BeanDeploymentValidator.ValidationContext context, BeanProcessor beanProcessor) {
this.context = context;
this.beanProcessor = beanProcessor;
}
public BeanDeploymentValidator.ValidationContext getContext() {
return context;
}
/**
* The bean resolver can be used to apply the type-safe resolution rules.
*
* @return the bean resolver
*/
public BeanResolver getBeanResolver() {
return beanProcessor.getBeanDeployment().getBeanResolver();
}
BeanProcessor getBeanProcessor() {
return beanProcessor;
}
public static final class ValidationErrorBuildItem extends MultiBuildItem {
private final List<Throwable> values;
public ValidationErrorBuildItem(Throwable... values) {
this.values = Arrays.asList(values);
}
public ValidationErrorBuildItem(List<Throwable> values) {
this.values = values;
}
public List<Throwable> getValues() {
return values;
}
}
}