This is an automated email from the ASF dual-hosted git repository.
penghui pushed a commit to branch branch-2.7
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/branch-2.7 by this push:
new 8e55035 add properties default value for SchemaInfoBuilder (#8952)
8e55035 is described below
commit 8e55035f045924fc4bbd0704a3824c024919e6e1
Author: Jianyun Zhao <[email protected]>
AuthorDate: Tue Dec 15 09:05:38 2020 +0800
add properties default value for SchemaInfoBuilder (#8952)
### Motivation
When using SchemaInfoBuilder to create a SchemaInfo, not setting properties
will result in an NPE. properties are optional in SchemaInfo and have default
values.
### Modifications
Add default values for properties in SchemaInfoBuilder
(cherry picked from commit cb6617fa02d235f341026adf43fee87627a20c8b)
---
.../apache/pulsar/common/schema/SchemaInfo.java | 1 +
.../pulsar/client/impl/schema/SchemaInfoTest.java | 42 ++++++++++++++++++++--
2 files changed, 41 insertions(+), 2 deletions(-)
diff --git
a/pulsar-client-api/src/main/java/org/apache/pulsar/common/schema/SchemaInfo.java
b/pulsar-client-api/src/main/java/org/apache/pulsar/common/schema/SchemaInfo.java
index 44d74e2..64d36a7 100644
---
a/pulsar-client-api/src/main/java/org/apache/pulsar/common/schema/SchemaInfo.java
+++
b/pulsar-client-api/src/main/java/org/apache/pulsar/common/schema/SchemaInfo.java
@@ -62,6 +62,7 @@ public class SchemaInfo {
/**
* Additional properties of the schema definition (implementation defined).
*/
+ @Builder.Default
private Map<String, String> properties = Collections.emptyMap();
public String getSchemaDefinition() {
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 cb65e42..5361060 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,14 +18,18 @@
*/
package org.apache.pulsar.client.impl.schema;
-import static org.testng.Assert.assertEquals;
-
+import com.google.common.collect.Maps;
import org.apache.pulsar.client.api.Schema;
import org.apache.pulsar.common.schema.KeyValueEncodingType;
import org.apache.pulsar.common.schema.SchemaInfo;
+import org.apache.pulsar.common.schema.SchemaType;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
+import java.util.Map;
+
+import static org.testng.Assert.assertEquals;
+
/**
* Unit test {@link org.apache.pulsar.common.schema.SchemaInfo}.
*/
@@ -280,4 +284,38 @@ public class SchemaInfoTest {
assertEquals(si.toString(), jsonifiedStr);
}
+ public static class SchemaInfoBuilderTest {
+
+ @Test
+ public void testUnsetProperties() {
+ final SchemaInfo schemaInfo = SchemaInfo.builder()
+ .type(SchemaType.STRING)
+ .schema(new byte[0])
+ .name("string")
+ .build();
+
+ assertEquals(schemaInfo.getSchema(), new byte[0]);
+ assertEquals(schemaInfo.getType(), SchemaType.STRING);
+ assertEquals(schemaInfo.getName(), "string");
+ assertEquals(schemaInfo.getProperties(), Maps.newHashMap());
+ }
+
+ @Test
+ public void testSetProperties() {
+ final Map<String, String> map = Maps.newHashMap();
+ map.put("test", "value");
+ final SchemaInfo schemaInfo = SchemaInfo.builder()
+ .type(SchemaType.STRING)
+ .schema(new byte[0])
+ .name("string")
+ .properties(map)
+ .build();
+
+ assertEquals(schemaInfo.getSchema(), new byte[0]);
+ assertEquals(schemaInfo.getType(), SchemaType.STRING);
+ assertEquals(schemaInfo.getName(), "string");
+ assertEquals(schemaInfo.getProperties(), Maps.newHashMap(map));
+ }
+
+ }
}