Skip to content

Commit 20add85

Browse files
authored
统一Canal 依赖的Spring 版本,升级ibatis 至mybatis (#3182)
* fix issue:#561 增加一个外部参数控制,允许位点不存在时自动重置到当前位点 * Add MariaDB GTID support * 1. fix maven central repository url access error.(Update to https) 2. upgrade spring version to 5.0.5.RELEASE 3. upgrade ibatis to mybatis * fix unit test run error
1 parent a5c09c5 commit 20add85

File tree

27 files changed

+207
-176
lines changed

27 files changed

+207
-176
lines changed

deployer/src/main/resources/spring/default-instance.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,22 @@
1515
<bean id="instance" class="com.alibaba.otter.canal.instance.spring.CanalInstanceWithSpring">
1616
<property name="destination" value="${canal.instance.destination}" />
1717
<property name="eventParser">
18-
<ref local="eventParser" />
18+
<ref bean="eventParser" />
1919
</property>
2020
<property name="eventSink">
21-
<ref local="eventSink" />
21+
<ref bean="eventSink" />
2222
</property>
2323
<property name="eventStore">
24-
<ref local="eventStore" />
24+
<ref bean="eventStore" />
2525
</property>
2626
<property name="metaManager">
27-
<ref local="metaManager" />
27+
<ref bean="metaManager" />
2828
</property>
2929
<property name="alarmHandler">
30-
<ref local="alarmHandler" />
30+
<ref bean="alarmHandler" />
3131
</property>
3232
<property name="mqConfig">
33-
<ref local="mqConfig" />
33+
<ref bean="mqConfig" />
3434
</property>
3535
</bean>
3636

deployer/src/main/resources/spring/file-instance.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,22 @@
1515
<bean id="instance" class="com.alibaba.otter.canal.instance.spring.CanalInstanceWithSpring">
1616
<property name="destination" value="${canal.instance.destination}" />
1717
<property name="eventParser">
18-
<ref local="eventParser" />
18+
<ref bean="eventParser" />
1919
</property>
2020
<property name="eventSink">
21-
<ref local="eventSink" />
21+
<ref bean="eventSink" />
2222
</property>
2323
<property name="eventStore">
24-
<ref local="eventStore" />
24+
<ref bean="eventStore" />
2525
</property>
2626
<property name="metaManager">
27-
<ref local="metaManager" />
27+
<ref bean="metaManager" />
2828
</property>
2929
<property name="alarmHandler">
30-
<ref local="alarmHandler" />
30+
<ref bean="alarmHandler" />
3131
</property>
3232
<property name="mqConfig">
33-
<ref local="mqConfig" />
33+
<ref bean="mqConfig" />
3434
</property>
3535
</bean>
3636

deployer/src/main/resources/spring/group-instance.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,22 @@
1515
<bean id="instance" class="com.alibaba.otter.canal.instance.spring.CanalInstanceWithSpring">
1616
<property name="destination" value="${canal.instance.destination}" />
1717
<property name="eventParser">
18-
<ref local="eventParser" />
18+
<ref bean="eventParser" />
1919
</property>
2020
<property name="eventSink">
21-
<ref local="eventSink" />
21+
<ref bean="eventSink" />
2222
</property>
2323
<property name="eventStore">
24-
<ref local="eventStore" />
24+
<ref bean="eventStore" />
2525
</property>
2626
<property name="metaManager">
27-
<ref local="metaManager" />
27+
<ref bean="metaManager" />
2828
</property>
2929
<property name="alarmHandler">
30-
<ref local="alarmHandler" />
30+
<ref bean="alarmHandler" />
3131
</property>
3232
<property name="mqConfig">
33-
<ref local="mqConfig" />
33+
<ref bean="mqConfig" />
3434
</property>
3535
</bean>
3636

deployer/src/main/resources/spring/memory-instance.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,22 @@
1515
<bean id="instance" class="com.alibaba.otter.canal.instance.spring.CanalInstanceWithSpring">
1616
<property name="destination" value="${canal.instance.destination}" />
1717
<property name="eventParser">
18-
<ref local="eventParser" />
18+
<ref bean="eventParser" />
1919
</property>
2020
<property name="eventSink">
21-
<ref local="eventSink" />
21+
<ref bean="eventSink" />
2222
</property>
2323
<property name="eventStore">
24-
<ref local="eventStore" />
24+
<ref bean="eventStore" />
2525
</property>
2626
<property name="metaManager">
27-
<ref local="metaManager" />
27+
<ref bean="metaManager" />
2828
</property>
2929
<property name="alarmHandler">
30-
<ref local="alarmHandler" />
30+
<ref bean="alarmHandler" />
3131
</property>
3232
<property name="mqConfig">
33-
<ref local="mqConfig" />
33+
<ref bean="mqConfig" />
3434
</property>
3535
</bean>
3636

deployer/src/main/resources/spring/tsdb/h2-tsdb.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,16 +46,16 @@
4646
<property name="validationQuery" value="SELECT 1" />
4747
</bean>
4848

49-
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
50-
<property name="dataSource" ref="dataSource"/>
51-
<property name="configLocation" value="classpath:spring/tsdb/sql-map/sqlmap-config.xml"/>
52-
</bean>
49+
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
50+
<property name="dataSource" ref="dataSource"/>
51+
<property name="configLocation" value="classpath:spring/tsdb/sql-map/sqlmap-config.xml"/>
52+
</bean>
5353

5454
<bean id="metaHistoryDAO" class="com.alibaba.otter.canal.parse.inbound.mysql.tsdb.dao.MetaHistoryDAO">
55-
<property name="sqlMapClient" ref="sqlMapClient"/>
55+
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
5656
</bean>
5757

5858
<bean id="metaSnapshotDAO" class="com.alibaba.otter.canal.parse.inbound.mysql.tsdb.dao.MetaSnapshotDAO">
59-
<property name="sqlMapClient" ref="sqlMapClient"/>
59+
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
6060
</bean>
6161
</beans>

deployer/src/main/resources/spring/tsdb/mysql-tsdb.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,16 +48,16 @@
4848
<property name="useUnfairLock" value="true" />
4949
</bean>
5050

51-
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
51+
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
5252
<property name="dataSource" ref="dataSource"/>
5353
<property name="configLocation" value="classpath:spring/tsdb/sql-map/sqlmap-config.xml"/>
5454
</bean>
5555

5656
<bean id="metaHistoryDAO" class="com.alibaba.otter.canal.parse.inbound.mysql.tsdb.dao.MetaHistoryDAO">
57-
<property name="sqlMapClient" ref="sqlMapClient"/>
57+
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
5858
</bean>
5959

6060
<bean id="metaSnapshotDAO" class="com.alibaba.otter.canal.parse.inbound.mysql.tsdb.dao.MetaSnapshotDAO">
61-
<property name="sqlMapClient" ref="sqlMapClient"/>
61+
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
6262
</bean>
6363
</beans>
Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
<?xml version="1.0" encoding="UTF-8" ?>
2-
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
3-
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">
4-
<sqlMapConfig>
5-
<settings useStatementNamespaces="true"/>
6-
<sqlMap resource="spring/tsdb/sql-map/sqlmap_history.xml"/>
7-
<sqlMap resource="spring/tsdb/sql-map/sqlmap_snapshot.xml"/>
8-
</sqlMapConfig>
2+
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
3+
"http://mybatis.org/dtd/mybatis-3-config.dtd">
4+
<configuration>
5+
<typeAliases>
6+
<typeAlias alias="metaHistoryDO" type="com.alibaba.otter.canal.parse.inbound.mysql.tsdb.dao.MetaHistoryDO"/>
7+
<typeAlias alias="metaSnapshotDO" type="com.alibaba.otter.canal.parse.inbound.mysql.tsdb.dao.MetaSnapshotDO"/>
8+
</typeAliases>
9+
10+
<mappers>
11+
<mapper resource="spring/tsdb/sql-map/sqlmap_history.xml"/>
12+
<mapper resource="spring/tsdb/sql-map/sqlmap_snapshot.xml"/>
13+
</mappers>
14+
</configuration>
Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8" ?>
2-
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >
3-
<sqlMap namespace="meta_history">
4-
<typeAlias alias="metaHistoryDO" type="com.alibaba.otter.canal.parse.inbound.mysql.tsdb.dao.MetaHistoryDO"/>
2+
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3+
<mapper namespace="com.alibaba.otter.canal.parse.inbound.mysql.tsdb.dao.MetaHistoryMapper">
54
<sql id="allColumns">
65
<![CDATA[
76
gmt_create,gmt_modified,destination,binlog_file,binlog_offest,binlog_master_id,binlog_timestamp,use_schema,sql_schema,sql_table,sql_text,sql_type,extra
@@ -15,31 +14,31 @@
1514
]]>
1615
</sql>
1716

18-
<select id="findByTimestamp" parameterClass="java.util.Map" resultClass="metaHistoryDO">
17+
<select id="findByTimestamp" parameterType="java.util.Map" resultType="metaHistoryDO">
1918
select
2019
<include refid="allVOColumns"/>
2120
from meta_history a
2221
<![CDATA[
23-
where destination = #destination# and binlog_timestamp >= #snapshotTimestamp# and binlog_timestamp <= #timestamp#
22+
where destination = #{destination} and binlog_timestamp >= #{snapshotTimestamp} and binlog_timestamp <= #{timestamp}
2423
order by binlog_timestamp asc,id asc
2524
]]>
2625
</select>
2726

28-
<insert id="insert" parameterClass="metaHistoryDO">
27+
<insert id="insert" parameterType="metaHistoryDO">
2928
insert into meta_history (<include refid="allColumns"/>)
30-
values(CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,#destination#,#binlogFile#,#binlogOffest#,#binlogMasterId#,#binlogTimestamp#,#useSchema#,#sqlSchema#,#sqlTable#,#sqlText#,#sqlType#,#extra#)
29+
values(CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,#{destination},#{binlogFile},#{binlogOffest},#{binlogMasterId},#{binlogTimestamp},#{useSchema},#{sqlSchema},#{sqlTable},#{sqlText},#{sqlType},#{extra})
3130
</insert>
3231

33-
<delete id="deleteByName" parameterClass="java.util.Map">
32+
<delete id="deleteByName" parameterType="java.util.Map">
3433
delete from meta_history
35-
where destination=#destination#
34+
where destination=#{destination}
3635
</delete>
3736

3837

39-
<delete id="deleteByTimestamp" parameterClass="java.util.Map">
38+
<delete id="deleteByTimestamp" parameterType="java.util.Map">
4039
<![CDATA[
4140
delete from meta_history
42-
where destination=#destination# and binlog_timestamp < #timestamp#
41+
where destination=#{destination} and binlog_timestamp < #{timestamp}
4342
]]>
4443
</delete>
45-
</sqlMap>
44+
</mapper>
Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8" ?>
2-
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >
3-
<sqlMap namespace="meta_snapshot">
4-
<typeAlias alias="metaSnapshotDO" type="com.alibaba.otter.canal.parse.inbound.mysql.tsdb.dao.MetaSnapshotDO"/>
5-
<typeAlias alias="tableMetaSnapshotDO"
6-
type="com.alibaba.middleware.jingwei.biz.dataobject.CanalTableMetaSnapshotDO"/>
2+
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3+
<mapper namespace="com.alibaba.otter.canal.parse.inbound.mysql.tsdb.dao.MetaSnapshotMapper">
74
<sql id="allColumns">
85
<![CDATA[
96
gmt_create,gmt_modified,destination,binlog_file,binlog_offest,binlog_master_id,binlog_timestamp,data,extra
@@ -16,36 +13,36 @@
1613
]]>
1714
</sql>
1815

19-
<select id="findByTimestamp" parameterClass="java.util.Map" resultClass="metaSnapshotDO">
16+
<select id="findByTimestamp" parameterType="java.util.Map" resultType="metaSnapshotDO">
2017
select <include refid="allVOColumns"/>
21-
<![CDATA[
18+
<![CDATA[
2219
from meta_snapshot a
23-
where destination = #destination# and binlog_timestamp < #timestamp#
20+
where destination = #{destination} and binlog_timestamp < #{timestamp}
2421
order by binlog_timestamp desc,id desc
2522
limit 1
2623
]]>
2724
</select>
28-
29-
<insert id="insert" parameterClass="metaSnapshotDO">
25+
26+
<insert id="insert" parameterType="metaSnapshotDO">
3027
insert into meta_snapshot (<include refid="allColumns"/>)
31-
values(CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,#destination#,#binlogFile#,#binlogOffest#,#binlogMasterId#,#binlogTimestamp#,#data#,#extra#)
28+
values(CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,#{destination},#{binlogFile},#{binlogOffest},#{binlogMasterId},#{binlogTimestamp},#{data},#{extra})
3229
</insert>
3330

34-
<update id="update" parameterClass="metaSnapshotDO">
31+
<update id="update" parameterType="metaSnapshotDO">
3532
update meta_snapshot set gmt_modified=now(),
36-
binlog_file=#binlogFile#,binlog_offest=#binlogOffest#,binlog_master_id=#binlogMasterId#,binlog_timestamp=#binlogTimestamp#,data=#data#,extra=#extra#
37-
where destination=#destination# and binlog_timestamp=0
33+
binlog_file=#{binlogFile},binlog_offest=#{binlogOffest},binlog_master_id=#{binlogMasterId},binlog_timestamp=#{binlogTimestamp},data=#{data},extra=#{extra}
34+
where destination=#{destination} and binlog_timestamp=0
3835
</update>
3936

40-
<delete id="deleteByName" parameterClass="java.util.Map">
41-
delete from meta_snapshot
42-
where destination=#destination#
37+
<delete id="deleteByName" parameterType="java.util.Map">
38+
delete from meta_snapshot
39+
where destination=#{destination}
4340
</delete>
4441

45-
<delete id="deleteByTimestamp" parameterClass="java.util.Map">
42+
<delete id="deleteByTimestamp" parameterType="java.util.Map">
4643
<![CDATA[
4744
delete from meta_snapshot
48-
where destination=#destination# and binlog_timestamp < #timestamp# and binlog_timestamp > 0
45+
where destination=#{destination} and binlog_timestamp < #{timestamp} and binlog_timestamp > 0
4946
]]>
5047
</delete>
51-
</sqlMap>
48+
</mapper>

example/src/main/java/com/alibaba/otter/canal/example/SimpleCanalClientTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public static void main(String args[]) {
2222
// 根据ip,直接创建链接,无HA的功能
2323
String destination = "example";
2424
String ip = AddressUtils.getHostIp();
25-
CanalConnector connector = CanalConnectors.newSingleConnector(new InetSocketAddress(ip, 11111),
25+
CanalConnector connector = CanalConnectors.newSingleConnector(new InetSocketAddress("127.0.0.1", 11111),
2626
destination,
2727
"canal",
2828
"canal");

0 commit comments

Comments
 (0)