Browse Source

修复系统变量Date引用包

Signed-off-by: AE86 <836391306@qq.com>
AE86 1 year ago
parent
commit
39bf5005d9

+ 5 - 1
dbsyncer-connector/src/main/java/org/dbsyncer/connector/schema/VarcharValueMapper.java

@@ -5,10 +5,10 @@ import org.dbsyncer.common.util.DateFormatUtil;
 import org.dbsyncer.connector.AbstractValueMapper;
 import org.dbsyncer.connector.ConnectorException;
 
+import java.sql.Date;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.Date;
 
 /**
  * @author AE86
@@ -35,6 +35,10 @@ public class VarcharValueMapper extends AbstractValueMapper<String> {
             return DateFormatUtil.dateToString((Date) val);
         }
 
+        if (val instanceof java.util.Date) {
+            return DateFormatUtil.dateToString((java.util.Date) val);
+        }
+
         throw new ConnectorException(String.format("%s can not find type [%s], val [%s]", getClass().getSimpleName(), val.getClass(), val));
     }
 }

+ 1 - 1
dbsyncer-listener/src/main/java/org/dbsyncer/listener/quartz/AbstractQuartzExtractor.java

@@ -82,7 +82,7 @@ public abstract class AbstractQuartzExtractor extends AbstractExtractor implemen
             }
         } catch (Exception e) {
             errorEvent(e);
-            logger.error(e.getMessage());
+            logger.error(e.getMessage(), e);
         } finally {
             if (locked) {
                 taskLock.unlock();

+ 4 - 4
dbsyncer-listener/src/main/java/org/dbsyncer/listener/quartz/QuartzFilter.java

@@ -1,13 +1,13 @@
 package org.dbsyncer.listener.quartz;
 
-public interface QuartzFilter {
+public interface QuartzFilter<T> {
 
     /**
      * 获取默认参数
      *
      * @return
      */
-    Object getObject();
+    T getObject();
 
     /**
      * 反解参数
@@ -15,7 +15,7 @@ public interface QuartzFilter {
      * @param s
      * @return
      */
-    Object getObject(String s);
+    T getObject(String s);
 
     /**
      * 转String类型
@@ -23,7 +23,7 @@ public interface QuartzFilter {
      * @param value
      * @return
      */
-    String toString(Object value);
+    String toString(T value);
 
     /**
      * 是否开始字段

+ 8 - 8
dbsyncer-listener/src/main/java/org/dbsyncer/listener/quartz/filter/DateFilter.java

@@ -4,9 +4,9 @@ import org.dbsyncer.common.util.DateFormatUtil;
 import org.dbsyncer.listener.quartz.QuartzFilter;
 
 import java.sql.Date;
-import java.time.LocalDate;
+import java.time.Instant;
 
-public class DateFilter implements QuartzFilter {
+public class DateFilter implements QuartzFilter<Date> {
 
     private boolean begin;
 
@@ -15,22 +15,22 @@ public class DateFilter implements QuartzFilter {
     }
 
     @Override
-    public Object getObject() {
-        return Date.valueOf(LocalDate.now());
+    public Date getObject() {
+        return new Date(Instant.now().toEpochMilli());
     }
 
     @Override
-    public Object getObject(String s) {
+    public Date getObject(String s) {
         return DateFormatUtil.stringToDate(s);
     }
 
     @Override
-    public String toString(Object value) {
-        return DateFormatUtil.dateToString((Date) value);
+    public String toString(Date value) {
+        return DateFormatUtil.dateToString(value);
     }
 
     @Override
     public boolean begin() {
         return begin;
     }
-}
+}

+ 6 - 7
dbsyncer-listener/src/main/java/org/dbsyncer/listener/quartz/filter/TimestampFilter.java

@@ -5,7 +5,7 @@ import org.dbsyncer.listener.quartz.QuartzFilter;
 import java.sql.Timestamp;
 import java.time.Instant;
 
-public class TimestampFilter implements QuartzFilter {
+public class TimestampFilter implements QuartzFilter<Timestamp> {
 
     private boolean begin;
 
@@ -14,23 +14,22 @@ public class TimestampFilter implements QuartzFilter {
     }
 
     @Override
-    public Object getObject() {
+    public Timestamp getObject() {
         return new Timestamp(Instant.now().toEpochMilli());
     }
 
     @Override
-    public Object getObject(String s) {
+    public Timestamp getObject(String s) {
         return new Timestamp(Long.parseLong(s));
     }
 
     @Override
-    public String toString(Object value) {
-        Timestamp ts = (Timestamp) value;
-        return String.valueOf(ts.getTime());
+    public String toString(Timestamp value) {
+        return String.valueOf(value.getTime());
     }
 
     @Override
     public boolean begin() {
         return begin;
     }
-}
+}

+ 7 - 7
dbsyncer-listener/src/main/java/org/dbsyncer/listener/quartz/filter/YesDateFilter.java

@@ -7,7 +7,7 @@ import java.sql.Date;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 
-public class YesDateFilter implements QuartzFilter {
+public class YesDateFilter implements QuartzFilter<Date> {
 
     private boolean begin;
 
@@ -16,7 +16,7 @@ public class YesDateFilter implements QuartzFilter {
     }
 
     @Override
-    public Object getObject() {
+    public Date getObject() {
         LocalDateTime localDateTime;
         if (!begin) {
             // 2022-08-02 23:59:59
@@ -25,17 +25,17 @@ public class YesDateFilter implements QuartzFilter {
             // 2022-08-02 00:00:00
             localDateTime = LocalDateTime.now().minusDays(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
         }
-        return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
+        return new Date(localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli());
     }
 
     @Override
-    public Object getObject(String s) {
+    public Date getObject(String s) {
         return DateFormatUtil.stringToDate(s);
     }
 
     @Override
-    public String toString(Object value) {
-        return DateFormatUtil.dateToString((Date) value);
+    public String toString(Date value) {
+        return DateFormatUtil.dateToString(value);
     }
 
     @Override
@@ -43,4 +43,4 @@ public class YesDateFilter implements QuartzFilter {
         return begin;
     }
 
-}
+}

+ 5 - 6
dbsyncer-listener/src/main/java/org/dbsyncer/listener/quartz/filter/YesTimestampFilter.java

@@ -5,7 +5,7 @@ import org.dbsyncer.listener.quartz.QuartzFilter;
 import java.sql.Timestamp;
 import java.time.LocalDateTime;
 
-public class YesTimestampFilter implements QuartzFilter {
+public class YesTimestampFilter implements QuartzFilter<Timestamp> {
 
     private boolean begin;
 
@@ -14,7 +14,7 @@ public class YesTimestampFilter implements QuartzFilter {
     }
 
     @Override
-    public Object getObject() {
+    public Timestamp getObject() {
         if (begin) {
             // 2022-08-02 00:00:00
             return Timestamp.valueOf(LocalDateTime.now().minusDays(1).withHour(0).withMinute(0).withSecond(0).withNano(0));
@@ -24,14 +24,13 @@ public class YesTimestampFilter implements QuartzFilter {
     }
 
     @Override
-    public Object getObject(String s) {
+    public Timestamp getObject(String s) {
         return new Timestamp(Long.parseLong(s));
     }
 
     @Override
-    public String toString(Object value) {
-        Timestamp ts = (Timestamp) value;
-        return String.valueOf(ts.getTime());
+    public String toString(Timestamp value) {
+        return String.valueOf(value.getTime());
     }
 
     @Override

+ 1 - 2
dbsyncer-parser/src/main/java/org/dbsyncer/parser/convert/handler/TimestampToDateHandler.java

@@ -4,7 +4,6 @@ import org.dbsyncer.parser.convert.AbstractHandler;
 
 import java.sql.Date;
 import java.sql.Timestamp;
-import java.time.ZoneId;
 
 /**
  * 时间戳转日期
@@ -19,7 +18,7 @@ public class TimestampToDateHandler extends AbstractHandler {
     public Object convert(String args, Object value) {
         if (value instanceof Timestamp) {
             Timestamp t = (Timestamp) value;
-            value = Date.from(t.toLocalDateTime().atZone(ZoneId.systemDefault()).toInstant());
+            value = new Date(t.getTime());
         }
         return value;
     }