diff --git a/distribution/server/src/assemble/LICENSE.bin.txt b/distribution/server/src/assemble/LICENSE.bin.txt
index de10128ec3686..14f1dbc79beb9 100644
--- a/distribution/server/src/assemble/LICENSE.bin.txt
+++ b/distribution/server/src/assemble/LICENSE.bin.txt
@@ -246,17 +246,17 @@ The Apache Software License, Version 2.0
* JCommander -- com.beust-jcommander-1.82.jar
* High Performance Primitive Collections for Java -- com.carrotsearch-hppc-0.9.1.jar
* Jackson
- - com.fasterxml.jackson.core-jackson-annotations-2.14.2.jar
- - com.fasterxml.jackson.core-jackson-core-2.14.2.jar
- - com.fasterxml.jackson.core-jackson-databind-2.14.2.jar
- - com.fasterxml.jackson.dataformat-jackson-dataformat-yaml-2.14.2.jar
- - com.fasterxml.jackson.jaxrs-jackson-jaxrs-base-2.14.2.jar
- - com.fasterxml.jackson.jaxrs-jackson-jaxrs-json-provider-2.14.2.jar
- - com.fasterxml.jackson.module-jackson-module-jaxb-annotations-2.14.2.jar
- - com.fasterxml.jackson.module-jackson-module-jsonSchema-2.14.2.jar
- - com.fasterxml.jackson.datatype-jackson-datatype-jdk8-2.14.2.jar
- - com.fasterxml.jackson.datatype-jackson-datatype-jsr310-2.14.2.jar
- - com.fasterxml.jackson.module-jackson-module-parameter-names-2.14.2.jar
+ - com.fasterxml.jackson.core-jackson-annotations-2.15.0.jar
+ - com.fasterxml.jackson.core-jackson-core-2.15.0.jar
+ - com.fasterxml.jackson.core-jackson-databind-2.15.0.jar
+ - com.fasterxml.jackson.dataformat-jackson-dataformat-yaml-2.15.0.jar
+ - com.fasterxml.jackson.jaxrs-jackson-jaxrs-base-2.15.0.jar
+ - com.fasterxml.jackson.jaxrs-jackson-jaxrs-json-provider-2.15.0.jar
+ - com.fasterxml.jackson.module-jackson-module-jaxb-annotations-2.15.0.jar
+ - com.fasterxml.jackson.module-jackson-module-jsonSchema-2.15.0.jar
+ - com.fasterxml.jackson.datatype-jackson-datatype-jdk8-2.15.0.jar
+ - com.fasterxml.jackson.datatype-jackson-datatype-jsr310-2.15.0.jar
+ - com.fasterxml.jackson.module-jackson-module-parameter-names-2.15.0.jar
* Caffeine -- com.github.ben-manes.caffeine-caffeine-2.9.1.jar
* Conscrypt -- org.conscrypt-conscrypt-openjdk-uber-2.5.2.jar
* Proto Google Common Protos -- com.google.api.grpc-proto-google-common-protos-2.0.1.jar
@@ -321,7 +321,7 @@ The Apache Software License, Version 2.0
- io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.18.Final-linux-x86_64.jar
- io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.18.Final-linux-aarch_64.jar
* Prometheus client
- - io.prometheus.jmx-collector-0.16.1.jar
+ - io.prometheus.jmx-collector-0.18.0.jar
- io.prometheus-simpleclient-0.16.0.jar
- io.prometheus-simpleclient_caffeine-0.16.0.jar
- io.prometheus-simpleclient_common-0.16.0.jar
diff --git a/distribution/shell/src/assemble/LICENSE.bin.txt b/distribution/shell/src/assemble/LICENSE.bin.txt
index 3021df8c63dee..f33dd5d1fa544 100644
--- a/distribution/shell/src/assemble/LICENSE.bin.txt
+++ b/distribution/shell/src/assemble/LICENSE.bin.txt
@@ -311,17 +311,17 @@ This projects includes binary packages with the following licenses:
The Apache Software License, Version 2.0
* JCommander -- jcommander-1.82.jar
* Jackson
- - jackson-annotations-2.14.2.jar
- - jackson-core-2.14.2.jar
- - jackson-databind-2.14.2.jar
- - jackson-dataformat-yaml-2.14.2.jar
- - jackson-jaxrs-base-2.14.2.jar
- - jackson-jaxrs-json-provider-2.14.2.jar
- - jackson-module-jaxb-annotations-2.14.2.jar
- - jackson-module-jsonSchema-2.14.2.jar
- - jackson-datatype-jdk8-2.14.2.jar
- - jackson-datatype-jsr310-2.14.2.jar
- - jackson-module-parameter-names-2.14.2.jar
+ - jackson-annotations-2.15.0.jar
+ - jackson-core-2.15.0.jar
+ - jackson-databind-2.15.0.jar
+ - jackson-dataformat-yaml-2.15.0.jar
+ - jackson-jaxrs-base-2.15.0.jar
+ - jackson-jaxrs-json-provider-2.15.0.jar
+ - jackson-module-jaxb-annotations-2.15.0.jar
+ - jackson-module-jsonSchema-2.15.0.jar
+ - jackson-datatype-jdk8-2.15.0.jar
+ - jackson-datatype-jsr310-2.15.0.jar
+ - jackson-module-parameter-names-2.15.0.jar
* Conscrypt -- conscrypt-openjdk-uber-2.5.2.jar
* Gson
- gson-2.8.9.jar
diff --git a/pom.xml b/pom.xml
index 84c8977f51968..fcf9e43409a3e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -154,7 +154,7 @@ flexible messaging model and an intuitive client API.
1.69
1.0.6
1.0.2.3
- 2.14.2
+ 2.15.0
0.10.2
1.6.10
8.37
@@ -203,7 +203,7 @@ flexible messaging model and an intuitive client API.
2.4.15
31.0.1-jre
1.0
- 0.16.1
+ 0.18.0
6.2.8
0.20
2.12.1
diff --git a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/conf/ClientConfigurationDataTest.java b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/conf/ClientConfigurationDataTest.java
index 5856395566a67..c1125dbb567e6 100644
--- a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/conf/ClientConfigurationDataTest.java
+++ b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/conf/ClientConfigurationDataTest.java
@@ -39,7 +39,7 @@ public void testDoNotPrintSensitiveInfo() throws JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
String serializedConf = objectMapper.writeValueAsString(clientConfigurationData);
- assertThat(serializedConf).doesNotContain("xxxx", "yyyy", "zzzz");
+ assertThat(serializedConf).doesNotContain("xxxx", "yyyy", "zzzz", "serviceUrlProvider");
}
}
diff --git a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/conf/ConsumerConfigurationDataTest.java b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/conf/ConsumerConfigurationDataTest.java
index f47f83bcbce32..3d2a692f42f37 100644
--- a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/conf/ConsumerConfigurationDataTest.java
+++ b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/conf/ConsumerConfigurationDataTest.java
@@ -19,6 +19,9 @@
package org.apache.pulsar.client.impl.conf;
import static org.assertj.core.api.Assertions.assertThat;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
import java.util.regex.Pattern;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
@@ -45,4 +48,13 @@ public void testTopicConsumerConfigurationData(String topicName, int expectedPri
assertThat(topicConsumerConfigurationData.getPriorityLevel()).isEqualTo(expectedPriority);
}
+
+ @Test
+ public void testConsumerConfigurationDataSerializedWithoutIgnoredTransientFields() throws JsonProcessingException {
+ ConsumerConfigurationData consumerConfigurationData = new ConsumerConfigurationData<>();
+ ObjectMapper objectMapper = new ObjectMapper();
+ objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
+ String serializedConf = objectMapper.writeValueAsString(consumerConfigurationData);
+ assertThat(serializedConf).doesNotContain("messageCrypto", "keySharedPolicy", "payloadProcessor");
+ }
}
diff --git a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/conf/ProducerConfigurationDataTest.java b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/conf/ProducerConfigurationDataTest.java
new file mode 100644
index 0000000000000..8f9e9fd4f55dc
--- /dev/null
+++ b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/conf/ProducerConfigurationDataTest.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.pulsar.client.impl.conf;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
+import org.testng.annotations.Test;
+
+/**
+ * Unit tests for {@link ProducerConfigurationData}.
+ */
+public class ProducerConfigurationDataTest {
+ @Test
+ public void testProducerConfigurationDataSerializedWithoutIgnoredTransientFields() throws JsonProcessingException {
+ ProducerConfigurationData producerConfigurationData = new ProducerConfigurationData();
+ ObjectMapper objectMapper = new ObjectMapper();
+ objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
+ String serializedConf = objectMapper.writeValueAsString(producerConfigurationData);
+ assertThat(serializedConf).doesNotContain("messageCrypto");
+ }
+}
diff --git a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/SchemaInfoTest.java b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/SchemaInfoTest.java
index acda79486caa0..bcebc36fa05a7 100644
--- a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/SchemaInfoTest.java
+++ b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/schema/SchemaInfoTest.java
@@ -18,7 +18,11 @@
*/
package org.apache.pulsar.client.impl.schema;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.testng.Assert.assertEquals;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
import java.util.HashMap;
import java.util.Map;
import org.apache.pulsar.client.api.Schema;
@@ -286,7 +290,18 @@ public static Object[][] schemas() {
@Test(dataProvider = "schemas")
public void testSchemaInfoToString(SchemaInfo si, String jsonifiedStr) {
- assertEquals(si.toString(), jsonifiedStr);
+ String schemaInfoString = si.toString();
+ assertEquals(schemaInfoString, jsonifiedStr);
+ assertThat(schemaInfoString).doesNotContain("schemaHash");
+ }
+
+ @Test(dataProvider = "schemas")
+ public void testSerializedSchemaInfoDoesntContainIgnoredTransientFields(SchemaInfo si, String jsonifiedStr) throws
+ JsonProcessingException {
+ ObjectMapper objectMapper = new ObjectMapper();
+ objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
+ String schemaInfoString = objectMapper.writeValueAsString(si);
+ assertThat(schemaInfoString).doesNotContain("schemaHash");
}
public static class SchemaInfoBuilderTest {
diff --git a/pulsar-common/src/main/java/org/apache/pulsar/common/util/FieldParser.java b/pulsar-common/src/main/java/org/apache/pulsar/common/util/FieldParser.java
index 626a14b92eedd..d4f04c1cbd344 100644
--- a/pulsar-common/src/main/java/org/apache/pulsar/common/util/FieldParser.java
+++ b/pulsar-common/src/main/java/org/apache/pulsar/common/util/FieldParser.java
@@ -21,8 +21,8 @@
import static com.google.common.base.Preconditions.checkArgument;
import static java.lang.String.format;
import static java.util.Objects.requireNonNull;
-import com.fasterxml.jackson.databind.AnnotationIntrospector;
-import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector;
+import com.fasterxml.jackson.databind.DeserializationConfig;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.util.EnumResolver;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
@@ -58,7 +58,8 @@ public final class FieldParser {
private static final Map CONVERTERS = new HashMap<>();
private static final Map, Class>> WRAPPER_TYPES = new HashMap<>();
- private static final AnnotationIntrospector ANNOTATION_INTROSPECTOR = new JacksonAnnotationIntrospector();
+ private static final ObjectMapper MAPPER = new ObjectMapper();
+ private static final DeserializationConfig DESERIALIZATION_CONFIG = MAPPER.getDeserializationConfig();
static {
// Preload converters and wrapperTypes.
@@ -100,7 +101,7 @@ public static T convert(Object from, Class to) {
if (to.isEnum()) {
// Converting string to enum
- EnumResolver r = EnumResolver.constructUsingToString((Class>) to, ANNOTATION_INTROSPECTOR);
+ EnumResolver r = EnumResolver.constructUsingToString(DESERIALIZATION_CONFIG, (Class>) to);
T value = (T) r.findEnum((String) from);
if (value == null) {
throw new RuntimeException("Invalid value '" + from + "' for enum " + to);
diff --git a/pulsar-sql/presto-distribution/LICENSE b/pulsar-sql/presto-distribution/LICENSE
index d41155a321d65..426b370331812 100644
--- a/pulsar-sql/presto-distribution/LICENSE
+++ b/pulsar-sql/presto-distribution/LICENSE
@@ -207,19 +207,19 @@ This projects includes binary packages with the following licenses:
The Apache Software License, Version 2.0
* Jackson
- - jackson-annotations-2.14.2.jar
- - jackson-core-2.14.2.jar
- - jackson-databind-2.14.2.jar
- - jackson-dataformat-smile-2.14.2.jar
- - jackson-datatype-guava-2.14.2.jar
- - jackson-datatype-jdk8-2.14.2.jar
- - jackson-datatype-joda-2.14.2.jar
- - jackson-datatype-jsr310-2.14.2.jar
- - jackson-dataformat-yaml-2.14.2.jar
- - jackson-jaxrs-base-2.14.2.jar
- - jackson-jaxrs-json-provider-2.14.2.jar
- - jackson-module-jaxb-annotations-2.14.2.jar
- - jackson-module-jsonSchema-2.14.2.jar
+ - jackson-annotations-2.15.0.jar
+ - jackson-core-2.15.0.jar
+ - jackson-databind-2.15.0.jar
+ - jackson-dataformat-smile-2.15.0.jar
+ - jackson-datatype-guava-2.15.0.jar
+ - jackson-datatype-jdk8-2.15.0.jar
+ - jackson-datatype-joda-2.15.0.jar
+ - jackson-datatype-jsr310-2.15.0.jar
+ - jackson-dataformat-yaml-2.15.0.jar
+ - jackson-jaxrs-base-2.15.0.jar
+ - jackson-jaxrs-json-provider-2.15.0.jar
+ - jackson-module-jaxb-annotations-2.15.0.jar
+ - jackson-module-jsonSchema-2.15.0.jar
* Guava
- guava-31.0.1-jre.jar
- listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
@@ -456,7 +456,7 @@ The Apache Software License, Version 2.0
* Snappy
- snappy-java-1.1.8.4.jar
* Jackson
- - jackson-module-parameter-names-2.14.2.jar
+ - jackson-module-parameter-names-2.15.0.jar
* Java Assist
- javassist-3.25.0-GA.jar
* Java Native Access