Skip to content

Commit 627d118

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

File tree

12 files changed

+43
-59
lines changed

12 files changed

+43
-59
lines changed

release-notes/CREDITS-2.x

Lines changed: 5 additions & 1 deletion
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

Lines changed: 3 additions & 1 deletion
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

Lines changed: 4 additions & 10 deletions
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

Lines changed: 2 additions & 1 deletion
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

Lines changed: 2 additions & 1 deletion
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

Lines changed: 2 additions & 11 deletions
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

Lines changed: 2 additions & 2 deletions
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 3 deletions
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
/*
Lines changed: 9 additions & 15 deletions
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
}

0 commit comments

Comments
 (0)