Skip to content

Commit 0348196

Browse files
committed
Clean up extension registry bits
1 parent 793ae90 commit 0348196

File tree

3 files changed

+20
-20
lines changed

3 files changed

+20
-20
lines changed

src/main/java/build/buf/protovalidate/Config.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
package build.buf.protovalidate;
1616

17-
import build.buf.validate.ValidateProto;
1817
import com.google.protobuf.ExtensionRegistry;
1918
import com.google.protobuf.TypeRegistry;
2019

@@ -24,12 +23,6 @@ public final class Config {
2423
private static final ExtensionRegistry DEFAULT_EXTENSION_REGISTRY =
2524
ExtensionRegistry.newInstance();
2625

27-
static {
28-
DEFAULT_EXTENSION_REGISTRY.add(ValidateProto.message);
29-
DEFAULT_EXTENSION_REGISTRY.add(ValidateProto.field);
30-
DEFAULT_EXTENSION_REGISTRY.add(ValidateProto.oneof);
31-
}
32-
3326
private final boolean failFast;
3427
private final boolean disableLazy;
3528
private final TypeRegistry typeRegistry;

src/main/java/build/buf/protovalidate/internal/constraints/ConstraintCache.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,12 @@ public CelRule(AstExpression astExpression, FieldDescriptor field) {
5858
}
5959
}
6060

61+
private static final ExtensionRegistry EXTENSION_REGISTRY = ExtensionRegistry.newInstance();
62+
63+
static {
64+
EXTENSION_REGISTRY.add(PrivateProto.field);
65+
}
66+
6167
/** Partial eval options for evaluating the constraint's expression. */
6268
private static final ProgramOption PARTIAL_EVAL_OPTIONS =
6369
ProgramOption.evalOptions(
@@ -177,12 +183,11 @@ public List<CompiledProgram> compile(
177183
private @Nullable build.buf.validate.priv.FieldConstraints getFieldConstraints(
178184
FieldDescriptor constraintFieldDesc) throws CompilationException {
179185
DescriptorProtos.FieldOptions options = constraintFieldDesc.getOptions();
180-
// If the protovalidate field option is unknown, reparse using extension registry.
186+
// If the protovalidate field option is unknown, reparse options using our extension registry.
181187
if (options.getUnknownFields().hasField(PrivateProto.field.getNumber())) {
182188
try {
183-
ExtensionRegistry registry = ExtensionRegistry.newInstance();
184-
registry.add(PrivateProto.field);
185-
options = DescriptorProtos.FieldOptions.parseFrom(options.toByteString(), registry);
189+
options =
190+
DescriptorProtos.FieldOptions.parseFrom(options.toByteString(), EXTENSION_REGISTRY);
186191
} catch (InvalidProtocolBufferException e) {
187192
throw new CompilationException("Failed to parse field options", e);
188193
}

src/main/java/build/buf/protovalidate/internal/evaluator/ConstraintResolver.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,13 @@
2929

3030
/** Manages the resolution of protovalidate constraints. */
3131
class ConstraintResolver {
32+
private static final ExtensionRegistry EXTENSION_REGISTRY = ExtensionRegistry.newInstance();
33+
34+
static {
35+
EXTENSION_REGISTRY.add(ValidateProto.message);
36+
EXTENSION_REGISTRY.add(ValidateProto.oneof);
37+
EXTENSION_REGISTRY.add(ValidateProto.field);
38+
}
3239

3340
/**
3441
* Resolves the constraints for a message descriptor.
@@ -41,9 +48,8 @@ MessageConstraints resolveMessageConstraints(Descriptor desc)
4148
DescriptorProtos.MessageOptions options = desc.getOptions();
4249
// If the protovalidate message extension is unknown, reparse using extension registry.
4350
if (options.getUnknownFields().hasField(ValidateProto.message.getNumber())) {
44-
ExtensionRegistry registry = ExtensionRegistry.newInstance();
45-
registry.add(ValidateProto.message);
46-
options = DescriptorProtos.MessageOptions.parseFrom(options.toByteString(), registry);
51+
options =
52+
DescriptorProtos.MessageOptions.parseFrom(options.toByteString(), EXTENSION_REGISTRY);
4753
}
4854
if (!options.hasExtension(ValidateProto.message)) {
4955
return MessageConstraints.getDefaultInstance();
@@ -73,9 +79,7 @@ OneofConstraints resolveOneofConstraints(OneofDescriptor desc)
7379
DescriptorProtos.OneofOptions options = desc.getOptions();
7480
// If the protovalidate oneof extension is unknown, reparse using extension registry.
7581
if (options.getUnknownFields().hasField(ValidateProto.oneof.getNumber())) {
76-
ExtensionRegistry registry = ExtensionRegistry.newInstance();
77-
registry.add(ValidateProto.oneof);
78-
options = DescriptorProtos.OneofOptions.parseFrom(options.toByteString(), registry);
82+
options = DescriptorProtos.OneofOptions.parseFrom(options.toByteString(), EXTENSION_REGISTRY);
7983
}
8084
if (!options.hasExtension(ValidateProto.oneof)) {
8185
return OneofConstraints.getDefaultInstance();
@@ -105,9 +109,7 @@ FieldConstraints resolveFieldConstraints(FieldDescriptor desc)
105109
DescriptorProtos.FieldOptions options = desc.getOptions();
106110
// If the protovalidate field option is unknown, reparse using extension registry.
107111
if (options.getUnknownFields().hasField(ValidateProto.field.getNumber())) {
108-
ExtensionRegistry registry = ExtensionRegistry.newInstance();
109-
registry.add(ValidateProto.field);
110-
options = DescriptorProtos.FieldOptions.parseFrom(options.toByteString(), registry);
112+
options = DescriptorProtos.FieldOptions.parseFrom(options.toByteString(), EXTENSION_REGISTRY);
111113
}
112114
if (!options.hasExtension(ValidateProto.field)) {
113115
return FieldConstraints.getDefaultInstance();

0 commit comments

Comments
 (0)