From 8d26d798eabcc9b0ad146c50f1ffda757f6486ad Mon Sep 17 00:00:00 2001 From: arimu1 <19286898+arimu1@users.noreply.github.com> Date: Tue, 21 Jul 2026 09:44:13 +0700 Subject: [PATCH 1/2] fix: expand wildcard imports (AvoidStarImport, 79 violations) Expand all `import x.y.*;` wildcard imports to explicit imports (51 wildcard import lines across 35 files). Two static wildcard imports are kept as-is per idiomatic JUnit/Mockito style (org.junit.jupiter.api.Assertions.* and org.mockito.Mockito.*, 28 sites) and are excluded from AvoidStarImport via checkstyle.xml so the rule reflects the intended scope going forward. Closes #90 Signed-off-by: arimu1 <19286898+arimu1@users.noreply.github.com> --- config/checkstyle/checkstyle.xml | 5 +- .../opa/ast/builtin/impls/JsonBuiltins.java | 23 ++++++- .../opa/ast/builtin/impls/CidrBuiltins.java | 16 ++++- .../opa/ast/builtin/impls/RegexBuiltins.java | 6 +- .../opa/ast/builtin/impls/SemverBuiltins.java | 6 +- .../opa/ast/builtin/impls/TimeBuiltins.java | 18 +++++- .../opa/ast/builtin/impls/TokenBuiltins.java | 31 +++++++-- .../opa/ast/builtin/BuiltinRegistry.java | 13 +++- .../ast/builtin/CapabilitiesGenerator.java | 1 - .../ast/builtin/impls/AggregateBuiltins.java | 12 +++- .../ast/builtin/impls/ArithmeticBuiltins.java | 22 ++++++- .../opa/ast/builtin/impls/CastBuiltins.java | 10 ++- .../ast/builtin/impls/EncodingBuiltins.java | 4 +- .../opa/ast/builtin/impls/HexBuiltins.java | 3 +- .../opa/ast/builtin/impls/ObjectBuiltins.java | 8 ++- .../opa/ast/builtin/impls/PrintBuiltins.java | 6 +- .../opa/ast/builtin/impls/TypeBuiltins.java | 9 ++- .../ast/builtin/impls/utils/ArgHelper.java | 6 +- .../ast/builtin/impls/utils/SprintfUtil.java | 12 +++- .../opa/ast/types/RegoObject.java | 4 +- .../opa/ast/types/RegoSet.java | 7 +- .../opa/cache/NdBuiltinCache.java | 10 ++- .../open_policy_agent/opa/ir/Evaluator.java | 64 +++++++++++++++++-- .../opa/ir/IREvaluationContext.java | 4 +- .../opa/ir/policy/Plans.java | 5 +- .../opa/metrics/SimpleMetrics.java | 4 +- .../profiling/SimpleStatementProfiler.java | 6 +- .../opa/rego/EvaluationContext.java | 6 +- .../ast/builtin/impls/PrintBuiltinsTest.java | 10 ++- .../ast/builtin/impls/SprintfUtilTest.java | 9 ++- .../opa/cache/NdBuiltinCacheTest.java | 7 +- .../NdBuiltinCacheTrackingTest.java | 8 ++- .../open_policy_agent/opa/ir/PolicyTest.java | 52 ++++++++++++++- .../opa/mapper/RegoMapperTest.java | 18 +++++- .../io/github/open_policy_agent/opa/Opa.java | 7 +- .../opa/plugins/DiscoveryPluginTest.java | 5 +- 36 files changed, 385 insertions(+), 52 deletions(-) diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml index 28b93baf..91c5b62a 100644 --- a/config/checkstyle/checkstyle.xml +++ b/config/checkstyle/checkstyle.xml @@ -18,7 +18,10 @@ - + + + + diff --git a/opa-builtins/opa-builtins-json/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/JsonBuiltins.java b/opa-builtins/opa-builtins-json/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/JsonBuiltins.java index 2cc6a725..2d773306 100644 --- a/opa-builtins/opa-builtins-json/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/JsonBuiltins.java +++ b/opa-builtins/opa-builtins-json/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/JsonBuiltins.java @@ -22,13 +22,32 @@ import com.networknt.schema.SpecVersion; import com.networknt.schema.ValidationMessage; import java.io.IOException; -import java.util.*; +import io.github.open_policy_agent.opa.ast.types.RegoArray; +import io.github.open_policy_agent.opa.ast.types.RegoBigInt; +import io.github.open_policy_agent.opa.ast.types.RegoBoolean; +import io.github.open_policy_agent.opa.ast.types.RegoCollection; +import io.github.open_policy_agent.opa.ast.types.RegoDecimal; +import io.github.open_policy_agent.opa.ast.types.RegoInt32; +import io.github.open_policy_agent.opa.ast.types.RegoNull; +import io.github.open_policy_agent.opa.ast.types.RegoObject; +import io.github.open_policy_agent.opa.ast.types.RegoSet; +import io.github.open_policy_agent.opa.ast.types.RegoString; +import io.github.open_policy_agent.opa.ast.types.RegoUndefined; +import io.github.open_policy_agent.opa.ast.types.RegoValue; +import io.github.open_policy_agent.opa.ast.types.TypeUtils; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.function.BiFunction; import io.github.open_policy_agent.opa.ast.builtin.BuiltinError; import io.github.open_policy_agent.opa.ast.builtin.BuiltinProvider; import io.github.open_policy_agent.opa.ast.builtin.OpaBuiltin; import io.github.open_policy_agent.opa.ast.builtin.OpaType; -import io.github.open_policy_agent.opa.ast.types.*; import io.github.open_policy_agent.opa.rego.EvaluationContext; import io.github.open_policy_agent.opa.rego.TypeError; diff --git a/opa-builtins/opa-builtins-net/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/CidrBuiltins.java b/opa-builtins/opa-builtins-net/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/CidrBuiltins.java index a6f6f357..a24357b5 100644 --- a/opa-builtins/opa-builtins-net/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/CidrBuiltins.java +++ b/opa-builtins/opa-builtins-net/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/CidrBuiltins.java @@ -7,7 +7,20 @@ import inet.ipaddr.ipv6.IPv6Address; import java.net.InetAddress; import java.net.UnknownHostException; -import java.util.*; +import io.github.open_policy_agent.opa.ast.types.RegoArray; +import io.github.open_policy_agent.opa.ast.types.RegoBoolean; +import io.github.open_policy_agent.opa.ast.types.RegoInt32; +import io.github.open_policy_agent.opa.ast.types.RegoObject; +import io.github.open_policy_agent.opa.ast.types.RegoSet; +import io.github.open_policy_agent.opa.ast.types.RegoString; +import io.github.open_policy_agent.opa.ast.types.RegoValue; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.Comparator; import java.util.function.BiFunction; import java.util.stream.Collectors; @@ -16,7 +29,6 @@ import io.github.open_policy_agent.opa.ast.builtin.OpaBuiltin; import io.github.open_policy_agent.opa.ast.builtin.OpaDynamic; import io.github.open_policy_agent.opa.ast.builtin.OpaType; -import io.github.open_policy_agent.opa.ast.types.*; import io.github.open_policy_agent.opa.rego.EvaluationContext; import static io.github.open_policy_agent.opa.ast.builtin.impls.utils.ArgHelper.getArg; diff --git a/opa-builtins/opa-builtins-regex/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/RegexBuiltins.java b/opa-builtins/opa-builtins-regex/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/RegexBuiltins.java index 6053541e..a2443091 100644 --- a/opa-builtins/opa-builtins-regex/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/RegexBuiltins.java +++ b/opa-builtins/opa-builtins-regex/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/RegexBuiltins.java @@ -11,7 +11,11 @@ import io.github.open_policy_agent.opa.ast.builtin.OpaBuiltin; import io.github.open_policy_agent.opa.ast.builtin.OpaType; import io.github.open_policy_agent.opa.ast.builtin.impls.utils.GoRegexCompatibilityValidator; -import io.github.open_policy_agent.opa.ast.types.*; +import io.github.open_policy_agent.opa.ast.types.RegoArray; +import io.github.open_policy_agent.opa.ast.types.RegoBoolean; +import io.github.open_policy_agent.opa.ast.types.RegoInt32; +import io.github.open_policy_agent.opa.ast.types.RegoString; +import io.github.open_policy_agent.opa.ast.types.RegoValue; import io.github.open_policy_agent.opa.rego.EvaluationContext; import static io.github.open_policy_agent.opa.ast.builtin.impls.utils.ArgHelper.getArg; diff --git a/opa-builtins/opa-builtins-semver/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/SemverBuiltins.java b/opa-builtins/opa-builtins-semver/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/SemverBuiltins.java index ba0bd499..8f6fe905 100644 --- a/opa-builtins/opa-builtins-semver/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/SemverBuiltins.java +++ b/opa-builtins/opa-builtins-semver/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/SemverBuiltins.java @@ -6,7 +6,11 @@ import io.github.open_policy_agent.opa.ast.builtin.BuiltinProvider; import io.github.open_policy_agent.opa.ast.builtin.OpaBuiltin; import io.github.open_policy_agent.opa.ast.builtin.OpaType; -import io.github.open_policy_agent.opa.ast.types.*; +import io.github.open_policy_agent.opa.ast.types.RegoBoolean; +import io.github.open_policy_agent.opa.ast.types.RegoInt32; +import io.github.open_policy_agent.opa.ast.types.RegoNumber; +import io.github.open_policy_agent.opa.ast.types.RegoString; +import io.github.open_policy_agent.opa.ast.types.RegoValue; import io.github.open_policy_agent.opa.rego.EvaluationContext; import org.semver4j.Semver; diff --git a/opa-builtins/opa-builtins-time/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/TimeBuiltins.java b/opa-builtins/opa-builtins-time/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/TimeBuiltins.java index e0e579db..36c6a472 100644 --- a/opa-builtins/opa-builtins-time/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/TimeBuiltins.java +++ b/opa-builtins/opa-builtins-time/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/TimeBuiltins.java @@ -5,7 +5,22 @@ import java.math.BigDecimal; import java.math.BigInteger; -import java.time.*; +import io.github.open_policy_agent.opa.ast.types.RegoArray; +import io.github.open_policy_agent.opa.ast.types.RegoBigInt; +import io.github.open_policy_agent.opa.ast.types.RegoInt32; +import io.github.open_policy_agent.opa.ast.types.RegoNumber; +import io.github.open_policy_agent.opa.ast.types.RegoString; +import io.github.open_policy_agent.opa.ast.types.RegoValue; +import java.time.DayOfWeek; +import java.time.Duration; +import java.time.Instant; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.Period; +import java.time.ZoneId; +import java.time.ZoneOffset; +import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; import java.time.format.TextStyle; @@ -21,7 +36,6 @@ import io.github.open_policy_agent.opa.ast.builtin.OpaBuiltin; import io.github.open_policy_agent.opa.ast.builtin.OpaType; import io.github.open_policy_agent.opa.ast.builtin.impls.utils.GoTimeLayoutConverter; -import io.github.open_policy_agent.opa.ast.types.*; import io.github.open_policy_agent.opa.rego.EvaluationContext; public class TimeBuiltins implements BuiltinProvider { diff --git a/opa-builtins/opa-builtins-token/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/TokenBuiltins.java b/opa-builtins/opa-builtins-token/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/TokenBuiltins.java index 3a5a0f28..f7721bdd 100644 --- a/opa-builtins/opa-builtins-token/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/TokenBuiltins.java +++ b/opa-builtins/opa-builtins-token/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/TokenBuiltins.java @@ -2,10 +2,32 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import com.nimbusds.jose.*; -import com.nimbusds.jose.crypto.*; -import com.nimbusds.jose.jwk.*; -import com.nimbusds.jwt.*; +import com.nimbusds.jose.JOSEException; +import com.nimbusds.jose.JOSEObjectType; +import com.nimbusds.jose.JWSAlgorithm; +import com.nimbusds.jose.JWSHeader; +import com.nimbusds.jose.JWSObject; +import com.nimbusds.jose.JWSSigner; +import com.nimbusds.jose.JWSVerifier; +import com.nimbusds.jose.Payload; +import com.nimbusds.jose.crypto.ECDSASigner; +import com.nimbusds.jose.crypto.ECDSAVerifier; +import com.nimbusds.jose.crypto.MACSigner; +import com.nimbusds.jose.crypto.MACVerifier; +import com.nimbusds.jose.crypto.RSASSASigner; +import com.nimbusds.jose.crypto.RSASSAVerifier; +import com.nimbusds.jose.jwk.ECKey; +import com.nimbusds.jose.jwk.JWK; +import com.nimbusds.jose.jwk.JWKSet; +import com.nimbusds.jose.jwk.RSAKey; +import com.nimbusds.jwt.JWTClaimsSet; +import com.nimbusds.jwt.SignedJWT; +import io.github.open_policy_agent.opa.ast.types.RegoArray; +import io.github.open_policy_agent.opa.ast.types.RegoBoolean; +import io.github.open_policy_agent.opa.ast.types.RegoNull; +import io.github.open_policy_agent.opa.ast.types.RegoObject; +import io.github.open_policy_agent.opa.ast.types.RegoString; +import io.github.open_policy_agent.opa.ast.types.RegoValue; import java.io.IOException; import java.io.StringReader; import java.security.PrivateKey; @@ -25,7 +47,6 @@ import io.github.open_policy_agent.opa.ast.builtin.BuiltinProvider; import io.github.open_policy_agent.opa.ast.builtin.OpaBuiltin; import io.github.open_policy_agent.opa.ast.builtin.OpaType; -import io.github.open_policy_agent.opa.ast.types.*; import io.github.open_policy_agent.opa.rego.EvaluationContext; import static io.github.open_policy_agent.opa.ast.builtin.impls.utils.ArgHelper.getArg; diff --git a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/BuiltinRegistry.java b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/BuiltinRegistry.java index 17a055b2..40a66861 100644 --- a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/BuiltinRegistry.java +++ b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/BuiltinRegistry.java @@ -8,7 +8,18 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import java.util.stream.StreamSupport; -import io.github.open_policy_agent.opa.ast.builtin.impls.*; +import io.github.open_policy_agent.opa.ast.builtin.impls.AggregateBuiltins; +import io.github.open_policy_agent.opa.ast.builtin.impls.ArithmeticBuiltins; +import io.github.open_policy_agent.opa.ast.builtin.impls.ArrayBuiltins; +import io.github.open_policy_agent.opa.ast.builtin.impls.CastBuiltins; +import io.github.open_policy_agent.opa.ast.builtin.impls.ComparisonBuiltins; +import io.github.open_policy_agent.opa.ast.builtin.impls.EncodingBuiltins; +import io.github.open_policy_agent.opa.ast.builtin.impls.HexBuiltins; +import io.github.open_policy_agent.opa.ast.builtin.impls.ObjectBuiltins; +import io.github.open_policy_agent.opa.ast.builtin.impls.PrintBuiltins; +import io.github.open_policy_agent.opa.ast.builtin.impls.SetBuiltins; +import io.github.open_policy_agent.opa.ast.builtin.impls.StringBuiltins; +import io.github.open_policy_agent.opa.ast.builtin.impls.TypeBuiltins; import io.github.open_policy_agent.opa.ast.types.RegoValue; import io.github.open_policy_agent.opa.rego.Capabilities; import io.github.open_policy_agent.opa.rego.EvaluationContext; diff --git a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/CapabilitiesGenerator.java b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/CapabilitiesGenerator.java index d945712a..b50be1f7 100644 --- a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/CapabilitiesGenerator.java +++ b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/CapabilitiesGenerator.java @@ -8,7 +8,6 @@ import java.util.ServiceLoader; import java.util.function.BiFunction; import java.util.stream.Collectors; -import io.github.open_policy_agent.opa.ast.builtin.impls.*; import io.github.open_policy_agent.opa.ast.types.RegoValue; import io.github.open_policy_agent.opa.rego.Capabilities; import io.github.open_policy_agent.opa.rego.EvaluationContext; diff --git a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/AggregateBuiltins.java b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/AggregateBuiltins.java index 43a569b6..0be41933 100644 --- a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/AggregateBuiltins.java +++ b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/AggregateBuiltins.java @@ -7,7 +7,17 @@ import io.github.open_policy_agent.opa.ast.builtin.OpaBuiltin; import io.github.open_policy_agent.opa.ast.builtin.OpaType; import io.github.open_policy_agent.opa.ast.builtin.OpaVal; -import io.github.open_policy_agent.opa.ast.types.*; +import io.github.open_policy_agent.opa.ast.types.RegoArray; +import io.github.open_policy_agent.opa.ast.types.RegoBigInt; +import io.github.open_policy_agent.opa.ast.types.RegoBoolean; +import io.github.open_policy_agent.opa.ast.types.RegoCollection; +import io.github.open_policy_agent.opa.ast.types.RegoDecimal; +import io.github.open_policy_agent.opa.ast.types.RegoInt32; +import io.github.open_policy_agent.opa.ast.types.RegoNull; +import io.github.open_policy_agent.opa.ast.types.RegoNumber; +import io.github.open_policy_agent.opa.ast.types.RegoObject; +import io.github.open_policy_agent.opa.ast.types.RegoString; +import io.github.open_policy_agent.opa.ast.types.RegoValue; import io.github.open_policy_agent.opa.rego.EvaluationContext; import io.github.open_policy_agent.opa.rego.TypeError; diff --git a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/ArithmeticBuiltins.java b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/ArithmeticBuiltins.java index b3f6d3d0..0606213d 100644 --- a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/ArithmeticBuiltins.java +++ b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/ArithmeticBuiltins.java @@ -1,17 +1,33 @@ package io.github.open_policy_agent.opa.ast.builtin.impls; -import static java.lang.Math.*; +import io.github.open_policy_agent.opa.ast.types.RegoArray; +import io.github.open_policy_agent.opa.ast.types.RegoBigInt; +import io.github.open_policy_agent.opa.ast.types.RegoDecimal; +import io.github.open_policy_agent.opa.ast.types.RegoInt32; +import io.github.open_policy_agent.opa.ast.types.RegoNumber; +import io.github.open_policy_agent.opa.ast.types.RegoSet; +import io.github.open_policy_agent.opa.ast.types.RegoString; +import io.github.open_policy_agent.opa.ast.types.RegoValue; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Random; +import java.util.Set; +import static java.lang.Math.abs; +import static java.lang.Math.ceil; +import static java.lang.Math.floor; +import static java.lang.Math.random; +import static java.lang.Math.round; import static io.github.open_policy_agent.opa.ast.builtin.impls.utils.ArgHelper.getArg; import java.math.BigDecimal; import java.math.BigInteger; import java.math.RoundingMode; -import java.util.*; import java.util.function.BiFunction; import io.github.open_policy_agent.opa.ast.builtin.BuiltinError; import io.github.open_policy_agent.opa.ast.builtin.OpaBuiltin; import io.github.open_policy_agent.opa.ast.builtin.OpaType; -import io.github.open_policy_agent.opa.ast.types.*; import io.github.open_policy_agent.opa.rego.EvaluationContext; import io.github.open_policy_agent.opa.rego.TypeError; diff --git a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/CastBuiltins.java b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/CastBuiltins.java index 6b4ebad0..71f5341e 100644 --- a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/CastBuiltins.java +++ b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/CastBuiltins.java @@ -7,7 +7,15 @@ import io.github.open_policy_agent.opa.ast.builtin.BuiltinError; import io.github.open_policy_agent.opa.ast.builtin.OpaBuiltin; import io.github.open_policy_agent.opa.ast.builtin.OpaType; -import io.github.open_policy_agent.opa.ast.types.*; +import io.github.open_policy_agent.opa.ast.types.RegoBigInt; +import io.github.open_policy_agent.opa.ast.types.RegoBoolean; +import io.github.open_policy_agent.opa.ast.types.RegoDecimal; +import io.github.open_policy_agent.opa.ast.types.RegoInt32; +import io.github.open_policy_agent.opa.ast.types.RegoNull; +import io.github.open_policy_agent.opa.ast.types.RegoNumber; +import io.github.open_policy_agent.opa.ast.types.RegoString; +import io.github.open_policy_agent.opa.ast.types.RegoValue; +import io.github.open_policy_agent.opa.ast.types.TypeUtils; import io.github.open_policy_agent.opa.rego.EvaluationContext; import io.github.open_policy_agent.opa.rego.TypeError; diff --git a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/EncodingBuiltins.java b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/EncodingBuiltins.java index 2b3784d0..48241afe 100644 --- a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/EncodingBuiltins.java +++ b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/EncodingBuiltins.java @@ -5,7 +5,9 @@ import java.util.function.BiFunction; import io.github.open_policy_agent.opa.ast.builtin.OpaBuiltin; import io.github.open_policy_agent.opa.ast.builtin.OpaType; -import io.github.open_policy_agent.opa.ast.types.*; +import io.github.open_policy_agent.opa.ast.types.RegoBoolean; +import io.github.open_policy_agent.opa.ast.types.RegoString; +import io.github.open_policy_agent.opa.ast.types.RegoValue; import io.github.open_policy_agent.opa.rego.EvaluationContext; import static io.github.open_policy_agent.opa.ast.builtin.impls.utils.ArgHelper.getArg; diff --git a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/HexBuiltins.java b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/HexBuiltins.java index 2995befc..a351e913 100644 --- a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/HexBuiltins.java +++ b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/HexBuiltins.java @@ -6,7 +6,8 @@ import io.github.open_policy_agent.opa.ast.builtin.BuiltinError; import io.github.open_policy_agent.opa.ast.builtin.OpaBuiltin; import io.github.open_policy_agent.opa.ast.builtin.OpaType; -import io.github.open_policy_agent.opa.ast.types.*; +import io.github.open_policy_agent.opa.ast.types.RegoString; +import io.github.open_policy_agent.opa.ast.types.RegoValue; import io.github.open_policy_agent.opa.rego.EvaluationContext; import static io.github.open_policy_agent.opa.ast.builtin.impls.utils.ArgHelper.getArg; diff --git a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/ObjectBuiltins.java b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/ObjectBuiltins.java index 01755abb..dd55c47d 100644 --- a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/ObjectBuiltins.java +++ b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/ObjectBuiltins.java @@ -8,7 +8,13 @@ import io.github.open_policy_agent.opa.ast.builtin.OpaBuiltin; import io.github.open_policy_agent.opa.ast.builtin.OpaDynamic; import io.github.open_policy_agent.opa.ast.builtin.OpaType; -import io.github.open_policy_agent.opa.ast.types.*; +import io.github.open_policy_agent.opa.ast.types.RegoArray; +import io.github.open_policy_agent.opa.ast.types.RegoBoolean; +import io.github.open_policy_agent.opa.ast.types.RegoCollection; +import io.github.open_policy_agent.opa.ast.types.RegoNumber; +import io.github.open_policy_agent.opa.ast.types.RegoObject; +import io.github.open_policy_agent.opa.ast.types.RegoSet; +import io.github.open_policy_agent.opa.ast.types.RegoValue; import io.github.open_policy_agent.opa.rego.EvaluationContext; import io.github.open_policy_agent.opa.rego.TypeError; diff --git a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/PrintBuiltins.java b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/PrintBuiltins.java index 19df8764..71f131db 100644 --- a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/PrintBuiltins.java +++ b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/PrintBuiltins.java @@ -4,7 +4,11 @@ import io.github.open_policy_agent.opa.ast.builtin.OpaBuiltin; import io.github.open_policy_agent.opa.ast.builtin.OpaDynamic; import io.github.open_policy_agent.opa.ast.builtin.OpaType; -import io.github.open_policy_agent.opa.ast.types.*; +import io.github.open_policy_agent.opa.ast.types.RegoArray; +import io.github.open_policy_agent.opa.ast.types.RegoBoolean; +import io.github.open_policy_agent.opa.ast.types.RegoSet; +import io.github.open_policy_agent.opa.ast.types.RegoString; +import io.github.open_policy_agent.opa.ast.types.RegoValue; import io.github.open_policy_agent.opa.rego.EvaluationContext; import io.github.open_policy_agent.opa.rego.PrintHook; diff --git a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/TypeBuiltins.java b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/TypeBuiltins.java index f0e9e345..d7ff7be7 100644 --- a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/TypeBuiltins.java +++ b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/TypeBuiltins.java @@ -4,7 +4,14 @@ import java.util.function.BiFunction; import io.github.open_policy_agent.opa.ast.builtin.OpaBuiltin; import io.github.open_policy_agent.opa.ast.builtin.OpaType; -import io.github.open_policy_agent.opa.ast.types.*; +import io.github.open_policy_agent.opa.ast.types.RegoArray; +import io.github.open_policy_agent.opa.ast.types.RegoBoolean; +import io.github.open_policy_agent.opa.ast.types.RegoNull; +import io.github.open_policy_agent.opa.ast.types.RegoNumber; +import io.github.open_policy_agent.opa.ast.types.RegoObject; +import io.github.open_policy_agent.opa.ast.types.RegoSet; +import io.github.open_policy_agent.opa.ast.types.RegoString; +import io.github.open_policy_agent.opa.ast.types.RegoValue; import io.github.open_policy_agent.opa.rego.EvaluationContext; public class TypeBuiltins { diff --git a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/utils/ArgHelper.java b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/utils/ArgHelper.java index acd5e71b..27dcd6d2 100644 --- a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/utils/ArgHelper.java +++ b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/utils/ArgHelper.java @@ -1,6 +1,10 @@ package io.github.open_policy_agent.opa.ast.builtin.impls.utils; -import io.github.open_policy_agent.opa.ast.types.*; +import io.github.open_policy_agent.opa.ast.types.RegoArray; +import io.github.open_policy_agent.opa.ast.types.RegoCollection; +import io.github.open_policy_agent.opa.ast.types.RegoSet; +import io.github.open_policy_agent.opa.ast.types.RegoValue; +import io.github.open_policy_agent.opa.ast.types.TypeUtils; import io.github.open_policy_agent.opa.rego.TypeError; import java.util.Arrays; diff --git a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/utils/SprintfUtil.java b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/utils/SprintfUtil.java index eeeff68a..3b579ff1 100644 --- a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/utils/SprintfUtil.java +++ b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/utils/SprintfUtil.java @@ -3,7 +3,17 @@ import java.math.BigInteger; import java.util.ArrayList; import java.util.List; -import io.github.open_policy_agent.opa.ast.types.*; +import io.github.open_policy_agent.opa.ast.types.RegoArray; +import io.github.open_policy_agent.opa.ast.types.RegoBigInt; +import io.github.open_policy_agent.opa.ast.types.RegoBoolean; +import io.github.open_policy_agent.opa.ast.types.RegoDecimal; +import io.github.open_policy_agent.opa.ast.types.RegoInt32; +import io.github.open_policy_agent.opa.ast.types.RegoNull; +import io.github.open_policy_agent.opa.ast.types.RegoNumber; +import io.github.open_policy_agent.opa.ast.types.RegoObject; +import io.github.open_policy_agent.opa.ast.types.RegoSet; +import io.github.open_policy_agent.opa.ast.types.RegoString; +import io.github.open_policy_agent.opa.ast.types.RegoValue; /** * *** This implementation was "borrowed" from the OpaSwift code, so changes made here might need to diff --git a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/types/RegoObject.java b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/types/RegoObject.java index b0adb83b..0e30eff6 100644 --- a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/types/RegoObject.java +++ b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/types/RegoObject.java @@ -1,6 +1,8 @@ package io.github.open_policy_agent.opa.ast.types; -import java.util.*; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Objects; import java.util.stream.Stream; public class RegoObject implements RegoValue { diff --git a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/types/RegoSet.java b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/types/RegoSet.java index 5e29092e..1cc8b6f1 100644 --- a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/types/RegoSet.java +++ b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/types/RegoSet.java @@ -1,6 +1,11 @@ package io.github.open_policy_agent.opa.ast.types; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; diff --git a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/cache/NdBuiltinCache.java b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/cache/NdBuiltinCache.java index 41945f4f..a7556f2a 100644 --- a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/cache/NdBuiltinCache.java +++ b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/cache/NdBuiltinCache.java @@ -1,7 +1,13 @@ package io.github.open_policy_agent.opa.cache; -import java.util.*; -import java.util.concurrent.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantReadWriteLock; import io.github.open_policy_agent.opa.ast.types.RegoValue; diff --git a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ir/Evaluator.java b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ir/Evaluator.java index 53a7637a..b9b3907f 100644 --- a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ir/Evaluator.java +++ b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ir/Evaluator.java @@ -1,11 +1,67 @@ package io.github.open_policy_agent.opa.ir; import java.math.BigInteger; -import java.util.*; +import io.github.open_policy_agent.opa.ast.types.RegoArray; +import io.github.open_policy_agent.opa.ast.types.RegoBigInt; +import io.github.open_policy_agent.opa.ast.types.RegoBoolean; +import io.github.open_policy_agent.opa.ast.types.RegoDecimal; +import io.github.open_policy_agent.opa.ast.types.RegoInt32; +import io.github.open_policy_agent.opa.ast.types.RegoNull; +import io.github.open_policy_agent.opa.ast.types.RegoNumber; +import io.github.open_policy_agent.opa.ast.types.RegoObject; +import io.github.open_policy_agent.opa.ast.types.RegoSet; +import io.github.open_policy_agent.opa.ast.types.RegoString; +import io.github.open_policy_agent.opa.ast.types.RegoUndefined; +import io.github.open_policy_agent.opa.ast.types.RegoValue; +import io.github.open_policy_agent.opa.ast.types.TypeMismatchException; +import io.github.open_policy_agent.opa.ast.types.TypeUtils; +import io.github.open_policy_agent.opa.ir.policy.Block; +import io.github.open_policy_agent.opa.ir.policy.Func; +import io.github.open_policy_agent.opa.ir.policy.Plan; +import io.github.open_policy_agent.opa.ir.policy.Policy; +import io.github.open_policy_agent.opa.ir.policy.StringConst; +import io.github.open_policy_agent.opa.ir.stmts.ArrayAppendStmt; +import io.github.open_policy_agent.opa.ir.stmts.AssignIntStmt; +import io.github.open_policy_agent.opa.ir.stmts.AssignVarOnceStmt; +import io.github.open_policy_agent.opa.ir.stmts.AssignVarStmt; +import io.github.open_policy_agent.opa.ir.stmts.BlockStmt; +import io.github.open_policy_agent.opa.ir.stmts.BreakStmt; +import io.github.open_policy_agent.opa.ir.stmts.CallDynamicStmt; +import io.github.open_policy_agent.opa.ir.stmts.CallStmt; +import io.github.open_policy_agent.opa.ir.stmts.DotStmt; +import io.github.open_policy_agent.opa.ir.stmts.EqualStmt; +import io.github.open_policy_agent.opa.ir.stmts.IsArrayStmt; +import io.github.open_policy_agent.opa.ir.stmts.IsDefinedStmt; +import io.github.open_policy_agent.opa.ir.stmts.IsObjectStmt; +import io.github.open_policy_agent.opa.ir.stmts.IsSetStmt; +import io.github.open_policy_agent.opa.ir.stmts.IsUndefinedStmt; +import io.github.open_policy_agent.opa.ir.stmts.LenStmt; +import io.github.open_policy_agent.opa.ir.stmts.MakeArrayStmt; +import io.github.open_policy_agent.opa.ir.stmts.MakeNullStmt; +import io.github.open_policy_agent.opa.ir.stmts.MakeNumberIntStmt; +import io.github.open_policy_agent.opa.ir.stmts.MakeNumberRefStmt; +import io.github.open_policy_agent.opa.ir.stmts.MakeObjectStmt; +import io.github.open_policy_agent.opa.ir.stmts.MakeSetStmt; +import io.github.open_policy_agent.opa.ir.stmts.NotEqualStmt; +import io.github.open_policy_agent.opa.ir.stmts.NotStmt; +import io.github.open_policy_agent.opa.ir.stmts.ObjectInsertOnceStmt; +import io.github.open_policy_agent.opa.ir.stmts.ObjectInsertStmt; +import io.github.open_policy_agent.opa.ir.stmts.ObjectMergeStmt; +import io.github.open_policy_agent.opa.ir.stmts.ResetLocalStmt; +import io.github.open_policy_agent.opa.ir.stmts.ResultSetAddStmt; +import io.github.open_policy_agent.opa.ir.stmts.ReturnLocalStmt; +import io.github.open_policy_agent.opa.ir.stmts.ScanStmt; +import io.github.open_policy_agent.opa.ir.stmts.SetAddStmt; +import io.github.open_policy_agent.opa.ir.stmts.Stmt; +import io.github.open_policy_agent.opa.ir.stmts.WithStmt; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; import java.util.stream.Collectors; -import io.github.open_policy_agent.opa.ast.types.*; -import io.github.open_policy_agent.opa.ir.policy.*; -import io.github.open_policy_agent.opa.ir.stmts.*; import io.github.open_policy_agent.opa.ir.vals.BoolVal; import io.github.open_policy_agent.opa.ir.vals.LocalVal; import io.github.open_policy_agent.opa.ir.vals.StringIndexVal; diff --git a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ir/IREvaluationContext.java b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ir/IREvaluationContext.java index 259744d4..8539c694 100644 --- a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ir/IREvaluationContext.java +++ b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ir/IREvaluationContext.java @@ -1,6 +1,8 @@ package io.github.open_policy_agent.opa.ir; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; import java.util.stream.Collectors; import io.github.open_policy_agent.opa.ir.policy.Func; import io.github.open_policy_agent.opa.rego.EvaluationContext; diff --git a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ir/policy/Plans.java b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ir/policy/Plans.java index d63fb199..ad84c2de 100644 --- a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ir/policy/Plans.java +++ b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ir/policy/Plans.java @@ -1,6 +1,9 @@ package io.github.open_policy_agent.opa.ir.policy; -import java.util.*; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.TreeMap; /** Represents a collection of named query plans to expose in the policy. */ public class Plans { diff --git a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/metrics/SimpleMetrics.java b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/metrics/SimpleMetrics.java index 9641cbc9..017d3f3c 100644 --- a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/metrics/SimpleMetrics.java +++ b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/metrics/SimpleMetrics.java @@ -1,7 +1,9 @@ package io.github.open_policy_agent.opa.metrics; import java.time.Duration; -import java.util.*; +import java.util.Map; +import java.util.Timer; +import java.util.TreeMap; public class SimpleMetrics implements Metrics { diff --git a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/profiling/SimpleStatementProfiler.java b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/profiling/SimpleStatementProfiler.java index 51b834d6..154128e5 100644 --- a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/profiling/SimpleStatementProfiler.java +++ b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/profiling/SimpleStatementProfiler.java @@ -1,7 +1,11 @@ package io.github.open_policy_agent.opa.profiling; import java.time.Duration; -import java.util.*; +import java.util.ArrayDeque; +import java.util.Collections; +import java.util.Deque; +import java.util.HashMap; +import java.util.Map; import io.github.open_policy_agent.opa.ir.stmts.CallStmt; import io.github.open_policy_agent.opa.ir.stmts.Stmt; import io.github.open_policy_agent.opa.ir.stmts.Stmt.StmtType; diff --git a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/rego/EvaluationContext.java b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/rego/EvaluationContext.java index a0bdaad7..d0012d09 100644 --- a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/rego/EvaluationContext.java +++ b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/rego/EvaluationContext.java @@ -1,6 +1,10 @@ package io.github.open_policy_agent.opa.rego; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import io.github.open_policy_agent.opa.ast.builtin.BuiltinRegistry; import io.github.open_policy_agent.opa.logging.Logger; import io.github.open_policy_agent.opa.ast.types.RegoValue; diff --git a/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/ast/builtin/impls/PrintBuiltinsTest.java b/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/ast/builtin/impls/PrintBuiltinsTest.java index 5f22fdf9..af3123dd 100644 --- a/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/ast/builtin/impls/PrintBuiltinsTest.java +++ b/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/ast/builtin/impls/PrintBuiltinsTest.java @@ -3,7 +3,15 @@ import static org.junit.jupiter.api.Assertions.*; import io.github.open_policy_agent.opa.ast.builtin.BuiltinError; -import io.github.open_policy_agent.opa.ast.types.*; +import io.github.open_policy_agent.opa.ast.types.RegoArray; +import io.github.open_policy_agent.opa.ast.types.RegoBigInt; +import io.github.open_policy_agent.opa.ast.types.RegoBoolean; +import io.github.open_policy_agent.opa.ast.types.RegoDecimal; +import io.github.open_policy_agent.opa.ast.types.RegoNull; +import io.github.open_policy_agent.opa.ast.types.RegoObject; +import io.github.open_policy_agent.opa.ast.types.RegoSet; +import io.github.open_policy_agent.opa.ast.types.RegoString; +import io.github.open_policy_agent.opa.ast.types.RegoValue; import io.github.open_policy_agent.opa.logging.Logger; import io.github.open_policy_agent.opa.rego.EvaluationContext; import io.github.open_policy_agent.opa.rego.PrintHook; diff --git a/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/ast/builtin/impls/SprintfUtilTest.java b/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/ast/builtin/impls/SprintfUtilTest.java index 4b332fd2..0a8e26b0 100644 --- a/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/ast/builtin/impls/SprintfUtilTest.java +++ b/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/ast/builtin/impls/SprintfUtilTest.java @@ -6,7 +6,14 @@ import java.math.BigInteger; import org.junit.jupiter.api.Test; import io.github.open_policy_agent.opa.ast.builtin.impls.utils.SprintfUtil; -import io.github.open_policy_agent.opa.ast.types.*; +import io.github.open_policy_agent.opa.ast.types.RegoArray; +import io.github.open_policy_agent.opa.ast.types.RegoBigInt; +import io.github.open_policy_agent.opa.ast.types.RegoBoolean; +import io.github.open_policy_agent.opa.ast.types.RegoDecimal; +import io.github.open_policy_agent.opa.ast.types.RegoObject; +import io.github.open_policy_agent.opa.ast.types.RegoSet; +import io.github.open_policy_agent.opa.ast.types.RegoString; +import io.github.open_policy_agent.opa.ast.types.RegoValue; /** * Unit tests for SprintfUtil based on Go's fmt.Sprintf behavior. diff --git a/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/cache/NdBuiltinCacheTest.java b/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/cache/NdBuiltinCacheTest.java index a698d714..40535d51 100644 --- a/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/cache/NdBuiltinCacheTest.java +++ b/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/cache/NdBuiltinCacheTest.java @@ -5,7 +5,12 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import io.github.open_policy_agent.opa.ast.types.*; +import io.github.open_policy_agent.opa.ast.types.RegoArray; +import io.github.open_policy_agent.opa.ast.types.RegoBoolean; +import io.github.open_policy_agent.opa.ast.types.RegoInt32; +import io.github.open_policy_agent.opa.ast.types.RegoObject; +import io.github.open_policy_agent.opa.ast.types.RegoString; +import io.github.open_policy_agent.opa.ast.types.RegoValue; /** Unit tests for NdBuiltinCache. */ public class NdBuiltinCacheTest { diff --git a/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/integration/NdBuiltinCacheTrackingTest.java b/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/integration/NdBuiltinCacheTrackingTest.java index 7db0428a..05fe83ce 100644 --- a/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/integration/NdBuiltinCacheTrackingTest.java +++ b/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/integration/NdBuiltinCacheTrackingTest.java @@ -7,7 +7,13 @@ import java.util.List; import java.util.Map; import org.junit.jupiter.api.Test; -import io.github.open_policy_agent.opa.ast.types.*; +import io.github.open_policy_agent.opa.ast.types.RegoArray; +import io.github.open_policy_agent.opa.ast.types.RegoBigInt; +import io.github.open_policy_agent.opa.ast.types.RegoBoolean; +import io.github.open_policy_agent.opa.ast.types.RegoInt32; +import io.github.open_policy_agent.opa.ast.types.RegoObject; +import io.github.open_policy_agent.opa.ast.types.RegoString; +import io.github.open_policy_agent.opa.ast.types.RegoValue; import io.github.open_policy_agent.opa.rego.EvaluationContext; /** diff --git a/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/ir/PolicyTest.java b/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/ir/PolicyTest.java index 7e666499..3ac52f9a 100644 --- a/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/ir/PolicyTest.java +++ b/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/ir/PolicyTest.java @@ -10,9 +10,55 @@ import java.util.Objects; import java.util.ServiceLoader; import org.junit.jupiter.api.Test; -import io.github.open_policy_agent.opa.ir.policy.*; -import io.github.open_policy_agent.opa.ir.policy.types.*; -import io.github.open_policy_agent.opa.ir.stmts.*; +import io.github.open_policy_agent.opa.ir.policy.Block; +import io.github.open_policy_agent.opa.ir.policy.BuiltinFunc; +import io.github.open_policy_agent.opa.ir.policy.Func; +import io.github.open_policy_agent.opa.ir.policy.Funcs; +import io.github.open_policy_agent.opa.ir.policy.Plan; +import io.github.open_policy_agent.opa.ir.policy.Plans; +import io.github.open_policy_agent.opa.ir.policy.Policy; +import io.github.open_policy_agent.opa.ir.policy.Static; +import io.github.open_policy_agent.opa.ir.policy.StringConst; +import io.github.open_policy_agent.opa.ir.policy.types.AnyType; +import io.github.open_policy_agent.opa.ir.policy.types.ArrayType; +import io.github.open_policy_agent.opa.ir.policy.types.BooleanType; +import io.github.open_policy_agent.opa.ir.policy.types.FunctionType; +import io.github.open_policy_agent.opa.ir.policy.types.NumberType; +import io.github.open_policy_agent.opa.ir.policy.types.ObjectType; +import io.github.open_policy_agent.opa.ir.policy.types.SetType; +import io.github.open_policy_agent.opa.ir.policy.types.StringType; +import io.github.open_policy_agent.opa.ir.stmts.ArrayAppendStmt; +import io.github.open_policy_agent.opa.ir.stmts.AssignIntStmt; +import io.github.open_policy_agent.opa.ir.stmts.AssignVarOnceStmt; +import io.github.open_policy_agent.opa.ir.stmts.AssignVarStmt; +import io.github.open_policy_agent.opa.ir.stmts.BlockStmt; +import io.github.open_policy_agent.opa.ir.stmts.BreakStmt; +import io.github.open_policy_agent.opa.ir.stmts.CallDynamicStmt; +import io.github.open_policy_agent.opa.ir.stmts.CallStmt; +import io.github.open_policy_agent.opa.ir.stmts.DotStmt; +import io.github.open_policy_agent.opa.ir.stmts.EqualStmt; +import io.github.open_policy_agent.opa.ir.stmts.IsArrayStmt; +import io.github.open_policy_agent.opa.ir.stmts.IsDefinedStmt; +import io.github.open_policy_agent.opa.ir.stmts.IsObjectStmt; +import io.github.open_policy_agent.opa.ir.stmts.IsUndefinedStmt; +import io.github.open_policy_agent.opa.ir.stmts.LenStmt; +import io.github.open_policy_agent.opa.ir.stmts.MakeArrayStmt; +import io.github.open_policy_agent.opa.ir.stmts.MakeNullStmt; +import io.github.open_policy_agent.opa.ir.stmts.MakeNumberIntStmt; +import io.github.open_policy_agent.opa.ir.stmts.MakeNumberRefStmt; +import io.github.open_policy_agent.opa.ir.stmts.MakeObjectStmt; +import io.github.open_policy_agent.opa.ir.stmts.MakeSetStmt; +import io.github.open_policy_agent.opa.ir.stmts.NotEqualStmt; +import io.github.open_policy_agent.opa.ir.stmts.NotStmt; +import io.github.open_policy_agent.opa.ir.stmts.ObjectInsertOnceStmt; +import io.github.open_policy_agent.opa.ir.stmts.ObjectInsertStmt; +import io.github.open_policy_agent.opa.ir.stmts.ObjectMergeStmt; +import io.github.open_policy_agent.opa.ir.stmts.ResetLocalStmt; +import io.github.open_policy_agent.opa.ir.stmts.ResultSetAddStmt; +import io.github.open_policy_agent.opa.ir.stmts.ReturnLocalStmt; +import io.github.open_policy_agent.opa.ir.stmts.ScanStmt; +import io.github.open_policy_agent.opa.ir.stmts.SetAddStmt; +import io.github.open_policy_agent.opa.ir.stmts.WithStmt; import io.github.open_policy_agent.opa.ir.vals.BoolVal; import io.github.open_policy_agent.opa.ir.vals.LocalVal; import io.github.open_policy_agent.opa.ir.vals.StringIndexVal; diff --git a/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/mapper/RegoMapperTest.java b/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/mapper/RegoMapperTest.java index e46fb2f7..70f79404 100644 --- a/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/mapper/RegoMapperTest.java +++ b/opa-evaluator/src/test/java/io/github/open_policy_agent/opa/mapper/RegoMapperTest.java @@ -11,12 +11,26 @@ import com.fasterxml.jackson.annotation.JsonValue; import java.math.BigDecimal; import java.math.BigInteger; -import java.util.*; +import io.github.open_policy_agent.opa.ast.types.RegoArray; +import io.github.open_policy_agent.opa.ast.types.RegoBigInt; +import io.github.open_policy_agent.opa.ast.types.RegoBoolean; +import io.github.open_policy_agent.opa.ast.types.RegoDecimal; +import io.github.open_policy_agent.opa.ast.types.RegoInt32; +import io.github.open_policy_agent.opa.ast.types.RegoNull; +import io.github.open_policy_agent.opa.ast.types.RegoObject; +import io.github.open_policy_agent.opa.ast.types.RegoSet; +import io.github.open_policy_agent.opa.ast.types.RegoString; +import io.github.open_policy_agent.opa.ast.types.RegoValue; +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; -import io.github.open_policy_agent.opa.ast.types.*; class RegoMapperTest { diff --git a/opa-services/src/main/java/io/github/open_policy_agent/opa/Opa.java b/opa-services/src/main/java/io/github/open_policy_agent/opa/Opa.java index fc1293de..25670be1 100644 --- a/opa-services/src/main/java/io/github/open_policy_agent/opa/Opa.java +++ b/opa-services/src/main/java/io/github/open_policy_agent/opa/Opa.java @@ -7,7 +7,12 @@ import java.io.FileReader; import java.io.IOException; import java.io.Reader; -import java.util.*; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.UUID; import io.github.open_policy_agent.opa.ast.types.RegoValue; import io.github.open_policy_agent.opa.bundle.Bundle; import io.github.open_policy_agent.opa.config.Config; diff --git a/opa-services/src/test/java/io/github/open_policy_agent/opa/plugins/DiscoveryPluginTest.java b/opa-services/src/test/java/io/github/open_policy_agent/opa/plugins/DiscoveryPluginTest.java index a6b40109..c6bfacd9 100644 --- a/opa-services/src/test/java/io/github/open_policy_agent/opa/plugins/DiscoveryPluginTest.java +++ b/opa-services/src/test/java/io/github/open_policy_agent/opa/plugins/DiscoveryPluginTest.java @@ -1,7 +1,10 @@ package io.github.open_policy_agent.opa.plugins; import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.ArgumentMatchers.*; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.contains; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.*; import com.fasterxml.jackson.databind.ObjectMapper; From cf40fb8cac0de98e4805aef0512ac68824f09e5f Mon Sep 17 00:00:00 2001 From: arimu1 <19286898+arimu1@users.noreply.github.com> Date: Tue, 21 Jul 2026 10:13:24 +0700 Subject: [PATCH 2/2] fix(#90): remove unused static import java.lang.Math.random from ArithmeticBuiltins The wildcard-expansion script that generated the explicit static imports pulled in java.lang.Math.random alongside abs/ceil/floor/round, but ArithmeticBuiltins never calls a bare random(); rand.intn() uses a local java.util.Random instance instead. checkstyle's UnusedImports check cannot catch this because the local variable is also named "random", which fools its textual reference matching. Manually audited the other 34 files touched by the wildcard-import fix for the same pattern (named static import shadowed by a same-named local/field): all remaining static imports (getArg across 8 builtin files, ceil/floor/round/abs, assertArgType, assertEquals/assertTrue, assertThat/assertThatThrownBy, any/anyString/contains/eq) have genuine bare call sites and are not shadowed. Signed-off-by: arimu1 <19286898+arimu1@users.noreply.github.com> --- .../opa/ast/builtin/impls/ArithmeticBuiltins.java | 1 - 1 file changed, 1 deletion(-) diff --git a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/ArithmeticBuiltins.java b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/ArithmeticBuiltins.java index 0606213d..a281fddb 100644 --- a/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/ArithmeticBuiltins.java +++ b/opa-evaluator/src/main/java/io/github/open_policy_agent/opa/ast/builtin/impls/ArithmeticBuiltins.java @@ -17,7 +17,6 @@ import static java.lang.Math.abs; import static java.lang.Math.ceil; import static java.lang.Math.floor; -import static java.lang.Math.random; import static java.lang.Math.round; import static io.github.open_policy_agent.opa.ast.builtin.impls.utils.ArgHelper.getArg;