Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
schbrain-canal
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
framework
schbrain-canal
Commits
fc159e48
Commit
fc159e48
authored
Jun 22, 2022
by
zhuyunfeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
e452e3cc
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
196 additions
and
14 deletions
+196
-14
pom.xml
pom.xml
+1
-1
schbrain-canal-client/src/main/java/com/schbrain/canal/client/core/SimpleCanalClient.java
...ava/com/schbrain/canal/client/core/SimpleCanalClient.java
+2
-0
schbrain-canal-client/src/main/java/com/schbrain/canal/client/event/MapCanalEvent.java
...n/java/com/schbrain/canal/client/event/MapCanalEvent.java
+49
-0
schbrain-canal-client/src/main/java/com/schbrain/canal/client/event/SimpleMapCanalEvent.java
.../com/schbrain/canal/client/event/SimpleMapCanalEvent.java
+27
-0
schbrain-canal-client/src/main/java/com/schbrain/canal/client/utils/DataUtil.java
...c/main/java/com/schbrain/canal/client/utils/DataUtil.java
+25
-0
schbrain-canal-client/src/main/java/com/schbrain/canal/client/utils/MessageUtil.java
...ain/java/com/schbrain/canal/client/utils/MessageUtil.java
+1
-2
schbrain-canal-web/src/main/java/com/schbrain/web/MyCanalEvent2.java
...nal-web/src/main/java/com/schbrain/web/MyCanalEvent2.java
+2
-2
schbrain-canal-web/src/main/java/com/schbrain/web/MyCanalEvent3.java
...nal-web/src/main/java/com/schbrain/web/MyCanalEvent3.java
+1
-1
schbrain-canal-web/src/main/java/com/schbrain/web/MyCanalEvent4.java
...nal-web/src/main/java/com/schbrain/web/MyCanalEvent4.java
+2
-2
schbrain-canal-web/src/main/java/com/schbrain/web/MyCanalEvent5.java
...nal-web/src/main/java/com/schbrain/web/MyCanalEvent5.java
+2
-2
schbrain-canal-web/src/main/java/com/schbrain/web/MyCanalEvent6.java
...nal-web/src/main/java/com/schbrain/web/MyCanalEvent6.java
+2
-2
schbrain-canal-web/src/main/java/com/schbrain/web/MyCanalEvent7.java
...nal-web/src/main/java/com/schbrain/web/MyCanalEvent7.java
+2
-2
schbrain-canal-web/src/main/java/com/schbrain/web/MyCanalEvent8.java
...nal-web/src/main/java/com/schbrain/web/MyCanalEvent8.java
+40
-0
schbrain-canal-web/src/main/java/com/schbrain/web/MyCanalEvent9.java
...nal-web/src/main/java/com/schbrain/web/MyCanalEvent9.java
+40
-0
No files found.
pom.xml
View file @
fc159e48
...
@@ -17,7 +17,7 @@
...
@@ -17,7 +17,7 @@
<name>
schbrain-canal
</name>
<name>
schbrain-canal
</name>
<properties>
<properties>
<revision>
1.1.
0-RELEASE
</revision>
<revision>
1.1.
1-SNAPSHOT
</revision>
</properties>
</properties>
<modules>
<modules>
...
...
schbrain-canal-client/src/main/java/com/schbrain/canal/client/core/SimpleCanalClient.java
View file @
fc159e48
...
@@ -88,9 +88,11 @@ public class SimpleCanalClient extends AbstractCanalClient {
...
@@ -88,9 +88,11 @@ public class SimpleCanalClient extends AbstractCanalClient {
String
key
=
filter
.
schame
()+
":"
+
filter
.
table
();
String
key
=
filter
.
schame
()+
":"
+
filter
.
table
();
List
<
CanalEvent
>
filterList
=
MapUtils
.
getObject
(
tableCanalEventMap
,
key
,
new
ArrayList
<>());
List
<
CanalEvent
>
filterList
=
MapUtils
.
getObject
(
tableCanalEventMap
,
key
,
new
ArrayList
<>());
filterList
.
add
(
canalEvent
);
filterList
.
add
(
canalEvent
);
tableCanalEventMap
.
put
(
key
,
filterList
);
continue
;
continue
;
}
}
unFilters
.
add
(
canalEvent
);
unFilters
.
add
(
canalEvent
);
}
}
if
(
unFilters
!=
null
&&
unFilters
.
size
()>
0
){
if
(
unFilters
!=
null
&&
unFilters
.
size
()>
0
){
listeners
.
addAll
(
unFilters
);
listeners
.
addAll
(
unFilters
);
...
...
schbrain-canal-client/src/main/java/com/schbrain/canal/client/event/MapCanalEvent.java
0 → 100644
View file @
fc159e48
package
com.schbrain.canal.client.event
;
import
com.alibaba.otter.canal.protocol.CanalEntry
;
import
com.schbrain.canal.client.utils.DataUtil
;
import
java.util.Map
;
public
interface
MapCanalEvent
extends
CanalEvent
{
@Override
default
void
onEvent
(
CanalEntry
.
Header
header
,
CanalEntry
.
EventType
eventType
,
CanalEntry
.
RowData
rowData
){
switch
(
eventType
)
{
case
INSERT:
Map
<
String
,
Object
>
data
=
DataUtil
.
getCloumData
(
rowData
.
getAfterColumnsList
());
onInsert
(
header
,
data
);
break
;
case
UPDATE:
Map
<
String
,
Object
>
after
=
DataUtil
.
getCloumData
(
rowData
.
getAfterColumnsList
());
Map
<
String
,
Object
>
before
=
DataUtil
.
getCloumData
(
rowData
.
getBeforeColumnsList
());
onUpdate
(
header
,
before
,
after
);
break
;
case
DELETE:
Map
<
String
,
Object
>
delete
=
DataUtil
.
getCloumData
(
rowData
.
getBeforeColumnsList
());
onDelete
(
header
,
delete
);
break
;
default
:
break
;
}
}
/**
* onInsert
* @param after
*/
void
onInsert
(
CanalEntry
.
Header
header
,
Map
<
String
,
Object
>
after
);
/**
* onUpdate
* @param after
*/
void
onUpdate
(
CanalEntry
.
Header
header
,
Map
<
String
,
Object
>
before
,
Map
<
String
,
Object
>
after
);
/**
* onDelete
* @param after
*/
void
onDelete
(
CanalEntry
.
Header
header
,
Map
<
String
,
Object
>
after
);
}
schbrain-canal-client/src/main/java/com/schbrain/canal/client/event/SimpleMapCanalEvent.java
0 → 100644
View file @
fc159e48
package
com.schbrain.canal.client.event
;
import
com.alibaba.otter.canal.protocol.CanalEntry
;
import
java.util.Map
;
/**
* @author zhuyf
* @date 2022/6/22
*/
public
class
SimpleMapCanalEvent
implements
MapCanalEvent
{
@Override
public
void
onInsert
(
CanalEntry
.
Header
header
,
Map
<
String
,
Object
>
after
)
{
}
@Override
public
void
onUpdate
(
CanalEntry
.
Header
header
,
Map
<
String
,
Object
>
before
,
Map
<
String
,
Object
>
after
)
{
}
@Override
public
void
onDelete
(
CanalEntry
.
Header
header
,
Map
<
String
,
Object
>
after
)
{
}
}
schbrain-canal-client/src/main/java/com/schbrain/canal/client/utils/DataUtil.java
0 → 100644
View file @
fc159e48
package
com.schbrain.canal.client.utils
;
import
com.alibaba.otter.canal.protocol.CanalEntry
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author zhuyf
* @date 2022/6/22
*/
public
class
DataUtil
{
public
static
Map
<
String
,
Object
>
getCloumData
(
List
<
CanalEntry
.
Column
>
columns
){
Map
<
String
,
Object
>
row
=
new
HashMap
<>();
for
(
CanalEntry
.
Column
column
:
columns
)
{
if
(
column
.
getIsNull
())
{
row
.
put
(
column
.
getName
(),
null
);
}
else
{
row
.
put
(
column
.
getName
(),
column
.
getValue
());
}
}
return
row
;
}
}
schbrain-canal-client/src/main/java/com/schbrain/canal/client/utils/MessageUtil.java
View file @
fc159e48
...
@@ -26,8 +26,7 @@ public class MessageUtil {
...
@@ -26,8 +26,7 @@ public class MessageUtil {
try
{
try
{
rowChange
=
CanalEntry
.
RowChange
.
parseFrom
(
entry
.
getStoreValue
());
rowChange
=
CanalEntry
.
RowChange
.
parseFrom
(
entry
.
getStoreValue
());
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
"ERROR ## parser of eromanga-event has an error , data:"
+
entry
.
toString
(),
throw
new
RuntimeException
(
"ERROR ## parser of eromanga-event has an error , data:"
+
entry
.
toString
(),
e
);
e
);
}
}
CanalEntry
.
EventType
eventType
=
rowChange
.
getEventType
();
CanalEntry
.
EventType
eventType
=
rowChange
.
getEventType
();
final
Dml
dml
=
new
Dml
();
final
Dml
dml
=
new
Dml
();
...
...
schbrain-canal-web/src/main/java/com/schbrain/web/MyCanalEvent2.java
View file @
fc159e48
...
@@ -9,8 +9,8 @@ import org.springframework.stereotype.Service;
...
@@ -9,8 +9,8 @@ import org.springframework.stereotype.Service;
* @author zhuyf
* @author zhuyf
* @date 2022/6/16
* @date 2022/6/16
*/
*/
@Service
(
"myCanalEvent2"
)
//
@Service("myCanalEvent2")
@TableFilter
(
table
=
"ding_talk_user"
,
schame
=
"kp_user"
)
//
@TableFilter(table = "ding_talk_user",schame = "kp_user")
public
class
MyCanalEvent2
implements
DefCanalEvent
{
public
class
MyCanalEvent2
implements
DefCanalEvent
{
@Override
@Override
...
...
schbrain-canal-web/src/main/java/com/schbrain/web/MyCanalEvent3.java
View file @
fc159e48
...
@@ -10,7 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -10,7 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
* @author zhuyf
* @author zhuyf
* @date 2022/6/16
* @date 2022/6/16
*/
*/
@CanalEventListener
//
@CanalEventListener
public
class
MyCanalEvent3
{
public
class
MyCanalEvent3
{
@Autowired
@Autowired
...
...
schbrain-canal-web/src/main/java/com/schbrain/web/MyCanalEvent4.java
View file @
fc159e48
...
@@ -12,8 +12,8 @@ import org.springframework.stereotype.Service;
...
@@ -12,8 +12,8 @@ import org.springframework.stereotype.Service;
* @author zhuyf
* @author zhuyf
* @date 2022/6/16
* @date 2022/6/16
*/
*/
@Service
(
"myCanalEvent4"
)
//
@Service("myCanalEvent4")
@TableFilter
(
table
=
"wechat_user"
,
schame
=
"kp_user"
)
//
@TableFilter(table = "wechat_user",schame = "kp_user")
@Slf4j
@Slf4j
public
class
MyCanalEvent4
extends
SimpleResolverCanalEvent
<
User
>
{
public
class
MyCanalEvent4
extends
SimpleResolverCanalEvent
<
User
>
{
...
...
schbrain-canal-web/src/main/java/com/schbrain/web/MyCanalEvent5.java
View file @
fc159e48
...
@@ -13,8 +13,8 @@ import org.springframework.stereotype.Service;
...
@@ -13,8 +13,8 @@ import org.springframework.stereotype.Service;
* @author zhuyf
* @author zhuyf
* @date 2022/6/16
* @date 2022/6/16
*/
*/
@Service
(
"myCanalEvent5"
)
//
@Service("myCanalEvent5")
@TableFilter
(
table
=
"wechat_user"
,
schame
=
"kp_user"
)
//
@TableFilter(table = "wechat_user",schame = "kp_user")
@Slf4j
@Slf4j
public
class
MyCanalEvent5
implements
ResolverCanalEvent
<
User
>
{
public
class
MyCanalEvent5
implements
ResolverCanalEvent
<
User
>
{
...
...
schbrain-canal-web/src/main/java/com/schbrain/web/MyCanalEvent6.java
View file @
fc159e48
...
@@ -13,8 +13,8 @@ import org.springframework.stereotype.Service;
...
@@ -13,8 +13,8 @@ import org.springframework.stereotype.Service;
* @date 2022/6/16
* @date 2022/6/16
*/
*/
@Slf4j
@Slf4j
@Service
(
"myCanalEvent6"
)
//
@Service("myCanalEvent6")
@TableFilter
(
table
=
"wechat_user"
,
schame
=
"kp_user"
)
//
@TableFilter(table = "wechat_user",schame = "kp_user")
public
class
MyCanalEvent6
extends
MyCanalEvent4
{
public
class
MyCanalEvent6
extends
MyCanalEvent4
{
@Override
@Override
...
...
schbrain-canal-web/src/main/java/com/schbrain/web/MyCanalEvent7.java
View file @
fc159e48
...
@@ -12,8 +12,8 @@ import org.springframework.stereotype.Service;
...
@@ -12,8 +12,8 @@ import org.springframework.stereotype.Service;
* @date 2022/6/16
* @date 2022/6/16
*/
*/
@Slf4j
@Slf4j
@Service
(
"myCanalEvent7"
)
//
@Service("myCanalEvent7")
@TableFilter
(
table
=
"wechat_user"
,
schame
=
"kp_user"
)
//
@TableFilter(table = "wechat_user",schame = "kp_user")
public
class
MyCanalEvent7
extends
MyCanalEvent6
{
public
class
MyCanalEvent7
extends
MyCanalEvent6
{
@Override
@Override
...
...
schbrain-canal-web/src/main/java/com/schbrain/web/MyCanalEvent8.java
0 → 100644
View file @
fc159e48
package
com.schbrain.web
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.otter.canal.protocol.CanalEntry
;
import
com.schbrain.bean.User
;
import
com.schbrain.canal.client.annotation.TableFilter
;
import
com.schbrain.canal.client.event.SimpleMapCanalEvent
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
java.util.Map
;
/**
* @author zhuyf
* @date 2022/6/16
*/
@Slf4j
@Service
(
"myCanalEvent8"
)
@TableFilter
(
table
=
"wechat_user"
,
schame
=
"kp_user"
)
public
class
MyCanalEvent8
extends
SimpleMapCanalEvent
{
@Override
public
void
onInsert
(
CanalEntry
.
Header
header
,
Map
<
String
,
Object
>
user
)
{
String
s
=
JSONObject
.
toJSONString
(
user
);
log
.
info
(
"onInsert:{}"
,
s
);
}
@Override
public
void
onUpdate
(
CanalEntry
.
Header
header
,
Map
<
String
,
Object
>
before
,
Map
<
String
,
Object
>
after
)
{
String
s
=
JSONObject
.
toJSONString
(
before
);
String
b
=
JSONObject
.
toJSONString
(
after
);
log
.
info
(
"onUpdate,before:{},after:{}"
,
s
,
b
);
}
@Override
public
void
onDelete
(
CanalEntry
.
Header
header
,
Map
<
String
,
Object
>
user
)
{
String
s
=
JSONObject
.
toJSONString
(
user
);
log
.
info
(
"onDelete:{}"
,
s
);
}
}
schbrain-canal-web/src/main/java/com/schbrain/web/MyCanalEvent9.java
0 → 100644
View file @
fc159e48
package
com.schbrain.web
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.otter.canal.protocol.CanalEntry
;
import
com.schbrain.canal.client.annotation.TableFilter
;
import
com.schbrain.canal.client.event.MapCanalEvent
;
import
com.schbrain.canal.client.event.SimpleMapCanalEvent
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
java.util.Map
;
/**
* @author zhuyf
* @date 2022/6/16
*/
@Slf4j
@Service
(
"myCanalEvent9"
)
@TableFilter
(
table
=
"wechat_user"
,
schame
=
"kp_user"
)
public
class
MyCanalEvent9
implements
MapCanalEvent
{
@Override
public
void
onInsert
(
CanalEntry
.
Header
header
,
Map
<
String
,
Object
>
user
)
{
String
s
=
JSONObject
.
toJSONString
(
user
);
log
.
info
(
"onInsert:{}"
,
s
);
}
@Override
public
void
onUpdate
(
CanalEntry
.
Header
header
,
Map
<
String
,
Object
>
before
,
Map
<
String
,
Object
>
after
)
{
String
s
=
JSONObject
.
toJSONString
(
before
);
String
b
=
JSONObject
.
toJSONString
(
after
);
log
.
info
(
"onUpdate,before:{},after:{}"
,
s
,
b
);
}
@Override
public
void
onDelete
(
CanalEntry
.
Header
header
,
Map
<
String
,
Object
>
user
)
{
String
s
=
JSONObject
.
toJSONString
(
user
);
log
.
info
(
"onDelete:{}"
,
s
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment