diff --git a/deployer/src/main/resources/spring/default-instance.xml b/deployer/src/main/resources/spring/default-instance.xml index 1abcd225..ae264eaf 100644 --- a/deployer/src/main/resources/spring/default-instance.xml +++ b/deployer/src/main/resources/spring/default-instance.xml @@ -15,22 +15,22 @@ - + - + - + - + - + - + diff --git a/deployer/src/main/resources/spring/file-instance.xml b/deployer/src/main/resources/spring/file-instance.xml index 01ab4c56..21b943cd 100644 --- a/deployer/src/main/resources/spring/file-instance.xml +++ b/deployer/src/main/resources/spring/file-instance.xml @@ -15,22 +15,22 @@ - + - + - + - + - + - + diff --git a/deployer/src/main/resources/spring/group-instance.xml b/deployer/src/main/resources/spring/group-instance.xml index 1acd03ed..1f0946de 100644 --- a/deployer/src/main/resources/spring/group-instance.xml +++ b/deployer/src/main/resources/spring/group-instance.xml @@ -15,22 +15,22 @@ - + - + - + - + - + - + diff --git a/deployer/src/main/resources/spring/memory-instance.xml b/deployer/src/main/resources/spring/memory-instance.xml index b4d30d48..451ab995 100644 --- a/deployer/src/main/resources/spring/memory-instance.xml +++ b/deployer/src/main/resources/spring/memory-instance.xml @@ -15,22 +15,22 @@ - + - + - + - + - + - + diff --git a/deployer/src/main/resources/spring/tsdb/h2-tsdb.xml b/deployer/src/main/resources/spring/tsdb/h2-tsdb.xml index 6c34241d..29c7a244 100644 --- a/deployer/src/main/resources/spring/tsdb/h2-tsdb.xml +++ b/deployer/src/main/resources/spring/tsdb/h2-tsdb.xml @@ -46,16 +46,16 @@ - - - - + + + + - + - + diff --git a/deployer/src/main/resources/spring/tsdb/mysql-tsdb.xml b/deployer/src/main/resources/spring/tsdb/mysql-tsdb.xml index 87f407b3..72d82bf2 100644 --- a/deployer/src/main/resources/spring/tsdb/mysql-tsdb.xml +++ b/deployer/src/main/resources/spring/tsdb/mysql-tsdb.xml @@ -48,16 +48,16 @@ - + - + - + diff --git a/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap-config.xml b/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap-config.xml index 26690703..c27d4631 100644 --- a/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap-config.xml +++ b/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap-config.xml @@ -1,8 +1,14 @@ - - - - - - + + + + + + + + + + + + diff --git a/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap_history.xml b/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap_history.xml index 58957c28..206c7128 100644 --- a/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap_history.xml +++ b/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap_history.xml @@ -1,7 +1,6 @@ - - - + + - select from meta_history a = #snapshotTimestamp# and binlog_timestamp <= #timestamp# + where destination = #{destination} and binlog_timestamp >= #{snapshotTimestamp} and binlog_timestamp <= #{timestamp} order by binlog_timestamp asc,id asc ]]> - + insert into meta_history () - values(CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,#destination#,#binlogFile#,#binlogOffest#,#binlogMasterId#,#binlogTimestamp#,#useSchema#,#sqlSchema#,#sqlTable#,#sqlText#,#sqlType#,#extra#) + values(CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,#{destination},#{binlogFile},#{binlogOffest},#{binlogMasterId},#{binlogTimestamp},#{useSchema},#{sqlSchema},#{sqlTable},#{sqlText},#{sqlType},#{extra}) - + delete from meta_history - where destination=#destination# + where destination=#{destination} - + - \ No newline at end of file + \ No newline at end of file diff --git a/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap_snapshot.xml b/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap_snapshot.xml index 2ee0f8f4..a4d14663 100644 --- a/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap_snapshot.xml +++ b/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap_snapshot.xml @@ -1,9 +1,6 @@ - - - - + + - select - - - + + insert into meta_snapshot () - values(CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,#destination#,#binlogFile#,#binlogOffest#,#binlogMasterId#,#binlogTimestamp#,#data#,#extra#) + values(CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,#{destination},#{binlogFile},#{binlogOffest},#{binlogMasterId},#{binlogTimestamp},#{data},#{extra}) - + update meta_snapshot set gmt_modified=now(), - binlog_file=#binlogFile#,binlog_offest=#binlogOffest#,binlog_master_id=#binlogMasterId#,binlog_timestamp=#binlogTimestamp#,data=#data#,extra=#extra# - where destination=#destination# and binlog_timestamp=0 + binlog_file=#{binlogFile},binlog_offest=#{binlogOffest},binlog_master_id=#{binlogMasterId},binlog_timestamp=#{binlogTimestamp},data=#{data},extra=#{extra} + where destination=#{destination} and binlog_timestamp=0 - - delete from meta_snapshot - where destination=#destination# + + delete from meta_snapshot + where destination=#{destination} - + 0 + where destination=#{destination} and binlog_timestamp < #{timestamp} and binlog_timestamp > 0 ]]> - \ No newline at end of file + \ No newline at end of file diff --git a/example/src/main/java/com/alibaba/otter/canal/example/SimpleCanalClientTest.java b/example/src/main/java/com/alibaba/otter/canal/example/SimpleCanalClientTest.java index 089161f2..0603d32c 100644 --- a/example/src/main/java/com/alibaba/otter/canal/example/SimpleCanalClientTest.java +++ b/example/src/main/java/com/alibaba/otter/canal/example/SimpleCanalClientTest.java @@ -22,7 +22,7 @@ public class SimpleCanalClientTest extends AbstractCanalClientTest { // 根据ip,直接创建链接,无HA的功能 String destination = "example"; String ip = AddressUtils.getHostIp(); - CanalConnector connector = CanalConnectors.newSingleConnector(new InetSocketAddress(ip, 11111), + CanalConnector connector = CanalConnectors.newSingleConnector(new InetSocketAddress("127.0.0.1", 11111), destination, "canal", "canal"); diff --git a/instance/spring/src/test/resources/spring/default-instance.xml b/instance/spring/src/test/resources/spring/default-instance.xml index 84a50e3d..d86ea04e 100644 --- a/instance/spring/src/test/resources/spring/default-instance.xml +++ b/instance/spring/src/test/resources/spring/default-instance.xml @@ -34,19 +34,19 @@ - + - + - + - + - + diff --git a/instance/spring/src/test/resources/spring/file-instance.xml b/instance/spring/src/test/resources/spring/file-instance.xml index aa717ca3..ccf82931 100644 --- a/instance/spring/src/test/resources/spring/file-instance.xml +++ b/instance/spring/src/test/resources/spring/file-instance.xml @@ -34,19 +34,19 @@ - + - + - + - + - + diff --git a/instance/spring/src/test/resources/spring/group-instance.xml b/instance/spring/src/test/resources/spring/group-instance.xml index 4dea968a..543396b2 100644 --- a/instance/spring/src/test/resources/spring/group-instance.xml +++ b/instance/spring/src/test/resources/spring/group-instance.xml @@ -34,19 +34,19 @@ - + - + - + - + - + diff --git a/instance/spring/src/test/resources/spring/memory-instance.xml b/instance/spring/src/test/resources/spring/memory-instance.xml index f9e98475..f889c334 100644 --- a/instance/spring/src/test/resources/spring/memory-instance.xml +++ b/instance/spring/src/test/resources/spring/memory-instance.xml @@ -34,19 +34,19 @@ - + - + - + - + - + diff --git a/parse/pom.xml b/parse/pom.xml index 437f703b..be2e4b5a 100644 --- a/parse/pom.xml +++ b/parse/pom.xml @@ -54,8 +54,12 @@ mysql-connector-java - org.apache.ibatis - ibatis-sqlmap + org.mybatis + mybatis-spring + + + org.mybatis + mybatis com.h2database diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaBaseDAO.java b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaBaseDAO.java index 968e83b8..6a9bb7d0 100644 --- a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaBaseDAO.java +++ b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaBaseDAO.java @@ -9,14 +9,14 @@ import javax.sql.DataSource; import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; -import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport; +import org.mybatis.spring.support.SqlSessionDaoSupport; /** * @author agapple 2017年10月14日 上午1:05:22 * @since 1.0.25 */ @SuppressWarnings("deprecation") -public class MetaBaseDAO extends SqlMapClientDaoSupport { +public class MetaBaseDAO extends SqlSessionDaoSupport { protected boolean isH2 = false; @@ -24,7 +24,7 @@ public class MetaBaseDAO extends SqlMapClientDaoSupport { Connection conn = null; InputStream input = null; try { - DataSource dataSource = getDataSource(); + DataSource dataSource = getSqlSessionFactory().getConfiguration().getEnvironment().getDataSource(); conn = dataSource.getConnection(); String name = "mysql"; isH2 = isH2(conn); diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaHistoryDAO.java b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaHistoryDAO.java index c214d88f..5ff5d660 100644 --- a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaHistoryDAO.java +++ b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaHistoryDAO.java @@ -15,7 +15,7 @@ import com.google.common.collect.Maps; public class MetaHistoryDAO extends MetaBaseDAO { public Long insert(MetaHistoryDO metaDO) { - return (Long) getSqlMapClientTemplate().insert("meta_history.insert", metaDO); + return getSqlSession().getMapper(MetaHistoryMapper.class).insert(metaDO); } public List findByTimestamp(String destination, Long snapshotTimestamp, Long timestamp) { @@ -23,13 +23,13 @@ public class MetaHistoryDAO extends MetaBaseDAO { params.put("destination", destination); params.put("snapshotTimestamp", snapshotTimestamp == null ? 0L : snapshotTimestamp); params.put("timestamp", timestamp == null ? 0L : timestamp); - return (List) getSqlMapClientTemplate().queryForList("meta_history.findByTimestamp", params); + return getSqlSession().getMapper(MetaHistoryMapper.class).findByTimestamp(params); } public Integer deleteByName(String destination) { HashMap params = Maps.newHashMapWithExpectedSize(2); params.put("destination", destination); - return getSqlMapClientTemplate().delete("meta_history.deleteByName", params); + return getSqlSession().getMapper(MetaHistoryMapper.class).deleteByName(params); } /** @@ -40,7 +40,7 @@ public class MetaHistoryDAO extends MetaBaseDAO { long timestamp = System.currentTimeMillis() - interval * 1000; params.put("timestamp", timestamp); params.put("destination", destination); - return getSqlMapClientTemplate().delete("meta_history.deleteByTimestamp", params); + return getSqlSession().getMapper(MetaHistoryMapper.class).deleteByTimestamp(params); } protected void initDao() throws Exception { diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaHistoryMapper.java b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaHistoryMapper.java new file mode 100644 index 00000000..f276b5fb --- /dev/null +++ b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaHistoryMapper.java @@ -0,0 +1,15 @@ +package com.alibaba.otter.canal.parse.inbound.mysql.tsdb.dao; + +import java.util.List; +import java.util.Map; + +public interface MetaHistoryMapper { + + List findByTimestamp(Map map); + + long insert(MetaHistoryDO metaHistoryDO); + + int deleteByName(Map map); + + int deleteByTimestamp(Map map); +} diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaSnapshotDAO.java b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaSnapshotDAO.java index ff79b107..259a716e 100644 --- a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaSnapshotDAO.java +++ b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaSnapshotDAO.java @@ -6,7 +6,7 @@ import com.google.common.collect.Maps; /** * canal数据的存储 - * + * * @author wanshao 2017年7月27日 下午10:51:55 * @since 3.2.5 */ @@ -14,25 +14,24 @@ import com.google.common.collect.Maps; public class MetaSnapshotDAO extends MetaBaseDAO { public Long insert(MetaSnapshotDO snapshotDO) { - return (Long) getSqlMapClientTemplate().insert("meta_snapshot.insert", snapshotDO); + return getSqlSession().getMapper(MetaSnapshotMapper.class).insert(snapshotDO); } public Long update(MetaSnapshotDO snapshotDO) { - return (Long) getSqlMapClientTemplate().insert("meta_snapshot.update", snapshotDO); + return getSqlSession().getMapper(MetaSnapshotMapper.class).update(snapshotDO); } public MetaSnapshotDO findByTimestamp(String destination, Long timestamp) { HashMap params = Maps.newHashMapWithExpectedSize(2); params.put("timestamp", timestamp == null ? 0L : timestamp); params.put("destination", destination); - - return (MetaSnapshotDO) getSqlMapClientTemplate().queryForObject("meta_snapshot.findByTimestamp", params); + return getSqlSession().getMapper(MetaSnapshotMapper.class).findByTimestamp(params); } public Integer deleteByName(String destination) { HashMap params = Maps.newHashMapWithExpectedSize(2); params.put("destination", destination); - return getSqlMapClientTemplate().delete("meta_snapshot.deleteByName", params); + return getSqlSession().getMapper(MetaSnapshotMapper.class).deleteByName(params); } /** @@ -43,7 +42,7 @@ public class MetaSnapshotDAO extends MetaBaseDAO { long timestamp = System.currentTimeMillis() - interval * 1000; params.put("timestamp", timestamp); params.put("destination", destination); - return getSqlMapClientTemplate().delete("meta_snapshot.deleteByTimestamp", params); + return getSqlSession().getMapper(MetaSnapshotMapper.class).deleteByTimestamp(params); } protected void initDao() throws Exception { diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaSnapshotMapper.java b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaSnapshotMapper.java new file mode 100644 index 00000000..4b1c41fb --- /dev/null +++ b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaSnapshotMapper.java @@ -0,0 +1,16 @@ +package com.alibaba.otter.canal.parse.inbound.mysql.tsdb.dao; + +import java.util.Map; + +public interface MetaSnapshotMapper { + + MetaSnapshotDO findByTimestamp(Map map); + + long insert(MetaSnapshotDO metaSnapshotDO); + + long update(MetaSnapshotDO metaSnapshotDO); + + int deleteByName(Map map); + + int deleteByTimestamp(Map map); +} diff --git a/parse/src/test/resources/tsdb/derby-tsdb.xml b/parse/src/test/resources/tsdb/derby-tsdb.xml index 4ce4dcbf..e1459daa 100644 --- a/parse/src/test/resources/tsdb/derby-tsdb.xml +++ b/parse/src/test/resources/tsdb/derby-tsdb.xml @@ -29,16 +29,16 @@ - + - + - + diff --git a/parse/src/test/resources/tsdb/h2-tsdb.xml b/parse/src/test/resources/tsdb/h2-tsdb.xml index dcb6bc47..aaeb0d3a 100644 --- a/parse/src/test/resources/tsdb/h2-tsdb.xml +++ b/parse/src/test/resources/tsdb/h2-tsdb.xml @@ -29,16 +29,16 @@ - + - + - + diff --git a/parse/src/test/resources/tsdb/mysql-tsdb.xml b/parse/src/test/resources/tsdb/mysql-tsdb.xml index 44f97203..6d53197c 100644 --- a/parse/src/test/resources/tsdb/mysql-tsdb.xml +++ b/parse/src/test/resources/tsdb/mysql-tsdb.xml @@ -32,16 +32,16 @@ - + - + - + diff --git a/parse/src/test/resources/tsdb/sql-map/sqlmap-config.xml b/parse/src/test/resources/tsdb/sql-map/sqlmap-config.xml index 2485a35b..3b6f665d 100644 --- a/parse/src/test/resources/tsdb/sql-map/sqlmap-config.xml +++ b/parse/src/test/resources/tsdb/sql-map/sqlmap-config.xml @@ -1,8 +1,14 @@ - - - - - - + + + + + + + + + + + + diff --git a/parse/src/test/resources/tsdb/sql-map/sqlmap_history.xml b/parse/src/test/resources/tsdb/sql-map/sqlmap_history.xml index 58957c28..f0a78099 100644 --- a/parse/src/test/resources/tsdb/sql-map/sqlmap_history.xml +++ b/parse/src/test/resources/tsdb/sql-map/sqlmap_history.xml @@ -1,7 +1,6 @@ - - - + + - select from meta_history a = #snapshotTimestamp# and binlog_timestamp <= #timestamp# + where destination = #{destination} and binlog_timestamp >= #{snapshotTimestamp} and binlog_timestamp <= #{timestamp} order by binlog_timestamp asc,id asc ]]> - + insert into meta_history () - values(CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,#destination#,#binlogFile#,#binlogOffest#,#binlogMasterId#,#binlogTimestamp#,#useSchema#,#sqlSchema#,#sqlTable#,#sqlText#,#sqlType#,#extra#) + values(CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,#{destination},#{binlogFile},#{binlogOffest},#{binlogMasterId},#{binlogTimestamp},#{useSchema},#{sqlSchema},#{sqlTable},#{sqlText},#{sqlType},#{extra}) - - - delete from meta_history - where destination=#destination# + + + delete from meta_history + where destination=#{destination} - + - \ No newline at end of file + \ No newline at end of file diff --git a/parse/src/test/resources/tsdb/sql-map/sqlmap_snapshot.xml b/parse/src/test/resources/tsdb/sql-map/sqlmap_snapshot.xml index 60827c6c..e4813503 100644 --- a/parse/src/test/resources/tsdb/sql-map/sqlmap_snapshot.xml +++ b/parse/src/test/resources/tsdb/sql-map/sqlmap_snapshot.xml @@ -1,9 +1,6 @@ - - - - + + - - - - + insert into meta_snapshot () - values(CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,#destination#,#binlogFile#,#binlogOffest#,#binlogMasterId#,#binlogTimestamp#,#data#,#extra#) + values(CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,#{destination},#{binlogFile},#{binlogOffest},#{binlogMasterId},#{binlogTimestamp},#{data},#{extra}) - + update meta_snapshot set gmt_modified=now(), - binlog_file=#binlogFile#,binlog_offest=#binlogOffest#,binlog_master_id=#binlogMasterId#,binlog_timestamp=#binlogTimestamp#,data=#data#,extra=#extra# - where destination=#destination# and binlog_timestamp=0 + binlog_file=#{binlogFile},binlog_offest=#{binlogOffest},binlog_master_id=#{binlogMasterId},binlog_timestamp=#{binlogTimestamp},data=#{data},extra=#{extra} + where destination=#{destination} and binlog_timestamp=0 - - delete from meta_snapshot - where destination=#destination# + + delete from meta_snapshot + where destination=#{destination} - + 0 + where destination=#{destination} and binlog_timestamp < #{timestamp} and binlog_timestamp > 0 ]]> - \ No newline at end of file + \ No newline at end of file diff --git a/pom.xml b/pom.xml index b06b033f..3805c8d3 100644 --- a/pom.xml +++ b/pom.xml @@ -48,7 +48,7 @@ central - http://repo1.maven.org/maven2 + https://repo1.maven.org/maven2 true @@ -99,7 +99,7 @@ 1.8 UTF-8 true - 3.2.18.RELEASE + 5.0.5.RELEASE 0.8.3 2.22.1 -server -Xms512m -Xmx1024m -Dfile.encoding=UTF-8 @@ -253,9 +253,14 @@ 3.6.1 - org.apache.ibatis - ibatis-sqlmap - 2.3.4.726 + org.mybatis + mybatis-spring + 2.0.4 + + + org.mybatis + mybatis + 3.5.4 com.alibaba