From 72b08529cd6e6996815eb0f0c98229dd72e104e8 Mon Sep 17 00:00:00 2001 From: StarBlues Date: Sat, 26 Nov 2022 12:25:10 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B3=A8=E9=87=8A&?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=9A=94=E7=A6=BB=E6=A8=A1=E5=BC=8F=E5=86=85?= =?UTF-8?q?=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- spring-brick-bootstrap/pom.xml | 2 +- .../bootstrap/AutowiredTypeResolver.java | 2 + .../bootstrap/ConfigurePluginEnvironment.java | 16 +- .../bootstrap/DefaultSpringPluginHook.java | 1 + .../EmptyMainApplicationContext.java | 14 +- .../bootstrap/EmptySpringBeanFactory.java | 2 + .../bootstrap/PluginApplicationContext.java | 2 + .../bootstrap/PluginContextHolder.java | 1 + .../bootstrap/PluginListableBeanFactory.java | 1 + .../bootstrap/PluginOneselfInteractive.java | 2 + .../bootstrap/PluginSpringApplication.java | 1 + .../PluginWebApplicationContext.java | 1 + ...lveHttpMessageConvertersConfiguration.java | 1 + .../bootstrap/SpringPluginBootstrap.java | 1 + .../bootstrap/annotation/AutowiredType.java | 1 + .../annotation/DisablePluginWeb.java | 2 + .../bootstrap/annotation/OneselfConfig.java | 2 + .../PluginApplicationWebEventListener.java | 1 + .../ComposeSpringPluginProcessor.java | 2 + .../processor/DefaultProcessorContext.java | 2 + .../processor/ExtractBeanProcessor.java | 2 + .../processor/FrameDefineBeanProcessor.java | 2 + .../processor/InvokeOtherPluginProcessor.java | 2 + .../bootstrap/processor/ProcessorContext.java | 2 + .../processor/ProcessorException.java | 2 + .../processor/SpringPluginProcessor.java | 2 + .../PluginInterceptorRegister.java | 2 + .../PluginInterceptorRegistration.java | 2 + .../PluginInterceptorRegistry.java | 2 + .../processor/invoke/InvokeBeanFactory.java | 2 + .../processor/invoke/InvokeProxyHandler.java | 2 + .../ConfigureMainPluginEnvironment.java | 1 + .../PluginClassPathBeanDefinitionScanner.java | 2 + .../web/PluginControllerProcessor.java | 2 + .../web/PluginInterceptorsProcessor.java | 2 + .../PluginSpringDocControllerProcessor.java | 2 + .../web/PluginStaticResourceProcessor.java | 2 + .../thymeleaf/PluginThymeleafProcessor.java | 2 + .../web/thymeleaf/ThymeleafConfigParse.java | 2 + .../realize/PluginCloseListener.java | 1 + .../bootstrap/realize/StopValidator.java | 1 + .../bootstrap/utils/AnnotationUtils.java | 2 + .../bootstrap/utils/DestroyUtils.java | 2 + .../bootstrap/utils/ProcessorUtils.java | 2 + .../bootstrap/utils/SpringBeanUtils.java | 2 + spring-brick-common/pom.xml | 2 +- .../common/AbstractDependencyPlugin.java | 1 + .../com/gitee/starblues/common/Constants.java | 3 +- .../starblues/common/DependencyPlugin.java | 1 + .../gitee/starblues/common/ManifestKey.java | 1 + .../starblues/common/PackageStructure.java | 1 + .../gitee/starblues/common/PackageType.java | 1 + .../starblues/common/PluginDescriptorKey.java | 1 + .../common/cipher/AbstractPluginCipher.java | 1 + .../common/cipher/AesPluginCipher.java | 1 + .../starblues/common/cipher/PluginCipher.java | 1 + .../common/cipher/RsaPluginCipher.java | 1 + .../com/gitee/starblues/utils/Assert.java | 1 + .../utils/CompareClassTypeUtils.java | 1 + .../gitee/starblues/utils/FieldFilter.java | 1 + .../gitee/starblues/utils/MapValueGetter.java | 1 + .../gitee/starblues/utils/ObjectUtils.java | 1 + .../starblues/utils/ObjectValueUtils.java | 1 + .../starblues/utils/PropertiesUtils.java | 1 + .../starblues/utils/ReflectionUtils.java | 1 + .../gitee/starblues/utils/ResourceUtils.java | 1 + .../gitee/starblues/utils/StringUtils.java | 1 + spring-brick-loader/pom.xml | 2 +- .../starblues/loader/LoaderConstant.java | 1 + .../loader/PluginResourceStorage.java | 2 + .../starblues/loader/archive/Archive.java | 3 +- .../classloader/GenericClassLoader.java | 202 ++++++++++-------- .../loader/classloader/resource/Resource.java | 5 +- .../loader/AbstractResourceLoader.java | 8 +- .../resource/loader/ClassPathLoader.java | 6 +- .../resource/loader/DefaultResource.java | 8 +- .../loader/DefaultResourceLoaderFactory.java | 21 +- .../resource/loader/JarResourceLoader.java | 11 +- .../loader/ResourceLoaderFactory.java | 6 +- ...java => CacheReleasedResourceStorage.java} | 139 ++++++------ .../storage/CacheResourceStorage.java | 95 +++++++- .../storage/EmptyResourceStorage.java | 12 +- .../resource/storage/ResourceStorage.java | 19 +- .../storage/ShareResourceStorage.java | 159 -------------- .../loader/launcher/AbstractLauncher.java | 2 + .../loader/launcher/AbstractMainLauncher.java | 2 + .../starblues/loader/launcher/Launcher.java | 2 + .../loader/launcher/LauncherContext.java | 3 +- .../loader/launcher/SpringBootstrap.java | 2 + .../loader/launcher/SpringMainBootstrap.java | 2 + .../launcher/SpringMainProdBootstrap.java | 2 + .../coexist/CoexistFastJarLauncher.java | 2 + .../coexist/CoexistJarOuterLauncher.java | 1 + .../isolation/IsolationBaseLauncher.java | 26 ++- .../isolation/IsolationFastJarLauncher.java | 20 +- .../isolation/IsolationJarOuterLauncher.java | 23 +- .../ResourceLoaderFactoryGetter.java | 21 +- .../launcher/runner/MainMethodRunner.java | 2 + .../loader/launcher/runner/MethodRunner.java | 2 + .../gitee/starblues/loader/utils/Assert.java | 2 + .../loader/utils/CompareClassTypeUtils.java | 1 + .../starblues/loader/utils/FilesUtils.java | 1 + .../gitee/starblues/loader/utils/IOUtils.java | 18 +- .../starblues/loader/utils/ObjectUtils.java | 1 + .../gitee/starblues/loader/utils/Release.java | 17 ++ .../starblues/loader/utils/ResourceUtils.java | 29 +++ spring-brick-maven-packager/pom.xml | 2 +- .../pack/AbstractDependencyFilterMojo.java | 2 + .../plugin/pack/AbstractPackagerMojo.java | 2 + .../plugin/pack/BasicRepackager.java | 2 + .../gitee/starblues/plugin/pack/Constant.java | 2 + .../starblues/plugin/pack/Dependency.java | 2 + .../plugin/pack/DependencyPlugin.java | 2 + .../plugin/pack/LoadMainResourcePattern.java | 2 + .../starblues/plugin/pack/LoadToMain.java | 2 + .../starblues/plugin/pack/PluginInfo.java | 2 + .../starblues/plugin/pack/RepackageMojo.java | 2 + .../starblues/plugin/pack/Repackager.java | 4 +- .../starblues/plugin/pack/dev/Dependency.java | 2 + .../starblues/plugin/pack/dev/DevConfig.java | 2 + .../plugin/pack/dev/DevRepackager.java | 2 + .../plugin/pack/encrypt/AesConfig.java | 1 + .../plugin/pack/encrypt/AesEncryptPlugin.java | 1 + .../plugin/pack/encrypt/EncryptConfig.java | 8 + .../plugin/pack/encrypt/EncryptPlugin.java | 1 + .../pack/encrypt/EncryptPluginFactory.java | 1 + .../plugin/pack/encrypt/RsaConfig.java | 4 + .../plugin/pack/encrypt/RsaEncryptPlugin.java | 1 + .../plugin/pack/filter/DependencyFilter.java | 2 + .../starblues/plugin/pack/filter/Exclude.java | 2 + .../plugin/pack/filter/ExcludeFilter.java | 2 + .../pack/filter/FilterableDependency.java | 2 + .../starblues/plugin/pack/filter/Include.java | 2 + .../plugin/pack/filter/IncludeFilter.java | 2 + .../plugin/pack/main/JarNestPackager.java | 2 + .../plugin/pack/main/JarOuterPackager.java | 2 + .../plugin/pack/main/MainConfig.java | 3 +- .../plugin/pack/main/MainRepackager.java | 2 + .../plugin/pack/prod/DirProdRepackager.java | 2 + .../pack/prod/JarNestedProdRepackager.java | 2 + .../pack/prod/JarOuterProdRepackager.java | 2 + .../plugin/pack/prod/ProdConfig.java | 3 +- .../plugin/pack/prod/ProdRepackager.java | 2 + .../pack/prod/ZipOuterProdRepackager.java | 2 + .../plugin/pack/prod/ZipProdRepackager.java | 2 + .../plugin/pack/utils/CommonUtils.java | 2 + .../plugin/pack/utils/PackageJar.java | 2 + .../plugin/pack/utils/PackageZip.java | 2 + .../plugin-help.xml | 2 +- .../main/resources/META-INF/maven/plugin.xml | 2 +- spring-brick/pom.xml | 2 +- .../gitee/starblues/annotation/Caller.java | 1 + .../gitee/starblues/annotation/Extract.java | 2 + .../gitee/starblues/annotation/Supplier.java | 1 + .../core/DefaultPluginInsideInfo.java | 16 +- .../core/DefaultRealizeProvider.java | 1 + .../com/gitee/starblues/core/PluginInfo.java | 14 +- .../gitee/starblues/core/PluginInfoFace.java | 11 +- .../starblues/core/PluginInsideInfo.java | 10 +- .../gitee/starblues/core/PluginManager.java | 1 + .../com/gitee/starblues/core/PluginState.java | 2 + .../gitee/starblues/core/RealizeProvider.java | 1 + .../com/gitee/starblues/core/RuntimeMode.java | 1 + .../checker/ComposePluginBasicChecker.java | 2 + .../checker/ComposePluginLauncherChecker.java | 2 + .../checker/DefaultPluginBasicChecker.java | 2 + .../checker/DefaultPluginLauncherChecker.java | 1 + .../DependencyPluginLauncherChecker.java | 2 + .../core/checker/PluginBasicChecker.java | 2 + .../core/checker/PluginLauncherChecker.java | 2 + .../classloader/CacheMainResourceMatcher.java | 1 + .../ComposeMainResourceMatcher.java | 1 + .../DefaultMainResourceMatcher.java | 1 + .../EmptyMainResourcePatternDefiner.java | 2 + .../core/classloader/MainResourceMatcher.java | 2 + .../MainResourcePatternDefiner.java | 2 + .../NestedPluginJarResourceLoader.java | 1 + .../core/classloader/PluginClassLoader.java | 6 +- .../PluginResourceLoaderFactoryProxy.java | 9 +- .../ProhibitMainResourceMatcher.java | 2 + .../descriptor/ComposeDescriptorLoader.java | 1 + .../descriptor/DefaultDependencyPlugin.java | 1 + .../DefaultInsidePluginDescriptor.java | 1 + .../descriptor/DefaultPluginDescriptor.java | 1 + .../descriptor/DevPluginDescriptorLoader.java | 2 + .../descriptor/InsidePluginDescriptor.java | 2 + .../core/descriptor/PluginDescriptor.java | 2 + .../descriptor/PluginDescriptorLoader.java | 2 + .../core/descriptor/PluginLibInfo.java | 2 + .../descriptor/PluginResourcesConfig.java | 2 + .../starblues/core/descriptor/PluginType.java | 3 + .../ProdDirPluginDescriptorLoader.java | 2 + .../ProdPackagePluginDescriptorLoader.java | 1 + .../ProdPluginDescriptorLoader.java | 2 + .../DefaultPluginDescriptorDecrypt.java | 1 + .../decrypt/EmptyPluginDescriptorDecrypt.java | 1 + .../decrypt/PluginDescriptorDecrypt.java | 1 + .../exception/PluginDecryptException.java | 1 + .../exception/PluginDisabledException.java | 1 + .../core/exception/PluginException.java | 1 + .../PluginProhibitStopException.java | 1 + .../JavaMainResourcePatternDefiner.java | 1 + .../plugin/AbstractPluginLauncher.java | 62 ++++++ .../BasicMainResourcePatternDefiner.java | 1 + .../launcher/plugin/CacheRegistryInfo.java | 1 + .../DefaultMainResourcePatternDefiner.java | 1 + .../plugin/DefaultPluginInteractive.java | 1 + .../plugin/PluginCoexistLauncher.java | 39 +--- .../launcher/plugin/PluginInteractive.java | 1 + .../plugin/PluginIsolationLauncher.java | 37 ++-- .../PluginMainResourcePatternDefiner.java | 1 + .../launcher/plugin/PluginMethodRunner.java | 1 + .../core/launcher/plugin/RegistryInfo.java | 1 + .../PluginApplicationContextGetter.java | 2 + .../plugin/involved/PluginLaunchInvolved.java | 1 + .../core/scanner/BasePluginScanner.java | 1 + .../core/scanner/ComposePathResolve.java | 1 + .../core/scanner/DevPathResolve.java | 1 + .../starblues/core/scanner/PathResolve.java | 1 + .../starblues/core/scanner/PluginScanner.java | 1 + .../core/scanner/ProdPathResolve.java | 1 + .../core/version/SemverVersionInspector.java | 2 + .../core/version/VersionInspector.java | 2 + .../AutoIntegrationConfiguration.java | 14 ++ .../DefaultIntegrationConfiguration.java | 5 + .../integration/IntegrationConfiguration.java | 6 + .../spring/MainApplicationContext.java | 12 ++ .../spring/MainApplicationContextProxy.java | 10 + .../spring-configuration-metadata.json | 7 + 230 files changed, 955 insertions(+), 499 deletions(-) rename spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/{DefaultResourceStorage.java => CacheReleasedResourceStorage.java} (42%) delete mode 100644 spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/ShareResourceStorage.java create mode 100644 spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/Release.java create mode 100644 spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/AbstractPluginLauncher.java diff --git a/pom.xml b/pom.xml index c14f897..9a9e053 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ com.gitee.starblues spring-brick-parent pom - 3.1.0 + 3.1.1 spring-brick-common diff --git a/spring-brick-bootstrap/pom.xml b/spring-brick-bootstrap/pom.xml index d6cf302..bb30410 100644 --- a/spring-brick-bootstrap/pom.xml +++ b/spring-brick-bootstrap/pom.xml @@ -7,7 +7,7 @@ spring-brick-parent com.gitee.starblues - 3.1.0 + 3.1.1 spring-brick-bootstrap diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/AutowiredTypeResolver.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/AutowiredTypeResolver.java index 3941f87..31f3ae4 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/AutowiredTypeResolver.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/AutowiredTypeResolver.java @@ -29,6 +29,8 @@ import java.util.Collections; import java.util.Set; /** + * 注入类型处理 + * * @author starBlues * @since 3.0.3 * @version 3.1.0 diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/ConfigurePluginEnvironment.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/ConfigurePluginEnvironment.java index 272d6a1..5d90bd0 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/ConfigurePluginEnvironment.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/ConfigurePluginEnvironment.java @@ -19,7 +19,9 @@ package com.gitee.starblues.bootstrap; import com.gitee.starblues.bootstrap.processor.ProcessorContext; import com.gitee.starblues.core.descriptor.InsidePluginDescriptor; import com.gitee.starblues.integration.AutoIntegrationConfiguration; +import com.gitee.starblues.integration.IntegrationConfiguration; import com.gitee.starblues.loader.launcher.DevelopmentModeSetting; +import com.gitee.starblues.spring.MainApplicationContext; import com.gitee.starblues.utils.Assert; import com.gitee.starblues.utils.FilesUtils; import com.gitee.starblues.utils.ObjectUtils; @@ -38,9 +40,10 @@ import java.util.Map; /** * 插件环境配置 + * * @author starBlues * @since 3.0.0 - * @version 3.1.0 + * @version 3.1.1 */ public class ConfigurePluginEnvironment { private final Logger logger = LoggerFactory.getLogger(ConfigurePluginEnvironment.class); @@ -51,6 +54,7 @@ public class ConfigurePluginEnvironment { private final static String SPRING_CONFIG_LOCATION = "spring.config.location"; private final static String SPRING_JMX_UNIQUE_NAMES = "spring.jmx.unique-names"; + private final static String SPRING_ADMIM_ENABLED = "spring.application.admin.enabled"; private final static String SPRING_ADMIN_JMX_NAME = "spring.application.admin.jmx-name"; private final static String SPRING_ADMIN_JMX_VALUE = "org.springframework.boot:type=Admin,name="; @@ -79,10 +83,13 @@ public class ConfigurePluginEnvironment { } env.put(AutoIntegrationConfiguration.ENABLE_STARTER_KEY, false); env.put(SPRING_JMX_UNIQUE_NAMES, true); + // 直接禁用插件的 spring-admin mbean + env.put(SPRING_ADMIM_ENABLED, false); env.put(SPRING_ADMIN_JMX_NAME, SPRING_ADMIN_JMX_VALUE + pluginId); env.put(REGISTER_SHUTDOWN_HOOK_PROPERTY, false); env.put(MBEAN_DOMAIN_PROPERTY_NAME, pluginId); + try{ // fix: https://gitee.com/starblues/springboot-plugin-framework-parent/issues/I57965 // 优先注册LiveBeansView对象,防止注册异常 @@ -97,6 +104,13 @@ public class ConfigurePluginEnvironment { env.put(AutoIntegrationConfiguration.ENABLE_STARTER_KEY, false); } + IntegrationConfiguration configuration = processorContext.getConfiguration(); + if(configuration.pluginFollowProfile()){ + MainApplicationContext mainApplicationContext = processorContext.getMainApplicationContext(); + environment.setActiveProfiles(mainApplicationContext.getActiveProfiles()); + environment.setDefaultProfiles(mainApplicationContext.getDefaultProfiles()); + } + environment.getPropertySources().addFirst(new MapPropertySource(PLUGIN_PROPERTY_NAME, env)); } diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/DefaultSpringPluginHook.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/DefaultSpringPluginHook.java index bd3fdb2..cfa5281 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/DefaultSpringPluginHook.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/DefaultSpringPluginHook.java @@ -38,6 +38,7 @@ import java.util.Map; /** * 默认的插件钩子器 + * * @author starBlues * @since 3.0.0 * @version 3.1.0 diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptyMainApplicationContext.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptyMainApplicationContext.java index b83c3f8..2ae14ae 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptyMainApplicationContext.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptyMainApplicationContext.java @@ -27,8 +27,10 @@ import java.util.Set; /** * 空的MainApplicationContext实现 + * * @author starBlues - * @version 3.0.3 + * @since 3.0.0 + * @version 3.1.1 */ public class EmptyMainApplicationContext implements MainApplicationContext { @@ -59,6 +61,16 @@ public class EmptyMainApplicationContext implements MainApplicationContext { return new EmptyEnvironmentProvider(); } + @Override + public String[] getActiveProfiles() { + return new String[0]; + } + + @Override + public String[] getDefaultProfiles() { + return new String[0]; + } + @Override public Object resolveDependency(String requestingBeanName, Class dependencyType) { return null; diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptySpringBeanFactory.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptySpringBeanFactory.java index b784bd5..98fd312 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptySpringBeanFactory.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptySpringBeanFactory.java @@ -27,7 +27,9 @@ import java.util.Map; /** * 空的 SpringBeanFactory 实现 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class EmptySpringBeanFactory implements SpringBeanFactory { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginApplicationContext.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginApplicationContext.java index be1181a..554a23f 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginApplicationContext.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginApplicationContext.java @@ -24,7 +24,9 @@ import org.springframework.context.annotation.AnnotationConfigApplicationContext /** * 插件ApplicationContext实现 + * * @author starBlues + * @since 3.0.0 * @version 3.0.3 */ public class PluginApplicationContext extends AnnotationConfigApplicationContext { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginContextHolder.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginContextHolder.java index 253c894..5a2506c 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginContextHolder.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginContextHolder.java @@ -26,6 +26,7 @@ import com.gitee.starblues.spring.environment.EnvironmentProvider; * 提供插件上下文的工具类 * * @author starBlues + * @since 3.0.0 * @version 3.0.3 */ public abstract class PluginContextHolder { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginListableBeanFactory.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginListableBeanFactory.java index b9ff5c4..f3438b8 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginListableBeanFactory.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginListableBeanFactory.java @@ -41,6 +41,7 @@ import java.util.stream.Stream; /** * 插件BeanFactory实现 + * * @author starBlues * @since 3.0.3 * @version 3.0.3 diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginOneselfInteractive.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginOneselfInteractive.java index 6d13aca..f2af6bb 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginOneselfInteractive.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginOneselfInteractive.java @@ -38,7 +38,9 @@ import java.nio.file.Paths; /** * 插件自己的Interactive + * * @author starBlues + * @since 3.0.0 * @version 3.1.0 */ public class PluginOneselfInteractive implements PluginInteractive { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginSpringApplication.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginSpringApplication.java index c21fc3f..90f17a2 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginSpringApplication.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginSpringApplication.java @@ -32,6 +32,7 @@ import org.springframework.core.io.ResourceLoader; /** * 插件SpringApplication实现 + * * @author starBlues * @since 3.0.0 * @version 3.1.0 diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginWebApplicationContext.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginWebApplicationContext.java index 9539cb3..e566772 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginWebApplicationContext.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginWebApplicationContext.java @@ -28,6 +28,7 @@ import org.springframework.boot.web.server.WebServerException; * 主程序为 web 类型时创建的插件 ApplicationContext * * @author starBlues + * @since 3.0.0 * @version 3.0.3 */ public class PluginWebApplicationContext extends PluginApplicationContext implements WebServerApplicationContext { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/ResolveHttpMessageConvertersConfiguration.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/ResolveHttpMessageConvertersConfiguration.java index 5490027..93e6d67 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/ResolveHttpMessageConvertersConfiguration.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/ResolveHttpMessageConvertersConfiguration.java @@ -28,6 +28,7 @@ import java.util.stream.Collectors; * resolve config HttpMessageConverters bean * * @author starBlues + * @since 3.0.0 * @version 3.0.3 */ public class ResolveHttpMessageConvertersConfiguration { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/SpringPluginBootstrap.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/SpringPluginBootstrap.java index 096984e..7cc9cdf 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/SpringPluginBootstrap.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/SpringPluginBootstrap.java @@ -30,6 +30,7 @@ import java.util.List; /** * 插件引导抽象类。插件入口需集成本抽象类 + * * @author starBlues * @since 3.0.0 * @version 3.0.3 diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/AutowiredType.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/AutowiredType.java index 1d9d583..fcf7923 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/AutowiredType.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/AutowiredType.java @@ -7,6 +7,7 @@ import java.lang.annotation.*; * 注入类型 * * @author starBlues + * @since 3.0.0 * @version 3.0.3 */ @Target({ElementType.FIELD, ElementType.PARAMETER}) diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/DisablePluginWeb.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/DisablePluginWeb.java index 9a4fba0..9662510 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/DisablePluginWeb.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/DisablePluginWeb.java @@ -21,7 +21,9 @@ import java.lang.annotation.*; /** * 禁用web环境. 如果该注解加入到入口类上, 表示当前插件禁用web的功能。 * 包括:controller注册、拦截器注册、web静态资源访问、thymeleaf模板引擎 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ @Target(ElementType.TYPE) diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/OneselfConfig.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/OneselfConfig.java index 1af29cd..fdf095d 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/OneselfConfig.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/OneselfConfig.java @@ -20,7 +20,9 @@ import java.lang.annotation.*; /** * 插件自主运行配置 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ @Target(ElementType.TYPE) diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/listener/PluginApplicationWebEventListener.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/listener/PluginApplicationWebEventListener.java index 6865401..16cc288 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/listener/PluginApplicationWebEventListener.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/listener/PluginApplicationWebEventListener.java @@ -28,6 +28,7 @@ import org.springframework.core.ResolvableType; * 插件监听器扩展 * * @author starBlues + * @since 3.0.0 * @version 3.0.3 */ public class PluginApplicationWebEventListener implements ApplicationListener { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ComposeSpringPluginProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ComposeSpringPluginProcessor.java index c21dc11..3acd1e2 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ComposeSpringPluginProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ComposeSpringPluginProcessor.java @@ -38,7 +38,9 @@ import java.util.stream.Collectors; /** * 组合的处理器 + * * @author starBlues + * @since 3.0.0 * @version 3.0.3 */ public class ComposeSpringPluginProcessor implements SpringPluginProcessor { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/DefaultProcessorContext.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/DefaultProcessorContext.java index 8867f90..718612f 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/DefaultProcessorContext.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/DefaultProcessorContext.java @@ -36,7 +36,9 @@ import java.util.Map; /** * 默认的处理者上下文 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class DefaultProcessorContext extends CacheRegistryInfo implements ProcessorContext{ diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ExtractBeanProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ExtractBeanProcessor.java index 0ed867c..3f8983b 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ExtractBeanProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ExtractBeanProcessor.java @@ -28,7 +28,9 @@ import java.util.Map; /** * Extract 扩展Bean注册处理者 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class ExtractBeanProcessor implements SpringPluginProcessor { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/FrameDefineBeanProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/FrameDefineBeanProcessor.java index 5098ffc..17410e8 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/FrameDefineBeanProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/FrameDefineBeanProcessor.java @@ -25,7 +25,9 @@ import org.springframework.context.support.GenericApplicationContext; /** * 框架内置bean注册 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class FrameDefineBeanProcessor implements SpringPluginProcessor { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/InvokeOtherPluginProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/InvokeOtherPluginProcessor.java index 6c12254..95fa7aa 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/InvokeOtherPluginProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/InvokeOtherPluginProcessor.java @@ -39,7 +39,9 @@ import java.util.Set; /** * 反射调用其他插件的处理者 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class InvokeOtherPluginProcessor implements SpringPluginProcessor { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ProcessorContext.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ProcessorContext.java index d7aba02..a6f8eec 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ProcessorContext.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ProcessorContext.java @@ -32,7 +32,9 @@ import org.springframework.core.io.ResourceLoader; /** * 处理者上下文 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public interface ProcessorContext extends RegistryInfo { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ProcessorException.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ProcessorException.java index c0f6306..64e8d65 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ProcessorException.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ProcessorException.java @@ -18,7 +18,9 @@ package com.gitee.starblues.bootstrap.processor; /** * 处理者异常 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class ProcessorException extends RuntimeException{ diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/SpringPluginProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/SpringPluginProcessor.java index ce59321..fd5cde5 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/SpringPluginProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/SpringPluginProcessor.java @@ -21,7 +21,9 @@ import com.gitee.starblues.utils.OrderPriority; /** * spring plugin 处理器 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public interface SpringPluginProcessor extends Order { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegister.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegister.java index 7d3454a..fee3a78 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegister.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegister.java @@ -18,7 +18,9 @@ package com.gitee.starblues.bootstrap.processor.interceptor; /** * 插件拦截器注册者 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public interface PluginInterceptorRegister { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegistration.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegistration.java index 668ab01..2bd75a1 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegistration.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegistration.java @@ -30,7 +30,9 @@ import java.util.List; /** * 插件拦截器注册的信息 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class PluginInterceptorRegistration { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegistry.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegistry.java index 817bce8..e63667d 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegistry.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegistry.java @@ -30,7 +30,9 @@ import java.util.stream.Collectors; /** * 插件拦截器添加者 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class PluginInterceptorRegistry { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/invoke/InvokeBeanFactory.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/invoke/InvokeBeanFactory.java index de9f62d..8ac47aa 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/invoke/InvokeBeanFactory.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/invoke/InvokeBeanFactory.java @@ -24,7 +24,9 @@ import java.lang.reflect.Proxy; /** * 反射调用其他插件定义的接口bean工厂 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class InvokeBeanFactory implements FactoryBean { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/invoke/InvokeProxyHandler.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/invoke/InvokeProxyHandler.java index 9efd0e0..14380f1 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/invoke/InvokeProxyHandler.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/invoke/InvokeProxyHandler.java @@ -32,7 +32,9 @@ import java.util.Objects; /** * 反射调用处理模块 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class InvokeProxyHandler implements InvocationHandler { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/oneself/ConfigureMainPluginEnvironment.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/oneself/ConfigureMainPluginEnvironment.java index 0471be3..5fe34fb 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/oneself/ConfigureMainPluginEnvironment.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/oneself/ConfigureMainPluginEnvironment.java @@ -38,6 +38,7 @@ import java.util.*; /** * 插件环境配置 + * * @author starBlues * @version 3.0.0 * @since 3.0.0 diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/scanner/PluginClassPathBeanDefinitionScanner.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/scanner/PluginClassPathBeanDefinitionScanner.java index d864180..eec8ef2 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/scanner/PluginClassPathBeanDefinitionScanner.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/scanner/PluginClassPathBeanDefinitionScanner.java @@ -22,7 +22,9 @@ import org.springframework.context.annotation.ClassPathBeanDefinitionScanner; /** * 插件自定义 classpath bean 扫描 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class PluginClassPathBeanDefinitionScanner extends ClassPathBeanDefinitionScanner { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginControllerProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginControllerProcessor.java index bfba726..ab20555 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginControllerProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginControllerProcessor.java @@ -49,7 +49,9 @@ import java.util.function.Predicate; /** * 插件Controller处理者 + * * @author starBlues + * @since 3.0.0 * @version 3.0.3 */ public class PluginControllerProcessor implements SpringPluginProcessor { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginInterceptorsProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginInterceptorsProcessor.java index 1ecd40b..5d4b0e6 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginInterceptorsProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginInterceptorsProcessor.java @@ -41,7 +41,9 @@ import java.util.Map; /** * 插件拦截器处理者 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class PluginInterceptorsProcessor implements SpringPluginProcessor { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginSpringDocControllerProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginSpringDocControllerProcessor.java index 4b2ce06..0ccb3ff 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginSpringDocControllerProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginSpringDocControllerProcessor.java @@ -33,7 +33,9 @@ import java.util.List; /** * spring doc + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class PluginSpringDocControllerProcessor implements SpringPluginProcessor { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginStaticResourceProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginStaticResourceProcessor.java index 1d2413b..71fcf48 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginStaticResourceProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginStaticResourceProcessor.java @@ -28,7 +28,9 @@ import java.util.Set; /** * 插件web资源处理器. 获取资源配置 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class PluginStaticResourceProcessor implements SpringPluginProcessor { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/thymeleaf/PluginThymeleafProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/thymeleaf/PluginThymeleafProcessor.java index 0cca5ec..35e7d9c 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/thymeleaf/PluginThymeleafProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/thymeleaf/PluginThymeleafProcessor.java @@ -26,7 +26,9 @@ import org.springframework.context.support.GenericApplicationContext; /** * 插件 Thymeleaf 注册 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class PluginThymeleafProcessor implements SpringPluginProcessor { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/thymeleaf/ThymeleafConfigParse.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/thymeleaf/ThymeleafConfigParse.java index 411818b..a46d9e7 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/thymeleaf/ThymeleafConfigParse.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/thymeleaf/ThymeleafConfigParse.java @@ -22,7 +22,9 @@ import org.springframework.core.env.Environment; /** * 解析ThymeleafConfig配置 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class ThymeleafConfigParse { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/realize/PluginCloseListener.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/realize/PluginCloseListener.java index c151abf..bc07c43 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/realize/PluginCloseListener.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/realize/PluginCloseListener.java @@ -23,6 +23,7 @@ import org.springframework.context.support.GenericApplicationContext; /** * 插件被停止监听者。用于自定义关闭资源 + * * @author starBlues * @since 3.0.0 * @version 3.1.0 diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/realize/StopValidator.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/realize/StopValidator.java index 54e58a0..22108d4 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/realize/StopValidator.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/realize/StopValidator.java @@ -18,6 +18,7 @@ package com.gitee.starblues.bootstrap.realize; /** * 插件停止校验器. 自主实现判断是否可卸载 + * * @author starBlues * @since 3.0.0 * @version 3.0.3 diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/AnnotationUtils.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/AnnotationUtils.java index aa778ae..97c6247 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/AnnotationUtils.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/AnnotationUtils.java @@ -22,7 +22,9 @@ import java.lang.reflect.Method; /** * 注解工具类 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class AnnotationUtils { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/DestroyUtils.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/DestroyUtils.java index eec6ef1..3bc5c7a 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/DestroyUtils.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/DestroyUtils.java @@ -25,7 +25,9 @@ import java.util.Objects; /** * 销毁工具类 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class DestroyUtils { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/ProcessorUtils.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/ProcessorUtils.java index 15a8e5a..72c2f33 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/ProcessorUtils.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/ProcessorUtils.java @@ -23,7 +23,9 @@ import java.util.function.Supplier; /** * ProcessorUtils + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class ProcessorUtils { diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/SpringBeanUtils.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/SpringBeanUtils.java index db039fb..eed8f8e 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/SpringBeanUtils.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/SpringBeanUtils.java @@ -24,7 +24,9 @@ import java.util.*; /** * 插件bean工具类 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class SpringBeanUtils { diff --git a/spring-brick-common/pom.xml b/spring-brick-common/pom.xml index 3a57ab0..e3b63b2 100644 --- a/spring-brick-common/pom.xml +++ b/spring-brick-common/pom.xml @@ -7,7 +7,7 @@ spring-brick-parent com.gitee.starblues - 3.1.0 + 3.1.1 spring-brick-common diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/common/AbstractDependencyPlugin.java b/spring-brick-common/src/main/java/com/gitee/starblues/common/AbstractDependencyPlugin.java index 4052ff7..2edd513 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/common/AbstractDependencyPlugin.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/common/AbstractDependencyPlugin.java @@ -25,6 +25,7 @@ import java.util.function.Supplier; * 依赖的插件 * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public abstract class AbstractDependencyPlugin implements DependencyPlugin{ diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/common/Constants.java b/spring-brick-common/src/main/java/com/gitee/starblues/common/Constants.java index 481b524..65d6756 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/common/Constants.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/common/Constants.java @@ -16,11 +16,12 @@ package com.gitee.starblues.common; -import java.io.File; /** * 静态常量 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public abstract class Constants { diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/common/DependencyPlugin.java b/spring-brick-common/src/main/java/com/gitee/starblues/common/DependencyPlugin.java index cb306a9..e969e99 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/common/DependencyPlugin.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/common/DependencyPlugin.java @@ -20,6 +20,7 @@ package com.gitee.starblues.common; * 依赖的插件 * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public interface DependencyPlugin { diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/common/ManifestKey.java b/spring-brick-common/src/main/java/com/gitee/starblues/common/ManifestKey.java index c4b25f9..0b01c59 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/common/ManifestKey.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/common/ManifestKey.java @@ -22,6 +22,7 @@ import java.util.jar.Attributes; * Manifest-Key * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class ManifestKey { diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/common/PackageStructure.java b/spring-brick-common/src/main/java/com/gitee/starblues/common/PackageStructure.java index 3a02c90..376ce4c 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/common/PackageStructure.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/common/PackageStructure.java @@ -26,6 +26,7 @@ import java.util.regex.Matcher; * 插件打包结构 * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public abstract class PackageStructure { diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/common/PackageType.java b/spring-brick-common/src/main/java/com/gitee/starblues/common/PackageType.java index ce11a77..99b8fb2 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/common/PackageType.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/common/PackageType.java @@ -20,6 +20,7 @@ package com.gitee.starblues.common; * 打包类型 * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class PackageType { diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/common/PluginDescriptorKey.java b/spring-brick-common/src/main/java/com/gitee/starblues/common/PluginDescriptorKey.java index fab3247..7ff0687 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/common/PluginDescriptorKey.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/common/PluginDescriptorKey.java @@ -20,6 +20,7 @@ package com.gitee.starblues.common; * 插件描述文件配置key * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class PluginDescriptorKey { diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/AbstractPluginCipher.java b/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/AbstractPluginCipher.java index a2bd206..9233c33 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/AbstractPluginCipher.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/AbstractPluginCipher.java @@ -9,6 +9,7 @@ import java.util.Map; * 抽象的插件解密 * * @author starBlues + * @since 3.0.1 * @version 3.0.1 */ public abstract class AbstractPluginCipher implements PluginCipher{ diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/AesPluginCipher.java b/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/AesPluginCipher.java index 3d15489..c6bb134 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/AesPluginCipher.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/AesPluginCipher.java @@ -30,6 +30,7 @@ import java.util.Base64; * AES 加密 * * @author starBlues + * @since 3.0.1 * @version 3.0.1 */ public class AesPluginCipher extends AbstractPluginCipher{ diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/PluginCipher.java b/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/PluginCipher.java index 257d09e..ebb5daa 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/PluginCipher.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/PluginCipher.java @@ -20,6 +20,7 @@ package com.gitee.starblues.common.cipher; * 插件密码接口 * * @author starBlues + * @since 3.0.1 * @version 3.0.1 */ public interface PluginCipher { diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/RsaPluginCipher.java b/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/RsaPluginCipher.java index 26dbff2..8a9756d 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/RsaPluginCipher.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/RsaPluginCipher.java @@ -33,6 +33,7 @@ import java.util.Base64; * 非对称插件加解密 * * @author starBlues + * @since 3.0.1 * @version 3.0.1 */ public class RsaPluginCipher extends AbstractPluginCipher{ diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/utils/Assert.java b/spring-brick-common/src/main/java/com/gitee/starblues/utils/Assert.java index 839a8ba..98adbe0 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/utils/Assert.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/utils/Assert.java @@ -23,6 +23,7 @@ import java.util.function.Supplier; * 参数校验工具类 * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public abstract class Assert { diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/utils/CompareClassTypeUtils.java b/spring-brick-common/src/main/java/com/gitee/starblues/utils/CompareClassTypeUtils.java index 1901f57..2f49944 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/utils/CompareClassTypeUtils.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/utils/CompareClassTypeUtils.java @@ -20,6 +20,7 @@ package com.gitee.starblues.utils; * 比较两个类类型 * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public abstract class CompareClassTypeUtils { diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/utils/FieldFilter.java b/spring-brick-common/src/main/java/com/gitee/starblues/utils/FieldFilter.java index 915882f..76b431e 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/utils/FieldFilter.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/utils/FieldFilter.java @@ -22,6 +22,7 @@ import java.lang.reflect.Field; * 文过滤接口 * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ @FunctionalInterface diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/utils/MapValueGetter.java b/spring-brick-common/src/main/java/com/gitee/starblues/utils/MapValueGetter.java index 813844c..862a768 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/utils/MapValueGetter.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/utils/MapValueGetter.java @@ -8,6 +8,7 @@ import java.util.function.Function; * map 值获取者工具类 * * @author starBlues + * @since 3.0.0 * @version 3.0.3 */ public class MapValueGetter { diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/utils/ObjectUtils.java b/spring-brick-common/src/main/java/com/gitee/starblues/utils/ObjectUtils.java index ba1baca..ba8b958 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/utils/ObjectUtils.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/utils/ObjectUtils.java @@ -24,6 +24,7 @@ import java.util.*; * Object 工具类 * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class ObjectUtils { diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/utils/ObjectValueUtils.java b/spring-brick-common/src/main/java/com/gitee/starblues/utils/ObjectValueUtils.java index 9f34725..7114ece 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/utils/ObjectValueUtils.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/utils/ObjectValueUtils.java @@ -20,6 +20,7 @@ package com.gitee.starblues.utils; * object value convert utils * * @author starBlues + * @since 3.0.0 * @version 3.0.3 */ public abstract class ObjectValueUtils { diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/utils/PropertiesUtils.java b/spring-brick-common/src/main/java/com/gitee/starblues/utils/PropertiesUtils.java index 22700c7..436934a 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/utils/PropertiesUtils.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/utils/PropertiesUtils.java @@ -22,6 +22,7 @@ import java.util.Properties; * 操作 Manifest 工具类 * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public abstract class PropertiesUtils { diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/utils/ReflectionUtils.java b/spring-brick-common/src/main/java/com/gitee/starblues/utils/ReflectionUtils.java index a087e07..15f342f 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/utils/ReflectionUtils.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/utils/ReflectionUtils.java @@ -25,6 +25,7 @@ import java.util.*; * 反射工具类 * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public abstract class ReflectionUtils { diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/utils/ResourceUtils.java b/spring-brick-common/src/main/java/com/gitee/starblues/utils/ResourceUtils.java index a75d3ec..89c04a5 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/utils/ResourceUtils.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/utils/ResourceUtils.java @@ -29,6 +29,7 @@ import java.util.function.Consumer; * 资源工具类 * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class ResourceUtils { diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/utils/StringUtils.java b/spring-brick-common/src/main/java/com/gitee/starblues/utils/StringUtils.java index fc2abbb..e38afb8 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/utils/StringUtils.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/utils/StringUtils.java @@ -25,6 +25,7 @@ import java.util.StringTokenizer; * String 工具类 * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class StringUtils { diff --git a/spring-brick-loader/pom.xml b/spring-brick-loader/pom.xml index d453dab..2eee617 100644 --- a/spring-brick-loader/pom.xml +++ b/spring-brick-loader/pom.xml @@ -5,7 +5,7 @@ spring-brick-parent com.gitee.starblues - 3.1.0 + 3.1.1 4.0.0 diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/LoaderConstant.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/LoaderConstant.java index 94f65c4..4ce0012 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/LoaderConstant.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/LoaderConstant.java @@ -20,6 +20,7 @@ package com.gitee.starblues.loader; * 常量统一定义 * * @author starBlues + * @since 3.0.0 * @version 3.0.2 */ public class LoaderConstant { diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/PluginResourceStorage.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/PluginResourceStorage.java index c32edec..57d6991 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/PluginResourceStorage.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/PluginResourceStorage.java @@ -31,7 +31,9 @@ import java.util.concurrent.ConcurrentHashMap; /** * 插件资源存储者 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class PluginResourceStorage { diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/archive/Archive.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/archive/Archive.java index 8c351af..11f95d6 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/archive/Archive.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/archive/Archive.java @@ -25,8 +25,7 @@ import java.util.function.Consumer; import java.util.jar.Manifest; /** - * copy from spring-boot-loader - * An archive that can be launched by the {@link Launcher}. + * An archive that can be launched * * @author Phillip Webb * @since 1.0.0 diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/GenericClassLoader.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/GenericClassLoader.java index a186c84..226b25b 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/GenericClassLoader.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/GenericClassLoader.java @@ -28,11 +28,14 @@ import java.net.URL; import java.net.URLClassLoader; import java.nio.file.Path; import java.util.*; +import java.util.concurrent.ConcurrentHashMap; /** * 基本的 ClassLoader + * * @author starBlues - * @version 3.0.0 + * @since 3.0.0 + * @version 3.1.1 */ public class GenericClassLoader extends URLClassLoader implements ResourceLoaderFactory{ @@ -43,6 +46,8 @@ public class GenericClassLoader extends URLClassLoader implements ResourceLoader private final ResourceLoaderFactory classLoaderTranslator; + private final Map> pluginClassCache = new ConcurrentHashMap<>(); + public GenericClassLoader(String name, ResourceLoaderFactory resourceLoaderFactory) { this(name, null, resourceLoaderFactory); } @@ -59,6 +64,10 @@ public class GenericClassLoader extends URLClassLoader implements ResourceLoader return name; } + public ClassLoader getParentClassLoader(){ + return parent; + } + @Override public void addResource(String path) throws Exception { resourceLoaderFactory.addResource(path); @@ -116,6 +125,76 @@ public class GenericClassLoader extends URLClassLoader implements ResourceLoader } } + @Override + public URL[] getURLs() { + List urlList = resourceLoaderFactory.getUrls(); + URL[] urls = new URL[urlList.size()]; + for (int i = 0; i < urlList.size(); i++) { + urls[i] = urlList.get(i); + } + return urls; + } + + @Override + public InputStream getResourceAsStream(String name) { + name = formatResourceName(name); + InputStream inputStream = findInputStreamFromParent(name); + if(inputStream != null){ + return inputStream; + } + return findInputStreamFromLocal(name); + } + + @Override + public URL getResource(String name) { + name = formatResourceName(name); + URL url = findResourceFromParent(name); + if(url != null){ + return url; + } + return findResourceFromLocal(name); + } + + @Override + public Enumeration getResources(String name) throws IOException { + name = formatResourceName(name); + Enumeration parentResources = findResourcesFromParent(name); + Enumeration localResources = findResourcesFromLocal(name); + return new Enumeration() { + + private int index = 0; + + @Override + public boolean hasMoreElements() { + if(parentResources != null && parentResources.hasMoreElements()){ + return true; + } + index = 1; + return localResources.hasMoreElements(); + } + + @Override + public URL nextElement() { + if(index == 0){ + return parentResources.nextElement(); + } else { + return localResources.nextElement(); + } + } + }; + } + + @Override + public void close() throws IOException { + super.close(); + IOUtils.closeQuietly(resourceLoaderFactory); + } + + @Override + public void release() { + ResourceUtils.release(resourceLoaderFactory); + } + @Override protected Class findClass(String className) throws ClassNotFoundException { Class loadedClass = findClassFromParent(className); @@ -147,6 +226,12 @@ public class GenericClassLoader extends URLClassLoader implements ResourceLoader protected Class findClassFromLocal(String name) { Class aClass; String formatClassName = formatClassName(name); + + aClass = pluginClassCache.get(formatClassName); + if (aClass != null) { + return aClass; + } + Resource resource = resourceLoaderFactory.findFirstResource(formatClassName); byte[] bytes = null; if(resource != null){ @@ -168,72 +253,10 @@ public class GenericClassLoader extends URLClassLoader implements ResourceLoader super.definePackage(packageName, null, null, null, null, null, null, null ); } + pluginClassCache.put(name, aClass); return aClass; } - private byte[] getClassByte(String formatClassName){ - InputStream inputStream = resourceLoaderFactory.getInputStream(formatClassName); - if(inputStream == null){ - return null; - } - ByteArrayOutputStream output = new ByteArrayOutputStream(); - try { - byte[] buffer = new byte[4096]; - int n = 0; - while (-1 != (n = inputStream.read(buffer))) { - output.write(buffer, 0, n); - } - return output.toByteArray(); - } catch (Exception e){ - e.printStackTrace(); - return null; - } finally { - IOUtils.closeQuietly(inputStream); - IOUtils.closeQuietly(output); - } - } - - @Override - public URL[] getURLs() { - List urlList = resourceLoaderFactory.getUrls(); - URL[] urls = new URL[urlList.size()]; - for (int i = 0; i < urlList.size(); i++) { - urls[i] = urlList.get(i); - } - return urls; - } - - @Override - public InputStream getResourceAsStream(String name) { - name = formatResourceName(name); - InputStream inputStream = findInputStreamFromParent(name); - if(inputStream != null){ - return inputStream; - } - return findInputStreamFromLocal(name); - } - - protected InputStream findInputStreamFromParent(String name){ - if(parent != null){ - return parent.getResourceAsStream(name); - } - return null; - } - - protected InputStream findInputStreamFromLocal(String name){ - return resourceLoaderFactory.getInputStream(name); - } - - @Override - public URL getResource(String name) { - name = formatResourceName(name); - URL url = findResourceFromParent(name); - if(url != null){ - return url; - } - return findResourceFromLocal(name); - } - protected URL findResourceFromParent(String name){ if(parent != null){ return parent.getResource(name); @@ -249,33 +272,16 @@ public class GenericClassLoader extends URLClassLoader implements ResourceLoader return resource.getUrl(); } - @Override - public Enumeration getResources(String name) throws IOException { - name = formatResourceName(name); - Enumeration parentResources = findResourcesFromParent(name); - Enumeration localResources = findResourcesFromLocal(name); - return new Enumeration() { - - private int index = 0; - @Override - public boolean hasMoreElements() { - if(parentResources != null && parentResources.hasMoreElements()){ - return true; - } - index = 1; - return localResources.hasMoreElements(); - } + protected InputStream findInputStreamFromParent(String name){ + if(parent != null){ + return parent.getResourceAsStream(name); + } + return null; + } - @Override - public URL nextElement() { - if(index == 0){ - return parentResources.nextElement(); - } else { - return localResources.nextElement(); - } - } - }; + protected InputStream findInputStreamFromLocal(String name){ + return resourceLoaderFactory.getInputStream(name); } protected Enumeration findResourcesFromParent(String name) throws IOException{ @@ -300,10 +306,19 @@ public class GenericClassLoader extends URLClassLoader implements ResourceLoader }; } - @Override - public void close() throws IOException { - super.close(); - IOUtils.closeQuietly(resourceLoaderFactory); + private byte[] getClassByte(String formatClassName){ + InputStream inputStream = resourceLoaderFactory.getInputStream(formatClassName); + if(inputStream == null){ + return null; + } + try { + return IOUtils.read(inputStream); + } catch (Exception e){ + e.printStackTrace(); + return null; + } finally { + IOUtils.closeQuietly(inputStream); + } } private String formatResourceName(String name) { @@ -317,5 +332,4 @@ public class GenericClassLoader extends URLClassLoader implements ResourceLoader return className; } - } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/Resource.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/Resource.java index a2c4d01..3d036a8 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/Resource.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/Resource.java @@ -16,6 +16,8 @@ package com.gitee.starblues.loader.classloader.resource; +import com.gitee.starblues.loader.utils.Release; + import java.net.URL; /** @@ -23,7 +25,7 @@ import java.net.URL; * @author starBlues * @version 3.0.0 */ -public interface Resource extends AutoCloseable{ +public interface Resource extends AutoCloseable, Release { String PACKAGE_SPLIT = "/"; @@ -58,5 +60,6 @@ public interface Resource extends AutoCloseable{ */ void setBytes(ResourceByteGetter byteGetter) throws Exception; + void release(); } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/AbstractResourceLoader.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/AbstractResourceLoader.java index b3ec9ec..8cbdba9 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/AbstractResourceLoader.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/AbstractResourceLoader.java @@ -26,7 +26,8 @@ import java.net.URL; /** * 抽象的资源加载者 * @author starBlues - * @version 3.0.0 + * @since 3.0.0 + * @version 3.1.1 */ public abstract class AbstractResourceLoader implements ResourceLoader{ @@ -74,15 +75,12 @@ public abstract class AbstractResourceLoader implements ResourceLoader{ if(!isClass(path)){ return null; } - final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); try { - IOUtils.copy(inputStream, byteArrayOutputStream); - return byteArrayOutputStream.toByteArray(); + return IOUtils.read(inputStream); } finally { if(isClose){ IOUtils.closeQuietly(inputStream); } - IOUtils.closeQuietly(byteArrayOutputStream); } } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/ClassPathLoader.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/ClassPathLoader.java index 24048c0..ad659bb 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/ClassPathLoader.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/ClassPathLoader.java @@ -22,13 +22,15 @@ import java.io.File; import java.io.FileInputStream; import java.net.MalformedURLException; import java.net.URL; +import java.nio.file.Files; import java.nio.file.Path; import java.util.Objects; /** * classpath 资源加载者 * @author starBlues - * @version 3.0.0 + * @since 3.0.0 + * @version 3.1.1 */ public class ClassPathLoader extends AbstractResourceLoader { @@ -88,7 +90,7 @@ public class ClassPathLoader extends AbstractResourceLoader { private void addResource(ResourceStorage resourceStorage, File file, String packageName) throws Exception { resourceStorage.add(packageName, new URL(url.toString() + packageName), ()->{ if(file.exists() && file.isFile()){ - return getClassBytes(file.getPath(), new FileInputStream(file), true); + return getClassBytes(file.getPath(), Files.newInputStream(file.toPath()), true); } else { return null; } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/DefaultResource.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/DefaultResource.java index d8f53f9..2fa6e7a 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/DefaultResource.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/DefaultResource.java @@ -24,7 +24,8 @@ import java.net.URL; /** * 默认的资源信息 * @author starBlues - * @version 3.0.0 + * @since 3.0.0 + * @version 3.1.1 */ public class DefaultResource implements Resource { @@ -67,4 +68,9 @@ public class DefaultResource implements Resource { public void close() throws Exception { } + + @Override + public void release() { + + } } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/DefaultResourceLoaderFactory.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/DefaultResourceLoaderFactory.java index 5666521..f3888e4 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/DefaultResourceLoaderFactory.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/DefaultResourceLoaderFactory.java @@ -36,7 +36,8 @@ import java.util.concurrent.ConcurrentHashMap; * 默认的资源加载工厂 * * @author starBlues - * @version 3.0.0 + * @since 3.0.0 + * @version 3.1.1 */ public class DefaultResourceLoaderFactory implements ResourceLoaderFactory{ @@ -48,7 +49,6 @@ public class DefaultResourceLoaderFactory implements ResourceLoaderFactory{ this.classLoaderName = classLoaderName; } - @Override public void addResource(String path) throws Exception{ if(path == null || "".equals(path)){ @@ -113,13 +113,14 @@ public class DefaultResourceLoaderFactory implements ResourceLoaderFactory{ return; } SameRootResourceStorage resourceStorage = resourceLoaderMap.get(resourceLoader.getBaseUrl()); - if (resourceStorage == null) { - resourceStorage = ResourceLoaderFactoryGetter.getResourceStorage( - classLoaderName, - resourceLoader.getBaseUrl()); - resourceLoaderMap.put(resourceLoader.getBaseUrl(), resourceStorage); + if (resourceStorage != null) { + return; } + resourceStorage = ResourceLoaderFactoryGetter.getResourceStorage( + classLoaderName, + resourceLoader.getBaseUrl()); resourceLoader.load(resourceStorage); + resourceLoaderMap.put(resourceLoader.getBaseUrl(), resourceStorage); } @Override @@ -207,4 +208,10 @@ public class DefaultResourceLoaderFactory implements ResourceLoaderFactory{ resourceLoaderMap.clear(); } + @Override + public void release() { + for (SameRootResourceStorage resourceStorage : resourceLoaderMap.values()) { + ResourceUtils.release(resourceStorage); + } + } } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/JarResourceLoader.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/JarResourceLoader.java index 5984b42..5f99f44 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/JarResourceLoader.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/JarResourceLoader.java @@ -28,11 +28,12 @@ import java.util.jar.JarInputStream; /** * jar 资源加载者 * @author starBlues - * @version 3.0.0 + * @since 3.0.0 + * @version 3.1.1 */ public class JarResourceLoader extends AbstractResourceLoader { - private final JarInputStream jarInputStream; + private JarInputStream jarInputStream; private ExcludeResource excludeResource = (jarEntry)->false; private IncludeResource includeResource = (jarEntry)->true; @@ -90,6 +91,12 @@ public class JarResourceLoader extends AbstractResourceLoader { } } + @Override + public void close() throws Exception { + super.close(); + jarInputStream = null; + } + protected String resolveName(String name){ return name; } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/ResourceLoaderFactory.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/ResourceLoaderFactory.java index 60cedc8..dfadddb 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/ResourceLoaderFactory.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/ResourceLoaderFactory.java @@ -18,6 +18,7 @@ package com.gitee.starblues.loader.classloader.resource.loader; import com.gitee.starblues.loader.classloader.resource.Resource; import com.gitee.starblues.loader.classloader.resource.storage.ResourceStorage; +import com.gitee.starblues.loader.utils.Release; import java.io.File; import java.io.InputStream; @@ -30,9 +31,10 @@ import java.util.List; * 资源加载工厂 * * @author starBlues - * @version 3.0.0 + * @since 3.0.0 + * @version 3.1.1 */ -public interface ResourceLoaderFactory extends AutoCloseable { +public interface ResourceLoaderFactory extends AutoCloseable, Release { /** * 根据路径字符串添加资源 diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/DefaultResourceStorage.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheReleasedResourceStorage.java similarity index 42% rename from spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/DefaultResourceStorage.java rename to spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheReleasedResourceStorage.java index a1f230d..99f13a6 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/DefaultResourceStorage.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheReleasedResourceStorage.java @@ -16,124 +16,121 @@ package com.gitee.starblues.loader.classloader.resource.storage; -import com.gitee.starblues.loader.classloader.resource.loader.DefaultResource; import com.gitee.starblues.loader.classloader.resource.Resource; +import com.gitee.starblues.loader.classloader.resource.loader.DefaultResource; import com.gitee.starblues.loader.classloader.resource.ResourceByteGetter; -import com.gitee.starblues.loader.utils.Assert; -import com.gitee.starblues.loader.utils.IOUtils; import com.gitee.starblues.loader.utils.ObjectUtils; import com.gitee.starblues.loader.utils.ResourceUtils; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; import java.net.URL; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; +import java.net.URLConnection; +import java.util.Arrays; /** - * 默认的资源存储者 + * 可缓存的资源存储者 * * @author starBlues - * @version 3.0.0 + * @since 3.1.1 + * @version 3.1.1 */ -public class DefaultResourceStorage extends SameRootResourceStorage{ +public class CacheReleasedResourceStorage extends CacheResourceStorage { - protected final Map resourceStorage = new ConcurrentHashMap<>(); + private volatile boolean release = false; - public DefaultResourceStorage(URL baseUrl) { + public CacheReleasedResourceStorage(URL baseUrl) { super(baseUrl); } @Override public void add(String name, URL url, ResourceByteGetter byteGetter) throws Exception{ - if(ObjectUtils.isEmpty(name) || url == null){ - return; - } name = formatResourceName(name); if(resourceStorage.containsKey(name)){ return; } - DefaultResource defaultResource = new DefaultResource(name, baseUrl, url); - resourceStorage.put(name, defaultResource); + CacheReleasedResource cacheResource = new CacheReleasedResource(name, baseUrl, url); + cacheResource.setBytes(byteGetter); + addResource(name, cacheResource); } @Override - public void add(String name, URL url) throws Exception{ - if(ObjectUtils.isEmpty(name) || url == null){ - return; - } - this.add(name, url, null); + public boolean exist(String name) { + return get(name) != null; } @Override - public boolean exist(String name) { - if(ObjectUtils.isEmpty(name)){ - return false; + public Resource get(String name) { + Resource resource = super.get(name); + if(resource != null){ + return resource; } - name = formatResourceName(name); - return resourceStorage.containsKey(name); - } - - protected void addResource(String name, Resource resource){ - if(ObjectUtils.isEmpty(name) || resource == null){ - return; + if(!release){ + return null; + } + URL existUrl = getExistUrl(name); + if(existUrl == null){ + return null; } - resourceStorage.put(name, resource); + DefaultResource defaultResource = new DefaultResource(name, baseUrl, existUrl); + addResource(name, defaultResource); + return defaultResource; } + @Override - public Resource get(String name) { - if(ObjectUtils.isEmpty(name)){ - return null; + public void release() throws Exception { + for (Resource resource : resourceStorage.values()) { + ResourceUtils.release(resource); } - name = formatResourceName(name); - return resourceStorage.get(name); + resourceStorage.clear(); + release = true; } - @Override - public InputStream getInputStream(String name) { - if(ObjectUtils.isEmpty(name)){ - return null; + /** + * 获取存在的url + * @param name 资源名称 + * @return 存在的URL, 不存在返回nulll + */ + private URL getExistUrl(String name){ + URL url; + try { + url = new URL(baseUrl, name); + } catch (MalformedURLException e) { + throw new IllegalArgumentException("非法:" + name); } - name = formatResourceName(name); - Resource resourceInfo = resourceStorage.get(name); - if (resourceInfo != null) { - try (InputStream inputStream = resourceInfo.getUrl().openStream(); - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()){ - IOUtils.copy(inputStream, byteArrayOutputStream); - return new ByteArrayInputStream(byteArrayOutputStream.toByteArray()); - } catch (Exception e){ - e.printStackTrace(); - return null; + try { + URLConnection uc = url.openConnection(); + if (uc instanceof HttpURLConnection) { + HttpURLConnection hconn = (HttpURLConnection)uc; + hconn.setRequestMethod("HEAD"); + if (hconn.getResponseCode() >= HttpURLConnection.HTTP_BAD_REQUEST) { + return null; + } + } else { + uc.setUseCaches(false); + InputStream is = uc.getInputStream(); + is.close(); } - } else { + return url; + } catch (Exception e) { return null; } } - @Override - public List getAll() { - return new ArrayList<>(resourceStorage.values()); - } + protected static class CacheReleasedResource extends CacheResourceStorage.CacheResource{ - @Override - public boolean isEmpty() { - return resourceStorage.isEmpty(); - } + public CacheReleasedResource(String name, URL baseUrl, URL url) { + super(name, baseUrl, url); + } - @Override - public void close() throws Exception { - for (Resource resource : resourceStorage.values()) { - IOUtils.closeQuietly(resource); + @Override + public void release() { + Arrays.fill(bytes, (byte) 0); + bytes = null; } - resourceStorage.clear(); } - protected final String formatResourceName(String name) { - return ResourceUtils.formatStandardName(name); - } } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheResourceStorage.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheResourceStorage.java index a24a7c9..3486a6d 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheResourceStorage.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheResourceStorage.java @@ -19,18 +19,29 @@ package com.gitee.starblues.loader.classloader.resource.storage; import com.gitee.starblues.loader.classloader.resource.loader.DefaultResource; import com.gitee.starblues.loader.classloader.resource.Resource; import com.gitee.starblues.loader.classloader.resource.ResourceByteGetter; - +import com.gitee.starblues.loader.utils.IOUtils; +import com.gitee.starblues.loader.utils.ObjectUtils; +import com.gitee.starblues.loader.utils.ResourceUtils; +import java.io.IOException; +import java.io.InputStream; import java.net.URL; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; /** - * 可缓存的资源存储者 + * 默认的资源存储者 * * @author starBlues - * @version 3.0.0 + * @since 3.0.0 + * @version 3.1.1 */ -public class CacheResourceStorage extends DefaultResourceStorage{ +public class CacheResourceStorage extends SameRootResourceStorage{ + + protected final Map resourceStorage = new ConcurrentHashMap<>(); + + private final List inputStreams = new ArrayList<>(); public CacheResourceStorage(URL baseUrl) { super(baseUrl); @@ -47,9 +58,79 @@ public class CacheResourceStorage extends DefaultResourceStorage{ addResource(name, cacheResource); } - private static class CacheResource extends DefaultResource { + @Override + public void add(String name, URL url) throws Exception{ + if(ObjectUtils.isEmpty(name) || url == null){ + return; + } + this.add(name, url, null); + } + + @Override + public boolean exist(String name) { + if(ObjectUtils.isEmpty(name)){ + return false; + } + name = formatResourceName(name); + return resourceStorage.containsKey(name); + } + + protected void addResource(String name, Resource resource){ + if(ObjectUtils.isEmpty(name) || resource == null){ + return; + } + resourceStorage.put(name, resource); + } + + @Override + public Resource get(String name) { + if(ObjectUtils.isEmpty(name)){ + return null; + } + name = formatResourceName(name); + return resourceStorage.get(name); + } + + @Override + public InputStream getInputStream(String name) { + if(ObjectUtils.isEmpty(name)){ + return null; + } + Resource resource = get(name); + if(resource == null){ + return null; + } + try { + InputStream inputStream = resource.getUrl().openStream(); + inputStreams.add(inputStream); + return inputStream; + } catch (IOException e) { + e.printStackTrace(); + return null; + } + } + + @Override + public void close() throws Exception { + for (InputStream inputStream : inputStreams) { + IOUtils.closeQuietly(inputStream); + } + for (Resource resource : resourceStorage.values()) { + IOUtils.closeQuietly(resource); + } + resourceStorage.clear(); + } - private byte[] bytes; + protected final String formatResourceName(String name) { + return ResourceUtils.formatStandardName(name); + } + + /** + * 缓存资源 + */ + protected static class CacheResource extends DefaultResource { + + protected byte[] bytes; public CacheResource(String name, URL baseUrl, URL url) { super(name, baseUrl, url); @@ -60,7 +141,6 @@ public class CacheResourceStorage extends DefaultResourceStorage{ if(byteGetter == null){ return; } - // 忽略 bytes = byteGetter.get(); } @@ -70,5 +150,4 @@ public class CacheResourceStorage extends DefaultResourceStorage{ } } - } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/EmptyResourceStorage.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/EmptyResourceStorage.java index 72b1984..a340d24 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/EmptyResourceStorage.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/EmptyResourceStorage.java @@ -27,8 +27,8 @@ import java.util.List; * 空的资源存储 * * @author starBlues - * @version 3.1.0 * @since 3.0.4 + * @version 3.1.1 */ public class EmptyResourceStorage implements ResourceStorage{ @Override @@ -56,16 +56,6 @@ public class EmptyResourceStorage implements ResourceStorage{ return null; } - @Override - public List getAll() { - return null; - } - - @Override - public boolean isEmpty() { - return false; - } - @Override public void close() throws Exception { diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/ResourceStorage.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/ResourceStorage.java index 0720a4e..911fef1 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/ResourceStorage.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/ResourceStorage.java @@ -18,6 +18,7 @@ package com.gitee.starblues.loader.classloader.resource.storage; import com.gitee.starblues.loader.classloader.resource.Resource; import com.gitee.starblues.loader.classloader.resource.ResourceByteGetter; +import com.gitee.starblues.loader.utils.Release; import java.io.InputStream; import java.net.URL; @@ -27,9 +28,10 @@ import java.util.List; * 资源存储者 * * @author starBlues - * @version 3.0.0 + * @since 3.0.0 + * @version 3.1.1 */ -public interface ResourceStorage extends AutoCloseable{ +public interface ResourceStorage extends AutoCloseable, Release { /** * 添加资源 @@ -69,17 +71,4 @@ public interface ResourceStorage extends AutoCloseable{ */ InputStream getInputStream(String name); - /** - * 得到全部资源 - * @return 全部资源列表 - */ - List getAll(); - - /** - * 是否为空 - * @return boolean - */ - boolean isEmpty(); - - } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/ShareResourceStorage.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/ShareResourceStorage.java deleted file mode 100644 index ec61cf9..0000000 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/ShareResourceStorage.java +++ /dev/null @@ -1,159 +0,0 @@ -/** - * Copyright [2019-2022] [starBlues] - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.gitee.starblues.loader.classloader.resource.storage; - -import com.gitee.starblues.loader.classloader.resource.loader.DefaultResource; -import com.gitee.starblues.loader.classloader.resource.ResourceByteGetter; -import com.gitee.starblues.loader.utils.Assert; - -import java.net.URL; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -/** - * 共享资源存储者 - * - * @author starBlues - * @version 3.0.0 - */ -public class ShareResourceStorage extends DefaultResourceStorage{ - - private final String key; - - public ShareResourceStorage(String key, URL baseUrl) { - super(baseUrl); - this.key = key; - } - - @Override - public void add(String name, URL url, ResourceByteGetter byteGetter) throws Exception{ - name = formatResourceName(name); - if(resourceStorage.containsKey(name)){ - return; - } - ShareResource shareResource = new ShareResource(key, name, baseUrl, url); - shareResource.setBytes(byteGetter); - super.addResource(name, shareResource); - } - - @Override - public void close() throws Exception { - super.close(); - } - - private static class ShareResource extends DefaultResource { - - private final static Map BYTE_STORE_MAP = new ConcurrentHashMap<>(); - private final String key; - - public ShareResource(String key, String name, URL baseUrl, URL url) { - super(name, baseUrl, url); - this.key = key; - } - - @Override - public void setBytes(ResourceByteGetter byteGetter) throws Exception{ - if(byteGetter == null){ - return; - } - byte[] bytes = byteGetter.get(); - String name = getName(); - ByteStore byteStore = BYTE_STORE_MAP.get(name); - if(byteStore == null){ - byteStore = new ByteStore(name); - byteStore.addByte(key, bytes); - BYTE_STORE_MAP.put(name, byteStore); - } else { - byteStore.addByte(key, bytes); - } - } - - @Override - public byte[] getBytes() { - String name = getName(); - ByteStore byteStore = BYTE_STORE_MAP.get(name); - if(byteStore == null){ - return null; - } - return byteStore.getByte(key); - } - - @Override - public void close() throws Exception { - String name = getName(); - ByteStore byteStore = BYTE_STORE_MAP.get(name); - if(byteStore == null){ - return; - } - if(byteStore.remove(key)){ - BYTE_STORE_MAP.remove(name); - } - } - } - - private static class ByteStore{ - - private final String commonByteKey; - - private final Map bytesMap = new HashMap<>(); - - private ByteStore(String resourceName) { - this.commonByteKey = resourceName + "_ByteStoreCommon"; - } - - public synchronized void addByte(String key, byte[] bytes){ - Assert.isNotEmpty(key, "classLoaderName 不能为空"); - if(bytes == null || bytes.length == 0){ - return; - } - byte[] bytesOfMap = bytesMap.get(commonByteKey); - if(bytesOfMap != null && bytesOfMap.length > 0){ - if(Arrays.equals(bytesOfMap, bytes)){ - bytesMap.put(key, new byte[]{}); - } else { - bytesMap.put(key, bytes); - } - return; - } - // common 不存在, 则往 common 存储一份 - bytesMap.put(commonByteKey, bytes); - bytesMap.put(key, new byte[]{}); - } - - public synchronized byte[] getByte(String classLoaderName){ - byte[] bytes = bytesMap.get(classLoaderName); - if(bytes == null || bytes.length == 0){ - bytes = bytesMap.get(commonByteKey); - } - return bytes; - } - - public boolean remove(String classLoaderName){ - bytesMap.remove(classLoaderName); - if(bytesMap.size() == 1 && bytesMap.containsKey(commonByteKey)){ - // 只存在一个common - bytesMap.clear(); - return true; - } else { - return false; - } - } - } - -} diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/AbstractLauncher.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/AbstractLauncher.java index a44ab55..ab6fa2a 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/AbstractLauncher.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/AbstractLauncher.java @@ -18,7 +18,9 @@ package com.gitee.starblues.loader.launcher; /** * 抽象的启动引导者 + * * @author starBlues + * @since 3.0.0 * @version 3.0.2 */ public abstract class AbstractLauncher implements Launcher { diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/AbstractMainLauncher.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/AbstractMainLauncher.java index 3860e83..4f25dc3 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/AbstractMainLauncher.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/AbstractMainLauncher.java @@ -20,7 +20,9 @@ import com.gitee.starblues.loader.DevelopmentMode; /** * 抽象的启动引导者 + * * @author starBlues + * @since 3.0.0 * @version 3.0.2 */ public abstract class AbstractMainLauncher extends AbstractLauncher { diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/Launcher.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/Launcher.java index 3a996ee..fe032bf 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/Launcher.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/Launcher.java @@ -18,7 +18,9 @@ package com.gitee.starblues.loader.launcher; /** * 启动引导器 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public interface Launcher { diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/LauncherContext.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/LauncherContext.java index 6f3f1c8..2d37132 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/LauncherContext.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/LauncherContext.java @@ -17,9 +17,10 @@ package com.gitee.starblues.loader.launcher; /** - * LauncherContext + * 启动上下文 * * @author starBlues + * @since 3.0.0 * @version 3.0.2 */ public class LauncherContext { diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringBootstrap.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringBootstrap.java index 8a86ddf..9ff3045 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringBootstrap.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringBootstrap.java @@ -20,7 +20,9 @@ import com.gitee.starblues.loader.DevelopmentMode; /** * 主程序实现该接口引导启动SpringBoot + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public interface SpringBootstrap { diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringMainBootstrap.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringMainBootstrap.java index bfcf712..867b608 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringMainBootstrap.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringMainBootstrap.java @@ -25,7 +25,9 @@ import java.util.concurrent.CountDownLatch; /** * 主程序引导器 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class SpringMainBootstrap { diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringMainProdBootstrap.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringMainProdBootstrap.java index 6e34e2b..3ec11a3 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringMainProdBootstrap.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringMainProdBootstrap.java @@ -20,7 +20,9 @@ import com.gitee.starblues.loader.jar.JarFile; /** * 主程序生成环境启动引导器 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class SpringMainProdBootstrap { diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/coexist/CoexistFastJarLauncher.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/coexist/CoexistFastJarLauncher.java index f882a17..c75e19a 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/coexist/CoexistFastJarLauncher.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/coexist/CoexistFastJarLauncher.java @@ -28,7 +28,9 @@ import java.util.Objects; /** * 主程序jar in jar 模式启动者 + * * @author starBlues + * @since 3.0.2 * @version 3.0.2 */ public class CoexistFastJarLauncher extends CoexistBaseLauncher { diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/coexist/CoexistJarOuterLauncher.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/coexist/CoexistJarOuterLauncher.java index f3ee5ac..b99fcf4 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/coexist/CoexistJarOuterLauncher.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/coexist/CoexistJarOuterLauncher.java @@ -31,6 +31,7 @@ import java.util.Objects; * 主程序jar-outer 模式启动者 * * @author starBlues + * @since 3.0.2 * @version 3.0.2 */ public class CoexistJarOuterLauncher extends CoexistBaseLauncher { diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationBaseLauncher.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationBaseLauncher.java index 9cb11d5..afa5a44 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationBaseLauncher.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationBaseLauncher.java @@ -21,15 +21,22 @@ import com.gitee.starblues.loader.classloader.resource.loader.ResourceLoaderFact import com.gitee.starblues.loader.launcher.AbstractMainLauncher; import com.gitee.starblues.loader.launcher.runner.MethodRunner; import com.gitee.starblues.loader.utils.ObjectUtils; +import com.gitee.starblues.loader.utils.ResourceUtils; import java.lang.management.ManagementFactory; +import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; /** * 主程序启动者 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class IsolationBaseLauncher extends AbstractMainLauncher { @@ -47,15 +54,14 @@ public class IsolationBaseLauncher extends AbstractMainLauncher { @Override protected ClassLoader createClassLoader(String... args) throws Exception { - GenericClassLoader classLoader = new GenericClassLoader(MAIN_CLASS_LOADER_NAME, getParentClassLoader(), + return new GenericClassLoader(MAIN_CLASS_LOADER_NAME, getParentClassLoader(), getResourceLoaderFactory(args)); - addResource(classLoader); - return classLoader; } @Override protected ClassLoader launch(ClassLoader classLoader, String... args) throws Exception { methodRunner.run(classLoader); + ResourceUtils.release(classLoader); return classLoader; } @@ -67,22 +73,26 @@ public class IsolationBaseLauncher extends AbstractMainLauncher { return IsolationBaseLauncher.class.getClassLoader(); } - protected void addResource(GenericClassLoader classLoader) throws Exception{ + protected Set getBaseResource() { + Set urls = new HashSet<>(); String classPath = ManagementFactory.getRuntimeMXBean().getClassPath(); if(!ObjectUtils.isEmpty(classPath)){ String[] classPathStr = classPath.split(";"); for (String path : classPathStr) { - classLoader.addResource(path); + try { + urls.add(new URL(path)); + } catch (MalformedURLException e) { + // 忽略 + } } } ClassLoader sourceClassLoader = Thread.currentThread().getContextClassLoader(); if(sourceClassLoader instanceof URLClassLoader){ URLClassLoader urlClassLoader = (URLClassLoader) sourceClassLoader; final URL[] urLs = urlClassLoader.getURLs(); - for (URL url : urLs) { - classLoader.addResource(url); - } + urls.addAll(Arrays.asList(urLs)); } + return urls; } } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationFastJarLauncher.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationFastJarLauncher.java index 8b4928f..6f35afb 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationFastJarLauncher.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationFastJarLauncher.java @@ -27,12 +27,15 @@ import java.io.File; import java.net.URL; import java.util.List; import java.util.Objects; +import java.util.Set; import static com.gitee.starblues.loader.LoaderConstant.*; /** * 主程序jar in jar 模式启动者 + * * @author starBlues + * @since 3.0.2 * @version 3.0.2 */ public class IsolationFastJarLauncher extends IsolationBaseLauncher { @@ -45,16 +48,25 @@ public class IsolationFastJarLauncher extends IsolationBaseLauncher { this.classpathResource = new FastJarClasspathResource(rootJarFile); } + @Override + protected ClassLoader createClassLoader(String... args) throws Exception { + GenericClassLoader classLoader = (GenericClassLoader) super.createClassLoader(args); + addResource(classLoader); + return classLoader; + } + @Override protected boolean resolveThreadClassLoader() { return true; } - @Override - protected void addResource(GenericClassLoader classLoader) throws Exception { - super.addResource(classLoader); + private void addResource(GenericClassLoader classLoader) throws Exception { + Set baseResource = getBaseResource(); List classpath = classpathResource.getClasspath(); - for (URL url : classpath) { + if(classpath != null){ + baseResource.addAll(classpath); + } + for (URL url : baseResource) { String path = url.getPath(); if(path.contains(PROD_CLASSES_URL_SIGN)){ classLoader.addResource(new MainJarResourceLoader(url)); diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationJarOuterLauncher.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationJarOuterLauncher.java index f06013f..38278e3 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationJarOuterLauncher.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationJarOuterLauncher.java @@ -17,6 +17,8 @@ package com.gitee.starblues.loader.launcher.isolation; import com.gitee.starblues.loader.classloader.GenericClassLoader; +import com.gitee.starblues.loader.classloader.resource.loader.JarResourceLoader; +import com.gitee.starblues.loader.classloader.resource.loader.MainJarResourceLoader; import com.gitee.starblues.loader.launcher.classpath.ClasspathResource; import com.gitee.starblues.loader.launcher.classpath.JarOutClasspathResource; import com.gitee.starblues.loader.launcher.runner.MethodRunner; @@ -25,12 +27,16 @@ import java.io.File; import java.net.URL; import java.util.List; import java.util.Objects; +import java.util.Set; + +import static com.gitee.starblues.loader.LoaderConstant.PROD_CLASSES_URL_SIGN; /** * 主程序jar-outer 模式启动者 * * @author starBlues + * @since 3.0.2 * @version 3.0.2 */ public class IsolationJarOuterLauncher extends IsolationBaseLauncher { @@ -43,16 +49,25 @@ public class IsolationJarOuterLauncher extends IsolationBaseLauncher { this.classpathResource = new JarOutClasspathResource(rootJarFile); } + @Override + protected ClassLoader createClassLoader(String... args) throws Exception { + GenericClassLoader classLoader = (GenericClassLoader) super.createClassLoader(args); + addResource(classLoader); + return classLoader; + } + @Override protected boolean resolveThreadClassLoader() { return true; } - @Override - protected void addResource(GenericClassLoader classLoader) throws Exception { - super.addResource(classLoader); + private void addResource(GenericClassLoader classLoader) throws Exception { + Set baseResource = getBaseResource(); List classpath = classpathResource.getClasspath(); - for (URL url : classpath) { + if(classpath != null){ + baseResource.addAll(classpath); + } + for (URL url : baseResource) { classLoader.addResource(url); } } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/ResourceLoaderFactoryGetter.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/ResourceLoaderFactoryGetter.java index 719f2a5..abd9ee4 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/ResourceLoaderFactoryGetter.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/ResourceLoaderFactoryGetter.java @@ -27,7 +27,8 @@ import java.util.Objects; * 获取ResourceLoaderFactory * * @author starBlues - * @version 3.0.0 + * @since 3.0.0 + * @version 3.1.1 */ public class ResourceLoaderFactoryGetter { @@ -35,15 +36,15 @@ public class ResourceLoaderFactoryGetter { /** - * 资源模式--缓存隔离模式 + * 资源存储模式--缓存模式 */ - private static final String RESOURCE_MODE_CACHE_ISOLATION = "cache-isolation"; + private static final String RESOURCE_MODE_CACHE = "cache"; /** - * 资源模式--缓存共享模式 + * 资源存储模式--缓存可释放模式 */ - private static final String RESOURCE_MODE_CACHE_SHARE = "cache-share"; + private static final String RESOURCE_MODE_CACHE_RELEASED = "cache-released"; private static volatile String resourceMode; @@ -74,15 +75,11 @@ public class ResourceLoaderFactoryGetter { } public static SameRootResourceStorage getResourceStorage(String key, URL baseUrl){ - SameRootResourceStorage resourceStorage = null; - if(Objects.equals(resourceMode, RESOURCE_MODE_CACHE_ISOLATION)){ - // 资源可缓存, 且隔离 - resourceStorage = new CacheResourceStorage(baseUrl); + if(Objects.equals(resourceMode, RESOURCE_MODE_CACHE)){ + return new CacheResourceStorage(baseUrl); } else { - // 资源可缓存, 共享式 - resourceStorage = new ShareResourceStorage(key, baseUrl); + return new CacheReleasedResourceStorage(baseUrl); } - return resourceStorage; } } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/runner/MainMethodRunner.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/runner/MainMethodRunner.java index 2695ac3..e600323 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/runner/MainMethodRunner.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/runner/MainMethodRunner.java @@ -18,7 +18,9 @@ package com.gitee.starblues.loader.launcher.runner; /** * 主程序方法启动者 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class MainMethodRunner extends MethodRunner{ diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/runner/MethodRunner.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/runner/MethodRunner.java index 06e4adb..b0f0f87 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/runner/MethodRunner.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/runner/MethodRunner.java @@ -24,7 +24,9 @@ import java.util.Objects; /** * 反射运行方法 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class MethodRunner { diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/Assert.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/Assert.java index bf8d51c..7b2cf31 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/Assert.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/Assert.java @@ -21,7 +21,9 @@ import java.util.function.Supplier; /** * 参数校验工具类 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public abstract class Assert { diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/CompareClassTypeUtils.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/CompareClassTypeUtils.java index 2b0d746..9d3947a 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/CompareClassTypeUtils.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/CompareClassTypeUtils.java @@ -20,6 +20,7 @@ package com.gitee.starblues.loader.utils; * 比较两个类类型 * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class CompareClassTypeUtils { diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/FilesUtils.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/FilesUtils.java index 1b17a8b..6378c27 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/FilesUtils.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/FilesUtils.java @@ -25,6 +25,7 @@ import java.io.IOException; * 文件工具类 * * @author starBlues + * @since 3.0.0 * @version 3.0.2 */ public class FilesUtils { diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/IOUtils.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/IOUtils.java index 483cda5..a009975 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/IOUtils.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/IOUtils.java @@ -22,6 +22,7 @@ import java.util.function.Consumer; * io utils * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class IOUtils { @@ -47,13 +48,18 @@ public class IOUtils { if(inputStream == null){ throw new IllegalArgumentException("参数inputStream不能为空"); } - ByteArrayOutputStream output = new ByteArrayOutputStream(); - byte[] buffer = new byte[4096]; - int n = 0; - while (-1 != (n = inputStream.read(buffer))) { - output.write(buffer, 0, n); + if(!(inputStream instanceof BufferedInputStream)){ + inputStream = new BufferedInputStream(inputStream); + } + try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()){ + int len = 0; + byte[] buffer = new byte[1024]; + while (-1 != (len = inputStream.read(buffer))) { + outputStream.write(buffer, 0, len); + } + outputStream.flush(); + return outputStream.toByteArray(); } - return output.toByteArray(); } public static void closeQuietly(final AutoCloseable closeable) { diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/ObjectUtils.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/ObjectUtils.java index 8490c72..1c2f468 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/ObjectUtils.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/ObjectUtils.java @@ -25,6 +25,7 @@ import java.util.Optional; * object utils * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class ObjectUtils { diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/Release.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/Release.java new file mode 100644 index 0000000..e4a9a21 --- /dev/null +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/Release.java @@ -0,0 +1,17 @@ +package com.gitee.starblues.loader.utils; + +/** + * 可释放资源接口 + * + * @author starBlues + * @since 3.1.1 + * @version 3.1.1 + */ +public interface Release { + + /** + * 释放资源 + */ + default void release() throws Exception{} + +} diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/ResourceUtils.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/ResourceUtils.java index d128670..3d516e0 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/ResourceUtils.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/ResourceUtils.java @@ -18,10 +18,14 @@ package com.gitee.starblues.loader.utils; import java.io.File; import java.net.URL; +import java.util.Objects; +import java.util.function.Consumer; /** * 资源工具 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class ResourceUtils { @@ -119,4 +123,29 @@ public class ResourceUtils { return newPath.toString(); } + /** + * 释放资源 + * @param object 释放资源的对象 + */ + public static void release(final Object object) { + release(object, null); + } + + /** + * 释放资源 + * @param object 释放资源的对象 + * @param consumer 释放异常消费 + */ + public static void release(final Object object, final Consumer consumer) { + if (object instanceof Release) { + try { + ((Release)object).release(); + } catch (final Exception e) { + if (consumer != null) { + consumer.accept(e); + } + } + } + } + } diff --git a/spring-brick-maven-packager/pom.xml b/spring-brick-maven-packager/pom.xml index cacdf5d..8756df0 100644 --- a/spring-brick-maven-packager/pom.xml +++ b/spring-brick-maven-packager/pom.xml @@ -7,7 +7,7 @@ spring-brick-parent com.gitee.starblues - 3.1.0 + 3.1.1 spring-brick-maven-packager diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/AbstractDependencyFilterMojo.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/AbstractDependencyFilterMojo.java index 19505ea..f54ec76 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/AbstractDependencyFilterMojo.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/AbstractDependencyFilterMojo.java @@ -39,7 +39,9 @@ import java.util.Set; /** * 抽象可过滤依赖的 mojo + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ @EqualsAndHashCode(callSuper = true) diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/AbstractPackagerMojo.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/AbstractPackagerMojo.java index bfd4037..c86aeaa 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/AbstractPackagerMojo.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/AbstractPackagerMojo.java @@ -29,7 +29,9 @@ import java.util.Set; /** * 抽象的重新打包 mojo + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ @EqualsAndHashCode(callSuper = true) diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/BasicRepackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/BasicRepackager.java index 0c55181..1d9bf46 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/BasicRepackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/BasicRepackager.java @@ -43,7 +43,9 @@ import static com.gitee.starblues.common.PluginDescriptorKey.*; /** * 基础打包 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class BasicRepackager implements Repackager{ diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Constant.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Constant.java index ce11f06..f6c4a73 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Constant.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Constant.java @@ -20,7 +20,9 @@ import org.apache.maven.artifact.Artifact; /** * 静态类 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class Constant { diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Dependency.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Dependency.java index 109a27e..aae2ac4 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Dependency.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Dependency.java @@ -21,7 +21,9 @@ import org.apache.maven.plugins.annotations.Parameter; /** * 依赖Bean + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ @Data diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/DependencyPlugin.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/DependencyPlugin.java index 10c916c..b88a79b 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/DependencyPlugin.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/DependencyPlugin.java @@ -21,7 +21,9 @@ import org.apache.maven.plugins.annotations.Parameter; /** * 依赖的插件 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class DependencyPlugin extends AbstractDependencyPlugin { diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/LoadMainResourcePattern.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/LoadMainResourcePattern.java index ed82626..4f05258 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/LoadMainResourcePattern.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/LoadMainResourcePattern.java @@ -21,7 +21,9 @@ import org.apache.maven.plugins.annotations.Parameter; /** * 从主程序加载资源配置 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ @Data diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/LoadToMain.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/LoadToMain.java index 2cc7e26..c0a6c66 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/LoadToMain.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/LoadToMain.java @@ -22,7 +22,9 @@ import java.util.List; /** * 定义依赖加载到主程序中 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ @Data diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/PluginInfo.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/PluginInfo.java index 5d5066f..1d95d08 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/PluginInfo.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/PluginInfo.java @@ -23,7 +23,9 @@ import java.util.List; /** * 插件信息 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ @Data diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/RepackageMojo.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/RepackageMojo.java index 1aa220a..92b7944 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/RepackageMojo.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/RepackageMojo.java @@ -40,7 +40,9 @@ import java.util.Set; /** * 重新打包 mojo + * * @author starBlues + * @since 3.0.0 * @version 3.0.1 */ @Mojo(name = "repackage", defaultPhase = LifecyclePhase.PACKAGE, requiresProject = true, threadSafe = true, diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Repackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Repackager.java index d1ea896..293d39c 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Repackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Repackager.java @@ -20,8 +20,10 @@ import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; /** - * 重新打包j接口 + * 重新打包接口 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public interface Repackager { diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/Dependency.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/Dependency.java index 4e61d92..4ecdeb7 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/Dependency.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/Dependency.java @@ -21,7 +21,9 @@ import org.apache.maven.plugins.annotations.Parameter; /** * 开发环境下配置本地依赖的Bean + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ @Data diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/DevConfig.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/DevConfig.java index 9070a6e..bd9f4c7 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/DevConfig.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/DevConfig.java @@ -22,7 +22,9 @@ import java.util.List; /** * 开发模式配置 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ @Data diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/DevRepackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/DevRepackager.java index 6540b3f..f746a3d 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/DevRepackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/DevRepackager.java @@ -30,7 +30,9 @@ import java.util.*; /** * 开发环境打包 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class DevRepackager extends BasicRepackager { diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/AesConfig.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/AesConfig.java index 44cf434..727ab5c 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/AesConfig.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/AesConfig.java @@ -22,6 +22,7 @@ import lombok.Data; * aes 加密配置 * * @author starBlues + * @since 3.0.1 * @version 3.0.1 */ @Data diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/AesEncryptPlugin.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/AesEncryptPlugin.java index 2201d3d..4b2b0f6 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/AesEncryptPlugin.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/AesEncryptPlugin.java @@ -13,6 +13,7 @@ import java.util.Map; * rsa 加密者 * * @author starBlues + * @since 3.0.1 * @version 3.0.1 */ public class AesEncryptPlugin implements EncryptPlugin{ diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptConfig.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptConfig.java index 8aa5b22..8e07b48 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptConfig.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptConfig.java @@ -22,12 +22,20 @@ import lombok.Data; * 加密配置 * * @author starBlues + * @since 3.0.1 * @version 3.0.1 */ @Data public class EncryptConfig { + /** + * rsa 配置 + */ private RsaConfig rsa; + + /** + * aes 配置 + */ private AesConfig aes; } diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptPlugin.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptPlugin.java index b995f9d..d9d58ac 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptPlugin.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptPlugin.java @@ -22,6 +22,7 @@ import com.gitee.starblues.plugin.pack.PluginInfo; * 加密插件 * * @author starBlues + * @since 3.0.1 * @version 3.0.1 */ public interface EncryptPlugin { diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptPluginFactory.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptPluginFactory.java index f8a2c5b..5600e23 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptPluginFactory.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptPluginFactory.java @@ -25,6 +25,7 @@ import java.util.List; * 加密插件工厂 * * @author starBlues + * @since 3.0.1 * @version 3.0.1 */ public class EncryptPluginFactory implements EncryptPlugin { diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/RsaConfig.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/RsaConfig.java index 18b7e9a..2a05f2c 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/RsaConfig.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/RsaConfig.java @@ -22,11 +22,15 @@ import lombok.Data; * rsa 加密配置 * * @author starBlues + * @since 3.0.1 * @version 3.0.1 */ @Data public class RsaConfig { + /** + * rsa 公钥 + */ private String publicKey; } diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/RsaEncryptPlugin.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/RsaEncryptPlugin.java index b8f4e5d..bf9d16c 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/RsaEncryptPlugin.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/RsaEncryptPlugin.java @@ -29,6 +29,7 @@ import java.util.Map; * rsa 算法插件加密 * * @author starBlues + * @since 3.0.1 * @version 3.0.1 */ public class RsaEncryptPlugin implements EncryptPlugin{ diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/DependencyFilter.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/DependencyFilter.java index f26792d..a5bfc3a 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/DependencyFilter.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/DependencyFilter.java @@ -27,7 +27,9 @@ import java.util.Set; /** * 依赖过滤 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public abstract class DependencyFilter extends AbstractArtifactsFilter { diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/Exclude.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/Exclude.java index 5679c55..71820f0 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/Exclude.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/Exclude.java @@ -18,7 +18,9 @@ package com.gitee.starblues.plugin.pack.filter; /** * 排除的依赖定义 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class Exclude extends FilterableDependency{ diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/ExcludeFilter.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/ExcludeFilter.java index dce74ec..8d951fe 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/ExcludeFilter.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/ExcludeFilter.java @@ -23,7 +23,9 @@ import java.util.List; /** * 排除过滤 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class ExcludeFilter extends DependencyFilter { diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/FilterableDependency.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/FilterableDependency.java index 7f24259..7479b12 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/FilterableDependency.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/FilterableDependency.java @@ -21,7 +21,9 @@ import org.apache.maven.plugins.annotations.Parameter; /** * 可过滤依赖bean + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ @Data diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/Include.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/Include.java index 55ae558..50fa2bc 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/Include.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/Include.java @@ -18,7 +18,9 @@ package com.gitee.starblues.plugin.pack.filter; /** * 包含的依赖定义 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class Include extends FilterableDependency{ diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/IncludeFilter.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/IncludeFilter.java index 1ab20ea..97b0a0d 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/IncludeFilter.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/IncludeFilter.java @@ -22,7 +22,9 @@ import java.util.List; /** * 包含过滤器 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class IncludeFilter extends DependencyFilter { diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/JarNestPackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/JarNestPackager.java index 3b9eeb9..e93865c 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/JarNestPackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/JarNestPackager.java @@ -38,7 +38,9 @@ import static com.gitee.starblues.common.ManifestKey.*; /** * 嵌套jar打包 + * * @author starBlues + * @since 3.0.0 * @version 3.0.2 */ public class JarNestPackager implements Repackager { diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/JarOuterPackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/JarOuterPackager.java index f4db7ca..e615f0b 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/JarOuterPackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/JarOuterPackager.java @@ -37,7 +37,9 @@ import static com.gitee.starblues.common.ManifestKey.*; /** * jar 外置包 + * * @author starBlues + * @since 3.0.0 * @version 3.0.2 */ public class JarOuterPackager extends JarNestPackager { diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/MainConfig.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/MainConfig.java index 1640483..854b571 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/MainConfig.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/MainConfig.java @@ -21,7 +21,9 @@ import org.apache.maven.plugins.annotations.Parameter; /** * 主程序打包配置 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ @Data @@ -35,7 +37,6 @@ public class MainConfig { /** * 打包类型。默认:jar - * * {@link com.gitee.starblues.common.PackageType#MAIN_PACKAGE_TYPE_JAR} * {@link com.gitee.starblues.common.PackageType#MAIN_PACKAGE_TYPE_JAR_OUTER} */ diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/MainRepackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/MainRepackager.java index e0d73f2..195c577 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/MainRepackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/MainRepackager.java @@ -37,7 +37,9 @@ import java.util.Set; /** * 主程序打包 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ @Getter diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/DirProdRepackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/DirProdRepackager.java index bd819f6..f37edff 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/DirProdRepackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/DirProdRepackager.java @@ -39,7 +39,9 @@ import static com.gitee.starblues.common.PackageStructure.*; /** * 文件夹包生成 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class DirProdRepackager extends DevRepackager { diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/JarNestedProdRepackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/JarNestedProdRepackager.java index 7fc9cf4..7bcba52 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/JarNestedProdRepackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/JarNestedProdRepackager.java @@ -38,7 +38,9 @@ import static com.gitee.starblues.common.PackageStructure.PROD_RESOURCES_DEFINE_ /** * jar包生成 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class JarNestedProdRepackager extends ZipProdRepackager { diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/JarOuterProdRepackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/JarOuterProdRepackager.java index c6951b8..9606afe 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/JarOuterProdRepackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/JarOuterProdRepackager.java @@ -27,7 +27,9 @@ import java.util.jar.Manifest; /** * jar-outer包生成 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class JarOuterProdRepackager extends ZipOuterProdRepackager { diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ProdConfig.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ProdConfig.java index 529f03f..10208eb 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ProdConfig.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ProdConfig.java @@ -22,7 +22,9 @@ import org.apache.maven.plugins.annotations.Parameter; /** * 生产环境打包配置 + * * @author starBlues + * @since 3.0.0 * @version 3.0.2 */ @Data @@ -30,7 +32,6 @@ public class ProdConfig { /** * 打包类型。默认jar包 - * * {@link com.gitee.starblues.common.PackageType#PLUGIN_PACKAGE_TYPE_JAR} * {@link com.gitee.starblues.common.PackageType#PLUGIN_PACKAGE_TYPE_JAR_OUTER} * {@link com.gitee.starblues.common.PackageType#PLUGIN_PACKAGE_TYPE_ZIP} diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ProdRepackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ProdRepackager.java index 0ff7d34..72b8f34 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ProdRepackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ProdRepackager.java @@ -29,7 +29,9 @@ import org.apache.maven.plugin.MojoFailureException; /** * 生产环境打包 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class ProdRepackager implements Repackager { diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ZipOuterProdRepackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ZipOuterProdRepackager.java index 7b84ada..1ed7171 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ZipOuterProdRepackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ZipOuterProdRepackager.java @@ -43,7 +43,9 @@ import static com.gitee.starblues.common.PackageStructure.*; /** * zip-outer 包生成 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class ZipOuterProdRepackager extends DirProdRepackager { diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ZipProdRepackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ZipProdRepackager.java index 55ca154..9513206 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ZipProdRepackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ZipProdRepackager.java @@ -47,7 +47,9 @@ import static com.gitee.starblues.common.PackageStructure.*; /** * zip 打包 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class ZipProdRepackager extends DevRepackager { diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/CommonUtils.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/CommonUtils.java index 09ac0a0..0919a5c 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/CommonUtils.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/CommonUtils.java @@ -26,7 +26,9 @@ import java.util.Objects; /** * Object 工具类 + * * @author starBlues + * @since 3.0.0 * @version 3.0.1 */ public class CommonUtils { diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/PackageJar.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/PackageJar.java index cf30122..48aaf15 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/PackageJar.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/PackageJar.java @@ -27,7 +27,9 @@ import java.nio.file.Files; /** * jar 打包工具 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class PackageJar extends PackageZip{ diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/PackageZip.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/PackageZip.java index f7aa974..d4a5f64 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/PackageZip.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/PackageZip.java @@ -38,7 +38,9 @@ import static com.gitee.starblues.common.PackageStructure.*; /** * zip 打包工具 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class PackageZip implements Closeable{ diff --git a/spring-brick-maven-packager/src/main/resources/META-INF/maven/com.gitee.starblues.springboot-plugin-maven-packager/plugin-help.xml b/spring-brick-maven-packager/src/main/resources/META-INF/maven/com.gitee.starblues.springboot-plugin-maven-packager/plugin-help.xml index 0e203ae..7579b25 100644 --- a/spring-brick-maven-packager/src/main/resources/META-INF/maven/com.gitee.starblues.springboot-plugin-maven-packager/plugin-help.xml +++ b/spring-brick-maven-packager/src/main/resources/META-INF/maven/com.gitee.starblues.springboot-plugin-maven-packager/plugin-help.xml @@ -4,7 +4,7 @@ Spring Boot Plugin Maven Packager com.gitee.starblues spring-brick-maven-packager - 3.1.0 + 3.1.1 spring-brick-packager false true diff --git a/spring-brick-maven-packager/src/main/resources/META-INF/maven/plugin.xml b/spring-brick-maven-packager/src/main/resources/META-INF/maven/plugin.xml index 0e203ae..7579b25 100644 --- a/spring-brick-maven-packager/src/main/resources/META-INF/maven/plugin.xml +++ b/spring-brick-maven-packager/src/main/resources/META-INF/maven/plugin.xml @@ -4,7 +4,7 @@ Spring Boot Plugin Maven Packager com.gitee.starblues spring-brick-maven-packager - 3.1.0 + 3.1.1 spring-brick-packager false true diff --git a/spring-brick/pom.xml b/spring-brick/pom.xml index 9118a92..19230bb 100644 --- a/spring-brick/pom.xml +++ b/spring-brick/pom.xml @@ -7,7 +7,7 @@ spring-brick-parent com.gitee.starblues - 3.1.0 + 3.1.1 spring-brick diff --git a/spring-brick/src/main/java/com/gitee/starblues/annotation/Caller.java b/spring-brick/src/main/java/com/gitee/starblues/annotation/Caller.java index 49badbf..fb2ad5f 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/annotation/Caller.java +++ b/spring-brick/src/main/java/com/gitee/starblues/annotation/Caller.java @@ -24,6 +24,7 @@ import java.lang.annotation.*; * * @author starBlues * @version 2.4.0 + * @version 2.4.0 */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) diff --git a/spring-brick/src/main/java/com/gitee/starblues/annotation/Extract.java b/spring-brick/src/main/java/com/gitee/starblues/annotation/Extract.java index 2e465b1..bf1d404 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/annotation/Extract.java +++ b/spring-brick/src/main/java/com/gitee/starblues/annotation/Extract.java @@ -23,7 +23,9 @@ import java.lang.annotation.*; /** * 基于业务的扩展注解 + * * @author starBlues + * @since 2.4.4 * @version 2.4.4 */ @Target(ElementType.TYPE) diff --git a/spring-brick/src/main/java/com/gitee/starblues/annotation/Supplier.java b/spring-brick/src/main/java/com/gitee/starblues/annotation/Supplier.java index 44959b2..a9275d6 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/annotation/Supplier.java +++ b/spring-brick/src/main/java/com/gitee/starblues/annotation/Supplier.java @@ -25,6 +25,7 @@ import java.lang.annotation.*; * 被调用类的提供者。配合 @Caller 注解使用, 两者结合实现插件中的方法调用。 * * @author starBlues + * @since 2.4.0 * @version 2.4.0 */ @Target(ElementType.TYPE) diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/DefaultPluginInsideInfo.java b/spring-brick/src/main/java/com/gitee/starblues/core/DefaultPluginInsideInfo.java index 1fdaf5b..2219be9 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/DefaultPluginInsideInfo.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/DefaultPluginInsideInfo.java @@ -28,7 +28,9 @@ import java.util.function.Supplier; /** * 默认的内部PluginWrapperInside实现 * @author starBlues - * @version 3.0.0 + * + * @since 3.0.0 + * @version 3.1.1 */ public class DefaultPluginInsideInfo implements PluginInsideInfo { @@ -42,6 +44,8 @@ public class DefaultPluginInsideInfo implements PluginInsideInfo { private Supplier> extensionInfoSupplier = Collections::emptyMap; + private ClassLoader classLoader = null; + public DefaultPluginInsideInfo(InsidePluginDescriptor pluginDescriptor) { this.pluginId = pluginDescriptor.getPluginId(); this.pluginDescriptor = pluginDescriptor; @@ -63,6 +67,11 @@ public class DefaultPluginInsideInfo implements PluginInsideInfo { this.extensionInfoSupplier = supplier; } + @Override + public void setClassLoader(ClassLoader classLoader) { + this.classLoader = classLoader; + } + @Override public Supplier> getExtensionInfoSupplier() { return extensionInfoSupplier; @@ -113,6 +122,11 @@ public class DefaultPluginInsideInfo implements PluginInsideInfo { return extensionInfoSupplier.get(); } + @Override + public ClassLoader getClassLoader() { + return classLoader; + } + private void resolveTime(PluginState pluginState){ if(pluginState == PluginState.STARTED || pluginState == PluginState.STARTED_FAILURE){ startTime = new Date(); diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/DefaultRealizeProvider.java b/spring-brick/src/main/java/com/gitee/starblues/core/DefaultRealizeProvider.java index d06e538..f9dfc51 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/DefaultRealizeProvider.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/DefaultRealizeProvider.java @@ -37,6 +37,7 @@ import org.springframework.context.ApplicationContext; * 默认的RealizeProvider实现 * * @author starBlues + * @since 3.0.0 * @version 3.0.1 */ public class DefaultRealizeProvider implements RealizeProvider { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/PluginInfo.java b/spring-brick/src/main/java/com/gitee/starblues/core/PluginInfo.java index 9cf4d18..a95f1df 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/PluginInfo.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/PluginInfo.java @@ -16,6 +16,9 @@ package com.gitee.starblues.core; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonIgnoreType; import com.gitee.starblues.core.descriptor.PluginDescriptor; import java.util.Date; @@ -23,8 +26,10 @@ import java.util.Map; /** * 插件信息 + * * @author starBlues - * @version 3.0.0 + * @since 3.0.0 + * @version 3.1.1 */ public interface PluginInfo { @@ -76,4 +81,11 @@ public interface PluginInfo { */ Map getExtensionInfo(); + /** + * 获取插件的Classloader + * @return ClassLoader + */ + @JsonIgnore + ClassLoader getClassLoader(); + } diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/PluginInfoFace.java b/spring-brick/src/main/java/com/gitee/starblues/core/PluginInfoFace.java index d0d53d7..eaaee50 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/PluginInfoFace.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/PluginInfoFace.java @@ -25,8 +25,10 @@ import java.util.function.Supplier; /** * 外部 PluginWrapperFace + * * @author starBlues - * @version 3.0.0 + * @since 3.0.0 + * @version 3.1.1 */ public class PluginInfoFace implements PluginInfo { @@ -34,6 +36,7 @@ public class PluginInfoFace implements PluginInfo { private final PluginState pluginState; private final boolean followSystem; private final Supplier> extensionInfoSupplier; + private final ClassLoader classLoader; private final Date startTime; private final Date stopTime; @@ -46,6 +49,7 @@ public class PluginInfoFace implements PluginInfo { this.extensionInfoSupplier = pluginInsideInfo.getExtensionInfoSupplier(); this.startTime = pluginInsideInfo.getStartTime(); this.stopTime = pluginInsideInfo.getStopTime(); + this.classLoader = pluginInsideInfo.getClassLoader(); } @Override @@ -87,4 +91,9 @@ public class PluginInfoFace implements PluginInfo { public Map getExtensionInfo() { return extensionInfoSupplier.get(); } + + @Override + public ClassLoader getClassLoader() { + return classLoader; + } } diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/PluginInsideInfo.java b/spring-brick/src/main/java/com/gitee/starblues/core/PluginInsideInfo.java index 0d7d7d6..237ae87 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/PluginInsideInfo.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/PluginInsideInfo.java @@ -24,9 +24,9 @@ import java.util.function.Supplier; /** * 内部的 PluginInfo * - * @since 3.0.0 - * @version 3.1.0 * @author starBlues + * @since 3.0.0 + * @version 3.1.1 */ public interface PluginInsideInfo extends PluginInfo { @@ -47,6 +47,12 @@ public interface PluginInsideInfo extends PluginInfo { */ void setExtensionInfoSupplier(Supplier> supplier); + /** + * 设置插件的 classLoader + * @param classLoader ClassLoader + */ + void setClassLoader(ClassLoader classLoader); + /** * 获取插件信息提供者 * @return 插件扩展信息自主提供者 diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/PluginManager.java b/spring-brick/src/main/java/com/gitee/starblues/core/PluginManager.java index b1da15f..f430ab7 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/PluginManager.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/PluginManager.java @@ -24,6 +24,7 @@ import java.util.List; /** * 插件管理者 * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public interface PluginManager { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/PluginState.java b/spring-brick/src/main/java/com/gitee/starblues/core/PluginState.java index 1af14d0..2bf1f1c 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/PluginState.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/PluginState.java @@ -19,6 +19,8 @@ package com.gitee.starblues.core; /** * 插件状态枚举 * @author starBlues + * + * @since 3.0.0 * @version 3.0.0 */ public enum PluginState { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/RealizeProvider.java b/spring-brick/src/main/java/com/gitee/starblues/core/RealizeProvider.java index 59417d2..d4dc9f4 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/RealizeProvider.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/RealizeProvider.java @@ -23,6 +23,7 @@ import com.gitee.starblues.core.version.VersionInspector; /** * 插件扩展配置 * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public interface RealizeProvider { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/RuntimeMode.java b/spring-brick/src/main/java/com/gitee/starblues/core/RuntimeMode.java index ebd126a..f7f85f7 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/RuntimeMode.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/RuntimeMode.java @@ -19,6 +19,7 @@ package com.gitee.starblues.core; /** * 插件运行环境 * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public enum RuntimeMode { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/checker/ComposePluginBasicChecker.java b/spring-brick/src/main/java/com/gitee/starblues/core/checker/ComposePluginBasicChecker.java index de0bd8e..5da015a 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/checker/ComposePluginBasicChecker.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/checker/ComposePluginBasicChecker.java @@ -27,7 +27,9 @@ import java.util.List; /** * 组合插件检查者 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class ComposePluginBasicChecker implements PluginBasicChecker { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/checker/ComposePluginLauncherChecker.java b/spring-brick/src/main/java/com/gitee/starblues/core/checker/ComposePluginLauncherChecker.java index 716f788..4827590 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/checker/ComposePluginLauncherChecker.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/checker/ComposePluginLauncherChecker.java @@ -24,7 +24,9 @@ import java.util.List; /** * 组合插件检查者 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class ComposePluginLauncherChecker implements PluginLauncherChecker { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/checker/DefaultPluginBasicChecker.java b/spring-brick/src/main/java/com/gitee/starblues/core/checker/DefaultPluginBasicChecker.java index 846ab7e..083d449 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/checker/DefaultPluginBasicChecker.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/checker/DefaultPluginBasicChecker.java @@ -28,7 +28,9 @@ import java.nio.file.Path; /** * 默认的基本检查者 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class DefaultPluginBasicChecker implements PluginBasicChecker { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/checker/DefaultPluginLauncherChecker.java b/spring-brick/src/main/java/com/gitee/starblues/core/checker/DefaultPluginLauncherChecker.java index f2590e5..fc77752 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/checker/DefaultPluginLauncherChecker.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/checker/DefaultPluginLauncherChecker.java @@ -31,6 +31,7 @@ import com.gitee.starblues.utils.ObjectUtils; * 默认插件启动检查者 * * @author starBlues + * @since 3.0.0 * @version 3.0.1 */ public class DefaultPluginLauncherChecker implements PluginLauncherChecker { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/checker/DependencyPluginLauncherChecker.java b/spring-brick/src/main/java/com/gitee/starblues/core/checker/DependencyPluginLauncherChecker.java index 3691f2c..8354041 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/checker/DependencyPluginLauncherChecker.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/checker/DependencyPluginLauncherChecker.java @@ -32,7 +32,9 @@ import java.util.Objects; /** * 插件依赖的插件检查者 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class DependencyPluginLauncherChecker implements PluginLauncherChecker { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/checker/PluginBasicChecker.java b/spring-brick/src/main/java/com/gitee/starblues/core/checker/PluginBasicChecker.java index 100c878..337a56b 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/checker/PluginBasicChecker.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/checker/PluginBasicChecker.java @@ -23,7 +23,9 @@ import java.nio.file.Path; /** * 插件基本检查者 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public interface PluginBasicChecker { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/checker/PluginLauncherChecker.java b/spring-brick/src/main/java/com/gitee/starblues/core/checker/PluginLauncherChecker.java index c44f9ae..f3bc0ae 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/checker/PluginLauncherChecker.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/checker/PluginLauncherChecker.java @@ -21,7 +21,9 @@ import com.gitee.starblues.core.exception.PluginException; /** * 插件启动检查者 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public interface PluginLauncherChecker { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/CacheMainResourceMatcher.java b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/CacheMainResourceMatcher.java index 84c2a4f..584528e 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/CacheMainResourceMatcher.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/CacheMainResourceMatcher.java @@ -22,6 +22,7 @@ import java.util.concurrent.ConcurrentHashMap; /** * 可缓存的 ResourceMatcher + * * @author starBlues * @since 3.0.0 * @version 3.0.3 diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/ComposeMainResourceMatcher.java b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/ComposeMainResourceMatcher.java index e8206bf..26212a2 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/ComposeMainResourceMatcher.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/ComposeMainResourceMatcher.java @@ -26,6 +26,7 @@ import java.util.List; * 组合的 MainResourcePatternDefiner * * @author starBlues + * @since 3.0.0 * @version 3.0.3 */ public class ComposeMainResourceMatcher implements MainResourceMatcher, AutoCloseable{ diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/DefaultMainResourceMatcher.java b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/DefaultMainResourceMatcher.java index 1dc02c3..765d2f8 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/DefaultMainResourceMatcher.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/DefaultMainResourceMatcher.java @@ -26,6 +26,7 @@ import java.util.Set; /** * 默认的主程序资源匹配者 + * * @author starBlues * @since 3.0.0 * @version 3.0.3 diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/EmptyMainResourcePatternDefiner.java b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/EmptyMainResourcePatternDefiner.java index 57ca80a..75301c1 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/EmptyMainResourcePatternDefiner.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/EmptyMainResourcePatternDefiner.java @@ -20,7 +20,9 @@ import java.util.Set; /** * 空的 MainResourceDefiner + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class EmptyMainResourcePatternDefiner implements MainResourcePatternDefiner { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/MainResourceMatcher.java b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/MainResourceMatcher.java index 9b94955..f33d7c9 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/MainResourceMatcher.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/MainResourceMatcher.java @@ -18,7 +18,9 @@ package com.gitee.starblues.core.classloader; /** * 主程序资源匹配者 + * * @author starBlues + * @since 3.0.0 * @version 3.0.3 */ public interface MainResourceMatcher { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/MainResourcePatternDefiner.java b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/MainResourcePatternDefiner.java index 1a56fe3..3c66b93 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/MainResourcePatternDefiner.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/MainResourcePatternDefiner.java @@ -20,7 +20,9 @@ import java.util.Set; /** * 主程序定义者, 从主程序加载资源的定义者 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public interface MainResourcePatternDefiner { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/NestedPluginJarResourceLoader.java b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/NestedPluginJarResourceLoader.java index c09c2cc..d096e11 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/NestedPluginJarResourceLoader.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/NestedPluginJarResourceLoader.java @@ -39,6 +39,7 @@ import java.util.zip.ZipEntry; /** * 嵌套插件jar加载者 + * * @author starBlues * @since 3.0.0 * @version 3.1.0 diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginClassLoader.java b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginClassLoader.java index 11ab94c..bf06adf 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginClassLoader.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginClassLoader.java @@ -39,6 +39,7 @@ import java.util.Set; /** * 插件 classLoader + * * @author starBlues * @version 3.0.3 * @since 3.0.0 @@ -51,9 +52,10 @@ public class PluginClassLoader extends GenericClassLoader implements PluginResou private final PluginResourceLoaderFactory proxy; public PluginClassLoader(String name, GenericClassLoader parentClassLoader, + ClassLoader classLoader, ResourceLoaderFactory resourceLoaderFactory, MainResourceMatcher mainResourceMatcher) { - super(name, parentClassLoader, resourceLoaderFactory); + super(name, classLoader, resourceLoaderFactory); this.mainResourceMatcher = mainResourceMatcher; this.proxy = new PluginResourceLoaderFactoryProxy(resourceLoaderFactory, parentClassLoader); } @@ -114,6 +116,4 @@ public class PluginClassLoader extends GenericClassLoader implements PluginResou } } } - - } diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginResourceLoaderFactoryProxy.java b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginResourceLoaderFactoryProxy.java index 10143b8..626465b 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginResourceLoaderFactoryProxy.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginResourceLoaderFactoryProxy.java @@ -40,8 +40,8 @@ import java.util.Set; * 插件资源加载工厂代理 * * @author starBlues - * @version 3.1.0 - * @since 13.0.4 + * @since 3.0.4 + * @version 3.1.1 */ @Slf4j public class PluginResourceLoaderFactoryProxy implements PluginResourceLoaderFactory { @@ -179,4 +179,9 @@ public class PluginResourceLoaderFactoryProxy implements PluginResourceLoaderFac public void close() throws Exception { target.close(); } + + @Override + public void release() throws Exception { + target.release(); + } } diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/ProhibitMainResourceMatcher.java b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/ProhibitMainResourceMatcher.java index cba6d62..2413faa 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/ProhibitMainResourceMatcher.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/ProhibitMainResourceMatcher.java @@ -18,7 +18,9 @@ package com.gitee.starblues.core.classloader; /** * 禁止匹配所有主程序资源 + * * @author starBlues + * @since 3.0.0 * @version 3.0.3 */ public class ProhibitMainResourceMatcher implements MainResourceMatcher{ diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ComposeDescriptorLoader.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ComposeDescriptorLoader.java index 5445d05..1b48ef9 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ComposeDescriptorLoader.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ComposeDescriptorLoader.java @@ -30,6 +30,7 @@ import java.util.List; /** * 组合插件描述加载者 * @author starBlues + * @since 3.0.0 * @version 3.0.1 */ public class ComposeDescriptorLoader implements PluginDescriptorLoader{ diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultDependencyPlugin.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultDependencyPlugin.java index bc5fdee..662ed52 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultDependencyPlugin.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultDependencyPlugin.java @@ -21,6 +21,7 @@ import com.gitee.starblues.common.AbstractDependencyPlugin; /** * 依赖的插件信息 * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class DefaultDependencyPlugin extends AbstractDependencyPlugin { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultInsidePluginDescriptor.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultInsidePluginDescriptor.java index f5cdd92..efba5a1 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultInsidePluginDescriptor.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultInsidePluginDescriptor.java @@ -26,6 +26,7 @@ import java.util.jar.Manifest; /** * 内部的默认插件描述者 * @author starBlues + * @since 3.0.0 * @version 3.0.2 */ public class DefaultInsidePluginDescriptor extends DefaultPluginDescriptor implements InsidePluginDescriptor { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultPluginDescriptor.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultPluginDescriptor.java index d642dbd..2fdd253 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultPluginDescriptor.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultPluginDescriptor.java @@ -29,6 +29,7 @@ import static com.gitee.starblues.common.PluginDescriptorKey.*; * 默认插件描述者 * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class DefaultPluginDescriptor implements PluginDescriptor { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DevPluginDescriptorLoader.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DevPluginDescriptorLoader.java index f759177..a82099c 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DevPluginDescriptorLoader.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DevPluginDescriptorLoader.java @@ -30,7 +30,9 @@ import java.util.Properties; /** * 开发环境 PluginDescriptorLoader 加载者 + * * @author starBlues + * @since 3.0.0 * @version 3.0.2 */ @Slf4j diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/InsidePluginDescriptor.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/InsidePluginDescriptor.java index 369af78..6e346f4 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/InsidePluginDescriptor.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/InsidePluginDescriptor.java @@ -23,7 +23,9 @@ import java.util.jar.Manifest; /** * 内部的PluginDescriptor + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public interface InsidePluginDescriptor extends PluginDescriptor{ diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginDescriptor.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginDescriptor.java index 4e125bb..3d5cae9 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginDescriptor.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginDescriptor.java @@ -22,7 +22,9 @@ import java.util.List; /** * 插件信息 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public interface PluginDescriptor { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginDescriptorLoader.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginDescriptorLoader.java index e69c34e..7109074 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginDescriptorLoader.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginDescriptorLoader.java @@ -22,7 +22,9 @@ import java.nio.file.Path; /** * 插件描述加载者 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public interface PluginDescriptorLoader extends AutoCloseable{ diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginLibInfo.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginLibInfo.java index dbfa29e..c24921d 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginLibInfo.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginLibInfo.java @@ -23,7 +23,9 @@ import lombok.ToString; /** * 插件依赖包信息 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ @AllArgsConstructor diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginResourcesConfig.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginResourcesConfig.java index 5dc88a6..cca2b08 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginResourcesConfig.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginResourcesConfig.java @@ -26,7 +26,9 @@ import java.util.Set; /** * 插件 ResourcesDefine 文件定义 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class PluginResourcesConfig { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginType.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginType.java index eb42c15..e5c07a2 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginType.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginType.java @@ -23,7 +23,10 @@ import com.gitee.starblues.core.exception.PluginException; import java.util.Objects; /** + * 插件类型 + * * @author starBlues + * @since 3.0.0 * @version 3.0.2 */ public enum PluginType { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdDirPluginDescriptorLoader.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdDirPluginDescriptorLoader.java index 541fcbb..4676c89 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdDirPluginDescriptorLoader.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdDirPluginDescriptorLoader.java @@ -43,7 +43,9 @@ import static com.gitee.starblues.common.PackageStructure.*; /** * 生产环境目录式插件 PluginDescriptorLoader 加载者 * 解析生产的dir + * * @author starBlues + * @since 3.0.0 * @version 3.0.2 */ public class ProdDirPluginDescriptorLoader extends AbstractPluginDescriptorLoader{ diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdPackagePluginDescriptorLoader.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdPackagePluginDescriptorLoader.java index 7a4d0b9..106abf2 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdPackagePluginDescriptorLoader.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdPackagePluginDescriptorLoader.java @@ -41,6 +41,7 @@ import static com.gitee.starblues.common.PluginDescriptorKey.PLUGIN_RESOURCES_CO /** * 生产环境打包好的插件 PluginDescriptorLoader 加载者 * 解析 jar、zip + * * @author starBlues * @since 3.0.0 * @version 3.1.0 diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdPluginDescriptorLoader.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdPluginDescriptorLoader.java index 17ba28f..da4043c 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdPluginDescriptorLoader.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdPluginDescriptorLoader.java @@ -26,7 +26,9 @@ import java.nio.file.Path; /** * 生产环境插件描述加载者 + * * @author starBlues + * @since 3.0.0 * @version 3.0.1 */ public class ProdPluginDescriptorLoader implements PluginDescriptorLoader{ diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/decrypt/DefaultPluginDescriptorDecrypt.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/decrypt/DefaultPluginDescriptorDecrypt.java index e273f58..d2a4761 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/decrypt/DefaultPluginDescriptorDecrypt.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/decrypt/DefaultPluginDescriptorDecrypt.java @@ -19,6 +19,7 @@ import java.util.*; * 默认的 PluginDescriptorDecrypt * * @author starBlues + * @since 3.0.0 * @version 3.0.1 */ public class DefaultPluginDescriptorDecrypt implements PluginDescriptorDecrypt{ diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/decrypt/EmptyPluginDescriptorDecrypt.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/decrypt/EmptyPluginDescriptorDecrypt.java index bdf89c1..7d9305f 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/decrypt/EmptyPluginDescriptorDecrypt.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/decrypt/EmptyPluginDescriptorDecrypt.java @@ -22,6 +22,7 @@ import java.util.Properties; * 空的插件解密 * * @author starBlues + * @since 3.0.0 * @version 3.0.1 */ public class EmptyPluginDescriptorDecrypt implements PluginDescriptorDecrypt{ diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/decrypt/PluginDescriptorDecrypt.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/decrypt/PluginDescriptorDecrypt.java index df444de..17f856a 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/decrypt/PluginDescriptorDecrypt.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/decrypt/PluginDescriptorDecrypt.java @@ -24,6 +24,7 @@ import java.util.Properties; * 插件描述文件解密器 * * @author starBlues + * @since 3.0.0 * @version 3.0.1 */ public interface PluginDescriptorDecrypt { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginDecryptException.java b/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginDecryptException.java index 8b5def0..eb20dc7 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginDecryptException.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginDecryptException.java @@ -22,6 +22,7 @@ import com.gitee.starblues.core.descriptor.PluginDescriptor; * 插件解密异常 * * @author starBlues + * @since 3.0.0 * @version 3.0.1 */ public class PluginDecryptException extends PluginException{ diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginDisabledException.java b/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginDisabledException.java index 25a6bb5..bdc4b5b 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginDisabledException.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginDisabledException.java @@ -26,6 +26,7 @@ import com.gitee.starblues.utils.ObjectUtils; /** * 插件被禁用异常 * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class PluginDisabledException extends PluginException { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginException.java b/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginException.java index 92b79a1..ebd70d0 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginException.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginException.java @@ -25,6 +25,7 @@ import java.util.function.Supplier; /** * 插件异常 * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class PluginException extends RuntimeException{ diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginProhibitStopException.java b/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginProhibitStopException.java index a5095d5..4703668 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginProhibitStopException.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginProhibitStopException.java @@ -22,6 +22,7 @@ import com.gitee.starblues.utils.MsgUtils; /** * 插件禁止停止异常 * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class PluginProhibitStopException extends PluginException { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/JavaMainResourcePatternDefiner.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/JavaMainResourcePatternDefiner.java index 4e46c7e..84311b7 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/JavaMainResourcePatternDefiner.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/JavaMainResourcePatternDefiner.java @@ -24,6 +24,7 @@ import java.util.Set; /** * java 内部包匹配定义 * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class JavaMainResourcePatternDefiner implements MainResourcePatternDefiner { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/AbstractPluginLauncher.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/AbstractPluginLauncher.java new file mode 100644 index 0000000..1d7c251 --- /dev/null +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/AbstractPluginLauncher.java @@ -0,0 +1,62 @@ +package com.gitee.starblues.core.launcher.plugin; + +import com.gitee.starblues.core.PluginInsideInfo; +import com.gitee.starblues.core.exception.PluginException; +import com.gitee.starblues.core.launcher.plugin.involved.PluginLaunchInvolved; +import com.gitee.starblues.loader.launcher.AbstractLauncher; +import com.gitee.starblues.spring.SpringPluginHook; + +/** + * 插件启动者 + * + * @author starBlues + * @version 3.1.1 + * @since 3.1.1 + */ +public abstract class AbstractPluginLauncher extends AbstractLauncher { + + protected final PluginInteractive pluginInteractive; + protected final PluginLaunchInvolved pluginLaunchInvolved; + + public AbstractPluginLauncher(PluginInteractive pluginInteractive, + PluginLaunchInvolved pluginLaunchInvolved) { + this.pluginInteractive = pluginInteractive; + this.pluginLaunchInvolved = pluginLaunchInvolved; + } + + @Override + protected final ClassLoader createClassLoader(String... args) throws Exception { + ClassLoader pluginClassLoader = createPluginClassLoader(args); + pluginInteractive.getPluginInsideInfo().setClassLoader(pluginClassLoader); + return pluginClassLoader; + } + + @Override + protected SpringPluginHook launch(ClassLoader classLoader, String... args) throws Exception { + PluginInsideInfo pluginInsideInfo = pluginInteractive.getPluginInsideInfo(); + pluginLaunchInvolved.before(pluginInsideInfo, classLoader); + try { + SpringPluginHook springPluginHook = (SpringPluginHook) new PluginMethodRunner(pluginInteractive) + .run(classLoader); + if(springPluginHook == null){ + throw new PluginException("插件返回的 SpringPluginHook 不能为空"); + } + pluginLaunchInvolved.after(pluginInsideInfo, classLoader, springPluginHook); + return new SpringPluginHookWrapper(springPluginHook, pluginInsideInfo, pluginLaunchInvolved, classLoader); + } catch (Throwable throwable){ + pluginLaunchInvolved.failure(pluginInsideInfo,classLoader, throwable); + throw throwable; + } + } + + /** + * 创建插件的classloader + * @param args 参数 + * @return ClassLoader + * @throws Exception 创建ClassLoader异常 + */ + protected abstract ClassLoader createPluginClassLoader(String... args) throws Exception; + + + +} diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/BasicMainResourcePatternDefiner.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/BasicMainResourcePatternDefiner.java index 461a5ca..a4871c3 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/BasicMainResourcePatternDefiner.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/BasicMainResourcePatternDefiner.java @@ -26,6 +26,7 @@ import java.util.Set; /** * 基本的主程序资源匹配定义 * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class BasicMainResourcePatternDefiner implements MainResourcePatternDefiner { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/CacheRegistryInfo.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/CacheRegistryInfo.java index 341680b..d5c62bc 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/CacheRegistryInfo.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/CacheRegistryInfo.java @@ -23,6 +23,7 @@ import java.util.function.Supplier; /** * 可缓存的注册信息 * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class CacheRegistryInfo implements RegistryInfo { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/DefaultMainResourcePatternDefiner.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/DefaultMainResourcePatternDefiner.java index ac6014e..7af16a3 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/DefaultMainResourcePatternDefiner.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/DefaultMainResourcePatternDefiner.java @@ -30,6 +30,7 @@ import java.util.Set; * 主程序资源匹配定义 * * @author starBlues + * @since 3.0.0 * @version 3.0.3 */ public class DefaultMainResourcePatternDefiner extends JavaMainResourcePatternDefiner { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/DefaultPluginInteractive.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/DefaultPluginInteractive.java index a9249b8..c8e63d4 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/DefaultPluginInteractive.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/DefaultPluginInteractive.java @@ -28,6 +28,7 @@ import com.gitee.starblues.spring.invoke.InvokeSupperCache; /** * 默认的插件交互实现 * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class DefaultPluginInteractive implements PluginInteractive{ diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginCoexistLauncher.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginCoexistLauncher.java index 3bb4d27..cbf321b 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginCoexistLauncher.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginCoexistLauncher.java @@ -1,25 +1,14 @@ package com.gitee.starblues.core.launcher.plugin; import com.gitee.starblues.core.PluginInsideInfo; -import com.gitee.starblues.core.classloader.NestedPluginJarResourceLoader; import com.gitee.starblues.core.classloader.PluginGeneralUrlClassLoader; -import com.gitee.starblues.core.descriptor.InsidePluginDescriptor; -import com.gitee.starblues.core.descriptor.PluginLibInfo; -import com.gitee.starblues.core.descriptor.PluginType; import com.gitee.starblues.core.exception.PluginException; import com.gitee.starblues.core.launcher.plugin.involved.PluginLaunchInvolved; import com.gitee.starblues.loader.classloader.GeneralUrlClassLoader; -import com.gitee.starblues.loader.launcher.AbstractLauncher; import com.gitee.starblues.loader.launcher.LauncherContext; import com.gitee.starblues.spring.SpringPluginHook; -import com.gitee.starblues.utils.FilesUtils; -import com.gitee.starblues.utils.MsgUtils; -import com.gitee.starblues.utils.ObjectUtils; import lombok.extern.slf4j.Slf4j; -import java.io.File; -import java.util.Set; - /** * 插件共享式启动引导 * @@ -28,19 +17,16 @@ import java.util.Set; * @version 3.1.0 */ @Slf4j -public class PluginCoexistLauncher extends AbstractLauncher { +public class PluginCoexistLauncher extends AbstractPluginLauncher { - protected final PluginInteractive pluginInteractive; - protected final PluginLaunchInvolved pluginLaunchInvolved; public PluginCoexistLauncher(PluginInteractive pluginInteractive, PluginLaunchInvolved pluginLaunchInvolved) { - this.pluginInteractive = pluginInteractive; - this.pluginLaunchInvolved = pluginLaunchInvolved; + super(pluginInteractive, pluginLaunchInvolved); } @Override - protected ClassLoader createClassLoader(String... args) throws Exception { + protected ClassLoader createPluginClassLoader(String... args) throws Exception { PluginGeneralUrlClassLoader classLoader = new PluginGeneralUrlClassLoader( pluginInteractive.getPluginDescriptor().getPluginId(), getParentClassLoader()); @@ -48,25 +34,6 @@ public class PluginCoexistLauncher extends AbstractLauncher { return classLoader; } - @Override - protected SpringPluginHook launch(ClassLoader classLoader, String... args) throws Exception { - InsidePluginDescriptor pluginDescriptor = pluginInteractive.getPluginDescriptor(); - PluginInsideInfo pluginInsideInfo = pluginInteractive.getPluginInsideInfo(); - pluginLaunchInvolved.before(pluginInsideInfo, classLoader); - try { - SpringPluginHook springPluginHook = (SpringPluginHook) new PluginMethodRunner(pluginInteractive) - .run(classLoader); - if(springPluginHook == null){ - throw new PluginException("插件返回的 SpringPluginHook 不能为空"); - } - pluginLaunchInvolved.after(pluginInsideInfo, classLoader, springPluginHook); - return new SpringPluginHookWrapper(springPluginHook, pluginInsideInfo, pluginLaunchInvolved, classLoader); - } catch (Throwable throwable){ - pluginLaunchInvolved.failure(pluginInsideInfo,classLoader, throwable); - throw throwable; - } - } - protected GeneralUrlClassLoader getParentClassLoader() throws Exception { ClassLoader contextClassLoader = LauncherContext.getMainClassLoader(); if(contextClassLoader instanceof GeneralUrlClassLoader){ diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginInteractive.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginInteractive.java index 2278ca5..7b4a50b 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginInteractive.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginInteractive.java @@ -26,6 +26,7 @@ import com.gitee.starblues.spring.invoke.InvokeSupperCache; /** * 插件交互接口 * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public interface PluginInteractive { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginIsolationLauncher.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginIsolationLauncher.java index 9041233..0ca619a 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginIsolationLauncher.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginIsolationLauncher.java @@ -18,13 +18,12 @@ package com.gitee.starblues.core.launcher.plugin; import com.gitee.starblues.core.PluginInsideInfo; import com.gitee.starblues.core.classloader.*; -import com.gitee.starblues.core.descriptor.InsidePluginDescriptor; import com.gitee.starblues.core.launcher.plugin.involved.PluginLaunchInvolved; import com.gitee.starblues.loader.classloader.GenericClassLoader; import com.gitee.starblues.loader.classloader.resource.loader.DefaultResourceLoaderFactory; import com.gitee.starblues.loader.classloader.resource.loader.ResourceLoaderFactory; -import com.gitee.starblues.loader.launcher.AbstractLauncher; import com.gitee.starblues.loader.launcher.LauncherContext; +import com.gitee.starblues.loader.utils.ResourceUtils; import com.gitee.starblues.spring.MainApplicationContext; import com.gitee.starblues.spring.SpringPluginHook; import com.gitee.starblues.utils.MsgUtils; @@ -42,22 +41,18 @@ import java.util.WeakHashMap; * @since 3.0.0 * @version 3.1.0 */ -public class PluginIsolationLauncher extends AbstractLauncher { +public class PluginIsolationLauncher extends AbstractPluginLauncher { private static final Map CLASS_LOADER_CACHE = new WeakHashMap<>(); - protected final PluginInteractive pluginInteractive; protected final PluginInsideInfo pluginInsideInfo; protected final MainResourceMatcher mainResourceMatcher; - protected final PluginLaunchInvolved pluginLaunchInvolved; - public PluginIsolationLauncher(PluginInteractive pluginInteractive, PluginLaunchInvolved pluginLaunchInvolved) { - this.pluginInteractive = pluginInteractive; + super(pluginInteractive, pluginLaunchInvolved); this.pluginInsideInfo = pluginInteractive.getPluginInsideInfo(); this.mainResourceMatcher = getMainResourceMatcher(pluginInteractive); - this.pluginLaunchInvolved = pluginLaunchInvolved; } protected MainResourceMatcher getMainResourceMatcher(PluginInteractive pluginInteractive){ @@ -75,12 +70,19 @@ public class PluginIsolationLauncher extends AbstractLauncher } @Override - protected ClassLoader createClassLoader(String... args) throws Exception { + protected ClassLoader createPluginClassLoader(String... args) throws Exception { PluginClassLoader pluginClassLoader = getPluginClassLoader(); pluginClassLoader.addResource(pluginInsideInfo.getPluginDescriptor()); return pluginClassLoader; } + @Override + protected SpringPluginHook launch(ClassLoader classLoader, String... args) throws Exception { + SpringPluginHook springPluginHook = super.launch(classLoader, args); + ResourceUtils.release(classLoader); + return springPluginHook; + } + protected synchronized PluginClassLoader getPluginClassLoader() throws Exception { String pluginId = pluginInsideInfo.getPluginId(); String key = MsgUtils.getPluginUnique(pluginInsideInfo.getPluginDescriptor()); @@ -89,7 +91,8 @@ public class PluginIsolationLauncher extends AbstractLauncher return classLoader; } PluginClassLoader pluginClassLoader = new PluginClassLoader( - pluginId, getParentClassLoader(), getResourceLoaderFactory(), mainResourceMatcher + pluginId, getParentClassLoader(), getParentClassLoader(), getResourceLoaderFactory(), + mainResourceMatcher ); CLASS_LOADER_CACHE.put(key, pluginClassLoader); return pluginClassLoader; @@ -108,18 +111,4 @@ public class PluginIsolationLauncher extends AbstractLauncher } } - @Override - protected SpringPluginHook launch(ClassLoader classLoader, String... args) throws Exception { - pluginLaunchInvolved.before(pluginInsideInfo, classLoader); - try { - SpringPluginHook springPluginHook = (SpringPluginHook) new PluginMethodRunner(pluginInteractive) - .run(classLoader); - pluginLaunchInvolved.after(pluginInsideInfo, classLoader, springPluginHook); - return new SpringPluginHookWrapper(springPluginHook, pluginInsideInfo, pluginLaunchInvolved, classLoader); - } catch (Throwable throwable){ - pluginLaunchInvolved.failure(pluginInsideInfo,classLoader, throwable); - throw throwable; - } - } - } diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginMainResourcePatternDefiner.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginMainResourcePatternDefiner.java index f32c6b0..80c33a4 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginMainResourcePatternDefiner.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginMainResourcePatternDefiner.java @@ -26,6 +26,7 @@ import java.util.Set; /** * 定义插件从主程序加载资源的匹配 * @author starBlues + * @since 3.0.0 * @version 3.0.3 */ public class PluginMainResourcePatternDefiner implements MainResourcePatternDefiner { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginMethodRunner.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginMethodRunner.java index e91403f..f2b538b 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginMethodRunner.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginMethodRunner.java @@ -30,6 +30,7 @@ import java.lang.reflect.Method; /** * 插件方法运行器。 * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class PluginMethodRunner extends MethodRunner { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/RegistryInfo.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/RegistryInfo.java index b604517..12735db 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/RegistryInfo.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/RegistryInfo.java @@ -20,6 +20,7 @@ import java.util.function.Supplier; /** * 注册的信息接口 * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public interface RegistryInfo { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/PluginApplicationContextGetter.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/PluginApplicationContextGetter.java index 165db50..0ef5538 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/PluginApplicationContextGetter.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/PluginApplicationContextGetter.java @@ -25,6 +25,8 @@ import java.util.*; import java.util.concurrent.ConcurrentHashMap; /** + * 插件 applicationContext 获取者 + * * @author starBlues * @since 3.0.0 * @version 3.1.0 diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/PluginLaunchInvolved.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/PluginLaunchInvolved.java index 5e3bbe6..b3046cd 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/PluginLaunchInvolved.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/PluginLaunchInvolved.java @@ -24,6 +24,7 @@ import org.springframework.context.support.GenericApplicationContext; /** * 插件启动前后介入 + * * @author starBlues * @since 3.0.0 * @version 3.1.0 diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/BasePluginScanner.java b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/BasePluginScanner.java index a17c756..d055fcf 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/BasePluginScanner.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/BasePluginScanner.java @@ -27,6 +27,7 @@ import java.util.List; /** * 基本的插件扫描者 * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class BasePluginScanner implements PluginScanner{ diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/ComposePathResolve.java b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/ComposePathResolve.java index 56cee67..fe02035 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/ComposePathResolve.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/ComposePathResolve.java @@ -26,6 +26,7 @@ import java.util.List; /** * 组合的PathResolve * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class ComposePathResolve implements PathResolve{ diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/DevPathResolve.java b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/DevPathResolve.java index 6c1e944..640a2eb 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/DevPathResolve.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/DevPathResolve.java @@ -28,6 +28,7 @@ import java.util.List; /** * 开发环境路径解决器 * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class DevPathResolve implements PathResolve{ diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/PathResolve.java b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/PathResolve.java index e6be248..6bd22d7 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/PathResolve.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/PathResolve.java @@ -21,6 +21,7 @@ import java.nio.file.Path; /** * 从路径中发现合适的插件 * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public interface PathResolve { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/PluginScanner.java b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/PluginScanner.java index 32b4069..d3743d0 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/PluginScanner.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/PluginScanner.java @@ -22,6 +22,7 @@ import java.util.List; /** * 插件扫描者 * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public interface PluginScanner { diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/ProdPathResolve.java b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/ProdPathResolve.java index 9a8f7a7..306b3ba 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/ProdPathResolve.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/ProdPathResolve.java @@ -29,6 +29,7 @@ import java.util.List; /** * 生产环境目录解决器 * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class ProdPathResolve implements PathResolve{ diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/version/SemverVersionInspector.java b/spring-brick/src/main/java/com/gitee/starblues/core/version/SemverVersionInspector.java index 70dfde3..c969bb3 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/version/SemverVersionInspector.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/version/SemverVersionInspector.java @@ -23,7 +23,9 @@ import com.github.zafarkhaja.semver.Version; /** * Semver标准版本检查 + * * @author starBlues + * @since 3.0.0 * @version 3.0.1 */ public class SemverVersionInspector implements VersionInspector{ diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/version/VersionInspector.java b/spring-brick/src/main/java/com/gitee/starblues/core/version/VersionInspector.java index b1e1dd8..32eb17c 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/version/VersionInspector.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/version/VersionInspector.java @@ -20,7 +20,9 @@ import com.gitee.starblues.core.exception.PluginException; /** * 版本检查 + * * @author starBlues + * @since 3.0.0 * @version 3.0.1 */ public interface VersionInspector { diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/AutoIntegrationConfiguration.java b/spring-brick/src/main/java/com/gitee/starblues/integration/AutoIntegrationConfiguration.java index 39e3af8..52e1aff 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/AutoIntegrationConfiguration.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/AutoIntegrationConfiguration.java @@ -127,6 +127,12 @@ public class AutoIntegrationConfiguration extends DefaultIntegrationConfiguratio @Value("${exactVersion:false}") private Boolean exactVersion; + /** + * 插件的配置文件 Profile 是否跟随主程序的 Profile 配置动态切换 + */ + @Value("${pluginFollowProfile:false}") + private Boolean pluginFollowProfile; + /** * 对插件启动时进行解密校验配置。默认为不启用 */ @@ -214,6 +220,14 @@ public class AutoIntegrationConfiguration extends DefaultIntegrationConfiguratio return exactVersion; } + @Override + public boolean pluginFollowProfile() { + if(pluginFollowProfile == null){ + return super.pluginFollowProfile(); + } + return pluginFollowProfile; + } + @Override public DecryptConfiguration decrypt() { if(decrypt == null){ diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/DefaultIntegrationConfiguration.java b/spring-brick/src/main/java/com/gitee/starblues/integration/DefaultIntegrationConfiguration.java index b99e55e..f418ac2 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/DefaultIntegrationConfiguration.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/DefaultIntegrationConfiguration.java @@ -92,6 +92,11 @@ public abstract class DefaultIntegrationConfiguration implements IntegrationConf return false; } + @Override + public boolean pluginFollowProfile() { + return false; + } + @Override public DecryptConfiguration decrypt() { DecryptConfiguration decryptConfiguration = new DecryptConfiguration(); diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/IntegrationConfiguration.java b/spring-brick/src/main/java/com/gitee/starblues/integration/IntegrationConfiguration.java index a866e79..f5b3531 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/IntegrationConfiguration.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/IntegrationConfiguration.java @@ -118,6 +118,12 @@ public interface IntegrationConfiguration { */ boolean exactVersion(); + /** + * 插件的配置文件 Profile 是否跟随主程序的 Profile 配置动态切换 + * @return true: 跟随, false: 不跟随 + */ + boolean pluginFollowProfile(); + /** * 解密配置 * @return DecryptConfiguration diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContext.java b/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContext.java index b6d6dec..a6e5a53 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContext.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContext.java @@ -42,6 +42,18 @@ public interface MainApplicationContext extends ApplicationContext { */ EnvironmentProvider getEnvironmentProvider(); + /** + * 返回主程序配置的Profile配置 + * @return String 数组 + */ + String[] getActiveProfiles(); + + /** + * 返回主程序默认的Profile配置 + * @return String 数组 + */ + String[] getDefaultProfiles(); + /** * 从主程序获取依赖 diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContextProxy.java b/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContextProxy.java index f876ffe..bfda63b 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContextProxy.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContextProxy.java @@ -81,6 +81,16 @@ public class MainApplicationContextProxy extends ApplicationContextProxy impleme return new MainSpringBootEnvironmentProvider(applicationContext.getEnvironment()); } + @Override + public String[] getActiveProfiles() { + return applicationContext.getEnvironment().getActiveProfiles(); + } + + @Override + public String[] getDefaultProfiles() { + return applicationContext.getEnvironment().getDefaultProfiles(); + } + @Override public Object resolveDependency(String requestingBeanName, Class dependencyType) { try { diff --git a/spring-brick/src/main/resources/META-INF/spring-configuration-metadata.json b/spring-brick/src/main/resources/META-INF/spring-configuration-metadata.json index 67610e7..6da7aa4 100644 --- a/spring-brick/src/main/resources/META-INF/spring-configuration-metadata.json +++ b/spring-brick/src/main/resources/META-INF/spring-configuration-metadata.json @@ -100,6 +100,13 @@ "description": "是否完全匹配版本。设置为true表示插件设置的requires的版本号完全匹配version版本号才可允许插件安装, 即: requires=x.y.z; 设置为false表示插件设置的requires的版本号小于等于version值, 插件就可安装, 即requires<=x.y.z", "defaultValue": false }, + { + "name": "plugin.pluginFollowProfile", + "type": "java.lang.Boolean", + "sourceType": "com.gitee.starblues.integration.AutoIntegrationConfiguration", + "description": "插件的配置文件 Profile 是否跟随主程序的 Profile 配置动态切换", + "defaultValue": false + }, { "name": "plugin.decrypt", "type": "com.gitee.starblues.integration.decrypt.DecryptConfiguration", -- Gitee From 2388dcb11418c24be1a382f41e99b6a141dfc920 Mon Sep 17 00:00:00 2001 From: StarBlues Date: Sat, 3 Dec 2022 11:52:21 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E5=88=B03.1.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bootstrap/ConfigurePluginEnvironment.java | 39 ++++++++++++------- .../gitee/starblues/utils/StringUtils.java | 16 ++++++++ .../DefaultMainResourcePatternDefiner.java | 15 ++++++- .../AutoIntegrationConfiguration.java | 24 ++++++++++-- .../DefaultIntegrationConfiguration.java | 29 ++++++++------ .../integration/ExtendPointConfiguration.java | 2 +- .../integration/IntegrationConfiguration.java | 14 +++++-- .../spring-configuration-metadata.json | 7 ++++ update.md | 18 ++------- 9 files changed, 115 insertions(+), 49 deletions(-) diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/ConfigurePluginEnvironment.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/ConfigurePluginEnvironment.java index 5d90bd0..fd30caf 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/ConfigurePluginEnvironment.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/ConfigurePluginEnvironment.java @@ -22,10 +22,7 @@ import com.gitee.starblues.integration.AutoIntegrationConfiguration; import com.gitee.starblues.integration.IntegrationConfiguration; import com.gitee.starblues.loader.launcher.DevelopmentModeSetting; import com.gitee.starblues.spring.MainApplicationContext; -import com.gitee.starblues.utils.Assert; -import com.gitee.starblues.utils.FilesUtils; -import com.gitee.starblues.utils.ObjectUtils; -import com.gitee.starblues.utils.PluginFileUtils; +import com.gitee.starblues.utils.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.ConfigurableApplicationContext; @@ -99,18 +96,10 @@ public class ConfigurePluginEnvironment { } catch (Exception ex){ logger.error("LiveBeansView.registerApplicationContext失败. {}", ex.getMessage(), ex); } - if(DevelopmentModeSetting.coexist()){ env.put(AutoIntegrationConfiguration.ENABLE_STARTER_KEY, false); } - - IntegrationConfiguration configuration = processorContext.getConfiguration(); - if(configuration.pluginFollowProfile()){ - MainApplicationContext mainApplicationContext = processorContext.getMainApplicationContext(); - environment.setActiveProfiles(mainApplicationContext.getActiveProfiles()); - environment.setDefaultProfiles(mainApplicationContext.getDefaultProfiles()); - } - + configProfiles(environment); environment.getPropertySources().addFirst(new MapPropertySource(PLUGIN_PROPERTY_NAME, env)); } @@ -124,4 +113,28 @@ public class ConfigurePluginEnvironment { } } + private void configProfiles(ConfigurableEnvironment environment){ + IntegrationConfiguration configuration = processorContext.getConfiguration(); + if(!configuration.pluginFollowProfile()){ + return; + } + MainApplicationContext mainApplicationContext = processorContext.getMainApplicationContext(); + String[] activeProfiles = environment.getActiveProfiles(); + if(activeProfiles.length > 0){ + logger.info("Plugin[{}] following profiles are active: {}", + MsgUtils.getPluginUnique(pluginDescriptor), StringUtils.toStrByArray(activeProfiles)); + } else { + String[] mainActiveProfiles = mainApplicationContext.getActiveProfiles(); + if(mainActiveProfiles.length > 0){ + logger.info("Plugin[{}] following profiles are active from main: {}", + MsgUtils.getPluginUnique(pluginDescriptor), StringUtils.toStrByArray(mainActiveProfiles)); + environment.setActiveProfiles(mainActiveProfiles); + } else { + logger.info("Plugin[{}] No active profile set, falling back to default profiles: {}", + MsgUtils.getPluginUnique(pluginDescriptor), + StringUtils.toStrByArray(environment.getDefaultProfiles())); + } + } + } + } diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/utils/StringUtils.java b/spring-brick-common/src/main/java/com/gitee/starblues/utils/StringUtils.java index e38afb8..ed16d8d 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/utils/StringUtils.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/utils/StringUtils.java @@ -60,4 +60,20 @@ public class StringUtils { return (!ObjectUtils.isEmpty(collection) ? collection.toArray(EMPTY_STRING_ARRAY) : EMPTY_STRING_ARRAY); } + public static String toStrByArray(String[] str){ + if(str == null || str.length == 0){ + return ""; + } + int length = str.length; + StringBuilder stringBuilder = new StringBuilder(); + for (int i = 0; i < length; i++) { + String s = str[i]; + stringBuilder.append(s); + if (i < length - 1) { + stringBuilder.append(","); + } + } + return stringBuilder.toString(); + } + } diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/DefaultMainResourcePatternDefiner.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/DefaultMainResourcePatternDefiner.java index 7af16a3..7c24167 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/DefaultMainResourcePatternDefiner.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/DefaultMainResourcePatternDefiner.java @@ -18,6 +18,7 @@ package com.gitee.starblues.core.launcher.plugin; import com.gitee.starblues.core.classloader.MainResourcePatternDefiner; import com.gitee.starblues.core.launcher.JavaMainResourcePatternDefiner; +import com.gitee.starblues.integration.IntegrationConfiguration; import com.gitee.starblues.utils.ObjectUtils; import com.gitee.starblues.utils.SpringBeanUtils; import org.springframework.context.ApplicationContext; @@ -40,10 +41,12 @@ public class DefaultMainResourcePatternDefiner extends JavaMainResourcePatternDe public static final String FACTORIES_RESOURCE_LOCATION = "META-INF/spring.factories"; private final String mainPackage; + private final IntegrationConfiguration configuration; private final ApplicationContext applicationContext; - public DefaultMainResourcePatternDefiner(String mainPackage, ApplicationContext applicationContext) { - this.mainPackage = mainPackage; + public DefaultMainResourcePatternDefiner(IntegrationConfiguration configuration, ApplicationContext applicationContext) { + this.mainPackage = configuration.mainPackage(); + this.configuration = configuration; this.applicationContext = applicationContext; } @@ -59,6 +62,7 @@ public class DefaultMainResourcePatternDefiner extends JavaMainResourcePatternDe addDbDriver(includeResourcePatterns); addIdea(includeResourcePatterns); + addLog(includeResourcePatterns); // add extension List extensionPatternDefiners = getExtensionPatternDefiners(); @@ -141,6 +145,13 @@ public class DefaultMainResourcePatternDefiner extends JavaMainResourcePatternDe includeResourcePatterns.add("com/intellij/rt/debugger/agent/**"); } + private void addLog(Set includeResourcePatterns) { + if(Boolean.FALSE.equals(configuration.pluginFollowLog())){ + return; + } + includeResourcePatterns.add("org/slf4j/**"); + } + /** * 获取扩展的 MainResourcePatternDefiner diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/AutoIntegrationConfiguration.java b/spring-brick/src/main/java/com/gitee/starblues/integration/AutoIntegrationConfiguration.java index 52e1aff..ddc553e 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/AutoIntegrationConfiguration.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/AutoIntegrationConfiguration.java @@ -31,7 +31,9 @@ import java.util.Set; /** * 自动集成的配置 + * * @author starBlues + * @since 3.0.0 * @version 3.0.3 */ @EqualsAndHashCode(callSuper = true) @@ -133,13 +135,19 @@ public class AutoIntegrationConfiguration extends DefaultIntegrationConfiguratio @Value("${pluginFollowProfile:false}") private Boolean pluginFollowProfile; + /** + * 插件日志打印是否跟随主程序 + */ + @Value("${pluginFollowLog:false}") + private Boolean pluginFollowLog; + /** * 对插件启动时进行解密校验配置。默认为不启用 */ private DecryptConfiguration decrypt; @Override - public boolean enable() { + public Boolean enable() { if(enable == null){ return true; } @@ -187,7 +195,7 @@ public class AutoIntegrationConfiguration extends DefaultIntegrationConfiguratio } @Override - public boolean enablePluginIdRestPathPrefix() { + public Boolean enablePluginIdRestPathPrefix() { if(enablePluginIdRestPathPrefix == null){ return super.enablePluginIdRestPathPrefix(); } else { @@ -216,18 +224,26 @@ public class AutoIntegrationConfiguration extends DefaultIntegrationConfiguratio } @Override - public boolean exactVersion() { + public Boolean exactVersion() { return exactVersion; } @Override - public boolean pluginFollowProfile() { + public Boolean pluginFollowProfile() { if(pluginFollowProfile == null){ return super.pluginFollowProfile(); } return pluginFollowProfile; } + @Override + public Boolean pluginFollowLog() { + if(pluginFollowLog == null){ + return super.pluginFollowLog(); + } + return pluginFollowLog; + } + @Override public DecryptConfiguration decrypt() { if(decrypt == null){ diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/DefaultIntegrationConfiguration.java b/spring-brick/src/main/java/com/gitee/starblues/integration/DefaultIntegrationConfiguration.java index f418ac2..5a9c1a7 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/DefaultIntegrationConfiguration.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/DefaultIntegrationConfiguration.java @@ -21,6 +21,7 @@ import com.gitee.starblues.integration.decrypt.DecryptConfiguration; import com.gitee.starblues.utils.Assert; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Set; @@ -28,16 +29,17 @@ import java.util.Set; * 默认的插件集成配置。给非必须配置设置了默认值 * * @author starBlues + * @since 3.0.0 * @version 3.0.1 */ public abstract class DefaultIntegrationConfiguration implements IntegrationConfiguration{ public static final String DEFAULT_PLUGIN_REST_PATH_PREFIX = "plugins"; - public static final boolean DEFAULT_ENABLE_PLUGIN_ID_REST_PATH_PREFIX = true; + public static final Boolean DEFAULT_ENABLE_PLUGIN_ID_REST_PATH_PREFIX = Boolean.TRUE; @Override - public boolean enable() { - return true; + public Boolean enable() { + return Boolean.TRUE; } @Override @@ -63,23 +65,23 @@ public abstract class DefaultIntegrationConfiguration implements IntegrationConf } @Override - public boolean enablePluginIdRestPathPrefix() { + public Boolean enablePluginIdRestPathPrefix() { return DEFAULT_ENABLE_PLUGIN_ID_REST_PATH_PREFIX; } @Override public Set enablePluginIds() { - return null; + return Collections.emptySet(); } @Override public Set disablePluginIds() { - return null; + return Collections.emptySet(); } @Override public List sortInitPluginIds() { - return null; + return Collections.emptyList(); } @Override @@ -88,13 +90,18 @@ public abstract class DefaultIntegrationConfiguration implements IntegrationConf } @Override - public boolean exactVersion() { - return false; + public Boolean exactVersion() { + return Boolean.FALSE; } @Override - public boolean pluginFollowProfile() { - return false; + public Boolean pluginFollowProfile() { + return Boolean.FALSE; + } + + @Override + public Boolean pluginFollowLog() { + return Boolean.FALSE; } @Override diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/ExtendPointConfiguration.java b/spring-brick/src/main/java/com/gitee/starblues/integration/ExtendPointConfiguration.java index 1d0f5d7..1b7fc2b 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/ExtendPointConfiguration.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/ExtendPointConfiguration.java @@ -86,7 +86,7 @@ public class ExtendPointConfiguration { @Bean public MainResourceMatcher mainResourceMatcher(){ return new DefaultMainResourceMatcher(new DefaultMainResourcePatternDefiner( - configuration.mainPackage(), + configuration, applicationContext )); } diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/IntegrationConfiguration.java b/spring-brick/src/main/java/com/gitee/starblues/integration/IntegrationConfiguration.java index f5b3531..95dd8fe 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/IntegrationConfiguration.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/IntegrationConfiguration.java @@ -37,7 +37,7 @@ public interface IntegrationConfiguration { * 是否启用该插件框架 * @return true 启用, false 禁用 */ - boolean enable(); + Boolean enable(); /** * 运行环境。运行项目时的模式。分为开发环境(Dev)、生产环境(Prod) @@ -82,7 +82,7 @@ public interface IntegrationConfiguration { * 即为: /pathPrefix/pluginId/** * @return boolean */ - boolean enablePluginIdRestPathPrefix(); + Boolean enablePluginIdRestPathPrefix(); /** * 启用的插件id @@ -116,13 +116,19 @@ public interface IntegrationConfiguration { * 默认为false * @return true or false */ - boolean exactVersion(); + Boolean exactVersion(); /** * 插件的配置文件 Profile 是否跟随主程序的 Profile 配置动态切换 * @return true: 跟随, false: 不跟随 */ - boolean pluginFollowProfile(); + Boolean pluginFollowProfile(); + + /** + * 插件日志打印是否跟随主程序 + * @return true: 跟随, false: 不跟随 + */ + Boolean pluginFollowLog(); /** * 解密配置 diff --git a/spring-brick/src/main/resources/META-INF/spring-configuration-metadata.json b/spring-brick/src/main/resources/META-INF/spring-configuration-metadata.json index 6da7aa4..d3e6843 100644 --- a/spring-brick/src/main/resources/META-INF/spring-configuration-metadata.json +++ b/spring-brick/src/main/resources/META-INF/spring-configuration-metadata.json @@ -107,6 +107,13 @@ "description": "插件的配置文件 Profile 是否跟随主程序的 Profile 配置动态切换", "defaultValue": false }, + { + "name": "plugin.pluginFollowLog", + "type": "java.lang.Boolean", + "sourceType": "com.gitee.starblues.integration.AutoIntegrationConfiguration", + "description": "插件日志打印是否跟随主程序", + "defaultValue": false + }, { "name": "plugin.decrypt", "type": "com.gitee.starblues.integration.decrypt.DecryptConfiguration", diff --git a/update.md b/update.md index 3e8f5e9..9814a7a 100644 --- a/update.md +++ b/update.md @@ -1,14 +1,4 @@ -1. 【新增】增加主包`MANIFEST.MF`中`title`和`version`定义, 标准jar包中包含`Implementation-Title`和`Implementation-Version`属性 -2. 【新增】新增根据个人需求选择开发模式,支持隔离式开发模式(目前已有的)、共享式开发模式 -3. 【新增】新增可自主实现扩展插件信息 -4. 【新增】新增插件停止类型 -3. 【修复】修复插件中`LiveBeansView`注册异常问题 -4. 【修复[#I5IFR4](https://gitee.com/starblues/springboot-plugin-framework-parent/issues/I5IFR3)】 `ExtractFactory#getExtractByCoordinate` 类型转换`Bug` -5. 【修复[#I5GJO9](https://gitee.com/starblues/springboot-plugin-framework-parent/issues/I5GJO9)】`DefaultPluginManager#install` 异常无法抛出 -6. 【修复】修复插件无法加载其他包依赖中的`mybatis-xml`问题 -7. 【修复】修复插件子启动问题 -8. 【修复】修复插件`load`解压异常 -9. 【修复】修复`jar`、`zip`加载依赖时未使用`libDir`配置前缀 -10.【优化】优化插件`parse`后为`parsed`状态 -11.【优化】优化依赖资源默认不缓存, 以减少内存 - +1. 【新增】主程序可通过`pluginInfo`对象获取插件的`ClassLoader`。 +2. 【新增】插件配置文件`spring.profiles.active`的值可跟随主程序配置切换。 +3. 【新增】插件的日志可配置为跟随主程序日志配置打印。 +4. 【优化】优化插件隔离模式下,内存占用过大的问题。 \ No newline at end of file -- Gitee From 02ba6aabef2e125ca75afc945698450fb972cc3c Mon Sep 17 00:00:00 2001 From: StarBlues Date: Sat, 3 Dec 2022 14:26:36 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=86=85=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LICENSE | 2 +- .../bootstrap/AutowiredTypeDefinerConfig.java | 2 +- .../bootstrap/AutowiredTypeResolver.java | 2 +- .../bootstrap/ConfigurePluginEnvironment.java | 2 +- .../DefaultAutowiredTypeResolver.java | 2 +- .../bootstrap/DefaultSpringPluginHook.java | 2 +- .../EmptyMainApplicationContext.java | 2 +- .../bootstrap/EmptySpringBeanFactory.java | 2 +- .../bootstrap/PluginApplicationContext.java | 2 +- .../bootstrap/PluginContextHolder.java | 2 +- .../PluginDisableAutoConfiguration.java | 2 +- .../bootstrap/PluginListableBeanFactory.java | 2 +- .../bootstrap/PluginOneselfInteractive.java | 2 +- .../bootstrap/PluginSpringApplication.java | 2 +- .../PluginWebApplicationContext.java | 2 +- ...lveHttpMessageConvertersConfiguration.java | 2 +- .../bootstrap/SpringPluginBootstrap.java | 2 +- .../annotation/DisablePluginWeb.java | 2 +- .../bootstrap/annotation/OneselfConfig.java | 2 +- .../annotation/ResolveClassLoader.java | 2 +- .../CoexistAllowAutoConfiguration.java | 2 +- .../CoexistResolveClassLoaderAspect.java | 2 +- .../bootstrap/launcher/BootstrapLauncher.java | 2 +- .../launcher/BootstrapLauncherFactory.java | 2 +- .../launcher/CoexistBootstrapLauncher.java | 2 +- .../DefaultBootstrapLauncherFactory.java | 2 +- .../launcher/IsolationBootstrapLauncher.java | 2 +- .../PluginApplicationWebEventListener.java | 2 +- .../ComposeSpringPluginProcessor.java | 2 +- .../processor/DefaultProcessorContext.java | 2 +- .../processor/ExtractBeanProcessor.java | 2 +- .../processor/FrameDefineBeanProcessor.java | 2 +- .../processor/InvokeOtherPluginProcessor.java | 2 +- .../bootstrap/processor/ProcessorContext.java | 2 +- .../processor/ProcessorException.java | 2 +- .../processor/SpringPluginProcessor.java | 2 +- .../PluginInterceptorRegister.java | 2 +- .../PluginInterceptorRegistration.java | 2 +- .../PluginInterceptorRegistry.java | 2 +- .../processor/invoke/InvokeBeanFactory.java | 2 +- .../processor/invoke/InvokeProxyHandler.java | 2 +- .../ConfigureMainPluginEnvironment.java | 2 +- .../processor/oneself/OneselfProcessor.java | 2 +- .../PluginClassPathBeanDefinitionScanner.java | 2 +- .../web/PluginControllerProcessor.java | 2 +- .../web/PluginInterceptorsProcessor.java | 2 +- .../PluginSpringDocControllerProcessor.java | 2 +- .../web/PluginStaticResourceProcessor.java | 2 +- .../thymeleaf/PluginThymeleafProcessor.java | 2 +- .../web/thymeleaf/ThymeleafConfigParse.java | 2 +- .../realize/AutowiredTypeDefiner.java | 2 +- .../realize/PluginCloseListener.java | 2 +- .../bootstrap/realize/StopValidator.java | 2 +- .../bootstrap/utils/AnnotationUtils.java | 2 +- .../bootstrap/utils/DestroyUtils.java | 2 +- .../bootstrap/utils/ProcessorUtils.java | 2 +- .../bootstrap/utils/SpringBeanUtils.java | 2 +- .../common/AbstractDependencyPlugin.java | 2 +- .../com/gitee/starblues/common/Constants.java | 2 +- .../starblues/common/DependencyPlugin.java | 2 +- .../gitee/starblues/common/ManifestKey.java | 2 +- .../starblues/common/PackageStructure.java | 2 +- .../gitee/starblues/common/PackageType.java | 2 +- .../starblues/common/PluginDescriptorKey.java | 2 +- .../common/cipher/AesPluginCipher.java | 2 +- .../starblues/common/cipher/PluginCipher.java | 2 +- .../common/cipher/RsaPluginCipher.java | 2 +- .../com/gitee/starblues/utils/Assert.java | 2 +- .../utils/CompareClassTypeUtils.java | 2 +- .../gitee/starblues/utils/FieldFilter.java | 2 +- .../com/gitee/starblues/utils/FilesUtils.java | 2 +- .../gitee/starblues/utils/ObjectUtils.java | 2 +- .../starblues/utils/ObjectValueUtils.java | 2 +- .../starblues/utils/PropertiesUtils.java | 2 +- .../starblues/utils/ReflectionUtils.java | 2 +- .../gitee/starblues/utils/ResourceUtils.java | 2 +- .../gitee/starblues/utils/StringUtils.java | 2 +- .../com/gitee/starblues/utils/UrlUtils.java | 2 +- .../starblues/loader/DevelopmentMode.java | 2 +- .../starblues/loader/LoaderConstant.java | 2 +- .../loader/PluginResourceStorage.java | 2 +- .../classloader/ClassLoaderTranslator.java | 2 +- .../classloader/GeneralUrlClassLoader.java | 2 +- .../classloader/GenericClassLoader.java | 2 +- .../classloader/filter/ExcludeResource.java | 2 +- .../classloader/filter/IncludeResource.java | 2 +- .../loader/classloader/resource/Resource.java | 12 +- .../resource/ResourceByteGetter.java | 3 +- .../classloader/resource/cache/Cache.java | 92 +++++++ .../CacheExpirationTrigger.java} | 49 +++- .../cache/DefaultCacheExpirationTrigger.java | 113 ++++++++ .../resource/cache/LRUMapCache.java | 258 ++++++++++++++++++ .../loader/AbstractResourceLoader.java | 7 +- .../resource/loader/CacheResource.java | 71 +++++ .../resource/loader/ClassPathLoader.java | 7 +- .../resource/loader/DefaultResource.java | 7 +- .../loader/DefaultResourceLoaderFactory.java | 106 +------ .../resource/loader/JarResourceLoader.java | 5 +- .../loader/MainJarResourceLoader.java | 2 +- .../resource/loader/ResourceLoader.java | 2 +- .../loader/ResourceLoaderFactory.java | 3 +- .../storage/AbstractResourceStorage.java | 245 +++++++++++++++++ .../storage/CacheFastResourceStorage.java | 150 ++++++++++ .../CacheLowMemoryResourceStorage.java | 148 ++++++++++ ...ava => CachePerpetualResourceStorage.java} | 130 +++------ .../storage/CacheReleasedResourceStorage.java | 136 --------- .../storage/EmptyResourceStorage.java | 28 +- .../resource/storage/ResourceStorage.java | 46 +++- .../loader/launcher/AbstractLauncher.java | 2 +- .../loader/launcher/AbstractMainLauncher.java | 2 +- .../loader/launcher/DevLauncher.java | 2 +- .../launcher/DevelopmentModeSetting.java | 2 +- .../starblues/loader/launcher/Launcher.java | 2 +- .../loader/launcher/LauncherContext.java | 2 +- .../loader/launcher/ProdLauncher.java | 2 +- .../loader/launcher/SpringBootstrap.java | 2 +- .../loader/launcher/SpringMainBootstrap.java | 2 +- .../launcher/SpringMainProdBootstrap.java | 2 +- .../launcher/classpath/ClasspathResource.java | 2 +- .../classpath/FastJarClasspathResource.java | 2 +- .../classpath/JarOutClasspathResource.java | 2 +- .../launcher/coexist/CoexistBaseLauncher.java | 2 +- .../coexist/CoexistFastJarLauncher.java | 2 +- .../coexist/CoexistJarOuterLauncher.java | 2 +- .../isolation/IsolationBaseLauncher.java | 2 +- .../isolation/IsolationFastJarLauncher.java | 2 +- .../isolation/IsolationJarOuterLauncher.java | 2 +- .../ResourceLoaderFactoryGetter.java | 27 +- .../launcher/runner/MainMethodRunner.java | 2 +- .../loader/launcher/runner/MethodRunner.java | 2 +- .../gitee/starblues/loader/utils/Assert.java | 2 +- .../loader/utils/CompareClassTypeUtils.java | 2 +- .../starblues/loader/utils/FilesUtils.java | 2 +- .../gitee/starblues/loader/utils/IOUtils.java | 2 +- .../starblues/loader/utils/ObjectUtils.java | 2 +- .../starblues/loader/utils/ResourceUtils.java | 60 +++- .../pack/AbstractDependencyFilterMojo.java | 2 +- .../plugin/pack/AbstractPackagerMojo.java | 2 +- .../plugin/pack/BasicRepackager.java | 2 +- .../gitee/starblues/plugin/pack/Constant.java | 2 +- .../starblues/plugin/pack/Dependency.java | 2 +- .../plugin/pack/DependencyPlugin.java | 2 +- .../plugin/pack/LoadMainResourcePattern.java | 2 +- .../starblues/plugin/pack/LoadToMain.java | 2 +- .../starblues/plugin/pack/PluginInfo.java | 2 +- .../starblues/plugin/pack/RepackageMojo.java | 2 +- .../starblues/plugin/pack/Repackager.java | 2 +- .../starblues/plugin/pack/dev/Dependency.java | 2 +- .../starblues/plugin/pack/dev/DevConfig.java | 2 +- .../plugin/pack/dev/DevRepackager.java | 2 +- .../plugin/pack/encrypt/AesConfig.java | 2 +- .../plugin/pack/encrypt/EncryptConfig.java | 2 +- .../plugin/pack/encrypt/EncryptPlugin.java | 2 +- .../pack/encrypt/EncryptPluginFactory.java | 2 +- .../plugin/pack/encrypt/RsaConfig.java | 2 +- .../plugin/pack/encrypt/RsaEncryptPlugin.java | 2 +- .../plugin/pack/filter/DependencyFilter.java | 2 +- .../starblues/plugin/pack/filter/Exclude.java | 2 +- .../plugin/pack/filter/ExcludeFilter.java | 2 +- .../pack/filter/FilterableDependency.java | 2 +- .../starblues/plugin/pack/filter/Include.java | 2 +- .../plugin/pack/filter/IncludeFilter.java | 2 +- .../plugin/pack/main/JarNestPackager.java | 2 +- .../plugin/pack/main/JarOuterPackager.java | 2 +- .../plugin/pack/main/MainConfig.java | 2 +- .../plugin/pack/main/MainRepackager.java | 2 +- .../plugin/pack/prod/DirProdRepackager.java | 2 +- .../pack/prod/JarNestedProdRepackager.java | 2 +- .../pack/prod/JarOuterProdRepackager.java | 2 +- .../plugin/pack/prod/ProdConfig.java | 2 +- .../plugin/pack/prod/ProdRepackager.java | 2 +- .../pack/prod/ZipOuterProdRepackager.java | 2 +- .../plugin/pack/prod/ZipProdRepackager.java | 2 +- .../plugin/pack/utils/CommonUtils.java | 2 +- .../plugin/pack/utils/PackageJar.java | 2 +- .../plugin/pack/utils/PackageZip.java | 2 +- spring-brick/pom.xml | 1 - .../gitee/starblues/annotation/Caller.java | 2 +- .../gitee/starblues/annotation/Extract.java | 2 +- .../gitee/starblues/annotation/Supplier.java | 2 +- .../core/DefaultPluginInsideInfo.java | 2 +- .../starblues/core/DefaultPluginManager.java | 2 +- .../core/DefaultRealizeProvider.java | 2 +- .../com/gitee/starblues/core/PluginInfo.java | 2 +- .../gitee/starblues/core/PluginInfoFace.java | 2 +- .../starblues/core/PluginInsideInfo.java | 2 +- .../starblues/core/PluginLauncherManager.java | 2 +- .../gitee/starblues/core/PluginManager.java | 2 +- .../com/gitee/starblues/core/PluginState.java | 2 +- .../gitee/starblues/core/RealizeProvider.java | 2 +- .../com/gitee/starblues/core/RuntimeMode.java | 2 +- .../checker/ComposePluginBasicChecker.java | 2 +- .../checker/ComposePluginLauncherChecker.java | 2 +- .../checker/DefaultPluginBasicChecker.java | 2 +- .../checker/DefaultPluginLauncherChecker.java | 2 +- .../DependencyPluginLauncherChecker.java | 2 +- .../core/checker/PluginBasicChecker.java | 2 +- .../core/checker/PluginLauncherChecker.java | 2 +- .../classloader/CacheMainResourceMatcher.java | 2 +- .../ComposeMainResourceMatcher.java | 2 +- .../DefaultMainResourceMatcher.java | 2 +- .../EmptyMainResourcePatternDefiner.java | 2 +- .../core/classloader/MainResourceMatcher.java | 2 +- .../MainResourcePatternDefiner.java | 2 +- .../NestedPluginJarResourceLoader.java | 6 +- .../core/classloader/PluginClassLoader.java | 2 +- .../PluginGeneralUrlClassLoader.java | 2 +- .../PluginResourceLoaderFactory.java | 2 +- .../PluginResourceLoaderFactoryProxy.java | 2 +- .../ProhibitMainResourceMatcher.java | 2 +- .../AbstractPluginDescriptorLoader.java | 2 +- .../descriptor/ComposeDescriptorLoader.java | 2 +- .../descriptor/DefaultDependencyPlugin.java | 2 +- .../DefaultInsidePluginDescriptor.java | 2 +- .../descriptor/DefaultPluginDescriptor.java | 2 +- .../descriptor/DevPluginDescriptorLoader.java | 2 +- .../descriptor/InsidePluginDescriptor.java | 2 +- .../core/descriptor/PluginDescriptor.java | 2 +- .../descriptor/PluginDescriptorLoader.java | 2 +- .../core/descriptor/PluginLibInfo.java | 2 +- .../descriptor/PluginResourcesConfig.java | 2 +- .../starblues/core/descriptor/PluginType.java | 2 +- .../ProdDirPluginDescriptorLoader.java | 2 +- .../ProdPackagePluginDescriptorLoader.java | 2 +- .../ProdPluginDescriptorLoader.java | 2 +- .../decrypt/EmptyPluginDescriptorDecrypt.java | 2 +- .../decrypt/PluginDescriptorDecrypt.java | 2 +- .../exception/PluginDecryptException.java | 2 +- .../exception/PluginDisabledException.java | 2 +- .../core/exception/PluginException.java | 2 +- .../PluginProhibitStopException.java | 2 +- .../JavaMainResourcePatternDefiner.java | 2 +- .../BasicMainResourcePatternDefiner.java | 2 +- .../launcher/plugin/CacheRegistryInfo.java | 2 +- .../DefaultMainResourcePatternDefiner.java | 15 +- .../plugin/DefaultPluginInteractive.java | 2 +- .../launcher/plugin/PluginInteractive.java | 2 +- .../plugin/PluginIsolationLauncher.java | 2 +- .../PluginMainResourcePatternDefiner.java | 2 +- .../launcher/plugin/PluginMethodRunner.java | 2 +- .../core/launcher/plugin/RegistryInfo.java | 2 +- .../plugin/SpringPluginHookWrapper.java | 2 +- .../involved/DefaultPluginLaunchInvolved.java | 2 +- .../PluginApplicationContextGetter.java | 2 +- .../plugin/involved/PluginLaunchInvolved.java | 2 +- .../involved/PluginLaunchInvolvedFactory.java | 2 +- .../core/scanner/BasePluginScanner.java | 2 +- .../core/scanner/ComposePathResolve.java | 2 +- .../core/scanner/DevPathResolve.java | 2 +- .../starblues/core/scanner/PathResolve.java | 2 +- .../starblues/core/scanner/PluginScanner.java | 2 +- .../core/scanner/ProdPathResolve.java | 2 +- .../core/version/SemverVersionInspector.java | 2 +- .../core/version/VersionInspector.java | 2 +- .../AutoIntegrationConfiguration.java | 2 +- .../DefaultIntegrationConfiguration.java | 2 +- .../integration/ExtendPointConfiguration.java | 2 +- .../ExtendPointWebConfiguration.java | 2 +- .../integration/IntegrationConfiguration.java | 2 +- .../integration/SpringBootPluginStarter.java | 2 +- .../AbstractPluginApplication.java | 2 +- .../application/AutoPluginApplication.java | 2 +- .../application/DefaultPluginApplication.java | 2 +- .../application/PluginApplication.java | 2 +- .../decrypt/DecryptConfiguration.java | 2 +- .../decrypt/DecryptPluginConfiguration.java | 2 +- .../listener/DefaultInitializerListener.java | 2 +- .../DefaultPluginListenerFactory.java | 2 +- .../listener/PluginInitializerListener.java | 2 +- .../PluginInitializerListenerFactory.java | 2 +- .../integration/listener/PluginListener.java | 2 +- .../listener/PluginListenerFactory.java | 2 +- .../integration/listener/SwaggerListener.java | 63 +++-- .../operator/DefaultPluginOperator.java | 2 +- .../integration/operator/PluginOperator.java | 2 +- .../operator/PluginOperatorWrapper.java | 2 +- .../upload/UploadByInputStreamParam.java | 2 +- .../upload/UploadByMultipartFileParam.java | 2 +- .../operator/upload/UploadParam.java | 2 +- .../integration/user/BeanWrapper.java | 2 +- .../integration/user/DefaultPluginUser.java | 2 +- .../integration/user/PluginUser.java | 2 +- .../starblues/spring/ApplicationContext.java | 2 +- .../spring/ApplicationContextProxy.java | 2 +- .../CacheJdkSameTypeParamProxyFactory.java | 2 +- .../spring/GenericApplicationContext.java | 2 +- .../spring/JdkSameTypeParamProxyFactory.java | 2 +- .../spring/MainApplicationContext.java | 2 +- .../spring/MainApplicationContextProxy.java | 2 +- .../gitee/starblues/spring/ProxyFactory.java | 2 +- .../ResolvePluginThreadClassLoader.java | 2 +- .../starblues/spring/SpringBeanFactory.java | 2 +- .../starblues/spring/SpringPluginHook.java | 2 +- .../com/gitee/starblues/spring/WebConfig.java | 2 +- .../environment/EmptyEnvironmentProvider.java | 2 +- .../environment/EnvironmentProvider.java | 2 +- .../MainSpringBootEnvironmentProvider.java | 2 +- .../environment/MapEnvironmentProvider.java | 2 +- .../spring/extract/DefaultExtractFactory.java | 2 +- .../extract/DefaultOpExtractFactory.java | 2 +- .../spring/extract/ExtractCoordinate.java | 2 +- .../spring/extract/ExtractFactory.java | 2 +- .../spring/extract/OpExtractFactory.java | 2 +- .../invoke/DefaultInvokeSupperCache.java | 2 +- .../spring/invoke/InvokeSupperCache.java | 2 +- .../starblues/spring/invoke/SupperCache.java | 2 +- .../starblues/spring/web/PluginResource.java | 2 +- .../web/PluginStaticResourceConfig.java | 2 +- .../web/PluginStaticResourceResolver.java | 2 +- .../PluginStaticResourceWebMvcConfigurer.java | 2 +- .../thymeleaf/PluginThymeleafInvolved.java | 2 +- .../spring/web/thymeleaf/ThymeleafConfig.java | 2 +- .../starblues/utils/AnnotationsUtils.java | 2 +- .../com/gitee/starblues/utils/ClassUtils.java | 2 +- .../com/gitee/starblues/utils/LogUtils.java | 2 +- .../com/gitee/starblues/utils/MsgUtils.java | 2 +- .../java/com/gitee/starblues/utils/Order.java | 2 +- .../gitee/starblues/utils/OrderPriority.java | 2 +- .../com/gitee/starblues/utils/OrderUtils.java | 2 +- .../starblues/utils/PluginConfigUtils.java | 2 +- .../starblues/utils/PluginFileUtils.java | 2 +- .../com/gitee/starblues/utils/ScanUtils.java | 2 +- .../utils/SpringBeanCustomUtils.java | 2 +- .../starblues/utils/SpringBeanUtils.java | 2 +- ...ultPluginIsolationLauncherCheckerTest.java | 2 +- .../version/SemverVersionInspectorTest.java | 2 +- 326 files changed, 1664 insertions(+), 724 deletions(-) create mode 100644 spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/Cache.java rename spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/{storage/SameRootResourceStorage.java => cache/CacheExpirationTrigger.java} (41%) create mode 100644 spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/DefaultCacheExpirationTrigger.java create mode 100644 spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/LRUMapCache.java create mode 100644 spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/CacheResource.java create mode 100644 spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/AbstractResourceStorage.java create mode 100644 spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheFastResourceStorage.java create mode 100644 spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheLowMemoryResourceStorage.java rename spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/{CacheResourceStorage.java => CachePerpetualResourceStorage.java} (35%) delete mode 100644 spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheReleasedResourceStorage.java diff --git a/LICENSE b/LICENSE index 7fd89d0..b6ed9b3 100644 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright [2019-2022] [starBlues] + Copyright [2019-Present] [starBlues] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/AutowiredTypeDefinerConfig.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/AutowiredTypeDefinerConfig.java index 2481c0b..68b9911 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/AutowiredTypeDefinerConfig.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/AutowiredTypeDefinerConfig.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/AutowiredTypeResolver.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/AutowiredTypeResolver.java index 31f3ae4..b4eb84f 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/AutowiredTypeResolver.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/AutowiredTypeResolver.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/ConfigurePluginEnvironment.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/ConfigurePluginEnvironment.java index fd30caf..69433a0 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/ConfigurePluginEnvironment.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/ConfigurePluginEnvironment.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/DefaultAutowiredTypeResolver.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/DefaultAutowiredTypeResolver.java index ef58144..441c56a 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/DefaultAutowiredTypeResolver.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/DefaultAutowiredTypeResolver.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/DefaultSpringPluginHook.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/DefaultSpringPluginHook.java index cfa5281..ef3fdc2 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/DefaultSpringPluginHook.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/DefaultSpringPluginHook.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptyMainApplicationContext.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptyMainApplicationContext.java index 2ae14ae..de6aa82 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptyMainApplicationContext.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptyMainApplicationContext.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptySpringBeanFactory.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptySpringBeanFactory.java index 98fd312..a62a214 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptySpringBeanFactory.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptySpringBeanFactory.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginApplicationContext.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginApplicationContext.java index 554a23f..722e1e6 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginApplicationContext.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginApplicationContext.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginContextHolder.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginContextHolder.java index 5a2506c..e381054 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginContextHolder.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginContextHolder.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginDisableAutoConfiguration.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginDisableAutoConfiguration.java index b126533..3f2e9a0 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginDisableAutoConfiguration.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginDisableAutoConfiguration.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginListableBeanFactory.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginListableBeanFactory.java index f3438b8..e20d0e6 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginListableBeanFactory.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginListableBeanFactory.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginOneselfInteractive.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginOneselfInteractive.java index f2af6bb..7fc0d3d 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginOneselfInteractive.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginOneselfInteractive.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginSpringApplication.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginSpringApplication.java index 90f17a2..c5a64e1 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginSpringApplication.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginSpringApplication.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginWebApplicationContext.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginWebApplicationContext.java index e566772..5103b0d 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginWebApplicationContext.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/PluginWebApplicationContext.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/ResolveHttpMessageConvertersConfiguration.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/ResolveHttpMessageConvertersConfiguration.java index 93e6d67..4fda4dc 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/ResolveHttpMessageConvertersConfiguration.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/ResolveHttpMessageConvertersConfiguration.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/SpringPluginBootstrap.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/SpringPluginBootstrap.java index 7cc9cdf..6b72302 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/SpringPluginBootstrap.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/SpringPluginBootstrap.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/DisablePluginWeb.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/DisablePluginWeb.java index 9662510..c4098d5 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/DisablePluginWeb.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/DisablePluginWeb.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/OneselfConfig.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/OneselfConfig.java index fdf095d..d51fb67 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/OneselfConfig.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/OneselfConfig.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/ResolveClassLoader.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/ResolveClassLoader.java index a93ffe0..f2617cd 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/ResolveClassLoader.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/annotation/ResolveClassLoader.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/coexist/CoexistAllowAutoConfiguration.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/coexist/CoexistAllowAutoConfiguration.java index 73355f6..4d8628c 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/coexist/CoexistAllowAutoConfiguration.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/coexist/CoexistAllowAutoConfiguration.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/coexist/CoexistResolveClassLoaderAspect.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/coexist/CoexistResolveClassLoaderAspect.java index 0d1b1df..df96584 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/coexist/CoexistResolveClassLoaderAspect.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/coexist/CoexistResolveClassLoaderAspect.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/launcher/BootstrapLauncher.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/launcher/BootstrapLauncher.java index 994ecc0..128d093 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/launcher/BootstrapLauncher.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/launcher/BootstrapLauncher.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/launcher/BootstrapLauncherFactory.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/launcher/BootstrapLauncherFactory.java index bc14d22..a40de52 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/launcher/BootstrapLauncherFactory.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/launcher/BootstrapLauncherFactory.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/launcher/CoexistBootstrapLauncher.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/launcher/CoexistBootstrapLauncher.java index 59868a6..dc226e6 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/launcher/CoexistBootstrapLauncher.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/launcher/CoexistBootstrapLauncher.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/launcher/DefaultBootstrapLauncherFactory.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/launcher/DefaultBootstrapLauncherFactory.java index 5fb5cef..6869072 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/launcher/DefaultBootstrapLauncherFactory.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/launcher/DefaultBootstrapLauncherFactory.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/launcher/IsolationBootstrapLauncher.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/launcher/IsolationBootstrapLauncher.java index 6618443..4a20305 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/launcher/IsolationBootstrapLauncher.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/launcher/IsolationBootstrapLauncher.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/listener/PluginApplicationWebEventListener.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/listener/PluginApplicationWebEventListener.java index 16cc288..cccd412 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/listener/PluginApplicationWebEventListener.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/listener/PluginApplicationWebEventListener.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ComposeSpringPluginProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ComposeSpringPluginProcessor.java index 3acd1e2..85a5667 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ComposeSpringPluginProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ComposeSpringPluginProcessor.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/DefaultProcessorContext.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/DefaultProcessorContext.java index 718612f..db6e4ef 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/DefaultProcessorContext.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/DefaultProcessorContext.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ExtractBeanProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ExtractBeanProcessor.java index 3f8983b..303f532 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ExtractBeanProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ExtractBeanProcessor.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/FrameDefineBeanProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/FrameDefineBeanProcessor.java index 17410e8..d61ecae 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/FrameDefineBeanProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/FrameDefineBeanProcessor.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/InvokeOtherPluginProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/InvokeOtherPluginProcessor.java index 95fa7aa..3888513 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/InvokeOtherPluginProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/InvokeOtherPluginProcessor.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ProcessorContext.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ProcessorContext.java index a6f8eec..15dd3df 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ProcessorContext.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ProcessorContext.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ProcessorException.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ProcessorException.java index 64e8d65..8dd7532 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ProcessorException.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ProcessorException.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/SpringPluginProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/SpringPluginProcessor.java index fd5cde5..5117f2b 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/SpringPluginProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/SpringPluginProcessor.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegister.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegister.java index fee3a78..7cd194f 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegister.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegister.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegistration.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegistration.java index 2bd75a1..6d32f85 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegistration.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegistration.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegistry.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegistry.java index e63667d..59dcade 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegistry.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/interceptor/PluginInterceptorRegistry.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/invoke/InvokeBeanFactory.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/invoke/InvokeBeanFactory.java index 8ac47aa..84a98f9 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/invoke/InvokeBeanFactory.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/invoke/InvokeBeanFactory.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/invoke/InvokeProxyHandler.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/invoke/InvokeProxyHandler.java index 14380f1..ece3735 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/invoke/InvokeProxyHandler.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/invoke/InvokeProxyHandler.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/oneself/ConfigureMainPluginEnvironment.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/oneself/ConfigureMainPluginEnvironment.java index 5fe34fb..ae81146 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/oneself/ConfigureMainPluginEnvironment.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/oneself/ConfigureMainPluginEnvironment.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/oneself/OneselfProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/oneself/OneselfProcessor.java index f320f7c..0667643 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/oneself/OneselfProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/oneself/OneselfProcessor.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/scanner/PluginClassPathBeanDefinitionScanner.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/scanner/PluginClassPathBeanDefinitionScanner.java index eec8ef2..045a9c0 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/scanner/PluginClassPathBeanDefinitionScanner.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/scanner/PluginClassPathBeanDefinitionScanner.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginControllerProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginControllerProcessor.java index ab20555..df3ba9c 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginControllerProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginControllerProcessor.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginInterceptorsProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginInterceptorsProcessor.java index 5d4b0e6..22bc9d3 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginInterceptorsProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginInterceptorsProcessor.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginSpringDocControllerProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginSpringDocControllerProcessor.java index 0ccb3ff..0092b99 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginSpringDocControllerProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginSpringDocControllerProcessor.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginStaticResourceProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginStaticResourceProcessor.java index 71fcf48..40e30a5 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginStaticResourceProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginStaticResourceProcessor.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/thymeleaf/PluginThymeleafProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/thymeleaf/PluginThymeleafProcessor.java index 35e7d9c..ddc6723 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/thymeleaf/PluginThymeleafProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/thymeleaf/PluginThymeleafProcessor.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/thymeleaf/ThymeleafConfigParse.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/thymeleaf/ThymeleafConfigParse.java index a46d9e7..ffc9b55 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/thymeleaf/ThymeleafConfigParse.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/thymeleaf/ThymeleafConfigParse.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/realize/AutowiredTypeDefiner.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/realize/AutowiredTypeDefiner.java index a81d519..7926a3d 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/realize/AutowiredTypeDefiner.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/realize/AutowiredTypeDefiner.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/realize/PluginCloseListener.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/realize/PluginCloseListener.java index bc07c43..b3401cd 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/realize/PluginCloseListener.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/realize/PluginCloseListener.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/realize/StopValidator.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/realize/StopValidator.java index 22108d4..2946e1d 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/realize/StopValidator.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/realize/StopValidator.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/AnnotationUtils.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/AnnotationUtils.java index 97c6247..23a579a 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/AnnotationUtils.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/AnnotationUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/DestroyUtils.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/DestroyUtils.java index 3bc5c7a..8b7763b 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/DestroyUtils.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/DestroyUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/ProcessorUtils.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/ProcessorUtils.java index 72c2f33..9fb4367 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/ProcessorUtils.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/ProcessorUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/SpringBeanUtils.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/SpringBeanUtils.java index eed8f8e..54b4c7c 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/SpringBeanUtils.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/utils/SpringBeanUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/common/AbstractDependencyPlugin.java b/spring-brick-common/src/main/java/com/gitee/starblues/common/AbstractDependencyPlugin.java index 2edd513..f5d4391 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/common/AbstractDependencyPlugin.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/common/AbstractDependencyPlugin.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/common/Constants.java b/spring-brick-common/src/main/java/com/gitee/starblues/common/Constants.java index 65d6756..e545c01 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/common/Constants.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/common/Constants.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/common/DependencyPlugin.java b/spring-brick-common/src/main/java/com/gitee/starblues/common/DependencyPlugin.java index e969e99..0fae35c 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/common/DependencyPlugin.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/common/DependencyPlugin.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/common/ManifestKey.java b/spring-brick-common/src/main/java/com/gitee/starblues/common/ManifestKey.java index 0b01c59..96f80a9 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/common/ManifestKey.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/common/ManifestKey.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/common/PackageStructure.java b/spring-brick-common/src/main/java/com/gitee/starblues/common/PackageStructure.java index 376ce4c..d1fbdaa 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/common/PackageStructure.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/common/PackageStructure.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/common/PackageType.java b/spring-brick-common/src/main/java/com/gitee/starblues/common/PackageType.java index 99b8fb2..66c5ada 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/common/PackageType.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/common/PackageType.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/common/PluginDescriptorKey.java b/spring-brick-common/src/main/java/com/gitee/starblues/common/PluginDescriptorKey.java index 7ff0687..106e210 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/common/PluginDescriptorKey.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/common/PluginDescriptorKey.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/AesPluginCipher.java b/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/AesPluginCipher.java index c6bb134..76d6c8d 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/AesPluginCipher.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/AesPluginCipher.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/PluginCipher.java b/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/PluginCipher.java index ebb5daa..b6abc4e 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/PluginCipher.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/PluginCipher.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/RsaPluginCipher.java b/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/RsaPluginCipher.java index 8a9756d..1c88129 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/RsaPluginCipher.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/common/cipher/RsaPluginCipher.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/utils/Assert.java b/spring-brick-common/src/main/java/com/gitee/starblues/utils/Assert.java index 98adbe0..41f6ca3 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/utils/Assert.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/utils/Assert.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/utils/CompareClassTypeUtils.java b/spring-brick-common/src/main/java/com/gitee/starblues/utils/CompareClassTypeUtils.java index 2f49944..550afe1 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/utils/CompareClassTypeUtils.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/utils/CompareClassTypeUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/utils/FieldFilter.java b/spring-brick-common/src/main/java/com/gitee/starblues/utils/FieldFilter.java index 76b431e..cdc5159 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/utils/FieldFilter.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/utils/FieldFilter.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/utils/FilesUtils.java b/spring-brick-common/src/main/java/com/gitee/starblues/utils/FilesUtils.java index 7235739..50c481d 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/utils/FilesUtils.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/utils/FilesUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/utils/ObjectUtils.java b/spring-brick-common/src/main/java/com/gitee/starblues/utils/ObjectUtils.java index ba8b958..fede520 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/utils/ObjectUtils.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/utils/ObjectUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/utils/ObjectValueUtils.java b/spring-brick-common/src/main/java/com/gitee/starblues/utils/ObjectValueUtils.java index 7114ece..ad9274d 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/utils/ObjectValueUtils.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/utils/ObjectValueUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/utils/PropertiesUtils.java b/spring-brick-common/src/main/java/com/gitee/starblues/utils/PropertiesUtils.java index 436934a..d2c2d86 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/utils/PropertiesUtils.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/utils/PropertiesUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/utils/ReflectionUtils.java b/spring-brick-common/src/main/java/com/gitee/starblues/utils/ReflectionUtils.java index 15f342f..4e7ec3d 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/utils/ReflectionUtils.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/utils/ReflectionUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/utils/ResourceUtils.java b/spring-brick-common/src/main/java/com/gitee/starblues/utils/ResourceUtils.java index 89c04a5..b059790 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/utils/ResourceUtils.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/utils/ResourceUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/utils/StringUtils.java b/spring-brick-common/src/main/java/com/gitee/starblues/utils/StringUtils.java index ed16d8d..6961d37 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/utils/StringUtils.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/utils/StringUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/utils/UrlUtils.java b/spring-brick-common/src/main/java/com/gitee/starblues/utils/UrlUtils.java index e4c7bdd..568a198 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/utils/UrlUtils.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/utils/UrlUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/DevelopmentMode.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/DevelopmentMode.java index 82d0029..347c082 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/DevelopmentMode.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/DevelopmentMode.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/LoaderConstant.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/LoaderConstant.java index 4ce0012..cf9da2c 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/LoaderConstant.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/LoaderConstant.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/PluginResourceStorage.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/PluginResourceStorage.java index 57d6991..7af081c 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/PluginResourceStorage.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/PluginResourceStorage.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/ClassLoaderTranslator.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/ClassLoaderTranslator.java index 3030b17..9a24c09 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/ClassLoaderTranslator.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/ClassLoaderTranslator.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/GeneralUrlClassLoader.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/GeneralUrlClassLoader.java index c7a07e6..8fcd39e 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/GeneralUrlClassLoader.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/GeneralUrlClassLoader.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/GenericClassLoader.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/GenericClassLoader.java index 226b25b..aaf7841 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/GenericClassLoader.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/GenericClassLoader.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/filter/ExcludeResource.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/filter/ExcludeResource.java index 237c4de..06ca2ca 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/filter/ExcludeResource.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/filter/ExcludeResource.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/filter/IncludeResource.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/filter/IncludeResource.java index e009123..5068fd1 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/filter/IncludeResource.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/filter/IncludeResource.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/Resource.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/Resource.java index 3d036a8..283ed3d 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/Resource.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/Resource.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,6 +23,7 @@ import java.net.URL; /** * 资源信息 * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public interface Resource extends AutoCloseable, Release { @@ -54,12 +55,9 @@ public interface Resource extends AutoCloseable, Release { byte[] getBytes(); /** - * 设置字节数 - * @param byteGetter byteGetter - * @throws Exception set byte 异常 + * 解决byte + * @throws Exception 处理资源字节异常 */ - void setBytes(ResourceByteGetter byteGetter) throws Exception; - - void release(); + void resolveByte() throws Exception; } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/ResourceByteGetter.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/ResourceByteGetter.java index e8b78f8..beab785 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/ResourceByteGetter.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/ResourceByteGetter.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ package com.gitee.starblues.loader.classloader.resource; * 资源 byte 得到者 * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public interface ResourceByteGetter { diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/Cache.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/Cache.java new file mode 100644 index 0000000..6e0fd83 --- /dev/null +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/Cache.java @@ -0,0 +1,92 @@ +/** + * Copyright [2019-Present] [starBlues] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.gitee.starblues.loader.classloader.resource.cache; + + +import java.util.function.Consumer; +import java.util.function.Supplier; + +/** + * 缓存接口 + * + * @author starBlues + * @since 3.1.1 + * @version 3.1.1 + */ +public interface Cache { + + /** + * 缓存数据 + * @param key 缓存的key + * @param value 缓存的值 + */ + void put(K key, V value); + + /** + * 缓存大小 + * @return int + */ + int size(); + + /** + * 是否存在缓存 + * @param key 缓存key + * @return true: 存在, false: 不存在 + */ + boolean containsKey(K key); + + /** + * 获取缓存值 + * @param key 缓存的key + * @return 缓存值, 不存在返回 null + */ + V get(K key); + + /** + * 得到缓存值。如果不存在放默认的 + * @param key 缓存的key + * @param supplier 默认值 + * @param defaultAdded 如果不存在, 默认的释放添加进入缓存中 + * @return V + */ + V getOrDefault(K key, Supplier supplier, boolean defaultAdded); + + /** + * 移除缓存 + * @param key 缓存的key + * @return 移除的值 + */ + V remove(K key); + + /** + * 清理过期的缓存 + * @return 清除的个数 + */ + int cleanExpired(); + + /** + * 清除全部缓存 + */ + void clear(); + + /** + * 依次删除 + * @param consumer 消费 + */ + void clear(Consumer consumer); + +} diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/SameRootResourceStorage.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/CacheExpirationTrigger.java similarity index 41% rename from spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/SameRootResourceStorage.java rename to spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/CacheExpirationTrigger.java index b53b935..6653637 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/SameRootResourceStorage.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/CacheExpirationTrigger.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,31 +14,50 @@ * limitations under the License. */ -package com.gitee.starblues.loader.classloader.resource.storage; +package com.gitee.starblues.loader.classloader.resource.cache; -import java.net.URL; +import java.util.function.Supplier; /** - * 抽象的资源存储 + * 缓存过期调度接口 * * @author starBlues - * @version 3.0.0 + * @since 3.1.1 + * @version 3.1.1 */ -public abstract class SameRootResourceStorage implements ResourceStorage { +public interface CacheExpirationTrigger { - protected final URL baseUrl; + /** + * 添加缓存过期调度 + * @param key 缓存的key + * @param cache 缓存对象 + */ + void addCache(String key, Cache cache); + + /*** + * 获取缓存 + * @param key 缓存的key + * @param cacheSupplier 不存在时提供, 并add到缓存中 + * @return 缓存 + * @param K + * @param V + */ + Cache getCache(String key, Supplier> cacheSupplier); - public SameRootResourceStorage(URL baseUrl) { - this.baseUrl = baseUrl; - } + /** + * 移除缓存过期调度 + * @param key 缓存的key + */ + void removeCache(String key); /** - * 获取 base url - * @return URL + * 启动调度 */ - public URL getBaseUrl() { - return baseUrl; - } + void start(); + /** + * 停止调度 + */ + void stop(); } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/DefaultCacheExpirationTrigger.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/DefaultCacheExpirationTrigger.java new file mode 100644 index 0000000..93f92a5 --- /dev/null +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/DefaultCacheExpirationTrigger.java @@ -0,0 +1,113 @@ +/** + * Copyright [2019-Present] [starBlues] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.gitee.starblues.loader.classloader.resource.cache; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; +import java.util.function.Supplier; + +/** + * 默认缓存过期调度实现 + * + * @author starBlues + * @since 3.1.1 + * @version 3.1.1 + */ +public class DefaultCacheExpirationTrigger implements CacheExpirationTrigger{ + + private final Map> cacheMap = new ConcurrentHashMap<>(); + + private ScheduledExecutorService scheduledExecutor; + + private static volatile DefaultCacheExpirationTrigger TRIGGER; + + private final long delay; + private final TimeUnit unit; + + private DefaultCacheExpirationTrigger(long delay, TimeUnit unit){ + this.delay = delay; + this.unit = unit; + start(); + } + + public static CacheExpirationTrigger getCacheExpirationTrigger(long delay, TimeUnit unit){ + if (TRIGGER == null){ + synchronized(DefaultCacheExpirationTrigger.class){ + TRIGGER = new DefaultCacheExpirationTrigger(delay, unit); + } + } + return TRIGGER; + } + + @Override + public synchronized void addCache(String key, Cache cache) { + if(cacheMap.containsKey(key)){ + throw new IllegalStateException(key + " already exists!"); + } + cacheMap.put(key, cache); + } + + @SuppressWarnings("unchecked") + @Override + public synchronized Cache getCache(String key, Supplier> cacheSupplier) { + Cache cache = cacheMap.get(key); + if(cache == null){ + Cache supplier = cacheSupplier.get(); + if(supplier == null){ + return null; + } + cacheMap.put(key, supplier); + return supplier; + } else { + return (Cache) cache; + } + } + + @Override + public synchronized void removeCache(String key) { + cacheMap.remove(key); + } + + @Override + public synchronized void start() { + scheduledExecutor = Executors.newSingleThreadScheduledExecutor(); + scheduledExecutor.scheduleWithFixedDelay(this::cleanUp, delay, delay, unit); + } + + @Override + public synchronized void stop() { + scheduledExecutor.shutdownNow(); + } + + private void cleanUp(){ + if(cacheMap.isEmpty()){ + return; + } + cacheMap.forEach((k,v)->{ + try { + int i = v.cleanExpired(); + System.out.println(k + "清除缓存: " + i); + } catch (Exception e){ + // log.warn("Checking clean cache:{} Exceptions. {}", k, e.getMessage()); + } + }); + } + +} diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/LRUMapCache.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/LRUMapCache.java new file mode 100644 index 0000000..c6ebac9 --- /dev/null +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/LRUMapCache.java @@ -0,0 +1,258 @@ +/** + * Copyright [2019-Present] [starBlues] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.gitee.starblues.loader.classloader.resource.cache; + +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.locks.StampedLock; +import java.util.function.Consumer; +import java.util.function.Supplier; + +/** + * LRU 缓存实现 + * + * @author starBlues + * @since 3.1.1 + * @version 3.1.1 + */ +public class LRUMapCache implements Cache{ + + private final Map> cacheMap; + + private final StampedLock lock = new StampedLock(); + + private final int size; + private final long timeout; + + public LRUMapCache(int size, long timeout){ + this.size = size; + this.timeout = timeout; + this.cacheMap = new CacheLinkedHashMap>(size); + } + + @Override + public void put(K key, V value) { + long stamp = lock.writeLock(); + try { + Entity entity = new Entity<>(value, timeout); + if (isFull(key)) { + cleanExpired(false); + } + cacheMap.put(key, entity); + } finally { + lock.unlockWrite(stamp); + } + } + + @Override + public int size() { + return cacheMap.size(); + } + + @Override + public boolean containsKey(K key) { + return get(key) != null; + } + + @Override + public V get(K key) { + long stamp = lock.tryOptimisticRead(); + Entity entity = cacheMap.get(key); + if(!lock.validate(stamp)){ + stamp = lock.readLock(); + try { + entity = cacheMap.get(key); + } finally { + lock.unlockRead(stamp); + } + } + if(entity != null){ + if(entity.isExpired()){ + remove(key); + return null; + } + return entity.getValue(); + } + return null; + } + + @Override + public V getOrDefault(K key, Supplier supplier, boolean defaultAdded) { + long stamp = lock.tryOptimisticRead(); + Entity entity = cacheMap.get(key); + if(!lock.validate(stamp)){ + stamp = lock.readLock(); + try { + entity = cacheMap.get(key); + } finally { + lock.unlockRead(stamp); + } + } + if(entity != null){ + if(entity.isExpired()){ + remove(key); + } else { + return entity.getValue(); + } + } + + V v = supplier.get(); + if(v != null){ + if(defaultAdded){ + put(key, v); + } + } + return v; + } + + @Override + public V remove(K key) { + long stamp = lock.writeLock(); + try { + Entity cacheValue = cacheMap.remove(key); + if (cacheValue != null) { + return cacheValue.getValue(); + } else { + return null; + } + } finally { + lock.unlockWrite(stamp); + } + } + + @Override + public void clear() { + clear(null); + } + + @Override + public void clear(Consumer consumer) { + long stamp = lock.writeLock(); + try { + if(consumer == null){ + cacheMap.clear(); + return; + } + Iterator>> iterator = cacheMap.entrySet().iterator(); + while (iterator.hasNext()){ + try { + Map.Entry> entityEntry = iterator.next(); + Entity value = entityEntry.getValue(); + if(value == null){ + iterator.remove(); + continue; + } + V v = value.getValue(); + if(v == null){ + iterator.remove(); + continue; + } + consumer.accept(v); + } catch (Exception e){ + // 忽略 + } + } + } finally { + lock.unlockWrite(stamp); + } + } + + @Override + public int cleanExpired() { + return cleanExpired(true); + } + + private boolean isFull(K key) { + if (size == 0) { + return false; + } + if(cacheMap.size() < size){ + return false; + } + return !cacheMap.containsKey(key); + } + + public int cleanExpired(boolean isLock) { + if(!isLock){ + cacheMap.values().removeIf(Entity::isExpired); + return 0; + } + long stamp = lock.writeLock(); + try { + AtomicInteger count = new AtomicInteger(0); + cacheMap.values().removeIf(v->{ + if(v.isExpired()){ + count.addAndGet(1); + return true; + } else { + return false; + } + }); + return count.get(); + } finally { + lock.unlockWrite(stamp); + } + } + + private static class CacheLinkedHashMap extends LinkedHashMap{ + + private final int size; + + private CacheLinkedHashMap(int size) { + super(size + 1, 1.0f, true); + this.size = size; + } + + @Override + protected boolean removeEldestEntry(Map.Entry eldest) { + if (size == 0) { + return false; + } + return size() > size; + } + } + + private static class Entity { + + private final V value; + private final long ttl; + private long lastAccessTimestamp; + + public Entity(V value, long ttl) { + this.value = value; + this.ttl = ttl; + + this.lastAccessTimestamp = System.currentTimeMillis(); + } + + public boolean isExpired() { + if (ttl == 0) { + return false; + } + return lastAccessTimestamp + ttl < System.currentTimeMillis(); + } + + public V getValue() { + lastAccessTimestamp = System.currentTimeMillis(); + return value; + } + + } + +} diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/AbstractResourceLoader.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/AbstractResourceLoader.java index 8cbdba9..68a5fa5 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/AbstractResourceLoader.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/AbstractResourceLoader.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,7 +19,6 @@ package com.gitee.starblues.loader.classloader.resource.loader; import com.gitee.starblues.loader.classloader.resource.storage.ResourceStorage; import com.gitee.starblues.loader.utils.IOUtils; -import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.URL; @@ -56,8 +55,8 @@ public abstract class AbstractResourceLoader implements ResourceLoader{ throw new Exception(this.getClass().getName()+": 已经初始化了, 不能再初始化!"); } try { - // 添加root 路径 - resourceStorage.add("/", baseUrl); + // 添加root 资源 + resourceStorage.add(new DefaultResource("/", baseUrl, baseUrl)); loadOfChild(resourceStorage); } finally { loaded = true; diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/CacheResource.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/CacheResource.java new file mode 100644 index 0000000..e042678 --- /dev/null +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/CacheResource.java @@ -0,0 +1,71 @@ +/** + * Copyright [2019-Present] [starBlues] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.gitee.starblues.loader.classloader.resource.loader; + +import com.gitee.starblues.loader.classloader.resource.ResourceByteGetter; + +import java.net.URL; +import java.util.Arrays; + +/** + * 可缓存的资源 + * + * @author starBlues + * @since 3.1.1 + * @version 3.1.1 + */ +public class CacheResource extends DefaultResource { + + protected byte[] bytes; + private ResourceByteGetter byteGetter; + + public CacheResource(String name, URL baseUrl, URL url) { + this(name, baseUrl, url, null); + } + + public CacheResource(String name, URL baseUrl, URL url, ResourceByteGetter byteGetter) { + super(name, baseUrl, url); + setBytes(byteGetter); + } + + public void setBytes(ResourceByteGetter byteGetter) { + this.byteGetter = byteGetter; + } + + @Override + public byte[] getBytes() { + return bytes; + } + + @Override + public void resolveByte() throws Exception{ + if(byteGetter != null){ + bytes = byteGetter.get(); + } + } + + @Override + public void close() throws Exception { + release(); + } + + @Override + public void release() { + Arrays.fill(bytes, (byte) 0); + bytes = null; + } +} diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/ClassPathLoader.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/ClassPathLoader.java index ad659bb..3ba8b84 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/ClassPathLoader.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/ClassPathLoader.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,7 +19,6 @@ import com.gitee.starblues.loader.classloader.resource.Resource; import com.gitee.starblues.loader.classloader.resource.storage.ResourceStorage; import java.io.File; -import java.io.FileInputStream; import java.net.MalformedURLException; import java.net.URL; import java.nio.file.Files; @@ -88,13 +87,15 @@ public class ClassPathLoader extends AbstractResourceLoader { } private void addResource(ResourceStorage resourceStorage, File file, String packageName) throws Exception { - resourceStorage.add(packageName, new URL(url.toString() + packageName), ()->{ + CacheResource cacheResource = new CacheResource(packageName, url, new URL(url.toString() + packageName)); + cacheResource.setBytes(()->{ if(file.exists() && file.isFile()){ return getClassBytes(file.getPath(), Files.newInputStream(file.toPath()), true); } else { return null; } }); + resourceStorage.add(cacheResource); } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/DefaultResource.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/DefaultResource.java index 2fa6e7a..3eeebe8 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/DefaultResource.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/DefaultResource.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,6 @@ package com.gitee.starblues.loader.classloader.resource.loader; import com.gitee.starblues.loader.classloader.resource.Resource; -import com.gitee.starblues.loader.classloader.resource.ResourceByteGetter; import java.net.URL; @@ -60,8 +59,8 @@ public class DefaultResource implements Resource { } @Override - public void setBytes(ResourceByteGetter byteGetter) throws Exception{ - // 忽略 + public void resolveByte() throws Exception{ + } @Override diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/DefaultResourceLoaderFactory.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/DefaultResourceLoaderFactory.java index f3888e4..87a051d 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/DefaultResourceLoaderFactory.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/DefaultResourceLoaderFactory.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,9 +18,7 @@ package com.gitee.starblues.loader.classloader.resource.loader; import com.gitee.starblues.loader.classloader.resource.Resource; import com.gitee.starblues.loader.classloader.resource.storage.ResourceStorage; -import com.gitee.starblues.loader.classloader.resource.storage.SameRootResourceStorage; import com.gitee.starblues.loader.launcher.isolation.ResourceLoaderFactoryGetter; -import com.gitee.starblues.loader.utils.IOUtils; import com.gitee.starblues.loader.utils.ResourceUtils; import java.io.File; @@ -30,7 +28,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.*; -import java.util.concurrent.ConcurrentHashMap; /** * 默认的资源加载工厂 @@ -41,12 +38,10 @@ import java.util.concurrent.ConcurrentHashMap; */ public class DefaultResourceLoaderFactory implements ResourceLoaderFactory{ - private final Map resourceLoaderMap = new ConcurrentHashMap<>(); - - private final String classLoaderName; + private final ResourceStorage resourceStorage; public DefaultResourceLoaderFactory(String classLoaderName) { - this.classLoaderName = classLoaderName; + resourceStorage = ResourceLoaderFactoryGetter.getResourceStorage(classLoaderName); } @Override @@ -97,14 +92,8 @@ public class DefaultResourceLoaderFactory implements ResourceLoaderFactory{ @Override public void addResource(Resource resource) throws Exception { - SameRootResourceStorage resourceStorage = resourceLoaderMap.get(resource.getBaseUrl()); - if (resourceStorage == null) { - resourceStorage = ResourceLoaderFactoryGetter.getResourceStorage( - classLoaderName, - resource.getBaseUrl()); - resourceLoaderMap.put(resource.getBaseUrl(), resourceStorage); - } - resourceStorage.add(resource.getName(), resource.getUrl(), resource::getBytes); + resourceStorage.addBaseUrl(resource.getBaseUrl()); + resourceStorage.add(resource); } @Override @@ -112,106 +101,37 @@ public class DefaultResourceLoaderFactory implements ResourceLoaderFactory{ if(resourceLoader == null){ return; } - SameRootResourceStorage resourceStorage = resourceLoaderMap.get(resourceLoader.getBaseUrl()); - if (resourceStorage != null) { - return; - } - resourceStorage = ResourceLoaderFactoryGetter.getResourceStorage( - classLoaderName, - resourceLoader.getBaseUrl()); + resourceStorage.addBaseUrl(resourceLoader.getBaseUrl()); resourceLoader.load(resourceStorage); - resourceLoaderMap.put(resourceLoader.getBaseUrl(), resourceStorage); } @Override public Resource findFirstResource(String name) { - for (Map.Entry entry : resourceLoaderMap.entrySet()) { - ResourceStorage resourceStorage = entry.getValue(); - Resource resource = resourceStorage.get(name); - if(resource != null){ - return resource; - } - } - return null; + return resourceStorage.getFirst(name); } @Override public Enumeration findAllResource(String name) { - return new Enumeration() { - private final List list = new ArrayList<>(resourceLoaderMap.values()); - private int index = 0; - private Resource resource = null; - - @Override - public boolean hasMoreElements() { - return next(); - } - - @Override - public Resource nextElement() { - if (!next()) { - throw new NoSuchElementException(); - } - Resource r = resource; - resource = null; - return r; - } - - private boolean next() { - if (resource != null) { - return true; - } else { - SameRootResourceStorage resourceStorage; - while (index < list.size()){ - resourceStorage = list.get(index++); - resource = getResource(resourceStorage); - if(resource != null){ - return true; - } - } - return false; - } - } - - private Resource getResource(SameRootResourceStorage resourceStorage){ - resource = resourceStorage.get(name); - if(resource != null){ - return resource; - } - return null; - } - }; + return resourceStorage.get(name); } @Override public InputStream getInputStream(String name) { - for (Map.Entry entry : resourceLoaderMap.entrySet()) { - ResourceStorage resourceStorage = entry.getValue(); - InputStream inputStream = resourceStorage.getInputStream(name); - if(inputStream != null){ - return inputStream; - } - } - return null; + return resourceStorage.getFirstInputStream(name); } @Override public List getUrls() { - return new ArrayList<>(resourceLoaderMap.keySet()); + return resourceStorage.getBaseUrl(); } @Override public void close() throws Exception { - for (ResourceStorage resourceStorage : resourceLoaderMap.values()) { - IOUtils.closeQuietly(resourceStorage); - } - resourceLoaderMap.clear(); + resourceStorage.close(); } @Override - public void release() { - for (SameRootResourceStorage resourceStorage : resourceLoaderMap.values()) { - ResourceUtils.release(resourceStorage); - } + public void release() throws Exception{ + resourceStorage.release(); } } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/JarResourceLoader.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/JarResourceLoader.java index 5f99f44..48c4132 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/JarResourceLoader.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/JarResourceLoader.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -80,9 +80,10 @@ public class JarResourceLoader extends AbstractResourceLoader { if(includeResource.include(jarEntry)){ String name = resolveName(jarEntry.getName()); URL url = new URL(baseUrl.toString() + name); - resourceStorage.add(name, url, ()->{ + CacheResource cacheResource = new CacheResource(name, baseUrl, url, ()->{ return getClassBytes(name, jarInputStream, false); }); + resourceStorage.add(cacheResource); jarInputStream.closeEntry(); } } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/MainJarResourceLoader.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/MainJarResourceLoader.java index c1675b0..f9330de 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/MainJarResourceLoader.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/MainJarResourceLoader.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/ResourceLoader.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/ResourceLoader.java index 7b722d7..a5262ad 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/ResourceLoader.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/ResourceLoader.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/ResourceLoaderFactory.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/ResourceLoaderFactory.java index dfadddb..2036861 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/ResourceLoaderFactory.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/loader/ResourceLoaderFactory.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,6 @@ package com.gitee.starblues.loader.classloader.resource.loader; import com.gitee.starblues.loader.classloader.resource.Resource; -import com.gitee.starblues.loader.classloader.resource.storage.ResourceStorage; import com.gitee.starblues.loader.utils.Release; import java.io.File; diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/AbstractResourceStorage.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/AbstractResourceStorage.java new file mode 100644 index 0000000..924633d --- /dev/null +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/AbstractResourceStorage.java @@ -0,0 +1,245 @@ +/** + * Copyright [2019-Present] [starBlues] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.gitee.starblues.loader.classloader.resource.storage; + +import com.gitee.starblues.loader.classloader.resource.Resource; +import com.gitee.starblues.loader.classloader.resource.loader.DefaultResource; +import com.gitee.starblues.loader.utils.IOUtils; +import com.gitee.starblues.loader.utils.ObjectUtils; +import com.gitee.starblues.loader.utils.ResourceUtils; + +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.util.*; + +/** + * 抽象的资源存储 + * + * @author starBlues + * @since 3.0.0 + * @version 3.1.1 + */ +public abstract class AbstractResourceStorage implements ResourceStorage { + + private final Set baseUrls = new HashSet<>(); + private final ArrayDeque hotUrls = new ArrayDeque<>(); + private final List inputStreams = new ArrayList<>(); + + @Override + public void addBaseUrl(URL url){ + if(url == null){ + return; + } + synchronized (baseUrls){ + baseUrls.add(url); + } + } + + @Override + public List getBaseUrl(){ + synchronized (baseUrls){ + return Collections.unmodifiableList(new ArrayList<>(baseUrls)); + } + } + + + @Override + public final void add(Resource resource) throws Exception { + addResource(resource); + } + + @Override + public void close() throws Exception { + for (InputStream inputStream : inputStreams) { + IOUtils.closeQuietly(inputStream); + } + inputStreams.clear(); + baseUrls.clear(); + } + + /** + * 子类添加资源 + * @param resource 资源 + * @throws Exception 添加移除 + */ + protected abstract void addResource(Resource resource) throws Exception; + + /** + * 格式化资源名称 + * @param name 资源名称 + * @return String + */ + protected final String formatResourceName(String name) { + return ResourceUtils.formatStandardName(name); + } + + protected final InputStream openStream(Resource resource){ + if(resource == null){ + return null; + } + try { + InputStream inputStream = resource.getUrl().openStream(); + inputStreams.add(inputStream); + return inputStream; + } catch (IOException e) { + e.printStackTrace(); + return null; + } + } + + protected final Enumeration openStream(Enumeration resources){ + if(resources == null){ + return Collections.emptyEnumeration(); + } + return new Enumeration() { + @Override + public boolean hasMoreElements() { + return resources.hasMoreElements(); + } + + @Override + public InputStream nextElement() { + Resource resource = resources.nextElement(); + return openStream(resource); + } + }; + } + + protected final void closeResources(List resources){ + if(ObjectUtils.isEmpty(resources)){ + return; + } + for (Resource resource : resources) { + IOUtils.closeQuietly(resource); + } + resources.clear(); + } + + protected final synchronized Resource searchResource(String name) { + Set searchUrl = new HashSet<>(); + URL matchBaseUrl = null; + URL matchExistUrl = null; + // TODO 还需优化 + while (true){ + URL baseUrl = hotUrls.pollFirst(); + if(baseUrl == null){ + break; + } + searchUrl.add(baseUrl); + URL existUrl = ResourceUtils.getExistUrl(baseUrl, name); + if(existUrl != null){ + matchBaseUrl = baseUrl; + matchExistUrl = existUrl; + hotUrls.addFirst(baseUrl); + break; + } + } + + if(matchBaseUrl == null){ + List baseUrls = getBaseUrl(); + for (URL baseUrl : baseUrls) { + if(searchUrl.contains(baseUrl)){ + continue; + } + URL existUrl = ResourceUtils.getExistUrl(baseUrl, name); + if(existUrl != null){ + matchBaseUrl = baseUrl; + matchExistUrl = existUrl; + hotUrls.addFirst(baseUrl); + break; + } + } + } + if(matchBaseUrl != null){ + try { + Resource resource = new DefaultResource(name, matchBaseUrl, matchExistUrl); + addResource(resource); + return resource; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + return null; + } + + protected final Enumeration searchResources(String name){ + List baseUrls = getBaseUrl(); + return new InternalEnumeration(baseUrls, name); + } + + + private class InternalEnumeration implements Enumeration{ + + private final List baseUrls; + private final String name; + + private int index = 0; + private Resource resource = null; + + private InternalEnumeration(List baseUrls, String name) { + this.baseUrls = baseUrls; + this.name = name; + } + + @Override + public boolean hasMoreElements() { + return next(); + } + @Override + public Resource nextElement() { + if (!next()) { + throw new NoSuchElementException(); + } + Resource r = resource; + resource = null; + return r; + } + private boolean next() { + if (resource != null) { + return true; + } else { + URL baseUrl; + while (index < baseUrls.size()){ + baseUrl = baseUrls.get(index++); + resource = getResource(baseUrl); + if(resource != null){ + return true; + } + } + return false; + } + } + + private Resource getResource(URL baseUrl){ + URL existUrl = ResourceUtils.getExistUrl(baseUrl, name); + if(existUrl == null){ + return null; + } + Resource resource = new DefaultResource(name, baseUrl, existUrl); + try { + addResource(resource); + } catch (Exception e){ + // 忽略异常 + } + return resource; + } + } + +} diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheFastResourceStorage.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheFastResourceStorage.java new file mode 100644 index 0000000..4e014e9 --- /dev/null +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheFastResourceStorage.java @@ -0,0 +1,150 @@ +/** + * Copyright [2019-Present] [starBlues] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.gitee.starblues.loader.classloader.resource.storage; + +import com.gitee.starblues.loader.classloader.resource.Resource; +import com.gitee.starblues.loader.classloader.resource.cache.Cache; +import com.gitee.starblues.loader.classloader.resource.cache.DefaultCacheExpirationTrigger; +import com.gitee.starblues.loader.classloader.resource.cache.LRUMapCache; +import com.gitee.starblues.loader.utils.IOUtils; +import com.gitee.starblues.loader.utils.ObjectUtils; +import com.gitee.starblues.loader.utils.ResourceUtils; + +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Enumeration; +import java.util.List; +import java.util.concurrent.TimeUnit; + +/** + * 快速且可缓存的资源存储者 + * 优点: 释放前速度比较快, 释放后可根据LRU缓存机制进行缓存 + * 缺点: 释放前占用内存比较高 + * + * @author starBlues + * @since 3.1.1 + * @version 3.1.1 + */ +public class CacheFastResourceStorage extends AbstractResourceStorage { + + protected final Cache> resourceStorage; + private final ResourceStorage cacheResourceStorage; + + private final List inputStreams = new ArrayList<>(); + + private volatile boolean release = false; + + public CacheFastResourceStorage(String key) { + this.cacheResourceStorage = new CachePerpetualResourceStorage(); + // 最大 1000 个, 最长 3 分钟 + resourceStorage = DefaultCacheExpirationTrigger.getCacheExpirationTrigger(3, TimeUnit.MINUTES) + .getCache(key, () -> new LRUMapCache>(1000, 180000)); + } + + @Override + protected void addResource(Resource resource) throws Exception { + if(!release){ + cacheResourceStorage.add(resource); + return; + } + resource.resolveByte(); + String name = formatResourceName(resource.getName()); + // TODO 多缓存处理 + List resources = resourceStorage.getOrDefault(name, ArrayList::new, true); + resources.add(resource); + } + + @Override + public boolean exist(String name) { + if(!release){ + return cacheResourceStorage.exist(name); + } + return getFirst(name) != null; + } + + @Override + public Resource getFirst(String name) { + if(!release){ + return cacheResourceStorage.getFirst(name); + } + if(ObjectUtils.isEmpty(name)){ + return null; + } + name = formatResourceName(name); + List resources = resourceStorage.get(name); + if(!ObjectUtils.isEmpty(resources)){ + return resources.get(0); + } + return searchResource(name); + } + + @Override + public Enumeration get(String name) { + if(!release){ + return cacheResourceStorage.get(name); + } + if(ObjectUtils.isEmpty(name)){ + return Collections.emptyEnumeration(); + } + name = formatResourceName(name); + List resources = resourceStorage.get(name); + if(!ObjectUtils.isEmpty(resources)){ + return Collections.enumeration(resources); + } + return searchResources(name); + } + + @Override + public InputStream getFirstInputStream(String name) { + Resource resource = getFirst(name); + return openStream(resource); + } + + @Override + public Enumeration getInputStream(String name) { + if(!release){ + return cacheResourceStorage.getInputStream(name); + } + Enumeration resources = get(name); + if(!ObjectUtils.isEmpty(resources)){ + return openStream(resources); + } + Enumeration searchResources = searchResources(name); + return openStream(searchResources); + } + + @Override + public synchronized void release() throws Exception { + if(!release){ + IOUtils.closeQuietly(cacheResourceStorage); + } + resourceStorage.cleanExpired(); + release = true; + } + + @Override + public void close() throws Exception { + resourceStorage.clear(ResourceUtils::release); + for (InputStream inputStream : inputStreams) { + IOUtils.closeQuietly(inputStream); + } + inputStreams.clear(); + } + + +} diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheLowMemoryResourceStorage.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheLowMemoryResourceStorage.java new file mode 100644 index 0000000..a03d90c --- /dev/null +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheLowMemoryResourceStorage.java @@ -0,0 +1,148 @@ +/** + * Copyright [2019-Present] [starBlues] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.gitee.starblues.loader.classloader.resource.storage; + +import com.gitee.starblues.loader.classloader.resource.Resource; +import com.gitee.starblues.loader.classloader.resource.cache.Cache; +import com.gitee.starblues.loader.classloader.resource.cache.DefaultCacheExpirationTrigger; +import com.gitee.starblues.loader.classloader.resource.cache.LRUMapCache; +import com.gitee.starblues.loader.utils.ObjectUtils; +import com.gitee.starblues.loader.utils.ResourceUtils; + +import java.io.InputStream; +import java.net.URL; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.TimeUnit; + +/** + * 直接可缓存的资源存储, + * 优点: 释放前占用内存做了限制, 不会占用太高, 处于占用内存比较低, 且可根据LRU缓存机制进行缓存 + * 缺点: 如果缓存未命中, 速度比较慢 + * + * @author starBlues + * @since 3.1.1 + * @version 3.1.1 + */ +@Deprecated +public class CacheLowMemoryResourceStorage extends AbstractResourceStorage { + + protected final Map>> resourceStorage = new ConcurrentHashMap<>(); + + public CacheLowMemoryResourceStorage(String key) { + } + + @Override + public void addBaseUrl(URL url) { + super.addBaseUrl(url); + String key = url.toString(); + if(!resourceStorage.containsKey(key)){ + Cache> cache = DefaultCacheExpirationTrigger.getCacheExpirationTrigger(3, TimeUnit.MINUTES) + .getCache(key, () -> new LRUMapCache>(10000, 180000)); + resourceStorage.put(key, cache); + } + } + + private Cache> getCache(URL baseUrl){ + String key = baseUrl.toString(); + Cache> cache = resourceStorage.get(key); + if(cache != null){ + return cache; + } + cache = DefaultCacheExpirationTrigger.getCacheExpirationTrigger(3, TimeUnit.MINUTES) + .getCache(key, () -> new LRUMapCache>(1000, 180000)); + resourceStorage.put(key, cache); + return cache; + } + + @Override + protected void addResource(Resource resource) throws Exception { + String name = formatResourceName(resource.getName()); + List resources = getCache(resource.getBaseUrl()).getOrDefault(name, ArrayList::new, true); + resources.add(resource); + } + + @Override + public boolean exist(String name) { + return get(name) != null; + } + + @Override + public Resource getFirst(String name) { + if(ObjectUtils.isEmpty(name)){ + return null; + } + name = formatResourceName(name); + for (Cache> cache : resourceStorage.values()) { + List resources = cache.get(name); + if(!ObjectUtils.isEmpty(resources)){ + return resources.get(0); + } + } + return searchResource(name); + } + + @Override + public Enumeration get(String name) { + List resources1 = new ArrayList<>(); + for (Cache> cache : resourceStorage.values()) { + List resources = cache.get(name); + if(!ObjectUtils.isEmpty(resources)){ + resources1.addAll(resources); + } + } + if(!resources1.isEmpty()){ + return Collections.enumeration(resources1); + } + return searchResources(name); + } + + @Override + public InputStream getFirstInputStream(String name) { + Resource resource = getFirst(name); + if(resource == null){ + return null; + } + return openStream(resource); + } + + @Override + public Enumeration getInputStream(String name) { + Enumeration resources = searchResources(name); + return openStream(resources); + } + + @Override + public synchronized void release() throws Exception { + for (Cache> value : resourceStorage.values()) { + value.clear(ResourceUtils::release); + } + resourceStorage.clear(); + } + + @Override + public void close() throws Exception { + //resourceStorage.clear(ResourceUtils::release); + super.close(); + release(); +// for (List resources : resourceStorage.values()) { +// ResourceUtils.release(resources); +// } + } + + +} diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheResourceStorage.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CachePerpetualResourceStorage.java similarity index 35% rename from spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheResourceStorage.java rename to spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CachePerpetualResourceStorage.java index 3486a6d..bebd310 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheResourceStorage.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CachePerpetualResourceStorage.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,54 +16,31 @@ package com.gitee.starblues.loader.classloader.resource.storage; -import com.gitee.starblues.loader.classloader.resource.loader.DefaultResource; import com.gitee.starblues.loader.classloader.resource.Resource; -import com.gitee.starblues.loader.classloader.resource.ResourceByteGetter; -import com.gitee.starblues.loader.utils.IOUtils; import com.gitee.starblues.loader.utils.ObjectUtils; -import com.gitee.starblues.loader.utils.ResourceUtils; -import java.io.IOException; import java.io.InputStream; -import java.net.URL; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; /** - * 默认的资源存储者 + * 永久缓存 + * 优点: 速度快 + * 缺点: 占用内存很高 * * @author starBlues * @since 3.0.0 * @version 3.1.1 */ -public class CacheResourceStorage extends SameRootResourceStorage{ +public class CachePerpetualResourceStorage extends AbstractResourceStorage { - protected final Map resourceStorage = new ConcurrentHashMap<>(); - - private final List inputStreams = new ArrayList<>(); - - public CacheResourceStorage(URL baseUrl) { - super(baseUrl); - } + protected final Map> resourceStorage = new ConcurrentHashMap<>(); @Override - public void add(String name, URL url, ResourceByteGetter byteGetter) throws Exception{ - name = formatResourceName(name); - if(resourceStorage.containsKey(name)){ - return; - } - CacheResource cacheResource = new CacheResource(name, baseUrl, url); - cacheResource.setBytes(byteGetter); - addResource(name, cacheResource); - } - - @Override - public void add(String name, URL url) throws Exception{ - if(ObjectUtils.isEmpty(name) || url == null){ - return; - } - this.add(name, url, null); + public void addResource(Resource resource) throws Exception { + resource.resolveByte(); + String name = formatResourceName(resource.getName()); + List resources = resourceStorage.computeIfAbsent(name, k -> new ArrayList<>()); + resources.add(resource); } @Override @@ -75,79 +52,54 @@ public class CacheResourceStorage extends SameRootResourceStorage{ return resourceStorage.containsKey(name); } - protected void addResource(String name, Resource resource){ - if(ObjectUtils.isEmpty(name) || resource == null){ - return; - } - resourceStorage.put(name, resource); - } - @Override - public Resource get(String name) { + public Resource getFirst(String name) { if(ObjectUtils.isEmpty(name)){ return null; } name = formatResourceName(name); - return resourceStorage.get(name); - } - - @Override - public InputStream getInputStream(String name) { - if(ObjectUtils.isEmpty(name)){ - return null; - } - Resource resource = get(name); - if(resource == null){ - return null; - } - try { - InputStream inputStream = resource.getUrl().openStream(); - inputStreams.add(inputStream); - return inputStream; - } catch (IOException e) { - e.printStackTrace(); + List resources = resourceStorage.get(name); + if(ObjectUtils.isEmpty(resources)){ return null; } + return resources.get(0); } @Override - public void close() throws Exception { - for (InputStream inputStream : inputStreams) { - IOUtils.closeQuietly(inputStream); + public Enumeration get(String name) { + if(ObjectUtils.isEmpty(name)){ + return Collections.emptyEnumeration(); } - for (Resource resource : resourceStorage.values()) { - IOUtils.closeQuietly(resource); + name = formatResourceName(name); + List resources = resourceStorage.get(name); + if(ObjectUtils.isEmpty(resources)){ + return Collections.emptyEnumeration(); } - resourceStorage.clear(); + return Collections.enumeration(resources); } - protected final String formatResourceName(String name) { - return ResourceUtils.formatStandardName(name); + @Override + public InputStream getFirstInputStream(String name) { + Resource resource = getFirst(name); + return openStream(resource); } - /** - * 缓存资源 - */ - protected static class CacheResource extends DefaultResource { - - protected byte[] bytes; - - public CacheResource(String name, URL baseUrl, URL url) { - super(name, baseUrl, url); - } - - @Override - public void setBytes(ResourceByteGetter byteGetter) throws Exception{ - if(byteGetter == null){ - return; - } - bytes = byteGetter.get(); + @Override + public Enumeration getInputStream(String name) { + Enumeration resources = get(name); + if(ObjectUtils.isEmpty(resources)){ + return Collections.emptyEnumeration(); } + return openStream(resources); + } - @Override - public byte[] getBytes() { - return bytes; + @Override + public void close() throws Exception { + super.close(); + for (List resourceList : resourceStorage.values()) { + closeResources(resourceList); } + resourceStorage.clear(); } } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheReleasedResourceStorage.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheReleasedResourceStorage.java deleted file mode 100644 index 99f13a6..0000000 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheReleasedResourceStorage.java +++ /dev/null @@ -1,136 +0,0 @@ -/** - * Copyright [2019-2022] [starBlues] - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.gitee.starblues.loader.classloader.resource.storage; - -import com.gitee.starblues.loader.classloader.resource.Resource; -import com.gitee.starblues.loader.classloader.resource.loader.DefaultResource; -import com.gitee.starblues.loader.classloader.resource.ResourceByteGetter; -import com.gitee.starblues.loader.utils.ObjectUtils; -import com.gitee.starblues.loader.utils.ResourceUtils; - -import java.io.InputStream; -import java.net.HttpURLConnection; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLConnection; -import java.util.Arrays; - -/** - * 可缓存的资源存储者 - * - * @author starBlues - * @since 3.1.1 - * @version 3.1.1 - */ -public class CacheReleasedResourceStorage extends CacheResourceStorage { - - private volatile boolean release = false; - - public CacheReleasedResourceStorage(URL baseUrl) { - super(baseUrl); - } - - @Override - public void add(String name, URL url, ResourceByteGetter byteGetter) throws Exception{ - name = formatResourceName(name); - if(resourceStorage.containsKey(name)){ - return; - } - CacheReleasedResource cacheResource = new CacheReleasedResource(name, baseUrl, url); - cacheResource.setBytes(byteGetter); - addResource(name, cacheResource); - } - - @Override - public boolean exist(String name) { - return get(name) != null; - } - - @Override - public Resource get(String name) { - Resource resource = super.get(name); - if(resource != null){ - return resource; - } - if(!release){ - return null; - } - URL existUrl = getExistUrl(name); - if(existUrl == null){ - return null; - } - DefaultResource defaultResource = new DefaultResource(name, baseUrl, existUrl); - addResource(name, defaultResource); - return defaultResource; - } - - - @Override - public void release() throws Exception { - for (Resource resource : resourceStorage.values()) { - ResourceUtils.release(resource); - } - resourceStorage.clear(); - release = true; - } - - /** - * 获取存在的url - * @param name 资源名称 - * @return 存在的URL, 不存在返回nulll - */ - private URL getExistUrl(String name){ - URL url; - try { - url = new URL(baseUrl, name); - } catch (MalformedURLException e) { - throw new IllegalArgumentException("非法:" + name); - } - try { - URLConnection uc = url.openConnection(); - if (uc instanceof HttpURLConnection) { - HttpURLConnection hconn = (HttpURLConnection)uc; - hconn.setRequestMethod("HEAD"); - if (hconn.getResponseCode() >= HttpURLConnection.HTTP_BAD_REQUEST) { - return null; - } - } else { - uc.setUseCaches(false); - InputStream is = uc.getInputStream(); - is.close(); - } - return url; - } catch (Exception e) { - return null; - } - } - - protected static class CacheReleasedResource extends CacheResourceStorage.CacheResource{ - - public CacheReleasedResource(String name, URL baseUrl, URL url) { - super(name, baseUrl, url); - } - - @Override - public void release() { - Arrays.fill(bytes, (byte) 0); - bytes = null; - } - } - - -} diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/EmptyResourceStorage.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/EmptyResourceStorage.java index a340d24..2808931 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/EmptyResourceStorage.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/EmptyResourceStorage.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,10 +17,10 @@ package com.gitee.starblues.loader.classloader.resource.storage; import com.gitee.starblues.loader.classloader.resource.Resource; -import com.gitee.starblues.loader.classloader.resource.ResourceByteGetter; import java.io.InputStream; import java.net.URL; +import java.util.Enumeration; import java.util.List; /** @@ -31,13 +31,19 @@ import java.util.List; * @version 3.1.1 */ public class EmptyResourceStorage implements ResourceStorage{ + @Override - public void add(String name, URL url, ResourceByteGetter byteGetter) throws Exception { + public void addBaseUrl(URL baseUrl) { } @Override - public void add(String name, URL url) throws Exception { + public List getBaseUrl() { + return null; + } + + @Override + public void add(Resource resource) throws Exception { } @@ -47,12 +53,22 @@ public class EmptyResourceStorage implements ResourceStorage{ } @Override - public Resource get(String name) { + public Resource getFirst(String name) { + return null; + } + + @Override + public Enumeration get(String name) { + return null; + } + + @Override + public InputStream getFirstInputStream(String name) { return null; } @Override - public InputStream getInputStream(String name) { + public Enumeration getInputStream(String name) { return null; } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/ResourceStorage.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/ResourceStorage.java index 911fef1..aafd31d 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/ResourceStorage.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/ResourceStorage.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ package com.gitee.starblues.loader.classloader.resource.storage; import com.gitee.starblues.loader.classloader.resource.Resource; -import com.gitee.starblues.loader.classloader.resource.ResourceByteGetter; import com.gitee.starblues.loader.utils.Release; import java.io.InputStream; import java.net.URL; +import java.util.Enumeration; import java.util.List; /** @@ -34,21 +34,23 @@ import java.util.List; public interface ResourceStorage extends AutoCloseable, Release { /** - * 添加资源 - * @param name 资源名称 - * @param url 资源url - * @param byteGetter 资源字节获取者 - * @throws Exception 添加资源异常 + * 添加根url + * @param baseUrl url */ - void add(String name, URL url, ResourceByteGetter byteGetter) throws Exception; + void addBaseUrl(URL baseUrl); + + /** + * 获取根url + * @return url list + */ + List getBaseUrl(); /** * 添加资源 - * @param name 资源名称 - * @param url 资源url + * @param resource 资源名称 * @throws Exception 添加资源异常 */ - void add(String name, URL url) throws Exception; + void add(Resource resource) throws Exception; /** * 存在资源 @@ -58,17 +60,31 @@ public interface ResourceStorage extends AutoCloseable, Release { boolean exist(String name); /** - * 获取资源 + * 获取第一个资源 + * @param name 资源名称 + * @return Resource + */ + Resource getFirst(String name); + + /** + * 获取所有资源 + * @param name 资源名称 + * @return Resource + */ + Enumeration get(String name); + + /** + * 获取第一个资源的 InputStream * @param name 资源名称 * @return Resource */ - Resource get(String name); + InputStream getFirstInputStream(String name); /** - * 获取资源的 InputStream + * 获取所有资源的 InputStream * @param name 资源名称 * @return InputStream */ - InputStream getInputStream(String name); + Enumeration getInputStream(String name); } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/AbstractLauncher.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/AbstractLauncher.java index ab6fa2a..e1dc6d5 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/AbstractLauncher.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/AbstractLauncher.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/AbstractMainLauncher.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/AbstractMainLauncher.java index 4f25dc3..0b1adcb 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/AbstractMainLauncher.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/AbstractMainLauncher.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/DevLauncher.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/DevLauncher.java index 2cac0c7..170bdf1 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/DevLauncher.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/DevLauncher.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/DevelopmentModeSetting.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/DevelopmentModeSetting.java index 2d2ee5d..439cdb5 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/DevelopmentModeSetting.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/DevelopmentModeSetting.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/Launcher.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/Launcher.java index fe032bf..5739bcf 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/Launcher.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/Launcher.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/LauncherContext.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/LauncherContext.java index 2d37132..6ab8859 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/LauncherContext.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/LauncherContext.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/ProdLauncher.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/ProdLauncher.java index 33d34ea..09bbce7 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/ProdLauncher.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/ProdLauncher.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringBootstrap.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringBootstrap.java index 9ff3045..9335b07 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringBootstrap.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringBootstrap.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringMainBootstrap.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringMainBootstrap.java index 867b608..d627ec8 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringMainBootstrap.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringMainBootstrap.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringMainProdBootstrap.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringMainProdBootstrap.java index 3ec11a3..b47de02 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringMainProdBootstrap.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/SpringMainProdBootstrap.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/classpath/ClasspathResource.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/classpath/ClasspathResource.java index cd296e5..a96cb2e 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/classpath/ClasspathResource.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/classpath/ClasspathResource.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/classpath/FastJarClasspathResource.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/classpath/FastJarClasspathResource.java index a15ad9d..b7dcaf2 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/classpath/FastJarClasspathResource.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/classpath/FastJarClasspathResource.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/classpath/JarOutClasspathResource.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/classpath/JarOutClasspathResource.java index 69dab01..3d382a3 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/classpath/JarOutClasspathResource.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/classpath/JarOutClasspathResource.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/coexist/CoexistBaseLauncher.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/coexist/CoexistBaseLauncher.java index c7fffbf..311af4d 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/coexist/CoexistBaseLauncher.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/coexist/CoexistBaseLauncher.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/coexist/CoexistFastJarLauncher.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/coexist/CoexistFastJarLauncher.java index c75e19a..8750fe9 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/coexist/CoexistFastJarLauncher.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/coexist/CoexistFastJarLauncher.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/coexist/CoexistJarOuterLauncher.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/coexist/CoexistJarOuterLauncher.java index b99fcf4..5adca6d 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/coexist/CoexistJarOuterLauncher.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/coexist/CoexistJarOuterLauncher.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationBaseLauncher.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationBaseLauncher.java index afa5a44..75341e7 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationBaseLauncher.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationBaseLauncher.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationFastJarLauncher.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationFastJarLauncher.java index 6f35afb..de16b58 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationFastJarLauncher.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationFastJarLauncher.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationJarOuterLauncher.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationJarOuterLauncher.java index 38278e3..3519c76 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationJarOuterLauncher.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/IsolationJarOuterLauncher.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/ResourceLoaderFactoryGetter.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/ResourceLoaderFactoryGetter.java index abd9ee4..3e1597d 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/ResourceLoaderFactoryGetter.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/ResourceLoaderFactoryGetter.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,7 +20,6 @@ import com.gitee.starblues.loader.classloader.resource.loader.DefaultResourceLoa import com.gitee.starblues.loader.classloader.resource.loader.ResourceLoaderFactory; import com.gitee.starblues.loader.classloader.resource.storage.*; -import java.net.URL; import java.util.Objects; /** @@ -36,9 +35,19 @@ public class ResourceLoaderFactoryGetter { /** - * 资源存储模式--缓存模式 + * 资源存储模式-永久缓存。速度最快, 但启动前后占用都比较内存高 */ - private static final String RESOURCE_MODE_CACHE = "cache"; + private static final String RESOURCE_MODE_PERPETUAL = "perpetual"; + + /** + * 资源存储模式-低内存模型。启动占用内存低, 速度可能会慢 + */ + private static final String RESOURCE_MODE_LOW_MEMORY = "lowMemory"; + + /** + * 资源存储模式-快速模式。启动占用内存高, 速度比较高, 启动完成后占用内存会降低 + */ + private static final String RESOURCE_MODE_FAST = "fast"; /** @@ -74,11 +83,13 @@ public class ResourceLoaderFactoryGetter { return null; } - public static SameRootResourceStorage getResourceStorage(String key, URL baseUrl){ - if(Objects.equals(resourceMode, RESOURCE_MODE_CACHE)){ - return new CacheResourceStorage(baseUrl); + public static AbstractResourceStorage getResourceStorage(String key){ + if(Objects.equals(resourceMode, RESOURCE_MODE_PERPETUAL)){ + return new CachePerpetualResourceStorage(); + } else if(Objects.equals(resourceMode, RESOURCE_MODE_LOW_MEMORY)){ + return new CacheLowMemoryResourceStorage(key); } else { - return new CacheReleasedResourceStorage(baseUrl); + return new CacheFastResourceStorage(key); } } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/runner/MainMethodRunner.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/runner/MainMethodRunner.java index e600323..370df25 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/runner/MainMethodRunner.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/runner/MainMethodRunner.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/runner/MethodRunner.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/runner/MethodRunner.java index b0f0f87..502e012 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/runner/MethodRunner.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/runner/MethodRunner.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/Assert.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/Assert.java index 7b2cf31..26aa30b 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/Assert.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/Assert.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/CompareClassTypeUtils.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/CompareClassTypeUtils.java index 9d3947a..c1ea6e9 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/CompareClassTypeUtils.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/CompareClassTypeUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/FilesUtils.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/FilesUtils.java index 6378c27..ada15d7 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/FilesUtils.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/FilesUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/IOUtils.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/IOUtils.java index a009975..20cec12 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/IOUtils.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/IOUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/ObjectUtils.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/ObjectUtils.java index 1c2f468..2e2069a 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/ObjectUtils.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/ObjectUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/ResourceUtils.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/ResourceUtils.java index 3d516e0..6af0671 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/ResourceUtils.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/ResourceUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,11 @@ package com.gitee.starblues.loader.utils; import java.io.File; +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; import java.net.URL; +import java.net.URLConnection; import java.util.Objects; import java.util.function.Consumer; @@ -40,6 +44,8 @@ public class ResourceUtils { public static final String PACKAGE_SPLIT = "/"; + public static final String CLASS_FILE_EXTENSION = ".class"; + private ResourceUtils(){} /** @@ -148,4 +154,56 @@ public class ResourceUtils { } } + /** + * 获取存在的url + * @param url url + * @return 存在的URL, 不存在返回nulll + */ + public static URL getExistUrl(URL url){ + return getExistUrl(url, null); + } + + /** + * 获取存在的url + * @param baseUrl 根url + * @param name 资源名称 + * @return 存在的URL, 不存在返回nulll + */ + public static URL getExistUrl(URL baseUrl, String name){ + URL url; + try { + if(ObjectUtils.isEmpty(name)){ + url = baseUrl; + } else { + url = new URL(baseUrl, name); + } + } catch (MalformedURLException e) { + throw new IllegalArgumentException("非法:" + name); + } + try { + URLConnection uc = url.openConnection(); + if (uc instanceof HttpURLConnection) { + HttpURLConnection hconn = (HttpURLConnection)uc; + hconn.setRequestMethod("HEAD"); + if (hconn.getResponseCode() >= HttpURLConnection.HTTP_BAD_REQUEST) { + return null; + } + } else { + uc.setUseCaches(false); + InputStream is = uc.getInputStream(); + is.close(); + } + return url; + } catch (Exception e) { + return null; + } + } + + public static boolean isClass(String path){ + if(ObjectUtils.isEmpty(path)){ + return false; + } + return path.toLowerCase().endsWith(CLASS_FILE_EXTENSION); + } + } diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/AbstractDependencyFilterMojo.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/AbstractDependencyFilterMojo.java index f54ec76..ff061cf 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/AbstractDependencyFilterMojo.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/AbstractDependencyFilterMojo.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/AbstractPackagerMojo.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/AbstractPackagerMojo.java index c86aeaa..0abd270 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/AbstractPackagerMojo.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/AbstractPackagerMojo.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/BasicRepackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/BasicRepackager.java index 1d9bf46..5676c92 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/BasicRepackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/BasicRepackager.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Constant.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Constant.java index f6c4a73..0225ae5 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Constant.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Constant.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Dependency.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Dependency.java index aae2ac4..7e2b1e0 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Dependency.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Dependency.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/DependencyPlugin.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/DependencyPlugin.java index b88a79b..44dfcdf 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/DependencyPlugin.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/DependencyPlugin.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/LoadMainResourcePattern.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/LoadMainResourcePattern.java index 4f05258..a9a3b7a 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/LoadMainResourcePattern.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/LoadMainResourcePattern.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/LoadToMain.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/LoadToMain.java index c0a6c66..9892b98 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/LoadToMain.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/LoadToMain.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/PluginInfo.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/PluginInfo.java index 1d95d08..7265f0b 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/PluginInfo.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/PluginInfo.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/RepackageMojo.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/RepackageMojo.java index 92b7944..7467a1f 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/RepackageMojo.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/RepackageMojo.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Repackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Repackager.java index 293d39c..1877f9e 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Repackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/Repackager.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/Dependency.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/Dependency.java index 4ecdeb7..a99bba6 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/Dependency.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/Dependency.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/DevConfig.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/DevConfig.java index bd9f4c7..74d6440 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/DevConfig.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/DevConfig.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/DevRepackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/DevRepackager.java index f746a3d..2880f02 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/DevRepackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/dev/DevRepackager.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/AesConfig.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/AesConfig.java index 727ab5c..a7d4afd 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/AesConfig.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/AesConfig.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptConfig.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptConfig.java index 8e07b48..769b8db 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptConfig.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptConfig.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptPlugin.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptPlugin.java index d9d58ac..5a22fee 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptPlugin.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptPlugin.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptPluginFactory.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptPluginFactory.java index 5600e23..c52148c 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptPluginFactory.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/EncryptPluginFactory.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/RsaConfig.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/RsaConfig.java index 2a05f2c..09a8597 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/RsaConfig.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/RsaConfig.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/RsaEncryptPlugin.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/RsaEncryptPlugin.java index bf9d16c..2e1f190 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/RsaEncryptPlugin.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/encrypt/RsaEncryptPlugin.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/DependencyFilter.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/DependencyFilter.java index a5bfc3a..f0d3ea0 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/DependencyFilter.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/DependencyFilter.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/Exclude.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/Exclude.java index 71820f0..0aaff1f 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/Exclude.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/Exclude.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/ExcludeFilter.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/ExcludeFilter.java index 8d951fe..cb564bf 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/ExcludeFilter.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/ExcludeFilter.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/FilterableDependency.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/FilterableDependency.java index 7479b12..d51b603 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/FilterableDependency.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/FilterableDependency.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/Include.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/Include.java index 50fa2bc..c2bfb7a 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/Include.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/Include.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/IncludeFilter.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/IncludeFilter.java index 97b0a0d..c9e8385 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/IncludeFilter.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/filter/IncludeFilter.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/JarNestPackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/JarNestPackager.java index e93865c..a8757f5 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/JarNestPackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/JarNestPackager.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/JarOuterPackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/JarOuterPackager.java index e615f0b..54dc6aa 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/JarOuterPackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/JarOuterPackager.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/MainConfig.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/MainConfig.java index 854b571..8b9101f 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/MainConfig.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/MainConfig.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/MainRepackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/MainRepackager.java index 195c577..a91b25e 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/MainRepackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/MainRepackager.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/DirProdRepackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/DirProdRepackager.java index f37edff..0909c3d 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/DirProdRepackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/DirProdRepackager.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/JarNestedProdRepackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/JarNestedProdRepackager.java index 7bcba52..2e49533 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/JarNestedProdRepackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/JarNestedProdRepackager.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/JarOuterProdRepackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/JarOuterProdRepackager.java index 9606afe..4d1eaf0 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/JarOuterProdRepackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/JarOuterProdRepackager.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ProdConfig.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ProdConfig.java index 10208eb..10c334b 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ProdConfig.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ProdConfig.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ProdRepackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ProdRepackager.java index 72b8f34..629d816 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ProdRepackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ProdRepackager.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ZipOuterProdRepackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ZipOuterProdRepackager.java index 1ed7171..87b1f13 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ZipOuterProdRepackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ZipOuterProdRepackager.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ZipProdRepackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ZipProdRepackager.java index 9513206..3f77dfb 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ZipProdRepackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ZipProdRepackager.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/CommonUtils.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/CommonUtils.java index 0919a5c..e72acd0 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/CommonUtils.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/CommonUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/PackageJar.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/PackageJar.java index 48aaf15..7fa1c46 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/PackageJar.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/PackageJar.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/PackageZip.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/PackageZip.java index d4a5f64..96df2df 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/PackageZip.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/PackageZip.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/pom.xml b/spring-brick/pom.xml index 19230bb..312573d 100644 --- a/spring-brick/pom.xml +++ b/spring-brick/pom.xml @@ -16,7 +16,6 @@ 核心集成包, 用于框架集成 - 2.10.1 1.7.7 2.11.0 diff --git a/spring-brick/src/main/java/com/gitee/starblues/annotation/Caller.java b/spring-brick/src/main/java/com/gitee/starblues/annotation/Caller.java index fb2ad5f..c043b03 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/annotation/Caller.java +++ b/spring-brick/src/main/java/com/gitee/starblues/annotation/Caller.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/annotation/Extract.java b/spring-brick/src/main/java/com/gitee/starblues/annotation/Extract.java index bf1d404..90f4460 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/annotation/Extract.java +++ b/spring-brick/src/main/java/com/gitee/starblues/annotation/Extract.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/annotation/Supplier.java b/spring-brick/src/main/java/com/gitee/starblues/annotation/Supplier.java index a9275d6..1eba7e4 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/annotation/Supplier.java +++ b/spring-brick/src/main/java/com/gitee/starblues/annotation/Supplier.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/DefaultPluginInsideInfo.java b/spring-brick/src/main/java/com/gitee/starblues/core/DefaultPluginInsideInfo.java index 2219be9..136e22c 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/DefaultPluginInsideInfo.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/DefaultPluginInsideInfo.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/DefaultPluginManager.java b/spring-brick/src/main/java/com/gitee/starblues/core/DefaultPluginManager.java index d7ab7bb..66dcd01 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/DefaultPluginManager.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/DefaultPluginManager.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/DefaultRealizeProvider.java b/spring-brick/src/main/java/com/gitee/starblues/core/DefaultRealizeProvider.java index f9dfc51..f716d41 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/DefaultRealizeProvider.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/DefaultRealizeProvider.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/PluginInfo.java b/spring-brick/src/main/java/com/gitee/starblues/core/PluginInfo.java index a95f1df..aa43f41 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/PluginInfo.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/PluginInfo.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/PluginInfoFace.java b/spring-brick/src/main/java/com/gitee/starblues/core/PluginInfoFace.java index eaaee50..72e1144 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/PluginInfoFace.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/PluginInfoFace.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/PluginInsideInfo.java b/spring-brick/src/main/java/com/gitee/starblues/core/PluginInsideInfo.java index 237ae87..8499404 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/PluginInsideInfo.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/PluginInsideInfo.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/PluginLauncherManager.java b/spring-brick/src/main/java/com/gitee/starblues/core/PluginLauncherManager.java index bb15301..d48c543 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/PluginLauncherManager.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/PluginLauncherManager.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/PluginManager.java b/spring-brick/src/main/java/com/gitee/starblues/core/PluginManager.java index f430ab7..5641ef1 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/PluginManager.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/PluginManager.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/PluginState.java b/spring-brick/src/main/java/com/gitee/starblues/core/PluginState.java index 2bf1f1c..02ac658 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/PluginState.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/PluginState.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/RealizeProvider.java b/spring-brick/src/main/java/com/gitee/starblues/core/RealizeProvider.java index d4dc9f4..a874db3 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/RealizeProvider.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/RealizeProvider.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/RuntimeMode.java b/spring-brick/src/main/java/com/gitee/starblues/core/RuntimeMode.java index f7f85f7..592df1c 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/RuntimeMode.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/RuntimeMode.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/checker/ComposePluginBasicChecker.java b/spring-brick/src/main/java/com/gitee/starblues/core/checker/ComposePluginBasicChecker.java index 5da015a..925e3b7 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/checker/ComposePluginBasicChecker.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/checker/ComposePluginBasicChecker.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/checker/ComposePluginLauncherChecker.java b/spring-brick/src/main/java/com/gitee/starblues/core/checker/ComposePluginLauncherChecker.java index 4827590..feab2ae 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/checker/ComposePluginLauncherChecker.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/checker/ComposePluginLauncherChecker.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/checker/DefaultPluginBasicChecker.java b/spring-brick/src/main/java/com/gitee/starblues/core/checker/DefaultPluginBasicChecker.java index 083d449..b63fc6d 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/checker/DefaultPluginBasicChecker.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/checker/DefaultPluginBasicChecker.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/checker/DefaultPluginLauncherChecker.java b/spring-brick/src/main/java/com/gitee/starblues/core/checker/DefaultPluginLauncherChecker.java index fc77752..2c9efde 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/checker/DefaultPluginLauncherChecker.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/checker/DefaultPluginLauncherChecker.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/checker/DependencyPluginLauncherChecker.java b/spring-brick/src/main/java/com/gitee/starblues/core/checker/DependencyPluginLauncherChecker.java index 8354041..a944545 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/checker/DependencyPluginLauncherChecker.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/checker/DependencyPluginLauncherChecker.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/checker/PluginBasicChecker.java b/spring-brick/src/main/java/com/gitee/starblues/core/checker/PluginBasicChecker.java index 337a56b..6975610 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/checker/PluginBasicChecker.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/checker/PluginBasicChecker.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/checker/PluginLauncherChecker.java b/spring-brick/src/main/java/com/gitee/starblues/core/checker/PluginLauncherChecker.java index f3bc0ae..14f01c5 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/checker/PluginLauncherChecker.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/checker/PluginLauncherChecker.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/CacheMainResourceMatcher.java b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/CacheMainResourceMatcher.java index 584528e..41edbd9 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/CacheMainResourceMatcher.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/CacheMainResourceMatcher.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/ComposeMainResourceMatcher.java b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/ComposeMainResourceMatcher.java index 26212a2..ee30103 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/ComposeMainResourceMatcher.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/ComposeMainResourceMatcher.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/DefaultMainResourceMatcher.java b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/DefaultMainResourceMatcher.java index 765d2f8..11f206f 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/DefaultMainResourceMatcher.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/DefaultMainResourceMatcher.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/EmptyMainResourcePatternDefiner.java b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/EmptyMainResourcePatternDefiner.java index 75301c1..3024418 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/EmptyMainResourcePatternDefiner.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/EmptyMainResourcePatternDefiner.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/MainResourceMatcher.java b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/MainResourceMatcher.java index f33d7c9..059f749 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/MainResourceMatcher.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/MainResourceMatcher.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/MainResourcePatternDefiner.java b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/MainResourcePatternDefiner.java index 3c66b93..b8fb11d 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/MainResourcePatternDefiner.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/MainResourcePatternDefiner.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/NestedPluginJarResourceLoader.java b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/NestedPluginJarResourceLoader.java index d096e11..cce11fc 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/NestedPluginJarResourceLoader.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/NestedPluginJarResourceLoader.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -84,9 +84,9 @@ public class NestedPluginJarResourceLoader extends AbstractResourceLoader { String realName = jarEntry.getName().replace(classesPath, ""); URL url = new URL(baseUrl.toString() + jarEntry.getName()); resourceLoaderFactory.addResource(new DefaultResource(realName, baseUrl, url)); - resourceStorage.add(realName, url, ()->{ + resourceStorage.add(new CacheResource(realName, baseUrl, url, ()->{ return getClassBytes(realName, jarFile.getInputStream(jarEntry), true); - }); + })); } } diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginClassLoader.java b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginClassLoader.java index bf06adf..116900a 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginClassLoader.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginClassLoader.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginGeneralUrlClassLoader.java b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginGeneralUrlClassLoader.java index 1326662..11e5259 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginGeneralUrlClassLoader.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginGeneralUrlClassLoader.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginResourceLoaderFactory.java b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginResourceLoaderFactory.java index 3be839a..8156313 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginResourceLoaderFactory.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginResourceLoaderFactory.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginResourceLoaderFactoryProxy.java b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginResourceLoaderFactoryProxy.java index 626465b..594b738 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginResourceLoaderFactoryProxy.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/PluginResourceLoaderFactoryProxy.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/ProhibitMainResourceMatcher.java b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/ProhibitMainResourceMatcher.java index 2413faa..3ba3964 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/classloader/ProhibitMainResourceMatcher.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/classloader/ProhibitMainResourceMatcher.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/AbstractPluginDescriptorLoader.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/AbstractPluginDescriptorLoader.java index 49e3cda..90f2164 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/AbstractPluginDescriptorLoader.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/AbstractPluginDescriptorLoader.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ComposeDescriptorLoader.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ComposeDescriptorLoader.java index 1b48ef9..f8aa241 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ComposeDescriptorLoader.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ComposeDescriptorLoader.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultDependencyPlugin.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultDependencyPlugin.java index 662ed52..1ee1201 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultDependencyPlugin.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultDependencyPlugin.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultInsidePluginDescriptor.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultInsidePluginDescriptor.java index efba5a1..93c93f2 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultInsidePluginDescriptor.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultInsidePluginDescriptor.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultPluginDescriptor.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultPluginDescriptor.java index 2fdd253..8e2e330 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultPluginDescriptor.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DefaultPluginDescriptor.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DevPluginDescriptorLoader.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DevPluginDescriptorLoader.java index a82099c..2b9b29c 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DevPluginDescriptorLoader.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/DevPluginDescriptorLoader.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/InsidePluginDescriptor.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/InsidePluginDescriptor.java index 6e346f4..472125e 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/InsidePluginDescriptor.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/InsidePluginDescriptor.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginDescriptor.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginDescriptor.java index 3d5cae9..7d4b572 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginDescriptor.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginDescriptor.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginDescriptorLoader.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginDescriptorLoader.java index 7109074..6e122b3 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginDescriptorLoader.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginDescriptorLoader.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginLibInfo.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginLibInfo.java index c24921d..f3e9d7f 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginLibInfo.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginLibInfo.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginResourcesConfig.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginResourcesConfig.java index cca2b08..ca3401d 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginResourcesConfig.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginResourcesConfig.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginType.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginType.java index e5c07a2..86e2bbb 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginType.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/PluginType.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdDirPluginDescriptorLoader.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdDirPluginDescriptorLoader.java index 4676c89..bd0f7d7 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdDirPluginDescriptorLoader.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdDirPluginDescriptorLoader.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdPackagePluginDescriptorLoader.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdPackagePluginDescriptorLoader.java index 106abf2..103e482 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdPackagePluginDescriptorLoader.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdPackagePluginDescriptorLoader.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdPluginDescriptorLoader.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdPluginDescriptorLoader.java index da4043c..b8c1bb1 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdPluginDescriptorLoader.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/ProdPluginDescriptorLoader.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/decrypt/EmptyPluginDescriptorDecrypt.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/decrypt/EmptyPluginDescriptorDecrypt.java index 7d9305f..8bf02b4 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/decrypt/EmptyPluginDescriptorDecrypt.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/decrypt/EmptyPluginDescriptorDecrypt.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/decrypt/PluginDescriptorDecrypt.java b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/decrypt/PluginDescriptorDecrypt.java index 17f856a..6b3490e 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/decrypt/PluginDescriptorDecrypt.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/descriptor/decrypt/PluginDescriptorDecrypt.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginDecryptException.java b/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginDecryptException.java index eb20dc7..ea133c3 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginDecryptException.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginDecryptException.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginDisabledException.java b/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginDisabledException.java index bdc4b5b..0d998d9 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginDisabledException.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginDisabledException.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginException.java b/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginException.java index ebd70d0..617d5b9 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginException.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginException.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginProhibitStopException.java b/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginProhibitStopException.java index 4703668..7718c13 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginProhibitStopException.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/exception/PluginProhibitStopException.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/JavaMainResourcePatternDefiner.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/JavaMainResourcePatternDefiner.java index 84311b7..2ae933a 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/JavaMainResourcePatternDefiner.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/JavaMainResourcePatternDefiner.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/BasicMainResourcePatternDefiner.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/BasicMainResourcePatternDefiner.java index a4871c3..37b1e93 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/BasicMainResourcePatternDefiner.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/BasicMainResourcePatternDefiner.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/CacheRegistryInfo.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/CacheRegistryInfo.java index d5c62bc..e925ffe 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/CacheRegistryInfo.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/CacheRegistryInfo.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/DefaultMainResourcePatternDefiner.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/DefaultMainResourcePatternDefiner.java index 7c24167..2525e8e 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/DefaultMainResourcePatternDefiner.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/DefaultMainResourcePatternDefiner.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -60,6 +60,7 @@ public class DefaultMainResourcePatternDefiner extends JavaMainResourcePatternDe addWebIncludeResourcePatterns(includeResourcePatterns); addApiDoc(includeResourcePatterns); addDbDriver(includeResourcePatterns); + addMainDependencyFramework(includeResourcePatterns); addIdea(includeResourcePatterns); addLog(includeResourcePatterns); @@ -140,16 +141,20 @@ public class DefaultMainResourcePatternDefiner extends JavaMainResourcePatternDe patterns.add("jdbc/h2/**"); } - private void addIdea(Set includeResourcePatterns) { + protected void addMainDependencyFramework(Set patterns) { + patterns.add("com/github/benmanes/caffeine/cache/**"); + } + + protected void addIdea(Set patterns) { // idea debug agent - includeResourcePatterns.add("com/intellij/rt/debugger/agent/**"); + patterns.add("com/intellij/rt/debugger/agent/**"); } - private void addLog(Set includeResourcePatterns) { + protected void addLog(Set patterns) { if(Boolean.FALSE.equals(configuration.pluginFollowLog())){ return; } - includeResourcePatterns.add("org/slf4j/**"); + patterns.add("org/slf4j/**"); } diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/DefaultPluginInteractive.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/DefaultPluginInteractive.java index c8e63d4..ef39601 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/DefaultPluginInteractive.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/DefaultPluginInteractive.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginInteractive.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginInteractive.java index 7b4a50b..f9c2f6e 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginInteractive.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginInteractive.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginIsolationLauncher.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginIsolationLauncher.java index 0ca619a..dffc257 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginIsolationLauncher.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginIsolationLauncher.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginMainResourcePatternDefiner.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginMainResourcePatternDefiner.java index 80c33a4..d469657 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginMainResourcePatternDefiner.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginMainResourcePatternDefiner.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginMethodRunner.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginMethodRunner.java index f2b538b..5935186 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginMethodRunner.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/PluginMethodRunner.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/RegistryInfo.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/RegistryInfo.java index 12735db..ddea632 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/RegistryInfo.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/RegistryInfo.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/SpringPluginHookWrapper.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/SpringPluginHookWrapper.java index a2c6b95..6b977ea 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/SpringPluginHookWrapper.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/SpringPluginHookWrapper.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/DefaultPluginLaunchInvolved.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/DefaultPluginLaunchInvolved.java index 4e25965..25184b1 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/DefaultPluginLaunchInvolved.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/DefaultPluginLaunchInvolved.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/PluginApplicationContextGetter.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/PluginApplicationContextGetter.java index 0ef5538..a1296c8 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/PluginApplicationContextGetter.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/PluginApplicationContextGetter.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/PluginLaunchInvolved.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/PluginLaunchInvolved.java index b3046cd..5ff3d5e 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/PluginLaunchInvolved.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/PluginLaunchInvolved.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/PluginLaunchInvolvedFactory.java b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/PluginLaunchInvolvedFactory.java index 67bc9cc..dbbcd94 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/PluginLaunchInvolvedFactory.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/launcher/plugin/involved/PluginLaunchInvolvedFactory.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/BasePluginScanner.java b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/BasePluginScanner.java index d055fcf..47ffca1 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/BasePluginScanner.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/BasePluginScanner.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/ComposePathResolve.java b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/ComposePathResolve.java index fe02035..71ef46c 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/ComposePathResolve.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/ComposePathResolve.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/DevPathResolve.java b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/DevPathResolve.java index 640a2eb..9d68489 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/DevPathResolve.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/DevPathResolve.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/PathResolve.java b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/PathResolve.java index 6bd22d7..810484a 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/PathResolve.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/PathResolve.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/PluginScanner.java b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/PluginScanner.java index d3743d0..04ee682 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/PluginScanner.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/PluginScanner.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/ProdPathResolve.java b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/ProdPathResolve.java index 306b3ba..c1efa78 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/scanner/ProdPathResolve.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/scanner/ProdPathResolve.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/version/SemverVersionInspector.java b/spring-brick/src/main/java/com/gitee/starblues/core/version/SemverVersionInspector.java index c969bb3..9c72473 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/version/SemverVersionInspector.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/version/SemverVersionInspector.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/core/version/VersionInspector.java b/spring-brick/src/main/java/com/gitee/starblues/core/version/VersionInspector.java index 32eb17c..87d95c5 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/core/version/VersionInspector.java +++ b/spring-brick/src/main/java/com/gitee/starblues/core/version/VersionInspector.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/AutoIntegrationConfiguration.java b/spring-brick/src/main/java/com/gitee/starblues/integration/AutoIntegrationConfiguration.java index ddc553e..e212ae0 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/AutoIntegrationConfiguration.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/AutoIntegrationConfiguration.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/DefaultIntegrationConfiguration.java b/spring-brick/src/main/java/com/gitee/starblues/integration/DefaultIntegrationConfiguration.java index 5a9c1a7..378a864 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/DefaultIntegrationConfiguration.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/DefaultIntegrationConfiguration.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/ExtendPointConfiguration.java b/spring-brick/src/main/java/com/gitee/starblues/integration/ExtendPointConfiguration.java index 1b7fc2b..ec930b6 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/ExtendPointConfiguration.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/ExtendPointConfiguration.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/ExtendPointWebConfiguration.java b/spring-brick/src/main/java/com/gitee/starblues/integration/ExtendPointWebConfiguration.java index 9c198e3..04c6c1c 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/ExtendPointWebConfiguration.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/ExtendPointWebConfiguration.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/IntegrationConfiguration.java b/spring-brick/src/main/java/com/gitee/starblues/integration/IntegrationConfiguration.java index 95dd8fe..c6d6326 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/IntegrationConfiguration.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/IntegrationConfiguration.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/SpringBootPluginStarter.java b/spring-brick/src/main/java/com/gitee/starblues/integration/SpringBootPluginStarter.java index bf12f77..497f3e7 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/SpringBootPluginStarter.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/SpringBootPluginStarter.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/application/AbstractPluginApplication.java b/spring-brick/src/main/java/com/gitee/starblues/integration/application/AbstractPluginApplication.java index b666cfb..0f8fce9 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/application/AbstractPluginApplication.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/application/AbstractPluginApplication.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/application/AutoPluginApplication.java b/spring-brick/src/main/java/com/gitee/starblues/integration/application/AutoPluginApplication.java index 3d54fef..c058969 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/application/AutoPluginApplication.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/application/AutoPluginApplication.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/application/DefaultPluginApplication.java b/spring-brick/src/main/java/com/gitee/starblues/integration/application/DefaultPluginApplication.java index f0c46ce..f0346b1 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/application/DefaultPluginApplication.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/application/DefaultPluginApplication.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/application/PluginApplication.java b/spring-brick/src/main/java/com/gitee/starblues/integration/application/PluginApplication.java index e415503..38d5194 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/application/PluginApplication.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/application/PluginApplication.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/decrypt/DecryptConfiguration.java b/spring-brick/src/main/java/com/gitee/starblues/integration/decrypt/DecryptConfiguration.java index 1112102..eafb1b8 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/decrypt/DecryptConfiguration.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/decrypt/DecryptConfiguration.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/decrypt/DecryptPluginConfiguration.java b/spring-brick/src/main/java/com/gitee/starblues/integration/decrypt/DecryptPluginConfiguration.java index 5b769f8..d77e26c 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/decrypt/DecryptPluginConfiguration.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/decrypt/DecryptPluginConfiguration.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/listener/DefaultInitializerListener.java b/spring-brick/src/main/java/com/gitee/starblues/integration/listener/DefaultInitializerListener.java index 43ca5c0..4513a9a 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/listener/DefaultInitializerListener.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/listener/DefaultInitializerListener.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/listener/DefaultPluginListenerFactory.java b/spring-brick/src/main/java/com/gitee/starblues/integration/listener/DefaultPluginListenerFactory.java index bce94ea..78bdbb3 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/listener/DefaultPluginListenerFactory.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/listener/DefaultPluginListenerFactory.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/listener/PluginInitializerListener.java b/spring-brick/src/main/java/com/gitee/starblues/integration/listener/PluginInitializerListener.java index 1da690a..134e115 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/listener/PluginInitializerListener.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/listener/PluginInitializerListener.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/listener/PluginInitializerListenerFactory.java b/spring-brick/src/main/java/com/gitee/starblues/integration/listener/PluginInitializerListenerFactory.java index 01d8698..677d955 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/listener/PluginInitializerListenerFactory.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/listener/PluginInitializerListenerFactory.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/listener/PluginListener.java b/spring-brick/src/main/java/com/gitee/starblues/integration/listener/PluginListener.java index 53bd629..bcf9ceb 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/listener/PluginListener.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/listener/PluginListener.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/listener/PluginListenerFactory.java b/spring-brick/src/main/java/com/gitee/starblues/integration/listener/PluginListenerFactory.java index e529262..9beafdc 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/listener/PluginListenerFactory.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/listener/PluginListenerFactory.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/listener/SwaggerListener.java b/spring-brick/src/main/java/com/gitee/starblues/integration/listener/SwaggerListener.java index a75d6fb..9c4fb68 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/listener/SwaggerListener.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/listener/SwaggerListener.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -76,19 +76,20 @@ public class SwaggerListener implements PluginListener{ @Override public void startSuccess(PluginInfo pluginInfo) { PluginDescriptor descriptor = pluginInfo.getPluginDescriptor(); - Docket docket = this.createDocket(descriptor); - String groupName = docket.getGroupName(); - PluginRegistry pluginRegistry = this.getPluginRegistry(); - List plugins = pluginRegistry.getPlugins(); - List newPlugins = new ArrayList<>(); - for(DocumentationPlugin plugin : plugins){ - if(plugin.getGroupName().equals(groupName)){ - continue; - } - newPlugins.add(plugin); - } - newPlugins.add(docket); try { + Docket docket = this.createDocket(descriptor); + String groupName = docket.getGroupName(); + PluginRegistry pluginRegistry = this.getPluginRegistry(); + List plugins = pluginRegistry.getPlugins(); + List newPlugins = new ArrayList<>(); + for(DocumentationPlugin plugin : plugins){ + if(plugin.getGroupName().equals(groupName)){ + continue; + } + newPlugins.add(plugin); + } + newPlugins.add(docket); + Field field = PluginRegistrySupport.class.getDeclaredField("plugins"); field.setAccessible(true); field.set(pluginRegistry, newPlugins); @@ -96,9 +97,9 @@ public class SwaggerListener implements PluginListener{ if(!pluginInfo.isFollowSystem() || pluginInfo.getStopTime() != null){ this.refresh(); } - log.debug("插件[{}]注册到 Swagger 成功", pluginInfo.getPluginId()); - } catch (NoSuchFieldException | IllegalAccessException e) { - log.error("插件[{}]注册到 Swagger 失败,错误为:{}", pluginInfo.getPluginId(),e.getMessage()); + log.debug("插件[{}]注册到 Swagger 成功", MsgUtils.getPluginUnique(descriptor)); + } catch (Exception e) { + log.error("插件[{}]注册到 Swagger 失败,错误为:{}", MsgUtils.getPluginUnique(descriptor) ,e.getMessage()); } } @@ -106,25 +107,24 @@ public class SwaggerListener implements PluginListener{ public void stopSuccess(PluginInfo pluginInfo) { PluginDescriptor descriptor = pluginInfo.getPluginDescriptor(); String groupName = getGroupName(descriptor); - - PluginRegistry pluginRegistry = this.getPluginRegistry(); - List plugins = pluginRegistry.getPlugins(); - List newPlugins = new ArrayList<>(); - for(DocumentationPlugin plugin : plugins){ - if(groupName.equalsIgnoreCase(plugin.getGroupName())){ - continue; - } - newPlugins.add(plugin); - } try{ + PluginRegistry pluginRegistry = this.getPluginRegistry(); + List plugins = pluginRegistry.getPlugins(); + List newPlugins = new ArrayList<>(); + for(DocumentationPlugin plugin : plugins){ + if(groupName.equalsIgnoreCase(plugin.getGroupName())){ + continue; + } + newPlugins.add(plugin); + } + Field field = PluginRegistrySupport.class.getDeclaredField("plugins"); field.setAccessible(true); field.set(pluginRegistry, newPlugins); this.refresh(); log.debug("插件[{}]从 Swagger 移除成功", MsgUtils.getPluginUnique(descriptor)); - } - catch (NoSuchFieldException | IllegalAccessException e) { + } catch (Exception e) { log.error("插件[{}]从 Swagger 移除失败,错误为:{}", MsgUtils.getPluginUnique(descriptor), e.getMessage()); } } @@ -157,7 +157,12 @@ public class SwaggerListener implements PluginListener{ * @return PluginRegistry */ private PluginRegistry getPluginRegistry(){ - return SpringBeanUtils.getExistBean(mainApplicationContext,"documentationPluginRegistry"); + PluginRegistry registry = + SpringBeanUtils.getExistBean(mainApplicationContext, "documentationPluginRegistry"); + if(registry != null){ + return registry; + } + throw new IllegalStateException("项目依赖的 Swagger 版本不支持刷新插件接口, 请切换版本"); } /** diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/operator/DefaultPluginOperator.java b/spring-brick/src/main/java/com/gitee/starblues/integration/operator/DefaultPluginOperator.java index 11e1c82..a82bb51 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/operator/DefaultPluginOperator.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/operator/DefaultPluginOperator.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/operator/PluginOperator.java b/spring-brick/src/main/java/com/gitee/starblues/integration/operator/PluginOperator.java index c16758b..787b548 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/operator/PluginOperator.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/operator/PluginOperator.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/operator/PluginOperatorWrapper.java b/spring-brick/src/main/java/com/gitee/starblues/integration/operator/PluginOperatorWrapper.java index c96554b..e8a5bab 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/operator/PluginOperatorWrapper.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/operator/PluginOperatorWrapper.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/operator/upload/UploadByInputStreamParam.java b/spring-brick/src/main/java/com/gitee/starblues/integration/operator/upload/UploadByInputStreamParam.java index 356356d..97b3dd4 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/operator/upload/UploadByInputStreamParam.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/operator/upload/UploadByInputStreamParam.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/operator/upload/UploadByMultipartFileParam.java b/spring-brick/src/main/java/com/gitee/starblues/integration/operator/upload/UploadByMultipartFileParam.java index b9b7c47..5be7fd7 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/operator/upload/UploadByMultipartFileParam.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/operator/upload/UploadByMultipartFileParam.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/operator/upload/UploadParam.java b/spring-brick/src/main/java/com/gitee/starblues/integration/operator/upload/UploadParam.java index 0f2b418..a9576ab 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/operator/upload/UploadParam.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/operator/upload/UploadParam.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/user/BeanWrapper.java b/spring-brick/src/main/java/com/gitee/starblues/integration/user/BeanWrapper.java index 6fb78a4..73f9d5d 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/user/BeanWrapper.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/user/BeanWrapper.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/user/DefaultPluginUser.java b/spring-brick/src/main/java/com/gitee/starblues/integration/user/DefaultPluginUser.java index a4a1389..1302585 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/user/DefaultPluginUser.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/user/DefaultPluginUser.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/user/PluginUser.java b/spring-brick/src/main/java/com/gitee/starblues/integration/user/PluginUser.java index 1864e8a..c786e1a 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/user/PluginUser.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/user/PluginUser.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/ApplicationContext.java b/spring-brick/src/main/java/com/gitee/starblues/spring/ApplicationContext.java index af30214..e9ad336 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/ApplicationContext.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/ApplicationContext.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/ApplicationContextProxy.java b/spring-brick/src/main/java/com/gitee/starblues/spring/ApplicationContextProxy.java index 88e6ea5..1330a08 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/ApplicationContextProxy.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/ApplicationContextProxy.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/CacheJdkSameTypeParamProxyFactory.java b/spring-brick/src/main/java/com/gitee/starblues/spring/CacheJdkSameTypeParamProxyFactory.java index 5c3f7f7..910c9f5 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/CacheJdkSameTypeParamProxyFactory.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/CacheJdkSameTypeParamProxyFactory.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/GenericApplicationContext.java b/spring-brick/src/main/java/com/gitee/starblues/spring/GenericApplicationContext.java index 71590fa..6dd021b 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/GenericApplicationContext.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/GenericApplicationContext.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/JdkSameTypeParamProxyFactory.java b/spring-brick/src/main/java/com/gitee/starblues/spring/JdkSameTypeParamProxyFactory.java index 2e9cfd0..ffef67f 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/JdkSameTypeParamProxyFactory.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/JdkSameTypeParamProxyFactory.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContext.java b/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContext.java index a6e5a53..efba245 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContext.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContext.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContextProxy.java b/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContextProxy.java index bfda63b..f38cd16 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContextProxy.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContextProxy.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/ProxyFactory.java b/spring-brick/src/main/java/com/gitee/starblues/spring/ProxyFactory.java index 9ff2087..e2c9db3 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/ProxyFactory.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/ProxyFactory.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/ResolvePluginThreadClassLoader.java b/spring-brick/src/main/java/com/gitee/starblues/spring/ResolvePluginThreadClassLoader.java index f2191e9..dfd84e5 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/ResolvePluginThreadClassLoader.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/ResolvePluginThreadClassLoader.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/SpringBeanFactory.java b/spring-brick/src/main/java/com/gitee/starblues/spring/SpringBeanFactory.java index 545728f..fed6f7c 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/SpringBeanFactory.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/SpringBeanFactory.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/SpringPluginHook.java b/spring-brick/src/main/java/com/gitee/starblues/spring/SpringPluginHook.java index 54a121d..bda373f 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/SpringPluginHook.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/SpringPluginHook.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/WebConfig.java b/spring-brick/src/main/java/com/gitee/starblues/spring/WebConfig.java index a056f33..1cc006e 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/WebConfig.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/WebConfig.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/environment/EmptyEnvironmentProvider.java b/spring-brick/src/main/java/com/gitee/starblues/spring/environment/EmptyEnvironmentProvider.java index 69ca692..a9ed7b7 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/environment/EmptyEnvironmentProvider.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/environment/EmptyEnvironmentProvider.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/environment/EnvironmentProvider.java b/spring-brick/src/main/java/com/gitee/starblues/spring/environment/EnvironmentProvider.java index a4e1fac..8ab6be9 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/environment/EnvironmentProvider.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/environment/EnvironmentProvider.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/environment/MainSpringBootEnvironmentProvider.java b/spring-brick/src/main/java/com/gitee/starblues/spring/environment/MainSpringBootEnvironmentProvider.java index 84106b3..e126ba7 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/environment/MainSpringBootEnvironmentProvider.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/environment/MainSpringBootEnvironmentProvider.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/environment/MapEnvironmentProvider.java b/spring-brick/src/main/java/com/gitee/starblues/spring/environment/MapEnvironmentProvider.java index 6a25cb1..095462c 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/environment/MapEnvironmentProvider.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/environment/MapEnvironmentProvider.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/extract/DefaultExtractFactory.java b/spring-brick/src/main/java/com/gitee/starblues/spring/extract/DefaultExtractFactory.java index ed5d69b..93d846f 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/extract/DefaultExtractFactory.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/extract/DefaultExtractFactory.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/extract/DefaultOpExtractFactory.java b/spring-brick/src/main/java/com/gitee/starblues/spring/extract/DefaultOpExtractFactory.java index 73096b2..0aacb0c 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/extract/DefaultOpExtractFactory.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/extract/DefaultOpExtractFactory.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/extract/ExtractCoordinate.java b/spring-brick/src/main/java/com/gitee/starblues/spring/extract/ExtractCoordinate.java index 8139983..01755e9 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/extract/ExtractCoordinate.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/extract/ExtractCoordinate.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/extract/ExtractFactory.java b/spring-brick/src/main/java/com/gitee/starblues/spring/extract/ExtractFactory.java index 898c572..7090fa9 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/extract/ExtractFactory.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/extract/ExtractFactory.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/extract/OpExtractFactory.java b/spring-brick/src/main/java/com/gitee/starblues/spring/extract/OpExtractFactory.java index 0a934b6..1ac04fa 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/extract/OpExtractFactory.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/extract/OpExtractFactory.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/invoke/DefaultInvokeSupperCache.java b/spring-brick/src/main/java/com/gitee/starblues/spring/invoke/DefaultInvokeSupperCache.java index 2917f8d..e993667 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/invoke/DefaultInvokeSupperCache.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/invoke/DefaultInvokeSupperCache.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/invoke/InvokeSupperCache.java b/spring-brick/src/main/java/com/gitee/starblues/spring/invoke/InvokeSupperCache.java index 8422c5c..5e8d923 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/invoke/InvokeSupperCache.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/invoke/InvokeSupperCache.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/invoke/SupperCache.java b/spring-brick/src/main/java/com/gitee/starblues/spring/invoke/SupperCache.java index de290f0..019aed0 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/invoke/SupperCache.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/invoke/SupperCache.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/web/PluginResource.java b/spring-brick/src/main/java/com/gitee/starblues/spring/web/PluginResource.java index d7e9bf9..533137f 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/web/PluginResource.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/web/PluginResource.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/web/PluginStaticResourceConfig.java b/spring-brick/src/main/java/com/gitee/starblues/spring/web/PluginStaticResourceConfig.java index 75eeafd..5be0e76 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/web/PluginStaticResourceConfig.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/web/PluginStaticResourceConfig.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/web/PluginStaticResourceResolver.java b/spring-brick/src/main/java/com/gitee/starblues/spring/web/PluginStaticResourceResolver.java index 09232f3..2d4243b 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/web/PluginStaticResourceResolver.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/web/PluginStaticResourceResolver.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/web/PluginStaticResourceWebMvcConfigurer.java b/spring-brick/src/main/java/com/gitee/starblues/spring/web/PluginStaticResourceWebMvcConfigurer.java index 984a198..c04dc7f 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/web/PluginStaticResourceWebMvcConfigurer.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/web/PluginStaticResourceWebMvcConfigurer.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/web/thymeleaf/PluginThymeleafInvolved.java b/spring-brick/src/main/java/com/gitee/starblues/spring/web/thymeleaf/PluginThymeleafInvolved.java index 333f0af..350a3f9 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/web/thymeleaf/PluginThymeleafInvolved.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/web/thymeleaf/PluginThymeleafInvolved.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/web/thymeleaf/ThymeleafConfig.java b/spring-brick/src/main/java/com/gitee/starblues/spring/web/thymeleaf/ThymeleafConfig.java index 479b1c7..a76cead 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/web/thymeleaf/ThymeleafConfig.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/web/thymeleaf/ThymeleafConfig.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/utils/AnnotationsUtils.java b/spring-brick/src/main/java/com/gitee/starblues/utils/AnnotationsUtils.java index 1347258..2487b72 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/utils/AnnotationsUtils.java +++ b/spring-brick/src/main/java/com/gitee/starblues/utils/AnnotationsUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/utils/ClassUtils.java b/spring-brick/src/main/java/com/gitee/starblues/utils/ClassUtils.java index 4ca5527..1ebd75e 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/utils/ClassUtils.java +++ b/spring-brick/src/main/java/com/gitee/starblues/utils/ClassUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/utils/LogUtils.java b/spring-brick/src/main/java/com/gitee/starblues/utils/LogUtils.java index c637552..56bcfdc 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/utils/LogUtils.java +++ b/spring-brick/src/main/java/com/gitee/starblues/utils/LogUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/utils/MsgUtils.java b/spring-brick/src/main/java/com/gitee/starblues/utils/MsgUtils.java index ed4da06..c17ba6a 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/utils/MsgUtils.java +++ b/spring-brick/src/main/java/com/gitee/starblues/utils/MsgUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/utils/Order.java b/spring-brick/src/main/java/com/gitee/starblues/utils/Order.java index 904c60e..fc7a185 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/utils/Order.java +++ b/spring-brick/src/main/java/com/gitee/starblues/utils/Order.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/utils/OrderPriority.java b/spring-brick/src/main/java/com/gitee/starblues/utils/OrderPriority.java index e96f4eb..0455a53 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/utils/OrderPriority.java +++ b/spring-brick/src/main/java/com/gitee/starblues/utils/OrderPriority.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/utils/OrderUtils.java b/spring-brick/src/main/java/com/gitee/starblues/utils/OrderUtils.java index ed15420..eb0c1fd 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/utils/OrderUtils.java +++ b/spring-brick/src/main/java/com/gitee/starblues/utils/OrderUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/utils/PluginConfigUtils.java b/spring-brick/src/main/java/com/gitee/starblues/utils/PluginConfigUtils.java index 961ce09..0189816 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/utils/PluginConfigUtils.java +++ b/spring-brick/src/main/java/com/gitee/starblues/utils/PluginConfigUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/utils/PluginFileUtils.java b/spring-brick/src/main/java/com/gitee/starblues/utils/PluginFileUtils.java index fb01b0d..d3ee784 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/utils/PluginFileUtils.java +++ b/spring-brick/src/main/java/com/gitee/starblues/utils/PluginFileUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/utils/ScanUtils.java b/spring-brick/src/main/java/com/gitee/starblues/utils/ScanUtils.java index d80fed9..837415b 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/utils/ScanUtils.java +++ b/spring-brick/src/main/java/com/gitee/starblues/utils/ScanUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/utils/SpringBeanCustomUtils.java b/spring-brick/src/main/java/com/gitee/starblues/utils/SpringBeanCustomUtils.java index f44d745..351a0d0 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/utils/SpringBeanCustomUtils.java +++ b/spring-brick/src/main/java/com/gitee/starblues/utils/SpringBeanCustomUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/main/java/com/gitee/starblues/utils/SpringBeanUtils.java b/spring-brick/src/main/java/com/gitee/starblues/utils/SpringBeanUtils.java index 8a971c9..74a9c0a 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/utils/SpringBeanUtils.java +++ b/spring-brick/src/main/java/com/gitee/starblues/utils/SpringBeanUtils.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/test/java/com/gitee/starblues/core/checker/DefaultPluginIsolationLauncherCheckerTest.java b/spring-brick/src/test/java/com/gitee/starblues/core/checker/DefaultPluginIsolationLauncherCheckerTest.java index 559b996..6bca703 100644 --- a/spring-brick/src/test/java/com/gitee/starblues/core/checker/DefaultPluginIsolationLauncherCheckerTest.java +++ b/spring-brick/src/test/java/com/gitee/starblues/core/checker/DefaultPluginIsolationLauncherCheckerTest.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-brick/src/test/java/com/gitee/starblues/core/version/SemverVersionInspectorTest.java b/spring-brick/src/test/java/com/gitee/starblues/core/version/SemverVersionInspectorTest.java index c8e87d7..2eaaf12 100644 --- a/spring-brick/src/test/java/com/gitee/starblues/core/version/SemverVersionInspectorTest.java +++ b/spring-brick/src/test/java/com/gitee/starblues/core/version/SemverVersionInspectorTest.java @@ -1,5 +1,5 @@ /** - * Copyright [2019-2022] [starBlues] + * Copyright [2019-Present] [starBlues] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. -- Gitee From 833cbddcdbe679dc1d2b4c80883caa170bb567ef Mon Sep 17 00:00:00 2001 From: StarBlues Date: Sat, 3 Dec 2022 14:26:36 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=86=85=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + README_zh.md | 2 +- .../EmptyMainApplicationContext.java | 12 +++++ .../ComposeSpringPluginProcessor.java | 6 ++- .../web/PluginControllerProcessor.java | 8 ++-- .../integration/user/DefaultPluginUser.java | 2 +- .../spring/MainApplicationContext.java | 17 ++++++- .../spring/MainApplicationContextProxy.java | 44 ++++++++++++++++--- .../starblues/utils/AnnotationsUtils.java | 1 + .../com/gitee/starblues/utils/ClassUtils.java | 1 + .../com/gitee/starblues/utils/LogUtils.java | 3 ++ .../com/gitee/starblues/utils/MsgUtils.java | 3 ++ .../java/com/gitee/starblues/utils/Order.java | 3 +- .../gitee/starblues/utils/OrderPriority.java | 3 +- .../com/gitee/starblues/utils/OrderUtils.java | 1 + .../starblues/utils/PluginConfigUtils.java | 1 + .../com/gitee/starblues/utils/ScanUtils.java | 1 + .../utils/SpringBeanCustomUtils.java | 29 +++++++++++- .../starblues/utils/SpringBeanUtils.java | 27 +++++++++++- update.md | 4 +- 20 files changed, 148 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index 7aa4af5..cee69c0 100644 --- a/.gitignore +++ b/.gitignore @@ -73,3 +73,4 @@ hs_err_pid* # custom springboot-plugin-framework-parent.zip springboot-plugin-framework-parent.zip + diff --git a/README_zh.md b/README_zh.md index 1d258e7..e078007 100644 --- a/README_zh.md +++ b/README_zh.md @@ -42,7 +42,7 @@ ### 运行环境 | Runtime Environment 1. jdk1.8+ 2. apache maven 3.6+ -3. spring-boot 2.0.0+ +3. spring-boot 2.3.1 ~ 2.6.14 ### 文档地址 | Document - [https://www.yuque.com/starblues/spring-brick-3.0.0](https://www.yuque.com/starblues/spring-brick-3.0.0) diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptyMainApplicationContext.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptyMainApplicationContext.java index de6aa82..fcb3e96 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptyMainApplicationContext.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptyMainApplicationContext.java @@ -20,6 +20,8 @@ import com.gitee.starblues.spring.MainApplicationContext; import com.gitee.starblues.spring.SpringBeanFactory; import com.gitee.starblues.spring.environment.EmptyEnvironmentProvider; import com.gitee.starblues.spring.environment.EnvironmentProvider; +import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter; +import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; import java.util.Collections; import java.util.Map; @@ -86,4 +88,14 @@ public class EmptyMainApplicationContext implements MainApplicationContext { return null; } + @Override + public RequestMappingHandlerMapping getRequestMappingHandlerMapping() { + return null; + } + + @Override + public RequestMappingHandlerAdapter getRequestMappingHandlerAdapter() { + return null; + } + } diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ComposeSpringPluginProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ComposeSpringPluginProcessor.java index 85a5667..1bc8ecd 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ComposeSpringPluginProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ComposeSpringPluginProcessor.java @@ -26,11 +26,14 @@ import com.gitee.starblues.bootstrap.processor.web.PluginStaticResourceProcessor import com.gitee.starblues.bootstrap.processor.web.thymeleaf.PluginThymeleafProcessor; import com.gitee.starblues.bootstrap.utils.AnnotationUtils; import com.gitee.starblues.bootstrap.utils.ProcessorUtils; +import com.gitee.starblues.spring.MainApplicationContext; import com.gitee.starblues.utils.OrderUtils; import com.gitee.starblues.utils.ObjectUtils; import com.gitee.starblues.utils.OrderPriority; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter; +import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; import java.util.ArrayList; import java.util.List; @@ -164,7 +167,8 @@ public class ComposeSpringPluginProcessor implements SpringPluginProcessor { * @param processors 处理者容器集合 */ protected void addDefaultWebEnvProcessors(ProcessorContext context, List processors){ - if(!context.getMainApplicationContext().isWebEnvironment()){ + MainApplicationContext mainApplicationContext = context.getMainApplicationContext(); + if(!mainApplicationContext.isWebEnvironment()){ // 主程序不是web类型, 则不进行注册 return; } diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginControllerProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginControllerProcessor.java index df3ba9c..60ac16c 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginControllerProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginControllerProcessor.java @@ -22,6 +22,7 @@ import com.gitee.starblues.bootstrap.processor.SpringPluginProcessor; import com.gitee.starblues.bootstrap.utils.AnnotationUtils; import com.gitee.starblues.bootstrap.utils.DestroyUtils; import com.gitee.starblues.integration.IntegrationConfiguration; +import com.gitee.starblues.spring.MainApplicationContext; import com.gitee.starblues.spring.SpringBeanFactory; import com.gitee.starblues.utils.*; import lombok.AllArgsConstructor; @@ -69,10 +70,9 @@ public class PluginControllerProcessor implements SpringPluginProcessor { @Override public void initialize(ProcessorContext processorContext) throws ProcessorException { - SpringBeanFactory mainBeanFactory = processorContext.getMainBeanFactory(); - this.requestMappingHandlerMapping = mainBeanFactory.getBean(RequestMappingHandlerMapping.class); - this.handlerAdapter = SpringBeanCustomUtils.getExistBean(processorContext.getMainApplicationContext(), - RequestMappingHandlerAdapter.class); + MainApplicationContext mainApplicationContext = processorContext.getMainApplicationContext(); + this.requestMappingHandlerMapping = mainApplicationContext.getRequestMappingHandlerMapping(); + this.handlerAdapter = mainApplicationContext.getRequestMappingHandlerAdapter(); canRegistered.set(true); } diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/user/DefaultPluginUser.java b/spring-brick/src/main/java/com/gitee/starblues/integration/user/DefaultPluginUser.java index 1302585..7639555 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/user/DefaultPluginUser.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/user/DefaultPluginUser.java @@ -72,7 +72,7 @@ public class DefaultPluginUser implements PluginUser{ applicationContexts.forEach((k,v)->{ Object existBean = SpringBeanCustomUtils.getExistBean(v, name); if(existBean != null){ - pluginBeans.put(k, v); + pluginBeans.put(k, existBean); } }); return new BeanWrapper<>(mainBean, pluginBeans); diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContext.java b/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContext.java index efba245..9bcd5e9 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContext.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContext.java @@ -17,6 +17,8 @@ package com.gitee.starblues.spring; import com.gitee.starblues.spring.environment.EnvironmentProvider; +import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter; +import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; import java.util.Map; import java.util.Objects; @@ -35,7 +37,6 @@ public interface MainApplicationContext extends ApplicationContext { */ Map> getConfigurableEnvironment(); - /** * 得到主程序配置的 Provider * @return EnvironmentProvider @@ -54,7 +55,6 @@ public interface MainApplicationContext extends ApplicationContext { */ String[] getDefaultProfiles(); - /** * 从主程序获取依赖 * @@ -76,4 +76,17 @@ public interface MainApplicationContext extends ApplicationContext { */ Object getSourceApplicationContext(); + /** + * 获取主程序的 RequestMappingHandlerMapping + * @return RequestMappingHandlerMapping + */ + RequestMappingHandlerMapping getRequestMappingHandlerMapping(); + + /** + * 获取主程序的 RequestMappingHandlerAdapter + * @return RequestMappingHandlerAdapter + */ + RequestMappingHandlerAdapter getRequestMappingHandlerAdapter(); + + } diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContextProxy.java b/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContextProxy.java index f38cd16..bf1c7ed 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContextProxy.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContextProxy.java @@ -19,6 +19,8 @@ package com.gitee.starblues.spring; import com.gitee.starblues.spring.environment.EnvironmentProvider; import com.gitee.starblues.spring.environment.MainSpringBootEnvironmentProvider; import com.gitee.starblues.utils.ObjectUtils; +import com.gitee.starblues.utils.SpringBeanUtils; +import lombok.extern.slf4j.Slf4j; import org.springframework.boot.web.reactive.context.AnnotationConfigReactiveWebServerApplicationContext; import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext; import org.springframework.context.support.GenericApplicationContext; @@ -26,25 +28,30 @@ import org.springframework.core.env.ConfigurableEnvironment; import org.springframework.core.env.EnumerablePropertySource; import org.springframework.core.env.MutablePropertySources; import org.springframework.core.env.PropertySource; +import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter; +import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.Map; +import java.util.*; /** * 主程序 ApplicationContext 的实现 * @author starBlues * @version 3.0.1 */ +@Slf4j public class MainApplicationContextProxy extends ApplicationContextProxy implements MainApplicationContext{ + private final static String REQUEST_MAPPING_BANE_NAME = "requestMappingHandlerMapping"; + private final static String REQUEST_MAPPING_ADAPTER_BANE_NAME = "requestMappingHandlerAdapter"; + private final GenericApplicationContext applicationContext; - private final boolean isWebEnvironment; + private boolean isWebEnvironment; + + private final RequestMappingHandlerMapping requestMappingHandlerMapping; + private final RequestMappingHandlerAdapter requestMappingHandlerAdapter; public MainApplicationContextProxy(GenericApplicationContext applicationContext) { - super(applicationContext.getBeanFactory()); - this.applicationContext = applicationContext; - this.isWebEnvironment = getIsWebEnvironment(applicationContext); + this(applicationContext, null); } public MainApplicationContextProxy(GenericApplicationContext applicationContext, @@ -52,6 +59,19 @@ public class MainApplicationContextProxy extends ApplicationContextProxy impleme super(applicationContext.getBeanFactory(), autoCloseable); this.applicationContext = applicationContext; this.isWebEnvironment = getIsWebEnvironment(applicationContext); + if(isWebEnvironment){ + this.requestMappingHandlerMapping = SpringBeanUtils.getExistBean( + applicationContext, REQUEST_MAPPING_BANE_NAME, RequestMappingHandlerMapping.class); + this.requestMappingHandlerAdapter = SpringBeanUtils.getExistBean( + applicationContext, REQUEST_MAPPING_ADAPTER_BANE_NAME, RequestMappingHandlerAdapter.class); + if(this.requestMappingHandlerMapping == null || this.requestMappingHandlerAdapter == null){ + log.error("主程序环境异常, 插件不能注接口!"); + isWebEnvironment = false; + } + } else { + this.requestMappingHandlerMapping = null; + this.requestMappingHandlerAdapter = null; + } } @Override @@ -110,6 +130,16 @@ public class MainApplicationContextProxy extends ApplicationContextProxy impleme return applicationContext; } + @Override + public RequestMappingHandlerMapping getRequestMappingHandlerMapping() { + return requestMappingHandlerMapping; + } + + @Override + public RequestMappingHandlerAdapter getRequestMappingHandlerAdapter() { + return requestMappingHandlerAdapter; + } + @Override public Object getSourceBeanFactory() { return applicationContext.getBeanFactory(); diff --git a/spring-brick/src/main/java/com/gitee/starblues/utils/AnnotationsUtils.java b/spring-brick/src/main/java/com/gitee/starblues/utils/AnnotationsUtils.java index 2487b72..def02b2 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/utils/AnnotationsUtils.java +++ b/spring-brick/src/main/java/com/gitee/starblues/utils/AnnotationsUtils.java @@ -22,6 +22,7 @@ import java.lang.annotation.Annotation; * 注解工具 * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class AnnotationsUtils { diff --git a/spring-brick/src/main/java/com/gitee/starblues/utils/ClassUtils.java b/spring-brick/src/main/java/com/gitee/starblues/utils/ClassUtils.java index 1ebd75e..3cb3189 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/utils/ClassUtils.java +++ b/spring-brick/src/main/java/com/gitee/starblues/utils/ClassUtils.java @@ -28,6 +28,7 @@ import java.util.Map; * 类工具类 * * @author starBlues + * @since 2.4.0 * @version 2.4.0 */ public class ClassUtils { diff --git a/spring-brick/src/main/java/com/gitee/starblues/utils/LogUtils.java b/spring-brick/src/main/java/com/gitee/starblues/utils/LogUtils.java index 56bcfdc..ac9f547 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/utils/LogUtils.java +++ b/spring-brick/src/main/java/com/gitee/starblues/utils/LogUtils.java @@ -20,7 +20,10 @@ import com.gitee.starblues.core.descriptor.PluginDescriptor; import org.slf4j.Logger; /** + * 日志打印工具 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class LogUtils { diff --git a/spring-brick/src/main/java/com/gitee/starblues/utils/MsgUtils.java b/spring-brick/src/main/java/com/gitee/starblues/utils/MsgUtils.java index c17ba6a..16628b2 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/utils/MsgUtils.java +++ b/spring-brick/src/main/java/com/gitee/starblues/utils/MsgUtils.java @@ -20,7 +20,10 @@ package com.gitee.starblues.utils; import com.gitee.starblues.core.descriptor.PluginDescriptor; /** + * msg 工具 + * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public abstract class MsgUtils { diff --git a/spring-brick/src/main/java/com/gitee/starblues/utils/Order.java b/spring-brick/src/main/java/com/gitee/starblues/utils/Order.java index fc7a185..8f3e076 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/utils/Order.java +++ b/spring-brick/src/main/java/com/gitee/starblues/utils/Order.java @@ -19,7 +19,8 @@ package com.gitee.starblues.utils; /** * 排序接口 * @author starBlues - * @version 1.0 + * @since 1.0.0 + * @version 1.0.0 */ public interface Order { diff --git a/spring-brick/src/main/java/com/gitee/starblues/utils/OrderPriority.java b/spring-brick/src/main/java/com/gitee/starblues/utils/OrderPriority.java index 0455a53..bf4126f 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/utils/OrderPriority.java +++ b/spring-brick/src/main/java/com/gitee/starblues/utils/OrderPriority.java @@ -20,7 +20,8 @@ package com.gitee.starblues.utils; * 顺序优先级 * * @author starBlues - * @version 1.0 + * @since 1.0.0 + * @version 1.0.0 */ public class OrderPriority { /** diff --git a/spring-brick/src/main/java/com/gitee/starblues/utils/OrderUtils.java b/spring-brick/src/main/java/com/gitee/starblues/utils/OrderUtils.java index eb0c1fd..89720e8 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/utils/OrderUtils.java +++ b/spring-brick/src/main/java/com/gitee/starblues/utils/OrderUtils.java @@ -25,6 +25,7 @@ import java.util.function.Function; * 通用工具 * * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class OrderUtils { diff --git a/spring-brick/src/main/java/com/gitee/starblues/utils/PluginConfigUtils.java b/spring-brick/src/main/java/com/gitee/starblues/utils/PluginConfigUtils.java index 0189816..d6d8657 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/utils/PluginConfigUtils.java +++ b/spring-brick/src/main/java/com/gitee/starblues/utils/PluginConfigUtils.java @@ -22,6 +22,7 @@ import com.gitee.starblues.integration.IntegrationConfiguration; /** * 插件配置工具类 * @author starBlues + * @since 3.0.0 * @version 3.0.0 */ public class PluginConfigUtils { diff --git a/spring-brick/src/main/java/com/gitee/starblues/utils/ScanUtils.java b/spring-brick/src/main/java/com/gitee/starblues/utils/ScanUtils.java index 837415b..0fb3bd1 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/utils/ScanUtils.java +++ b/spring-brick/src/main/java/com/gitee/starblues/utils/ScanUtils.java @@ -39,6 +39,7 @@ import java.util.stream.Stream; * * @author starBlues * @version 2.2.2 + * @version 2.2.2 */ public class ScanUtils { diff --git a/spring-brick/src/main/java/com/gitee/starblues/utils/SpringBeanCustomUtils.java b/spring-brick/src/main/java/com/gitee/starblues/utils/SpringBeanCustomUtils.java index 351a0d0..2593e82 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/utils/SpringBeanCustomUtils.java +++ b/spring-brick/src/main/java/com/gitee/starblues/utils/SpringBeanCustomUtils.java @@ -19,6 +19,7 @@ package com.gitee.starblues.utils; import com.gitee.starblues.spring.ApplicationContext; import com.gitee.starblues.spring.SpringBeanFactory; import org.springframework.util.ClassUtils; +import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; import java.lang.annotation.Annotation; import java.util.*; @@ -26,7 +27,8 @@ import java.util.*; /** * 自定义插件bean工具类 * @author starBlues - * @version 3.0.0 + * @since 3.0.0 + * @version 3.1.1 */ public class SpringBeanCustomUtils { @@ -94,6 +96,31 @@ public class SpringBeanCustomUtils { } } + /** + * 获取存在的Bean。名称和类型任意批量即可返回 + * @param applicationContext applicationContext + * @param beanName bean名称 + * @param beanClass bean class + * @return T + * @param bean 类型 + */ + public static T getExistBean(ApplicationContext applicationContext, String beanName, Class beanClass){ + SpringBeanFactory springBeanFactory = applicationContext.getSpringBeanFactory(); + Map beansOfTypeMap = springBeanFactory.getBeansOfType(beanClass); + if(ObjectUtils.isEmpty(beansOfTypeMap)){ + return null; + } + Set> entries = beansOfTypeMap.entrySet(); + for (Map.Entry entry : entries) { + String key = entry.getKey(); + T value = entry.getValue(); + if(Objects.equals(beanName, key) || Objects.equals(value.getClass().getName(), beanClass.getName())){ + return value; + } + } + return null; + } + /** * 通过注解获取bean * @param applicationContext applicationContext diff --git a/spring-brick/src/main/java/com/gitee/starblues/utils/SpringBeanUtils.java b/spring-brick/src/main/java/com/gitee/starblues/utils/SpringBeanUtils.java index 74a9c0a..5f4a956 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/utils/SpringBeanUtils.java +++ b/spring-brick/src/main/java/com/gitee/starblues/utils/SpringBeanUtils.java @@ -24,7 +24,8 @@ import java.util.*; /** * 插件bean工具类 * @author starBlues - * @version 3.0.0 + * @since 3.0.0 + * @version 3.1.1 */ public class SpringBeanUtils { @@ -88,6 +89,30 @@ public class SpringBeanUtils { } } + /** + * 获取存在的Bean。名称和类型任意批量即可返回 + * @param applicationContext applicationContext + * @param beanName bean名称 + * @param beanClass bean class + * @return T + * @param bean 类型 + */ + public static T getExistBean(ApplicationContext applicationContext, String beanName, Class beanClass){ + Map beansOfTypeMap = applicationContext.getBeansOfType(beanClass); + if(ObjectUtils.isEmpty(beansOfTypeMap)){ + return null; + } + Set> entries = beansOfTypeMap.entrySet(); + for (Map.Entry entry : entries) { + String key = entry.getKey(); + T value = entry.getValue(); + if(beanName.equals(key) || Objects.equals(value.getClass().getName(), beanClass.getName())){ + return value; + } + } + return null; + } + /** * 通过注解获取bean * @param applicationContext applicationContext diff --git a/update.md b/update.md index 9814a7a..9187533 100644 --- a/update.md +++ b/update.md @@ -1,4 +1,6 @@ 1. 【新增】主程序可通过`pluginInfo`对象获取插件的`ClassLoader`。 2. 【新增】插件配置文件`spring.profiles.active`的值可跟随主程序配置切换。 3. 【新增】插件的日志可配置为跟随主程序日志配置打印。 -4. 【优化】优化插件隔离模式下,内存占用过大的问题。 \ No newline at end of file +4. 【优化】优化插件隔离模式下,内存占用过大的问题。 +5. 【修复[#I61INH](https://gitee.com/starblues/springboot-plugin-framework-parent/issues/I61INH)】PluginUser通过 Bean名称获取 Bean 对象接口返回的Wrapper中插件的类不对 +6. \ No newline at end of file -- Gitee From fbb1a674d221a4e11fd33a4118347bcb5bfd60d4 Mon Sep 17 00:00:00 2001 From: StarBlues Date: Sun, 4 Dec 2022 10:57:17 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E4=B8=B0=E5=AF=8C=E6=89=93=E5=8C=85MANIFES?= =?UTF-8?q?T.MF=E5=86=85=E5=AE=B9,=20=E4=BC=98=E5=8C=96=E9=9A=94=E7=A6=BB?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E5=86=85=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EmptyMainApplicationContext.java | 5 + .../ComposeSpringPluginProcessor.java | 6 +- .../web/PluginControllerProcessor.java | 2 +- .../gitee/starblues/common/ManifestKey.java | 7 +- .../cache/CacheExpirationTrigger.java | 2 +- .../resource/cache/CacheLinkedHashMap.java | 54 ++++ .../cache/DefaultCacheExpirationTrigger.java | 3 +- .../classloader/resource/cache/Entity.java | 51 ++++ .../resource/cache/LRUMapCache.java | 79 ++--- .../resource/cache/LRUMultiMapListCache.java | 289 ++++++++++++++++++ .../cache/LRUMultiMapUnifiedListCache.java | 288 +++++++++++++++++ .../resource/cache/MultiCache.java | 49 +++ .../storage/CacheFastResourceStorage.java | 30 +- .../CacheLowMemoryResourceStorage.java | 1 + .../ResourceLoaderFactoryGetter.java | 11 +- .../starblues/loader/utils/ObjectUtils.java | 25 +- .../plugin/pack/AbstractPackagerMojo.java | 5 +- .../plugin/pack/BasicRepackager.java | 20 +- .../starblues/plugin/pack/RepackageMojo.java | 3 +- .../plugin/pack/main/JarNestPackager.java | 20 +- .../plugin/pack/main/MainRepackager.java | 9 +- .../plugin/pack/prod/DirProdRepackager.java | 7 +- .../pack/prod/JarNestedProdRepackager.java | 7 +- .../plugin/pack/prod/ZipProdRepackager.java | 8 +- .../plugin/pack/utils/CommonUtils.java | 25 ++ .../AutoIntegrationConfiguration.java | 15 + .../DefaultIntegrationConfiguration.java | 5 + .../ExtendPointWebConfiguration.java | 1 + .../integration/IntegrationConfiguration.java | 6 + .../integration/listener/SwaggerListener.java | 3 +- .../spring/MainApplicationContext.java | 6 + .../spring/MainApplicationContextProxy.java | 15 +- .../spring-configuration-metadata.json | 9 +- 33 files changed, 951 insertions(+), 115 deletions(-) create mode 100644 spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/CacheLinkedHashMap.java create mode 100644 spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/Entity.java create mode 100644 spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/LRUMultiMapListCache.java create mode 100644 spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/LRUMultiMapUnifiedListCache.java create mode 100644 spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/MultiCache.java diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptyMainApplicationContext.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptyMainApplicationContext.java index fcb3e96..9bbfc0a 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptyMainApplicationContext.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/EmptyMainApplicationContext.java @@ -88,6 +88,11 @@ public class EmptyMainApplicationContext implements MainApplicationContext { return null; } + @Override + public boolean isRegisterController() { + return false; + } + @Override public RequestMappingHandlerMapping getRequestMappingHandlerMapping() { return null; diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ComposeSpringPluginProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ComposeSpringPluginProcessor.java index 1bc8ecd..1717f76 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ComposeSpringPluginProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/ComposeSpringPluginProcessor.java @@ -44,7 +44,7 @@ import java.util.stream.Collectors; * * @author starBlues * @since 3.0.0 - * @version 3.0.3 + * @version 3.1.1 */ public class ComposeSpringPluginProcessor implements SpringPluginProcessor { @@ -179,7 +179,9 @@ public class ComposeSpringPluginProcessor implements SpringPluginProcessor { return; } context.getWebConfig().setEnable(true); - processors.add(new PluginControllerProcessor()); + if(mainApplicationContext.isRegisterController()){ + processors.add(new PluginControllerProcessor()); + } processors.add(new PluginInterceptorsProcessor()); processors.add(new PluginStaticResourceProcessor()); processors.add(new PluginThymeleafProcessor()); diff --git a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginControllerProcessor.java b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginControllerProcessor.java index 60ac16c..f8a5819 100644 --- a/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginControllerProcessor.java +++ b/spring-brick-bootstrap/src/main/java/com/gitee/starblues/bootstrap/processor/web/PluginControllerProcessor.java @@ -53,7 +53,7 @@ import java.util.function.Predicate; * * @author starBlues * @since 3.0.0 - * @version 3.0.3 + * @version 3.1.1 */ public class PluginControllerProcessor implements SpringPluginProcessor { diff --git a/spring-brick-common/src/main/java/com/gitee/starblues/common/ManifestKey.java b/spring-brick-common/src/main/java/com/gitee/starblues/common/ManifestKey.java index 96f80a9..0a33924 100644 --- a/spring-brick-common/src/main/java/com/gitee/starblues/common/ManifestKey.java +++ b/spring-brick-common/src/main/java/com/gitee/starblues/common/ManifestKey.java @@ -23,7 +23,7 @@ import java.util.jar.Attributes; * * @author starBlues * @since 3.0.0 - * @version 3.0.0 + * @version 3.1.1 */ public class ManifestKey { @@ -32,6 +32,11 @@ public class ManifestKey { */ public static final String MANIFEST_VERSION = "Manifest-Version"; + /** + * Manifest Build Time + */ + public static final String BUILD_TIME = "Build-Time"; + /** * Manifest-version: 1.0 */ diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/CacheExpirationTrigger.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/CacheExpirationTrigger.java index 6653637..6aa8855 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/CacheExpirationTrigger.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/CacheExpirationTrigger.java @@ -42,7 +42,7 @@ public interface CacheExpirationTrigger { * @param K * @param V */ - Cache getCache(String key, Supplier> cacheSupplier); + Cache getCache(String key, Supplier> cacheSupplier); /** * 移除缓存过期调度 diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/CacheLinkedHashMap.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/CacheLinkedHashMap.java new file mode 100644 index 0000000..df76398 --- /dev/null +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/CacheLinkedHashMap.java @@ -0,0 +1,54 @@ +package com.gitee.starblues.loader.classloader.resource.cache; + +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * 注释 + * + * @author starBlues + * @since 1.0.0 + * @version 1.0.0 + */ +public class CacheLinkedHashMap extends LinkedHashMap { + + private final int size; + private final RemoveListener removeListener; + + public CacheLinkedHashMap(int size) { + this(size, null); + } + + public CacheLinkedHashMap(int size, RemoveListener removeListener) { + super(size + 1, 1.0f, true); + this.size = size; + this.removeListener = removeListener; + } + + @Override + protected boolean removeEldestEntry(Map.Entry eldest) { + if (size == 0) { + return false; + } + int removeSize = size() - size; + if(removeSize > 0){ + if(removeListener != null){ + try { + removeListener.remove(eldest); + } catch (Exception e){ + // 忽略 + } + } + return true; + } + return false; + } + + @FunctionalInterface + public interface RemoveListener{ + + void remove(Map.Entry eldest); + + } + +} \ No newline at end of file diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/DefaultCacheExpirationTrigger.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/DefaultCacheExpirationTrigger.java index 93f92a5..5b5b5e7 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/DefaultCacheExpirationTrigger.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/DefaultCacheExpirationTrigger.java @@ -102,8 +102,7 @@ public class DefaultCacheExpirationTrigger implements CacheExpirationTrigger{ } cacheMap.forEach((k,v)->{ try { - int i = v.cleanExpired(); - System.out.println(k + "清除缓存: " + i); + v.cleanExpired(); } catch (Exception e){ // log.warn("Checking clean cache:{} Exceptions. {}", k, e.getMessage()); } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/Entity.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/Entity.java new file mode 100644 index 0000000..10eed19 --- /dev/null +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/Entity.java @@ -0,0 +1,51 @@ +/** + * Copyright [2019-Present] [starBlues] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.gitee.starblues.loader.classloader.resource.cache; + +/** + * 缓存元素 + * + * @author starBlues + * @since 3.1.1 + * @version 3.1.1 + */ +public class Entity { + + protected final V value; + protected final long ttl; + protected long lastAccessTimestamp; + + public Entity(V value, long ttl) { + this.value = value; + this.ttl = ttl; + + this.lastAccessTimestamp = System.currentTimeMillis(); + } + + public boolean isExpired() { + if (ttl == 0) { + return false; + } + return lastAccessTimestamp + ttl < System.currentTimeMillis(); + } + + public V getValue() { + lastAccessTimestamp = System.currentTimeMillis(); + return value; + } + +} diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/LRUMapCache.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/LRUMapCache.java index c6ebac9..e4ee7ed 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/LRUMapCache.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/LRUMapCache.java @@ -18,8 +18,8 @@ package com.gitee.starblues.loader.classloader.resource.cache; import java.util.Iterator; import java.util.LinkedHashMap; + import java.util.Map; -import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.StampedLock; import java.util.function.Consumer; import java.util.function.Supplier; @@ -62,7 +62,17 @@ public class LRUMapCache implements Cache{ @Override public int size() { - return cacheMap.size(); + long stamp = lock.tryOptimisticRead(); + int size = cacheMap.size(); + if(!lock.validate(stamp)){ + stamp = lock.readLock(); + try { + size = cacheMap.size(); + } finally { + lock.unlockRead(stamp); + } + } + return size; } @Override @@ -190,69 +200,28 @@ public class LRUMapCache implements Cache{ public int cleanExpired(boolean isLock) { if(!isLock){ - cacheMap.values().removeIf(Entity::isExpired); - return 0; + return actualCleanExpired(); } long stamp = lock.writeLock(); try { - AtomicInteger count = new AtomicInteger(0); - cacheMap.values().removeIf(v->{ - if(v.isExpired()){ - count.addAndGet(1); - return true; - } else { - return false; - } - }); - return count.get(); + return actualCleanExpired(); } finally { lock.unlockWrite(stamp); } } - private static class CacheLinkedHashMap extends LinkedHashMap{ - - private final int size; - - private CacheLinkedHashMap(int size) { - super(size + 1, 1.0f, true); - this.size = size; - } - - @Override - protected boolean removeEldestEntry(Map.Entry eldest) { - if (size == 0) { - return false; - } - return size() > size; - } - } - - private static class Entity { - - private final V value; - private final long ttl; - private long lastAccessTimestamp; - - public Entity(V value, long ttl) { - this.value = value; - this.ttl = ttl; - - this.lastAccessTimestamp = System.currentTimeMillis(); - } - - public boolean isExpired() { - if (ttl == 0) { - return false; + private int actualCleanExpired(){ + Iterator>> cacheMapIterator = cacheMap.entrySet().iterator(); + int removeCount = 0; + while (cacheMapIterator.hasNext()){ + Map.Entry> entityMap = cacheMapIterator.next(); + Entity value = entityMap.getValue(); + if(value == null || value.isExpired()){ + cacheMapIterator.remove(); + removeCount++; } - return lastAccessTimestamp + ttl < System.currentTimeMillis(); } - - public V getValue() { - lastAccessTimestamp = System.currentTimeMillis(); - return value; - } - + return removeCount; } } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/LRUMultiMapListCache.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/LRUMultiMapListCache.java new file mode 100644 index 0000000..f331106 --- /dev/null +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/LRUMultiMapListCache.java @@ -0,0 +1,289 @@ +/** + * Copyright [2019-Present] [starBlues] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.gitee.starblues.loader.classloader.resource.cache; + +import com.gitee.starblues.loader.utils.ObjectUtils; + +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.locks.StampedLock; +import java.util.function.Consumer; +import java.util.function.Supplier; +import java.util.stream.Collectors; + +/** + * LRU MultiMap List 缓存实现。list 集合中的元素单个过期 + * + * @author starBlues + * @since 3.1.1 + * @version 3.1.1 + */ +@Deprecated +public class LRUMultiMapListCache implements MultiCache{ + + private final Map>> cacheMap; + + private final StampedLock lock = new StampedLock(); + + private final int maxSize; + private final long timeout; + + private final AtomicInteger size = new AtomicInteger(0); + + public LRUMultiMapListCache(int maxSize, long timeout){ + this.maxSize = maxSize; + this.timeout = timeout; + this.cacheMap = new CacheLinkedHashMap>>(maxSize, entry->{ + List> value = entry.getValue(); + if(value != null){ + size.addAndGet(-value.size()); + } + }); + } + + @Override + public void put(K key, Collection value) { + if(ObjectUtils.isEmpty(value)){ + return; + } + long stamp = lock.writeLock(); + try { + List> entityAddedList = value.stream() + .map(v-> new Entity<>(v, timeout)) + .collect(Collectors.toList()); + if (isFull(key)) { + cleanExpired(false); + } + List> entityList = cacheMap.computeIfAbsent(key, k -> new ArrayList<>()); + entityList.addAll(entityAddedList); + size.addAndGet(value.size()); + } finally { + lock.unlockWrite(stamp); + } + } + + @SuppressWarnings("unchecked") + @Override + public void putSingle(K key, V value) { + put(key, ObjectUtils.toList(value)); + } + + @Override + public V getFirst(K key) { + long stamp = lock.tryOptimisticRead(); + List> entityList = cacheMap.get(key); + if(!lock.validate(stamp)){ + stamp = lock.readLock(); + try { + entityList = cacheMap.get(key); + } finally { + lock.unlockRead(stamp); + } + } + if(ObjectUtils.isEmpty(entityList)){ + return null; + } + Iterator> iterator = entityList.iterator(); + while (iterator.hasNext()){ + Entity entity = iterator.next(); + if(entity.isExpired()){ + iterator.remove(); + size.addAndGet(-1); + } else { + return entity.getValue(); + } + } + return null; + } + + @Override + public int size() { + long stamp = lock.tryOptimisticRead(); + int s = size.get(); + if(!lock.validate(stamp)){ + stamp = lock.readLock(); + try { + s = size.get(); + } finally { + lock.unlockRead(stamp); + } + } + return s; + } + + @Override + public boolean containsKey(K key) { + return get(key) != null; + } + + @Override + public Collection get(K key) { + long stamp = lock.tryOptimisticRead(); + List> entityList = cacheMap.get(key); + if(!lock.validate(stamp)){ + stamp = lock.readLock(); + try { + entityList = cacheMap.get(key); + } finally { + lock.unlockRead(stamp); + } + } + if(ObjectUtils.isEmpty(entityList)){ + return null; + } + Iterator> iterator = entityList.iterator(); + List result = new ArrayList<>(entityList.size()); + while (iterator.hasNext()){ + Entity entity = iterator.next(); + if(entity.isExpired()){ + iterator.remove(); + size.addAndGet(-1); + } else { + result.add(entity.getValue()); + } + } + return result; + } + + @Override + public Collection getOrDefault(K key, Supplier> supplier, boolean defaultAdded) { + Collection collection = get(key); + if(!ObjectUtils.isEmpty(collection)){ + return collection; + } + Collection addCollection = supplier.get(); + if(ObjectUtils.isEmpty(addCollection)){ + return null; + } + if(defaultAdded){ + put(key, addCollection); + return addCollection; + } + return null; + } + + + + @Override + public Collection remove(K key) { + long stamp = lock.writeLock(); + try { + List> cacheValue = cacheMap.remove(key); + if (cacheValue == null) { + return null; + } + size.addAndGet(-cacheValue.size()); + return cacheValue.stream() + .map(Entity::getValue) + .collect(Collectors.toList()); + } finally { + lock.unlockWrite(stamp); + } + } + + @Override + public void clear() { + clear(null); + } + + @Override + public void clear(Consumer> consumer) { + long stamp = lock.writeLock(); + try { + if(consumer == null){ + cacheMap.clear(); + return; + } + Iterator>>> iterator = cacheMap.entrySet().iterator(); + while (iterator.hasNext()){ + try { + Map.Entry>> entityMap = iterator.next(); + List> entityList = entityMap.getValue(); + if(entityList == null){ + iterator.remove(); + continue; + } + List values = entityList.stream().map(Entity::getValue).collect(Collectors.toList()); + consumer.accept(values); + iterator.remove(); + } catch (Exception e){ + // 忽略 + } + } + } finally { + size.set(0); + lock.unlockWrite(stamp); + } + } + + @Override + public int cleanExpired() { + return cleanExpired(true); + } + + private boolean isFull(K key) { + if (maxSize == 0) { + return false; + } + if(size.get() < maxSize){ + return false; + } + return !cacheMap.containsKey(key); + } + + public int cleanExpired(boolean isLock) { + if(!isLock){ + return actualCleanExpired(); + } + long stamp = lock.writeLock(); + try { + return actualCleanExpired(); + } finally { + lock.unlockWrite(stamp); + } + } + + private int actualCleanExpired(){ + Iterator>>> cacheMapIterator = cacheMap.entrySet().iterator(); + int removeCount = 0; + while (cacheMapIterator.hasNext()){ + Map.Entry>> entityMap = cacheMapIterator.next(); + List> value = entityMap.getValue(); + if(ObjectUtils.isEmpty(value)){ + cacheMapIterator.remove(); + continue; + } + int valueSize = value.size(); + Iterator> entityIterator = value.iterator(); + int removeSize = 0; + while (entityIterator.hasNext()){ + Entity entity = entityIterator.next(); + if(entity == null || entity.isExpired()){ + entityIterator.remove(); + removeSize++; + } + } + if(valueSize == removeSize){ + cacheMapIterator.remove(); + } + size.addAndGet(-removeSize); + removeCount = removeCount + removeSize; + } + return removeCount; + } + +} diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/LRUMultiMapUnifiedListCache.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/LRUMultiMapUnifiedListCache.java new file mode 100644 index 0000000..6185ef6 --- /dev/null +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/LRUMultiMapUnifiedListCache.java @@ -0,0 +1,288 @@ +/** + * Copyright [2019-Present] [starBlues] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.gitee.starblues.loader.classloader.resource.cache; + +import com.gitee.starblues.loader.utils.ObjectUtils; + +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.locks.StampedLock; +import java.util.function.Consumer; +import java.util.function.Supplier; + +/** + * LRU MultiMap List 缓存实现。list 集合中的元素统一过期 + * + * @author starBlues + * @since 3.1.1 + * @version 3.1.1 + */ +public class LRUMultiMapUnifiedListCache implements MultiCache{ + + private final Map cacheMap; + + private final StampedLock lock = new StampedLock(); + + private final int maxSize; + private final long timeout; + + private final AtomicInteger size = new AtomicInteger(0); + + public LRUMultiMapUnifiedListCache(int maxSize, long timeout){ + this.maxSize = maxSize; + this.timeout = timeout; + this.cacheMap = new CacheLinkedHashMap(maxSize, entry->{ + EntityList value = entry.getValue(); + if(value != null){ + size.addAndGet(-value.size()); + } else { + size.addAndGet(-1); + } + }); + } + + @Override + public void put(K key, Collection value) { + if(ObjectUtils.isEmpty(value)){ + return; + } + long stamp = lock.writeLock(); + try { + if (isFull(key)) { + cleanExpired(false); + } + EntityList entityList = cacheMap.computeIfAbsent(key, k -> new EntityList(timeout)); + entityList.add(value); + } finally { + lock.unlockWrite(stamp); + } + } + + @SuppressWarnings("unchecked") + @Override + public void putSingle(K key, V value) { + put(key, ObjectUtils.toList(value)); + } + + @Override + public V getFirst(K key) { + Collection collection = get(key); + return ObjectUtils.getFirst(collection); + } + + @Override + public int size() { + long stamp = lock.tryOptimisticRead(); + int s = size.get(); + if(!lock.validate(stamp)){ + stamp = lock.readLock(); + try { + s = size.get(); + } finally { + lock.unlockRead(stamp); + } + } + return s; + } + + @Override + public boolean containsKey(K key) { + return get(key) != null; + } + + @Override + public Collection get(K key) { + long stamp = lock.tryOptimisticRead(); + EntityList entityList = cacheMap.get(key); + if(!lock.validate(stamp)){ + stamp = lock.readLock(); + try { + entityList = cacheMap.get(key); + } finally { + lock.unlockRead(stamp); + } + } + if(entityList == null){ + return null; + } + if(entityList.isExpired()){ + remove(key); + return null; + } + return Collections.unmodifiableList(entityList.getValue()); + } + + @Override + public Collection getOrDefault(K key, Supplier> supplier, boolean defaultAdded) { + Collection collection = get(key); + if(!ObjectUtils.isEmpty(collection)){ + return collection; + } + Collection addCollection = supplier.get(); + if(ObjectUtils.isEmpty(addCollection)){ + return null; + } + if(defaultAdded){ + put(key, addCollection); + return addCollection; + } + return null; + } + + @Override + public Collection remove(K key) { + long stamp = lock.writeLock(); + try { + EntityList cacheValue = cacheMap.remove(key); + if (cacheValue == null) { + return null; + } + size.addAndGet(-cacheValue.size()); + return cacheValue.getValue(); + } finally { + lock.unlockWrite(stamp); + } + } + + @Override + public void clear() { + clear(null); + } + + @Override + public void clear(Consumer> consumer) { + long stamp = lock.writeLock(); + try { + if(consumer == null){ + cacheMap.clear(); + return; + } + Iterator> iterator = cacheMap.entrySet().iterator(); + while (iterator.hasNext()){ + try { + Map.Entry entityMap = iterator.next(); + EntityList entityList = entityMap.getValue(); + if(entityList == null){ + iterator.remove(); + continue; + } + List value = entityList.getValue(); + if(value != null){ + consumer.accept(value); + } + iterator.remove(); + } catch (Exception e){ + // 忽略 + } + } + } finally { + size.set(0); + lock.unlockWrite(stamp); + } + } + + @Override + public int cleanExpired() { + return cleanExpired(true); + } + + private boolean isFull(K key) { + if (maxSize == 0) { + return false; + } + if(cacheMap.size() < maxSize){ + return false; + } + return !cacheMap.containsKey(key); + } + + public int cleanExpired(boolean isLock) { + if(!isLock){ + return actualCleanExpired(); + } + long stamp = lock.writeLock(); + try { + return actualCleanExpired(); + } finally { + lock.unlockWrite(stamp); + } + } + + private int actualCleanExpired(){ + Iterator> cacheMapIterator = cacheMap.entrySet().iterator(); + int removeCount = 0; + while (cacheMapIterator.hasNext()){ + Map.Entry entityMap = cacheMapIterator.next(); + EntityList value = entityMap.getValue(); + if(value == null){ + cacheMapIterator.remove(); + } else { + if(value.isExpired()){ + int valueSize = value.size(); + cacheMapIterator.remove(); + size.addAndGet(-valueSize); + removeCount = removeCount + valueSize; + } + } + } + return removeCount; + } + + private class EntityList extends Entity> implements AutoCloseable{ + + public EntityList(long ttl) { + super(new ArrayList<>(), ttl); + } + + public EntityList(List list, long ttl) { + super(list, ttl); + } + + public synchronized void add(V v){ + getValue().add(v); + size.addAndGet(1); + } + + public synchronized void add(Collection list){ + if(ObjectUtils.isEmpty(list)){ + return; + } + getValue().addAll(list); + size.addAndGet(list.size()); + } + + public synchronized V getFirst(){ + List list = getValue(); + if(ObjectUtils.isEmpty(list)){ + return null; + } + return list.get(0); + } + + public synchronized int size(){ + return getValue().size(); + } + + @Override + public synchronized void close() throws Exception { + List value = getValue(); + size.addAndGet(-value.size()); + value.clear(); + } + } + +} diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/MultiCache.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/MultiCache.java new file mode 100644 index 0000000..6529323 --- /dev/null +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/cache/MultiCache.java @@ -0,0 +1,49 @@ +/** + * Copyright [2019-Present] [starBlues] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.gitee.starblues.loader.classloader.resource.cache; + + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.function.Consumer; +import java.util.function.Supplier; + +/** + * 缓存接口 + * + * @author starBlues + * @since 3.1.1 + * @version 3.1.1 + */ +public interface MultiCache extends Cache>{ + + /** + * put 一个值 + * @param key 缓存的key + * @param value 缓存的值 + */ + void putSingle(K key, V value); + + /** + * 得到第一个value + * @param key 缓存的key + * @return 第一个value + */ + V getFirst(K key); + +} diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheFastResourceStorage.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheFastResourceStorage.java index 4e014e9..121ded3 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheFastResourceStorage.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheFastResourceStorage.java @@ -17,18 +17,13 @@ package com.gitee.starblues.loader.classloader.resource.storage; import com.gitee.starblues.loader.classloader.resource.Resource; -import com.gitee.starblues.loader.classloader.resource.cache.Cache; -import com.gitee.starblues.loader.classloader.resource.cache.DefaultCacheExpirationTrigger; -import com.gitee.starblues.loader.classloader.resource.cache.LRUMapCache; +import com.gitee.starblues.loader.classloader.resource.cache.*; import com.gitee.starblues.loader.utils.IOUtils; import com.gitee.starblues.loader.utils.ObjectUtils; import com.gitee.starblues.loader.utils.ResourceUtils; import java.io.InputStream; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Enumeration; -import java.util.List; +import java.util.*; import java.util.concurrent.TimeUnit; /** @@ -42,18 +37,21 @@ import java.util.concurrent.TimeUnit; */ public class CacheFastResourceStorage extends AbstractResourceStorage { - protected final Cache> resourceStorage; + protected final MultiCache resourceStorage; private final ResourceStorage cacheResourceStorage; private final List inputStreams = new ArrayList<>(); private volatile boolean release = false; + @SuppressWarnings("all") public CacheFastResourceStorage(String key) { this.cacheResourceStorage = new CachePerpetualResourceStorage(); // 最大 1000 个, 最长 3 分钟 - resourceStorage = DefaultCacheExpirationTrigger.getCacheExpirationTrigger(3, TimeUnit.MINUTES) - .getCache(key, () -> new LRUMapCache>(1000, 180000)); + CacheExpirationTrigger trigger = DefaultCacheExpirationTrigger + .getCacheExpirationTrigger(3, TimeUnit.MINUTES); + resourceStorage = (MultiCache) trigger.getCache(key, + () -> new LRUMultiMapUnifiedListCache(1000, 180000)); } @Override @@ -64,9 +62,7 @@ public class CacheFastResourceStorage extends AbstractResourceStorage { } resource.resolveByte(); String name = formatResourceName(resource.getName()); - // TODO 多缓存处理 - List resources = resourceStorage.getOrDefault(name, ArrayList::new, true); - resources.add(resource); + resourceStorage.putSingle(name, resource); } @Override @@ -86,9 +82,9 @@ public class CacheFastResourceStorage extends AbstractResourceStorage { return null; } name = formatResourceName(name); - List resources = resourceStorage.get(name); - if(!ObjectUtils.isEmpty(resources)){ - return resources.get(0); + Resource firstResource = resourceStorage.getFirst(name); + if(firstResource != null){ + return firstResource; } return searchResource(name); } @@ -102,7 +98,7 @@ public class CacheFastResourceStorage extends AbstractResourceStorage { return Collections.emptyEnumeration(); } name = formatResourceName(name); - List resources = resourceStorage.get(name); + Collection resources = resourceStorage.get(name); if(!ObjectUtils.isEmpty(resources)){ return Collections.enumeration(resources); } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheLowMemoryResourceStorage.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheLowMemoryResourceStorage.java index a03d90c..df36f31 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheLowMemoryResourceStorage.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/classloader/resource/storage/CacheLowMemoryResourceStorage.java @@ -37,6 +37,7 @@ import java.util.concurrent.TimeUnit; * @author starBlues * @since 3.1.1 * @version 3.1.1 + * @deprecated 暂时遗弃 */ @Deprecated public class CacheLowMemoryResourceStorage extends AbstractResourceStorage { diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/ResourceLoaderFactoryGetter.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/ResourceLoaderFactoryGetter.java index 3e1597d..c69f16c 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/ResourceLoaderFactoryGetter.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/launcher/isolation/ResourceLoaderFactoryGetter.java @@ -40,14 +40,9 @@ public class ResourceLoaderFactoryGetter { private static final String RESOURCE_MODE_PERPETUAL = "perpetual"; /** - * 资源存储模式-低内存模型。启动占用内存低, 速度可能会慢 + * 资源存储模式-快速模式且内存相对较低。启动占用内存稍高, 速度比较高, 启动完成后占用内存会降低 */ - private static final String RESOURCE_MODE_LOW_MEMORY = "lowMemory"; - - /** - * 资源存储模式-快速模式。启动占用内存高, 速度比较高, 启动完成后占用内存会降低 - */ - private static final String RESOURCE_MODE_FAST = "fast"; + private static final String RESOURCE_MODE_FAST_LOW = "fast-low"; /** @@ -86,8 +81,6 @@ public class ResourceLoaderFactoryGetter { public static AbstractResourceStorage getResourceStorage(String key){ if(Objects.equals(resourceMode, RESOURCE_MODE_PERPETUAL)){ return new CachePerpetualResourceStorage(); - } else if(Objects.equals(resourceMode, RESOURCE_MODE_LOW_MEMORY)){ - return new CacheLowMemoryResourceStorage(key); } else { return new CacheFastResourceStorage(key); } diff --git a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/ObjectUtils.java b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/ObjectUtils.java index 2e2069a..de58e49 100644 --- a/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/ObjectUtils.java +++ b/spring-brick-loader/src/main/java/com/gitee/starblues/loader/utils/ObjectUtils.java @@ -17,9 +17,7 @@ package com.gitee.starblues.loader.utils; import java.lang.reflect.Array; -import java.util.Collection; -import java.util.Map; -import java.util.Optional; +import java.util.*; /** * object utils @@ -59,4 +57,25 @@ public class ObjectUtils { return false; } + public static List toList(T... array){ + if(array.length == 0){ + return new ArrayList<>(0); + } + List list = new ArrayList<>(array.length); + for (T t : array) { + list.add(t); + } + return list; + } + + public static T getFirst(Collection collection){ + if(ObjectUtils.isEmpty(collection)){ + return null; + } + for (T t : collection) { + return t; + } + return null; + } + } diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/AbstractPackagerMojo.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/AbstractPackagerMojo.java index 0abd270..629649d 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/AbstractPackagerMojo.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/AbstractPackagerMojo.java @@ -32,7 +32,7 @@ import java.util.Set; * * @author starBlues * @since 3.0.0 - * @version 3.0.0 + * @version 3.1.1 */ @EqualsAndHashCode(callSuper = true) @Data @@ -83,7 +83,8 @@ public abstract class AbstractPackagerMojo extends AbstractDependencyFilterMojo{ protected abstract void pack() throws MojoExecutionException, MojoFailureException; public final Set getFilterDependencies() throws MojoExecutionException { - return filterDependencies(project.getArtifacts(), getFilters()); + Set artifacts = project.getArtifacts(); + return filterDependencies(artifacts, getFilters()); } public final Set getSourceDependencies() throws MojoExecutionException { diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/BasicRepackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/BasicRepackager.java index 5676c92..dc8cb5e 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/BasicRepackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/BasicRepackager.java @@ -22,6 +22,7 @@ import com.gitee.starblues.utils.FilesUtils; import com.gitee.starblues.utils.ObjectUtils; import lombok.Getter; import org.apache.commons.io.FileUtils; +import org.apache.commons.io.IOUtils; import org.apache.maven.artifact.Artifact; import org.apache.maven.model.Dependency; import org.apache.maven.plugin.MojoExecutionException; @@ -36,6 +37,7 @@ import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.util.*; import java.util.jar.Attributes; +import java.util.jar.JarFile; import java.util.jar.Manifest; import static com.gitee.starblues.common.PackageStructure.*; @@ -46,7 +48,7 @@ import static com.gitee.starblues.common.PluginDescriptorKey.*; * * @author starBlues * @since 3.0.0 - * @version 3.0.0 + * @version 3.1.1 */ public class BasicRepackager implements Repackager{ @@ -59,6 +61,7 @@ public class BasicRepackager implements Repackager{ protected File resourcesDefineFile; protected final RepackageMojo repackageMojo; + protected JarFile sourceJarFile; public BasicRepackager(RepackageMojo repackageMojo) { this.repackageMojo = repackageMojo; @@ -66,6 +69,7 @@ public class BasicRepackager implements Repackager{ @Override public void repackage() throws MojoExecutionException, MojoFailureException { + sourceJarFile = CommonUtils.getSourceJarFile(repackageMojo.getProject()); checkPluginInfo(); rootDir = createRootDir(); relativeManifestPath = getRelativeManifestPath(); @@ -77,6 +81,8 @@ public class BasicRepackager implements Repackager{ } catch (Exception e) { repackageMojo.getLog().error(e.getMessage(), e); throw new MojoFailureException(e); + } finally { + IOUtils.closeQuietly(sourceJarFile); } } @@ -157,15 +163,21 @@ public class BasicRepackager implements Repackager{ } protected Manifest getManifest() throws Exception{ - Manifest manifest = new Manifest(); + Manifest manifest = null; + if(sourceJarFile != null){ + manifest = sourceJarFile.getManifest(); + } else { + manifest = new Manifest(); + } Attributes attributes = manifest.getMainAttributes(); attributes.putValue(ManifestKey.MANIFEST_VERSION, ManifestKey.MANIFEST_VERSION_1_0); + attributes.putValue(ManifestKey.BUILD_TIME, CommonUtils.getDateTime()); attributes.putValue(ManifestKey.PLUGIN_META_PATH, getPluginMetaInfoPath()); attributes.putValue(ManifestKey.PLUGIN_PACKAGE_TYPE, PackageType.PLUGIN_PACKAGE_TYPE_DEV); // 增加jar包title和version属性 MavenProject mavenProject = this.repackageMojo.getProject(); - attributes.putValue(ManifestKey.IMPLEMENTATION_TITLE,mavenProject.getArtifactId()); - attributes.putValue(ManifestKey.IMPLEMENTATION_VERSION,mavenProject.getVersion()); + attributes.putValue(ManifestKey.IMPLEMENTATION_TITLE, mavenProject.getArtifactId()); + attributes.putValue(ManifestKey.IMPLEMENTATION_VERSION, mavenProject.getVersion()); return manifest; } diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/RepackageMojo.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/RepackageMojo.java index 7467a1f..97b7e20 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/RepackageMojo.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/RepackageMojo.java @@ -24,6 +24,7 @@ import com.gitee.starblues.plugin.pack.main.MainConfig; import com.gitee.starblues.plugin.pack.main.MainRepackager; import com.gitee.starblues.plugin.pack.prod.ProdConfig; import com.gitee.starblues.plugin.pack.prod.ProdRepackager; +import com.gitee.starblues.plugin.pack.utils.CommonUtils; import com.gitee.starblues.utils.ObjectUtils; import lombok.Getter; import org.apache.maven.artifact.Artifact; @@ -43,7 +44,7 @@ import java.util.Set; * * @author starBlues * @since 3.0.0 - * @version 3.0.1 + * @version 3.1.1 */ @Mojo(name = "repackage", defaultPhase = LifecyclePhase.PACKAGE, requiresProject = true, threadSafe = true, requiresDependencyResolution = ResolutionScope.COMPILE_PLUS_RUNTIME, diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/JarNestPackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/JarNestPackager.java index a8757f5..804d778 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/JarNestPackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/JarNestPackager.java @@ -29,8 +29,10 @@ import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.project.MavenProject; import java.io.File; +import java.util.List; import java.util.Set; import java.util.jar.Attributes; +import java.util.jar.JarFile; import java.util.jar.Manifest; import static com.gitee.starblues.common.PackageStructure.*; @@ -41,7 +43,7 @@ import static com.gitee.starblues.common.ManifestKey.*; * * @author starBlues * @since 3.0.0 - * @version 3.0.2 + * @version 3.1.1 */ public class JarNestPackager implements Repackager { @@ -50,6 +52,8 @@ public class JarNestPackager implements Repackager { protected PackageJar packageJar; + private JarFile sourceJarFile; + public JarNestPackager(MainRepackager mainRepackager) { this.mainConfig = mainRepackager.getMainConfig(); this.repackageMojo = mainRepackager.getRepackageMojo(); @@ -58,6 +62,7 @@ public class JarNestPackager implements Repackager { @Override public void repackage() throws MojoExecutionException, MojoFailureException { try { + sourceJarFile = CommonUtils.getSourceJarFile(repackageMojo.getProject()); packageJar = new PackageJar(mainConfig.getOutputDirectory(), mainConfig.getFileName()); writeClasses(); writeDependencies(); @@ -66,9 +71,8 @@ public class JarNestPackager implements Repackager { repackageMojo.getLog().error(e.getMessage(), e); throw new MojoFailureException(e); } finally { - if(packageJar != null){ - IOUtils.closeQuietly(packageJar); - } + IOUtils.closeQuietly(packageJar); + IOUtils.closeQuietly(sourceJarFile); } } @@ -79,9 +83,15 @@ public class JarNestPackager implements Repackager { } protected Manifest getManifest() throws Exception{ - Manifest manifest = new Manifest(); + Manifest manifest = null; + if(sourceJarFile != null){ + manifest = sourceJarFile.getManifest(); + } else { + manifest = new Manifest(); + } Attributes attributes = manifest.getMainAttributes(); attributes.putValue(MANIFEST_VERSION, MANIFEST_VERSION_1_0); + attributes.putValue(BUILD_TIME, CommonUtils.getDateTime()); attributes.putValue(START_CLASS, mainConfig.getMainClass()); attributes.putValue(MAIN_CLASS, MAIN_CLASS_VALUE); attributes.putValue(MAIN_PACKAGE_TYPE, PackageType.MAIN_PACKAGE_TYPE_JAR); diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/MainRepackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/MainRepackager.java index a91b25e..f46ac0c 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/MainRepackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/main/MainRepackager.java @@ -20,6 +20,7 @@ import com.gitee.starblues.common.PackageType; import com.gitee.starblues.plugin.pack.Constant; import com.gitee.starblues.plugin.pack.RepackageMojo; import com.gitee.starblues.plugin.pack.Repackager; +import com.gitee.starblues.plugin.pack.utils.CommonUtils; import com.gitee.starblues.utils.ObjectUtils; import com.gitee.starblues.utils.ReflectionUtils; import lombok.Getter; @@ -40,7 +41,7 @@ import java.util.Set; * * @author starBlues * @since 3.0.0 - * @version 3.0.0 + * @version 3.1.1 */ @Getter public class MainRepackager implements Repackager { @@ -58,13 +59,15 @@ public class MainRepackager implements Repackager { checkConfig(); setDevelopmentMode(); String packageType = mainConfig.getPackageType(); + Repackager repackager = null; if(PackageType.MAIN_PACKAGE_TYPE_JAR.equalsIgnoreCase(packageType)){ - new JarNestPackager(this).repackage(); + repackager = new JarNestPackager(this); } else if(PackageType.MAIN_PACKAGE_TYPE_JAR_OUTER.equalsIgnoreCase(packageType)){ - new JarOuterPackager(this).repackage(); + repackager = new JarOuterPackager(this); } else { throw new MojoFailureException("Not found packageType : " + packageType); } + repackager.repackage(); } private void checkConfig() throws MojoFailureException { diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/DirProdRepackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/DirProdRepackager.java index 0909c3d..b9728e5 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/DirProdRepackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/DirProdRepackager.java @@ -42,7 +42,7 @@ import static com.gitee.starblues.common.PackageStructure.*; * * @author starBlues * @since 3.0.0 - * @version 3.0.0 + * @version 3.1.1 */ public class DirProdRepackager extends DevRepackager { @@ -59,12 +59,17 @@ public class DirProdRepackager extends DevRepackager { super.repackage(); try { resolveClasses(); + logSuccess(); } catch (Exception e) { repackageMojo.getLog().error(e.getMessage(), e); throw new MojoFailureException(e); } } + protected void logSuccess(){ + repackageMojo.getLog().info("Success package prod dir file : " + getRootDir()); + } + @Override protected String createRootDir() throws MojoFailureException { String fileName = prodConfig.getFileName(); diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/JarNestedProdRepackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/JarNestedProdRepackager.java index 2e49533..052eaf2 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/JarNestedProdRepackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/JarNestedProdRepackager.java @@ -41,7 +41,7 @@ import static com.gitee.starblues.common.PackageStructure.PROD_RESOURCES_DEFINE_ * * @author starBlues * @since 3.0.0 - * @version 3.0.0 + * @version 3.1.1 */ public class JarNestedProdRepackager extends ZipProdRepackager { @@ -55,6 +55,11 @@ public class JarNestedProdRepackager extends ZipProdRepackager { super.repackage(); } + protected void logSuccess(){ + repackageMojo.getLog().info("Success package prod jar file : " + + packageZip.getFile().getPath()); + } + @Override protected PackageZip getPackageZip() throws Exception { return new PackageJar(prodConfig.getOutputDirectory(), prodConfig.getFileName()); diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ZipProdRepackager.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ZipProdRepackager.java index 3f77dfb..5da4b4f 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ZipProdRepackager.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/prod/ZipProdRepackager.java @@ -77,8 +77,7 @@ public class ZipProdRepackager extends DevRepackager { } catch (IOException e) { // 忽略 } - repackageMojo.getLog().info("Success package prod zip file : " - + packageZip.getFile().getPath()); + logSuccess(); } catch (Exception e){ repackageMojo.getLog().error(e.getMessage(), e); throw new MojoFailureException(e); @@ -89,6 +88,11 @@ public class ZipProdRepackager extends DevRepackager { } } + protected void logSuccess(){ + repackageMojo.getLog().info("Success package prod zip file : " + + packageZip.getFile().getPath()); + } + protected PackageZip getPackageZip() throws Exception { return new PackageZip(prodConfig.getOutputDirectory(), prodConfig.getFileName()); } diff --git a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/CommonUtils.java b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/CommonUtils.java index e72acd0..f3dfdd6 100644 --- a/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/CommonUtils.java +++ b/spring-brick-maven-packager/src/main/java/com/gitee/starblues/plugin/pack/utils/CommonUtils.java @@ -20,9 +20,17 @@ import com.gitee.starblues.plugin.pack.filter.Exclude; import org.apache.commons.io.FileUtils; import org.apache.maven.artifact.Artifact; import org.apache.maven.plugin.MojoFailureException; +import org.apache.maven.project.MavenProject; import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.Objects; +import java.util.jar.JarFile; /** * Object 工具类 @@ -38,6 +46,9 @@ public class CommonUtils { public final static String PLUGIN_FRAMEWORK_LOADER_ARTIFACT_ID = "spring-brick-loader"; + public static final String PATTERN = "yyyy-MM-dd HH:mm:ss"; + public static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern(PATTERN); + private CommonUtils(){} public static Exclude getPluginFrameworkExclude(){ @@ -54,6 +65,19 @@ public class CommonUtils { && Objects.equals(artifact.getArtifactId(), PLUGIN_FRAMEWORK_LOADER_ARTIFACT_ID); } + public static JarFile getSourceJarFile(MavenProject mavenProject) { + File file = mavenProject.getArtifact().getFile(); + try { + return new JarFile(file); + } catch (Exception e){ + return null; + } + } + + public static String getDateTime() { + return DATE_TIME_FORMATTER.format(LocalDateTime.now()); + } + public static void deleteFile(File rootFile) throws MojoFailureException { try { if(rootFile == null){ @@ -72,4 +96,5 @@ public class CommonUtils { throw new MojoFailureException("Delete file '" + rootFile.getPath() + "' failure. " + e.getMessage()); } } + } diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/AutoIntegrationConfiguration.java b/spring-brick/src/main/java/com/gitee/starblues/integration/AutoIntegrationConfiguration.java index e212ae0..b0847e3 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/AutoIntegrationConfiguration.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/AutoIntegrationConfiguration.java @@ -129,6 +129,13 @@ public class AutoIntegrationConfiguration extends DefaultIntegrationConfiguratio @Value("${exactVersion:false}") private Boolean exactVersion; + /** + * 插是否扫描 swagger 接口 + */ + @Value("${pluginSwaggerScan:true}") + private Boolean pluginSwaggerScan; + + /** * 插件的配置文件 Profile 是否跟随主程序的 Profile 配置动态切换 */ @@ -228,6 +235,14 @@ public class AutoIntegrationConfiguration extends DefaultIntegrationConfiguratio return exactVersion; } + @Override + public Boolean pluginSwaggerScan() { + if(pluginSwaggerScan == null){ + return super.pluginSwaggerScan(); + } + return pluginSwaggerScan; + } + @Override public Boolean pluginFollowProfile() { if(pluginFollowProfile == null){ diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/DefaultIntegrationConfiguration.java b/spring-brick/src/main/java/com/gitee/starblues/integration/DefaultIntegrationConfiguration.java index 378a864..bd06974 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/DefaultIntegrationConfiguration.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/DefaultIntegrationConfiguration.java @@ -94,6 +94,11 @@ public abstract class DefaultIntegrationConfiguration implements IntegrationConf return Boolean.FALSE; } + @Override + public Boolean pluginSwaggerScan() { + return Boolean.TRUE; + } + @Override public Boolean pluginFollowProfile() { return Boolean.FALSE; diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/ExtendPointWebConfiguration.java b/spring-brick/src/main/java/com/gitee/starblues/integration/ExtendPointWebConfiguration.java index 04c6c1c..dd65b8a 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/ExtendPointWebConfiguration.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/ExtendPointWebConfiguration.java @@ -76,6 +76,7 @@ public class ExtendPointWebConfiguration { } @ConditionalOnClass({ DocumentationPluginsBootstrapper.class }) + @ConditionalOnProperty(name = "plugin.pluginSwaggerScan", havingValue = "true", matchIfMissing = true) public static class SwaggerListenerConfiguration { private final GenericApplicationContext applicationContext; diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/IntegrationConfiguration.java b/spring-brick/src/main/java/com/gitee/starblues/integration/IntegrationConfiguration.java index c6d6326..65b4cac 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/IntegrationConfiguration.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/IntegrationConfiguration.java @@ -118,6 +118,12 @@ public interface IntegrationConfiguration { */ Boolean exactVersion(); + /** + * 是否扫描插件 swagger 接口 + * @return true 启动, false 禁用。默认启用 + */ + Boolean pluginSwaggerScan(); + /** * 插件的配置文件 Profile 是否跟随主程序的 Profile 配置动态切换 * @return true: 跟随, false: 不跟随 diff --git a/spring-brick/src/main/java/com/gitee/starblues/integration/listener/SwaggerListener.java b/spring-brick/src/main/java/com/gitee/starblues/integration/listener/SwaggerListener.java index 9c4fb68..6d07ada 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/integration/listener/SwaggerListener.java +++ b/spring-brick/src/main/java/com/gitee/starblues/integration/listener/SwaggerListener.java @@ -18,6 +18,8 @@ package com.gitee.starblues.integration.listener; import com.gitee.starblues.core.PluginInfo; import com.gitee.starblues.core.descriptor.PluginDescriptor; +import com.gitee.starblues.integration.AutoIntegrationConfiguration; +import com.gitee.starblues.integration.IntegrationConfiguration; import com.gitee.starblues.loader.utils.ObjectUtils; import com.gitee.starblues.utils.MsgUtils; import com.gitee.starblues.utils.SpringBeanUtils; @@ -51,7 +53,6 @@ public class SwaggerListener implements PluginListener{ private final Logger log = LoggerFactory.getLogger(this.getClass()); private final ApplicationContext mainApplicationContext; - private static List parameterList = new ArrayList<>(); /** diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContext.java b/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContext.java index 9bcd5e9..cdedc06 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContext.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContext.java @@ -76,6 +76,12 @@ public interface MainApplicationContext extends ApplicationContext { */ Object getSourceApplicationContext(); + /** + * 是否能注册Controller + * @return boolean + */ + boolean isRegisterController(); + /** * 获取主程序的 RequestMappingHandlerMapping * @return RequestMappingHandlerMapping diff --git a/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContextProxy.java b/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContextProxy.java index bf1c7ed..96f7b58 100644 --- a/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContextProxy.java +++ b/spring-brick/src/main/java/com/gitee/starblues/spring/MainApplicationContextProxy.java @@ -45,8 +45,9 @@ public class MainApplicationContextProxy extends ApplicationContextProxy impleme private final static String REQUEST_MAPPING_ADAPTER_BANE_NAME = "requestMappingHandlerAdapter"; private final GenericApplicationContext applicationContext; - private boolean isWebEnvironment; + private final boolean isWebEnvironment; + private final boolean isRegisterController; private final RequestMappingHandlerMapping requestMappingHandlerMapping; private final RequestMappingHandlerAdapter requestMappingHandlerAdapter; @@ -65,10 +66,13 @@ public class MainApplicationContextProxy extends ApplicationContextProxy impleme this.requestMappingHandlerAdapter = SpringBeanUtils.getExistBean( applicationContext, REQUEST_MAPPING_ADAPTER_BANE_NAME, RequestMappingHandlerAdapter.class); if(this.requestMappingHandlerMapping == null || this.requestMappingHandlerAdapter == null){ - log.error("主程序环境异常, 插件不能注接口!"); - isWebEnvironment = false; + log.error("主程序环境异常, 插件不能注册 Controller 接口!"); + isRegisterController = false; + } else { + isRegisterController = true; } } else { + this.isRegisterController = false; this.requestMappingHandlerMapping = null; this.requestMappingHandlerAdapter = null; } @@ -130,6 +134,11 @@ public class MainApplicationContextProxy extends ApplicationContextProxy impleme return applicationContext; } + @Override + public boolean isRegisterController() { + return isRegisterController; + } + @Override public RequestMappingHandlerMapping getRequestMappingHandlerMapping() { return requestMappingHandlerMapping; diff --git a/spring-brick/src/main/resources/META-INF/spring-configuration-metadata.json b/spring-brick/src/main/resources/META-INF/spring-configuration-metadata.json index d3e6843..2b65e6d 100644 --- a/spring-brick/src/main/resources/META-INF/spring-configuration-metadata.json +++ b/spring-brick/src/main/resources/META-INF/spring-configuration-metadata.json @@ -95,11 +95,18 @@ }, { "name": "plugin.exactVersion", - "type": "java.lang.String", + "type": "java.lang.Boolean", "sourceType": "com.gitee.starblues.integration.AutoIntegrationConfiguration", "description": "是否完全匹配版本。设置为true表示插件设置的requires的版本号完全匹配version版本号才可允许插件安装, 即: requires=x.y.z; 设置为false表示插件设置的requires的版本号小于等于version值, 插件就可安装, 即requires<=x.y.z", "defaultValue": false }, + { + "name": "plugin.pluginSwaggerScan", + "type": "java.lang.Boolean", + "sourceType": "com.gitee.starblues.integration.AutoIntegrationConfiguration", + "description": "是否扫描插件 swagger 接口", + "defaultValue": true + }, { "name": "plugin.pluginFollowProfile", "type": "java.lang.Boolean", -- Gitee From 577c0a614a60fb28c7e5a60f9264af99693d7b54 Mon Sep 17 00:00:00 2001 From: StarBlues Date: Sun, 4 Dec 2022 10:57:56 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- README_zh.md | 2 +- update.md | 12 +++++++----- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 9761566..172287c 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ The framework can be developed in the `spring-boot` project plugin, plugin can b ### Environment 1. jdk1.8+d 2. apache maven 3.6+ -3. spring-boot 2.0.0+ +3. spring-boot 2.3.1 ~ 2.7.6 ### Doc diff --git a/README_zh.md b/README_zh.md index e078007..b19d744 100644 --- a/README_zh.md +++ b/README_zh.md @@ -42,7 +42,7 @@ ### 运行环境 | Runtime Environment 1. jdk1.8+ 2. apache maven 3.6+ -3. spring-boot 2.3.1 ~ 2.6.14 +3. spring-boot 2.3.1 ~ 2.7.6 ### 文档地址 | Document - [https://www.yuque.com/starblues/spring-brick-3.0.0](https://www.yuque.com/starblues/spring-brick-3.0.0) diff --git a/update.md b/update.md index 9187533..9ac1b24 100644 --- a/update.md +++ b/update.md @@ -1,6 +1,8 @@ 1. 【新增】主程序可通过`pluginInfo`对象获取插件的`ClassLoader`。 -2. 【新增】插件配置文件`spring.profiles.active`的值可跟随主程序配置切换。 -3. 【新增】插件的日志可配置为跟随主程序日志配置打印。 -4. 【优化】优化插件隔离模式下,内存占用过大的问题。 -5. 【修复[#I61INH](https://gitee.com/starblues/springboot-plugin-framework-parent/issues/I61INH)】PluginUser通过 Bean名称获取 Bean 对象接口返回的Wrapper中插件的类不对 -6. \ No newline at end of file +2. 【新增】新增配置`plugin.pluginSwaggerScan`可禁用扫描插件的 `swagger` 接口。 +3. 【新增】插件配置文件`spring.profiles.active`的值可跟随主程序配置切换。 +4. 【新增】插件的日志可配置为跟随主程序日志配置打印。 +5. 【新增】补充常见打包的 `META-INF\MANIFEST.MF` 文件内容。 +6. 【优化】优化插件隔离模式下,内存占用过大的问题。 +7. 【修复[#I61INH](https://gitee.com/starblues/springboot-plugin-framework-parent/issues/I61INH)】修复`PluginUser#getBean(String name, boolean includeMainBeans)`返回的`Bean`错误 + \ No newline at end of file -- Gitee