From f0b7a9428a2d7bb43fc8c847b8d62911157087c8 Mon Sep 17 00:00:00 2001 From: terrymanu Date: Mon, 24 Sep 2018 23:57:20 +0800 Subject: [PATCH] for #1172, refactor spi signature --- .../executor/sql/execute/SQLExecuteCallback.java | 6 +++--- .../routing/router/sharding/ParsingSQLRouter.java | 7 +++---- .../core/spi/event/ShardingEventHandler.java | 4 ++-- .../close/CloseConnectionEventHandlerLoader.java | 8 ++++---- .../get/GetConnectionEventHandlerLoader.java | 8 ++++---- .../executor/SQLExecutionEventHandlerLoader.java | 8 ++++---- .../event/parsing/ParsingEventHandlerLoader.java | 8 ++++---- .../jdbc/adapter/AbstractConnectionAdapter.java | 14 +++++++------- .../opentracing/handler/OpenTracingHandler.java | 4 ++-- ...OpenTracingCloseConnectionEventHandlerTest.java | 8 ++++---- .../OpenTracingGetConnectionEventHandlerTest.java | 8 ++++---- .../OpenTracingSQLExecutionEventHandlerTest.java | 12 ++++++------ .../OpenTracingParsingEventHandlerTest.java | 8 ++++---- .../backend/jdbc/connection/BackendConnection.java | 10 +++++----- 14 files changed, 56 insertions(+), 57 deletions(-) diff --git a/sharding-core/src/main/java/io/shardingsphere/core/executor/sql/execute/SQLExecuteCallback.java b/sharding-core/src/main/java/io/shardingsphere/core/executor/sql/execute/SQLExecuteCallback.java index 19cc0dc007846..ff7b31b98834d 100644 --- a/sharding-core/src/main/java/io/shardingsphere/core/executor/sql/execute/SQLExecuteCallback.java +++ b/sharding-core/src/main/java/io/shardingsphere/core/executor/sql/execute/SQLExecuteCallback.java @@ -82,7 +82,7 @@ private T execute0(final StatementExecuteUnit statementExecuteUnit) throws SQLEx List> parameterSets = statementExecuteUnit.getRouteUnit().getSqlUnit().getParameterSets(); DataSourceMetaData dataSourceMetaData = DataSourceMetaDataFactory.newInstance(databaseType, statementExecuteUnit.getStatement().getConnection().getMetaData().getURL()); for (List each : parameterSets) { - SQLExecutionEventHandlerLoader.getInstance().handle(new SQLExecutionStartEvent(statementExecuteUnit.getRouteUnit(), each, dataSourceMetaData)); + SQLExecutionEventHandlerLoader.getInstance().start(new SQLExecutionStartEvent(statementExecuteUnit.getRouteUnit(), each, dataSourceMetaData)); // TODO remove after BED removed shardingEventBus.post(SQLExecutionEventFactory.createEvent(sqlType, statementExecuteUnit, each, dataSourceMetaData)); } @@ -91,7 +91,7 @@ private T execute0(final StatementExecuteUnit statementExecuteUnit) throws SQLEx for (List each : parameterSets) { SQLExecutionEvent finishEvent = SQLExecutionEventFactory.createEvent(sqlType, statementExecuteUnit, each, dataSourceMetaData); finishEvent.setExecuteSuccess(); - SQLExecutionEventHandlerLoader.getInstance().handle(new SQLExecutionFinishEvent()); + SQLExecutionEventHandlerLoader.getInstance().finish(new SQLExecutionFinishEvent()); // TODO remove after BED removed shardingEventBus.post(finishEvent); } @@ -100,7 +100,7 @@ private T execute0(final StatementExecuteUnit statementExecuteUnit) throws SQLEx for (List each : parameterSets) { SQLExecutionEvent finishEvent = SQLExecutionEventFactory.createEvent(sqlType, statementExecuteUnit, each, dataSourceMetaData); finishEvent.setExecuteFailure(ex); - SQLExecutionEventHandlerLoader.getInstance().handle(new SQLExecutionFinishEvent()); + SQLExecutionEventHandlerLoader.getInstance().finish(new SQLExecutionFinishEvent()); // TODO remove after BED removed shardingEventBus.post(finishEvent); } diff --git a/sharding-core/src/main/java/io/shardingsphere/core/routing/router/sharding/ParsingSQLRouter.java b/sharding-core/src/main/java/io/shardingsphere/core/routing/router/sharding/ParsingSQLRouter.java index 66738974bfa0b..6cfe6ff113c89 100644 --- a/sharding-core/src/main/java/io/shardingsphere/core/routing/router/sharding/ParsingSQLRouter.java +++ b/sharding-core/src/main/java/io/shardingsphere/core/routing/router/sharding/ParsingSQLRouter.java @@ -85,18 +85,17 @@ public final class ParsingSQLRouter implements ShardingRouter { @Override public SQLStatement parse(final String logicSQL, final boolean useCache) { - ParsingEventHandlerLoader.getInstance().handle(new ParsingStartEvent(logicSQL)); + ParsingEventHandlerLoader.getInstance().start(new ParsingStartEvent(logicSQL)); ParsingFinishEvent finishEvent = new ParsingFinishEvent(); try { - SQLStatement sqlStatement = new SQLParsingEngine(databaseType, logicSQL, shardingRule, shardingTableMetaData).parse(useCache); - return sqlStatement; + return new SQLParsingEngine(databaseType, logicSQL, shardingRule, shardingTableMetaData).parse(useCache); // CHECKSTYLE:OFF } catch (final Exception ex) { // CHECKSTYLE:ON finishEvent.setException(ex); throw ex; } finally { - ParsingEventHandlerLoader.getInstance().handle(finishEvent); + ParsingEventHandlerLoader.getInstance().finish(finishEvent); } } diff --git a/sharding-core/src/main/java/io/shardingsphere/core/spi/event/ShardingEventHandler.java b/sharding-core/src/main/java/io/shardingsphere/core/spi/event/ShardingEventHandler.java index 73aadd97b0d52..15cc1a2718c46 100644 --- a/sharding-core/src/main/java/io/shardingsphere/core/spi/event/ShardingEventHandler.java +++ b/sharding-core/src/main/java/io/shardingsphere/core/spi/event/ShardingEventHandler.java @@ -31,12 +31,12 @@ public interface ShardingEventHandler getConnections(final ConnectionMode connectionMode, final String dataSourceName, final int connectionSize) throws SQLException { - GetConnectionEventHandlerLoader.getInstance().handle(new GetConnectionStartEvent(dataSourceName)); + GetConnectionEventHandlerLoader.getInstance().start(new GetConnectionStartEvent(dataSourceName)); DataSource dataSource = getDataSourceMap().get(dataSourceName); Preconditions.checkState(null != dataSource, "Missing the data source name: '%s'", dataSourceName); Collection connections; @@ -124,7 +124,7 @@ public final List getConnections(final ConnectionMode connectionMode cachedConnections.putAll(dataSourceName, result); } } - GetConnectionEventHandlerLoader.getInstance().handle( + GetConnectionEventHandlerLoader.getInstance().finish( new GetConnectionFinishEvent(connections.size(), DataSourceMetaDataFactory.newInstance(databaseType, result.get(0).getMetaData().getURL()))); return result; } @@ -226,10 +226,10 @@ public final void close() throws SQLException { forceExecuteTemplateForClose.execute(cachedConnections.entries(), new ForceExecuteCallback>() { @Override - public void execute(final Entry cachedConnectionsEntrySet) throws SQLException { - Connection connection = cachedConnectionsEntrySet.getValue(); - CloseConnectionEventHandlerLoader.getInstance().handle( - new CloseConnectionStartEvent(cachedConnectionsEntrySet.getKey(), DataSourceMetaDataFactory.newInstance(databaseType, connection.getMetaData().getURL()))); + public void execute(final Entry cachedConnections) throws SQLException { + Connection connection = cachedConnections.getValue(); + CloseConnectionEventHandlerLoader.getInstance().start( + new CloseConnectionStartEvent(cachedConnections.getKey(), DataSourceMetaDataFactory.newInstance(databaseType, connection.getMetaData().getURL()))); CloseConnectionFinishEvent finishEvent = new CloseConnectionFinishEvent(); try { connection.close(); @@ -239,7 +239,7 @@ public void execute(final Entry cachedConnectionsEntrySet) t finishEvent.setException(ex); throw ex; } finally { - CloseConnectionEventHandlerLoader.getInstance().handle(finishEvent); + CloseConnectionEventHandlerLoader.getInstance().finish(finishEvent); } } }); diff --git a/sharding-opentracing/src/main/java/io/shardingsphere/opentracing/handler/OpenTracingHandler.java b/sharding-opentracing/src/main/java/io/shardingsphere/opentracing/handler/OpenTracingHandler.java index 05e5edcdb0000..b798deaf0108a 100644 --- a/sharding-opentracing/src/main/java/io/shardingsphere/opentracing/handler/OpenTracingHandler.java +++ b/sharding-opentracing/src/main/java/io/shardingsphere/opentracing/handler/OpenTracingHandler.java @@ -47,12 +47,12 @@ public abstract class OpenTracingHandler>emptyList()); - loader.handle(new SQLExecutionStartEvent(new RouteUnit("ds_test", sqlUnit), Arrays.asList("1", 2), dataSourceMetaData)); - loader.handle(new SQLExecutionFinishEvent()); + loader.start(new SQLExecutionStartEvent(new RouteUnit("ds_test", sqlUnit), Arrays.asList("1", 2), dataSourceMetaData)); + loader.finish(new SQLExecutionFinishEvent()); assertThat(getTracer().finishedSpans().size(), is(1)); MockSpan actual = getTracer().finishedSpans().get(0); assertThat(actual.operationName(), is("/Sharding-Sphere/executeSQL/")); @@ -85,9 +85,9 @@ public void assertExecuteSuccessForBranchThread() { when(dataSourceMetaData.getHostName()).thenReturn("localhost"); when(dataSourceMetaData.getPort()).thenReturn(8888); SQLUnit sqlUnit = new SQLUnit("SELECT * FROM XXX;", Collections.>emptyList()); - loader.handle(new SQLExecutionStartEvent(new RouteUnit("ds_test", sqlUnit), Arrays.asList("1", 2), dataSourceMetaData)); + loader.start(new SQLExecutionStartEvent(new RouteUnit("ds_test", sqlUnit), Arrays.asList("1", 2), dataSourceMetaData)); assertNotNull(OpenTracingRootInvokeHandler.getActiveSpan().get()); - loader.handle(new SQLExecutionFinishEvent()); + loader.finish(new SQLExecutionFinishEvent()); assertThat(getTracer().finishedSpans().size(), is(1)); MockSpan actual = getTracer().finishedSpans().get(0); assertThat(actual.operationName(), is("/Sharding-Sphere/executeSQL/")); @@ -111,10 +111,10 @@ public void assertExecuteFailure() { when(dataSourceMetaData.getHostName()).thenReturn("localhost"); when(dataSourceMetaData.getPort()).thenReturn(8888); SQLUnit sqlUnit = new SQLUnit("SELECT * FROM XXX;", Collections.>emptyList()); - loader.handle(new SQLExecutionStartEvent(new RouteUnit("ds_test", sqlUnit), Collections.emptyList(), dataSourceMetaData)); + loader.start(new SQLExecutionStartEvent(new RouteUnit("ds_test", sqlUnit), Collections.emptyList(), dataSourceMetaData)); SQLExecutionFinishEvent finishEvent = new SQLExecutionFinishEvent(); finishEvent.setException(new RuntimeException("SQL execution error")); - loader.handle(finishEvent); + loader.finish(finishEvent); assertThat(getTracer().finishedSpans().size(), is(1)); MockSpan actual = getTracer().finishedSpans().get(0); assertThat(actual.operationName(), is("/Sharding-Sphere/executeSQL/")); diff --git a/sharding-opentracing/src/test/java/io/shardingsphere/opentracing/handler/parsing/OpenTracingParsingEventHandlerTest.java b/sharding-opentracing/src/test/java/io/shardingsphere/opentracing/handler/parsing/OpenTracingParsingEventHandlerTest.java index 0e524367d4570..fc8dfc249292e 100644 --- a/sharding-opentracing/src/test/java/io/shardingsphere/opentracing/handler/parsing/OpenTracingParsingEventHandlerTest.java +++ b/sharding-opentracing/src/test/java/io/shardingsphere/opentracing/handler/parsing/OpenTracingParsingEventHandlerTest.java @@ -39,8 +39,8 @@ public final class OpenTracingParsingEventHandlerTest extends BaseOpenTracingHan @Test public void assertExecuteSuccess() { - loader.handle(new ParsingStartEvent("SELECT * FROM XXX;")); - loader.handle(new ParsingFinishEvent()); + loader.start(new ParsingStartEvent("SELECT * FROM XXX;")); + loader.finish(new ParsingFinishEvent()); assertThat(getTracer().finishedSpans().size(), is(1)); MockSpan actual = getTracer().finishedSpans().get(0); assertThat(actual.operationName(), is("/Sharding-Sphere/parseSQL/")); @@ -52,10 +52,10 @@ public void assertExecuteSuccess() { @Test public void assertExecuteFailure() { - loader.handle(new ParsingStartEvent("SELECT * FROM XXX;")); + loader.start(new ParsingStartEvent("SELECT * FROM XXX;")); ParsingFinishEvent finishEvent = new ParsingFinishEvent(); finishEvent.setException(new ShardingException("parse SQL error")); - loader.handle(finishEvent); + loader.finish(finishEvent); assertThat(getTracer().finishedSpans().size(), is(1)); MockSpan actual = getTracer().finishedSpans().get(0); assertThat(actual.operationName(), is("/Sharding-Sphere/parseSQL/")); diff --git a/sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/jdbc/connection/BackendConnection.java b/sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/jdbc/connection/BackendConnection.java index 1b392634ebb70..bf6955f6dd106 100644 --- a/sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/jdbc/connection/BackendConnection.java +++ b/sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/jdbc/connection/BackendConnection.java @@ -71,10 +71,10 @@ public final class BackendConnection implements AutoCloseable { */ public List getConnections(final ConnectionMode connectionMode, final String dataSourceName, final int connectionSize) throws SQLException { try { - GetConnectionEventHandlerLoader.getInstance().handle(new GetConnectionStartEvent(dataSourceName)); + GetConnectionEventHandlerLoader.getInstance().start(new GetConnectionStartEvent(dataSourceName)); List result = ruleRegistry.getBackendDataSource().getConnections(connectionMode, dataSourceName, connectionSize); cachedConnections.addAll(result); - GetConnectionEventHandlerLoader.getInstance().handle( + GetConnectionEventHandlerLoader.getInstance().finish( new GetConnectionFinishEvent(result.size(), DataSourceMetaDataFactory.newInstance(DatabaseType.MySQL, result.get(0).getMetaData().getURL()))); return result; // CHECKSTYLE:OFF @@ -82,7 +82,7 @@ public List getConnections(final ConnectionMode connectionMode, fina // CHECKSTYLE:ON GetConnectionFinishEvent finishEvent = new GetConnectionFinishEvent(0, null); finishEvent.setException(ex); - GetConnectionEventHandlerLoader.getInstance().handle(finishEvent); + GetConnectionEventHandlerLoader.getInstance().finish(finishEvent); throw ex; } } @@ -156,14 +156,14 @@ private Collection closeConnections() { for (Connection each : cachedConnections) { CloseConnectionFinishEvent finishEvent = new CloseConnectionFinishEvent(); try { - CloseConnectionEventHandlerLoader.getInstance().handle( + CloseConnectionEventHandlerLoader.getInstance().start( new CloseConnectionStartEvent(each.getCatalog(), DataSourceMetaDataFactory.newInstance(DatabaseType.MySQL, each.getMetaData().getURL()))); each.close(); } catch (SQLException ex) { finishEvent.setException(ex); result.add(ex); } finally { - CloseConnectionEventHandlerLoader.getInstance().handle(finishEvent); + CloseConnectionEventHandlerLoader.getInstance().finish(finishEvent); } } return result;