resources = new ArrayList<>(1);
- resources.add(resource);
- logRegistry.registry(resources, pluginRegistryInfo);
- }
-
- @Override
- public void unRegistry(PluginRegistryInfo pluginRegistryInfo) throws Exception {
- if (logRegistry == null) {
- return;
- }
- logRegistry.unRegistry(pluginRegistryInfo);
- }
-
- /**
- * 加载日志配置文件资源
- * 文件路径配置为 file:D://log.xml
- * resources路径配置为
classpath:log.xml
- * @param pluginRegistryInfo 当前插件注册的信息
- * @throws IOException 获取不到配置文件异常
- **/
- private Resource getLogConfigFile(PluginRegistryInfo pluginRegistryInfo) throws IOException {
- GenericApplicationContext pluginApplicationContext = pluginRegistryInfo.getPluginApplicationContext();
- String logConfigLocation = pluginApplicationContext.getEnvironment()
- .getProperty(PropertyKey.LOG_CONFIG_LOCATION);
- if (ObjectUtils.isEmpty(logConfigLocation)) {
- return null;
- }
- String pluginId = pluginRegistryInfo.getPluginWrapper().getPluginId();
- String matchLocation = ResourceUtils.getMatchLocation(logConfigLocation);
- if (matchLocation == null || "".equals(matchLocation)) {
- LOG.warn("Plugin '{}' not match {}: {}", pluginId, PropertyKey.LOG_CONFIG_LOCATION,
- logConfigLocation);
- return null;
- }
- if(ResourceUtils.isFile(logConfigLocation)){
- String absolutePath = ResourceUtils.getAbsolutePath(pluginRegistryInfo, matchLocation);
- return new FileSystemResource(absolutePath);
- } else {
- return new ClassPathResource(matchLocation, pluginRegistryInfo.getPluginClassLoader());
- }
- }
-
-}
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/PropertyKey.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/PropertyKey.java
deleted file mode 100644
index 2f48a09de272ccd678829fdc241a50a5709ea896..0000000000000000000000000000000000000000
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/PropertyKey.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.gitee.starblues.extension.log;
-
-/**
- * 配置文件key
- * @author starBlues
- * @version 2.4.3
- */
-public class PropertyKey {
-
- public final static String LOG_CONFIG_LOCATION = "plugin.log-config-location";
-
-}
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/SpringBootLogExtension.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/SpringBootLogExtension.java
deleted file mode 100644
index 93cb475eafd74ecba1be70a94ea07fc23409635b..0000000000000000000000000000000000000000
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/SpringBootLogExtension.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.gitee.starblues.extension.log;
-
-
-import com.gitee.starblues.extension.AbstractExtension;
-import com.gitee.starblues.factory.process.pipe.PluginPipeProcessorExtend;
-import org.springframework.context.ApplicationContext;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * 日志扩展
- * @author sousouki starBlues
- * @version 2.4.3
- */
-public class SpringBootLogExtension extends AbstractExtension {
-
- private static final String KEY = "SpringBootLogExtension";
-
- private final Type type;
-
- public SpringBootLogExtension(Type type){
- this.type = type;
- }
-
-
- @Override
- public String key() {
- return KEY;
- }
-
- @Override
- public List getPluginPipeProcessor(ApplicationContext mainApplicationContext) {
- List pipeProcessorExtends = new ArrayList<>();
- pipeProcessorExtends.add(new PluginLogConfigProcessor(type));
- return pipeProcessorExtends;
- }
-
- public enum Type{
- /**
- * 集成log4j
- **/
- LOG4J,
-
- /**
- * 集成 logback
- **/
- LOGBACK
- }
-}
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/annotation/ConfigItem.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/annotation/ConfigItem.java
deleted file mode 100644
index 38d98117edca3edbadab1c279f4af1763491b646..0000000000000000000000000000000000000000
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/annotation/ConfigItem.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.gitee.starblues.extension.log.annotation;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * 配置的默认值注解
- * @author sousouki
- * @version 2.4.3
- */
-@Documented
-@Target(ElementType.FIELD)
-@Retention(RetentionPolicy.RUNTIME)
-public @interface ConfigItem {
-
-
- /**
- * 默认值
- * @return String
- */
- String defaultValue() default "";
-
-}
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/config/LogConfig.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/config/LogConfig.java
deleted file mode 100644
index 596d4e9012397179b672f485816ef60069014960..0000000000000000000000000000000000000000
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/config/LogConfig.java
+++ /dev/null
@@ -1,140 +0,0 @@
-package com.gitee.starblues.extension.log.config;
-
-import com.gitee.starblues.extension.log.annotation.ConfigItem;
-
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-
-/**
- * 日志配置
- * @author sousouki
- * @version 2.4.3
- */
-@XmlRootElement(name = "log")
-public class LogConfig {
-
- public static final String ROOT_PLUGIN_SIGN = "~";
-
- /**
- * 日志存储根目录,默认为当前插件存放目录。
- * ~: 符号表示当前插件根目录
- **/
- @XmlElement(name = "rootDir")
- @ConfigItem(defaultValue = ROOT_PLUGIN_SIGN + "/logs/")
- private String rootDir;
-
-
- /**
- * 日志文件名称
- **/
- @XmlElement(name = "fileName")
- private String fileName;
-
- /**
- * 日志级别
- **/
- @XmlElement(name = "level")
- @ConfigItem(defaultValue = "INFO")
- private String level;
-
- /**
- * 日志文件最大容量
- **/
- @XmlElement(name = "maxFileSize")
- @ConfigItem(defaultValue = "10MB")
- private String maxFileSize;
-
- /**
- * 日志文件总容量
- **/
- @XmlElement(name = "totalFileSize")
- @ConfigItem(defaultValue = "10GB")
- private String totalFileSize;
-
- /**
- * 最大保存时间
- **/
- @XmlElement(name = "maxHistory")
- @ConfigItem(defaultValue = "30")
- private Integer maxHistory;
-
- /**
- * 日志内容格式
- **/
- @XmlElement(name = "pattern")
- @ConfigItem(defaultValue = "%d{yyyy-MM-dd HH:mm:ss.SSS} -%5p --- [%t] %-40.40logger{39} : %m%n")
- private String pattern;
-
- /**
- * 包名, 自定义当前插件的日志包名, 默认为 BasePlugin 实现类的 包名
- **/
- @XmlTransient
- private String packageName;
-
- @XmlTransient
- public String getRootDir() {
- return rootDir;
- }
-
- public void setRootDir(String rootDir) {
- this.rootDir = rootDir;
- }
-
- @XmlTransient
- public String getFileName() {
- return fileName;
- }
-
- public void setFileName(String fileName) {
- this.fileName = fileName;
- }
- @XmlTransient
- public String getLevel() {
- return level;
- }
-
- public void setLevel(String level) {
- this.level = level;
- }
- @XmlTransient
- public String getMaxFileSize() {
- return maxFileSize;
- }
-
- public void setMaxFileSize(String maxFileSize) {
- this.maxFileSize = maxFileSize;
- }
- @XmlTransient
- public String getTotalFileSize() {
- return totalFileSize;
- }
-
- public void setTotalFileSize(String totalFileSize) {
- this.totalFileSize = totalFileSize;
- }
- @XmlTransient
- public Integer getMaxHistory() {
- return maxHistory;
- }
-
- public void setMaxHistory(Integer maxHistory) {
- this.maxHistory = maxHistory;
- }
- @XmlTransient
- public String getPattern() {
- return pattern;
- }
-
- public void setPattern(String pattern) {
- this.pattern = pattern;
- }
- @XmlTransient
- public String getPackageName() {
- return packageName;
- }
-
- public void setPackageName(String packageName) {
- this.packageName = packageName;
- }
-}
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/log4j/Log4jLogRegistry.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/log4j/Log4jLogRegistry.java
deleted file mode 100644
index c314075af12fa6065153f51580a9bb492318d31d..0000000000000000000000000000000000000000
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/log4j/Log4jLogRegistry.java
+++ /dev/null
@@ -1,209 +0,0 @@
-package com.gitee.starblues.extension.log.log4j;
-
-import com.gitee.starblues.extension.log.LogRegistry;
-import com.gitee.starblues.extension.log.config.LogConfig;
-import com.gitee.starblues.extension.log.logback.LogbackLogRegistry;
-import com.gitee.starblues.extension.log.util.LogConfigUtil;
-import com.gitee.starblues.factory.PluginRegistryInfo;
-import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Marker;
-import org.apache.logging.log4j.core.*;
-import org.apache.logging.log4j.core.appender.RollingFileAppender;
-import org.apache.logging.log4j.core.appender.rolling.*;
-import org.apache.logging.log4j.core.config.Configuration;
-import org.apache.logging.log4j.core.config.DefaultConfiguration;
-import org.apache.logging.log4j.core.config.LoggerConfig;
-import org.apache.logging.log4j.core.filter.AbstractFilter;
-import org.apache.logging.log4j.core.layout.PatternLayout;
-import org.apache.logging.log4j.message.Message;
-import org.pf4j.PluginWrapper;
-import org.slf4j.LoggerFactory;
-import org.springframework.core.io.Resource;
-
-import java.nio.charset.Charset;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * 日志注册统一接口
- * @author starBlues
- * @version 2.4.3
- */
-public class Log4jLogRegistry implements LogRegistry {
-
- private final org.slf4j.Logger log = LoggerFactory.getLogger(LogbackLogRegistry.class);
- private final Map> pluginAppenderInfo = new ConcurrentHashMap<>();
-
-
- @Override
- public void registry(List resources, PluginRegistryInfo pluginRegistryInfo) throws Exception {
- PluginWrapper pluginWrapper = pluginRegistryInfo.getPluginWrapper();
- LoggerContext loggerContext = (LoggerContext)LogManager.getContext(false);
- Configuration configuration = loggerContext.getConfiguration();
- LoggerConfig rootLogger = configuration.getRootLogger();
- Set allAppender = new HashSet<>();
- for (Resource resource : resources) {
- if(resource == null){
- continue;
- }
- LogConfig logConfig;
- try {
- logConfig = LogConfigUtil.getLogConfig(resource, pluginRegistryInfo);
- } catch (Exception e){
- log.error("Failed to read log configuration.", e);
- continue;
- }
- Set appenderSet = getAppender(pluginRegistryInfo, logConfig);
- for (Appender appender : appenderSet) {
- configuration.addAppender(appender);
- rootLogger.addAppender(appender, Level.toLevel(logConfig.getLevel()), null);
- allAppender.add(appender);
- }
- }
- pluginAppenderInfo.put(pluginWrapper.getPluginId(), allAppender);
- }
-
-
- private Set getAppender(PluginRegistryInfo pluginRegistryInfo, LogConfig logConfig){
- PluginWrapper pluginWrapper = pluginRegistryInfo.getPluginWrapper();
- Filter filter = new LogFilter(pluginRegistryInfo.getBasePlugin().scanPackage());
- PatternLayout patternLayout = PatternLayout.newBuilder()
- .withPattern(logConfig.getPattern())
- .withCharset(Charset.defaultCharset())
- .build();
-
- final TriggeringPolicy policy =
- CompositeTriggeringPolicy.createPolicy(
- SizeBasedTriggeringPolicy.createPolicy(
- logConfig.getMaxFileSize()
- ),
- TimeBasedTriggeringPolicy.createPolicy("1", "true")
- );
-
- RolloverStrategy strategy = DefaultRolloverStrategy.newBuilder()
- .withFileIndex(logConfig.getTotalFileSize())
- .withConfig(new DefaultConfiguration())
- .withMax(String.valueOf(logConfig.getMaxHistory()))
- .build();
-
- RollingFileAppender appender = RollingFileAppender.newBuilder()
- .withFilter(filter)
- .withName(pluginWrapper.getPluginId())
- .withLayout(patternLayout)
- .withIgnoreExceptions(false)
- .withFileName(LogConfigUtil.getLogFile(pluginRegistryInfo, logConfig).concat(".log"))
- .withFilePattern(".%d{yyyy-MM-dd}-%i.log")
- .withAppend(true)
- .withPolicy(policy)
- .withStrategy(strategy)
- .build();
-
- appender.start();
- filter.start();
-
- return Collections.singleton(appender);
- }
-
- @Override
- public void unRegistry(PluginRegistryInfo pluginRegistryInfo) throws Exception {
- Set allAppender = pluginAppenderInfo.get(pluginRegistryInfo.getPluginWrapper().getPluginId());
- if(allAppender == null || allAppender.isEmpty()){
- return;
- }
- LoggerContext loggerContext = (LoggerContext)LogManager.getContext(false);
- Configuration configuration = loggerContext.getConfiguration();
- for (Appender appender : allAppender) {
- configuration.getAppenders().remove(appender.getName());
- }
- }
-
- private static class LogFilter extends AbstractFilter{
-
- private final String packageName;
-
- private LogFilter(String packageName) {
- this.packageName = packageName;
- }
-
- @Override
- public Result filter(Logger logger, Level level, Marker marker, String msg, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8, Object p9) {
- return filter(logger.getName());
- }
-
- @Override
- public Result filter(LogEvent event) {
- return filter(event.getLoggerName());
- }
-
- @Override
- public Result filter(Logger logger, Level level, Marker marker, Message msg, Throwable t) {
- return filter(logger.getName());
- }
-
- @Override
- public Result filter(Logger logger, Level level, Marker marker, Object msg, Throwable t) {
- return filter(logger.getName());
- }
-
- @Override
- public Result filter(Logger logger, Level level, Marker marker, String msg, Object... params) {
- return filter(logger.getName());
- }
-
- @Override
- public Result filter(Logger logger, Level level, Marker marker, String msg, Object p0) {
- return filter(logger.getName());
- }
-
- @Override
- public Result filter(Logger logger, Level level, Marker marker, String msg, Object p0, Object p1) {
- return filter(logger.getName());
- }
-
- @Override
- public Result filter(Logger logger, Level level, Marker marker, String msg, Object p0, Object p1, Object p2) {
- return filter(logger.getName());
- }
-
- @Override
- public Result filter(Logger logger, Level level, Marker marker, String msg, Object p0, Object p1, Object p2, Object p3) {
- return filter(logger.getName());
- }
-
- @Override
- public Result filter(Logger logger, Level level, Marker marker, String msg, Object p0, Object p1, Object p2, Object p3, Object p4) {
- return filter(logger.getName());
- }
-
- @Override
- public Result filter(Logger logger, Level level, Marker marker, String msg, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) {
- return filter(logger.getName());
- }
-
- @Override
- public Result filter(Logger logger, Level level, Marker marker, String msg, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6) {
- return filter(logger.getName());
- }
-
- @Override
- public Result filter(Logger logger, Level level, Marker marker, String msg, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7) {
- return filter(logger.getName());
- }
-
- @Override
- public Result filter(Logger logger, Level level, Marker marker, String msg, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8) {
- return filter(logger.getName());
- }
-
- private Result filter(String loggerName){
- if (loggerName.startsWith(packageName)) {
- return Result.ACCEPT;
- }
- return Result.DENY;
- }
- }
-
-
-
-}
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/logback/LogbackLogRegistry.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/logback/LogbackLogRegistry.java
deleted file mode 100644
index d81d723cc387a62018d2ee52fd603bd6d596d79c..0000000000000000000000000000000000000000
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/logback/LogbackLogRegistry.java
+++ /dev/null
@@ -1,185 +0,0 @@
-package com.gitee.starblues.extension.log.logback;
-
-import ch.qos.logback.classic.Level;
-import ch.qos.logback.classic.Logger;
-import ch.qos.logback.classic.LoggerContext;
-import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
-import ch.qos.logback.classic.spi.ILoggingEvent;
-import ch.qos.logback.core.Appender;
-import ch.qos.logback.core.ConsoleAppender;
-import ch.qos.logback.core.filter.Filter;
-import ch.qos.logback.core.rolling.RollingFileAppender;
-import ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy;
-import ch.qos.logback.core.spi.FilterReply;
-import ch.qos.logback.core.util.FileSize;
-import ch.qos.logback.core.util.OptionHelper;
-import com.gitee.starblues.extension.log.LogRegistry;
-import com.gitee.starblues.extension.log.config.LogConfig;
-import com.gitee.starblues.extension.log.util.LogConfigUtil;
-import com.gitee.starblues.factory.PluginRegistryInfo;
-import org.pf4j.PluginWrapper;
-import org.pf4j.util.StringUtils;
-import org.slf4j.LoggerFactory;
-import org.springframework.core.io.Resource;
-
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * 日志配置处理者
- * @author sousouki
- * @version 2.4.3
- */
-public class LogbackLogRegistry implements LogRegistry {
-
- private final org.slf4j.Logger log = LoggerFactory.getLogger(LogbackLogRegistry.class);
-
- private final Map>> pluginAppenderInfo = new ConcurrentHashMap<>();
-
- @Override
- public void registry(List resources, PluginRegistryInfo pluginRegistryInfo) throws Exception {
- Set> appenderSet = new HashSet<>();
- PluginWrapper pluginWrapper = pluginRegistryInfo.getPluginWrapper();
- for (Resource resource : resources) {
- if(resource == null){
- continue;
- }
- LogConfig logConfig;
- try {
- logConfig = LogConfigUtil.getLogConfig(resource, pluginRegistryInfo);
- } catch (Exception e){
- log.error("Failed to read log configuration.", e);
- continue;
- }
- Set> logAppenderSet = addAppender(pluginRegistryInfo, logConfig);
- appenderSet.addAll(logAppenderSet);
- }
- pluginAppenderInfo.put(pluginWrapper.getPluginId(), appenderSet);
- }
-
- @Override
- public void unRegistry(PluginRegistryInfo pluginRegistryInfo) throws Exception {
- PluginWrapper pluginWrapper = pluginRegistryInfo.getPluginWrapper();
- Set> logAppenderSet = pluginAppenderInfo.get(pluginWrapper.getPluginId());
- if(logAppenderSet == null || logAppenderSet.isEmpty()){
- return;
- }
- String packageName = pluginRegistryInfo.getBasePlugin().scanPackage();
- LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
- Logger logger = context.getLogger(packageName);
- for (Appender appender : logAppenderSet) {
- logger.detachAppender(appender);
- }
- pluginAppenderInfo.remove(pluginWrapper.getPluginId());
- }
-
- private Set> addAppender(PluginRegistryInfo pluginRegistryInfo, LogConfig logConfig) {
- LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
- String packageName = logConfig.getPackageName();
- Logger logger = context.getLogger(packageName);
- logger.detachAndStopAllAppenders();
-
- ConsoleAppender consoleAppender = createConsoleAppender(pluginRegistryInfo.getPluginWrapper(),
- logConfig, packageName);
- RollingFileAppender fileAppender = createFileAppender(pluginRegistryInfo,
- logConfig, packageName);
-
- logger.setAdditive(false);
- logger.setLevel(Level.toLevel(logConfig.getLevel()));
- logger.addAppender(consoleAppender);
- logger.addAppender(fileAppender);
-
- Set> appenderSet = new HashSet<>();
- appenderSet.add(consoleAppender);
- appenderSet.add(fileAppender);
- return appenderSet;
- }
-
- private ConsoleAppender createConsoleAppender(PluginWrapper pluginWrapper,
- LogConfig logConfig,
- String packageName) {
- LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
- ConsoleAppender appender = new ConsoleAppender<>();
- Filter filter = new LogFilter(packageName);
- filter.start();
- appender.addFilter(filter);
- appender.setContext(context);
- appender.setName(pluginWrapper.getPluginId().concat("-console"));
-
- PatternLayoutEncoder encoder = new PatternLayoutEncoder();
- encoder.setContext(context);
- encoder.setPattern(logConfig.getPattern());
- encoder.start();
-
- appender.setEncoder(encoder);
- appender.start();
- return appender;
- }
-
- private RollingFileAppender createFileAppender(PluginRegistryInfo pluginRegistryInfo,
- LogConfig logConfig,
- String packageName) {
- LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
-
- RollingFileAppender appender = new RollingFileAppender<>();
- if(StringUtils.isNotNullOrEmpty(packageName)){
- Filter filter = new LogFilter(packageName);
- filter.start();
- appender.addFilter(filter);
- }
-
- PluginWrapper pluginWrapper = pluginRegistryInfo.getPluginWrapper();
- appender.setContext(context);
- appender.setName(pluginWrapper.getPluginId());
-
- String logFilePrefix = LogConfigUtil.getLogFile(pluginRegistryInfo, logConfig);
- appender.setFile(OptionHelper.substVars(logFilePrefix.concat(".log"), context));
-
- appender.setAppend(true);
- appender.setPrudent(false);
-
- SizeAndTimeBasedRollingPolicy policy = new SizeAndTimeBasedRollingPolicy<>();
-
- String fp = OptionHelper.substVars(logFilePrefix.concat(".%d{yyyy-MM-dd}-%i.log"), context);
- policy.setMaxFileSize(FileSize.valueOf(logConfig.getMaxFileSize()));
- policy.setFileNamePattern(fp);
- policy.setMaxHistory(logConfig.getMaxHistory());
- policy.setTotalSizeCap(FileSize.valueOf(logConfig.getTotalFileSize()));
- policy.setParent(appender);
- policy.setContext(context);
- policy.start();
-
- PatternLayoutEncoder encoder = new PatternLayoutEncoder();
- encoder.setContext(context);
- encoder.setPattern(logConfig.getPattern());
- encoder.start();
-
- appender.setRollingPolicy(policy);
- appender.setEncoder(encoder);
- appender.start();
- return appender;
- }
-
- private static class LogFilter extends Filter {
-
- private final String packageName;
- private final LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
-
- private LogFilter(String packageName) {
- this.packageName = packageName;
- }
-
- @Override
- public FilterReply decide(ILoggingEvent event) {
- Logger logger = loggerContext.getLogger(packageName);
- if (event.getLoggerName().startsWith(packageName) && event.getLevel().isGreaterOrEqual(logger.getLevel())) {
- return FilterReply.ACCEPT;
- }
- return FilterReply.DENY;
- }
- }
-
-}
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/util/LogConfigUtil.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/util/LogConfigUtil.java
deleted file mode 100644
index f9b2e55456b10fbc02d1799f133cada2b740195b..0000000000000000000000000000000000000000
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/util/LogConfigUtil.java
+++ /dev/null
@@ -1,131 +0,0 @@
-package com.gitee.starblues.extension.log.util;
-
-import com.gitee.starblues.extension.log.annotation.ConfigItem;
-import com.gitee.starblues.extension.log.config.LogConfig;
-import com.gitee.starblues.factory.PluginRegistryInfo;
-import com.gitee.starblues.integration.IntegrationConfiguration;
-import com.gitee.starblues.utils.CommonUtils;
-import com.gitee.starblues.utils.ResourceUtils;
-import org.pf4j.PluginWrapper;
-import org.pf4j.RuntimeMode;
-import org.pf4j.util.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.core.io.Resource;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.StringReader;
-import java.lang.reflect.Field;
-
-/**
- * LogConfig 对象和 xml 映射的工具类
- * @author starBlues
- * @version 2.4.3
- */
-public class LogConfigUtil {
-
- private static final Logger LOG = LoggerFactory.getLogger(LogConfigUtil.class);
- public static final String ROOT_PLUGIN_SIGN = "~";
-
- public static LogConfig getLogConfig(Resource xmlResource, PluginRegistryInfo pluginRegistryInfo)
- throws Exception{
- PluginWrapper pluginWrapper = pluginRegistryInfo.getPluginWrapper();
- String configText = readConfigText(xmlResource);
- LogConfig logConfig = (LogConfig) xml2object(configText);
- checkLogConfig(logConfig, pluginWrapper.getPluginId());
- String packageName = logConfig.getPackageName();
- if(StringUtils.isNullOrEmpty(packageName)){
- logConfig.setPackageName(pluginRegistryInfo.getBasePlugin().scanPackage());
- }
- return logConfig;
- }
-
-
- public static String getLogFile(PluginRegistryInfo pluginRegistryInfo, LogConfig logConfig){
- String rootDir = logConfig.getRootDir();
- String home;
- PluginWrapper pluginWrapper = pluginRegistryInfo.getPluginWrapper();
- IntegrationConfiguration configuration = pluginRegistryInfo.getConfiguration();
- String pluginRootDir;
- RuntimeMode runtimeMode = pluginWrapper.getRuntimeMode();
- if(runtimeMode == RuntimeMode.DEVELOPMENT){
- pluginRootDir = pluginWrapper.getPluginPath().toString();
- } else {
- pluginRootDir = configuration.pluginPath().get(0);
- }
- if(StringUtils.isNullOrEmpty(rootDir)){
- home = CommonUtils.joiningFilePath(pluginRootDir, "logs");
- } else {
- home = ResourceUtils.getAbsolutePath(pluginRegistryInfo, rootDir);
- }
- String fileName = logConfig.getFileName();
- if (StringUtils.isNullOrEmpty(fileName)) {
- fileName = pluginWrapper.getPluginId();
- }
- return CommonUtils.joiningFilePath(home, pluginWrapper.getPluginId(), fileName);
- }
-
- private static void checkLogConfig(LogConfig logConfig, String pluginId) {
- String fileName = logConfig.getFileName();
- if (StringUtils.isNullOrEmpty(fileName)) {
- logConfig.setFileName(pluginId.concat("-log"));
- }
- Field[] fields = LogConfig.class.getDeclaredFields();
- for (Field field : fields) {
- if (!field.isAccessible()) {
- field.setAccessible(true);
- }
- ConfigItem configItem = field.getDeclaredAnnotation(ConfigItem.class);
- if (configItem == null) {
- continue;
- }
- try {
- Object fieldValue = field.get(logConfig);
- Class> fieldType = field.getType();
- if (fieldValue == null || "".equals(fieldValue.toString()) ||
- ObjectUtil.isEmptyObject(fieldType, fieldValue)) {
- String defaultValue = configItem.defaultValue();
- LOG.debug("Field {} is not config or invalid in log config of plugin {}, set it to default value {}.", field.getName(), defaultValue, pluginId);
- Object fixedValue = ObjectUtil.parseBasicTypeValue(fieldType, defaultValue);
- field.set(logConfig, fixedValue);
- }
- } catch (IllegalAccessException e) {
- LOG.error("Failed to check config item {} in log config.", field.getName());
- }
- }
- }
-
- private static String readConfigText(Resource resource) throws IOException {
- String fileContent;
- try (InputStream inputStream = resource.getInputStream();
- ByteArrayOutputStream stream = new ByteArrayOutputStream()) {
- byte[] buff = new byte[1024];
- int len;
- while ((len = inputStream.read(buff)) != -1) {
- stream.write(buff, 0, len);
- }
- byte[] data = stream.toByteArray();
- fileContent = new String(data);
- }
- return fileContent;
- }
-
- private static Object xml2object(String xml) throws Exception {
- Object object;
- try {
- JAXBContext context = JAXBContext.newInstance(LogConfig.class);
- Unmarshaller unmarshaller = context.createUnmarshaller();
- StringReader stringReader = new StringReader(xml);
- object = unmarshaller.unmarshal(stringReader);
- } catch (JAXBException e) {
- e.printStackTrace();
- throw new Exception("Invalid xml definition");
- }
- return object;
- }
-}
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/util/ObjectUtil.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/util/ObjectUtil.java
deleted file mode 100644
index 5cd95b61f46cb2f3317bb01426d3635bd0631100..0000000000000000000000000000000000000000
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-log/src/main/java/com/gitee/starblues/extension/log/util/ObjectUtil.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.gitee.starblues.extension.log.util;
-
-/**
- * 对象工具类
- * @author sousouki
- * @version 2.4.3
- */
-public class ObjectUtil {
-
- private ObjectUtil(){
-
- }
-
- public static Object parseBasicTypeValue(Class> fieldType, String defaultValue) {
- Object fixedValue;
- if (Byte.class == fieldType || byte.class == fieldType) {
- fixedValue = Byte.parseByte(defaultValue);
- } else if (Integer.class == fieldType || int.class == fieldType) {
- fixedValue = Integer.parseInt(defaultValue);
- } else if (Double.class == fieldType || double.class == fieldType) {
- fixedValue = Double.parseDouble(defaultValue);
- } else if (Short.class == fieldType || short.class == fieldType) {
- fixedValue = Short.parseShort(defaultValue);
- } else if (Long.class == fieldType || long.class == fieldType) {
- fixedValue = Long.parseLong(defaultValue);
- } else if (Float.class == fieldType || float.class == fieldType) {
- fixedValue = Float.parseFloat(defaultValue);
- } else if (Boolean.class == fieldType || boolean.class == fieldType) {
- fixedValue = Boolean.parseBoolean(defaultValue);
- } else if (Character.class == fieldType || char.class == fieldType) {
- fixedValue = defaultValue.charAt(0);
- } else {
- fixedValue = defaultValue;
- }
- return fixedValue;
- }
-
- public static boolean isEmptyObject(Class> fieldType, Object fieldValue) {
- if (Byte.class == fieldType || byte.class == fieldType) {
- return (byte) fieldValue == 0;
- } else if (Integer.class == fieldType || int.class == fieldType) {
- return (int) fieldValue == 0;
- } else if (Double.class == fieldType || double.class == fieldType) {
- return (double) fieldValue == 0;
- } else if (Short.class == fieldType || short.class == fieldType) {
- return (short) fieldValue == 0;
- } else if (Long.class == fieldType || long.class == fieldType) {
- return (long) fieldValue == 0;
- } else if (Float.class == fieldType || float.class == fieldType) {
- return (float) fieldValue == 0;
- }
- return false;
- }
-
-}
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/pom.xml b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/pom.xml
deleted file mode 100644
index 8bbb50190a528fa3a094956e7f9feec93ff587c5..0000000000000000000000000000000000000000
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/pom.xml
+++ /dev/null
@@ -1,221 +0,0 @@
-
-
-
- 4.0.0
-
-
- org.sonatype.oss
- oss-parent
- 7
-
-
- com.gitee.starblues
- springboot-plugin-framework-extension-mybatis
- 2.4.6-RELEASE
- jar
-
- 插件扩展-spring boot mybatis 集成扩展
-
-
-
- The Apache Software License, Version 2.0
- http://www.apache.org/licenses/LICENSE-2.0.txt
- repo
-
-
-
-
- https://gitee.com/starblues/springboot-plugin-framework-parent
- scm:https://gitee.com/starblues/springboot-plugin-framework-parent.git
- scm:https://gitee.com/starblues/springboot-plugin-framework-parent.git
- 1.0
-
-
-
-
- sonatype-nexus-snapshots
- oss Snapshots Repository
- https://oss.sonatype.org/content/repositories/snapshots
-
-
- sonatype-nexus-staging
- oss Staging Repository
- https://oss.sonatype.org/service/local/staging/deploy/maven2/
-
-
-
-
-
- StarBlues
- starblues@foxmail.com
- https://gitee.com/starblues/
-
-
-
-
- 1.8
- UTF-8
-
- 3.8.1
- 3.1.0
- 3.1.0
- 3.1.0
- 1.6
-
- 2.4.6-RELEASE
- 2.0.1
- 3.4.1
- 2.1.5
-
-
-
-
-
- com.gitee.starblues
- springboot-plugin-framework
- ${springboot-plugin-framework.version}
- provided
-
-
-
- org.mybatis.spring.boot
- mybatis-spring-boot-starter
- ${mybatis-spring-boot-starter.version}
- provided
-
-
-
- com.baomidou
- mybatis-plus-boot-starter
- ${mybatis-plus-boot-starter.version}
- provided
-
-
-
- tk.mybatis
- mapper-spring-boot-starter
- ${tk-mybatis-spring-boot-starter.version}
- provided
-
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- ${maven-compiler-plugin.version}
-
- ${java.version}
- ${java.version}
-
-
-
-
- org.apache.maven.plugins
- maven-assembly-plugin
- ${maven-assembly-plugin.version}
-
-
- jar-with-dependencies
-
- ${project.artifactId}-${project.version}
- false
- false
-
-
- true
- true
-
-
-
-
-
- make-assembly
- package
-
- single
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-source-plugin
- ${maven-source-plugin.version}
-
-
- package
-
- jar-no-fork
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- ${maven-javadoc-plugin.version}
-
- ${plugin.skip}
-
-
-
- package
-
- jar
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-gpg-plugin
- ${maven-gpg-plugin.version}
-
- ${plugin.skip}
-
-
-
- sign-artifacts
- verify
-
- sign
-
-
-
-
-
-
-
-
-
-
-
-
- dev
-
- true
-
-
- true
-
-
-
-
- release
-
- false
-
-
-
-
-
-
\ No newline at end of file
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/CommonRegister.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/CommonRegister.java
deleted file mode 100644
index a9ef69e0b871b7a97ed8f5b251117bfb9ec5179b..0000000000000000000000000000000000000000
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/CommonRegister.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.gitee.starblues.extension.mybatis;
-
-import com.gitee.starblues.factory.PluginRegistryInfo;
-import com.gitee.starblues.factory.SpringBeanRegister;
-import org.apache.ibatis.session.SqlSessionFactory;
-import org.mybatis.spring.SqlSessionTemplate;
-
-/**
- * 公共注册
- * @author starBlues
- * @version 2.4.2
- */
-public class CommonRegister {
-
- private CommonRegister(){}
-
-
- public static void commonRegister(PluginRegistryInfo pluginRegistryInfo,
- SqlSessionFactory sqlSessionFactory,
- SqlSessionTemplate sqlSessionTemplate){
- // 注册SqlSessionFactory
- SpringBeanRegister springBeanRegister = pluginRegistryInfo.getSpringBeanRegister();
- springBeanRegister.registerSingleton("sqlSessionFactory", sqlSessionFactory);
- springBeanRegister.registerSingleton("sqlSession", sqlSessionTemplate);
- }
-
-}
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/MapperHandler.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/MapperHandler.java
deleted file mode 100644
index 099758413da91450c02d95efd03d91660f2abfc7..0000000000000000000000000000000000000000
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/MapperHandler.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package com.gitee.starblues.extension.mybatis;
-
-import com.gitee.starblues.extension.mybatis.group.PluginMapperGroup;
-import com.gitee.starblues.factory.PluginRegistryInfo;
-import com.gitee.starblues.factory.process.pipe.bean.name.PluginAnnotationBeanNameGenerator;
-import org.apache.ibatis.session.SqlSessionFactory;
-import org.mybatis.spring.SqlSessionTemplate;
-import org.mybatis.spring.mapper.MapperFactoryBean;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.AnnotatedGenericBeanDefinition;
-import org.springframework.beans.factory.config.BeanDefinitionHolder;
-import org.springframework.beans.factory.support.AbstractBeanDefinition;
-import org.springframework.beans.factory.support.BeanDefinitionReaderUtils;
-import org.springframework.beans.factory.support.BeanNameGenerator;
-import org.springframework.beans.factory.support.GenericBeanDefinition;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.AnnotationConfigUtils;
-import org.springframework.context.annotation.AnnotationScopeMetadataResolver;
-import org.springframework.context.annotation.ScopeMetadata;
-import org.springframework.context.annotation.ScopeMetadataResolver;
-import org.springframework.context.support.GenericApplicationContext;
-
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-/**
- * Mapper 接口处理者
- * @author starBlues
- * @version 2.4.0
- */
-public class MapperHandler {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(MapperHandler.class);
-
- private static final String MAPPER_INTERFACE_NAMES = "MybatisMapperInterfaceNames";
-
- private final ScopeMetadataResolver scopeMetadataResolver = new AnnotationScopeMetadataResolver();
-
-
- public MapperHandler() {
- }
-
- /**
- * 处理插件中的Mapper
- * @param pluginRegistryInfo 插件信息
- * @param processMapper Mapper的具体处理者
- */
- public void processMapper(PluginRegistryInfo pluginRegistryInfo,
- MapperHandler.ProcessMapper processMapper){
- GenericApplicationContext applicationContext = pluginRegistryInfo.getPluginApplicationContext();
- List> groupClasses = pluginRegistryInfo.getGroupClasses(PluginMapperGroup.GROUP_ID);
- if(groupClasses == null || groupClasses.isEmpty()){
- return;
- }
- String pluginId = pluginRegistryInfo.getPluginWrapper().getPluginId();
- Set beanNames = new HashSet<>();
- for (Class> groupClass : groupClasses) {
- if (groupClass == null) {
- continue;
- }
- BeanNameGenerator beanNameGenerator = new PluginAnnotationBeanNameGenerator(pluginId);
- AnnotatedGenericBeanDefinition abd = new AnnotatedGenericBeanDefinition(groupClass);
- ScopeMetadata scopeMetadata = scopeMetadataResolver.resolveScopeMetadata(abd);
- abd.setScope(scopeMetadata.getScopeName());
- String beanName = beanNameGenerator.generateBeanName(abd, applicationContext);
- BeanDefinitionHolder definitionHolder = new BeanDefinitionHolder(abd, beanName);
- AnnotationConfigUtils.processCommonDefinitionAnnotations(abd);
- BeanDefinitionReaderUtils.registerBeanDefinition(definitionHolder, applicationContext);
- try {
- processMapper.process(definitionHolder, groupClass);
- beanNames.add(beanName);
- } catch (Exception e) {
- LOGGER.error("process mapper '{}' error. {}", groupClass.getName(), e.getMessage(), e);
- }
- }
- pluginRegistryInfo.addExtension(MAPPER_INTERFACE_NAMES, beanNames);
- }
-
-
- /**
- * 公共注册生成代理Mapper接口
- * @param holder ignore
- * @param mapperClass ignore
- * @param sqlSessionFactory ignore
- * @param sqlSessionTemplate ignore
- */
- public void commonProcessMapper(BeanDefinitionHolder holder,
- Class> mapperClass,
- SqlSessionFactory sqlSessionFactory,
- SqlSessionTemplate sqlSessionTemplate) {
- GenericBeanDefinition definition = (GenericBeanDefinition) holder.getBeanDefinition();
- definition.getConstructorArgumentValues().addGenericArgumentValue(mapperClass);
- definition.setBeanClass(MapperFactoryBean.class);
- definition.getPropertyValues().add("addToConfig", true);
- definition.getPropertyValues().add("sqlSessionFactory", sqlSessionFactory);
- definition.getPropertyValues().add("sqlSessionTemplate", sqlSessionTemplate);
- definition.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_BY_TYPE);
- }
-
-
-
- @FunctionalInterface
- public interface ProcessMapper{
- void process(BeanDefinitionHolder holder, Class> mapperClass) throws Exception;
- }
-
-
-}
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/MybatisCommonConfig.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/MybatisCommonConfig.java
deleted file mode 100644
index 3cbdad79a62c2406b7e6af490bb9b53d9b75c55f..0000000000000000000000000000000000000000
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/MybatisCommonConfig.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package com.gitee.starblues.extension.mybatis;
-
-import java.util.Set;
-
-/**
- * Springboot mybatis 公用的配置
- * @author starBlues
- * @version 2.3
- */
-public interface MybatisCommonConfig {
-
- /**
- * 数据库表对应的实体类的包名集合。可配置多个
- * @return Set
- */
- Set entityPackage();
-
- /**
- * mybatis xml mapper 匹配规则
- * ? 匹配一个字符
- * * 匹配零个或多个字符
- * ** 匹配路径中的零或多个目录
- * 例如:
- * 文件路径配置为 file:D://xml/*PluginMapper.xml
- * resources路径配置为
classpath:xml/mapper/*PluginMapper.xml
- * 包路径配置为
package:com.plugin.xml.mapper.*PluginMapper.xml
- * @return Set
- */
- Set xmlLocationsMatch();
-
- /**
- * 插件是否自主启用配置. 默认进行禁用, 使用主程序的配置
- * @return 返回true, 表示进行插件自主进行Mybatis相关配置
- */
- default boolean enableOneselfConfig(){
- return false;
- }
-
-
-}
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/MybatisProcessor.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/MybatisProcessor.java
deleted file mode 100644
index 1d2ddc078e3a2c83f967763a24572b80ae5e0f24..0000000000000000000000000000000000000000
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/MybatisProcessor.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package com.gitee.starblues.extension.mybatis;
-
-import com.gitee.starblues.factory.PluginRegistryInfo;
-import com.gitee.starblues.factory.process.pipe.bean.PluginBeanRegistrarExtend;
-import com.gitee.starblues.utils.SpringBeanUtils;
-import org.apache.ibatis.io.Resources;
-import org.apache.ibatis.mapping.DatabaseIdProvider;
-import org.apache.ibatis.plugin.Interceptor;
-import org.apache.ibatis.scripting.LanguageDriver;
-import org.apache.ibatis.session.Configuration;
-import org.apache.ibatis.session.SqlSessionFactory;
-import org.mybatis.spring.SqlSessionFactoryBean;
-import org.mybatis.spring.SqlSessionTemplate;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.context.support.GenericApplicationContext;
-import org.springframework.core.io.Resource;
-
-/**
- * mybatis 处理者
- * @author starBlues
- * @version 2.4.0
- */
-public class MybatisProcessor implements PluginBeanRegistrarExtend {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(MybatisProcessor.class);
-
- public MybatisProcessor() {
- }
-
- @Override
- public String key() {
- return "MybatisProcessor";
- }
-
- @Override
- public void registry(PluginRegistryInfo pluginRegistryInfo) throws Exception {
- SpringBootMybatisConfig config = SpringBeanUtils.getObjectByInterfaceClass(
- pluginRegistryInfo.getConfigSingletons(),
- SpringBootMybatisConfig.class);
- if(config == null){
- return;
- }
-
- SqlSessionFactoryBean factory = new SqlSessionFactoryBean();
-
- if(config.enableOneselfConfig()){
- config.oneselfConfig(factory);
- } else {
- GenericApplicationContext mainApplicationContext = pluginRegistryInfo.getMainApplicationContext();
- PluginFollowCoreConfig followCoreConfig = new PluginFollowCoreConfig(mainApplicationContext);
- factory.setDataSource(followCoreConfig.getDataSource());
- Configuration configuration = followCoreConfig.getConfiguration(SpringBootMybatisExtension.Type.MYBATIS);
- factory.setConfiguration(configuration);
- Interceptor[] interceptor = followCoreConfig.getInterceptor();
- if(interceptor != null && interceptor.length > 0){
- factory.setPlugins(interceptor);
- }
- DatabaseIdProvider databaseIdProvider = followCoreConfig.getDatabaseIdProvider();
- if(databaseIdProvider != null){
- factory.setDatabaseIdProvider(databaseIdProvider);
- }
- LanguageDriver[] languageDrivers = followCoreConfig.getLanguageDriver();
- if(languageDrivers != null){
- for (LanguageDriver languageDriver : languageDrivers) {
- configuration.getLanguageRegistry().register(languageDriver);
- }
- }
-
- }
- PluginResourceFinder pluginResourceFinder = new PluginResourceFinder(pluginRegistryInfo);
-
- Class>[] aliasesClasses = pluginResourceFinder.getAliasesClasses(config.entityPackage());
- if(aliasesClasses != null && aliasesClasses.length > 0){
- factory.setTypeAliases(aliasesClasses);
- }
-
- Resource[] xmlResource = pluginResourceFinder.getXmlResource(config.xmlLocationsMatch());
- if(xmlResource != null && xmlResource.length > 0){
- factory.setMapperLocations(xmlResource);
- }
-
- ClassLoader defaultClassLoader = Resources.getDefaultClassLoader();
- try {
- Resources.setDefaultClassLoader(pluginRegistryInfo.getPluginClassLoader());
- SqlSessionFactory sqlSessionFactory = factory.getObject();
- if(sqlSessionFactory == null){
- throw new Exception("Get mybatis sqlSessionFactory is null");
- }
- SqlSessionTemplate sqlSessionTemplate = new SqlSessionTemplate(sqlSessionFactory);
- MapperHandler mapperHandler = new MapperHandler();
- mapperHandler.processMapper(pluginRegistryInfo, (holder, mapperClass) -> {
- mapperHandler.commonProcessMapper(holder, mapperClass, sqlSessionFactory, sqlSessionTemplate);
- });
- CommonRegister.commonRegister(pluginRegistryInfo, sqlSessionFactory, sqlSessionTemplate);
- } finally {
- Resources.setDefaultClassLoader(defaultClassLoader);
- }
-
- }
-
-
-}
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/PluginFollowCoreConfig.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/PluginFollowCoreConfig.java
deleted file mode 100644
index 97cc0671ce734dd91f1aa4a85f2fda27c6c0c588..0000000000000000000000000000000000000000
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/PluginFollowCoreConfig.java
+++ /dev/null
@@ -1,146 +0,0 @@
-package com.gitee.starblues.extension.mybatis;
-
-import com.baomidou.mybatisplus.core.MybatisConfiguration;
-import org.apache.ibatis.mapping.DatabaseIdProvider;
-import org.apache.ibatis.plugin.Interceptor;
-import org.apache.ibatis.scripting.LanguageDriver;
-import org.apache.ibatis.scripting.LanguageDriverRegistry;
-import org.apache.ibatis.session.Configuration;
-import org.apache.ibatis.session.SqlSessionFactory;
-import org.mybatis.spring.boot.autoconfigure.ConfigurationCustomizer;
-import org.springframework.context.ApplicationContext;
-import org.springframework.util.ReflectionUtils;
-
-import javax.sql.DataSource;
-import java.lang.reflect.Field;
-import java.util.*;
-
-/**
- * 插件跟随主程序时, 获取主程序的Mybatis定义的一些配置
- * @author starBlues
- * @version 2.3
- */
-public class PluginFollowCoreConfig {
-
- private final ApplicationContext mainApplicationContext;
-
- public PluginFollowCoreConfig(ApplicationContext mainApplicationContext) {
- this.mainApplicationContext = mainApplicationContext;
- }
-
-
- public DataSource getDataSource(){
- return mainApplicationContext.getBean(DataSource.class);
- }
-
- public Configuration getConfiguration(SpringBootMybatisExtension.Type type){
- Configuration configuration = new Configuration();
- if(type == SpringBootMybatisExtension.Type.MYBATIS){
- try {
- Map customizerMap = mainApplicationContext.getBeansOfType(ConfigurationCustomizer.class);
- if(!customizerMap.isEmpty()){
- for (ConfigurationCustomizer customizer : customizerMap.values()) {
- customizer.customize(configuration);
- }
- }
- } catch (Exception e){
- // ignore
- }
- }
- return configuration;
- }
-
- public MybatisConfiguration getMybatisPlusConfiguration(){
- MybatisConfiguration configuration = new MybatisConfiguration();
- try {
- Map customizerMap =
- mainApplicationContext.getBeansOfType(com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer.class);
- if(!customizerMap.isEmpty()){
- for (com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer customizer : customizerMap.values()) {
- customizer.customize(configuration);
- }
- }
- } catch (Exception e){
- // ignore
- }
- return configuration;
- }
-
- public Interceptor[] getInterceptor(){
- Map, Interceptor> interceptorMap = new HashMap<>();
- try {
- SqlSessionFactory sqlSessionFactory = mainApplicationContext.getBean(SqlSessionFactory.class);
- // 先从 SqlSessionFactory 工厂中获取拦截器
- List interceptors = sqlSessionFactory.getConfiguration().getInterceptors();
- if(interceptors != null){
- for (Interceptor interceptor : interceptors) {
- if(interceptor == null){
- continue;
- }
- interceptorMap.put(interceptor.getClass(), interceptor);
- }
- }
- } catch (Exception e){
- // ignore
- }
- // 再从定义Bean中获取拦截器
- Map beanInterceptorMap = mainApplicationContext.getBeansOfType(Interceptor.class);
- if(!beanInterceptorMap.isEmpty()){
- beanInterceptorMap.forEach((k, v)->{
- // 如果Class一致, 则会覆盖
- interceptorMap.put(v.getClass(), v);
- });
- }
- if(interceptorMap.isEmpty()) {
- return null;
- } else {
- return interceptorMap.values().toArray(new Interceptor[0]);
- }
- }
-
- public DatabaseIdProvider getDatabaseIdProvider(){
- String[] beanNamesForType = mainApplicationContext.getBeanNamesForType(DatabaseIdProvider.class, false, false);
- if(beanNamesForType.length > 0){
- return mainApplicationContext.getBean(DatabaseIdProvider.class);
- }
- return null;
- }
-
- @SuppressWarnings("unchecked")
- public LanguageDriver[] getLanguageDriver(){
- Map, LanguageDriver> languageDriverMap = new HashMap<>();
- try {
- SqlSessionFactory sqlSessionFactory = mainApplicationContext.getBean(SqlSessionFactory.class);
- LanguageDriverRegistry languageRegistry = sqlSessionFactory.getConfiguration()
- .getLanguageRegistry();
- // 先从 SqlSessionFactory 工厂中获取LanguageDriver
- Field proxyTypesField = ReflectionUtils.findField(languageRegistry.getClass(), "LANGUAGE_DRIVER_MAP");
- Map, LanguageDriver> driverMap = null;
- if(proxyTypesField != null){
- if (!proxyTypesField.isAccessible()) {
- proxyTypesField.setAccessible(true);
- }
- driverMap = (Map, LanguageDriver>) proxyTypesField.get(languageRegistry);
- }
- if(driverMap != null){
- languageDriverMap.putAll(driverMap);
- }
- } catch (Exception e){
- // ignore
- }
- Map beansLanguageDriver = mainApplicationContext.getBeansOfType(LanguageDriver.class);
- if(!beansLanguageDriver.isEmpty()){
- beansLanguageDriver.forEach((k, v)->{
- // 如果Class一致, 则会覆盖
- languageDriverMap.put(v.getClass(), v);
- });
- }
- if(languageDriverMap.isEmpty()){
- return null;
- }
- return languageDriverMap.values().toArray(new LanguageDriver[0]);
- }
-
-
-
-}
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/PluginResourceFinder.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/PluginResourceFinder.java
deleted file mode 100644
index 58e3c3cd619bbba126e3feb05b1bbdb2f6018237..0000000000000000000000000000000000000000
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/PluginResourceFinder.java
+++ /dev/null
@@ -1,129 +0,0 @@
-package com.gitee.starblues.extension.mybatis;
-
-
-import com.gitee.starblues.factory.PluginRegistryInfo;
-import com.gitee.starblues.utils.ResourceUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.core.io.Resource;
-import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
-import org.springframework.core.io.support.ResourcePatternResolver;
-import org.springframework.core.type.ClassMetadata;
-import org.springframework.core.type.classreading.MetadataReaderFactory;
-import org.springframework.core.type.classreading.SimpleMetadataReaderFactory;
-import org.springframework.util.ClassUtils;
-import org.springframework.util.StringUtils;
-
-import java.io.IOException;
-import java.util.*;
-
-/**
- * 插件资源发现者
- * @author starBlues
- * @version 2.4.0
- */
-public class PluginResourceFinder {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(PluginResourceFinder.class);
-
- private final static String TYPE_FILE = "file";
- private final static String TYPE_CLASSPATH = "classpath";
- private final static String TYPE_PACKAGE = "package";
-
-
- private final ClassLoader classLoader;
- private final ResourcePatternResolver resourcePatternResolver;
- private final MetadataReaderFactory metadataReaderFactory = new SimpleMetadataReaderFactory();
-
-
- public PluginResourceFinder(PluginRegistryInfo pluginRegistryInfo) {
- this.classLoader = pluginRegistryInfo.getPluginClassLoader();
- this.resourcePatternResolver = new PathMatchingResourcePatternResolver(classLoader);
- }
-
- /**
- * 获取插件中xml资源
- * @param xmlLocationsMatchSet xml资源匹配集合
- * @return xml Resource 数组
- * @throws IOException 获取xml资源异常
- */
- public Resource[] getXmlResource(Set xmlLocationsMatchSet) throws IOException {
- if(xmlLocationsMatchSet == null || xmlLocationsMatchSet.isEmpty()){
- return null;
- }
- List resources = new ArrayList<>();
- for (String xmlLocationsMatch : xmlLocationsMatchSet) {
- if(StringUtils.isEmpty(xmlLocationsMatch)){
- continue;
- }
- List loadResources = getXmlResources(xmlLocationsMatch);
- if(loadResources != null && !loadResources.isEmpty()){
- resources.addAll(loadResources);
- }
- }
-
- if(resources.isEmpty()){
- return null;
- }
-
- return resources.toArray(new Resource[0]);
- }
-
-
-
- /**
- * 获取插件的实体类及其别名
- * @param packagePatterns 实体类包名
- * @return class 数组
- * @throws IOException 获取医院异常
- */
- public Class>[] getAliasesClasses(Set packagePatterns) throws IOException {
- if(packagePatterns == null || packagePatterns.isEmpty()){
- return null;
- }
- Set> aliasesClasses = new HashSet<>();
- for (String packagePattern : packagePatterns) {
- Resource[] resources = resourcePatternResolver.getResources(
- ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX
- + ClassUtils.convertClassNameToResourcePath(packagePattern) + "/**/*.class");
- for (Resource resource : resources) {
- try {
- ClassMetadata classMetadata = metadataReaderFactory.getMetadataReader(resource).getClassMetadata();
- Class> clazz = classLoader.loadClass(classMetadata.getClassName());
- aliasesClasses.add(clazz);
- } catch (Throwable e) {
- LOGGER.warn("Cannot load the '{}'. Cause by {}", resource, e.toString());
- }
- }
- }
- return aliasesClasses.toArray(new Class>[0]);
- }
-
- /**
- * 得到Xml资源
- * @param mybatisMapperXmlLocationMatch mybatis xml 批量规则
- * @return 匹配到的xml资源
- * @throws IOException IO 异常
- */
- private List getXmlResources(String mybatisMapperXmlLocationMatch) throws IOException {
- String matchLocation = ResourceUtils.getMatchLocation(mybatisMapperXmlLocationMatch);
- if(matchLocation == null){
- LOGGER.error("mybatisMapperXmlLocation {} illegal", mybatisMapperXmlLocationMatch);
- return null;
- }
- try {
- Resource[] resources = resourcePatternResolver.getResources(matchLocation);
- if(resources.length > 0){
- return Arrays.asList(resources);
- } else {
- return null;
- }
- } catch (IOException e) {
- LOGGER.error("mybatis xml resource '{}' match error : {}", mybatisMapperXmlLocationMatch,
- e.getMessage(), e);
- throw e;
- }
- }
-
-
-}
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/SpringBootMybatisConfig.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/SpringBootMybatisConfig.java
deleted file mode 100644
index 75ec57fe4b843fe174ba226cb29c56da4818f0fd..0000000000000000000000000000000000000000
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/SpringBootMybatisConfig.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.gitee.starblues.extension.mybatis;
-
-import org.apache.ibatis.session.Configuration;
-import org.mybatis.spring.SqlSessionFactoryBean;
-
-/**
- * Springboot mybatis 的配置接口
- * @author starBlues
- * @version 2.3
- */
-public interface SpringBootMybatisConfig extends MybatisCommonConfig{
-
-
- /**
- * 插件自主配置Mybatis的SqlSessionFactoryBean
- * SqlSessionFactoryBean 具体配置说明参考 Mybatis 官网
- * @param sqlSessionFactoryBean SqlSessionFactoryBean
- */
- default void oneselfConfig(SqlSessionFactoryBean sqlSessionFactoryBean){
- }
-
- /**
- * 重写配置当前跟随主程序的配置
- * 只有 enableOneselfConfig 返回 false, 实现该方法才生效
- * @param configuration Mybatis Configuration 的配置
- */
- default void reSetMainConfig(Configuration configuration){
-
- }
-}
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/SpringBootMybatisExtension.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/SpringBootMybatisExtension.java
deleted file mode 100644
index fa73ffe9e8700f89fca968b6d10efc432c7ba99b..0000000000000000000000000000000000000000
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/SpringBootMybatisExtension.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package com.gitee.starblues.extension.mybatis;
-
-import com.gitee.starblues.extension.AbstractExtension;
-import com.gitee.starblues.extension.mybatis.group.MybatisConfigGroup;
-import com.gitee.starblues.extension.mybatis.group.PluginEntityAliasesGroup;
-import com.gitee.starblues.extension.mybatis.group.PluginMapperGroup;
-import com.gitee.starblues.extension.mybatis.mybatisplus.MybatisPlusProcessor;
-import com.gitee.starblues.extension.mybatis.tkmyabtis.TkMybatisProcessor;
-import com.gitee.starblues.factory.process.pipe.PluginPipeProcessorExtend;
-import com.gitee.starblues.factory.process.pipe.bean.PluginBeanRegistrarExtend;
-import com.gitee.starblues.factory.process.pipe.classs.PluginClassGroupExtend;
-import org.springframework.context.ApplicationContext;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * mybatis 扩展
- * @author starBlues
- * @version 2.4.0
- */
-public class SpringBootMybatisExtension extends AbstractExtension {
-
- private static final String KEY = "SpringBootMybatisPlusExtension";
-
- private final Type type;
-
- /**
- * 初始化扩展
- * @param type 根据当前环境所集成的框架来选择Type类型
- */
- public SpringBootMybatisExtension(Type type) {
- if(type == null){
- this.type = Type.MYBATIS;
- } else {
- this.type = type;
- }
- }
-
- @Override
- public String key() {
- return KEY;
- }
-
- @Override
- public void initialize(ApplicationContext mainApplicationContext) throws Exception {
- }
-
- @Override
- public List getPluginClassGroup(ApplicationContext mainApplicationContext) {
- final List pluginClassGroups = new ArrayList<>();
- pluginClassGroups.add(new MybatisConfigGroup());
- pluginClassGroups.add(new PluginEntityAliasesGroup());
- pluginClassGroups.add(new PluginMapperGroup());
- return pluginClassGroups;
- }
-
- @Override
- public List getPluginBeanRegistrar(ApplicationContext mainApplicationContext) {
- final List pluginBeanRegistrarExtends = new ArrayList<>(3);
- if(type == Type.MYBATIS_PLUS){
- pluginBeanRegistrarExtends.add(new MybatisPlusProcessor());
- } else if(type == Type.TK_MYBATIS){
- pluginBeanRegistrarExtends.add(new TkMybatisProcessor());
- } else {
- pluginBeanRegistrarExtends.add(new MybatisProcessor());
- }
- return pluginBeanRegistrarExtends;
- }
-
- public enum Type{
- MYBATIS,
- MYBATIS_PLUS,
- TK_MYBATIS
- }
-
-}
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/group/MybatisConfigGroup.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/group/MybatisConfigGroup.java
deleted file mode 100644
index 87a6db4536e04c41f531dc505048f3bbb2efda4e..0000000000000000000000000000000000000000
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/group/MybatisConfigGroup.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.gitee.starblues.extension.mybatis.group;
-
-import com.gitee.starblues.extension.mybatis.SpringBootMybatisConfig;
-import com.gitee.starblues.extension.mybatis.mybatisplus.SpringBootMybatisPlusConfig;
-import com.gitee.starblues.factory.process.pipe.classs.PluginClassGroupExtend;
-import com.gitee.starblues.realize.BasePlugin;
-import org.springframework.util.ClassUtils;
-
-import java.util.Set;
-
-/**
- * mybatis 配置分组
- * @author starBlues
- * @version 2.3
- */
-public class MybatisConfigGroup implements PluginClassGroupExtend {
-
- public static final String KEY = "plugin_mybatis_config";
-
- @Override
- public String key() {
- return KEY;
- }
-
- @Override
- public String groupId() {
- return "MybatisConfigGroup";
- }
-
- @Override
- public void initialize(BasePlugin basePlugin) {
-
- }
-
- @Override
- public boolean filter(Class> aClass) {
- if(aClass == null){
- return false;
- }
- Set> allInterfacesForClassAsSet = ClassUtils.getAllInterfacesForClassAsSet(aClass);
-
- return allInterfacesForClassAsSet.contains(SpringBootMybatisConfig.class)
- || allInterfacesForClassAsSet.contains(SpringBootMybatisPlusConfig.class);
-
- }
-}
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/group/PluginEntityAliasesGroup.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/group/PluginEntityAliasesGroup.java
deleted file mode 100644
index 1fd08b5cb0b4814a8fb59c13d18d72f1439d8949..0000000000000000000000000000000000000000
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/group/PluginEntityAliasesGroup.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package com.gitee.starblues.extension.mybatis.group;
-
-import com.gitee.starblues.extension.mybatis.mybatisplus.SpringBootMybatisPlusConfig;
-import com.gitee.starblues.factory.process.pipe.classs.PluginClassGroupExtend;
-import com.gitee.starblues.realize.BasePlugin;
-import com.gitee.starblues.utils.AnnotationsUtils;
-import org.apache.ibatis.type.Alias;
-
-import java.util.Set;
-
-/**
- * 插件中的实体类别名
- *
- * @author starBlues
- * @version 2.3
- */
-public class PluginEntityAliasesGroup implements PluginClassGroupExtend {
-
- public static final String KEY = "plugin_mybatis_alias";
-
- private Set typeAliasesPackage;
-
- public PluginEntityAliasesGroup() {
- }
-
- @Override
- public String groupId() {
- return KEY;
- }
-
- @Override
- public void initialize(BasePlugin basePlugin) {
- if(basePlugin instanceof SpringBootMybatisPlusConfig){
- SpringBootMybatisPlusConfig mybatisPlusConfig = (SpringBootMybatisPlusConfig) basePlugin;
- typeAliasesPackage = null;
- }
- }
-
-
- @Override
- public boolean filter(Class> aClass) {
- if(AnnotationsUtils.haveAnnotations(aClass, false, Alias.class)){
- return true;
- }
- if(typeAliasesPackage == null || typeAliasesPackage.isEmpty()){
- return false;
- }
- for (String packageName : typeAliasesPackage) {
- if(aClass.getPackage().getName().equals(packageName)){
- return true;
- }
- }
- return false;
- }
-
- @Override
- public String key() {
- return "PluginEntityAliasesGroup";
- }
-
-
-}
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/group/PluginMapperGroup.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/group/PluginMapperGroup.java
deleted file mode 100644
index f7d65dfe32e41fb45453e9e87aad2f96503e9937..0000000000000000000000000000000000000000
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/group/PluginMapperGroup.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.gitee.starblues.extension.mybatis.group;
-
-import com.gitee.starblues.factory.process.pipe.classs.PluginClassGroupExtend;
-import com.gitee.starblues.realize.BasePlugin;
-import com.gitee.starblues.utils.AnnotationsUtils;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 插件中的Mapper接口分组
- *
- * @author starBlues
- * @version 2.3
- */
-public class PluginMapperGroup implements PluginClassGroupExtend {
-
- public static final String GROUP_ID = "plugin_mybatis_mapper";
-
- @Override
- public String groupId() {
- return GROUP_ID;
- }
-
- @Override
- public void initialize(BasePlugin basePlugin) {
-
- }
-
- @Override
- public boolean filter(Class> aClass) {
- return AnnotationsUtils.haveAnnotations(aClass, false, Mapper.class);
- }
-
- @Override
- public String key() {
- return "PluginMybatisMapperGroup";
- }
-}
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/mybatisplus/MybatisPlusProcessor.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/mybatisplus/MybatisPlusProcessor.java
deleted file mode 100644
index e4b263eaf42a1ae3548322a4a52186d5ffe3b835..0000000000000000000000000000000000000000
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/mybatisplus/MybatisPlusProcessor.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package com.gitee.starblues.extension.mybatis.mybatisplus;
-
-import com.baomidou.mybatisplus.autoconfigure.MybatisPlusProperties;
-import com.baomidou.mybatisplus.core.MybatisConfiguration;
-import com.baomidou.mybatisplus.core.config.GlobalConfig;
-import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
-import com.gitee.starblues.extension.mybatis.CommonRegister;
-import com.gitee.starblues.extension.mybatis.MapperHandler;
-import com.gitee.starblues.extension.mybatis.PluginFollowCoreConfig;
-import com.gitee.starblues.extension.mybatis.PluginResourceFinder;
-import com.gitee.starblues.factory.PluginRegistryInfo;
-import com.gitee.starblues.factory.process.pipe.bean.PluginBeanRegistrarExtend;
-import com.gitee.starblues.utils.SpringBeanUtils;
-import org.apache.ibatis.io.Resources;
-import org.apache.ibatis.mapping.DatabaseIdProvider;
-import org.apache.ibatis.plugin.Interceptor;
-import org.apache.ibatis.scripting.LanguageDriver;
-import org.apache.ibatis.session.SqlSessionFactory;
-import org.mybatis.spring.SqlSessionTemplate;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.context.support.GenericApplicationContext;
-import org.springframework.core.io.Resource;
-
-
-/**
- * springboot-mybatis plus 处理者
- * @author starBlues
- * @version 2.4.1
- */
-public class MybatisPlusProcessor implements PluginBeanRegistrarExtend {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(MybatisPlusProcessor.class);
-
-
- public MybatisPlusProcessor() {
- }
-
- @Override
- public String key() {
- return "MybatisPlusProcessor";
- }
-
-
- @Override
- public void registry(PluginRegistryInfo pluginRegistryInfo) throws Exception {
- SpringBootMybatisPlusConfig config = SpringBeanUtils.getObjectByInterfaceClass(
- pluginRegistryInfo.getConfigSingletons(),
- SpringBootMybatisPlusConfig.class);
- if(config == null){
- return;
- }
- final MybatisSqlSessionFactoryBean factory = new MybatisSqlSessionFactoryBean();
-
- if(config.enableOneselfConfig()){
- config.oneselfConfig(factory);
- } else {
- PluginFollowCoreConfig followCoreConfig = new PluginFollowCoreConfig(
- pluginRegistryInfo.getMainApplicationContext()
- );
- MybatisConfiguration mybatisPlusConfiguration = followCoreConfig.getMybatisPlusConfiguration();
- factory.setDataSource(followCoreConfig.getDataSource());
- factory.setConfiguration(mybatisPlusConfiguration);
- Interceptor[] interceptor = followCoreConfig.getInterceptor();
- if(interceptor != null && interceptor.length > 0){
- factory.setPlugins(interceptor);
- }
- DatabaseIdProvider databaseIdProvider = followCoreConfig.getDatabaseIdProvider();
- if(databaseIdProvider != null){
- factory.setDatabaseIdProvider(databaseIdProvider);
- }
- LanguageDriver[] languageDriver = followCoreConfig.getLanguageDriver();
- if(languageDriver != null){
- factory.setScriptingLanguageDrivers(languageDriver);
- }
- // 配置mybatis-plus私有的配置
- GlobalConfig globalConfig = mybatisPlusFollowCoreConfig(factory, pluginRegistryInfo.getMainApplicationContext());
- config.reSetMainConfig(mybatisPlusConfiguration, globalConfig);
- }
-
- PluginResourceFinder pluginResourceFinder = new PluginResourceFinder(pluginRegistryInfo);
-
- Class>[] aliasesClasses = pluginResourceFinder.getAliasesClasses(config.entityPackage());
- if(aliasesClasses != null && aliasesClasses.length > 0){
- factory.setTypeAliases(aliasesClasses);
- }
-
- Resource[] xmlResource = pluginResourceFinder.getXmlResource(config.xmlLocationsMatch());
- if(xmlResource != null && xmlResource.length > 0){
- factory.setMapperLocations(xmlResource);
- }
- ClassLoader defaultClassLoader = Resources.getDefaultClassLoader();
- try {
- Resources.setDefaultClassLoader(pluginRegistryInfo.getPluginClassLoader());
- SqlSessionFactory sqlSessionFactory = factory.getObject();
- if(sqlSessionFactory == null){
- throw new Exception("Get mybatis-plus sqlSessionFactory is null");
- }
- SqlSessionTemplate sqlSessionTemplate = new SqlSessionTemplate(sqlSessionFactory);
- MapperHandler mapperHandler = new MapperHandler();
- mapperHandler.processMapper(pluginRegistryInfo, (holder, mapperClass) -> {
- mapperHandler.commonProcessMapper(holder, mapperClass, sqlSessionFactory, sqlSessionTemplate);
- });
- CommonRegister.commonRegister(pluginRegistryInfo, sqlSessionFactory, sqlSessionTemplate);
- } finally {
- Resources.setDefaultClassLoader(defaultClassLoader);
- }
-
- }
-
-
-
- private GlobalConfig mybatisPlusFollowCoreConfig(MybatisSqlSessionFactoryBean factory,
- GenericApplicationContext mainApplicationContext){
- MybatisPlusProperties plusProperties = mainApplicationContext.getBean(MybatisPlusProperties.class);
-
- GlobalConfig currentGlobalConfig = new GlobalConfig();
- currentGlobalConfig.setBanner(false);
- GlobalConfig globalConfig = plusProperties.getGlobalConfig();
- if(globalConfig != null){
- currentGlobalConfig.setDbConfig(globalConfig.getDbConfig());
- currentGlobalConfig.setIdentifierGenerator(globalConfig.getIdentifierGenerator());
- currentGlobalConfig.setMetaObjectHandler(globalConfig.getMetaObjectHandler());
- currentGlobalConfig.setSqlInjector(globalConfig.getSqlInjector());
- }
- factory.setGlobalConfig(currentGlobalConfig);
- return currentGlobalConfig;
- }
-
-}
diff --git a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/mybatisplus/ServiceImplWrapper.java b/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/mybatisplus/ServiceImplWrapper.java
deleted file mode 100644
index 8b5414abe9acafa30f072c48b556bcec7f8770c7..0000000000000000000000000000000000000000
--- a/springboot-plugin-framework-extension/springboot-plugin-framework-extension-mybatis/src/main/java/com/gitee/starblues/extension/mybatis/mybatisplus/ServiceImplWrapper.java
+++ /dev/null
@@ -1,161 +0,0 @@
-package com.gitee.starblues.extension.mybatis.mybatisplus;
-
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-
-import java.io.Serializable;
-import java.lang.reflect.Field;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.function.Function;
-
-/**
- * mybatis plus ServiceImpl 的包装。解决原生mybatis plus 中ServiceImpl Mapper无法注入的问题
- * 升级mybatis-plus到3.4.1
- * @author starBlues
- * @version 2.4.0
- */
-public class ServiceImplWrapper, T> implements IService {
-
- private final ServiceImpl serviceImpl;
-
- protected M baseMapper;
-
-
- public ServiceImplWrapper(M baseMapper) {
- this.baseMapper = Objects.requireNonNull(baseMapper);
- this.serviceImpl = new ServiceImpl();
- setMapper();
- }
-
- /**
- * 给ServiceImpl设置Mapper
- */
- private void setMapper(){
- Class extends ServiceImpl> aClass = serviceImpl.getClass();
- Field[] fields = aClass.getDeclaredFields();
- for (Field field : fields) {
- if(Objects.equals(field.getName(), "baseMapper")
- || (baseMapper != null && baseMapper.getClass() == field.getType())){
- field.setAccessible(true);
- try {
- field.set(serviceImpl, baseMapper);
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- }
- }
- }
- }
-
-
- @Override
- public boolean save(T entity) {
- return serviceImpl.save(entity);
- }
-
- @Override
- public boolean saveBatch(Collection entityList, int batchSize) {
- return serviceImpl.saveBatch(entityList, batchSize);
- }
-
- @Override
- public boolean saveOrUpdateBatch(Collection entityList, int batchSize) {
- return serviceImpl.saveOrUpdateBatch(entityList, batchSize);
- }
-
- @Override
- public boolean removeById(Serializable id) {
- return serviceImpl.removeById(id);
- }
-
- @Override
- public boolean removeByMap(Map columnMap) {
- return serviceImpl.removeByMap(columnMap);
- }
-
- @Override
- public boolean remove(Wrapper queryWrapper) {
- return serviceImpl.remove(queryWrapper);
- }
-
- @Override
- public boolean removeByIds(Collection extends Serializable> idList) {
- return serviceImpl.removeByIds(idList);
- }
-
- @Override
- public boolean updateById(T entity) {
- return serviceImpl.updateById(entity);
- }
-
- @Override
- public boolean update(T entity, Wrapper updateWrapper) {
- return serviceImpl.update(entity, updateWrapper);
- }
-
- @Override
- public boolean updateBatchById(Collection entityList, int batchSize) {
- return serviceImpl.updateBatchById(entityList, batchSize);
- }
-
- @Override
- public boolean saveOrUpdate(T entity) {
- return serviceImpl.saveOrUpdate(entity);
- }
-
- @Override
- public T getById(Serializable id) {
- return serviceImpl.getById(id);
- }
-
- @Override
- public T getOne(Wrapper queryWrapper, boolean throwEx) {
- return serviceImpl.getOne(queryWrapper, throwEx);
- }
-
- @Override
- public Map getMap(Wrapper queryWrapper) {
- return serviceImpl.getMap(queryWrapper);
- }
-
- @Override
- public V getObj(Wrapper queryWrapper, Function super Object, V> mapper) {
- return serviceImpl.getObj(queryWrapper, mapper);
- }
-
- @Override
- public int count(Wrapper queryWrapper) {
- return serviceImpl.count(queryWrapper);
- }
-
- @Override
- public List list(Wrapper queryWrapper) {
- return serviceImpl.list(queryWrapper);
- }
-
-
- @Override
- public List