From fbf698778f24f3bbeaac2259f5d1817a2c404008 Mon Sep 17 00:00:00 2001 From: "v1.lion" Date: Wed, 23 Sep 2015 21:23:27 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9log4j2-slf4j=20api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 534 ++++++------ .../demo/catlets/BatchInsertSequence.java | 20 +- src/main/java/io/mycat/Log4jInitializer.java | 58 -- src/main/java/io/mycat/MycatStartup.java | 12 +- .../java/io/mycat/backend/PhysicalDBNode.java | 6 +- .../java/io/mycat/backend/PhysicalDBPool.java | 13 +- .../io/mycat/backend/PhysicalDatasource.java | 6 +- .../backend/heartbeat/MySQLHeartbeat.java | 7 +- .../io/mycat/backend/jdbc/JDBCConnection.java | 13 +- .../io/mycat/backend/jdbc/JDBCHeartbeat.java | 11 +- .../nio/MySQLBackendConnectionHandler.java | 14 +- .../java/io/mycat/cache/CacheService.java | 13 +- .../io/mycat/cache/DefaultLayedCachePool.java | 7 +- .../io/mycat/cache/impl/EnchachePool.java | 7 +- .../java/io/mycat/cache/impl/LevelDBPool.java | 14 +- .../io/mycat/route/MyCATSequnceProcessor.java | 6 +- .../java/io/mycat/route/RouteService.java | 8 +- .../mycat/route/function/PartitionByDate.java | 7 +- .../function/PartitionByRangeDateHash.java | 9 +- .../route/handler/HintCatletHandler.java | 6 +- .../route/handler/HintSchemaHandler.java | 6 +- .../route/impl/AbstractRouteStrategy.java | 6 +- .../route/impl/DruidMycatRouteStrategy.java | 23 +- .../parser/druid/impl/DefaultDruidParser.java | 14 +- .../java/io/mycat/route/util/RouterUtil.java | 34 +- .../io/mycat/route/util/VelocityUtil.java | 14 +- .../io/mycat/server/MySQLFrontConnection.java | 3 +- src/main/java/io/mycat/server/MycatNode.java | 7 +- .../java/io/mycat/server/MycatPrivileges.java | 9 +- .../java/io/mycat/server/MycatServer.java | 765 +++++++++--------- .../io/mycat/server/NonBlockingSession.java | 18 +- src/main/java/io/mycat/server/Versions.java | 2 +- .../server/classloader/DynaClassLoader.java | 14 +- .../mycat/server/config/DnPropertyUtil.java | 6 +- .../server/executors/CommitNodeHandler.java | 6 +- .../executors/ConnectionHeartBeatHandler.java | 6 +- .../FetchStoreNodeOfChildTableHandler.java | 6 +- .../executors/GetConnectionHandler.java | 6 +- .../executors/KillConnectionHandler.java | 6 +- .../executors/MultiNodeCoordinator.java | 6 +- .../server/executors/MultiNodeHandler.java | 6 +- .../executors/MultiNodeQueryHandler.java | 14 +- .../executors/NewConnectionRespHandler.java | 6 +- .../server/executors/RollbackNodeHandler.java | 6 +- .../executors/RollbackReleaseHandler.java | 6 +- .../server/executors/SimpleLogHandler.java | 6 +- .../server/executors/SingleNodeHandler.java | 6 +- .../impl/StatisticsSqlInterceptor.java | 6 +- .../mycat/server/response/CharacterSet.java | 10 +- .../io/mycat/server/response/Heartbeat.java | 7 +- .../mycat/server/response/KillConnection.java | 8 +- .../mycat/server/response/ReloadConfig.java | 13 +- .../io/mycat/server/response/ReloadUser.java | 7 +- .../mycat/server/response/RollbackConfig.java | 6 +- .../mycat/server/response/RollbackUser.java | 7 +- .../server/response/SelectVariables.java | 10 +- .../server/response/ShowMyCATCluster.java | 14 +- .../mycat/server/response/StopHeartbeat.java | 11 +- .../sequence/IncrSequenceMySQLHandler.java | 8 +- .../sequence/IncrSequenceTimeHandler.java | 8 +- .../server/sqlhandler/ExplainHandler.java | 6 +- .../mycat/server/sqlhandler/SetHandler.java | 19 +- .../java/io/mycat/sqlengine/EngineCtx.java | 7 +- src/main/java/io/mycat/sqlengine/SQLJob.java | 7 +- .../io/mycat/sqlengine/SQLJobHandler.java | 8 +- .../mycat/sqlengine/mpp/DataMergeService.java | 16 +- .../mycat/sqlengine/sharejoin/JoinParser.java | 24 +- .../sqlengine/sharejoin/TableFilter.java | 9 +- src/main/resources/log4j.xml | 52 -- src/main/resources/log4j2.xml | 26 + src/main/resources/schema.xml | 98 +-- 71 files changed, 991 insertions(+), 1174 deletions(-) delete mode 100644 src/main/java/io/mycat/Log4jInitializer.java delete mode 100644 src/main/resources/log4j.xml create mode 100644 src/main/resources/log4j2.xml diff --git a/pom.xml b/pom.xml index 393abd75e..22cb6e920 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ UTF-8 - yyyy-MM-dd HH:mm:ss version.txt.template @@ -43,7 +43,7 @@ - org.mongodb @@ -70,12 +70,6 @@ druid 1.0.14 - - log4j - log4j - 1.2.17 - compile - mysql mysql-connector-java @@ -105,17 +99,6 @@ 1.7.0 test - - org.slf4j - slf4j-api - 1.7.12 - compile - - - org.slf4j - slf4j-log4j12 - 1.7.12 - com.univocity univocity-parsers @@ -132,6 +115,23 @@ velocity 1.7 + + + org.slf4j + slf4j-api + 1.7.12 + compile + + + org.apache.logging.log4j + log4j-slf4j-impl + 2.3 + + + org.apache.logging.log4j + log4j-core + 2.3 + @@ -239,266 +239,266 @@ version2 - process-sources - - replace - - - ${project.basedir}/src/main/java/io/mycat/server/Versions.template - ${project.basedir}/src/main/java/io/mycat/server/Versions.java - - - @server-version@ - 5.5.8-mycat-${project.version}-${timestamp} - - - - - + process-sources + + replace + + + ${project.basedir}/src/main/java/io/mycat/server/Versions.template + ${project.basedir}/src/main/java/io/mycat/server/Versions.java + + + @server-version@ + 5.5.8-mycat-${project.version}-${timestamp} + + + + + - + - - org.apache.maven.plugins - maven-compiler-plugin - - 1.7 - 1.7 - ${app.encoding} - - + + org.apache.maven.plugins + maven-compiler-plugin + + 1.7 + 1.7 + ${app.encoding} + + - - org.apache.maven.plugins - maven-source-plugin - 2.1.2 - - ${app.encoding} - true - - - - attach-sources - - jar-no-fork - - - - - - org.apache.maven.plugins - maven-jar-plugin - - - **/.svn/** - - - - - - test-jar - - - - - - - org.apache.maven.plugins - maven-eclipse-plugin - - - **/.svn/** - - true - classes - - - .settings/org.eclipse.core.resources.prefs - - =${app.encoding}${line.separator}]]> - - - - - + + org.apache.maven.plugins + maven-source-plugin + 2.1.2 + + ${app.encoding} + true + + + + attach-sources + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + **/.svn/** + + + + + + test-jar + + + + + + + org.apache.maven.plugins + maven-eclipse-plugin + + + **/.svn/** + + true + classes + + + .settings/org.eclipse.core.resources.prefs + + =${app.encoding}${line.separator}]]> + + + + + - - - org.codehaus.mojo - appassembler-maven-plugin - 1.7 - - conf - true - flat - true - - - mycat - io.mycat.MycatStartup - - start - - - jsw - - - - 2048 - 2048 - 128 - - MYCAT_HOME=. - - - -server - -XX:MaxPermSize=64M - -XX:+AggressiveOpts - -XX:MaxDirectMemorySize=2G - - -Dcom.sun.management.jmxremote - -Dcom.sun.management.jmxremote.port=1984 - -Dcom.sun.management.jmxremote.authenticate=false - -Dcom.sun.management.jmxremote.ssl=false - - - - - jsw - - aix-ppc-32 - aix-ppc-64 - hpux-parisc-64 - linux-x86-32 - linux-x86-64 - linux-ppc-64 - macosx-ppc-32 - macosx-x86-universal-32 - macosx-universal-32 - macosx-universal-64 - solaris-sparc-32 - solaris-sparc-64 - solaris-x86-32 - windows-x86-32 - windows-x86-64 - + + + org.codehaus.mojo + appassembler-maven-plugin + 1.7 + + conf + true + flat + true + + + mycat + io.mycat.MycatStartup + + start + + + jsw + + + + 2048 + 2048 + 128 + + MYCAT_HOME=. + + + -server + -XX:MaxPermSize=64M + -XX:+AggressiveOpts + -XX:MaxDirectMemorySize=2G + + -Dcom.sun.management.jmxremote + -Dcom.sun.management.jmxremote.port=1984 + -Dcom.sun.management.jmxremote.authenticate=false + -Dcom.sun.management.jmxremote.ssl=false + + + + + jsw + + aix-ppc-32 + aix-ppc-64 + hpux-parisc-64 + linux-x86-32 + linux-x86-64 + linux-ppc-64 + macosx-ppc-32 + macosx-x86-universal-32 + macosx-universal-32 + macosx-universal-64 + solaris-sparc-32 + solaris-sparc-64 + solaris-x86-32 + windows-x86-32 + windows-x86-64 + - - - configuration.directory.in.classpath.first - conf - - - set.default.REPO_DIR - lib - - - wrapper.logfile - logs/wrapper.log - - + + + configuration.directory.in.classpath.first + conf + + + set.default.REPO_DIR + lib + + + wrapper.logfile + logs/wrapper.log + + - - - + + + - - - - - generate-jsw - package - - generate-daemons - - - - - - maven-assembly-plugin - - - src/main/assembly/assembly-win.xml - src/main/assembly/assembly-linux.xml - src/main/assembly/assembly-mac.xml - src/main/assembly/assembly-solaris.xml - src/main/assembly/assembly-unix.xml - src/main/assembly/assembly-testtool.xml - - - - - make-assembly - package - - single - - - - + + + + + generate-jsw + package + + generate-daemons + + + + + + maven-assembly-plugin + + + src/main/assembly/assembly-win.xml + src/main/assembly/assembly-linux.xml + src/main/assembly/assembly-mac.xml + src/main/assembly/assembly-solaris.xml + src/main/assembly/assembly-unix.xml + src/main/assembly/assembly-testtool.xml + + + + + make-assembly + package + + single + + + + - - org.apache.maven.plugins - maven-scm-plugin - 1.9.2 - - - jgit - - - - - org.apache.maven.scm - maven-scm-provider-jgit - 1.9.2 - - - + + org.apache.maven.plugins + maven-scm-plugin + 1.9.2 + + + jgit + + + + + org.apache.maven.scm + maven-scm-provider-jgit + 1.9.2 + + + - - org.codehaus.mojo - buildnumber-maven-plugin - 1.3 - - - validate - - create - - - - - {1} - - timestamp - scmVersion - - false - false - {0,date,yyyyMMddHHmmss} - - git - + + org.codehaus.mojo + buildnumber-maven-plugin + 1.3 + + + validate + + create + + + + + {1} + + timestamp + scmVersion + + false + false + {0,date,yyyyMMddHHmmss} + + git + - - - - org.apache.maven.scm - maven-scm-provider-gitexe - RELEASE - - - org.tmatesoft.svnkit - svnkit - RELEASE - - + + + + org.apache.maven.scm + maven-scm-provider-gitexe + RELEASE + + + org.tmatesoft.svnkit + svnkit + RELEASE + + - + - - + + \ No newline at end of file diff --git a/src/main/java/demo/catlets/BatchInsertSequence.java b/src/main/java/demo/catlets/BatchInsertSequence.java index 492d7bca6..e042fd3b5 100644 --- a/src/main/java/demo/catlets/BatchInsertSequence.java +++ b/src/main/java/demo/catlets/BatchInsertSequence.java @@ -1,5 +1,11 @@ package demo.catlets; +import com.alibaba.druid.sql.ast.SQLStatement; +import com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr; +import com.alibaba.druid.sql.ast.expr.SQLIntegerExpr; +import com.alibaba.druid.sql.ast.statement.SQLInsertStatement.ValuesClause; +import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlInsertStatement; +import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser; import io.mycat.cache.LayerCachePool; import io.mycat.route.RouteResultset; import io.mycat.route.RouteResultsetNode; @@ -17,15 +23,8 @@ import io.mycat.sqlengine.Catlet; import io.mycat.sqlengine.EngineCtx; import io.mycat.util.StringUtil; - -import org.apache.log4j.Logger; - -import com.alibaba.druid.sql.ast.SQLStatement; -import com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr; -import com.alibaba.druid.sql.ast.expr.SQLIntegerExpr; -import com.alibaba.druid.sql.ast.statement.SQLInsertStatement.ValuesClause; -import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlInsertStatement; -import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * 执行批量插入sequence Id @@ -33,7 +32,8 @@ * @date 2015/03/20 */ public class BatchInsertSequence implements Catlet { - private static final Logger LOGGER = Logger.getLogger(BatchInsertSequence.class); + private static final Logger LOGGER = LoggerFactory + .getLogger(BatchInsertSequence.class); private RouteResultset rrs;//路由结果集 private String executeSql;//接收执行处理任务的sql diff --git a/src/main/java/io/mycat/Log4jInitializer.java b/src/main/java/io/mycat/Log4jInitializer.java deleted file mode 100644 index 5dbc91956..000000000 --- a/src/main/java/io/mycat/Log4jInitializer.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2013, OpenCloudDB/MyCAT and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software;Designed and Developed mainly by many Chinese - * opensource volunteers. you can redistribute it and/or modify it under the - * terms of the GNU General Public License version 2 only, as published by the - * Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Any questions about this component can be directed to it's project Web address - * https://code.google.com/p/opencloudb/. - * - */ -package io.mycat; - -import java.text.SimpleDateFormat; -import java.util.Date; - -import org.apache.log4j.LogManager; -import org.apache.log4j.helpers.FileWatchdog; -import org.apache.log4j.xml.DOMConfigurator; - -/** - * @author mycat - */ -public final class Log4jInitializer { - private static final String format = "yyyy-MM-dd HH:mm:ss"; - public static void configureAndWatch(String filename, long delay) { - XMLWatchdog xdog = new XMLWatchdog(filename); - xdog.setName("Log4jWatchdog"); - xdog.setDelay(delay); - xdog.start(); - } - - private static final class XMLWatchdog extends FileWatchdog { - - public XMLWatchdog(String filename) { - super(filename); - } - - @Override - public void doOnChange() { - new DOMConfigurator().doConfigure(filename, LogManager.getLoggerRepository()); - System.out.println("log4j "+new SimpleDateFormat(format).format(new Date()) + " [" + filename + "] load completed."); - } - } - -} \ No newline at end of file diff --git a/src/main/java/io/mycat/MycatStartup.java b/src/main/java/io/mycat/MycatStartup.java index adecc0442..de8695dfb 100644 --- a/src/main/java/io/mycat/MycatStartup.java +++ b/src/main/java/io/mycat/MycatStartup.java @@ -25,18 +25,23 @@ import io.mycat.server.MycatServer; import io.mycat.server.SystemConfig; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.text.SimpleDateFormat; import java.util.Date; -import org.apache.log4j.helpers.LogLog; - /** * @author mycat */ public final class MycatStartup { private static final String dateFormat = "yyyy-MM-dd HH:mm:ss"; + private static final class Holder { + private static final Logger LOGGER = LoggerFactory + .getLogger(MycatStartup.class); + } + public static void main(String[] args) { try { String home = SystemConfig.getHomePath(); @@ -46,7 +51,6 @@ public static void main(String[] args) { } // init MycatServer server = MycatServer.getInstance(); - server.beforeStart(); // startup server.startup(); @@ -56,7 +60,7 @@ public static void main(String[] args) { } } catch (Exception e) { SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); - LogLog.error(sdf.format(new Date()) + " startup error", e); + Holder.LOGGER.error(sdf.format(new Date()) + " startup error", e); System.exit(-1); } } diff --git a/src/main/java/io/mycat/backend/PhysicalDBNode.java b/src/main/java/io/mycat/backend/PhysicalDBNode.java index 552959ca5..5119fa5f8 100644 --- a/src/main/java/io/mycat/backend/PhysicalDBNode.java +++ b/src/main/java/io/mycat/backend/PhysicalDBNode.java @@ -25,11 +25,11 @@ import io.mycat.route.RouteResultsetNode; import io.mycat.server.executors.ResponseHandler; - -import org.apache.log4j.Logger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class PhysicalDBNode { - protected static final Logger LOGGER = Logger + protected static final Logger LOGGER = LoggerFactory .getLogger(PhysicalDBNode.class); protected final String name; diff --git a/src/main/java/io/mycat/backend/PhysicalDBPool.java b/src/main/java/io/mycat/backend/PhysicalDBPool.java index c0dae8eb4..7654a8582 100644 --- a/src/main/java/io/mycat/backend/PhysicalDBPool.java +++ b/src/main/java/io/mycat/backend/PhysicalDBPool.java @@ -29,18 +29,13 @@ import io.mycat.server.config.DataHostConfig; import io.mycat.server.executors.GetConnectionHandler; import io.mycat.server.executors.ResponseHandler; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.Map; -import java.util.Random; +import java.util.*; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.locks.ReentrantLock; -import org.apache.log4j.Logger; - public class PhysicalDBPool { public static final int BALANCE_NONE = 0; public static final int BALANCE_ALL_BACK = 1; @@ -51,7 +46,7 @@ public class PhysicalDBPool { public static final int WRITE_ALL_NODE = 2; public static final long LONG_TIME = 300000; - protected static final Logger LOGGER = Logger + protected static final Logger LOGGER = LoggerFactory .getLogger(PhysicalDBPool.class); private final String hostName; protected PhysicalDatasource[] writeSources; diff --git a/src/main/java/io/mycat/backend/PhysicalDatasource.java b/src/main/java/io/mycat/backend/PhysicalDatasource.java index 93cb855ea..b8ad79844 100644 --- a/src/main/java/io/mycat/backend/PhysicalDatasource.java +++ b/src/main/java/io/mycat/backend/PhysicalDatasource.java @@ -33,6 +33,8 @@ import io.mycat.server.executors.NewConnectionRespHandler; import io.mycat.server.executors.ResponseHandler; import io.mycat.util.TimeUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.IOException; import java.util.ArrayList; @@ -41,10 +43,8 @@ import java.util.List; import java.util.concurrent.ConcurrentLinkedQueue; -import org.apache.log4j.Logger; - public abstract class PhysicalDatasource { - private static final Logger LOGGER = Logger + public static final Logger LOGGER = LoggerFactory .getLogger(PhysicalDatasource.class); private final String name; diff --git a/src/main/java/io/mycat/backend/heartbeat/MySQLHeartbeat.java b/src/main/java/io/mycat/backend/heartbeat/MySQLHeartbeat.java index 75f7b61b4..92c8f79f6 100644 --- a/src/main/java/io/mycat/backend/heartbeat/MySQLHeartbeat.java +++ b/src/main/java/io/mycat/backend/heartbeat/MySQLHeartbeat.java @@ -27,20 +27,21 @@ import io.mycat.backend.PhysicalDBPool; import io.mycat.backend.PhysicalDatasource; import io.mycat.server.config.DataHostConfig; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.text.SimpleDateFormat; import java.util.Date; import java.util.concurrent.locks.ReentrantLock; -import org.apache.log4j.Logger; - /** * @author mycat */ public class MySQLHeartbeat extends DBHeartbeat { private static final int MAX_RETRY_COUNT = 5; - public static final Logger LOGGER = Logger.getLogger(MySQLHeartbeat.class); + public static final Logger LOGGER = LoggerFactory + .getLogger(MySQLHeartbeat.class); private final MySQLDataSource source; diff --git a/src/main/java/io/mycat/backend/jdbc/JDBCConnection.java b/src/main/java/io/mycat/backend/jdbc/JDBCConnection.java index 774e22776..d2972be7c 100644 --- a/src/main/java/io/mycat/backend/jdbc/JDBCConnection.java +++ b/src/main/java/io/mycat/backend/jdbc/JDBCConnection.java @@ -9,17 +9,14 @@ import io.mycat.server.MySQLFrontConnection; import io.mycat.server.executors.ConnectionHeartBeatHandler; import io.mycat.server.executors.ResponseHandler; -import io.mycat.server.packet.EOFPacket; -import io.mycat.server.packet.ErrorPacket; -import io.mycat.server.packet.FieldPacket; -import io.mycat.server.packet.OkPacket; -import io.mycat.server.packet.ResultSetHeaderPacket; -import io.mycat.server.packet.RowDataPacket; +import io.mycat.server.packet.*; import io.mycat.server.parser.ServerParse; import io.mycat.server.response.ShowVariables; import io.mycat.util.ResultSetUtil; import io.mycat.util.StringUtil; import io.mycat.util.TimeUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.IOException; import java.io.UnsupportedEncodingException; @@ -32,10 +29,8 @@ import java.util.LinkedList; import java.util.List; -import org.apache.log4j.Logger; - public class JDBCConnection implements BackendConnection { - protected static final Logger LOGGER = Logger + protected static final Logger LOGGER = LoggerFactory .getLogger(JDBCConnection.class); private JDBCDatasource pool; private volatile String schema; diff --git a/src/main/java/io/mycat/backend/jdbc/JDBCHeartbeat.java b/src/main/java/io/mycat/backend/jdbc/JDBCHeartbeat.java index 5c9c32848..42c4b0a4f 100644 --- a/src/main/java/io/mycat/backend/jdbc/JDBCHeartbeat.java +++ b/src/main/java/io/mycat/backend/jdbc/JDBCHeartbeat.java @@ -2,6 +2,8 @@ import io.mycat.backend.HeartbeatRecorder; import io.mycat.backend.heartbeat.DBHeartbeat; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.sql.Connection; import java.sql.Statement; @@ -9,17 +11,16 @@ import java.util.Date; import java.util.concurrent.locks.ReentrantLock; -import org.apache.log4j.Logger; - public class JDBCHeartbeat extends DBHeartbeat{ private final ReentrantLock lock; private final JDBCDatasource source; private final boolean heartbeatnull; private Long lastSendTime = System.currentTimeMillis(); private Long lastReciveTime = System.currentTimeMillis(); - - - private Logger logger = Logger.getLogger(this.getClass()); + + + private static final Logger logger = LoggerFactory + .getLogger(JDBCHeartbeat.class); public JDBCHeartbeat(JDBCDatasource source) { diff --git a/src/main/java/io/mycat/backend/nio/MySQLBackendConnectionHandler.java b/src/main/java/io/mycat/backend/nio/MySQLBackendConnectionHandler.java index 52f418d0e..e76ce21e8 100644 --- a/src/main/java/io/mycat/backend/nio/MySQLBackendConnectionHandler.java +++ b/src/main/java/io/mycat/backend/nio/MySQLBackendConnectionHandler.java @@ -7,27 +7,21 @@ import io.mycat.server.MycatServer; import io.mycat.server.executors.LoadDataResponseHandler; import io.mycat.server.executors.ResponseHandler; -import io.mycat.server.packet.EOFPacket; -import io.mycat.server.packet.ErrorPacket; -import io.mycat.server.packet.HandshakePacket; -import io.mycat.server.packet.OkPacket; -import io.mycat.server.packet.Reply323Packet; -import io.mycat.server.packet.RequestFilePacket; -import io.mycat.server.packet.ResultStatus; +import io.mycat.server.packet.*; import io.mycat.server.packet.util.ByteUtil; import io.mycat.server.packet.util.CharsetUtil; import io.mycat.server.packet.util.SecurityUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.IOException; import java.nio.ByteBuffer; import java.util.ArrayList; -import org.apache.log4j.Logger; - public class MySQLBackendConnectionHandler implements NIOHandler { - private static final Logger LOGGER = Logger + private static final Logger LOGGER = LoggerFactory .getLogger(MySQLBackendConnectionHandler.class); private static final int RESULT_STATUS_INIT = 0; private static final int RESULT_STATUS_HEADER = 1; diff --git a/src/main/java/io/mycat/cache/CacheService.java b/src/main/java/io/mycat/cache/CacheService.java index 30160bd93..0228ef0da 100644 --- a/src/main/java/io/mycat/cache/CacheService.java +++ b/src/main/java/io/mycat/cache/CacheService.java @@ -23,21 +23,22 @@ */ package io.mycat.cache; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.Properties; -import org.apache.log4j.Logger; - /** * cache service for other component default using memory cache encache - * + * * @author wuzhih - * */ public class CacheService { - private static final Logger logger = Logger.getLogger(CacheService.class); + private static final Logger logger = LoggerFactory + .getLogger(CacheService.class); private final Map poolFactorys = new HashMap(); private final Map allPools = new HashMap(); @@ -167,7 +168,7 @@ private CachePoolFactory getCacheFact(String type) { /** * get cache pool by name ,caller should cache result - * + * * @param poolName * @return CachePool */ diff --git a/src/main/java/io/mycat/cache/DefaultLayedCachePool.java b/src/main/java/io/mycat/cache/DefaultLayedCachePool.java index 8a348963a..bf302ba70 100644 --- a/src/main/java/io/mycat/cache/DefaultLayedCachePool.java +++ b/src/main/java/io/mycat/cache/DefaultLayedCachePool.java @@ -23,14 +23,15 @@ */ package io.mycat.cache; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.util.HashMap; import java.util.Map; import java.util.concurrent.locks.ReentrantLock; -import org.apache.log4j.Logger; - public class DefaultLayedCachePool implements LayerCachePool { - private static final Logger LOGGER = Logger + private static final Logger LOGGER = LoggerFactory .getLogger(DefaultLayedCachePool.class); protected Map allCaches = new HashMap(); protected final ReentrantLock lock = new ReentrantLock(); diff --git a/src/main/java/io/mycat/cache/impl/EnchachePool.java b/src/main/java/io/mycat/cache/impl/EnchachePool.java index d48c7d85d..810775cb6 100644 --- a/src/main/java/io/mycat/cache/impl/EnchachePool.java +++ b/src/main/java/io/mycat/cache/impl/EnchachePool.java @@ -27,8 +27,8 @@ import io.mycat.cache.CacheStatic; import net.sf.ehcache.Cache; import net.sf.ehcache.Element; - -import org.apache.log4j.Logger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * encache based cache pool @@ -37,7 +37,8 @@ * */ public class EnchachePool implements CachePool { - private static final Logger LOGGER = Logger.getLogger(EnchachePool.class); + private static final Logger LOGGER = LoggerFactory + .getLogger(EnchachePool.class); private final Cache enCache; private final CacheStatic cacheStati = new CacheStatic(); private final String name; diff --git a/src/main/java/io/mycat/cache/impl/LevelDBPool.java b/src/main/java/io/mycat/cache/impl/LevelDBPool.java index 679728e9d..584c0fd91 100644 --- a/src/main/java/io/mycat/cache/impl/LevelDBPool.java +++ b/src/main/java/io/mycat/cache/impl/LevelDBPool.java @@ -3,19 +3,15 @@ import io.mycat.cache.CachePool; import io.mycat.cache.CacheStatic; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; - -import org.apache.log4j.Logger; import org.iq80.leveldb.DB; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.*; public class LevelDBPool implements CachePool { - private static final Logger LOGGER = Logger.getLogger(LevelDBPool.class); + private static final Logger LOGGER = LoggerFactory.getLogger(LevelDBPool.class); private final DB cache; private final CacheStatic cacheStati = new CacheStatic(); private final String name; diff --git a/src/main/java/io/mycat/route/MyCATSequnceProcessor.java b/src/main/java/io/mycat/route/MyCATSequnceProcessor.java index b008c8a1a..6f989e4d8 100644 --- a/src/main/java/io/mycat/route/MyCATSequnceProcessor.java +++ b/src/main/java/io/mycat/route/MyCATSequnceProcessor.java @@ -11,14 +11,14 @@ import io.mycat.server.packet.ResultSetHeaderPacket; import io.mycat.server.packet.RowDataPacket; import io.mycat.util.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; -import org.apache.log4j.Logger; - public class MyCATSequnceProcessor { - private static final Logger LOGGER = Logger + private static final Logger LOGGER = LoggerFactory .getLogger(MyCATSequnceProcessor.class); private LinkedBlockingQueue seqSQLQueue = new LinkedBlockingQueue(); private volatile boolean running = true; diff --git a/src/main/java/io/mycat/route/RouteService.java b/src/main/java/io/mycat/route/RouteService.java index 3e60f2357..71f716418 100644 --- a/src/main/java/io/mycat/route/RouteService.java +++ b/src/main/java/io/mycat/route/RouteService.java @@ -33,6 +33,8 @@ import io.mycat.server.SystemConfig; import io.mycat.server.config.SchemaConfig; import io.mycat.server.parser.ServerParse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.sql.SQLNonTransientException; import java.sql.SQLSyntaxErrorException; @@ -40,11 +42,9 @@ import java.util.Locale; import java.util.Map; -import org.apache.log4j.Logger; - public class RouteService { - private static final Logger LOGGER = Logger - .getLogger(RouteService.class); + private static final Logger LOGGER = LoggerFactory + .getLogger(RouteService.class); private final CachePool sqlRouteCache; private final LayerCachePool tableId2DataNodeCache; diff --git a/src/main/java/io/mycat/route/function/PartitionByDate.java b/src/main/java/io/mycat/route/function/PartitionByDate.java index 650d14926..a7741ab2d 100644 --- a/src/main/java/io/mycat/route/function/PartitionByDate.java +++ b/src/main/java/io/mycat/route/function/PartitionByDate.java @@ -1,12 +1,12 @@ package io.mycat.route.function; import io.mycat.server.config.RuleAlgorithm; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.text.ParseException; import java.text.SimpleDateFormat; -import org.apache.log4j.Logger; - /** * 例子 按日期列分区 格式 between操作解析的范例 * @@ -14,8 +14,7 @@ * */ public class PartitionByDate extends AbstractPartitionAlgorithm implements RuleAlgorithm { - private static final Logger LOGGER = Logger - .getLogger(PartitionByDate.class); + private static final Logger LOGGER = LoggerFactory.getLogger(PartitionByDate.class); private String sBeginDate; private String sPartionDay; diff --git a/src/main/java/io/mycat/route/function/PartitionByRangeDateHash.java b/src/main/java/io/mycat/route/function/PartitionByRangeDateHash.java index fd7c3822e..8cb57a44d 100644 --- a/src/main/java/io/mycat/route/function/PartitionByRangeDateHash.java +++ b/src/main/java/io/mycat/route/function/PartitionByRangeDateHash.java @@ -1,14 +1,13 @@ package io.mycat.route.function; +import com.google.common.hash.Hashing; import io.mycat.server.config.RuleAlgorithm; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.text.ParseException; import java.text.SimpleDateFormat; -import org.apache.log4j.Logger; - -import com.google.common.hash.Hashing; - /** * 先根据日期分组,再根据时间hash使得短期内数据分布的更均匀 * 优点可以避免扩容时的数据迁移,又可以一定程度上避免范围分片的热点问题 @@ -18,7 +17,7 @@ */ public class PartitionByRangeDateHash extends AbstractPartitionAlgorithm implements RuleAlgorithm { - private static final Logger LOGGER = Logger + private static final Logger LOGGER = LoggerFactory .getLogger(PartitionByRangeDateHash.class); private String sBeginDate; diff --git a/src/main/java/io/mycat/route/handler/HintCatletHandler.java b/src/main/java/io/mycat/route/handler/HintCatletHandler.java index cf4442137..a1fde38ef 100644 --- a/src/main/java/io/mycat/route/handler/HintCatletHandler.java +++ b/src/main/java/io/mycat/route/handler/HintCatletHandler.java @@ -8,18 +8,18 @@ import io.mycat.server.config.SchemaConfig; import io.mycat.sqlengine.Catlet; import io.mycat.sqlengine.EngineCtx; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.sql.SQLNonTransientException; -import org.apache.log4j.Logger; - /** * 处理注释中类型为catlet 的情况,每个catlet为一个用户自定义Java代码类,用于进行复杂查询SQL(只能是查询SQL)的自定义执行过程, * 目前主要用于跨分片Join的人工智能编码 */ public class HintCatletHandler implements HintHandler { - private static final Logger LOGGER = Logger + private static final Logger LOGGER = LoggerFactory .getLogger(HintCatletHandler.class); /** diff --git a/src/main/java/io/mycat/route/handler/HintSchemaHandler.java b/src/main/java/io/mycat/route/handler/HintSchemaHandler.java index ff628e52d..2bb160e96 100644 --- a/src/main/java/io/mycat/route/handler/HintSchemaHandler.java +++ b/src/main/java/io/mycat/route/handler/HintSchemaHandler.java @@ -8,17 +8,17 @@ import io.mycat.server.MycatServer; import io.mycat.server.SystemConfig; import io.mycat.server.config.SchemaConfig; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.sql.SQLNonTransientException; -import org.apache.log4j.Logger; - /** * 处理注释中类型为schema 的情况(按照指定schema做路由解析) */ public class HintSchemaHandler implements HintHandler { - private static final Logger LOGGER = Logger + private static final Logger LOGGER = LoggerFactory .getLogger(HintSchemaHandler.class); private RouteStrategy routeStrategy; diff --git a/src/main/java/io/mycat/route/impl/AbstractRouteStrategy.java b/src/main/java/io/mycat/route/impl/AbstractRouteStrategy.java index d9e99b8d9..a04ffdebe 100644 --- a/src/main/java/io/mycat/route/impl/AbstractRouteStrategy.java +++ b/src/main/java/io/mycat/route/impl/AbstractRouteStrategy.java @@ -10,14 +10,14 @@ import io.mycat.server.config.SchemaConfig; import io.mycat.server.parser.ServerParse; import io.mycat.sqlengine.mpp.LoadData; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.sql.SQLNonTransientException; import java.sql.SQLSyntaxErrorException; -import org.apache.log4j.Logger; - public abstract class AbstractRouteStrategy implements RouteStrategy { - private static final Logger LOGGER = Logger.getLogger(AbstractRouteStrategy.class); + private static final Logger LOGGER = LoggerFactory.getLogger(AbstractRouteStrategy.class); @Override public RouteResultset route(SystemConfig sysConfig, SchemaConfig schema,int sqlType, String origSQL, diff --git a/src/main/java/io/mycat/route/impl/DruidMycatRouteStrategy.java b/src/main/java/io/mycat/route/impl/DruidMycatRouteStrategy.java index 3601bfafb..75978d9dd 100644 --- a/src/main/java/io/mycat/route/impl/DruidMycatRouteStrategy.java +++ b/src/main/java/io/mycat/route/impl/DruidMycatRouteStrategy.java @@ -1,16 +1,19 @@ package io.mycat.route.impl; +import com.alibaba.druid.sql.ast.SQLStatement; +import com.alibaba.druid.sql.ast.statement.SQLSelectStatement; +import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlReplaceStatement; +import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser; +import com.alibaba.druid.sql.parser.SQLStatementParser; import io.mycat.cache.LayerCachePool; import io.mycat.route.RouteResultset; import io.mycat.route.RouteResultsetNode; -import io.mycat.route.parser.druid.DruidParser; -import io.mycat.route.parser.druid.DruidParserFactory; -import io.mycat.route.parser.druid.MycatSchemaStatVisitor; -import io.mycat.route.parser.druid.MycatStatementParser; -import io.mycat.route.parser.druid.RouteCalculateUnit; +import io.mycat.route.parser.druid.*; import io.mycat.route.util.RouterUtil; import io.mycat.server.config.SchemaConfig; import io.mycat.server.parser.ServerParse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.sql.SQLNonTransientException; import java.sql.SQLSyntaxErrorException; @@ -18,16 +21,8 @@ import java.util.SortedSet; import java.util.TreeSet; -import org.apache.log4j.Logger; - -import com.alibaba.druid.sql.ast.SQLStatement; -import com.alibaba.druid.sql.ast.statement.SQLSelectStatement; -import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlReplaceStatement; -import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser; -import com.alibaba.druid.sql.parser.SQLStatementParser; - public class DruidMycatRouteStrategy extends AbstractRouteStrategy { - public static final Logger LOGGER = Logger.getLogger(DruidMycatRouteStrategy.class); + private static final Logger LOGGER = LoggerFactory.getLogger(DruidMycatRouteStrategy.class); @Override public RouteResultset routeNormalSqlWithAST(SchemaConfig schema, diff --git a/src/main/java/io/mycat/route/parser/druid/impl/DefaultDruidParser.java b/src/main/java/io/mycat/route/parser/druid/impl/DefaultDruidParser.java index 8283b49d0..f34c9ec8e 100644 --- a/src/main/java/io/mycat/route/parser/druid/impl/DefaultDruidParser.java +++ b/src/main/java/io/mycat/route/parser/druid/impl/DefaultDruidParser.java @@ -1,5 +1,8 @@ package io.mycat.route.parser.druid.impl; +import com.alibaba.druid.sql.ast.SQLStatement; +import com.alibaba.druid.sql.visitor.SchemaStatVisitor; +import com.alibaba.druid.stat.TableStat.Condition; import io.mycat.cache.LayerCachePool; import io.mycat.route.RouteResultset; import io.mycat.route.parser.druid.DruidParser; @@ -9,6 +12,8 @@ import io.mycat.server.config.SchemaConfig; import io.mycat.sqlengine.mpp.RangeValue; import io.mycat.util.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.sql.SQLNonTransientException; import java.util.ArrayList; @@ -16,12 +21,6 @@ import java.util.List; import java.util.Map; -import org.apache.log4j.Logger; - -import com.alibaba.druid.sql.ast.SQLStatement; -import com.alibaba.druid.sql.visitor.SchemaStatVisitor; -import com.alibaba.druid.stat.TableStat.Condition; - /** * 对SQLStatement解析 * 主要通过visitor解析和statement解析:有些类型的SQLStatement通过visitor解析足够了, @@ -31,7 +30,8 @@ * */ public class DefaultDruidParser implements DruidParser { - protected static final Logger LOGGER = Logger.getLogger(DefaultDruidParser.class); + protected static final Logger LOGGER = LoggerFactory + .getLogger(DefaultDruidParser.class); /** * 解析得到的结果 */ diff --git a/src/main/java/io/mycat/route/util/RouterUtil.java b/src/main/java/io/mycat/route/util/RouterUtil.java index 4253b042f..5dd366aab 100644 --- a/src/main/java/io/mycat/route/util/RouterUtil.java +++ b/src/main/java/io/mycat/route/util/RouterUtil.java @@ -1,5 +1,13 @@ package io.mycat.route.util; +import com.alibaba.druid.sql.ast.SQLExpr; +import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlInsertStatement; +import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser; +import com.alibaba.druid.wall.spi.WallVisitorUtils; +import com.google.common.base.Strings; +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; import io.mycat.backend.PhysicalDBNode; import io.mycat.cache.LayerCachePool; import io.mycat.route.RouteResultset; @@ -19,39 +27,21 @@ import io.mycat.sqlengine.mpp.ColumnRoutePair; import io.mycat.sqlengine.mpp.LoadData; import io.mycat.util.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.sql.SQLNonTransientException; import java.sql.SQLSyntaxErrorException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.concurrent.Callable; -import org.apache.log4j.Logger; - -import com.alibaba.druid.sql.ast.SQLExpr; -import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlInsertStatement; -import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser; -import com.alibaba.druid.wall.spi.WallVisitorUtils; -import com.google.common.base.Strings; -import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; - /** * 从ServerRouterUtil中抽取的一些公用方法,路由解析工具类 * @author wang.dw * */ public class RouterUtil { - private static final Logger LOGGER = Logger.getLogger(RouterUtil.class); + private static final Logger LOGGER = LoggerFactory.getLogger(RouterUtil.class); /** * 移除执行语句中的数据库名 * diff --git a/src/main/java/io/mycat/route/util/VelocityUtil.java b/src/main/java/io/mycat/route/util/VelocityUtil.java index fc2a67ba9..ca94f47b2 100644 --- a/src/main/java/io/mycat/route/util/VelocityUtil.java +++ b/src/main/java/io/mycat/route/util/VelocityUtil.java @@ -1,13 +1,14 @@ package io.mycat.route.util; -import java.io.IOException; -import java.io.StringWriter; -import java.io.Writer; - -import org.apache.log4j.Logger; import org.apache.velocity.VelocityContext; import org.apache.velocity.app.Velocity; import org.apache.velocity.exception.ParseErrorException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.io.StringWriter; +import java.io.Writer; /** * @@ -15,7 +16,8 @@ * */ public class VelocityUtil { - private static final Logger LOGGER = Logger.getLogger(VelocityUtil.class); + private static final Logger LOGGER = LoggerFactory + .getLogger(VelocityUtil.class); private static DateUtil dateUtil = new DateUtil(); private static StringUtil stringUtil = new StringUtil(); diff --git a/src/main/java/io/mycat/server/MySQLFrontConnection.java b/src/main/java/io/mycat/server/MySQLFrontConnection.java index 455fdacc8..17da6a922 100644 --- a/src/main/java/io/mycat/server/MySQLFrontConnection.java +++ b/src/main/java/io/mycat/server/MySQLFrontConnection.java @@ -264,7 +264,8 @@ public void query(byte[] data) { && sqlType!=ServerParse.SHOW && sqlType!=ServerParse.KILL && sqlType!=ServerParse.KILL_QUERY - && sqlType!=ServerParse.MYSQL_COMMENT ) { + && sqlType!=ServerParse.MYSQL_COMMENT + && sqlType!=ServerParse.MYSQL_CMD_COMMENT) { writeErrMessage(ErrorCode.ERR_BAD_LOGICDB, "No MyCAT Database selected"); return; } diff --git a/src/main/java/io/mycat/server/MycatNode.java b/src/main/java/io/mycat/server/MycatNode.java index a2636729a..511a152f3 100644 --- a/src/main/java/io/mycat/server/MycatNode.java +++ b/src/main/java/io/mycat/server/MycatNode.java @@ -24,14 +24,15 @@ package io.mycat.server; import io.mycat.server.config.MycatNodeConfig; - -import org.apache.log4j.Logger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * @author mycat */ public class MycatNode { - private static final Logger LOGGER = Logger.getLogger(MycatNode.class); + private static final Logger LOGGER = LoggerFactory + .getLogger(MycatNode.class); private final String name; private final MycatNodeConfig config; diff --git a/src/main/java/io/mycat/server/MycatPrivileges.java b/src/main/java/io/mycat/server/MycatPrivileges.java index a3e737232..d7ed65fde 100644 --- a/src/main/java/io/mycat/server/MycatPrivileges.java +++ b/src/main/java/io/mycat/server/MycatPrivileges.java @@ -25,12 +25,12 @@ import io.mycat.MycatConfig; import io.mycat.server.config.UserConfig; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.Map; import java.util.Set; -import org.apache.log4j.Logger; - /** * @author mycat */ @@ -39,8 +39,9 @@ public class MycatPrivileges implements FrontendPrivileges { * 无需每次建立连接都new实例。 */ private static MycatPrivileges instance = new MycatPrivileges(); - - private static final Logger ALARM = Logger.getLogger("alarm"); + + private static final Logger ALARM = LoggerFactory + .getLogger("alarm"); public static MycatPrivileges instance() { return instance; diff --git a/src/main/java/io/mycat/server/MycatServer.java b/src/main/java/io/mycat/server/MycatServer.java index f51b113bc..a068c0815 100644 --- a/src/main/java/io/mycat/server/MycatServer.java +++ b/src/main/java/io/mycat/server/MycatServer.java @@ -23,23 +23,19 @@ */ package io.mycat.server; -import io.mycat.Log4jInitializer; +import com.google.common.util.concurrent.ListeningExecutorService; +import com.google.common.util.concurrent.MoreExecutors; import io.mycat.MycatConfig; import io.mycat.backend.PhysicalDBPool; import io.mycat.cache.CacheService; -import io.mycat.net.BufferPool; -import io.mycat.net.ExecutorUtil; -import io.mycat.net.NIOAcceptor; -import io.mycat.net.NIOConnector; -import io.mycat.net.NIOReactorPool; -import io.mycat.net.NameableExecutor; -import io.mycat.net.NamebleScheduledExecutor; -import io.mycat.net.NetSystem; +import io.mycat.net.*; import io.mycat.route.MyCATSequnceProcessor; import io.mycat.route.RouteService; import io.mycat.server.classloader.DynaClassLoader; import io.mycat.server.interceptor.SQLInterceptor; import io.mycat.util.TimeUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.File; import java.io.FileInputStream; @@ -53,388 +49,379 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; -import org.apache.log4j.Logger; - -import com.google.common.util.concurrent.ListeningExecutorService; -import com.google.common.util.concurrent.MoreExecutors; - /** * @author mycat */ public class MycatServer { - public static final String NAME = "MyCat"; - private static final long LOG_WATCH_DELAY = 60000L; - private static final long TIME_UPDATE_PERIOD = 20L; - private static final MycatServer INSTANCE = new MycatServer(); - private static final Logger LOGGER = Logger.getLogger("MycatServer"); - private final RouteService routerService; - private final CacheService cacheService; - private Properties dnIndexProperties; - private AsynchronousChannelGroup[] asyncChannelGroups; - private volatile int channelIndex = 0; - private final MyCATSequnceProcessor sequnceProcessor = new MyCATSequnceProcessor(); - private final DynaClassLoader catletClassLoader; - private final SQLInterceptor sqlInterceptor; - private final AtomicLong xaIDInc = new AtomicLong(); - - public static final MycatServer getInstance() { - return INSTANCE; - } - - private final MycatConfig config; - private final Timer timer; - private final AtomicBoolean isOnline; - private final long startupTime; - private NamebleScheduledExecutor timerExecutor; - private ListeningExecutorService listeningExecutorService; - - public MycatServer() { - this.config = new MycatConfig(); - this.timer = new Timer(NAME + "Timer", true); - this.isOnline = new AtomicBoolean(true); - cacheService = new CacheService(); - routerService = new RouteService(cacheService); - // load datanode active index from properties - dnIndexProperties = loadDnIndexProps(); - try { - sqlInterceptor = (SQLInterceptor) Class.forName( - config.getSystem().getSqlInterceptor()).newInstance(); - } catch (Exception e) { - throw new RuntimeException(e); - } - catletClassLoader = new DynaClassLoader(SystemConfig.getHomePath() - + File.separator + "catlet", config.getSystem() - .getCatletClassCheckSeconds()); - this.startupTime = TimeUtil.currentTimeMillis(); - } - - public DynaClassLoader getCatletClassLoader() { - return catletClassLoader; - } - - public MyCATSequnceProcessor getSequnceProcessor() { - return sequnceProcessor; - } - - public SQLInterceptor getSqlInterceptor() { - return sqlInterceptor; - } - - public String genXATXID() { - long seq = this.xaIDInc.incrementAndGet(); - if (seq < 0) { - synchronized (xaIDInc) { - if (xaIDInc.get() < 0) { - xaIDInc.set(0); - } - seq = xaIDInc.incrementAndGet(); - } - } - return "'Mycat." + this.getConfig().getSystem().getMycatNodeId() + "." - + seq + "'"; - } - - /** - * get next AsynchronousChannel ,first is exclude if multi - * AsynchronousChannelGroups - * - * @return - */ - public AsynchronousChannelGroup getNextAsyncChannelGroup() { - if (asyncChannelGroups.length == 1) { - return asyncChannelGroups[0]; - } else { - int index = (++channelIndex) % asyncChannelGroups.length; - if (index == 0) { - ++channelIndex; - return asyncChannelGroups[1]; - } else { - return asyncChannelGroups[index]; - } - - } - } - - public MycatConfig getConfig() { - return config; - } - - public void beforeStart() { - String home = SystemConfig.getHomePath(); - Log4jInitializer.configureAndWatch(home + "/conf/log4j.xml", - LOG_WATCH_DELAY); - } - - public void startup() throws IOException { - - SystemConfig system = config.getSystem(); - int processorCount = system.getProcessors(); - - // server startup - LOGGER.info("==============================================="); - LOGGER.info(NAME + " is ready to startup ..."); - String inf = "Startup processors ...,total processors:" - + system.getProcessors() + ",aio thread pool size:" - + system.getProcessorExecutor() - + " \r\n each process allocated socket buffer pool " - + " bytes ,buffer chunk size:" - + system.getProcessorBufferChunk() - + " buffer pool's capacity(buferPool/bufferChunk) is:" - + system.getProcessorBufferPool() - / system.getProcessorBufferChunk(); - LOGGER.info(inf); - LOGGER.info("sysconfig params:" + system.toString()); - - int threadPoolSize = system.getProcessorExecutor(); - int processBuferPool = system.getProcessorBufferPool(); - int processBufferChunk = system.getProcessorBufferChunk(); - int socketBufferLocalPercent = system.getProcessorBufferLocalPercent(); - - // server startup - LOGGER.info("==============================================="); - LOGGER.info(NAME + " is ready to startup ,network config:" + system); - - // message byte buffer pool - BufferPool bufferPool = new BufferPool(processBuferPool, - processBufferChunk, system.getFrontSocketSoRcvbuf(), - socketBufferLocalPercent / processorCount); - // Business Executor ,用来执行那些耗时的任务 - NameableExecutor businessExecutor = ExecutorUtil.create( - "BusinessExecutor", threadPoolSize); - // 定时器Executor,用来执行定时任务 - timerExecutor = ExecutorUtil.createSheduledExecute("Timer", - system.getTimerExecutor()); - listeningExecutorService = MoreExecutors - .listeningDecorator(businessExecutor); - - // create netsystem to store our network related objects - NetSystem netSystem = new NetSystem(bufferPool, businessExecutor, - timerExecutor); - netSystem.setNetConfig(system); - // Reactor pool - NIOReactorPool reactorPool = new NIOReactorPool( - BufferPool.LOCAL_BUF_THREAD_PREX + "NIOREACTOR", processorCount); - NIOConnector connector = new NIOConnector( - BufferPool.LOCAL_BUF_THREAD_PREX + "NIOConnector", reactorPool); - connector.start(); - netSystem.setConnector(connector); - - MySQLFrontConnectionFactory frontFactory = new MySQLFrontConnectionFactory( - new MySQLFrontConnectionHandler()); - NIOAcceptor server = new NIOAcceptor(BufferPool.LOCAL_BUF_THREAD_PREX - + NAME + "Server", system.getBindIp(), system.getServerPort(), - frontFactory, reactorPool); - server.start(); - // server started - LOGGER.info(server.getName() + " is started and listening on " - + server.getPort()); - LOGGER.info("==============================================="); - // init datahost - Map dataHosts = config.getDataHosts(); - LOGGER.info("Initialize dataHost ..."); - for (PhysicalDBPool node : dataHosts.values()) { - String index = dnIndexProperties.getProperty(node.getHostName(), - "0"); - if (!"0".equals(index)) { - LOGGER.info("init datahost: " + node.getHostName() - + " to use datasource index:" + index); - } - node.init(Integer.valueOf(index)); - node.startHeartbeat(); - } - long dataNodeIldeCheckPeriod = system.getDataNodeIdleCheckPeriod(); - timer.schedule(updateTime(), 0L, TIME_UPDATE_PERIOD); - timer.schedule(processorCheck(), 0L, system.getProcessorCheckPeriod()); - timer.schedule(dataNodeConHeartBeatCheck(dataNodeIldeCheckPeriod), 0L, - dataNodeIldeCheckPeriod); - timer.schedule(dataNodeHeartbeat(), 0L, - system.getDataNodeHeartbeatPeriod()); - timer.schedule(catletClassClear(), 30000); - - } - - private TimerTask catletClassClear() { - return new TimerTask() { - @Override - public void run() { - try { - catletClassLoader.clearUnUsedClass(); - } catch (Exception e) { - LOGGER.warn("catletClassClear err " + e); - } - }; - }; - } - - private Properties loadDnIndexProps() { - Properties prop = new Properties(); - File file = new File(SystemConfig.getHomePath(), "conf" - + File.separator + "dnindex.properties"); - if (!file.exists()) { - return prop; - } - FileInputStream filein = null; - try { - filein = new FileInputStream(file); - prop.load(filein); - } catch (Exception e) { - LOGGER.warn("load DataNodeIndex err:" + e); - } finally { - if (filein != null) { - try { - filein.close(); - } catch (IOException e) { - } - } - } - return prop; - } - - /** - * save cur datanode index to properties file - * - * @param dataNode - * @param curIndex - */ - public synchronized void saveDataHostIndex(String dataHost, int curIndex) { - - File file = new File(SystemConfig.getHomePath(), "conf" - + File.separator + "dnindex.properties"); - FileOutputStream fileOut = null; - try { - String oldIndex = dnIndexProperties.getProperty(dataHost); - String newIndex = String.valueOf(curIndex); - if (newIndex.equals(oldIndex)) { - return; - } - dnIndexProperties.setProperty(dataHost, newIndex); - LOGGER.info("save DataHost index " + dataHost + " cur index " - + curIndex); - - File parent = file.getParentFile(); - if (parent != null && !parent.exists()) { - parent.mkdirs(); - } - - fileOut = new FileOutputStream(file); - dnIndexProperties.store(fileOut, "update"); - } catch (Exception e) { - LOGGER.warn("saveDataNodeIndex err:", e); - } finally { - if (fileOut != null) { - try { - fileOut.close(); - } catch (IOException e) { - } - } - } - - } - - public RouteService getRouterService() { - return routerService; - } - - public CacheService getCacheService() { - return cacheService; - } - - public RouteService getRouterservice() { - return routerService; - } - - public long getStartupTime() { - return startupTime; - } - - public boolean isOnline() { - return isOnline.get(); - } - - public void offline() { - isOnline.set(false); - } - - public void online() { - isOnline.set(true); - } - - // 系统时间定时更新任务 - private TimerTask updateTime() { - return new TimerTask() { - @Override - public void run() { - TimeUtil.update(); - } - }; - } - - // 处理器定时检查任务 - private TimerTask processorCheck() { - return new TimerTask() { - @Override - public void run() { - timerExecutor.execute(new Runnable() { - @Override - public void run() { - try { - NetSystem.getInstance().checkConnections(); - } catch (Exception e) { - LOGGER.warn("checkBackendCons caught err:", e); - } - - } - }); - } - }; - } - - // 数据节点定时连接空闲超时检查任务 - private TimerTask dataNodeConHeartBeatCheck(final long heartPeriod) { - return new TimerTask() { - @Override - public void run() { - timerExecutor.execute(new Runnable() { - @Override - public void run() { - Map nodes = config - .getDataHosts(); - for (PhysicalDBPool node : nodes.values()) { - node.heartbeatCheck(heartPeriod); - } - Map _nodes = config - .getBackupDataHosts(); - if (_nodes != null) { - for (PhysicalDBPool node : _nodes.values()) { - node.heartbeatCheck(heartPeriod); - } - } - } - }); - } - }; - } - - // 数据节点定时心跳任务 - private TimerTask dataNodeHeartbeat() { - return new TimerTask() { - @Override - public void run() { - timerExecutor.execute(new Runnable() { - @Override - public void run() { - Map nodes = config - .getDataHosts(); - for (PhysicalDBPool node : nodes.values()) { - node.doHeartbeat(); - } - } - }); - } - }; - } - - public ListeningExecutorService getListeningExecutorService() { - return listeningExecutorService; - } + public static final String NAME = "MyCat"; + private static final long LOG_WATCH_DELAY = 60000L; + private static final long TIME_UPDATE_PERIOD = 20L; + private static final MycatServer INSTANCE = new MycatServer(); + private static final Logger LOGGER = LoggerFactory.getLogger("MycatServer"); + private final RouteService routerService; + private final CacheService cacheService; + private Properties dnIndexProperties; + private AsynchronousChannelGroup[] asyncChannelGroups; + private volatile int channelIndex = 0; + private final MyCATSequnceProcessor sequnceProcessor = new MyCATSequnceProcessor(); + private final DynaClassLoader catletClassLoader; + private final SQLInterceptor sqlInterceptor; + private final AtomicLong xaIDInc = new AtomicLong(); + + public static final MycatServer getInstance() { + return INSTANCE; + } + + private final MycatConfig config; + private final Timer timer; + private final AtomicBoolean isOnline; + private final long startupTime; + private NamebleScheduledExecutor timerExecutor; + private ListeningExecutorService listeningExecutorService; + + public MycatServer() { + this.config = new MycatConfig(); + this.timer = new Timer(NAME + "Timer", true); + this.isOnline = new AtomicBoolean(true); + cacheService = new CacheService(); + routerService = new RouteService(cacheService); + // load datanode active index from properties + dnIndexProperties = loadDnIndexProps(); + try { + sqlInterceptor = (SQLInterceptor) Class.forName( + config.getSystem().getSqlInterceptor()).newInstance(); + } catch (Exception e) { + throw new RuntimeException(e); + } + catletClassLoader = new DynaClassLoader(SystemConfig.getHomePath() + + File.separator + "catlet", config.getSystem() + .getCatletClassCheckSeconds()); + this.startupTime = TimeUtil.currentTimeMillis(); + } + + public DynaClassLoader getCatletClassLoader() { + return catletClassLoader; + } + + public MyCATSequnceProcessor getSequnceProcessor() { + return sequnceProcessor; + } + + public SQLInterceptor getSqlInterceptor() { + return sqlInterceptor; + } + + public String genXATXID() { + long seq = this.xaIDInc.incrementAndGet(); + if (seq < 0) { + synchronized (xaIDInc) { + if (xaIDInc.get() < 0) { + xaIDInc.set(0); + } + seq = xaIDInc.incrementAndGet(); + } + } + return "'Mycat." + this.getConfig().getSystem().getMycatNodeId() + "." + + seq + "'"; + } + + /** + * get next AsynchronousChannel ,first is exclude if multi + * AsynchronousChannelGroups + * + * @return + */ + public AsynchronousChannelGroup getNextAsyncChannelGroup() { + if (asyncChannelGroups.length == 1) { + return asyncChannelGroups[0]; + } else { + int index = (++channelIndex) % asyncChannelGroups.length; + if (index == 0) { + ++channelIndex; + return asyncChannelGroups[1]; + } else { + return asyncChannelGroups[index]; + } + + } + } + + public MycatConfig getConfig() { + return config; + } + + public void startup() throws IOException { + + SystemConfig system = config.getSystem(); + int processorCount = system.getProcessors(); + + // server startup + LOGGER.info("==============================================="); + LOGGER.info(NAME + " is ready to startup ..."); + String inf = "Startup processors ...,total processors:" + + system.getProcessors() + ",aio thread pool size:" + + system.getProcessorExecutor() + + " \r\n each process allocated socket buffer pool " + + " bytes ,buffer chunk size:" + + system.getProcessorBufferChunk() + + " buffer pool's capacity(buferPool/bufferChunk) is:" + + system.getProcessorBufferPool() + / system.getProcessorBufferChunk(); + LOGGER.info(inf); + LOGGER.info("sysconfig params:" + system.toString()); + + int threadPoolSize = system.getProcessorExecutor(); + int processBuferPool = system.getProcessorBufferPool(); + int processBufferChunk = system.getProcessorBufferChunk(); + int socketBufferLocalPercent = system.getProcessorBufferLocalPercent(); + + // server startup + LOGGER.info("==============================================="); + LOGGER.info(NAME + " is ready to startup ,network config:" + system); + + // message byte buffer pool + BufferPool bufferPool = new BufferPool(processBuferPool, + processBufferChunk, system.getFrontSocketSoRcvbuf(), + socketBufferLocalPercent / processorCount); + // Business Executor ,用来执行那些耗时的任务 + NameableExecutor businessExecutor = ExecutorUtil.create( + "BusinessExecutor", threadPoolSize); + // 定时器Executor,用来执行定时任务 + timerExecutor = ExecutorUtil.createSheduledExecute("Timer", + system.getTimerExecutor()); + listeningExecutorService = MoreExecutors + .listeningDecorator(businessExecutor); + + // create netsystem to store our network related objects + NetSystem netSystem = new NetSystem(bufferPool, businessExecutor, + timerExecutor); + netSystem.setNetConfig(system); + // Reactor pool + NIOReactorPool reactorPool = new NIOReactorPool( + BufferPool.LOCAL_BUF_THREAD_PREX + "NIOREACTOR", processorCount); + NIOConnector connector = new NIOConnector( + BufferPool.LOCAL_BUF_THREAD_PREX + "NIOConnector", reactorPool); + connector.start(); + netSystem.setConnector(connector); + + MySQLFrontConnectionFactory frontFactory = new MySQLFrontConnectionFactory( + new MySQLFrontConnectionHandler()); + NIOAcceptor server = new NIOAcceptor(BufferPool.LOCAL_BUF_THREAD_PREX + + NAME + "Server", system.getBindIp(), system.getServerPort(), + frontFactory, reactorPool); + server.start(); + // server started + LOGGER.info(server.getName() + " is started and listening on " + + server.getPort()); + LOGGER.info("==============================================="); + // init datahost + Map dataHosts = config.getDataHosts(); + LOGGER.info("Initialize dataHost ..."); + for (PhysicalDBPool node : dataHosts.values()) { + String index = dnIndexProperties.getProperty(node.getHostName(), + "0"); + if (!"0".equals(index)) { + LOGGER.info("init datahost: " + node.getHostName() + + " to use datasource index:" + index); + } + node.init(Integer.valueOf(index)); + node.startHeartbeat(); + } + long dataNodeIldeCheckPeriod = system.getDataNodeIdleCheckPeriod(); + timer.schedule(updateTime(), 0L, TIME_UPDATE_PERIOD); + timer.schedule(processorCheck(), 0L, system.getProcessorCheckPeriod()); + timer.schedule(dataNodeConHeartBeatCheck(dataNodeIldeCheckPeriod), 0L, + dataNodeIldeCheckPeriod); + timer.schedule(dataNodeHeartbeat(), 0L, + system.getDataNodeHeartbeatPeriod()); + timer.schedule(catletClassClear(), 30000); + + } + + private TimerTask catletClassClear() { + return new TimerTask() { + @Override + public void run() { + try { + catletClassLoader.clearUnUsedClass(); + } catch (Exception e) { + LOGGER.warn("catletClassClear err " + e); + } + } + + ; + }; + } + + private Properties loadDnIndexProps() { + Properties prop = new Properties(); + File file = new File(SystemConfig.getHomePath(), "conf" + + File.separator + "dnindex.properties"); + if (!file.exists()) { + return prop; + } + FileInputStream filein = null; + try { + filein = new FileInputStream(file); + prop.load(filein); + } catch (Exception e) { + LOGGER.warn("load DataNodeIndex err:" + e); + } finally { + if (filein != null) { + try { + filein.close(); + } catch (IOException e) { + } + } + } + return prop; + } + + /** + * save cur datanode index to properties file + * + * @param dataNode + * @param curIndex + */ + public synchronized void saveDataHostIndex(String dataHost, int curIndex) { + + File file = new File(SystemConfig.getHomePath(), "conf" + + File.separator + "dnindex.properties"); + FileOutputStream fileOut = null; + try { + String oldIndex = dnIndexProperties.getProperty(dataHost); + String newIndex = String.valueOf(curIndex); + if (newIndex.equals(oldIndex)) { + return; + } + dnIndexProperties.setProperty(dataHost, newIndex); + LOGGER.info("save DataHost index " + dataHost + " cur index " + + curIndex); + + File parent = file.getParentFile(); + if (parent != null && !parent.exists()) { + parent.mkdirs(); + } + + fileOut = new FileOutputStream(file); + dnIndexProperties.store(fileOut, "update"); + } catch (Exception e) { + LOGGER.warn("saveDataNodeIndex err:", e); + } finally { + if (fileOut != null) { + try { + fileOut.close(); + } catch (IOException e) { + } + } + } + + } + + public RouteService getRouterService() { + return routerService; + } + + public CacheService getCacheService() { + return cacheService; + } + + public RouteService getRouterservice() { + return routerService; + } + + public long getStartupTime() { + return startupTime; + } + + public boolean isOnline() { + return isOnline.get(); + } + + public void offline() { + isOnline.set(false); + } + + public void online() { + isOnline.set(true); + } + + // 系统时间定时更新任务 + private TimerTask updateTime() { + return new TimerTask() { + @Override + public void run() { + TimeUtil.update(); + } + }; + } + + // 处理器定时检查任务 + private TimerTask processorCheck() { + return new TimerTask() { + @Override + public void run() { + timerExecutor.execute(new Runnable() { + @Override + public void run() { + try { + NetSystem.getInstance().checkConnections(); + } catch (Exception e) { + LOGGER.warn("checkBackendCons caught err:", e); + } + + } + }); + } + }; + } + + // 数据节点定时连接空闲超时检查任务 + private TimerTask dataNodeConHeartBeatCheck(final long heartPeriod) { + return new TimerTask() { + @Override + public void run() { + timerExecutor.execute(new Runnable() { + @Override + public void run() { + Map nodes = config + .getDataHosts(); + for (PhysicalDBPool node : nodes.values()) { + node.heartbeatCheck(heartPeriod); + } + Map _nodes = config + .getBackupDataHosts(); + if (_nodes != null) { + for (PhysicalDBPool node : _nodes.values()) { + node.heartbeatCheck(heartPeriod); + } + } + } + }); + } + }; + } + + // 数据节点定时心跳任务 + private TimerTask dataNodeHeartbeat() { + return new TimerTask() { + @Override + public void run() { + timerExecutor.execute(new Runnable() { + @Override + public void run() { + Map nodes = config + .getDataHosts(); + for (PhysicalDBPool node : nodes.values()) { + node.doHeartbeat(); + } + } + }); + } + }; + } + + public ListeningExecutorService getListeningExecutorService() { + return listeningExecutorService; + } } \ No newline at end of file diff --git a/src/main/java/io/mycat/server/NonBlockingSession.java b/src/main/java/io/mycat/server/NonBlockingSession.java index dadcfbd02..8b168b0ae 100644 --- a/src/main/java/io/mycat/server/NonBlockingSession.java +++ b/src/main/java/io/mycat/server/NonBlockingSession.java @@ -28,15 +28,11 @@ import io.mycat.backend.PhysicalDBNode; import io.mycat.route.RouteResultset; import io.mycat.route.RouteResultsetNode; -import io.mycat.server.executors.CommitNodeHandler; -import io.mycat.server.executors.KillConnectionHandler; -import io.mycat.server.executors.MultiNodeCoordinator; -import io.mycat.server.executors.MultiNodeQueryHandler; -import io.mycat.server.executors.RollbackNodeHandler; -import io.mycat.server.executors.RollbackReleaseHandler; -import io.mycat.server.executors.SingleNodeHandler; +import io.mycat.server.executors.*; import io.mycat.server.packet.OkPacket; import io.mycat.server.sqlcmd.SQLCmdConstant; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.HashMap; import java.util.Iterator; @@ -46,14 +42,12 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; -import org.apache.log4j.Logger; - /** * @author mycat * @author mycat */ public class NonBlockingSession{ - public static final Logger LOGGER = Logger + public static final Logger LOGGER = LoggerFactory .getLogger(NonBlockingSession.class); private final MySQLFrontConnection source; @@ -124,7 +118,7 @@ public void execute(RouteResultset rrs, int type) { try { singleNodeHandler.execute(); } catch (Exception e) { - LOGGER.warn(new StringBuilder().append(source).append(rrs), e); + LOGGER.warn("{} {}", source, rrs, e); source.writeErrMessage(ErrorCode.ERR_HANDLE_DATA, e.toString()); } } else { @@ -137,7 +131,7 @@ public void execute(RouteResultset rrs, int type) { try { multiNodeHandler.execute(); } catch (Exception e) { - LOGGER.warn(new StringBuilder().append(source).append(rrs), e); + LOGGER.warn("{} {}", source, rrs, e); source.writeErrMessage(ErrorCode.ERR_HANDLE_DATA, e.toString()); } } diff --git a/src/main/java/io/mycat/server/Versions.java b/src/main/java/io/mycat/server/Versions.java index a9790a465..b7b539ac8 100644 --- a/src/main/java/io/mycat/server/Versions.java +++ b/src/main/java/io/mycat/server/Versions.java @@ -32,6 +32,6 @@ public interface Versions { public static final byte PROTOCOL_VERSION = 10; /**服务器版**/ - public static final byte[] SERVER_VERSION = "5.5.8-mycat-1.4-alpha-20150520235658".getBytes(); + public static final byte[] SERVER_VERSION = "5.5.8-mycat-2.0-dev-20150923200037".getBytes(); } \ No newline at end of file diff --git a/src/main/java/io/mycat/server/classloader/DynaClassLoader.java b/src/main/java/io/mycat/server/classloader/DynaClassLoader.java index ea421d04f..213919f9e 100644 --- a/src/main/java/io/mycat/server/classloader/DynaClassLoader.java +++ b/src/main/java/io/mycat/server/classloader/DynaClassLoader.java @@ -1,16 +1,13 @@ package io.mycat.server.classloader; -import java.io.BufferedInputStream; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.*; import java.util.Iterator; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import org.apache.log4j.Logger; - /** * used for mycat's catlet class loader ,catlet's class file is stored in * Mycat_home/catlet dir @@ -19,7 +16,8 @@ * */ public class DynaClassLoader { - private static final Logger LOGGER = Logger.getLogger("DynaClassLoader"); + private static final Logger LOGGER = LoggerFactory + .getLogger("DynaClassLoader"); /** key- class full name */ private static Map loadedDynaClassMap = new ConcurrentHashMap(); private final String extClassHome; diff --git a/src/main/java/io/mycat/server/config/DnPropertyUtil.java b/src/main/java/io/mycat/server/config/DnPropertyUtil.java index 075be8849..05a669d00 100644 --- a/src/main/java/io/mycat/server/config/DnPropertyUtil.java +++ b/src/main/java/io/mycat/server/config/DnPropertyUtil.java @@ -1,14 +1,14 @@ package io.mycat.server.config; import io.mycat.server.SystemConfig; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.Properties; -import org.apache.log4j.Logger; - /** * * @author yanglixue @@ -16,7 +16,7 @@ */ public class DnPropertyUtil { - private static final Logger LOGGER = Logger.getLogger("DnPropertyUtil"); + private static final Logger LOGGER = LoggerFactory.getLogger("DnPropertyUtil"); /** * 加载dnindex.properties属性文件 diff --git a/src/main/java/io/mycat/server/executors/CommitNodeHandler.java b/src/main/java/io/mycat/server/executors/CommitNodeHandler.java index 50b86c365..97859a4b1 100644 --- a/src/main/java/io/mycat/server/executors/CommitNodeHandler.java +++ b/src/main/java/io/mycat/server/executors/CommitNodeHandler.java @@ -27,16 +27,16 @@ import io.mycat.backend.nio.MySQLBackendConnection; import io.mycat.server.NonBlockingSession; import io.mycat.server.packet.ErrorPacket; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.List; -import org.apache.log4j.Logger; - /** * @author mycat */ public class CommitNodeHandler implements ResponseHandler { - private static final Logger LOGGER = Logger + public static final Logger LOGGER = LoggerFactory .getLogger(CommitNodeHandler.class); private final NonBlockingSession session; diff --git a/src/main/java/io/mycat/server/executors/ConnectionHeartBeatHandler.java b/src/main/java/io/mycat/server/executors/ConnectionHeartBeatHandler.java index 1d3d35605..d0ae02d28 100644 --- a/src/main/java/io/mycat/server/executors/ConnectionHeartBeatHandler.java +++ b/src/main/java/io/mycat/server/executors/ConnectionHeartBeatHandler.java @@ -25,6 +25,8 @@ import io.mycat.backend.BackendConnection; import io.mycat.server.packet.ErrorPacket; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.Collection; import java.util.Iterator; @@ -34,8 +36,6 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.locks.ReentrantLock; -import org.apache.log4j.Logger; - /** * heartbeat check for mysql connections * @@ -43,7 +43,7 @@ * */ public class ConnectionHeartBeatHandler implements ResponseHandler { - private static final Logger LOGGER = Logger + public static final Logger LOGGER = LoggerFactory .getLogger(ConnectionHeartBeatHandler.class); protected final ReentrantLock lock = new ReentrantLock(); private final ConcurrentHashMap allCons = new ConcurrentHashMap(); diff --git a/src/main/java/io/mycat/server/executors/FetchStoreNodeOfChildTableHandler.java b/src/main/java/io/mycat/server/executors/FetchStoreNodeOfChildTableHandler.java index f7a9146fe..fde37588f 100644 --- a/src/main/java/io/mycat/server/executors/FetchStoreNodeOfChildTableHandler.java +++ b/src/main/java/io/mycat/server/executors/FetchStoreNodeOfChildTableHandler.java @@ -32,14 +32,14 @@ import io.mycat.server.packet.ErrorPacket; import io.mycat.server.packet.RowDataPacket; import io.mycat.server.parser.ServerParse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.ReentrantLock; -import org.apache.log4j.Logger; - /** * company where id=(select company_id from customer where id=3); the one which * return data (id) is the datanode to store child table's records @@ -48,7 +48,7 @@ * */ public class FetchStoreNodeOfChildTableHandler implements ResponseHandler { - private static final Logger LOGGER = Logger + private static final Logger LOGGER = LoggerFactory .getLogger(FetchStoreNodeOfChildTableHandler.class); private String sql; private volatile String result; diff --git a/src/main/java/io/mycat/server/executors/GetConnectionHandler.java b/src/main/java/io/mycat/server/executors/GetConnectionHandler.java index 49ee217cd..e4d0d68d9 100644 --- a/src/main/java/io/mycat/server/executors/GetConnectionHandler.java +++ b/src/main/java/io/mycat/server/executors/GetConnectionHandler.java @@ -24,13 +24,13 @@ package io.mycat.server.executors; import io.mycat.backend.BackendConnection; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.atomic.AtomicInteger; -import org.apache.log4j.Logger; - /** * wuzh * @@ -39,7 +39,7 @@ */ public class GetConnectionHandler implements ResponseHandler { private final CopyOnWriteArrayList successCons; - private static final Logger logger = Logger + private static final Logger logger = LoggerFactory .getLogger(GetConnectionHandler.class); private final AtomicInteger finishedCount = new AtomicInteger(0); private final int total; diff --git a/src/main/java/io/mycat/server/executors/KillConnectionHandler.java b/src/main/java/io/mycat/server/executors/KillConnectionHandler.java index 1dd03999b..955078d8f 100644 --- a/src/main/java/io/mycat/server/executors/KillConnectionHandler.java +++ b/src/main/java/io/mycat/server/executors/KillConnectionHandler.java @@ -29,17 +29,17 @@ import io.mycat.server.packet.CommandPacket; import io.mycat.server.packet.ErrorPacket; import io.mycat.server.packet.MySQLPacket; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.UnsupportedEncodingException; import java.util.List; -import org.apache.log4j.Logger; - /** * @author mycat */ public class KillConnectionHandler implements ResponseHandler { - private static final Logger LOGGER = Logger + private static final Logger LOGGER = LoggerFactory .getLogger(KillConnectionHandler.class); private final MySQLBackendConnection killee; diff --git a/src/main/java/io/mycat/server/executors/MultiNodeCoordinator.java b/src/main/java/io/mycat/server/executors/MultiNodeCoordinator.java index c8fe981ab..117a89f86 100644 --- a/src/main/java/io/mycat/server/executors/MultiNodeCoordinator.java +++ b/src/main/java/io/mycat/server/executors/MultiNodeCoordinator.java @@ -4,15 +4,15 @@ import io.mycat.route.RouteResultsetNode; import io.mycat.server.NonBlockingSession; import io.mycat.server.sqlcmd.SQLCtrlCommand; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; -import org.apache.log4j.Logger; - public class MultiNodeCoordinator implements ResponseHandler { - private static final Logger LOGGER = Logger + public static final Logger LOGGER = LoggerFactory .getLogger(MultiNodeCoordinator.class); private final AtomicInteger runningCount = new AtomicInteger(0); private final AtomicInteger faileCount = new AtomicInteger(0); diff --git a/src/main/java/io/mycat/server/executors/MultiNodeHandler.java b/src/main/java/io/mycat/server/executors/MultiNodeHandler.java index 9fdb11883..da5fde7dc 100644 --- a/src/main/java/io/mycat/server/executors/MultiNodeHandler.java +++ b/src/main/java/io/mycat/server/executors/MultiNodeHandler.java @@ -28,17 +28,17 @@ import io.mycat.server.NonBlockingSession; import io.mycat.server.packet.ErrorPacket; import io.mycat.util.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.locks.ReentrantLock; -import org.apache.log4j.Logger; - /** * @author mycat */ abstract class MultiNodeHandler implements ResponseHandler, Terminatable { - private static final Logger LOGGER = Logger + public static final Logger LOGGER = LoggerFactory .getLogger(MultiNodeHandler.class); protected final ReentrantLock lock = new ReentrantLock(); protected final NonBlockingSession session; diff --git a/src/main/java/io/mycat/server/executors/MultiNodeQueryHandler.java b/src/main/java/io/mycat/server/executors/MultiNodeQueryHandler.java index a3b455624..9cf4749a6 100644 --- a/src/main/java/io/mycat/server/executors/MultiNodeQueryHandler.java +++ b/src/main/java/io/mycat/server/executors/MultiNodeQueryHandler.java @@ -44,25 +44,19 @@ import io.mycat.sqlengine.mpp.ColMeta; import io.mycat.sqlengine.mpp.DataMergeService; import io.mycat.sqlengine.mpp.MergeCol; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.IOException; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.concurrent.locks.ReentrantLock; -import org.apache.log4j.Logger; - /** * @author mycat */ public class MultiNodeQueryHandler extends MultiNodeHandler implements LoadDataResponseHandler { - private static final Logger LOGGER = Logger + public static final Logger LOGGER = LoggerFactory .getLogger(MultiNodeQueryHandler.class); private final RouteResultset rrs; diff --git a/src/main/java/io/mycat/server/executors/NewConnectionRespHandler.java b/src/main/java/io/mycat/server/executors/NewConnectionRespHandler.java index 1ae5d4086..d5689246a 100644 --- a/src/main/java/io/mycat/server/executors/NewConnectionRespHandler.java +++ b/src/main/java/io/mycat/server/executors/NewConnectionRespHandler.java @@ -24,13 +24,13 @@ package io.mycat.server.executors; import io.mycat.backend.BackendConnection; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.List; -import org.apache.log4j.Logger; - public class NewConnectionRespHandler implements ResponseHandler { - private static final Logger LOGGER = Logger + private static final Logger LOGGER = LoggerFactory .getLogger(NewConnectionRespHandler.class); @Override diff --git a/src/main/java/io/mycat/server/executors/RollbackNodeHandler.java b/src/main/java/io/mycat/server/executors/RollbackNodeHandler.java index c850c55de..923b17f3b 100644 --- a/src/main/java/io/mycat/server/executors/RollbackNodeHandler.java +++ b/src/main/java/io/mycat/server/executors/RollbackNodeHandler.java @@ -26,16 +26,16 @@ import io.mycat.backend.BackendConnection; import io.mycat.route.RouteResultsetNode; import io.mycat.server.NonBlockingSession; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.List; -import org.apache.log4j.Logger; - /** * @author mycat */ public class RollbackNodeHandler extends MultiNodeHandler { - private static final Logger LOGGER = Logger + public static final Logger LOGGER = LoggerFactory .getLogger(RollbackNodeHandler.class); public RollbackNodeHandler(NonBlockingSession session) { diff --git a/src/main/java/io/mycat/server/executors/RollbackReleaseHandler.java b/src/main/java/io/mycat/server/executors/RollbackReleaseHandler.java index ebdff7cc8..fe5d21ad6 100644 --- a/src/main/java/io/mycat/server/executors/RollbackReleaseHandler.java +++ b/src/main/java/io/mycat/server/executors/RollbackReleaseHandler.java @@ -24,16 +24,16 @@ package io.mycat.server.executors; import io.mycat.backend.BackendConnection; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.List; -import org.apache.log4j.Logger; - /** * @author mycat */ public class RollbackReleaseHandler implements ResponseHandler { - private static final Logger logger = Logger + private static final Logger logger = LoggerFactory .getLogger(RollbackReleaseHandler.class); public RollbackReleaseHandler() { diff --git a/src/main/java/io/mycat/server/executors/SimpleLogHandler.java b/src/main/java/io/mycat/server/executors/SimpleLogHandler.java index 9f7323e4d..ce9dd5d72 100644 --- a/src/main/java/io/mycat/server/executors/SimpleLogHandler.java +++ b/src/main/java/io/mycat/server/executors/SimpleLogHandler.java @@ -24,13 +24,13 @@ package io.mycat.server.executors; import io.mycat.backend.BackendConnection; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.List; -import org.apache.log4j.Logger; - public class SimpleLogHandler implements ResponseHandler { - private static final Logger LOGGER = Logger + private static final Logger LOGGER = LoggerFactory .getLogger(SimpleLogHandler.class); @Override diff --git a/src/main/java/io/mycat/server/executors/SingleNodeHandler.java b/src/main/java/io/mycat/server/executors/SingleNodeHandler.java index dea797d35..e736da716 100644 --- a/src/main/java/io/mycat/server/executors/SingleNodeHandler.java +++ b/src/main/java/io/mycat/server/executors/SingleNodeHandler.java @@ -39,17 +39,17 @@ import io.mycat.server.packet.OkPacket; import io.mycat.server.packet.util.LoadDataUtil; import io.mycat.util.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.List; -import org.apache.log4j.Logger; - /** * @author mycat */ public class SingleNodeHandler implements ResponseHandler, Terminatable, LoadDataResponseHandler { - private static final Logger LOGGER = Logger + public static final Logger LOGGER = LoggerFactory .getLogger(SingleNodeHandler.class); private final RouteResultsetNode node; private final RouteResultset rrs; diff --git a/src/main/java/io/mycat/server/interceptor/impl/StatisticsSqlInterceptor.java b/src/main/java/io/mycat/server/interceptor/impl/StatisticsSqlInterceptor.java index 0bcbc1887..f75447c50 100644 --- a/src/main/java/io/mycat/server/interceptor/impl/StatisticsSqlInterceptor.java +++ b/src/main/java/io/mycat/server/interceptor/impl/StatisticsSqlInterceptor.java @@ -5,6 +5,8 @@ import io.mycat.server.SystemConfig; import io.mycat.server.interceptor.SQLInterceptor; import io.mycat.server.parser.ServerParse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.File; import java.io.FileWriter; @@ -15,8 +17,6 @@ import java.util.HashMap; import java.util.Map; -import org.apache.log4j.Logger; - public class StatisticsSqlInterceptor implements SQLInterceptor { private final class StatisticsSqlRunner implements Runnable { @@ -68,7 +68,7 @@ public void run() { } } - private static final Logger LOGGER = Logger + private static final Logger LOGGER = LoggerFactory .getLogger(StatisticsSqlInterceptor.class); private static Map typeMap = new HashMap(); diff --git a/src/main/java/io/mycat/server/response/CharacterSet.java b/src/main/java/io/mycat/server/response/CharacterSet.java index 668e429e2..e9c2937a0 100644 --- a/src/main/java/io/mycat/server/response/CharacterSet.java +++ b/src/main/java/io/mycat/server/response/CharacterSet.java @@ -23,16 +23,15 @@ */ package io.mycat.server.response; -import static io.mycat.server.parser.ServerParseSet.CHARACTER_SET_CLIENT; -import static io.mycat.server.parser.ServerParseSet.CHARACTER_SET_CONNECTION; -import static io.mycat.server.parser.ServerParseSet.CHARACTER_SET_RESULTS; import io.mycat.server.ErrorCode; import io.mycat.server.MySQLFrontConnection; import io.mycat.server.packet.OkPacket; import io.mycat.server.parser.ServerParseSet; import io.mycat.util.SplitUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -import org.apache.log4j.Logger; +import static io.mycat.server.parser.ServerParseSet.*; /** * 字符集属性设置 @@ -42,7 +41,8 @@ */ public class CharacterSet { - private static final Logger logger = Logger.getLogger(CharacterSet.class); + private static final Logger logger = LoggerFactory + .getLogger(CharacterSet.class); public static void response(String stmt, MySQLFrontConnection c, int rs) { if (-1 == stmt.indexOf(',')) { diff --git a/src/main/java/io/mycat/server/response/Heartbeat.java b/src/main/java/io/mycat/server/response/Heartbeat.java index e9a99e299..19549f9c3 100644 --- a/src/main/java/io/mycat/server/response/Heartbeat.java +++ b/src/main/java/io/mycat/server/response/Heartbeat.java @@ -30,15 +30,16 @@ import io.mycat.server.packet.HeartbeatPacket; import io.mycat.server.packet.OkPacket; import io.mycat.util.TimeUtil; - -import org.apache.log4j.Logger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * @author mycat */ public class Heartbeat { - private static final Logger HEARTBEAT = Logger.getLogger("heartbeat"); + public static final Logger HEARTBEAT = LoggerFactory + .getLogger("heartbeat"); public static void response(MySQLFrontConnection c, byte[] data) { HeartbeatPacket hp = new HeartbeatPacket(); diff --git a/src/main/java/io/mycat/server/response/KillConnection.java b/src/main/java/io/mycat/server/response/KillConnection.java index 8da57d597..2e16ca206 100644 --- a/src/main/java/io/mycat/server/response/KillConnection.java +++ b/src/main/java/io/mycat/server/response/KillConnection.java @@ -22,23 +22,25 @@ * */ package io.mycat.server.response; + import io.mycat.net.Connection; import io.mycat.net.NetSystem; import io.mycat.server.MySQLFrontConnection; import io.mycat.server.packet.OkPacket; import io.mycat.util.SplitUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.List; -import org.apache.log4j.Logger; - /** * @author mycat */ public final class KillConnection { - private static final Logger logger = Logger.getLogger(KillConnection.class); + private static final Logger logger = LoggerFactory + .getLogger(KillConnection.class); public static void response(String stmt, int offset, MySQLFrontConnection mc) { int count = 0; diff --git a/src/main/java/io/mycat/server/response/ReloadConfig.java b/src/main/java/io/mycat/server/response/ReloadConfig.java index b3bfaae68..a204e6bac 100644 --- a/src/main/java/io/mycat/server/response/ReloadConfig.java +++ b/src/main/java/io/mycat/server/response/ReloadConfig.java @@ -24,6 +24,9 @@ package io.mycat.server.response; +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; import io.mycat.ConfigInitializer; import io.mycat.MycatConfig; import io.mycat.backend.PhysicalDBNode; @@ -37,22 +40,18 @@ import io.mycat.server.config.SchemaConfig; import io.mycat.server.config.UserConfig; import io.mycat.server.packet.OkPacket; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.Map; import java.util.concurrent.Callable; import java.util.concurrent.locks.ReentrantLock; -import org.apache.log4j.Logger; - -import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; - /** * @author mycat */ public final class ReloadConfig { - private static final Logger LOGGER = Logger.getLogger(ReloadConfig.class); + private static final Logger LOGGER = LoggerFactory.getLogger(ReloadConfig.class); public static void execute(MySQLFrontConnection c, final boolean loadAll) { final ReentrantLock lock = MycatServer.getInstance().getConfig() diff --git a/src/main/java/io/mycat/server/response/ReloadUser.java b/src/main/java/io/mycat/server/response/ReloadUser.java index 67a1aeaf2..8f1d96c1d 100644 --- a/src/main/java/io/mycat/server/response/ReloadUser.java +++ b/src/main/java/io/mycat/server/response/ReloadUser.java @@ -27,15 +27,16 @@ import io.mycat.server.ErrorCode; import io.mycat.server.MySQLFrontConnection; import io.mycat.server.packet.OkPacket; - -import org.apache.log4j.Logger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * @author mycat */ public final class ReloadUser { - private static final Logger logger = Logger.getLogger(ReloadUser.class); + private static final Logger logger = LoggerFactory + .getLogger(ReloadUser.class); public static void execute(MySQLFrontConnection c) { boolean status = false; diff --git a/src/main/java/io/mycat/server/response/RollbackConfig.java b/src/main/java/io/mycat/server/response/RollbackConfig.java index 109ed52e3..d6941187d 100644 --- a/src/main/java/io/mycat/server/response/RollbackConfig.java +++ b/src/main/java/io/mycat/server/response/RollbackConfig.java @@ -35,17 +35,17 @@ import io.mycat.server.config.SchemaConfig; import io.mycat.server.config.UserConfig; import io.mycat.server.packet.OkPacket; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.Map; import java.util.concurrent.locks.ReentrantLock; -import org.apache.log4j.Logger; - /** * @author mycat */ public final class RollbackConfig { - private static final Logger LOGGER = Logger.getLogger(RollbackConfig.class); + private static final Logger LOGGER = LoggerFactory.getLogger(RollbackConfig.class); public static void execute(MySQLFrontConnection c) { final ReentrantLock lock = MycatServer.getInstance().getConfig() diff --git a/src/main/java/io/mycat/server/response/RollbackUser.java b/src/main/java/io/mycat/server/response/RollbackUser.java index 4746207ee..13422e8d2 100644 --- a/src/main/java/io/mycat/server/response/RollbackUser.java +++ b/src/main/java/io/mycat/server/response/RollbackUser.java @@ -27,15 +27,16 @@ import io.mycat.server.ErrorCode; import io.mycat.server.MySQLFrontConnection; import io.mycat.server.packet.OkPacket; - -import org.apache.log4j.Logger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * @author mycat */ public final class RollbackUser { - private static final Logger logger = Logger.getLogger(RollbackUser.class); + private static final Logger logger = LoggerFactory + .getLogger(RollbackUser.class); public static void execute(MySQLFrontConnection c) { boolean status = false; diff --git a/src/main/java/io/mycat/server/response/SelectVariables.java b/src/main/java/io/mycat/server/response/SelectVariables.java index 1fb6dd3be..2559f32b2 100644 --- a/src/main/java/io/mycat/server/response/SelectVariables.java +++ b/src/main/java/io/mycat/server/response/SelectVariables.java @@ -23,6 +23,7 @@ */ package io.mycat.server.response; +import com.google.common.base.Splitter; import io.mycat.net.BufferArray; import io.mycat.net.NetSystem; import io.mycat.server.Fields; @@ -32,21 +33,20 @@ import io.mycat.server.packet.ResultSetHeaderPacket; import io.mycat.server.packet.RowDataPacket; import io.mycat.server.packet.util.PacketUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.HashMap; import java.util.List; import java.util.Map; -import org.apache.log4j.Logger; - -import com.google.common.base.Splitter; - /** * @author mycat */ public final class SelectVariables { - private static final Logger LOGGER = Logger.getLogger(SelectVariables.class); + private static final Logger LOGGER = LoggerFactory + .getLogger(SelectVariables.class); public static void execute(MySQLFrontConnection c, String sql) { diff --git a/src/main/java/io/mycat/server/response/ShowMyCATCluster.java b/src/main/java/io/mycat/server/response/ShowMyCATCluster.java index 2728ebce7..03b84077d 100644 --- a/src/main/java/io/mycat/server/response/ShowMyCATCluster.java +++ b/src/main/java/io/mycat/server/response/ShowMyCATCluster.java @@ -26,12 +26,7 @@ import io.mycat.MycatConfig; import io.mycat.net.BufferArray; import io.mycat.net.NetSystem; -import io.mycat.server.Alarms; -import io.mycat.server.Fields; -import io.mycat.server.MySQLFrontConnection; -import io.mycat.server.MycatCluster; -import io.mycat.server.MycatNode; -import io.mycat.server.MycatServer; +import io.mycat.server.*; import io.mycat.server.config.MycatNodeConfig; import io.mycat.server.config.SchemaConfig; import io.mycat.server.packet.EOFPacket; @@ -41,19 +36,20 @@ import io.mycat.server.packet.util.PacketUtil; import io.mycat.util.IntegerUtil; import io.mycat.util.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.LinkedList; import java.util.List; import java.util.Map; -import org.apache.log4j.Logger; - /** * @author mycat */ public class ShowMyCATCluster { - private static final Logger alarm = Logger.getLogger("alarm"); + private static final Logger alarm = LoggerFactory + .getLogger("alarm"); private static final int FIELD_COUNT = 2; private static final ResultSetHeaderPacket header = PacketUtil.getHeader(FIELD_COUNT); diff --git a/src/main/java/io/mycat/server/response/StopHeartbeat.java b/src/main/java/io/mycat/server/response/StopHeartbeat.java index b380d97d7..3eb8b0bac 100644 --- a/src/main/java/io/mycat/server/response/StopHeartbeat.java +++ b/src/main/java/io/mycat/server/response/StopHeartbeat.java @@ -32,11 +32,11 @@ import io.mycat.util.FormatUtil; import io.mycat.util.Pair; import io.mycat.util.TimeUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.Map; -import org.apache.log4j.Logger; - /** * 暂停数据节点心跳检测 * @@ -44,7 +44,8 @@ */ public final class StopHeartbeat { - private static final Logger logger = Logger.getLogger(StopHeartbeat.class); + private static final Logger logger = LoggerFactory + .getLogger(StopHeartbeat.class); public static void execute(String stmt, MySQLFrontConnection c) { int count = 0; @@ -57,9 +58,7 @@ public static void execute(String stmt, MySQLFrontConnection c) { if (dn != null) { dn.getSource().setHeartbeatRecoveryTime(TimeUtil.currentTimeMillis() + time); ++count; - StringBuilder s = new StringBuilder(); - s.append(dn.getHostName()).append(" stop heartbeat '"); - logger.warn(s.append(FormatUtil.formatTime(time, 3)).append("' by manager.")); + logger.warn("{} stop heartbeat '{}' by manager.",dn.getHostName(),FormatUtil.formatTime(time, 3)); } } } diff --git a/src/main/java/io/mycat/server/sequence/IncrSequenceMySQLHandler.java b/src/main/java/io/mycat/server/sequence/IncrSequenceMySQLHandler.java index 5c394ca19..810bf7eaf 100644 --- a/src/main/java/io/mycat/server/sequence/IncrSequenceMySQLHandler.java +++ b/src/main/java/io/mycat/server/sequence/IncrSequenceMySQLHandler.java @@ -10,6 +10,8 @@ import io.mycat.server.packet.ErrorPacket; import io.mycat.server.packet.RowDataPacket; import io.mycat.server.parser.ServerParse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.IOException; import java.io.InputStream; @@ -21,11 +23,9 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; -import org.apache.log4j.Logger; - public class IncrSequenceMySQLHandler implements SequenceHandler { - protected static final Logger LOGGER = Logger + public static final Logger LOGGER = LoggerFactory .getLogger(IncrSequenceMySQLHandler.class); private static final String SEQUENCE_DB_PROPS = "sequence_db_conf.properties"; @@ -158,7 +158,7 @@ private long getSeqValueFromDB(SequenceVal seqVal) { } class FetchMySQLSequnceHandler implements ResponseHandler { - private static final Logger LOGGER = Logger + private static final Logger LOGGER = LoggerFactory .getLogger(FetchMySQLSequnceHandler.class); public void execute(SequenceVal seqVal) { diff --git a/src/main/java/io/mycat/server/sequence/IncrSequenceTimeHandler.java b/src/main/java/io/mycat/server/sequence/IncrSequenceTimeHandler.java index 9d3074042..a7005170c 100644 --- a/src/main/java/io/mycat/server/sequence/IncrSequenceTimeHandler.java +++ b/src/main/java/io/mycat/server/sequence/IncrSequenceTimeHandler.java @@ -1,13 +1,15 @@ package io.mycat.server.sequence; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.io.IOException; import java.io.InputStream; import java.util.Properties; -import org.apache.log4j.Logger; - public class IncrSequenceTimeHandler implements SequenceHandler { - protected static final Logger LOGGER = Logger.getLogger(IncrSequenceTimeHandler.class); + protected static final Logger LOGGER = LoggerFactory + .getLogger(IncrSequenceTimeHandler.class); private static final String SEQUENCE_DB_PROPS = "sequence_time_conf.properties"; private static final IncrSequenceTimeHandler instance = new IncrSequenceTimeHandler(); diff --git a/src/main/java/io/mycat/server/sqlhandler/ExplainHandler.java b/src/main/java/io/mycat/server/sqlhandler/ExplainHandler.java index 4ce6654da..f63921198 100644 --- a/src/main/java/io/mycat/server/sqlhandler/ExplainHandler.java +++ b/src/main/java/io/mycat/server/sqlhandler/ExplainHandler.java @@ -39,15 +39,15 @@ import io.mycat.server.packet.util.PacketUtil; import io.mycat.server.parser.ServerParse; import io.mycat.util.StringUtil; - -import org.apache.log4j.Logger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * @author mycat */ public class ExplainHandler { - private static final Logger logger = Logger.getLogger(ExplainHandler.class); + private static final Logger logger = LoggerFactory.getLogger(ExplainHandler.class); private static final RouteResultsetNode[] EMPTY_ARRAY = new RouteResultsetNode[0]; private static final int FIELD_COUNT = 2; private static final FieldPacket[] fields = new FieldPacket[FIELD_COUNT]; diff --git a/src/main/java/io/mycat/server/sqlhandler/SetHandler.java b/src/main/java/io/mycat/server/sqlhandler/SetHandler.java index 3236aac16..0e3e757f1 100644 --- a/src/main/java/io/mycat/server/sqlhandler/SetHandler.java +++ b/src/main/java/io/mycat/server/sqlhandler/SetHandler.java @@ -23,26 +23,16 @@ */ package io.mycat.server.sqlhandler; -import static io.mycat.server.parser.ServerParseSet.AUTOCOMMIT_OFF; -import static io.mycat.server.parser.ServerParseSet.AUTOCOMMIT_ON; -import static io.mycat.server.parser.ServerParseSet.CHARACTER_SET_CLIENT; -import static io.mycat.server.parser.ServerParseSet.CHARACTER_SET_CONNECTION; -import static io.mycat.server.parser.ServerParseSet.CHARACTER_SET_RESULTS; -import static io.mycat.server.parser.ServerParseSet.NAMES; -import static io.mycat.server.parser.ServerParseSet.TX_READ_COMMITTED; -import static io.mycat.server.parser.ServerParseSet.TX_READ_UNCOMMITTED; -import static io.mycat.server.parser.ServerParseSet.TX_REPEATED_READ; -import static io.mycat.server.parser.ServerParseSet.TX_SERIALIZABLE; -import static io.mycat.server.parser.ServerParseSet.XA_FLAG_OFF; -import static io.mycat.server.parser.ServerParseSet.XA_FLAG_ON; import io.mycat.server.ErrorCode; import io.mycat.server.Isolations; import io.mycat.server.MySQLFrontConnection; import io.mycat.server.packet.OkPacket; import io.mycat.server.parser.ServerParseSet; import io.mycat.server.response.CharacterSet; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -import org.apache.log4j.Logger; +import static io.mycat.server.parser.ServerParseSet.*; /** * SET 语句处理 @@ -51,7 +41,8 @@ */ public final class SetHandler { - private static final Logger logger = Logger.getLogger(SetHandler.class); + private static final Logger logger = LoggerFactory + .getLogger(SetHandler.class); private static final byte[] AC_OFF = new byte[] { 7, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }; diff --git a/src/main/java/io/mycat/sqlengine/EngineCtx.java b/src/main/java/io/mycat/sqlengine/EngineCtx.java index a4c1fd763..69116f718 100644 --- a/src/main/java/io/mycat/sqlengine/EngineCtx.java +++ b/src/main/java/io/mycat/sqlengine/EngineCtx.java @@ -7,16 +7,17 @@ import io.mycat.server.packet.EOFPacket; import io.mycat.server.packet.ResultSetHeaderPacket; import io.mycat.server.packet.RowDataPacket; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.ReentrantLock; -import org.apache.log4j.Logger; - public class EngineCtx { - public static final Logger LOGGER = Logger.getLogger(EngineCtx.class); + public static final Logger LOGGER = LoggerFactory + .getLogger(EngineCtx.class); private final BatchSQLJob bachJob; private AtomicInteger jobId = new AtomicInteger(0); AtomicInteger packetId = new AtomicInteger(0); diff --git a/src/main/java/io/mycat/sqlengine/SQLJob.java b/src/main/java/io/mycat/sqlengine/SQLJob.java index 5a1fe8837..8bb58f3ac 100644 --- a/src/main/java/io/mycat/sqlengine/SQLJob.java +++ b/src/main/java/io/mycat/sqlengine/SQLJob.java @@ -9,11 +9,11 @@ import io.mycat.server.executors.ResponseHandler; import io.mycat.server.packet.ErrorPacket; import io.mycat.server.parser.ServerParse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.List; -import org.apache.log4j.Logger; - /** * asyn execute in EngineCtx or standalone (EngineCtx=null) * @@ -21,7 +21,8 @@ * */ public class SQLJob implements ResponseHandler, Runnable { - public static final Logger LOGGER = Logger.getLogger(SQLJob.class); + public static final Logger LOGGER = LoggerFactory + .getLogger(SQLJob.class); private final String sql; private final String dataNodeOrDatabase; private BackendConnection connection; diff --git a/src/main/java/io/mycat/sqlengine/SQLJobHandler.java b/src/main/java/io/mycat/sqlengine/SQLJobHandler.java index da3f484bf..235cedeca 100644 --- a/src/main/java/io/mycat/sqlengine/SQLJobHandler.java +++ b/src/main/java/io/mycat/sqlengine/SQLJobHandler.java @@ -1,11 +1,13 @@ package io.mycat.sqlengine; -import java.util.List; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -import org.apache.log4j.Logger; +import java.util.List; public interface SQLJobHandler { - public static final Logger LOGGER = Logger.getLogger(SQLJobHandler.class); + Logger LOGGER = LoggerFactory + .getLogger(SQLJobHandler.class); public void onHeader(String dataNode, byte[] header, List fields); diff --git a/src/main/java/io/mycat/sqlengine/mpp/DataMergeService.java b/src/main/java/io/mycat/sqlengine/mpp/DataMergeService.java index 48a3fe66c..795735c9d 100644 --- a/src/main/java/io/mycat/sqlengine/mpp/DataMergeService.java +++ b/src/main/java/io/mycat/sqlengine/mpp/DataMergeService.java @@ -31,16 +31,10 @@ import io.mycat.server.packet.RowDataPacket; import io.mycat.sqlengine.tmp.RowDataSorter; import io.mycat.util.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.Map.Entry; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.LinkedTransferQueue; @@ -48,8 +42,6 @@ import java.util.concurrent.atomic.AtomicReferenceArray; import java.util.concurrent.locks.ReentrantLock; -import org.apache.log4j.Logger; - /** * Data merge service handle data Min,Max,AVG group 、order by 、limit * @@ -57,7 +49,7 @@ * */ public class DataMergeService { - private static final Logger LOGGER = Logger + public static final Logger LOGGER = LoggerFactory .getLogger(DataMergeService.class); private RowDataPacketGrouper grouper = null; private RowDataPacketSorter sorter = null; diff --git a/src/main/java/io/mycat/sqlengine/sharejoin/JoinParser.java b/src/main/java/io/mycat/sqlengine/sharejoin/JoinParser.java index 116e177cd..aa26105f4 100644 --- a/src/main/java/io/mycat/sqlengine/sharejoin/JoinParser.java +++ b/src/main/java/io/mycat/sqlengine/sharejoin/JoinParser.java @@ -1,29 +1,20 @@ package io.mycat.sqlengine.sharejoin; -import java.util.List; - -import org.apache.log4j.Logger; - import com.alibaba.druid.sql.ast.SQLExpr; import com.alibaba.druid.sql.ast.SQLOrderBy; import com.alibaba.druid.sql.ast.SQLOrderingSpecification; -import com.alibaba.druid.sql.ast.expr.SQLAggregateExpr; -import com.alibaba.druid.sql.ast.expr.SQLAllColumnExpr; -import com.alibaba.druid.sql.ast.expr.SQLBinaryOpExpr; -import com.alibaba.druid.sql.ast.expr.SQLBinaryOperator; -import com.alibaba.druid.sql.ast.expr.SQLBooleanExpr; -import com.alibaba.druid.sql.ast.expr.SQLCharExpr; -import com.alibaba.druid.sql.ast.expr.SQLIntegerExpr; -import com.alibaba.druid.sql.ast.expr.SQLNullExpr; -import com.alibaba.druid.sql.ast.expr.SQLNumberExpr; -import com.alibaba.druid.sql.ast.expr.SQLPropertyExpr; +import com.alibaba.druid.sql.ast.expr.*; import com.alibaba.druid.sql.ast.statement.SQLJoinTableSource; import com.alibaba.druid.sql.ast.statement.SQLJoinTableSource.JoinType; import com.alibaba.druid.sql.ast.statement.SQLSelectItem; import com.alibaba.druid.sql.ast.statement.SQLSelectOrderByItem; import com.alibaba.druid.sql.ast.statement.SQLTableSource; import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlSelectQueryBlock; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.List; /** * 功能详细描述:分片join,解析join语句 @@ -34,8 +25,9 @@ public class JoinParser { - - protected static final Logger LOGGER = Logger.getLogger(JoinParser.class); + + public static final Logger LOGGER = LoggerFactory + .getLogger(JoinParser.class); private MySqlSelectQueryBlock mysqlQuery; private String stmt=""; diff --git a/src/main/java/io/mycat/sqlengine/sharejoin/TableFilter.java b/src/main/java/io/mycat/sqlengine/sharejoin/TableFilter.java index 074147abe..9be0911ec 100644 --- a/src/main/java/io/mycat/sqlengine/sharejoin/TableFilter.java +++ b/src/main/java/io/mycat/sqlengine/sharejoin/TableFilter.java @@ -1,12 +1,14 @@ package io.mycat.sqlengine.sharejoin; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; import java.util.Map.Entry; -import org.apache.log4j.Logger; -/** +/** * 功能详细描述:分片join,单独的语句 * @author sohudo[http://blog.csdn.net/wind520] * @create 2015年02月01日 @@ -14,7 +16,8 @@ */ public class TableFilter { - protected static final Logger LOGGER = Logger.getLogger(TableFilter.class); + public static final Logger LOGGER = LoggerFactory + .getLogger(TableFilter.class); private LinkedHashMap fieldAliasMap = new LinkedHashMap(); private String tName; diff --git a/src/main/resources/log4j.xml b/src/main/resources/log4j.xml deleted file mode 100644 index dbcf14f55..000000000 --- a/src/main/resources/log4j.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml new file mode 100644 index 000000000..6ffd57b02 --- /dev/null +++ b/src/main/resources/log4j2.xml @@ -0,0 +1,26 @@ + + + + + + + + + + %d{YYYY-MM-dd HH:mm:ss.SSS} %5p [%t] (%l) - %m%n + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/schema.xml b/src/main/resources/schema.xml index 5bf311a6a..8c9a22a5e 100644 --- a/src/main/resources/schema.xml +++ b/src/main/resources/schema.xml @@ -2,71 +2,39 @@ - - - + + +
- -
-
+ +
+
- -
- -
-
- - - - -
- -
- - - - - - - select user() - - - - - - - - - - - + + +
+
+ + + + +
+ + + + + + select user() + + +
From 06fbd7eb861a94b478d381dd096d1ee3d2ebe63a Mon Sep 17 00:00:00 2001 From: "v1.lion" Date: Wed, 23 Sep 2015 22:04:51 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9log4j2-slf4j=20api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/io/mycat/MycatServer.java | 7 ------- src/main/java/io/mycat/server/config/DnPropertyUtil.java | 3 ++- .../java/io/mycat/server/config/node/MycatConfig.java | 6 +++--- .../java/io/mycat/server/response/ReloadCallBack.java | 9 ++++----- 4 files changed, 9 insertions(+), 16 deletions(-) diff --git a/src/main/java/io/mycat/MycatServer.java b/src/main/java/io/mycat/MycatServer.java index 7099a1ce4..e42740507 100644 --- a/src/main/java/io/mycat/MycatServer.java +++ b/src/main/java/io/mycat/MycatServer.java @@ -34,7 +34,6 @@ import io.mycat.server.MySQLFrontConnectionHandler; import io.mycat.server.classloader.DynaClassLoader; import io.mycat.server.config.ConfigException; -import io.mycat.server.config.Log4jInitializer; import io.mycat.server.config.cluster.ClusterSync; import io.mycat.server.config.loader.ConfigFactory; import io.mycat.server.config.node.MycatConfig; @@ -155,12 +154,6 @@ public MycatConfig getConfig() { return config; } - public void beforeStart() { - String home = SystemConfig.getHomePath(); - Log4jInitializer.configureAndWatch(home + "/conf/log4j.xml", - LOG_WATCH_DELAY); - } - public void startup() throws IOException { SystemConfig system = config.getSystem(); diff --git a/src/main/java/io/mycat/server/config/DnPropertyUtil.java b/src/main/java/io/mycat/server/config/DnPropertyUtil.java index 05a669d00..daaa6eafc 100644 --- a/src/main/java/io/mycat/server/config/DnPropertyUtil.java +++ b/src/main/java/io/mycat/server/config/DnPropertyUtil.java @@ -1,6 +1,7 @@ package io.mycat.server.config; -import io.mycat.server.SystemConfig; + +import io.mycat.server.config.node.SystemConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/io/mycat/server/config/node/MycatConfig.java b/src/main/java/io/mycat/server/config/node/MycatConfig.java index 4f4d1ad46..5cc3caa09 100644 --- a/src/main/java/io/mycat/server/config/node/MycatConfig.java +++ b/src/main/java/io/mycat/server/config/node/MycatConfig.java @@ -30,18 +30,18 @@ import io.mycat.server.config.loader.ConfigInitializer; import io.mycat.server.config.loader.ConfigReLoader; import io.mycat.util.TimeUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.Map; import java.util.concurrent.locks.ReentrantLock; -import org.apache.log4j.Logger; - /** * @author mycat */ public class MycatConfig implements ConfigReLoader{ - private static final Logger LOGGER = Logger.getLogger("MycatConfig"); + private static final Logger LOGGER = LoggerFactory.getLogger("MycatConfig"); private static final int RELOAD = 1; private static final int ROLLBACK = 2; diff --git a/src/main/java/io/mycat/server/response/ReloadCallBack.java b/src/main/java/io/mycat/server/response/ReloadCallBack.java index 0b2191d94..49c53166c 100644 --- a/src/main/java/io/mycat/server/response/ReloadCallBack.java +++ b/src/main/java/io/mycat/server/response/ReloadCallBack.java @@ -1,19 +1,18 @@ package io.mycat.server.response; -import org.apache.log4j.Logger; - +import com.google.common.util.concurrent.FutureCallback; import io.mycat.server.ErrorCode; import io.mycat.server.MySQLFrontConnection; import io.mycat.server.config.loader.ReloadUtil; import io.mycat.server.packet.OkPacket; - -import com.google.common.util.concurrent.FutureCallback; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * 异步执行回调类,用于回写数据给用户等。 */ public class ReloadCallBack implements FutureCallback { - private static final Logger LOGGER = Logger.getLogger(ReloadUtil.class); + private static final Logger LOGGER = LoggerFactory.getLogger(ReloadUtil.class); private MySQLFrontConnection mc;