mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
Merge pull request #291 from MarkLinHz/master
重构LogPositionManager并适配XML配置
This commit is contained in:
@@ -2,13 +2,13 @@ package com.alibaba.otter.canal.parse.inbound.group;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
|
||||
import com.alibaba.otter.canal.parse.index.AbstractLogPositionManager;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.alibaba.otter.canal.parse.exception.CanalParseException;
|
||||
import com.alibaba.otter.canal.parse.inbound.AbstractBinlogParser;
|
||||
import com.alibaba.otter.canal.parse.inbound.BinlogParser;
|
||||
import com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser;
|
||||
import com.alibaba.otter.canal.parse.stub.AbstractCanalLogPositionManager;
|
||||
import com.alibaba.otter.canal.parse.support.AuthenticationInfo;
|
||||
import com.alibaba.otter.canal.protocol.CanalEntry.Entry;
|
||||
import com.alibaba.otter.canal.protocol.position.EntryPosition;
|
||||
@@ -70,15 +70,16 @@ public class GroupEventPaserTest {
|
||||
mysqlEventPaser.setMasterPosition(defaultPosition);
|
||||
mysqlEventPaser.setBinlogParser(buildParser(buildAuthentication()));
|
||||
mysqlEventPaser.setEventSink(new EntryEventSink());
|
||||
mysqlEventPaser.setLogPositionManager(new AbstractCanalLogPositionManager() {
|
||||
|
||||
public void persistLogPosition(String destination, LogPosition logPosition) {
|
||||
// System.out.println(logPosition);
|
||||
}
|
||||
|
||||
mysqlEventPaser.setLogPositionManager(new AbstractLogPositionManager() {
|
||||
@Override
|
||||
public LogPosition getLatestIndexBy(String destination) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void persistLogPosition(String destination, LogPosition logPosition) throws CanalParseException {
|
||||
System.out.println(logPosition);
|
||||
}
|
||||
});
|
||||
return mysqlEventPaser;
|
||||
}
|
||||
|
||||
@@ -4,11 +4,12 @@ import java.net.InetSocketAddress;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.otter.canal.parse.exception.CanalParseException;
|
||||
import com.alibaba.otter.canal.parse.index.AbstractLogPositionManager;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.alibaba.otter.canal.parse.stub.AbstractCanalEventSinkTest;
|
||||
import com.alibaba.otter.canal.parse.stub.AbstractCanalLogPositionManager;
|
||||
import com.alibaba.otter.canal.parse.support.AuthenticationInfo;
|
||||
import com.alibaba.otter.canal.protocol.CanalEntry.Column;
|
||||
import com.alibaba.otter.canal.protocol.CanalEntry.Entry;
|
||||
@@ -80,17 +81,17 @@ public class LocalBinlogDumpTest {
|
||||
}
|
||||
|
||||
});
|
||||
controller.setLogPositionManager(new AbstractCanalLogPositionManager() {
|
||||
controller.setLogPositionManager(new AbstractLogPositionManager() {
|
||||
@Override
|
||||
public LogPosition getLatestIndexBy(String destination) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void persistLogPosition(String destination, LogPosition logPosition) {
|
||||
System.out.println(logPosition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public LogPosition getLatestIndexBy(String destination) {
|
||||
return null;
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public void persistLogPosition(String destination, LogPosition logPosition) throws CanalParseException {
|
||||
System.out.println(logPosition);
|
||||
}
|
||||
});
|
||||
|
||||
controller.start();
|
||||
|
||||
|
||||
@@ -7,13 +7,13 @@ import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
|
||||
import com.alibaba.otter.canal.parse.index.AbstractLogPositionManager;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.alibaba.otter.canal.parse.helper.TimeoutChecker;
|
||||
import com.alibaba.otter.canal.parse.stub.AbstractCanalEventSinkTest;
|
||||
import com.alibaba.otter.canal.parse.stub.AbstractCanalLogPositionManager;
|
||||
import com.alibaba.otter.canal.parse.support.AuthenticationInfo;
|
||||
import com.alibaba.otter.canal.protocol.CanalEntry.Entry;
|
||||
import com.alibaba.otter.canal.protocol.position.EntryPosition;
|
||||
@@ -70,7 +70,7 @@ public class LocalBinlogEventParserTest {
|
||||
|
||||
});
|
||||
|
||||
controller.setLogPositionManager(new AbstractCanalLogPositionManager() {
|
||||
controller.setLogPositionManager(new AbstractLogPositionManager() {
|
||||
|
||||
public void persistLogPosition(String destination, LogPosition logPosition) {
|
||||
System.out.println(logPosition);
|
||||
@@ -133,7 +133,7 @@ public class LocalBinlogEventParserTest {
|
||||
}
|
||||
});
|
||||
|
||||
controller.setLogPositionManager(new AbstractCanalLogPositionManager() {
|
||||
controller.setLogPositionManager(new AbstractLogPositionManager() {
|
||||
|
||||
public void persistLogPosition(String destination, LogPosition logPosition) {
|
||||
System.out.println(logPosition);
|
||||
@@ -198,7 +198,7 @@ public class LocalBinlogEventParserTest {
|
||||
}
|
||||
});
|
||||
|
||||
controller.setLogPositionManager(new AbstractCanalLogPositionManager() {
|
||||
controller.setLogPositionManager(new AbstractLogPositionManager() {
|
||||
|
||||
public void persistLogPosition(String destination, LogPosition logPosition) {
|
||||
System.out.println(logPosition);
|
||||
|
||||
@@ -4,11 +4,12 @@ import java.net.InetSocketAddress;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.otter.canal.parse.exception.CanalParseException;
|
||||
import com.alibaba.otter.canal.parse.index.AbstractLogPositionManager;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.alibaba.otter.canal.parse.stub.AbstractCanalEventSinkTest;
|
||||
import com.alibaba.otter.canal.parse.stub.AbstractCanalLogPositionManager;
|
||||
import com.alibaba.otter.canal.parse.support.AuthenticationInfo;
|
||||
import com.alibaba.otter.canal.protocol.CanalEntry.Column;
|
||||
import com.alibaba.otter.canal.protocol.CanalEntry.Entry;
|
||||
@@ -83,16 +84,16 @@ public class MysqlDumpTest {
|
||||
}
|
||||
|
||||
});
|
||||
controller.setLogPositionManager(new AbstractCanalLogPositionManager() {
|
||||
|
||||
public void persistLogPosition(String destination, LogPosition logPosition) {
|
||||
System.out.println(logPosition);
|
||||
}
|
||||
|
||||
controller.setLogPositionManager(new AbstractLogPositionManager() {
|
||||
@Override
|
||||
public LogPosition getLatestIndexBy(String destination) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void persistLogPosition(String destination, LogPosition logPosition) throws CanalParseException {
|
||||
System.out.println(logPosition);
|
||||
}
|
||||
});
|
||||
|
||||
controller.start();
|
||||
|
||||
@@ -5,12 +5,13 @@ import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
|
||||
import com.alibaba.otter.canal.parse.exception.CanalParseException;
|
||||
import com.alibaba.otter.canal.parse.index.AbstractLogPositionManager;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.alibaba.otter.canal.parse.helper.TimeoutChecker;
|
||||
import com.alibaba.otter.canal.parse.stub.AbstractCanalEventSinkTest;
|
||||
import com.alibaba.otter.canal.parse.stub.AbstractCanalLogPositionManager;
|
||||
import com.alibaba.otter.canal.parse.support.AuthenticationInfo;
|
||||
import com.alibaba.otter.canal.protocol.CanalEntry.Entry;
|
||||
import com.alibaba.otter.canal.protocol.CanalEntry.EntryType;
|
||||
@@ -67,16 +68,16 @@ public class MysqlEventParserTest {
|
||||
}
|
||||
});
|
||||
|
||||
controller.setLogPositionManager(new AbstractCanalLogPositionManager() {
|
||||
|
||||
public void persistLogPosition(String destination, LogPosition logPosition) {
|
||||
System.out.println(logPosition);
|
||||
}
|
||||
|
||||
controller.setLogPositionManager(new AbstractLogPositionManager() {
|
||||
@Override
|
||||
public LogPosition getLatestIndexBy(String destination) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void persistLogPosition(String destination, LogPosition logPosition) throws CanalParseException {
|
||||
System.out.println(logPosition);
|
||||
}
|
||||
});
|
||||
|
||||
controller.start();
|
||||
@@ -136,7 +137,7 @@ public class MysqlEventParserTest {
|
||||
}
|
||||
});
|
||||
|
||||
controller.setLogPositionManager(new AbstractCanalLogPositionManager() {
|
||||
controller.setLogPositionManager(new AbstractLogPositionManager() {
|
||||
|
||||
public void persistLogPosition(String destination, LogPosition logPosition) {
|
||||
System.out.println(logPosition);
|
||||
@@ -205,7 +206,7 @@ public class MysqlEventParserTest {
|
||||
}
|
||||
});
|
||||
|
||||
controller.setLogPositionManager(new AbstractCanalLogPositionManager() {
|
||||
controller.setLogPositionManager(new AbstractLogPositionManager() {
|
||||
|
||||
public void persistLogPosition(String destination, LogPosition logPosition) {
|
||||
System.out.println(logPosition);
|
||||
@@ -281,7 +282,7 @@ public class MysqlEventParserTest {
|
||||
}
|
||||
});
|
||||
|
||||
controller.setLogPositionManager(new AbstractCanalLogPositionManager() {
|
||||
controller.setLogPositionManager(new AbstractLogPositionManager() {
|
||||
|
||||
public void persistLogPosition(String destination, LogPosition logPosition) {
|
||||
System.out.println(logPosition);
|
||||
|
||||
@@ -26,17 +26,15 @@ public class FileMixedLogPositionManagerTest extends AbstractLogPositionManagerT
|
||||
|
||||
@Test
|
||||
public void testAll() {
|
||||
FileMixedLogPositionManager logPositionManager = new FileMixedLogPositionManager();
|
||||
logPositionManager.setDataDir(dataDir);
|
||||
logPositionManager.setPeriod(100);
|
||||
MemoryLogPositionManager memoryLogPositionManager = new MemoryLogPositionManager();
|
||||
|
||||
FileMixedLogPositionManager logPositionManager = new FileMixedLogPositionManager(dataDir, 1000, memoryLogPositionManager);
|
||||
logPositionManager.start();
|
||||
|
||||
LogPosition position2 = doTest(logPositionManager);
|
||||
sleep(1500);
|
||||
|
||||
FileMixedLogPositionManager logPositionManager2 = new FileMixedLogPositionManager();
|
||||
logPositionManager2.setDataDir(dataDir);
|
||||
logPositionManager2.setPeriod(100);
|
||||
FileMixedLogPositionManager logPositionManager2 = new FileMixedLogPositionManager(dataDir, 1000, memoryLogPositionManager);
|
||||
logPositionManager2.start();
|
||||
|
||||
LogPosition getPosition2 = logPositionManager2.getLatestIndexBy(destination);
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
package com.alibaba.otter.canal.parse.stub;
|
||||
|
||||
import com.alibaba.otter.canal.common.AbstractCanalLifeCycle;
|
||||
import com.alibaba.otter.canal.parse.index.CanalLogPositionManager;
|
||||
|
||||
public abstract class AbstractCanalLogPositionManager extends AbstractCanalLifeCycle implements CanalLogPositionManager {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user