diff --git a/build.gradle b/build.gradle
index 5521ada6..fa9da24f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -17,7 +17,7 @@ plugins {
id 'cl.franciscosolis.sonatype-central-upload' version '1.0.3'
id("java")
id("checkstyle")
- id "nebula.lint" version "17.8.0"
+ id "nebula.lint" version "21.1.3"
}
compileJava.options.encoding = "UTF-8"
@@ -152,18 +152,21 @@ if (!project.hasProperty('skip.signing')) {
dependencies {
- testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
- runtimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
- testImplementation 'org.testcontainers:testcontainers-bom:1.20.1'
- testImplementation 'org.testcontainers:testcontainers:1.20.1'
- testImplementation 'org.testcontainers:junit-jupiter:1.20.1'
- implementation 'com.fasterxml.jackson.core:jackson-annotations:2.17.0'
- api 'com.fasterxml.jackson.core:jackson-core:2.17.0'
- api 'com.fasterxml.jackson.core:jackson-databind:2.17.0'
- implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.18.2'
- implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.18.2'
- api('org.openapitools:jackson-databind-nullable:0.2.6') {exclude group: 'com.fasterxml.jackson.core', module: 'jackson-databind'}
- implementation 'commons-io:commons-io:2.18.0'
+ api platform('tools.jackson:jackson-bom:3.1.1')
+ api 'tools.jackson.core:jackson-core'
+ api 'tools.jackson.core:jackson-databind'
+ api 'org.openapitools:jackson-databind-nullable:0.2.10'
+ api 'com.fasterxml.jackson.core:jackson-annotations'
+ api 'commons-io:commons-io:2.18.0'
+ testImplementation platform('org.junit:junit-bom:5.14.3')
+ testImplementation platform('org.testcontainers:testcontainers-bom:2.0.4')
+ testImplementation 'org.testcontainers:testcontainers'
+ testImplementation 'org.testcontainers:testcontainers-junit-jupiter'
+ testImplementation 'org.junit.jupiter:junit-jupiter-api'
+ testImplementation 'org.slf4j:slf4j-api:1.7.36'
+ testRuntimeOnly 'org.slf4j:slf4j-simple:1.7.36'
+ testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
+ testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
apply from: 'build-extras.gradle'
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 1af9e093..c61a118f 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
diff --git a/src/main/java/io/github/open_policy_agent/opa/OPAClient.java b/src/main/java/io/github/open_policy_agent/opa/OPAClient.java
index 56b8c22a..4f36b87d 100644
--- a/src/main/java/io/github/open_policy_agent/opa/OPAClient.java
+++ b/src/main/java/io/github/open_policy_agent/opa/OPAClient.java
@@ -1,8 +1,5 @@
package io.github.open_policy_agent.opa;
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.JavaType;
-import com.fasterxml.jackson.databind.ObjectMapper;
import io.github.open_policy_agent.opa.openapi.OpaApiClient;
import io.github.open_policy_agent.opa.openapi.models.errors.SDKError;
import io.github.open_policy_agent.opa.openapi.models.errors.ServerError;
@@ -31,6 +28,9 @@
import io.github.open_policy_agent.opa.openapi.models.shared.SuccessfulPolicyResponseWithStatusCode;
import io.github.open_policy_agent.opa.openapi.utils.HTTPClient;
import io.github.open_policy_agent.opa.utils.OPAHTTPClient;
+import tools.jackson.core.type.TypeReference;
+import tools.jackson.databind.JavaType;
+import tools.jackson.databind.ObjectMapper;
import java.util.ArrayList;
import java.util.HashMap;
diff --git a/src/main/java/io/github/open_policy_agent/opa/OPAResult.java b/src/main/java/io/github/open_policy_agent/opa/OPAResult.java
index 3ab7cefe..6af56e0e 100644
--- a/src/main/java/io/github/open_policy_agent/opa/OPAResult.java
+++ b/src/main/java/io/github/open_policy_agent/opa/OPAResult.java
@@ -1,8 +1,8 @@
package io.github.open_policy_agent.opa;
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.JavaType;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.core.type.TypeReference;
+import tools.jackson.databind.JavaType;
+import tools.jackson.databind.ObjectMapper;
/**
* This class encapsulates a result of a previous OPA request for deferred
diff --git a/src/main/java/io/github/open_policy_agent/opa/openapi/OpaApiClient.java b/src/main/java/io/github/open_policy_agent/opa/openapi/OpaApiClient.java
index 81fb7c21..d4722e5d 100644
--- a/src/main/java/io/github/open_policy_agent/opa/openapi/OpaApiClient.java
+++ b/src/main/java/io/github/open_policy_agent/opa/openapi/OpaApiClient.java
@@ -3,7 +3,6 @@
*/
package io.github.open_policy_agent.opa.openapi;
-import com.fasterxml.jackson.core.type.TypeReference;
import io.github.open_policy_agent.opa.openapi.models.errors.BatchServerError;
import io.github.open_policy_agent.opa.openapi.models.errors.ClientError;
import io.github.open_policy_agent.opa.openapi.models.errors.SDKError;
@@ -49,6 +48,8 @@
import io.github.open_policy_agent.opa.openapi.utils.SpeakeasyHTTPClient;
import io.github.open_policy_agent.opa.openapi.utils.Utils.JsonShape;
import io.github.open_policy_agent.opa.openapi.utils.Utils;
+import tools.jackson.core.type.TypeReference;
+
import java.io.InputStream;
import java.lang.Boolean;
import java.lang.Exception;
diff --git a/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/CompileQueryWithPartialEvaluationRequest.java b/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/CompileQueryWithPartialEvaluationRequest.java
index 175b7e8d..198f1f6a 100644
--- a/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/CompileQueryWithPartialEvaluationRequest.java
+++ b/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/CompileQueryWithPartialEvaluationRequest.java
@@ -5,13 +5,14 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.core.type.TypeReference;
import io.github.open_policy_agent.opa.openapi.models.shared.Explain;
import io.github.open_policy_agent.opa.openapi.models.shared.GzipAcceptEncoding;
import io.github.open_policy_agent.opa.openapi.models.shared.GzipContentEncoding;
import io.github.open_policy_agent.opa.openapi.utils.LazySingletonValue;
import io.github.open_policy_agent.opa.openapi.utils.SpeakeasyMetadata;
import io.github.open_policy_agent.opa.openapi.utils.Utils;
+import tools.jackson.core.type.TypeReference;
+
import java.lang.Boolean;
import java.lang.Override;
import java.lang.String;
diff --git a/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/ExecuteBatchPolicyWithInputRequest.java b/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/ExecuteBatchPolicyWithInputRequest.java
index 11694dfc..3daf2f90 100644
--- a/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/ExecuteBatchPolicyWithInputRequest.java
+++ b/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/ExecuteBatchPolicyWithInputRequest.java
@@ -5,13 +5,14 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.core.type.TypeReference;
import io.github.open_policy_agent.opa.openapi.models.shared.Explain;
import io.github.open_policy_agent.opa.openapi.models.shared.GzipAcceptEncoding;
import io.github.open_policy_agent.opa.openapi.models.shared.GzipContentEncoding;
import io.github.open_policy_agent.opa.openapi.utils.LazySingletonValue;
import io.github.open_policy_agent.opa.openapi.utils.SpeakeasyMetadata;
import io.github.open_policy_agent.opa.openapi.utils.Utils;
+import tools.jackson.core.type.TypeReference;
+
import java.lang.Boolean;
import java.lang.Override;
import java.lang.String;
diff --git a/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/ExecutePolicyRequest.java b/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/ExecutePolicyRequest.java
index e36b29a7..f18db3ff 100644
--- a/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/ExecutePolicyRequest.java
+++ b/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/ExecutePolicyRequest.java
@@ -5,12 +5,13 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.core.type.TypeReference;
import io.github.open_policy_agent.opa.openapi.models.shared.Explain;
import io.github.open_policy_agent.opa.openapi.models.shared.GzipAcceptEncoding;
import io.github.open_policy_agent.opa.openapi.utils.LazySingletonValue;
import io.github.open_policy_agent.opa.openapi.utils.SpeakeasyMetadata;
import io.github.open_policy_agent.opa.openapi.utils.Utils;
+import tools.jackson.core.type.TypeReference;
+
import java.lang.Boolean;
import java.lang.Override;
import java.lang.String;
diff --git a/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/ExecutePolicyWithInputRequest.java b/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/ExecutePolicyWithInputRequest.java
index f1ca1fb7..4a985e52 100644
--- a/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/ExecutePolicyWithInputRequest.java
+++ b/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/ExecutePolicyWithInputRequest.java
@@ -5,13 +5,14 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.core.type.TypeReference;
import io.github.open_policy_agent.opa.openapi.models.shared.Explain;
import io.github.open_policy_agent.opa.openapi.models.shared.GzipAcceptEncoding;
import io.github.open_policy_agent.opa.openapi.models.shared.GzipContentEncoding;
import io.github.open_policy_agent.opa.openapi.utils.LazySingletonValue;
import io.github.open_policy_agent.opa.openapi.utils.SpeakeasyMetadata;
import io.github.open_policy_agent.opa.openapi.utils.Utils;
+import tools.jackson.core.type.TypeReference;
+
import java.lang.Boolean;
import java.lang.Override;
import java.lang.String;
diff --git a/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/HealthRequest.java b/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/HealthRequest.java
index 498ccfb4..ac076340 100644
--- a/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/HealthRequest.java
+++ b/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/HealthRequest.java
@@ -5,10 +5,11 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.core.type.TypeReference;
import io.github.open_policy_agent.opa.openapi.utils.LazySingletonValue;
import io.github.open_policy_agent.opa.openapi.utils.SpeakeasyMetadata;
import io.github.open_policy_agent.opa.openapi.utils.Utils;
+import tools.jackson.core.type.TypeReference;
+
import java.lang.Boolean;
import java.lang.Override;
import java.lang.String;
diff --git a/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/HealthRequestBuilder.java b/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/HealthRequestBuilder.java
index 2ff89b20..488b068a 100644
--- a/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/HealthRequestBuilder.java
+++ b/src/main/java/io/github/open_policy_agent/opa/openapi/models/operations/HealthRequestBuilder.java
@@ -3,9 +3,10 @@
*/
package io.github.open_policy_agent.opa.openapi.models.operations;
-import com.fasterxml.jackson.core.type.TypeReference;
import io.github.open_policy_agent.opa.openapi.utils.LazySingletonValue;
import io.github.open_policy_agent.opa.openapi.utils.Utils;
+import tools.jackson.core.type.TypeReference;
+
import java.lang.Boolean;
import java.lang.Exception;
import java.lang.String;
diff --git a/src/main/java/io/github/open_policy_agent/opa/openapi/models/shared/Input.java b/src/main/java/io/github/open_policy_agent/opa/openapi/models/shared/Input.java
index 5717f027..c67c78fc 100644
--- a/src/main/java/io/github/open_policy_agent/opa/openapi/models/shared/Input.java
+++ b/src/main/java/io/github/open_policy_agent/opa/openapi/models/shared/Input.java
@@ -4,19 +4,19 @@
package io.github.open_policy_agent.opa.openapi.models.shared;
import com.fasterxml.jackson.annotation.JsonValue;
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.github.open_policy_agent.opa.openapi.utils.OneOfDeserializer;
import io.github.open_policy_agent.opa.openapi.utils.TypedObject;
import io.github.open_policy_agent.opa.openapi.utils.Utils.JsonShape;
import io.github.open_policy_agent.opa.openapi.utils.Utils.TypeReferenceWithShape;
import io.github.open_policy_agent.opa.openapi.utils.Utils;
+import tools.jackson.core.type.TypeReference;
+import tools.jackson.databind.annotation.JsonDeserialize;
+
import java.lang.Boolean;
import java.lang.Double;
import java.lang.Object;
import java.lang.Override;
import java.lang.String;
-import java.lang.SuppressWarnings;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -103,7 +103,6 @@ public int hashCode() {
return Objects.hash(value.value());
}
- @SuppressWarnings("serial")
public static final class _Deserializer extends OneOfDeserializer {
public _Deserializer() {
diff --git a/src/main/java/io/github/open_policy_agent/opa/openapi/models/shared/MaskingRule.java b/src/main/java/io/github/open_policy_agent/opa/openapi/models/shared/MaskingRule.java
index ca8903cb..4724936d 100644
--- a/src/main/java/io/github/open_policy_agent/opa/openapi/models/shared/MaskingRule.java
+++ b/src/main/java/io/github/open_policy_agent/opa/openapi/models/shared/MaskingRule.java
@@ -4,13 +4,14 @@
package io.github.open_policy_agent.opa.openapi.models.shared;
import com.fasterxml.jackson.annotation.JsonValue;
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.github.open_policy_agent.opa.openapi.utils.OneOfDeserializer;
import io.github.open_policy_agent.opa.openapi.utils.TypedObject;
import io.github.open_policy_agent.opa.openapi.utils.Utils.JsonShape;
import io.github.open_policy_agent.opa.openapi.utils.Utils.TypeReferenceWithShape;
import io.github.open_policy_agent.opa.openapi.utils.Utils;
+import tools.jackson.core.type.TypeReference;
+import tools.jackson.databind.annotation.JsonDeserialize;
+
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
diff --git a/src/main/java/io/github/open_policy_agent/opa/openapi/models/shared/Replace.java b/src/main/java/io/github/open_policy_agent/opa/openapi/models/shared/Replace.java
index 748f8260..404d7b66 100644
--- a/src/main/java/io/github/open_policy_agent/opa/openapi/models/shared/Replace.java
+++ b/src/main/java/io/github/open_policy_agent/opa/openapi/models/shared/Replace.java
@@ -4,19 +4,19 @@
package io.github.open_policy_agent.opa.openapi.models.shared;
import com.fasterxml.jackson.annotation.JsonValue;
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.github.open_policy_agent.opa.openapi.utils.OneOfDeserializer;
import io.github.open_policy_agent.opa.openapi.utils.TypedObject;
import io.github.open_policy_agent.opa.openapi.utils.Utils.JsonShape;
import io.github.open_policy_agent.opa.openapi.utils.Utils.TypeReferenceWithShape;
import io.github.open_policy_agent.opa.openapi.utils.Utils;
+import tools.jackson.core.type.TypeReference;
+import tools.jackson.databind.annotation.JsonDeserialize;
+
import java.lang.Boolean;
import java.lang.Double;
import java.lang.Object;
import java.lang.Override;
import java.lang.String;
-import java.lang.SuppressWarnings;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -98,7 +98,6 @@ public int hashCode() {
return Objects.hash(value.value());
}
- @SuppressWarnings("serial")
public static final class _Deserializer extends OneOfDeserializer {
public _Deserializer() {
diff --git a/src/main/java/io/github/open_policy_agent/opa/openapi/models/shared/Result.java b/src/main/java/io/github/open_policy_agent/opa/openapi/models/shared/Result.java
index d2223e09..47571030 100644
--- a/src/main/java/io/github/open_policy_agent/opa/openapi/models/shared/Result.java
+++ b/src/main/java/io/github/open_policy_agent/opa/openapi/models/shared/Result.java
@@ -4,19 +4,19 @@
package io.github.open_policy_agent.opa.openapi.models.shared;
import com.fasterxml.jackson.annotation.JsonValue;
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.github.open_policy_agent.opa.openapi.utils.OneOfDeserializer;
import io.github.open_policy_agent.opa.openapi.utils.TypedObject;
import io.github.open_policy_agent.opa.openapi.utils.Utils.JsonShape;
import io.github.open_policy_agent.opa.openapi.utils.Utils.TypeReferenceWithShape;
import io.github.open_policy_agent.opa.openapi.utils.Utils;
+import tools.jackson.core.type.TypeReference;
+import tools.jackson.databind.annotation.JsonDeserialize;
+
import java.lang.Boolean;
import java.lang.Double;
import java.lang.Object;
import java.lang.Override;
import java.lang.String;
-import java.lang.SuppressWarnings;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -103,7 +103,6 @@ public int hashCode() {
return Objects.hash(value.value());
}
- @SuppressWarnings("serial")
public static final class _Deserializer extends OneOfDeserializer {
public _Deserializer() {
diff --git a/src/main/java/io/github/open_policy_agent/opa/openapi/utils/BigDecimalString.java b/src/main/java/io/github/open_policy_agent/opa/openapi/utils/BigDecimalString.java
index 2b638391..03e0052a 100644
--- a/src/main/java/io/github/open_policy_agent/opa/openapi/utils/BigDecimalString.java
+++ b/src/main/java/io/github/open_policy_agent/opa/openapi/utils/BigDecimalString.java
@@ -3,21 +3,18 @@
*/
package io.github.open_policy_agent.opa.openapi.utils;
-import java.io.IOException;
+import tools.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonParser;
+import tools.jackson.databind.DeserializationContext;
+import tools.jackson.databind.SerializationContext;
+import tools.jackson.databind.annotation.JsonDeserialize;
+import tools.jackson.databind.annotation.JsonSerialize;
+import tools.jackson.databind.deser.std.StdDeserializer;
+import tools.jackson.databind.ser.std.StdSerializer;
+
import java.math.BigDecimal;
import java.util.Objects;
-import com.fasterxml.jackson.core.JacksonException;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.SerializerProvider;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
-import com.fasterxml.jackson.databind.ser.std.StdSerializer;
-
// Internal API only
// Note that Jackson 2.16.1 does not support @JsonValue and @JsonFormat combined so we must use
@@ -63,7 +60,6 @@ public boolean equals(Object obj) {
return Objects.equals(value, other.value);
}
- @SuppressWarnings("serial")
public static final class Serializer extends StdSerializer {
protected Serializer() {
@@ -71,13 +67,11 @@ protected Serializer() {
}
@Override
- public void serialize(BigDecimalString value, JsonGenerator g, SerializerProvider provider)
- throws IOException, JsonProcessingException {
+ public void serialize(BigDecimalString value, JsonGenerator g, SerializationContext ctxt) {
g.writeString(value.value.toString());
}
}
- @SuppressWarnings("serial")
public static final class Deserializer extends StdDeserializer {
protected Deserializer() {
@@ -85,8 +79,7 @@ protected Deserializer() {
}
@Override
- public BigDecimalString deserialize(JsonParser p, DeserializationContext ctxt)
- throws IOException, JacksonException {
+ public BigDecimalString deserialize(JsonParser p, DeserializationContext ctxt) {
String s = p.readValueAs(String.class);
return new BigDecimalString(new BigDecimal(s));
}
diff --git a/src/main/java/io/github/open_policy_agent/opa/openapi/utils/BigIntegerString.java b/src/main/java/io/github/open_policy_agent/opa/openapi/utils/BigIntegerString.java
index eeaf8d04..926ae26c 100644
--- a/src/main/java/io/github/open_policy_agent/opa/openapi/utils/BigIntegerString.java
+++ b/src/main/java/io/github/open_policy_agent/opa/openapi/utils/BigIntegerString.java
@@ -3,21 +3,18 @@
*/
package io.github.open_policy_agent.opa.openapi.utils;
-import java.io.IOException;
+import tools.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonParser;
+import tools.jackson.databind.DeserializationContext;
+import tools.jackson.databind.SerializationContext;
+import tools.jackson.databind.annotation.JsonDeserialize;
+import tools.jackson.databind.annotation.JsonSerialize;
+import tools.jackson.databind.deser.std.StdDeserializer;
+import tools.jackson.databind.ser.std.StdSerializer;
+
import java.math.BigInteger;
import java.util.Objects;
-import com.fasterxml.jackson.core.JacksonException;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.SerializerProvider;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
-import com.fasterxml.jackson.databind.ser.std.StdSerializer;
-
// Internal API only
// Note that Jackson 2.16.1 does not support @JsonValue and @JsonFormat combined so we must use
@@ -63,7 +60,6 @@ public boolean equals(Object obj) {
return Objects.equals(value, other.value);
}
- @SuppressWarnings("serial")
public static final class Serializer extends StdSerializer {
protected Serializer() {
@@ -71,13 +67,11 @@ protected Serializer() {
}
@Override
- public void serialize(BigIntegerString value, JsonGenerator g, SerializerProvider provider)
- throws IOException, JsonProcessingException {
+ public void serialize(BigIntegerString value, JsonGenerator g, SerializationContext ctxt) {
g.writeString(value.value.toString());
}
}
- @SuppressWarnings("serial")
public static final class Deserializer extends StdDeserializer {
protected Deserializer() {
@@ -85,8 +79,7 @@ protected Deserializer() {
}
@Override
- public BigIntegerString deserialize(JsonParser p, DeserializationContext ctxt)
- throws IOException, JacksonException {
+ public BigIntegerString deserialize(JsonParser p, DeserializationContext ctxt) {
String s = p.readValueAs(String.class);
return new BigIntegerString(new BigInteger(s));
}
diff --git a/src/main/java/io/github/open_policy_agent/opa/openapi/utils/Deserializers.java b/src/main/java/io/github/open_policy_agent/opa/openapi/utils/Deserializers.java
index 2c7bbdfd..34f362ad 100644
--- a/src/main/java/io/github/open_policy_agent/opa/openapi/utils/Deserializers.java
+++ b/src/main/java/io/github/open_policy_agent/opa/openapi/utils/Deserializers.java
@@ -1,38 +1,35 @@
-/*
+/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
package io.github.open_policy_agent.opa.openapi.utils;
-import java.io.IOException;
+import tools.jackson.core.JsonParser;
+import tools.jackson.core.JsonToken;
+import tools.jackson.databind.DeserializationContext;
+import tools.jackson.databind.ValueDeserializer;
+import tools.jackson.databind.deser.std.StdDeserializer;
+import tools.jackson.databind.module.SimpleModule;
+
import java.time.LocalDate;
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
-import com.fasterxml.jackson.core.JacksonException;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.JsonDeserializer;
-import com.fasterxml.jackson.databind.Module;
-import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
-import com.fasterxml.jackson.databind.module.SimpleModule;
-
public final class Deserializers {
- public static final JsonDeserializer BOOLEAN_STRICT = new StrictBooleanDeserializer();
- public static final JsonDeserializer INTEGER_STRICT = new StrictIntegerDeserializer();
- public static final JsonDeserializer LONG_STRICT = new StrictLongDeserializer();
- public static final JsonDeserializer SHORT_STRICT = new StrictShortDeserializer();
- public static final JsonDeserializer FLOAT_STRICT = new StrictFloatDeserializer();
- public static final JsonDeserializer DOUBLE_STRICT = new StrictDoubleDeserializer();
- public static final JsonDeserializer LOCAL_DATE_STRICT = new StrictLocalDateDeserializer();
- public static final JsonDeserializer OFFSET_DATE_TIME_STRICT = new StrictOffsetDateTimeDeserializer();
- public static final JsonDeserializer STRING_STRICT = new StrictStringDeserializer();
-
- public static final Module STRICT_DESERIALIZERS = createStrictDeserializersModule();
+ public static final ValueDeserializer BOOLEAN_STRICT = new StrictBooleanDeserializer();
+ public static final ValueDeserializer INTEGER_STRICT = new StrictIntegerDeserializer();
+ public static final ValueDeserializer LONG_STRICT = new StrictLongDeserializer();
+ public static final ValueDeserializer SHORT_STRICT = new StrictShortDeserializer();
+ public static final ValueDeserializer FLOAT_STRICT = new StrictFloatDeserializer();
+ public static final ValueDeserializer DOUBLE_STRICT = new StrictDoubleDeserializer();
+ public static final ValueDeserializer LOCAL_DATE_STRICT = new StrictLocalDateDeserializer();
+ public static final ValueDeserializer OFFSET_DATE_TIME_STRICT = new StrictOffsetDateTimeDeserializer();
+ public static final ValueDeserializer STRING_STRICT = new StrictStringDeserializer();
+
+ public static final SimpleModule STRICT_DESERIALIZERS = createStrictDeserializersModule();
- private static Module createStrictDeserializersModule() {
+ private static SimpleModule createStrictDeserializersModule() {
SimpleModule m = new SimpleModule();
m.addDeserializer(Boolean.class, Deserializers.BOOLEAN_STRICT);
m.addDeserializer(Short.class, Deserializers.SHORT_STRICT);
@@ -48,15 +45,12 @@ private static Module createStrictDeserializersModule() {
private static final class StrictBooleanDeserializer extends StdDeserializer {
- private static final long serialVersionUID = 6014987192625841276L;
-
StrictBooleanDeserializer() {
super(Boolean.class);
}
@Override
- public Boolean deserialize(JsonParser p, DeserializationContext ctxt)
- throws IOException, JacksonException {
+ public Boolean deserialize(JsonParser p, DeserializationContext ctxt) {
JsonToken t = p.currentToken();
if (t == JsonToken.VALUE_TRUE) {
return true;
@@ -70,15 +64,12 @@ public Boolean deserialize(JsonParser p, DeserializationContext ctxt)
private static final class StrictDoubleDeserializer extends StdDeserializer {
- private static final long serialVersionUID = 5500822592284739392L;
-
StrictDoubleDeserializer() {
super(Double.class);
}
@Override
- public Double deserialize(JsonParser p, DeserializationContext ctxt)
- throws IOException, JacksonException {
+ public Double deserialize(JsonParser p, DeserializationContext ctxt) {
JsonToken t = p.currentToken();
if (t == JsonToken.VALUE_NUMBER_INT) {
return p.getDoubleValue();
@@ -92,15 +83,12 @@ public Double deserialize(JsonParser p, DeserializationContext ctxt)
private static final class StrictFloatDeserializer extends StdDeserializer {
- private static final long serialVersionUID = 2207323065789635630L;
-
StrictFloatDeserializer() {
super(Float.class);
}
@Override
- public Float deserialize(JsonParser p, DeserializationContext ctxt)
- throws IOException, JacksonException {
+ public Float deserialize(JsonParser p, DeserializationContext ctxt) {
JsonToken t = p.currentToken();
if (t == JsonToken.VALUE_NUMBER_INT) {
return p.getFloatValue();
@@ -114,15 +102,12 @@ public Float deserialize(JsonParser p, DeserializationContext ctxt)
private static final class StrictIntegerDeserializer extends StdDeserializer {
- private static final long serialVersionUID = 6079282945607228350L;
-
StrictIntegerDeserializer() {
super(Integer.class);
}
@Override
- public Integer deserialize(JsonParser p, DeserializationContext ctxt)
- throws IOException, JacksonException {
+ public Integer deserialize(JsonParser p, DeserializationContext ctxt) {
JsonToken t = p.currentToken();
if (t == JsonToken.VALUE_NUMBER_INT) {
return p.getIntValue();
@@ -134,16 +119,14 @@ public Integer deserialize(JsonParser p, DeserializationContext ctxt)
private static final class StrictLocalDateDeserializer extends StdDeserializer {
- private static final long serialVersionUID = 6014987192625841276L;
-
StrictLocalDateDeserializer() {
super(LocalDate.class);
}
@Override
- public LocalDate deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JacksonException {
+ public LocalDate deserialize(JsonParser p, DeserializationContext ctxt) {
if (p.currentToken() == JsonToken.VALUE_STRING) {
- String text = p.getText();
+ String text = p.getString();
try {
return LocalDate.parse(text, DateTimeFormatter.ISO_LOCAL_DATE);
} catch (DateTimeParseException e) {
@@ -157,15 +140,12 @@ public LocalDate deserialize(JsonParser p, DeserializationContext ctxt) throws I
private static final class StrictLongDeserializer extends StdDeserializer {
- private static final long serialVersionUID = -2721538755854421632L;
-
public StrictLongDeserializer() {
super(Long.class);
}
@Override
- public Long deserialize(JsonParser p, DeserializationContext ctxt)
- throws IOException, JacksonException {
+ public Long deserialize(JsonParser p, DeserializationContext ctxt) {
JsonToken t = p.currentToken();
if (t == JsonToken.VALUE_NUMBER_INT) {
return p.getLongValue();
@@ -177,16 +157,14 @@ public Long deserialize(JsonParser p, DeserializationContext ctxt)
private static final class StrictOffsetDateTimeDeserializer extends StdDeserializer {
- private static final long serialVersionUID = 6014987192625841276L;
-
StrictOffsetDateTimeDeserializer() {
super(OffsetDateTime.class);
}
@Override
- public OffsetDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JacksonException {
+ public OffsetDateTime deserialize(JsonParser p, DeserializationContext ctxt) {
if (p.currentToken() == JsonToken.VALUE_STRING) {
- String text = p.getText();
+ String text = p.getString();
try {
return OffsetDateTime.parse(text, DateTimeFormatter.ISO_DATE_TIME);
} catch (DateTimeParseException e) {
@@ -200,15 +178,12 @@ public OffsetDateTime deserialize(JsonParser p, DeserializationContext ctxt) thr
private static final class StrictShortDeserializer extends StdDeserializer {
- private static final long serialVersionUID = 2162877248512421L;
-
StrictShortDeserializer() {
super(Short.class);
}
@Override
- public Short deserialize(JsonParser p, DeserializationContext ctxt)
- throws IOException, JacksonException {
+ public Short deserialize(JsonParser p, DeserializationContext ctxt) {
JsonToken t = p.currentToken();
if (t == JsonToken.VALUE_NUMBER_INT) {
return p.getShortValue();
@@ -220,18 +195,15 @@ public Short deserialize(JsonParser p, DeserializationContext ctxt)
private static final class StrictStringDeserializer extends StdDeserializer {
- private static final long serialVersionUID = 6014987192625841276L;
-
StrictStringDeserializer() {
super(String.class);
}
@Override
- public String deserialize(JsonParser p, DeserializationContext ctxt)
- throws IOException, JacksonException {
+ public String deserialize(JsonParser p, DeserializationContext ctxt) {
JsonToken t = p.currentToken();
if (t == JsonToken.VALUE_STRING) {
- return p.getText();
+ return p.getString();
} else {
return (String) ctxt.handleUnexpectedToken(String.class, p);
}
diff --git a/src/main/java/io/github/open_policy_agent/opa/openapi/utils/EventStream.java b/src/main/java/io/github/open_policy_agent/opa/openapi/utils/EventStream.java
index 7ec53078..b4378971 100644
--- a/src/main/java/io/github/open_policy_agent/opa/openapi/utils/EventStream.java
+++ b/src/main/java/io/github/open_policy_agent/opa/openapi/utils/EventStream.java
@@ -3,6 +3,9 @@
*/
package io.github.open_policy_agent.opa.openapi.utils;
+import tools.jackson.core.type.TypeReference;
+import tools.jackson.databind.ObjectMapper;
+
import java.io.IOException;
import java.io.InputStream;
import java.io.UncheckedIOException;
@@ -16,9 +19,6 @@
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
/**
* Manages the parsing of an InputStream in SSE (Server Sent Events) format.
*
diff --git a/src/main/java/io/github/open_policy_agent/opa/openapi/utils/JSON.java b/src/main/java/io/github/open_policy_agent/opa/openapi/utils/JSON.java
index 33b7571a..7b31b2ad 100644
--- a/src/main/java/io/github/open_policy_agent/opa/openapi/utils/JSON.java
+++ b/src/main/java/io/github/open_policy_agent/opa/openapi/utils/JSON.java
@@ -1,26 +1,22 @@
-/*
+/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
package io.github.open_policy_agent.opa.openapi.utils;
-import org.openapitools.jackson.nullable.JsonNullableModule;
-
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.SerializationFeature;
-import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
-import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import org.openapitools.jackson.nullable.JsonNullableJackson3Module;
+import tools.jackson.databind.DeserializationFeature;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.SerializationFeature;
+import tools.jackson.databind.json.JsonMapper;
public class JSON {
public static ObjectMapper getMapper() {
- return new ObjectMapper()
- .registerModule(new JavaTimeModule())
- .registerModule(new Jdk8Module())
- .registerModule(new JsonNullableModule())
- .registerModule(Deserializers.STRICT_DESERIALIZERS)
- .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
- .configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false)
- .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
- .enable(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES);
+ return JsonMapper.builder()
+ .addModule(new JsonNullableJackson3Module())
+ .addModule(Deserializers.STRICT_DESERIALIZERS)
+ .disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
+ .disable(SerializationFeature.FAIL_ON_EMPTY_BEANS)
+ .enable(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES)
+ .build();
}
}
\ No newline at end of file
diff --git a/src/main/java/io/github/open_policy_agent/opa/openapi/utils/LazySingletonValue.java b/src/main/java/io/github/open_policy_agent/opa/openapi/utils/LazySingletonValue.java
index 5f3f3077..a1ae9a76 100644
--- a/src/main/java/io/github/open_policy_agent/opa/openapi/utils/LazySingletonValue.java
+++ b/src/main/java/io/github/open_policy_agent/opa/openapi/utils/LazySingletonValue.java
@@ -3,7 +3,7 @@
*/
package io.github.open_policy_agent.opa.openapi.utils;
-import com.fasterxml.jackson.core.type.TypeReference;
+import tools.jackson.core.type.TypeReference;
public final class LazySingletonValue {
diff --git a/src/main/java/io/github/open_policy_agent/opa/openapi/utils/OneOfDeserializer.java b/src/main/java/io/github/open_policy_agent/opa/openapi/utils/OneOfDeserializer.java
index dc436de1..1977a328 100644
--- a/src/main/java/io/github/open_policy_agent/opa/openapi/utils/OneOfDeserializer.java
+++ b/src/main/java/io/github/open_policy_agent/opa/openapi/utils/OneOfDeserializer.java
@@ -3,7 +3,6 @@
*/
package io.github.open_policy_agent.opa.openapi.utils;
-import java.io.IOException;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.math.BigDecimal;
@@ -17,24 +16,19 @@
import java.util.stream.Collectors;
import io.github.open_policy_agent.opa.openapi.utils.Utils.TypeReferenceWithShape;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.TreeNode;
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.DatabindException;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.JavaType;
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
-
+import tools.jackson.core.JsonParser;
+import tools.jackson.core.TreeNode;
+import tools.jackson.core.type.TypeReference;
+import tools.jackson.databind.DatabindException;
+import tools.jackson.databind.DeserializationContext;
+import tools.jackson.databind.JavaType;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.deser.std.StdDeserializer;
+import tools.jackson.databind.exc.JsonNodeException;
public class OneOfDeserializer extends StdDeserializer {
- private static final long serialVersionUID = -1;
-
- private final transient List typeReferences; // oneOf subschemas
+ private final transient List typeReferences; // oneOf subschemas
private final Class cls;
private final boolean strict;
private final ObjectMapper mapper;
@@ -60,13 +54,13 @@ protected OneOfDeserializer(Class cls, boolean strict, TypeReferenceWithShape
}
@Override
- public T deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
+ public T deserialize(JsonParser p, DeserializationContext ctxt) {
return deserializeOneOf(mapper, p, ctxt, typeReferences, cls, strict);
}
private static T deserializeOneOf(ObjectMapper mapper, JsonParser p, DeserializationContext ctxt,
- List typeReferences, Class cls, boolean strict) throws IOException {
- TreeNode tree = p.getCodec().readTree(p);
+ List typeReferences, Class cls, boolean strict) {
+ TreeNode tree = p.readValueAsTree();
// TODO don't have to generate json because can use tree.traverse to get a
// parser to read value, perf advantage and can stop plugging in ObjectMapper
String json = mapper.writeValueAsString(tree);
@@ -74,7 +68,7 @@ private static T deserializeOneOf(ObjectMapper mapper, JsonParser p, Deseria
}
private static T deserializeOneOf(ObjectMapper mapper, String json, List typeReferences, Class cls,
- DeserializationContext ctxt, boolean strict) throws JsonProcessingException {
+ DeserializationContext ctxt, boolean strict) {
List> matches = new ArrayList<>();
for (TypeReferenceWithShape c : typeReferences) {
// try to deserialize with each of the member classes
@@ -98,7 +92,7 @@ private static T deserializeOneOf(ObjectMapper mapper, String json, List 1) {
if (strict) {
- throw JsonMappingException.from(ctxt,
+ throw JsonNodeException.from(ctxt,
"json matched more than one of the possible type references, matches are: "
+ typeNames(matches) + " - json=\n" + json);
} else {
@@ -106,7 +100,7 @@ private static T deserializeOneOf(ObjectMapper mapper, String json, List List parseQueryParams(Class type, T queryParams,
Map>> globals) throws Exception {
@@ -66,8 +65,7 @@ public static List parseQueryParams(Class
return allParams;
}
- private static List parseSerializedParams(QueryParamsMetadata queryParamsMetadata, Object value)
- throws JsonProcessingException {
+ private static List parseSerializedParams(QueryParamsMetadata queryParamsMetadata, Object value) {
List params = new ArrayList<>();
switch (queryParamsMetadata.serialization) {
case "json":
diff --git a/src/main/java/io/github/open_policy_agent/opa/openapi/utils/RequestBody.java b/src/main/java/io/github/open_policy_agent/opa/openapi/utils/RequestBody.java
index ff2b4042..d0a7e55c 100644
--- a/src/main/java/io/github/open_policy_agent/opa/openapi/utils/RequestBody.java
+++ b/src/main/java/io/github/open_policy_agent/opa/openapi/utils/RequestBody.java
@@ -16,8 +16,7 @@
import java.util.regex.Pattern;
import org.openapitools.jackson.nullable.JsonNullable;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
public final class RequestBody {
private static final Map SERIALIZATION_METHOD_TO_CONTENT_TYPE = Map.of("json", "application/json",
diff --git a/src/main/java/io/github/open_policy_agent/opa/openapi/utils/TypedObject.java b/src/main/java/io/github/open_policy_agent/opa/openapi/utils/TypedObject.java
index de1d302c..9986e60e 100644
--- a/src/main/java/io/github/open_policy_agent/opa/openapi/utils/TypedObject.java
+++ b/src/main/java/io/github/open_policy_agent/opa/openapi/utils/TypedObject.java
@@ -1,16 +1,14 @@
-/*
+/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
package io.github.open_policy_agent.opa.openapi.utils;
-import java.io.IOException;
-
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.SerializerProvider;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import io.github.open_policy_agent.opa.openapi.utils.Utils.JsonShape;
+import tools.jackson.core.JsonGenerator;
+import tools.jackson.core.type.TypeReference;
+import tools.jackson.databind.SerializationContext;
+import tools.jackson.databind.annotation.JsonSerialize;
+import tools.jackson.databind.ser.std.StdSerializer;
@JsonSerialize(using = TypedObject.Serializer.class)
public class TypedObject {
@@ -48,16 +46,14 @@ public static TypedObject of(T value, JsonShape shape, TypeReference type
public static final class Serializer extends StdSerializer {
- private static final long serialVersionUID = -1;
-
public Serializer() {
super(TypedObject.class);
}
@Override
- public void serialize(TypedObject value, JsonGenerator gen, SerializerProvider provider) throws IOException {
+ public void serialize(TypedObject value, JsonGenerator gen, SerializationContext ctxt) {
Object o = Utils.convertToShape(value.value(),value.shape(), value.typeReference());
- provider.defaultSerializeValue(o, gen);
+ ctxt.findPrimaryPropertySerializer(o.getClass(), null).serialize(o, gen, ctxt);
}
}
diff --git a/src/main/java/io/github/open_policy_agent/opa/openapi/utils/Utils.java b/src/main/java/io/github/open_policy_agent/opa/openapi/utils/Utils.java
index 25f2d70c..c9e3ca2f 100644
--- a/src/main/java/io/github/open_policy_agent/opa/openapi/utils/Utils.java
+++ b/src/main/java/io/github/open_policy_agent/opa/openapi/utils/Utils.java
@@ -55,16 +55,15 @@
import org.apache.commons.io.IOUtils;
import org.openapitools.jackson.nullable.JsonNullable;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.JavaType;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.IntNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.fasterxml.jackson.databind.node.TextNode;
-import com.fasterxml.jackson.databind.type.TypeFactory;
+import tools.jackson.core.JacksonException;
+import tools.jackson.core.type.TypeReference;
+import tools.jackson.databind.JavaType;
+import tools.jackson.databind.JsonNode;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.node.IntNode;
+import tools.jackson.databind.node.ObjectNode;
+import tools.jackson.databind.node.StringNode;
+import tools.jackson.databind.type.TypeFactory;
public final class Utils {
@@ -89,7 +88,7 @@ public static String generateURL(String baseURL, String path)
}
public static String generateURL(Class type, String baseURL, String path, JsonNullable extends T> params,
- Map>> globals) throws JsonProcessingException, IllegalArgumentException, IllegalAccessException {
+ Map>> globals) throws JacksonException, IllegalArgumentException, IllegalAccessException {
if (params.isPresent() && params.get() != null) {
return generateURL(type, baseURL, path, params.get(), globals);
} else {
@@ -98,7 +97,7 @@ public static String generateURL(Class type, String baseURL, String path,
}
public static String generateURL(Class type, String baseURL, String path, Optional extends T> params,
- Map>> globals) throws JsonProcessingException, IllegalArgumentException, IllegalAccessException {
+ Map>> globals) throws JacksonException, IllegalArgumentException, IllegalAccessException {
if (params.isPresent()) {
return generateURL(type, baseURL, path, params.get(), globals);
} else {
@@ -108,7 +107,7 @@ public static String generateURL(Class type, String baseURL, String path,
public static String generateURL(Class type, String baseURL, String path, T params,
Map>> globals)
- throws IllegalArgumentException, IllegalAccessException, JsonProcessingException {
+ throws IllegalArgumentException, IllegalAccessException, JacksonException {
if (baseURL != null && baseURL.endsWith("/")) {
baseURL = baseURL.substring(0, baseURL.length() - 1);
}
@@ -481,8 +480,7 @@ public static Object populateGlobal(Object value, String fieldName, String param
return value;
}
- private static Map parseSerializedParams(PathParamsMetadata pathParamsMetadata, Object value)
- throws JsonProcessingException {
+ private static Map parseSerializedParams(PathParamsMetadata pathParamsMetadata, Object value) {
Map params = new HashMap<>();
switch (pathParamsMetadata.serialization) {
case "json":
@@ -561,12 +559,12 @@ public static List> toList(Object o) {
public static T readDefaultOrConstValue(String name, String json, TypeReference typeReference) {
try {
return readValue(json, typeReference);
- } catch (JsonProcessingException e) {
+ } catch (JacksonException e) {
throw new IllegalArgumentException("default/const value did not match the expected type, name=" + name + ",json=\n" + json, e);
}
}
- private static T readValue(String json, TypeReference typeReference) throws JsonProcessingException {
+ private static T readValue(String json, TypeReference typeReference) throws JacksonException {
return JSON.getMapper().readValue(json, typeReference);
}
@@ -925,28 +923,24 @@ public static ObjectMapper mapper() {
public static T asType(EventStreamMessage x, ObjectMapper mapper, TypeReference typeReference) {
try {
- try {
- String json = json(x, mapper, false);
- return mapper.readValue(json, typeReference);
- } catch (JsonProcessingException e) {
- // retry with the assumption that data field is plain text
- String json = json(x, mapper, true);
- return mapper.readValue(json, typeReference);
- }
- } catch (JsonProcessingException e) {
- throw new RuntimeException(e);
+ String json = json(x, mapper, false);
+ return mapper.readValue(json, typeReference);
+ } catch (JacksonException e) {
+ // retry with the assumption that data field is plain text
+ String json = json(x, mapper, true);
+ return mapper.readValue(json, typeReference);
}
}
public static String json(EventStreamMessage m, ObjectMapper mapper, boolean dataIsPlainText)
- throws JsonProcessingException {
+ throws JacksonException {
ObjectNode node = mapper.createObjectNode();
- m.event().ifPresent(value -> node.set("event", new TextNode(value)));
- m.id().ifPresent(value -> node.set("id", new TextNode(value)));
+ m.event().ifPresent(value -> node.set("event", new StringNode(value)));
+ m.id().ifPresent(value -> node.set("id", new StringNode(value)));
m.retryMs().ifPresent(value -> node.set("retry", new IntNode(value)));
// data is always present (but may be an empty string)
if (dataIsPlainText || m.data().trim().isEmpty()) {
- node.set("data", new TextNode(m.data()));
+ node.set("data", new StringNode(m.data()));
} else {
JsonNode tree = mapper.readTree(m.data());
node.set("data", tree);
@@ -1330,22 +1324,18 @@ public static Optional toOptional(JsonNullable a) {
public static String sortJSONObjectKeys(String json, String... fields) {
var fieldList = List.of(fields);
var m = new ObjectMapper();
- try {
- JsonNode tree = m.readTree(json);
- if (!tree.isObject()) {
- return json;
- } else if (fieldList.isEmpty()) {
- return m.writeValueAsString(sortKeys(m, tree));
- } else {
- var node = (ObjectNode) tree;
- var list = toList(node.fields());
- list.stream() //
- .filter(entry -> fieldList.contains(entry.getKey())) //
- .forEach(entry -> node.set(entry.getKey(), sortKeys(m, entry.getValue())));
- return m.writeValueAsString(node);
- }
- } catch (JsonProcessingException e) {
- throw new RuntimeException(e);
+ JsonNode tree = m.readTree(json);
+ if (!tree.isObject()) {
+ return json;
+ } else if (fieldList.isEmpty()) {
+ return m.writeValueAsString(sortKeys(m, tree));
+ } else {
+ var node = (ObjectNode) tree;
+ var list = List.copyOf(node.properties());
+ list.stream() //
+ .filter(entry -> fieldList.contains(entry.getKey())) //
+ .forEach(entry -> node.set(entry.getKey(), sortKeys(m, entry.getValue())));
+ return m.writeValueAsString(node);
}
}
@@ -1353,22 +1343,14 @@ private static JsonNode sortKeys(ObjectMapper m, JsonNode node) {
if (!node.isObject()) {
return node;
} else {
- var list = toList(node.fields());
- list.sort((a, b) -> a.getKey().compareTo(b.getKey()));
+ var list = List.copyOf(node.properties());
+ list.sort(Entry.comparingByKey());
var map = new LinkedHashMap();
list.forEach(x -> map.put(x.getKey(), x.getValue()));
return new ObjectNode(m.getNodeFactory(), map);
}
}
- private static List toList(Iterator it) {
- var list = new ArrayList();
- while (it.hasNext()) {
- list.add(it.next());
- }
- return list;
- }
-
public static T valueOrElse(T value, T valueIfNotPresent) {
return value != null ? value : valueIfNotPresent;
}
diff --git a/src/test/java/io/github/open_policy_agent/opa/EOPATest.java b/src/test/java/io/github/open_policy_agent/opa/EOPATest.java
index a8537d7d..f97e2f57 100644
--- a/src/test/java/io/github/open_policy_agent/opa/EOPATest.java
+++ b/src/test/java/io/github/open_policy_agent/opa/EOPATest.java
@@ -1,16 +1,19 @@
package io.github.open_policy_agent.opa;
-import com.fasterxml.jackson.core.type.TypeReference;
import io.github.open_policy_agent.opa.utils.OPALatencyMeasuringHTTPClient;
import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.AutoClose;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.slf4j.LoggerFactory;
import org.testcontainers.containers.BindMode;
import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.containers.output.Slf4jLogConsumer;
import org.testcontainers.containers.wait.strategy.Wait;
import org.testcontainers.images.builder.ImageFromDockerfile;
import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers;
+import tools.jackson.core.type.TypeReference;
import java.lang.reflect.Field;
import java.net.URI;
@@ -54,12 +57,16 @@ class EOPATest {
.withFileFromClasspath("Dockerfile", "eopa.Dockerfile")
.withFileFromClasspath("nginx.conf", "nginx.conf")
.withFileFromClasspath("entrypoint.sh", "entrypoint.sh"))
+ .withLogConsumer(new Slf4jLogConsumer(LoggerFactory.getLogger("eopa")))
.withExposedPorts(opaPort, altPort)
.waitingFor(Wait.forHttp("/health").forPort(opaPort))
.withFileSystemBind("./testdata/simple", "/policy", BindMode.READ_ONLY)
.withCommand("run -s -a 0.0.0.0:8181 --authentication=token --authorization=basic --bundle /policy");
//CHECKSTYLE:ON
+ @AutoClose
+ HttpClient client = HttpClient.newHttpClient();
+
@BeforeEach
public void setUp() throws Exception {
eopaAddress = "http://" + eopac.getHost() + ":" + eopac.getMappedPort(opaPort);
@@ -89,7 +96,6 @@ public void testEOPAHealth() {
// This test just makes sure that we can reach the OPAClient health endpoint
// and that it returns the expected {} value.
- HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder().uri(URI.create(eopaAddress + "/health")).build();
HttpResponse resp = null;
@@ -113,7 +119,6 @@ public void testEOPAHealthAlternate() {
// API on the "alternate", reverse-proxy based OPA that has a URL
// prefix.
- HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder().uri(URI.create(eopaAltAddress + "/health")).build();
HttpResponse resp = null;
diff --git a/src/test/java/io/github/open_policy_agent/opa/OPATest.java b/src/test/java/io/github/open_policy_agent/opa/OPATest.java
index f3a5f13a..6fe36e04 100644
--- a/src/test/java/io/github/open_policy_agent/opa/OPATest.java
+++ b/src/test/java/io/github/open_policy_agent/opa/OPATest.java
@@ -1,18 +1,20 @@
package io.github.open_policy_agent.opa;
-import com.fasterxml.jackson.core.type.TypeReference;
import io.github.open_policy_agent.opa.openapi.utils.HTTPClient;
import io.github.open_policy_agent.opa.utils.OPAHTTPClient;
import io.github.open_policy_agent.opa.utils.OPALatencyMeasuringHTTPClient;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.slf4j.LoggerFactory;
import org.testcontainers.containers.BindMode;
import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.containers.output.Slf4jLogConsumer;
import org.testcontainers.containers.wait.strategy.Wait;
import org.testcontainers.images.builder.ImageFromDockerfile;
import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers;
+import tools.jackson.core.type.TypeReference;
import java.lang.reflect.Field;
import java.net.URI;
@@ -69,6 +71,7 @@ class OPATest {
.withFileFromClasspath("nginx.conf", "nginx.conf")
.withFileFromClasspath("entrypoint.sh", "entrypoint.sh")
)
+ .withLogConsumer(new Slf4jLogConsumer(LoggerFactory.getLogger("opa")))
.withExposedPorts(opaPort, altPort)
.waitingFor(Wait.forHttp("/health").forPort(opaPort))
.withFileSystemBind("./testdata/simple", "/policy", BindMode.READ_ONLY)
diff --git a/src/test/resources/entrypoint.sh b/src/test/resources/entrypoint.sh
index ffe78347..db090bed 100644
--- a/src/test/resources/entrypoint.sh
+++ b/src/test/resources/entrypoint.sh
@@ -1,4 +1,4 @@
-#!/usr/bin/env bash
+#!/bin/sh
set -e
set -u
diff --git a/src/test/resources/eopa.Dockerfile b/src/test/resources/eopa.Dockerfile
index 751096f0..7827c4b9 100644
--- a/src/test/resources/eopa.Dockerfile
+++ b/src/test/resources/eopa.Dockerfile
@@ -12,5 +12,5 @@ RUN chmod +x /entrypoint.sh
# modified.
COPY --from=ghcr.io/open-policy-agent/eopa:latest /ko-app/eopa /usr/bin/opa
-ENTRYPOINT ["/entrypoint.sh"]
+ENTRYPOINT ["sh", "/entrypoint.sh"]
diff --git a/src/test/resources/opa.Dockerfile b/src/test/resources/opa.Dockerfile
index ff1270d5..d39c02ef 100644
--- a/src/test/resources/opa.Dockerfile
+++ b/src/test/resources/opa.Dockerfile
@@ -10,5 +10,5 @@ RUN chmod +x /entrypoint.sh
COPY --from=openpolicyagent/opa:latest-static /opa /usr/bin/opa
-ENTRYPOINT ["/entrypoint.sh"]
+ENTRYPOINT ["sh", "/entrypoint.sh"]