Skip to content

Commit 0fab3f6

Browse files
authored
Merge pull request #33 from zalando/move-to-hikaricp
Move Tests to also use HikariCP after earlier BoneCP removal. Despite JDK7 failures, we should remove this.
2 parents 3987fbf + f393d06 commit 0fab3f6

File tree

2 files changed

+143
-130
lines changed

2 files changed

+143
-130
lines changed

pom.xml

Lines changed: 14 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
<?xml version='1.0' encoding='UTF-8'?>
22
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
33
<modelVersion>4.0.0</modelVersion>
4-
4+
<parent>
5+
<groupId>org.zalando.stups.build</groupId>
6+
<artifactId>stups-parent</artifactId>
7+
<version>7</version>
8+
<relativePath />
9+
</parent>
510
<groupId>de.zalando</groupId>
611
<artifactId>zalando-sprocwrapper</artifactId>
7-
<version>1.4.0-SNAPSHOT</version>
12+
<version>1.5.2-SNAPSHOT</version>
813
<packaging>jar</packaging>
914
<name>Stored Procedure Wrapper</name>
1015
<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>
@@ -19,7 +24,8 @@
1924
<connection>scm:git:git://github.com/zalando/java-sproc-wrapper.git</connection>
2025
<developerConnection>scm:git:[email protected]:zalando/java-sproc-wrapper.git</developerConnection>
2126
<url>https://github.com/zalando/java-sproc-wrapper.git</url>
22-
</scm>
27+
<tag>HEAD</tag>
28+
</scm>
2329

2430
<issueManagement>
2531
<system>GitHub</system>
@@ -76,48 +82,6 @@
7682
<artifactId>maven-resources-plugin</artifactId>
7783
<version>2.6</version>
7884
</plugin>
79-
<plugin>
80-
<groupId>org.apache.maven.plugins</groupId>
81-
<artifactId>maven-source-plugin</artifactId>
82-
<version>2.3</version>
83-
<executions>
84-
<execution>
85-
<id>attach-sources</id>
86-
<phase>verify</phase>
87-
<goals>
88-
<goal>jar-no-fork</goal>
89-
</goals>
90-
</execution>
91-
</executions>
92-
</plugin>
93-
<plugin>
94-
<groupId>org.apache.maven.plugins</groupId>
95-
<artifactId>maven-javadoc-plugin</artifactId>
96-
<version>2.10.1</version>
97-
<executions>
98-
<execution>
99-
<id>attach-javadoc</id>
100-
<phase>verify</phase>
101-
<goals>
102-
<goal>jar</goal>
103-
</goals>
104-
</execution>
105-
</executions>
106-
</plugin>
107-
<plugin>
108-
<groupId>org.apache.maven.plugins</groupId>
109-
<artifactId>maven-gpg-plugin</artifactId>
110-
<version>1.5</version>
111-
<executions>
112-
<execution>
113-
<id>sign-artifacts</id>
114-
<phase>verify</phase>
115-
<goals>
116-
<goal>sign</goal>
117-
</goals>
118-
</execution>
119-
</executions>
120-
</plugin>
12185
<plugin>
12286
<groupId>org.eluder.coveralls</groupId>
12387
<artifactId>coveralls-maven-plugin</artifactId>
@@ -126,7 +90,7 @@
12690
<plugin>
12791
<groupId>org.jacoco</groupId>
12892
<artifactId>jacoco-maven-plugin</artifactId>
129-
<version>0.7.2.201409121644</version>
93+
<version>0.7.7.201606060606</version>
13094
<executions>
13195
<execution>
13296
<id>prepare-agent</id>
@@ -169,9 +133,10 @@
169133
<scope>test</scope>
170134
</dependency>
171135
<dependency>
172-
<groupId>com.jolbox</groupId>
173-
<artifactId>bonecp</artifactId>
174-
<version>0.8.0.RELEASE</version>
136+
<groupId>com.zaxxer</groupId>
137+
<artifactId>HikariCP</artifactId>
138+
<version>2.4.7</version>
139+
<scope>test</scope>
175140
</dependency>
176141
<dependency>
177142
<groupId>org.postgresql</groupId>
@@ -407,36 +372,5 @@
407372
</plugins>
408373
</build>
409374
</profile>
410-
<profile>
411-
<id>ossrh</id>
412-
<build>
413-
<plugins>
414-
<plugin>
415-
<groupId>org.apache.maven.plugins</groupId>
416-
<artifactId>maven-gpg-plugin</artifactId>
417-
<version>1.5</version>
418-
<executions>
419-
<execution>
420-
<id>sign-artifacts</id>
421-
<phase>verify</phase>
422-
<goals>
423-
<goal>sign</goal>
424-
</goals>
425-
</execution>
426-
</executions>
427-
</plugin>
428-
</plugins>
429-
</build>
430-
</profile>
431375
</profiles>
432-
<distributionManagement>
433-
<snapshotRepository>
434-
<id>ossrh</id>
435-
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
436-
</snapshotRepository>
437-
<repository>
438-
<id>ossrh</id>
439-
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
440-
</repository>
441-
</distributionManagement>
442376
</project>

src/test/resources/backendContextTest.xml

Lines changed: 129 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -25,34 +25,68 @@
2525
<context:component-scan base-package="de.zalando" />
2626
<context:annotation-config />
2727

28-
<bean id="testDataSource1" destroy-method="close" class="com.jolbox.bonecp.BoneCPDataSource" lazy-init="true">
29-
<property name="driverClass" value="org.postgresql.Driver" />
30-
<property name="jdbcUrl" value="${frontend.sproc.datasource.url1}" />
31-
<property name="username" value="${frontend.sproc.datasource.username}" />
32-
<property name="password" value="${frontend.sproc.datasource.password}" />
33-
<property name="initSQL" value="SET search_path to ztest_schema1, ztest_schema2, public;" />
34-
<property name="minConnectionsPerPartition" value="5" />
35-
<property name="maxConnectionsPerPartition" value="5" />
36-
</bean>
37-
38-
<bean id="testDataSource2" destroy-method="close" class="com.jolbox.bonecp.BoneCPDataSource" lazy-init="true">
39-
<property name="driverClass" value="org.postgresql.Driver" />
40-
<property name="jdbcUrl" value="${frontend.sproc.datasource.url2}" />
41-
<property name="username" value="${frontend.sproc.datasource.username}" />
42-
<property name="password" value="${frontend.sproc.datasource.password}" />
43-
<property name="initSQL" value="SET search_path to ztest_schema1, public;" />
44-
<property name="minConnectionsPerPartition" value="5" />
45-
<property name="maxConnectionsPerPartition" value="5" />
46-
</bean>
47-
48-
<bean id="testDataSource3" destroy-method="close" class="com.jolbox.bonecp.BoneCPDataSource" lazy-init="true">
49-
<property name="driverClass" value="org.postgresql.Driver" />
50-
<property name="jdbcUrl" value="${frontend.sproc.datasource.url1}" />
51-
<property name="username" value="${frontend.sproc.datasource.username}" />
52-
<property name="password" value="${frontend.sproc.datasource.password}" />
53-
<property name="initSQL" value="SET TIME ZONE 'PST8PDT'; SET search_path to ztest_schema1, public;" />
54-
<property name="minConnectionsPerPartition" value="5" />
55-
<property name="maxConnectionsPerPartition" value="5" />
28+
<bean id="hikariConfig1" class="com.zaxxer.hikari.HikariConfig">
29+
<property name="poolName" value="springHikariCP" />
30+
<property name="connectionTestQuery" value="SELECT 1" />
31+
<property name="dataSourceClassName" value="org.postgresql.ds.PGSimpleDataSource" />
32+
<property name="maximumPoolSize" value="5" />
33+
<property name="idleTimeout" value="5000" />
34+
<property name="connectionInitSql" value="SET APPLICATION_NAME='dataSource1'; SET search_path to ztest_schema1, ztest_schema2, public" />
35+
36+
<property name="dataSourceProperties">
37+
<props>
38+
<prop key="url">${frontend.sproc.datasource.url1}</prop>
39+
<prop key="user">${frontend.sproc.datasource.username}</prop>
40+
<prop key="password">${frontend.sproc.datasource.password}</prop>
41+
</props>
42+
</property>
43+
</bean>
44+
45+
<!-- HikariCP configuration -->
46+
<bean id="testDataSource1" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
47+
<constructor-arg ref="hikariConfig1" />
48+
</bean>
49+
50+
<bean id="hikariConfig2" class="com.zaxxer.hikari.HikariConfig">
51+
<property name="poolName" value="springHikariCP" />
52+
<property name="connectionTestQuery" value="SELECT 1" />
53+
<property name="dataSourceClassName" value="org.postgresql.ds.PGSimpleDataSource" />
54+
<property name="maximumPoolSize" value="5" />
55+
<property name="idleTimeout" value="5000" />
56+
<property name="connectionInitSql" value="SET APPLICATION_NAME='dataSource2'; SET search_path to ztest_schema1, public" />
57+
58+
<property name="dataSourceProperties">
59+
<props>
60+
<prop key="url">${frontend.sproc.datasource.url2}</prop>
61+
<prop key="user">${frontend.sproc.datasource.username}</prop>
62+
<prop key="password">${frontend.sproc.datasource.password}</prop>
63+
</props>
64+
</property>
65+
</bean>
66+
67+
<bean id="testDataSource2" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
68+
<constructor-arg ref="hikariConfig2" />
69+
</bean>
70+
71+
<bean id="hikariConfig3" class="com.zaxxer.hikari.HikariConfig">
72+
<property name="poolName" value="springHikariCP" />
73+
<property name="connectionTestQuery" value="SELECT 1" />
74+
<property name="dataSourceClassName" value="org.postgresql.ds.PGSimpleDataSource" />
75+
<property name="maximumPoolSize" value="5" />
76+
<property name="idleTimeout" value="5000" />
77+
<property name="connectionInitSql" value="SET APPLICATION_NAME='dataSource3'; SET TIME ZONE 'PST8PDT'; SET search_path to ztest_schema1, public" />
78+
79+
<property name="dataSourceProperties">
80+
<props>
81+
<prop key="url">${frontend.sproc.datasource.url1}</prop>
82+
<prop key="user">${frontend.sproc.datasource.username}</prop>
83+
<prop key="password">${frontend.sproc.datasource.password}</prop>
84+
</props>
85+
</property>
86+
</bean>
87+
88+
<bean id="testDataSource3" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
89+
<constructor-arg ref="hikariConfig3" />
5690
</bean>
5791

5892
<bean id="testDataSourceProvider" class="de.zalando.sprocwrapper.dsprovider.ArrayDataSourceProvider">
@@ -80,31 +114,76 @@
80114
</constructor-arg>
81115
</bean>
82116

117+
<bean id="bitmapConfig1" class="com.zaxxer.hikari.HikariConfig">
118+
<property name="poolName" value="springHikariCP" />
119+
<property name="connectionTestQuery" value="SELECT 1" />
120+
<property name="dataSourceClassName" value="org.postgresql.ds.PGSimpleDataSource" />
121+
<property name="maximumPoolSize" value="5" />
122+
<property name="idleTimeout" value="5000" />
123+
<property name="connectionInitSql" value="SET APPLICATION_NAME='bitmap1'; SET search_path to ztest_schema1, public; CREATE TEMPORARY TABLE shard_name (shard_name text); INSERT INTO shard_name (shard_name) VALUES ('00');" />
124+
125+
<property name="dataSourceProperties">
126+
<props>
127+
<prop key="url">${frontend.sproc.datasource.url1}</prop>
128+
<prop key="user">${frontend.sproc.datasource.username}</prop>
129+
<prop key="password">${frontend.sproc.datasource.password}</prop>
130+
</props>
131+
</property>
132+
</bean>
133+
134+
<bean id="bitmapPool1" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
135+
<constructor-arg ref="bitmapConfig1" />
136+
</bean>
137+
138+
<bean id="bitmapConfig2" class="com.zaxxer.hikari.HikariConfig">
139+
<property name="poolName" value="springHikariCP" />
140+
<property name="connectionTestQuery" value="SELECT 1" />
141+
<property name="dataSourceClassName" value="org.postgresql.ds.PGSimpleDataSource" />
142+
<property name="maximumPoolSize" value="5" />
143+
<property name="idleTimeout" value="5000" />
144+
<property name="connectionInitSql" value="SET APPLICATION_NAME='bitmap2'; SET search_path to ztest_schema1, public; CREATE TEMPORARY TABLE shard_name (shard_name text); INSERT INTO shard_name (shard_name) VALUES ('10');" />
145+
146+
<property name="dataSourceProperties">
147+
<props>
148+
<prop key="url">${frontend.sproc.datasource.url1}</prop>
149+
<prop key="user">${frontend.sproc.datasource.username}</prop>
150+
<prop key="password">${frontend.sproc.datasource.password}</prop>
151+
</props>
152+
</property>
153+
</bean>
154+
155+
<bean id="bitmapPool2" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
156+
<constructor-arg ref="bitmapConfig2" />
157+
</bean>
158+
159+
<bean id="bitmapConfig3" class="com.zaxxer.hikari.HikariConfig">
160+
<property name="poolName" value="springHikariCP" />
161+
<property name="connectionTestQuery" value="SELECT 1" />
162+
<property name="dataSourceClassName" value="org.postgresql.ds.PGSimpleDataSource" />
163+
<property name="maximumPoolSize" value="5" />
164+
<property name="idleTimeout" value="5000" />
165+
<property name="connectionInitSql" value="SET APPLICATION_NAME='bitmap3'; SET search_path to ztest_schema1, public; CREATE TEMPORARY TABLE shard_name (shard_name text); INSERT INTO shard_name (shard_name) VALUES ('1');" />
166+
167+
<property name="dataSourceProperties">
168+
<props>
169+
<prop key="url">${frontend.sproc.datasource.url2}</prop>
170+
<prop key="user">${frontend.sproc.datasource.username}</prop>
171+
<prop key="password">${frontend.sproc.datasource.password}</prop>
172+
</props>
173+
</property>
174+
</bean>
175+
176+
<bean id="bitmapPool3" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
177+
<constructor-arg ref="bitmapConfig3" />
178+
</bean>
179+
83180
<bean id="testBitmapShardDataSourceProvider" class="de.zalando.sprocwrapper.dsprovider.BitmapShardDataSourceProvider">
84-
<constructor-arg>
85-
<value>com.jolbox.bonecp.BoneCPDataSource</value>
86-
</constructor-arg>
87-
<constructor-arg>
88-
<map>
89-
<entry><key><value>driverClass</value></key><value>org.postgresql.Driver</value></entry>
90-
<entry><key><value>username</value></key><value>${frontend.sproc.datasource.username}</value></entry>
91-
<entry><key><value>password</value></key><value>${frontend.sproc.datasource.password}</value></entry>
92-
</map>
93-
</constructor-arg>
94181
<constructor-arg>
95182
<map>
96-
<entry>
97-
<key><value>00</value></key>
98-
<value>${frontend.sproc.datasource.url1}|SET search_path to ztest_schema1, public; CREATE TEMPORARY TABLE shard_name (shard_name text); INSERT INTO shard_name (shard_name) VALUES ('00')</value>
99-
</entry>
100-
<entry>
101-
<key><value>10</value></key>
102-
<value>${frontend.sproc.datasource.url1}|SET search_path to ztest_schema1, public; CREATE TEMPORARY TABLE shard_name (shard_name text); INSERT INTO shard_name (shard_name) VALUES ('10')</value>
103-
</entry>
104-
<entry>
105-
<key><value>1</value></key>
106-
<value>${frontend.sproc.datasource.url2}|SET search_path to ztest_schema1, public; CREATE TEMPORARY TABLE shard_name (shard_name text); INSERT INTO shard_name (shard_name) VALUES ('1')</value>
107-
</entry>
183+
<entry key="00" value-ref="bitmapPool1" />
184+
<entry key="01" value-ref="bitmapPool3" />
185+
<entry key="10" value-ref="bitmapPool2" />
186+
<entry key="11" value-ref="bitmapPool3" />
108187
</map>
109188
</constructor-arg>
110189
</bean>

0 commit comments

Comments
 (0)