Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions common/internal/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -128,11 +128,6 @@ cel_android_library(
exports = ["//common/src/main/java/dev/cel/common/internal:internal_android"],
)

java_library(
name = "proto_java_qualified_names",
exports = ["//common/src/main/java/dev/cel/common/internal:proto_java_qualified_names"],
)

java_library(
name = "proto_time_utils",
exports = ["//common/src/main/java/dev/cel/common/internal:proto_time_utils"],
Expand Down
13 changes: 0 additions & 13 deletions common/src/main/java/dev/cel/common/internal/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,6 @@ java_library(
tags = [
],
deps = [
":proto_java_qualified_names",
":reflection_util",
"//common/annotations",
"@maven//:com_google_guava_guava",
Expand Down Expand Up @@ -396,18 +395,6 @@ java_library(
],
)

java_library(
name = "proto_java_qualified_names",
srcs = ["ProtoJavaQualifiedNames.java"],
tags = [
],
deps = [
"//common/annotations",
"@maven//:com_google_guava_guava",
"@maven//:com_google_protobuf_protobuf_java",
],
)

java_library(
name = "reflection_util",
srcs = ["ReflectionUtil.java"],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
package dev.cel.common.internal;

import com.google.protobuf.Descriptors.Descriptor;
import com.google.protobuf.GeneratorNames;
import com.google.protobuf.Message;
import com.google.protobuf.MessageLite;
import dev.cel.common.annotations.Internal;
Expand Down Expand Up @@ -45,9 +46,7 @@ public static DefaultInstanceMessageFactory getInstance() {
public Optional<Message> getPrototype(Descriptor descriptor) {
MessageLite defaultInstance =
DefaultInstanceMessageLiteFactory.getInstance()
.getPrototype(
descriptor.getFullName(),
ProtoJavaQualifiedNames.getFullyQualifiedJavaClassName(descriptor))
.getPrototype(descriptor.getFullName(), GeneratorNames.getBytecodeClassName(descriptor))
.orElse(null);
if (defaultInstance == null) {
return Optional.empty();
Expand Down

This file was deleted.

2 changes: 0 additions & 2 deletions protobuf/src/main/java/dev/cel/protobuf/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ java_binary(
":java_file_generator",
":proto_descriptor_collector",
"//common:cel_descriptor_util",
"//common/internal:proto_java_qualified_names",
"@maven//:com_google_guava_guava",
"@maven//:com_google_protobuf_protobuf_java",
"@maven//:info_picocli_picocli",
Expand Down Expand Up @@ -50,7 +49,6 @@ java_library(
":cel_lite_descriptor",
":debug_printer",
":lite_descriptor_codegen_metadata",
"//common/internal:proto_java_qualified_names",
"//common/internal:well_known_proto",
"@maven//:com_google_guava_guava",
"@maven//:com_google_protobuf_protobuf_java",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
import com.google.protobuf.Descriptors.Descriptor;
import com.google.protobuf.Descriptors.FileDescriptor;
import com.google.protobuf.ExtensionRegistry;
import com.google.protobuf.GeneratorNames;
import dev.cel.common.CelDescriptorUtil;
import dev.cel.common.internal.ProtoJavaQualifiedNames;
import dev.cel.protobuf.JavaFileGenerator.GeneratedClass;
import dev.cel.protobuf.JavaFileGenerator.JavaFileGeneratorOption;
import java.io.File;
Expand Down Expand Up @@ -117,7 +117,7 @@ public Integer call() throws Exception {

private ImmutableList<GeneratedClass> codegenCelLiteDescriptors(
FileDescriptor targetFileDescriptor) throws Exception {
String javaPackageName = ProtoJavaQualifiedNames.getJavaPackageName(targetFileDescriptor);
String javaPackageName = GeneratorNames.getFileJavaPackage(targetFileDescriptor.toProto());
String javaClassName;

List<Descriptor> descriptors = targetFileDescriptor.getMessageTypes();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import com.google.protobuf.Descriptors.Descriptor;
import com.google.protobuf.Descriptors.FieldDescriptor.JavaType;
import com.google.protobuf.Descriptors.FileDescriptor;
import dev.cel.common.internal.ProtoJavaQualifiedNames;
import com.google.protobuf.GeneratorNames;
import dev.cel.common.internal.WellKnownProto;
import dev.cel.protobuf.CelLiteDescriptor.FieldLiteDescriptor;
import dev.cel.protobuf.CelLiteDescriptor.FieldLiteDescriptor.EncodingType;
Expand Down Expand Up @@ -93,8 +93,7 @@ ImmutableList<LiteDescriptorCodegenMetadata> collectCodegenMetadata(Descriptor d
// Maps are resolved as an actual Java map, and doesn't have a MessageLite.Builder associated.
if (!messageDescriptor.getOptions().getMapEntry()) {
String sanitizedJavaClassName =
ProtoJavaQualifiedNames.getFullyQualifiedJavaClassName(messageDescriptor)
.replace('$', '.');
GeneratorNames.getBytecodeClassName(messageDescriptor).replace('$', '.');
descriptorCodegenBuilder.setJavaClassName(sanitizedJavaClassName);
}

Expand Down
5 changes: 5 additions & 0 deletions testing/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,8 @@ java_library(
name = "expr_value_utils",
exports = ["//testing/src/main/java/dev/cel/testing/utils:expr_value_utils"],
)

java_library(
name = "proto_descriptor_utils",
exports = ["//testing/src/main/java/dev/cel/testing/utils:proto_descriptor_utils"],
)
13 changes: 8 additions & 5 deletions testing/src/main/java/dev/cel/testing/testrunner/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -93,18 +93,17 @@ java_library(
"//bundle:environment_yaml_parser",
"//common:cel_ast",
"//common:cel_descriptor_util",
"//common:cel_descriptors",
"//common:compiler_common",
"//common:options",
"//common:proto_ast",
"//common/internal:default_instance_message_factory",
"//policy",
"//policy:compiler_factory",
"//policy:parser",
"//policy:parser_factory",
"//policy:validation_exception",
"//runtime",
"//testing:expr_value_utils",
"//testing/testrunner:proto_descriptor_utils",
"@cel_spec//proto/cel/expr:expr_java_proto",
"@maven//:com_google_guava_guava",
"@maven//:com_google_protobuf_protobuf_java",
Expand Down Expand Up @@ -166,10 +165,11 @@ java_library(
"//:auto_value",
"//bundle:cel",
"//common:cel_descriptor_util",
"//common:cel_descriptors",
"//common:options",
"//policy:parser",
"//runtime",
"//testing/testrunner:proto_descriptor_utils",
"//testing:proto_descriptor_utils",
"@maven//:com_google_errorprone_error_prone_annotations",
"@maven//:com_google_guava_guava",
"@maven//:com_google_protobuf_protobuf_java",
Expand All @@ -182,8 +182,7 @@ java_library(
tags = [
],
deps = [
"//common/internal:default_instance_message_factory",
"//testing/testrunner:proto_descriptor_utils",
"//common:cel_descriptors",
"@maven//:com_google_protobuf_protobuf_java",
],
)
Expand Down Expand Up @@ -212,8 +211,10 @@ java_library(
"//:java_truth",
"//bundle:cel",
"//common:cel_ast",
"//common:cel_descriptors",
"//runtime",
"//testing:expr_value_utils",
"//testing:proto_descriptor_utils",
"@cel_spec//proto/cel/expr:expr_java_proto",
"@maven//:com_google_protobuf_protobuf_java",
"@maven//:com_google_truth_extensions_truth_proto_extension",
Expand All @@ -229,7 +230,9 @@ java_library(
":cel_test_suite",
":cel_test_suite_exception",
":registry_utils",
"//common:cel_descriptors",
"//common/annotations",
"//testing:proto_descriptor_utils",
"@cel_spec//proto/cel/expr:expr_java_proto",
"@cel_spec//proto/cel/expr/conformance/test:suite_java_proto",
"@maven//:com_google_guava_guava",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import dev.cel.bundle.Cel;
import dev.cel.bundle.CelFactory;
import dev.cel.common.CelDescriptorUtil;
import dev.cel.common.CelDescriptors;
import dev.cel.common.CelOptions;
import dev.cel.policy.CelPolicyParser;
import dev.cel.runtime.CelLateFunctionBindings;
Expand Down Expand Up @@ -125,6 +126,20 @@ public interface BindingTransformer {

abstract ImmutableSet<FileDescriptor> fileTypes();

@Memoized
public Optional<CelDescriptors> celDescriptors() {
if (fileDescriptorSetPath().isPresent()) {
try {
return Optional.of(
ProtoDescriptorUtils.getDescriptorsFromFile(fileDescriptorSetPath().get()));
} catch (IOException e) {
throw new IllegalStateException(
"Failed to load descriptors from path: " + fileDescriptorSetPath().get(), e);
}
}
return Optional.empty();
}

@Memoized
public Optional<TypeRegistry> typeRegistry() {
if (fileTypes().isEmpty() && !fileDescriptorSetPath().isPresent()) {
Expand All @@ -136,15 +151,8 @@ public Optional<TypeRegistry> typeRegistry() {
CelDescriptorUtil.getAllDescriptorsFromFileDescriptor(fileTypes())
.messageTypeDescriptors());
}
if (fileDescriptorSetPath().isPresent()) {
try {
builder.add(
ProtoDescriptorUtils.getAllDescriptorsFromJvm(fileDescriptorSetPath().get())
.messageTypeDescriptors());
} catch (IOException e) {
throw new IllegalStateException(
"Failed to load descriptors from path: " + fileDescriptorSetPath().get(), e);
}
if (celDescriptors().isPresent()) {
builder.add(celDescriptors().get().messageTypeDescriptors());
}
return Optional.of(builder.build());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import com.google.protobuf.TextFormat;
import com.google.protobuf.TextFormat.ParseException;
import com.google.protobuf.TypeRegistry;
import dev.cel.common.CelDescriptors;
import dev.cel.common.annotations.Internal;
import dev.cel.expr.conformance.test.InputValue;
import dev.cel.expr.conformance.test.TestCase;
Expand All @@ -30,6 +31,7 @@
import dev.cel.testing.testrunner.CelTestSuite.CelTestSection;
import dev.cel.testing.testrunner.CelTestSuite.CelTestSection.CelTestCase;
import dev.cel.testing.testrunner.CelTestSuite.CelTestSection.CelTestCase.Input.Binding;
import dev.cel.testing.utils.ProtoDescriptorUtils;
import java.io.IOException;
import java.util.Map;

Expand Down Expand Up @@ -71,8 +73,10 @@ private TestSuite parseTestSuite(
TypeRegistry typeRegistry = customTypeRegistry;
ExtensionRegistry extensionRegistry = customExtensionRegistry;
if (fileDescriptorSetPath != null) {
extensionRegistry = RegistryUtils.getExtensionRegistry(fileDescriptorSetPath);
typeRegistry = RegistryUtils.getTypeRegistry(fileDescriptorSetPath);
CelDescriptors descriptors =
ProtoDescriptorUtils.getDescriptorsFromFile(fileDescriptorSetPath);
extensionRegistry = RegistryUtils.getExtensionRegistry(descriptors);
typeRegistry = RegistryUtils.getTypeRegistry(descriptors);
}
TextFormat.Parser parser = TextFormat.Parser.newBuilder().setTypeRegistry(typeRegistry).build();
TestSuite.Builder builder = TestSuite.newBuilder();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,13 @@
import dev.cel.expr.MapValue;
import dev.cel.bundle.Cel;
import dev.cel.common.CelAbstractSyntaxTree;
import dev.cel.common.CelDescriptors;
import dev.cel.runtime.CelEvaluationException;
import dev.cel.runtime.CelRuntime.Program;
import dev.cel.testing.testrunner.CelTestSuite.CelTestSection.CelTestCase.Output;
import dev.cel.testing.testrunner.ResultMatcher.ResultMatcherParams;
import dev.cel.testing.testrunner.ResultMatcher.ResultMatcherParams.ComputedOutput;
import dev.cel.testing.utils.ProtoDescriptorUtils;
import java.io.IOException;

final class DefaultResultMatcher implements ResultMatcher {
Expand All @@ -41,6 +43,10 @@ public void match(ResultMatcherParams params, Cel cel) throws Exception {
"Error: " + params.computedOutput().error().getMessage(),
params.computedOutput().error());
}
if (params.computedOutput().kind().equals(ComputedOutput.Kind.UNKNOWN_SET)) {
throw new AssertionError(
"Expected value but got UnknownSet: " + params.computedOutput().unknownSet());
}
CelAbstractSyntaxTree exprAst = cel.compile(result.resultExpr()).getAst();
Program exprProgram = cel.createProgram(exprAst);
Object evaluationResult = null;
Expand All @@ -59,6 +65,10 @@ public void match(ResultMatcherParams params, Cel cel) throws Exception {
"Error: " + params.computedOutput().error().getMessage(),
params.computedOutput().error());
}
if (params.computedOutput().kind().equals(ComputedOutput.Kind.UNKNOWN_SET)) {
throw new AssertionError(
"Expected value but got UnknownSet: " + params.computedOutput().unknownSet());
}
assertExprValue(
params.computedOutput().exprValue(),
toExprValue(result.resultValue(), params.resultType()));
Expand All @@ -85,12 +95,14 @@ private static void assertExprValue(ExprValue exprValue, ExprValue expectedExprV
throws IOException {
String fileDescriptorSetPath = System.getProperty("file_descriptor_set_path");
if (fileDescriptorSetPath != null) {
CelDescriptors descriptors =
ProtoDescriptorUtils.getDescriptorsFromFile(fileDescriptorSetPath);
assertThat(exprValue)
.ignoringRepeatedFieldOrderOfFieldDescriptors(
MapValue.getDescriptor().findFieldByName("entries"))
.unpackingAnyUsing(
RegistryUtils.getTypeRegistry(fileDescriptorSetPath),
RegistryUtils.getExtensionRegistry(fileDescriptorSetPath))
RegistryUtils.getTypeRegistry(descriptors),
RegistryUtils.getExtensionRegistry(descriptors))
.isEqualTo(expectedExprValue);
} else {
assertThat(exprValue)
Expand Down
Loading
Loading