diff --git a/build.xml b/build.xml new file mode 100644 index 0000000..2133ff2 --- /dev/null +++ b/build.xml @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plugin.xml b/plugin.xml new file mode 100644 index 0000000..a384dbd --- /dev/null +++ b/plugin.xml @@ -0,0 +1,19 @@ + + com.fr.plugin.dialect.classloader.ClassLoaderHandler + + yes + 1.0 + 10.0 + 2019-05-16 + Munin + + + [2019-05-20]优化逻辑。
+ ]]>
+ com.fr.plugin.dialect.classloader + + + + +
\ No newline at end of file diff --git a/src/main/java/com/fr/plugin/dialect/classloader/ClassLoaderHandler.java b/src/main/java/com/fr/plugin/dialect/classloader/ClassLoaderHandler.java new file mode 100644 index 0000000..837256b --- /dev/null +++ b/src/main/java/com/fr/plugin/dialect/classloader/ClassLoaderHandler.java @@ -0,0 +1,38 @@ +package com.fr.plugin.dialect.classloader; + + +import com.fr.intelli.record.Focus; +import com.fr.intelli.record.Original; +import com.fr.log.FineLoggerFactory; +import com.fr.record.analyzer.EnableMetrics; +import com.fr.stable.fun.impl.AbstractDataSourceDriverLoader; + +/** + * Created by Munin on 2019/5/20 + */ + +@EnableMetrics +public class ClassLoaderHandler extends AbstractDataSourceDriverLoader { + + //demo设置为mysql为目标驱动 + private static final String MYSQL_KEY = "com.mysql.jdbc.Driver"; + + @Focus(id = "com.fr.plugin.dialect.classloader.ClassLoaderHandler", text = "", source = Original.PLUGIN) + public boolean isInterceptAllowed(String driverName) { + if (driverName == null) { + FineLoggerFactory.getLogger().error("error driver name"); + } + if (driverName.compareTo(MYSQL_KEY) == 0) { + FineLoggerFactory.getLogger().info("correct driver name"); + return true; + } + return false; + } + + @Focus(id = "com.fr.plugin.dialect.classloader.ClassLoaderHandler", text = "", source = Original.PLUGIN) + public ClassLoader getClassLoader() { + FineLoggerFactory.getLogger().info("====== Loading Mysql ClassLoader ... ======"); + //具体实现可以自定义,这里就直接返回一个null + return null; + } +}