diff --git a/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/config/Config.java b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/config/Config.java new file mode 100644 index 00000000..7f856a9a --- /dev/null +++ b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/config/Config.java @@ -0,0 +1,15 @@ +package com.alibaba.otter.canal.admin.config; + +import org.apache.commons.dbutils.QueryRunner; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import javax.sql.DataSource; + +@Configuration +public class Config { + @Bean + public QueryRunner queryRunner(DataSource dataSource) { + return new QueryRunner(dataSource); + } +} diff --git a/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/dao/CanalConfigDao.java b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/dao/CanalConfigDao.java index ca4ae033..24ceb05d 100644 --- a/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/dao/CanalConfigDao.java +++ b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/dao/CanalConfigDao.java @@ -1,43 +1,40 @@ package com.alibaba.otter.canal.admin.dao; import com.alibaba.otter.canal.admin.model.CanalConfig; -import com.alibaba.otter.canal.admin.model.Person; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanHandler; -import org.javalite.activejdbc.Base; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Repository; import javax.annotation.PostConstruct; -import javax.sql.DataSource; import java.sql.SQLException; +import java.util.Date; @Repository public class CanalConfigDao { @Autowired - private DataSource dataSource; -// public void open() { -// Base.open(dataSource); -// } + private QueryRunner runner; @PostConstruct public void init() { -// CanalConfig canalConfig = new CanalConfig(); -// canalConfig.setId(1L); - UpdateContent(1L); - } - - public void UpdateContent(Long id) { - QueryRunner runner = new QueryRunner(dataSource); try { - CanalConfig canalConfig = runner.query("select * from canal_config where id=1", new BeanHandler<>(CanalConfig.class)); + CanalConfig canalConfig = findById(1L); canalConfig = canalConfig; + canalConfig.setContent(canalConfig.getContent()+" xxx"); + updateContent(canalConfig); } catch (SQLException e) { e.printStackTrace(); } -// Base.open(dataSource); -// Person.where("id=?", id); -// Base.close(); + } + + public CanalConfig findById(Long id) throws SQLException { + String sql = "select id,name,content,modified_time as modifiedTime" + + " from canal_config where id=?"; + return runner.query(sql, new BeanHandler<>(CanalConfig.class), id); + } + + public void updateContent(CanalConfig canalConfig) throws SQLException { + String sql = "update canal_config set content=?, modified_time=? where id=?"; + runner.update(sql, canalConfig.getContent(), new Date(), canalConfig.getId()); } } diff --git a/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/model/CanalConfig.java b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/model/CanalConfig.java index 8ecac1da..a3855de3 100644 --- a/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/model/CanalConfig.java +++ b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/model/CanalConfig.java @@ -10,7 +10,7 @@ public class CanalConfig { private Long id; private String name; private String content; - private Timestamp modifiedTime; + private Date modifiedTime; public Long getId() { return id; @@ -36,11 +36,11 @@ public class CanalConfig { this.content = content; } - public Timestamp getModifiedTime() { + public Date getModifiedTime() { return modifiedTime; } - public void setModifiedTime(Timestamp modifiedTime) { + public void setModifiedTime(Date modifiedTime) { this.modifiedTime = modifiedTime; } } diff --git a/pom.xml b/pom.xml index 5f875209..47db657c 100644 --- a/pom.xml +++ b/pom.xml @@ -126,6 +126,7 @@ example prometheus client-adapter + canal-admin @@ -253,7 +254,7 @@ com.alibaba.fastsql fastsql - 2.0.0_preview_914 + 2.0.0_preview_896 com.alibaba diff --git a/server/src/main/java/com/alibaba/otter/canal/kafka/CanalKafkaProducer.java b/server/src/main/java/com/alibaba/otter/canal/kafka/CanalKafkaProducer.java index 99f2010a..5f1c00a2 100644 --- a/server/src/main/java/com/alibaba/otter/canal/kafka/CanalKafkaProducer.java +++ b/server/src/main/java/com/alibaba/otter/canal/kafka/CanalKafkaProducer.java @@ -133,7 +133,7 @@ public class CanalKafkaProducer implements CanalMQProducer { canalDestination.getDynamicTopic()); for (Map.Entry entry : messageMap.entrySet()) { - String topicName = entry.getKey().replace('.', '_'); + String topicName = entry.getKey(); //.replace('.', '_'); Message messageSub = entry.getValue(); if (logger.isDebugEnabled()) { logger.debug("## Send message to kafka topic: " + topicName);