Skip to content

Commit 627d118

Browse files
committed
Update release notes wrt #2925, minor test reorg
1 parent ce2b38a commit 627d118

12 files changed

+43
-59
lines changed

release-notes/CREDITS-2.x

+5-1
Original file line numberDiff line numberDiff line change
@@ -982,7 +982,7 @@ David Connelly (dconnelly@github)
982982
XakepSDK@github
983983
* Reported #2458: `Nulls` property metadata ignored for creators
984984
(2.10.0)
985-
* Contributed #2913: Make some java platform modules optional
985+
* Contributed #2910: Make some java platform modules optional
986986
(2.12.0)
987987

988988
Wahey (KevynBct@github)
@@ -1262,3 +1262,7 @@ Sergiy Yevtushenko (siy@github)
12621262
* Contributed #2879: Add support for disabling special handling of "Creator properties" wrt
12631263
alphabetic property ordering
12641264
(2.12.0)
1265+
1266+
M Rizky Satrio (rsatrio@github)
1267+
* Contributed #2925: Add support for `java.sql.Blob`
1268+
(2.12.0)

release-notes/VERSION-2.x

+3-1
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,10 @@ Project: jackson-databind
3131
#2903: Allow preventing "Enum from integer" coercion using new `CoercionConfig` system
3232
#2909: `@JsonValue` not considered when evaluating inclusion
3333
(reported by chrylis@github)
34-
#2913: Make some java platform modules optional
34+
#2910: Make some java platform modules optional
3535
(contributed by XakepSDK@github)
36+
#2925: Add support for `java.sql.Blob`
37+
(contributed by M Rizky S)
3638
- Full "LICENSE" included in jar for easier access by compliancy tools
3739

3840
2.12.0-rc1 (12-Oct-2020)

src/main/java/com/fasterxml/jackson/databind/ext/OptionalHandlerFactory.java

+4-10
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,7 @@
33
import java.util.HashMap;
44
import java.util.Map;
55

6-
import com.fasterxml.jackson.databind.BeanDescription;
7-
import com.fasterxml.jackson.databind.DeserializationConfig;
8-
import com.fasterxml.jackson.databind.JavaType;
9-
import com.fasterxml.jackson.databind.JsonDeserializer;
10-
import com.fasterxml.jackson.databind.JsonMappingException;
11-
import com.fasterxml.jackson.databind.JsonSerializer;
12-
import com.fasterxml.jackson.databind.SerializationConfig;
6+
import com.fasterxml.jackson.databind.*;
137
import com.fasterxml.jackson.databind.deser.Deserializers;
148
import com.fasterxml.jackson.databind.ser.Serializers;
159
import com.fasterxml.jackson.databind.ser.std.DateSerializer;
@@ -103,7 +97,7 @@ protected OptionalHandlerFactory() {
10397
_sqlDeserializers.put(CLS_NAME_JAVA_SQL_TIMESTAMP,
10498
"com.fasterxml.jackson.databind.deser.std.DateDeserializers$TimestampDeserializer");
10599
_sqlDeserializers.put(CLS_NAME_JAVA_SQL_BLOB,
106-
"com.fasterxml.jackson.databind.deser.std.SqlBlobDeserializer");
100+
"com.fasterxml.jackson.databind.ext.SqlBlobDeserializer");
107101

108102
_sqlSerializers = new HashMap<>();
109103
// 09-Jan-2015, tatu: As per [databind#1073], let's try to guard against possibility
@@ -113,8 +107,8 @@ protected OptionalHandlerFactory() {
113107
_sqlSerializers.put(CLS_NAME_JAVA_SQL_TIMESTAMP, DateSerializer.instance);
114108
_sqlSerializers.put(CLS_NAME_JAVA_SQL_DATE, "com.fasterxml.jackson.databind.ser.std.SqlDateSerializer");
115109
_sqlSerializers.put(CLS_NAME_JAVA_SQL_TIME, "com.fasterxml.jackson.databind.ser.std.SqlTimeSerializer");
116-
_sqlSerializers.put(CLS_NAME_JAVA_SQL_BLOB, "com.fasterxml.jackson.databind.ser.std.SqlBlobSerializer");
117-
_sqlSerializers.put(CLS_NAME_JAVA_SQL_SERIALBLOB, "com.fasterxml.jackson.databind.ser.std.SqlBlobSerializer");
110+
_sqlSerializers.put(CLS_NAME_JAVA_SQL_BLOB, "com.fasterxml.jackson.databind.ext.SqlBlobSerializer");
111+
_sqlSerializers.put(CLS_NAME_JAVA_SQL_SERIALBLOB, "com.fasterxml.jackson.databind.ext.SqlBlobSerializer");
118112
}
119113

120114
/*

src/main/java/com/fasterxml/jackson/databind/deser/std/SqlBlobDeserializer.java renamed to src/main/java/com/fasterxml/jackson/databind/ext/SqlBlobDeserializer.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.deser.std;
1+
package com.fasterxml.jackson.databind.ext;
22

33
import java.io.IOException;
44
import java.sql.Blob;
@@ -10,6 +10,7 @@
1010
import com.fasterxml.jackson.core.Base64Variants;
1111
import com.fasterxml.jackson.databind.DeserializationContext;
1212
import com.fasterxml.jackson.databind.JsonMappingException;
13+
import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer;
1314
import com.fasterxml.jackson.databind.exc.InvalidFormatException;
1415

1516

src/main/java/com/fasterxml/jackson/databind/ser/std/SqlBlobSerializer.java renamed to src/main/java/com/fasterxml/jackson/databind/ext/SqlBlobSerializer.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.ser.std;
1+
package com.fasterxml.jackson.databind.ext;
22

33
import java.io.IOException;
44
import java.sql.Blob;
@@ -9,6 +9,7 @@
99
import com.fasterxml.jackson.databind.JsonSerializer;
1010
import com.fasterxml.jackson.databind.SerializerProvider;
1111
import com.fasterxml.jackson.databind.annotation.JacksonStdImpl;
12+
import com.fasterxml.jackson.databind.ser.std.StdScalarSerializer;
1213

1314
/**
1415
* This is serializer for {@link java.sql.Blob} into base64 String

src/test/java/com/fasterxml/jackson/databind/deser/jdk/DateDeserializationTest.java

+2-11
Original file line numberDiff line numberDiff line change
@@ -782,18 +782,9 @@ public void testInvalidFormat() throws Exception
782782

783783
private String dateToString(java.util.Date value)
784784
{
785-
/* Then from String. This is bit tricky, since JDK does not really
786-
* suggest a 'standard' format. So let's try using something...
787-
*/
785+
// Then from String. This is bit tricky, since JDK does not really
786+
// suggest a 'standard' format. So let's try using something...
788787
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
789788
return df.format(value);
790789
}
791-
792-
private static Calendar gmtCalendar(long time)
793-
{
794-
Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
795-
c.setTimeInMillis(time);
796-
return c;
797-
}
798-
799790
}

src/test/java/com/fasterxml/jackson/databind/ext/TestJava6Types.java renamed to src/test/java/com/fasterxml/jackson/databind/deser/jdk/Java6CollectionsDeserTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.ext;
1+
package com.fasterxml.jackson.databind.deser.jdk;
22

33
import java.util.Deque;
44
import java.util.NavigableSet;
@@ -9,7 +9,7 @@
99
* Tests to ensure that we can handle 1.6-only types, even if
1010
* registrations are done without direct refs
1111
*/
12-
public class TestJava6Types extends com.fasterxml.jackson.databind.BaseMapTest
12+
public class Java6CollectionsDeserTest extends com.fasterxml.jackson.databind.BaseMapTest
1313
{
1414
// for [databind#216]
1515
public void test16Types() throws Exception

src/test/java/com/fasterxml/jackson/databind/ext/TestDOM.java renamed to src/test/java/com/fasterxml/jackson/databind/ext/DOMTypeReadWriteTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
import com.fasterxml.jackson.databind.ObjectMapper;
1010

11-
public class TestDOM extends com.fasterxml.jackson.databind.BaseMapTest
11+
public class DOMTypeReadWriteTest extends com.fasterxml.jackson.databind.BaseMapTest
1212
{
1313
final static String SIMPLE_XML =
1414
"<root attr='3'><leaf>Rock &amp; Roll!</leaf><?proc instr?></root>";

src/test/java/com/fasterxml/jackson/databind/ext/TestCoreXMLTypes.java renamed to src/test/java/com/fasterxml/jackson/databind/ext/MiscJavaXMLTypesReadWriteTest.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,8 @@
1111
* since some Java(-like) platforms do not include them: specifically, Google AppEngine
1212
* and Android seem to skimp on their inclusion. As such, they are dynamically loaded
1313
* only as needed, and need bit special handling.
14-
*
15-
* @author tatu
1614
*/
17-
public class TestCoreXMLTypes
15+
public class MiscJavaXMLTypesReadWriteTest
1816
extends BaseMapTest
1917
{
2018
/*
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
package com.fasterxml.jackson.databind.ext;
22

33
import java.sql.Blob;
4-
import java.util.Base64;
54

65
import javax.sql.rowset.serial.SerialBlob;
76

8-
import com.fasterxml.jackson.core.Base64Variant;
97
import com.fasterxml.jackson.core.Base64Variants;
108
import com.fasterxml.jackson.databind.BaseMapTest;
119
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -14,7 +12,6 @@
1412
public class SqlBlobSerializationTest extends BaseMapTest
1513
{
1614
static class BlobObject {
17-
// @JsonSerialize(using=SqlBlobSerializer.class)
1815
Blob sqlBlob1;
1916

2017
public Blob getSqlBlob1() {
@@ -24,28 +21,25 @@ public Blob getSqlBlob1() {
2421
public void setSqlBlob1(Blob sqlBlob1) {
2522
this.sqlBlob1 = sqlBlob1;
2623
}
27-
28-
2924
}
3025

3126
/*
3227
/**********************************************************
3328
/* Test methods
3429
/**********************************************************
3530
*/
36-
public void testSqlBlobSerializer() throws Exception {
37-
ObjectMapper m = new ObjectMapper();
38-
String testWord="TestObject1";
39-
SerialBlob blob1=new SerialBlob(testWord.getBytes());
40-
String base64Blob=Base64Variants.getDefaultVariant().encode(testWord.getBytes());
41-
4231

43-
BlobObject obj1=new BlobObject();
44-
obj1.sqlBlob1=blob1;
32+
public void testSqlBlobSerializer() throws Exception
33+
{
34+
ObjectMapper m = newJsonMapper();
35+
String testWord = "TestObject1";
36+
SerialBlob blob1 = new SerialBlob(testWord.getBytes());
37+
String base64Blob = Base64Variants.getDefaultVariant().encode(testWord.getBytes());
4538

46-
String json=m.writeValueAsString(obj1);
47-
assertEquals("{\"sqlBlob1\":\""+base64Blob+"\"}", json);
4839

40+
BlobObject obj1 = new BlobObject();
41+
obj1.sqlBlob1 = blob1;
4942

43+
assertEquals("{\"sqlBlob1\":"+q(base64Blob)+"}", m.writeValueAsString(obj1));
5044
}
5145
}

src/test/java/com/fasterxml/jackson/databind/ser/GenericTypeSerializationTest.java

+8-9
Original file line numberDiff line numberDiff line change
@@ -288,9 +288,9 @@ public static <F extends StringStubSubclass, FF> GenericSpecificityWrapper1<F, F
288288
}
289289

290290
public static class StringStub {
291-
private final String value;
291+
final String value;
292292

293-
private StringStub(String value) {
293+
StringStub(String value) {
294294
this.value = value;
295295
}
296296

@@ -337,7 +337,7 @@ public static <F extends Stub<StringStubSubclass>, FF> GenericSpecificityWrapper
337337
}
338338

339339
public static class Stub<T> {
340-
private final T value;
340+
final T value;
341341

342342
private Stub(T value) {
343343
this.value = value;
@@ -373,9 +373,9 @@ public GG second() {
373373
}
374374
}
375375

376-
public static class SimpleWrapper<T> {
377-
378-
private final T value;
376+
public static class SimpleWrapper<T>
377+
{
378+
final T value;
379379

380380
SimpleWrapper(T value) {
381381
this.value = value;
@@ -388,11 +388,10 @@ public static <T> SimpleWrapper<T> fromJson(JsonSimpleWrapper<T> value) {
388388
}
389389

390390
@JsonDeserialize
391-
public static final class JsonSimpleWrapper<T> {
392-
391+
public static final class JsonSimpleWrapper<T>
392+
{
393393
@JsonProperty("object")
394394
public T object;
395-
396395
}
397396

398397
/*

src/test/java/com/fasterxml/jackson/databind/struct/FormatFeatureAcceptSingleTest.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ static class StringListWrapper {
6060
static class StringListWrapperWithBuilder {
6161
public final List<String> values;
6262

63-
private StringListWrapperWithBuilder(List<String> values) {
63+
StringListWrapperWithBuilder(List<String> values) {
6464
this.values = values;
6565
}
6666

@@ -102,7 +102,7 @@ static class RolesInList {
102102
static class RolesInListWithBuilder {
103103
public final List<Role> roles;
104104

105-
private RolesInListWithBuilder(List<Role> roles) {
105+
RolesInListWithBuilder(List<Role> roles) {
106106
this.roles = roles;
107107
}
108108

@@ -137,7 +137,7 @@ static class Role {
137137

138138
@JsonDeserialize
139139
static class WrapperWithStringFactory {
140-
private final Role role;
140+
final Role role;
141141

142142
private WrapperWithStringFactory(Role role) {
143143
this.role = role;
@@ -152,7 +152,7 @@ static WrapperWithStringFactory from(String value) {
152152
}
153153
}
154154

155-
private final ObjectMapper MAPPER = new ObjectMapper();
155+
private final ObjectMapper MAPPER = newJsonMapper();
156156

157157
/*
158158
/**********************************************************

0 commit comments

Comments
 (0)