1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.shardingsphere.infra.executor.sql.hook;
19
20 import org.apache.shardingsphere.infra.database.core.connector.ConnectionProperties;
21 import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
22
23 import java.util.Collection;
24 import java.util.List;
25
26
27
28
29 public final class SPISQLExecutionHook implements SQLExecutionHook {
30
31 private final Collection<SQLExecutionHook> sqlExecutionHooks = ShardingSphereServiceLoader.getServiceInstances(SQLExecutionHook.class);
32
33 @Override
34 public void start(final String dataSourceName, final String sql, final List<Object> params, final ConnectionProperties connectionProps, final boolean isTrunkThread) {
35 for (SQLExecutionHook each : sqlExecutionHooks) {
36 each.start(dataSourceName, sql, params, connectionProps, isTrunkThread);
37 }
38 }
39
40 @Override
41 public void finishSuccess() {
42 for (SQLExecutionHook each : sqlExecutionHooks) {
43 each.finishSuccess();
44 }
45 }
46
47 @Override
48 public void finishFailure(final Exception cause) {
49 for (SQLExecutionHook each : sqlExecutionHooks) {
50 each.finishFailure(cause);
51 }
52 }
53 }