diff --git a/runtime/BUILD.bazel b/runtime/BUILD.bazel index e1acc4261..5e99be180 100644 --- a/runtime/BUILD.bazel +++ b/runtime/BUILD.bazel @@ -204,12 +204,6 @@ cel_android_library( exports = ["//runtime/src/main/java/dev/cel/runtime:type_resolver_android"], ) -java_library( - name = "descriptor_type_resolver", - visibility = ["//:internal"], - exports = ["//runtime/src/main/java/dev/cel/runtime:descriptor_type_resolver"], -) - java_library( name = "unknown_attributes", exports = ["//runtime/src/main/java/dev/cel/runtime:unknown_attributes"], diff --git a/runtime/src/main/java/dev/cel/runtime/BUILD.bazel b/runtime/src/main/java/dev/cel/runtime/BUILD.bazel index 3cd371f55..e844c6e84 100644 --- a/runtime/src/main/java/dev/cel/runtime/BUILD.bazel +++ b/runtime/src/main/java/dev/cel/runtime/BUILD.bazel @@ -239,6 +239,7 @@ java_library( name = "descriptor_type_resolver", srcs = ["DescriptorTypeResolver.java"], tags = [ + "avoid_dep", ], deps = [ ":type_resolver", @@ -250,7 +251,6 @@ java_library( "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", "@maven//:com_google_protobuf_protobuf_java", - "@maven//:org_jspecify_jspecify", ], ) @@ -828,7 +828,6 @@ java_library( ], deps = [ ":async_options", - ":descriptor_type_resolver", ":dispatcher", ":evaluation_exception", ":evaluation_listener", diff --git a/runtime/src/main/java/dev/cel/runtime/CelRuntimeImpl.java b/runtime/src/main/java/dev/cel/runtime/CelRuntimeImpl.java index 4d13ca354..61e6ead60 100644 --- a/runtime/src/main/java/dev/cel/runtime/CelRuntimeImpl.java +++ b/runtime/src/main/java/dev/cel/runtime/CelRuntimeImpl.java @@ -558,14 +558,12 @@ public CelRuntime build() { new CelTypeProvider.CombinedCelTypeProvider(combinedTypeProvider, typeProvider()); } - DescriptorTypeResolver descriptorTypeResolver = - DescriptorTypeResolver.create(combinedTypeProvider, celValueConverter); - TypeFunction typeFunction = TypeFunction.create(descriptorTypeResolver); - mutableFunctionBindings.putAll(functionBindings()); for (CelFunctionBinding binding : - typeFunction.newFunctionBindings(options(), runtimeEquality)) { + TypeFunction.create() + .newFunctionBindings( + options(), runtimeEquality, combinedTypeProvider, celValueConverter)) { mutableFunctionBindings.put(binding.getOverloadId(), binding); } diff --git a/runtime/src/main/java/dev/cel/runtime/DescriptorTypeResolver.java b/runtime/src/main/java/dev/cel/runtime/DescriptorTypeResolver.java index 263c5dea3..8846a0710 100644 --- a/runtime/src/main/java/dev/cel/runtime/DescriptorTypeResolver.java +++ b/runtime/src/main/java/dev/cel/runtime/DescriptorTypeResolver.java @@ -20,47 +20,32 @@ import com.google.protobuf.MessageOrBuilder; import dev.cel.common.annotations.Internal; import dev.cel.common.types.CelType; -import dev.cel.common.types.CelTypeProvider; import dev.cel.common.types.DefaultTypeProvider; import dev.cel.common.types.StructTypeReference; import dev.cel.common.types.TypeType; import dev.cel.common.values.CelValueConverter; -import java.util.NoSuchElementException; import java.util.Optional; -import org.jspecify.annotations.Nullable; /** * {@code DescriptorTypeResolver} extends {@link TypeResolver} and additionally resolves incoming * protobuf message types using descriptors. * *
CEL Library Internals. Do Not Use.
+ *
+ * @deprecated This only exists to maintain support for the legacy runtime. Use {@link TypeResolver}
+ * instead.
*/
+@Deprecated
@Immutable
@Internal
-public final class DescriptorTypeResolver extends TypeResolver {
-
- private final @Nullable CelTypeProvider typeProvider;
+final class DescriptorTypeResolver extends TypeResolver {
/**
* Creates a {@code DescriptorTypeResolver}. All protobuf messages are resolved as a type of
* {@link StructTypeReference}.
- *
- * @deprecated This only exists to maintain support for the legacy runtime. Use {@link
- * #create(CelTypeProvider, CelValueConverter)} instead.
*/
- @Deprecated
static DescriptorTypeResolver create(CelValueConverter celValueConverter) {
- return new DescriptorTypeResolver(null, celValueConverter);
- }
-
- /**
- * Creates a {@code DescriptorTypeResolver}. If the protobuf message to be resolved can be found
- * in the provided {@link CelTypeProvider}, the message is resolved as a concrete {@code
- * ProtoMessageType} instead of a {@link StructTypeReference}.
- */
- public static DescriptorTypeResolver create(
- CelTypeProvider typeProvider, CelValueConverter celValueConverter) {
- return new DescriptorTypeResolver(typeProvider, celValueConverter);
+ return new DescriptorTypeResolver(celValueConverter);
}
@Override
@@ -73,25 +58,15 @@ public TypeType resolveObjectType(Object obj, CelType typeCheckedType) {
}
if (obj instanceof MessageOrBuilder) {
- MessageOrBuilder msg = (MessageOrBuilder) obj;
- String typeName = msg.getDescriptorForType().getFullName();
- if (typeProvider != null) {
- return typeProvider
- .findType(typeName)
- .map(TypeType::create)
- .orElseThrow(() -> new NoSuchElementException("Could not find type: " + typeName));
- } else {
- return TypeType.create(StructTypeReference.create(typeName));
- }
+ return TypeType.create(
+ StructTypeReference.create(
+ ((MessageOrBuilder) obj).getDescriptorForType().getFullName()));
}
return super.resolveObjectType(obj, typeCheckedType);
}
- private DescriptorTypeResolver(
- @Nullable CelTypeProvider typeProvider, CelValueConverter celValueConverter) {
- super(
- typeProvider != null ? typeProvider : DefaultTypeProvider.getInstance(), celValueConverter);
- this.typeProvider = typeProvider;
+ private DescriptorTypeResolver(CelValueConverter celValueConverter) {
+ super(DefaultTypeProvider.getInstance(), celValueConverter);
}
}
diff --git a/runtime/src/main/java/dev/cel/runtime/standard/BUILD.bazel b/runtime/src/main/java/dev/cel/runtime/standard/BUILD.bazel
index e801158c2..5a40dda79 100644
--- a/runtime/src/main/java/dev/cel/runtime/standard/BUILD.bazel
+++ b/runtime/src/main/java/dev/cel/runtime/standard/BUILD.bazel
@@ -1418,7 +1418,6 @@ java_library(
"//runtime:type_resolver",
"@maven//:com_google_errorprone_error_prone_annotations",
"@maven//:com_google_guava_guava",
- "@maven//:org_jspecify_jspecify",
],
)
@@ -1438,7 +1437,6 @@ cel_android_library(
"//runtime:runtime_equality_android",
"//runtime:type_resolver_android",
"@maven//:com_google_errorprone_error_prone_annotations",
- "@maven//:org_jspecify_jspecify",
"@maven_android//:com_google_guava_guava",
],
)
diff --git a/runtime/src/main/java/dev/cel/runtime/standard/TypeFunction.java b/runtime/src/main/java/dev/cel/runtime/standard/TypeFunction.java
index fae5489e1..b4a8f764f 100644
--- a/runtime/src/main/java/dev/cel/runtime/standard/TypeFunction.java
+++ b/runtime/src/main/java/dev/cel/runtime/standard/TypeFunction.java
@@ -14,8 +14,6 @@
package dev.cel.runtime.standard;
-import static com.google.common.base.Preconditions.checkNotNull;
-
import com.google.common.collect.ImmutableSet;
import com.google.errorprone.annotations.Immutable;
import dev.cel.common.CelOptions;
@@ -27,15 +25,12 @@
import dev.cel.runtime.RuntimeEquality;
import dev.cel.runtime.TypeResolver;
import java.util.Arrays;
-import org.jspecify.annotations.Nullable;
/** Standard function for the {@code type} function. */
@Immutable
public final class TypeFunction extends CelStandardFunction {
private static final TypeFunction ALL_OVERLOADS = create(TypeOverload.values());
- private final @Nullable TypeResolver typeResolver;
-
public static TypeFunction create() {
return ALL_OVERLOADS;
}
@@ -45,11 +40,7 @@ public static TypeFunction create(TypeFunction.TypeOverload... overloads) {
}
public static TypeFunction create(Iterable