Skip to content

Commit c075d23

Browse files
committed
Update postgres version to 42.1.1
Update spring version to 4.3.8 Update pom version to 2.0.0-SNAPSHOT Fix integration test to support new postgres driver version.
1 parent d86ab67 commit c075d23

File tree

8 files changed

+41
-42
lines changed

8 files changed

+41
-42
lines changed

pom.xml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
</parent>
1010
<groupId>de.zalando</groupId>
1111
<artifactId>zalando-sprocwrapper</artifactId>
12-
<version>1.5.2-SNAPSHOT</version>
12+
<version>2.0.0-SNAPSHOT</version>
1313
<packaging>jar</packaging>
1414
<name>Stored Procedure Wrapper</name>
1515
<description>Library to make PostgreSQL stored procedures available through simple Java "*SProcService" interfaces including automatic object serialization and deserialization (using typemapper and convention-over-configuration). Supports sharding, advisory locking, statement timeouts and PostgreSQL types such as enums and hstore.</description>
@@ -61,9 +61,8 @@
6161
<properties>
6262
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
6363
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
64-
<spring.version>3.2.3.RELEASE</spring.version>
65-
<postgresql.version>9.3-1102-jdbc41</postgresql.version>
66-
64+
<spring.version>4.3.8.RELEASE</spring.version>
65+
<postgresql.version>42.1.1</postgresql.version>
6766
</properties>
6867

6968
<build>

src/main/java/de/zalando/typemapper/core/TypeMapper.java

Lines changed: 16 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,25 @@
11
package de.zalando.typemapper.core;
22

3-
import java.sql.ResultSet;
4-
import java.sql.ResultSetMetaData;
5-
import java.sql.SQLException;
6-
7-
import java.util.List;
8-
import java.util.Map;
9-
10-
import org.postgresql.jdbc4.Jdbc4Array;
11-
import org.postgresql.jdbc4.Jdbc4ResultSet;
12-
13-
import org.postgresql.util.PGobject;
14-
15-
import org.slf4j.Logger;
16-
import org.slf4j.LoggerFactory;
17-
18-
import org.springframework.jdbc.core.RowMapper;
19-
203
import de.zalando.typemapper.core.db.DbFunction;
214
import de.zalando.typemapper.core.db.DbFunctionRegister;
225
import de.zalando.typemapper.core.db.DbTypeField;
236
import de.zalando.typemapper.core.fieldMapper.ArrayFieldMapper;
247
import de.zalando.typemapper.core.fieldMapper.ObjectFieldMapper;
25-
import de.zalando.typemapper.core.result.ArrayResultNode;
26-
import de.zalando.typemapper.core.result.DbResultNode;
27-
import de.zalando.typemapper.core.result.DbResultNodeType;
28-
import de.zalando.typemapper.core.result.MapResultNode;
29-
import de.zalando.typemapper.core.result.ObjectResultNode;
30-
import de.zalando.typemapper.core.result.ResultTree;
31-
import de.zalando.typemapper.core.result.SimpleResultNode;
8+
import de.zalando.typemapper.core.result.*;
329
import de.zalando.typemapper.parser.exception.RowParserException;
3310
import de.zalando.typemapper.parser.postgres.ParseUtils;
11+
import org.postgresql.jdbc.PgArray;
12+
import org.postgresql.jdbc.PgResultSet;
13+
import org.postgresql.util.PGobject;
14+
import org.slf4j.Logger;
15+
import org.slf4j.LoggerFactory;
16+
import org.springframework.jdbc.core.RowMapper;
17+
18+
import java.sql.ResultSet;
19+
import java.sql.ResultSetMetaData;
20+
import java.sql.SQLException;
21+
import java.util.List;
22+
import java.util.Map;
3423

3524
public class TypeMapper<ITEM> implements RowMapper<ITEM> {
3625

@@ -76,7 +65,7 @@ private ResultTree extractResultTree(final ResultSet set) throws SQLException {
7665
LOG.trace("Extracting result tree");
7766

7867
// cast to obtain more information from the result set.
79-
final Jdbc4ResultSet pgSet = set.unwrap(Jdbc4ResultSet.class);
68+
final PgResultSet pgSet = set.unwrap(PgResultSet.class);
8069
final ResultSetMetaData rsMetaData = pgSet.getMetaData();
8170

8271
final ResultTree tree = new ResultTree();
@@ -126,8 +115,8 @@ private ResultTree extractResultTree(final ResultSet set) throws SQLException {
126115
final PGobject pgObj = (PGobject) obj;
127116
node = new ObjectResultNode(pgObj.getValue(), name, pgObj.getType(), typeId,
128117
pgSet.getStatement().getConnection());
129-
} else if (obj instanceof Jdbc4Array) {
130-
final Jdbc4Array arrayObj = (Jdbc4Array) obj;
118+
} else if (obj instanceof PgArray) {
119+
final PgArray arrayObj = (PgArray) obj;
131120

132121
// TODO pribeiro jdbc driver lacks support for arrays of user defined types. We should whether
133122
// implement the missing feature in driver or use the current approach (parse string).

src/main/java/de/zalando/typemapper/core/fieldMapper/DateFieldMapper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import java.sql.SQLException;
55
import java.sql.Timestamp;
66

7-
import org.postgresql.jdbc2.PostgresJDBCDriverReusedTimestampUtils;
7+
import org.postgresql.jdbc.PostgresJDBCDriverReusedTimestampUtils;
88

99
import org.slf4j.Logger;
1010
import org.slf4j.LoggerFactory;

src/main/java/de/zalando/typemapper/postgres/PgTypeHelper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
import org.postgresql.core.BaseConnection;
1616

17-
import org.postgresql.jdbc2.PostgresJDBCDriverReusedTimestampUtils;
17+
import org.postgresql.jdbc.PostgresJDBCDriverReusedTimestampUtils;
1818

1919
import org.postgresql.util.PGobject;
2020

Original file line numberDiff line numberDiff line change
@@ -1,13 +1,22 @@
1-
package org.postgresql.jdbc2;
1+
package org.postgresql.jdbc;
2+
3+
import org.postgresql.core.Provider;
4+
5+
import java.util.TimeZone;
26

37
/**
48
* Helper class to reuse TimestampUtils from the postgres jdbc-driver. Must be placed in org.postgresql.jdbc2 package
59
* because of package based constructor
610
*
7-
* @author wolters
11+
* @author wolters
812
*/
913
public class PostgresJDBCDriverReusedTimestampUtils extends TimestampUtils {
1014
public PostgresJDBCDriverReusedTimestampUtils() {
11-
super(true, true, false);
15+
super(false, new Provider<TimeZone>() {
16+
@Override
17+
public TimeZone get() {
18+
return TimeZone.getDefault();
19+
}
20+
});
1221
}
1322
}

src/test/java/de/zalando/sprocwrapper/SimpleIT.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -574,11 +574,11 @@ public void testRuntime() {
574574

575575
final String sql = "SELECT ";
576576

577-
final int xx = (new JdbcTemplate(dataSource1)).queryForInt(sql + 11111);
577+
final int xx = (new JdbcTemplate(dataSource1)).queryForObject(sql + 11111, Integer.class);
578578

579579
final long startTime = System.currentTimeMillis();
580580
for (int i = 0; i < loops; i++) {
581-
final int j = (new JdbcTemplate(dataSource1)).queryForInt(sql + i);
581+
final int j = (new JdbcTemplate(dataSource1)).queryForObject(sql + i, Integer.class);
582582
}
583583

584584
final long endTime = System.currentTimeMillis();

src/test/java/de/zalando/typemapper/postgres/PgSerializerTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
import java.sql.SQLException;
1111

12+
import java.time.Instant;
1213
import java.util.Arrays;
1314
import java.util.Collection;
1415
import java.util.Date;
@@ -61,8 +62,9 @@ public PgSerializerTest(final Object objectToSerialize, final Object expected) {
6162
public static Collection<Object[]> generateData() throws SQLException {
6263
return Arrays.asList(
6364
new Object[][] {
64-
{new Date(112, 11, 1, 6, 6, 6), Pattern.compile("2012-12-01 06:06:06.000000 [+-]?\\d{2}:\\d{2}:00")},
65-
{new Date(112, 9, 1, 6, 6, 6), Pattern.compile("2012-10-01 06:06:06.000000 [+-]?\\d{2}:\\d{2}:00")},
65+
{new Date(112, 11, 1, 6, 6, 6), Pattern.compile("2012-12-01 06:06:06[+-]?\\d{2}")},
66+
{new Date(112, 9, 1, 6, 6, 6), Pattern.compile("2012-10-01 06:06:06[+-]?\\d{2}")},
67+
{Date.from(Instant.parse("2017-05-14T12:34:56.123456789Z")), Pattern.compile("2017-05-14 14:34:56.123000[+-]?\\d{2}")},
6668
{1, "1"},
6769
{69, "69"},
6870
{true, "t"},

src/test/java/de/zalando/typemapper/postgres/PgSerializerToDatabaseTestIT.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,10 +196,10 @@ public static Collection<Object[]> generateData() throws SQLException {
196196
},
197197

198198
/* 20 */
199-
{new Date(112, 11, 1, 6, 6, 6), "2012-12-01 06:06:06.000000 +01:00:00", Types.TIMESTAMP},
199+
{new Date(112, 11, 1, 6, 6, 6), "2012-12-01 06:06:06+01", Types.TIMESTAMP},
200200

201201
/* 21 */
202-
{new Date(112, 9, 1, 6, 6, 6), "2012-10-01 06:06:06.000000 +02:00:00", Types.TIMESTAMP},
202+
{new Date(112, 9, 1, 6, 6, 6), "2012-10-01 06:06:06+02", Types.TIMESTAMP},
203203

204204
/* 22 */
205205
{PgTypeHelper.asPGobject(new InheritedClassWithPrimitives(1L, "1", 12)), "(1,12,1)", Types.OTHER},

0 commit comments

Comments
 (0)