提交 bf6ae8e3 编写于 作者: T terrymanu

refactor package of backend.netty

上级 e998c55e
......@@ -37,7 +37,7 @@ import io.shardingsphere.proxy.backend.ResultPacket;
import io.shardingsphere.proxy.backend.netty.client.BackendNettyClient;
import io.shardingsphere.proxy.backend.netty.future.FutureRegistry;
import io.shardingsphere.proxy.backend.netty.future.SynchronizedFuture;
import io.shardingsphere.proxy.backend.netty.client.mysql.MySQLQueryResult;
import io.shardingsphere.proxy.backend.netty.client.response.mysql.MySQLQueryResult;
import io.shardingsphere.proxy.config.ProxyTableMetaDataConnectionManager;
import io.shardingsphere.proxy.config.RuleRegistry;
import io.shardingsphere.proxy.runtime.ChannelRegistry;
......
......@@ -21,6 +21,7 @@ import io.netty.channel.Channel;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelPipeline;
import io.shardingsphere.core.constant.DatabaseType;
import io.shardingsphere.proxy.backend.netty.client.response.ResponseHandlerFactory;
import io.shardingsphere.proxy.transport.common.codec.PacketCodecFactory;
import lombok.RequiredArgsConstructor;
......@@ -40,6 +41,6 @@ public final class BackendNettyClientChannelInitializer extends ChannelInitializ
ChannelPipeline pipeline = channel.pipeline();
// TODO load database type from yaml or startup arguments
pipeline.addLast(PacketCodecFactory.createPacketCodecInstance(DatabaseType.MySQL));
pipeline.addLast(NettyBackendHandlerFactory.newInstance(DatabaseType.MySQL, dataSourceName));
pipeline.addLast(ResponseHandlerFactory.newInstance(DatabaseType.MySQL, dataSourceName));
}
}
......@@ -15,19 +15,19 @@
* </p>
*/
package io.shardingsphere.proxy.backend.netty.client;
package io.shardingsphere.proxy.backend.netty.client.response;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
import io.shardingsphere.proxy.transport.mysql.packet.MySQLPacketPayload;
/**
* SQL execute backend handler.
* SQL executed response handler.
*
* @author wangkai
* @author linjiaqi
*/
public abstract class CommandResponsePacketsHandler extends ChannelInboundHandlerAdapter {
public abstract class ResponseHandler extends ChannelInboundHandlerAdapter {
protected abstract void auth(ChannelHandlerContext context, MySQLPacketPayload payload);
......
......@@ -15,32 +15,32 @@
* </p>
*/
package io.shardingsphere.proxy.backend.netty.client;
package io.shardingsphere.proxy.backend.netty.client.response;
import io.shardingsphere.core.constant.DatabaseType;
import io.shardingsphere.proxy.backend.netty.client.mysql.MySQLBackendHandler;
import io.shardingsphere.proxy.backend.netty.client.response.mysql.MySQLResponseHandler;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
/**
* Backend handler factory for netty.
* Response handler factory for using netty connect backend.
*
* @author wangkai
* @author linjiaqi
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class NettyBackendHandlerFactory {
public final class ResponseHandlerFactory {
/**
* Create new instance of netty backend handler.
* Create new instance of response handler factory for using netty connect backend.
*
* @param databaseType database type
* @param dataSourceName data source name
* @return backend handler instance
* @return new instance of response handler factory for using netty connect backend
*/
public static CommandResponsePacketsHandler newInstance(final DatabaseType databaseType, final String dataSourceName) {
public static ResponseHandler newInstance(final DatabaseType databaseType, final String dataSourceName) {
switch (databaseType) {
case MySQL:
return new MySQLBackendHandler(dataSourceName);
return new MySQLResponseHandler(dataSourceName);
default:
throw new UnsupportedOperationException(String.format("Cannot support database type '%s'", databaseType));
}
......
......@@ -15,7 +15,7 @@
* </p>
*/
package io.shardingsphere.proxy.backend.netty.client.mysql;
package io.shardingsphere.proxy.backend.netty.client.response.mysql;
import com.google.common.collect.Lists;
import io.shardingsphere.core.merger.QueryResult;
......
......@@ -15,15 +15,14 @@
* </p>
*/
package io.shardingsphere.proxy.backend.netty.client.mysql;
package io.shardingsphere.proxy.backend.netty.client.response.mysql;
import com.google.common.collect.Maps;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.shardingsphere.core.metadata.datasource.DataSourceMetaData;
import io.shardingsphere.core.rule.DataSourceParameter;
import io.shardingsphere.proxy.backend.constant.AuthType;
import io.shardingsphere.proxy.backend.netty.client.CommandResponsePacketsHandler;
import io.shardingsphere.proxy.backend.netty.client.response.ResponseHandler;
import io.shardingsphere.proxy.backend.netty.future.FutureRegistry;
import io.shardingsphere.proxy.config.RuleRegistry;
import io.shardingsphere.proxy.runtime.ChannelRegistry;
......@@ -43,23 +42,24 @@ import lombok.extern.slf4j.Slf4j;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
import java.util.Map;
/**
* Backend handler for MySQL.
* Response handler for MySQL.
*
* @author wangkai
* @author linjiaqi
*/
@Slf4j
@RequiredArgsConstructor
public class MySQLBackendHandler extends CommandResponsePacketsHandler {
public final class MySQLResponseHandler extends ResponseHandler {
private static final RuleRegistry RULE_REGISTRY = RuleRegistry.getInstance();
private final String dataSourceName;
private final Map<Integer, MySQLQueryResult> resultMap = Maps.newHashMap();
private final Map<Integer, MySQLQueryResult> resultMap = new HashMap<>();
private AuthType authType = AuthType.UN_AUTH;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册