From a7b5f18c7f115e8eb2754f2a8545a315546f096e Mon Sep 17 00:00:00 2001 From: hengboy Date: Fri, 17 Jul 2020 22:22:37 +0800 Subject: [PATCH] Move "api-boot-plugin-rate-limiter" to "api-boot" --- .../api-boot-autoconfigure/pom.xml | 12 ++-- .../ApiBootRateLimiterAutoConfiguration.java | 14 ++-- ...otRateLimiterNacosConfigConfiguration.java | 4 +- ...BootRateLimiterRedisAutoConfiguration.java | 7 +- .../api-boot-dependencies/pom.xml | 5 -- .../api-boot-plugin-rate-limiter/pom.xml | 72 ------------------- api-boot-project/api-boot-plugins/pom.xml | 1 - .../api-boot-starter-rate-limiter/pom.xml | 13 +++- .../framework/api/boot/tools/AopTools.java | 46 ++++++++++++ .../framework/api/boot/tools/JsonTools.java | 63 ++++++++++++++++ api-boot-project/api-boot/pom.xml | 25 +++++++ .../api/boot}/limiter/ApiBootRateLimiter.java | 8 +-- .../boot}/limiter/annotation/RateLimiter.java | 2 +- .../advisor/ApiBootRateLimiterAdvisor.java | 6 +- .../ApiBootRateLimiterMethodInterceptor.java | 10 +-- .../centre/RateLimiterConfigCentre.java | 2 +- .../AbstractRateLimiterConfigCentre.java | 4 +- .../ApolloRateLimiterConfigCentre.java | 5 +- .../DefaultRateLimiterConfigCentre.java | 2 +- .../support/NacosRateLimiterConfigCentre.java | 5 +- .../limiter/config/RateLimiterConfig.java | 2 +- .../context/ApiBootRateLimiterContext.java | 2 +- .../result/RateLimiterOverFlowResponse.java | 2 +- .../limiter/support/AbstractRateLimiter.java | 11 ++- .../support/GoogleGuavaRateLimiter.java | 8 +-- .../limiter/support/RedisLuaRateLimiter.java | 6 +- .../META-INF/scripts/qps-rate-limiter.lua | 0 .../api-boot-sample-rate-limiter/pom.xml | 2 +- .../api/boot/sample/CustomerResponse.java | 2 +- .../sample/RateLimiterSampleController.java | 2 +- 30 files changed, 202 insertions(+), 141 deletions(-) delete mode 100644 api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/pom.xml create mode 100644 api-boot-project/api-boot-tools/src/main/java/org/minbox/framework/api/boot/tools/AopTools.java create mode 100644 api-boot-project/api-boot-tools/src/main/java/org/minbox/framework/api/boot/tools/JsonTools.java rename api-boot-project/{api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate => api-boot/src/main/java/org/minbox/framework/api/boot}/limiter/ApiBootRateLimiter.java (80%) rename api-boot-project/{api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate => api-boot/src/main/java/org/minbox/framework/api/boot}/limiter/annotation/RateLimiter.java (93%) rename api-boot-project/{api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate => api-boot/src/main/java/org/minbox/framework/api/boot}/limiter/aop/advisor/ApiBootRateLimiterAdvisor.java (91%) rename api-boot-project/{api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate => api-boot/src/main/java/org/minbox/framework/api/boot}/limiter/aop/interceptor/ApiBootRateLimiterMethodInterceptor.java (90%) rename api-boot-project/{api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate => api-boot/src/main/java/org/minbox/framework/api/boot}/limiter/centre/RateLimiterConfigCentre.java (95%) rename api-boot-project/{api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate => api-boot/src/main/java/org/minbox/framework/api/boot}/limiter/centre/support/AbstractRateLimiterConfigCentre.java (94%) rename api-boot-project/{api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate => api-boot/src/main/java/org/minbox/framework/api/boot}/limiter/centre/support/ApolloRateLimiterConfigCentre.java (83%) rename api-boot-project/{api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate => api-boot/src/main/java/org/minbox/framework/api/boot}/limiter/centre/support/DefaultRateLimiterConfigCentre.java (93%) rename api-boot-project/{api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate => api-boot/src/main/java/org/minbox/framework/api/boot}/limiter/centre/support/NacosRateLimiterConfigCentre.java (96%) rename api-boot-project/{api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate => api-boot/src/main/java/org/minbox/framework/api/boot}/limiter/config/RateLimiterConfig.java (92%) rename api-boot-project/{api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate => api-boot/src/main/java/org/minbox/framework/api/boot}/limiter/context/ApiBootRateLimiterContext.java (96%) rename api-boot-project/{api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate => api-boot/src/main/java/org/minbox/framework/api/boot}/limiter/result/RateLimiterOverFlowResponse.java (93%) rename api-boot-project/{api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate => api-boot/src/main/java/org/minbox/framework/api/boot}/limiter/support/AbstractRateLimiter.java (84%) rename api-boot-project/{api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate => api-boot/src/main/java/org/minbox/framework/api/boot}/limiter/support/GoogleGuavaRateLimiter.java (82%) rename api-boot-project/{api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate => api-boot/src/main/java/org/minbox/framework/api/boot}/limiter/support/RedisLuaRateLimiter.java (95%) rename api-boot-project/{api-boot-plugins/api-boot-plugin-rate-limiter => api-boot}/src/main/resources/META-INF/scripts/qps-rate-limiter.lua (100%) diff --git a/api-boot-project/api-boot-autoconfigure/pom.xml b/api-boot-project/api-boot-autoconfigure/pom.xml index d3e85b4d..f60ff140 100644 --- a/api-boot-project/api-boot-autoconfigure/pom.xml +++ b/api-boot-project/api-boot-autoconfigure/pom.xml @@ -163,13 +163,6 @@ true - - - ${project.groupId} - api-boot-plugin-rate-limiter - true - - com.alibaba.boot @@ -256,6 +249,11 @@ quartz true + + com.google.guava + guava + true + org.minbox.framework diff --git a/api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/ratelimiter/ApiBootRateLimiterAutoConfiguration.java b/api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/ratelimiter/ApiBootRateLimiterAutoConfiguration.java index fa5b6994..4611fc6d 100644 --- a/api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/ratelimiter/ApiBootRateLimiterAutoConfiguration.java +++ b/api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/ratelimiter/ApiBootRateLimiterAutoConfiguration.java @@ -17,13 +17,13 @@ package org.minbox.framework.api.boot.autoconfigure.ratelimiter; -import org.minbox.framework.api.boot.plugin.rate.limiter.ApiBootRateLimiter; -import org.minbox.framework.api.boot.plugin.rate.limiter.aop.advisor.ApiBootRateLimiterAdvisor; -import org.minbox.framework.api.boot.plugin.rate.limiter.aop.interceptor.ApiBootRateLimiterMethodInterceptor; -import org.minbox.framework.api.boot.plugin.rate.limiter.centre.RateLimiterConfigCentre; -import org.minbox.framework.api.boot.plugin.rate.limiter.centre.support.DefaultRateLimiterConfigCentre; -import org.minbox.framework.api.boot.plugin.rate.limiter.result.RateLimiterOverFlowResponse; -import org.minbox.framework.api.boot.plugin.rate.limiter.support.GoogleGuavaRateLimiter; +import org.minbox.framework.api.boot.limiter.ApiBootRateLimiter; +import org.minbox.framework.api.boot.limiter.aop.advisor.ApiBootRateLimiterAdvisor; +import org.minbox.framework.api.boot.limiter.aop.interceptor.ApiBootRateLimiterMethodInterceptor; +import org.minbox.framework.api.boot.limiter.centre.RateLimiterConfigCentre; +import org.minbox.framework.api.boot.limiter.centre.support.DefaultRateLimiterConfigCentre; +import org.minbox.framework.api.boot.limiter.result.RateLimiterOverFlowResponse; +import org.minbox.framework.api.boot.limiter.support.GoogleGuavaRateLimiter; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; diff --git a/api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/ratelimiter/ApiBootRateLimiterNacosConfigConfiguration.java b/api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/ratelimiter/ApiBootRateLimiterNacosConfigConfiguration.java index cb23b818..0cfed7cf 100644 --- a/api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/ratelimiter/ApiBootRateLimiterNacosConfigConfiguration.java +++ b/api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/ratelimiter/ApiBootRateLimiterNacosConfigConfiguration.java @@ -22,8 +22,8 @@ import com.alibaba.nacos.api.NacosFactory; import com.alibaba.nacos.api.config.ConfigService; import com.alibaba.nacos.api.exception.NacosException; -import org.minbox.framework.api.boot.plugin.rate.limiter.centre.RateLimiterConfigCentre; -import org.minbox.framework.api.boot.plugin.rate.limiter.centre.support.NacosRateLimiterConfigCentre; +import org.minbox.framework.api.boot.limiter.centre.RateLimiterConfigCentre; +import org.minbox.framework.api.boot.limiter.centre.support.NacosRateLimiterConfigCentre; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Qualifier; diff --git a/api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/ratelimiter/ApiBootRateLimiterRedisAutoConfiguration.java b/api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/ratelimiter/ApiBootRateLimiterRedisAutoConfiguration.java index 610c99e9..8156c528 100644 --- a/api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/ratelimiter/ApiBootRateLimiterRedisAutoConfiguration.java +++ b/api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/ratelimiter/ApiBootRateLimiterRedisAutoConfiguration.java @@ -16,10 +16,9 @@ */ package org.minbox.framework.api.boot.autoconfigure.ratelimiter; - -import org.minbox.framework.api.boot.plugin.rate.limiter.ApiBootRateLimiter; -import org.minbox.framework.api.boot.plugin.rate.limiter.centre.RateLimiterConfigCentre; -import org.minbox.framework.api.boot.plugin.rate.limiter.support.RedisLuaRateLimiter; +import org.minbox.framework.api.boot.limiter.ApiBootRateLimiter; +import org.minbox.framework.api.boot.limiter.centre.RateLimiterConfigCentre; +import org.minbox.framework.api.boot.limiter.support.RedisLuaRateLimiter; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; diff --git a/api-boot-project/api-boot-dependencies/pom.xml b/api-boot-project/api-boot-dependencies/pom.xml index 30370fbd..b3545e54 100644 --- a/api-boot-project/api-boot-dependencies/pom.xml +++ b/api-boot-project/api-boot-dependencies/pom.xml @@ -319,11 +319,6 @@ - - org.minbox.framework - api-boot-plugin-rate-limiter - ${project.version} - org.minbox.framework api-boot-starter-rate-limiter diff --git a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/pom.xml b/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/pom.xml deleted file mode 100644 index 21fdb1e8..00000000 --- a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - api-boot-plugins - org.minbox.framework - ${revision} - - 4.0.0 - api-boot-plugin-rate-limiter - - ${basedir}/../../.. - - - ApiBoot RateLimiter Plugin - Improving Service Availability by Acting on Interface Traffic Limitation - - - - - - org.minbox.framework - api-boot-plugin - - - - com.google.guava - guava - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-aop - - - - org.springframework.boot - spring-boot-starter-data-redis - true - - - - com.alibaba.boot - nacos-config-spring-boot-starter - true - - - - diff --git a/api-boot-project/api-boot-plugins/pom.xml b/api-boot-project/api-boot-plugins/pom.xml index 1ea15391..a3dab0e8 100644 --- a/api-boot-project/api-boot-plugins/pom.xml +++ b/api-boot-project/api-boot-plugins/pom.xml @@ -22,7 +22,6 @@ api-boot-plugin-security api-boot-plugin-oauth api-boot-plugin-resource-load - api-boot-plugin-rate-limiter api-boot-plugin-sequence diff --git a/api-boot-project/api-boot-starters/api-boot-starter-rate-limiter/pom.xml b/api-boot-project/api-boot-starters/api-boot-starter-rate-limiter/pom.xml index ce7d23a6..01fbdb8f 100644 --- a/api-boot-project/api-boot-starters/api-boot-starter-rate-limiter/pom.xml +++ b/api-boot-project/api-boot-starters/api-boot-starter-rate-limiter/pom.xml @@ -49,10 +49,17 @@ org.minbox.framework api-boot-starter - - org.minbox.framework - api-boot-plugin-rate-limiter + com.google.guava + guava + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-aop diff --git a/api-boot-project/api-boot-tools/src/main/java/org/minbox/framework/api/boot/tools/AopTools.java b/api-boot-project/api-boot-tools/src/main/java/org/minbox/framework/api/boot/tools/AopTools.java new file mode 100644 index 00000000..751c791f --- /dev/null +++ b/api-boot-project/api-boot-tools/src/main/java/org/minbox/framework/api/boot/tools/AopTools.java @@ -0,0 +1,46 @@ +/* + * Copyright [2019] [恒宇少年 - 于起宇] + * + * 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 org.minbox.framework.api.boot.tools; + +import org.springframework.core.BridgeMethodResolver; +import org.springframework.util.ClassUtils; + +import java.lang.reflect.Method; + +/** + * Aop Tools + * + * @author 恒宇少年 + */ +public class AopTools { + /** + * get method declared annotation + * + * @param targetClass class instance + * @param method method instance + * @param annotationClass annotation class + * @param annotation type + * @return annotation instance + */ + public static T getMethodAnnotation(Class targetClass, Method method, Class annotationClass) { + Method specificMethod = ClassUtils.getMostSpecificMethod(method, targetClass); + // declared method object instance + Method declaredMethod = BridgeMethodResolver.findBridgedMethod(specificMethod); + return (T) declaredMethod.getDeclaredAnnotation(annotationClass); + } +} diff --git a/api-boot-project/api-boot-tools/src/main/java/org/minbox/framework/api/boot/tools/JsonTools.java b/api-boot-project/api-boot-tools/src/main/java/org/minbox/framework/api/boot/tools/JsonTools.java new file mode 100644 index 00000000..f5f6e1c3 --- /dev/null +++ b/api-boot-project/api-boot-tools/src/main/java/org/minbox/framework/api/boot/tools/JsonTools.java @@ -0,0 +1,63 @@ +/* + * Copyright [2019] [恒宇少年 - 于起宇] + * + * 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 org.minbox.framework.api.boot.tools; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.serializer.SerializerFeature; +import org.springframework.util.ObjectUtils; + +/** + * json tools + * + * @author 恒宇少年 + */ +public class JsonTools { + /** + * beautify object to json + * + * @param object object + * @return object json string + */ + public static String beautifyJson(Object object) { + if (ObjectUtils.isEmpty(object)) { + return null; + } + return JSON.toJSONString(object, + SerializerFeature.PrettyFormat, + SerializerFeature.SortField, + SerializerFeature.MapSortField + ); + } + + /** + * beautify string to json + * + * @param json json string + * @return after beautify json + */ + public static String beautifyJson(String json) { + if (ObjectUtils.isEmpty(json)) { + return json; + } + return JSON.toJSONString( + JSONObject.parse(json), + SerializerFeature.PrettyFormat + ); + } +} diff --git a/api-boot-project/api-boot/pom.xml b/api-boot-project/api-boot/pom.xml index 4eef705b..faa81b50 100644 --- a/api-boot-project/api-boot/pom.xml +++ b/api-boot-project/api-boot/pom.xml @@ -21,6 +21,11 @@ api-boot-common true + + org.minbox.framework + api-boot-tools + true + @@ -50,6 +55,17 @@ spring-boot-starter-aop true + + org.springframework.boot + spring-boot-starter-data-redis + true + + + org.springframework.boot + spring-boot-starter-web + true + + @@ -108,6 +124,15 @@ quartz true + + com.alibaba.boot + nacos-config-spring-boot-starter + true + + + com.google.guava + guava + diff --git a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/ApiBootRateLimiter.java b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/ApiBootRateLimiter.java similarity index 80% rename from api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/ApiBootRateLimiter.java rename to api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/ApiBootRateLimiter.java index 79762130..a94fa78c 100644 --- a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/ApiBootRateLimiter.java +++ b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/ApiBootRateLimiter.java @@ -15,7 +15,7 @@ * */ -package org.minbox.framework.api.boot.plugin.rate.limiter; +package org.minbox.framework.api.boot.limiter; /** * Definition of current limiting interface @@ -23,13 +23,13 @@ * a unified method for defining current limiting needs *

* Basic Abstract implementation class - * {@link org.minbox.framework.api.boot.plugin.rate.limiter.support.AbstractRateLimiter} + * {@link org.minbox.framework.api.boot.limiter.support.AbstractRateLimiter} *

* Current restriction of token bucket mode of single application provided by Google - * {@link org.minbox.framework.api.boot.plugin.rate.limiter.support.GoogleGuavaRateLimiter} + * {@link org.minbox.framework.api.boot.limiter.support.GoogleGuavaRateLimiter} *

* Implementation of redis Lua script for microservices and distributed applications - * {@link org.minbox.framework.api.boot.plugin.rate.limiter.support.RedisLuaRateLimiter} + * {@link org.minbox.framework.api.boot.limiter.support.RedisLuaRateLimiter} * * @author 恒宇少年 */ diff --git a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/annotation/RateLimiter.java b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/annotation/RateLimiter.java similarity index 93% rename from api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/annotation/RateLimiter.java rename to api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/annotation/RateLimiter.java index bbe2f504..eb0ccb23 100644 --- a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/annotation/RateLimiter.java +++ b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/annotation/RateLimiter.java @@ -15,7 +15,7 @@ * */ -package org.minbox.framework.api.boot.plugin.rate.limiter.annotation; +package org.minbox.framework.api.boot.limiter.annotation; import java.lang.annotation.*; diff --git a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/aop/advisor/ApiBootRateLimiterAdvisor.java b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/aop/advisor/ApiBootRateLimiterAdvisor.java similarity index 91% rename from api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/aop/advisor/ApiBootRateLimiterAdvisor.java rename to api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/aop/advisor/ApiBootRateLimiterAdvisor.java index 6b5eb8aa..76ac5117 100644 --- a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/aop/advisor/ApiBootRateLimiterAdvisor.java +++ b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/aop/advisor/ApiBootRateLimiterAdvisor.java @@ -15,11 +15,11 @@ * */ -package org.minbox.framework.api.boot.plugin.rate.limiter.aop.advisor; +package org.minbox.framework.api.boot.limiter.aop.advisor; import org.aopalliance.aop.Advice; -import org.minbox.framework.api.boot.plugin.rate.limiter.annotation.RateLimiter; -import org.minbox.framework.api.boot.plugin.rate.limiter.aop.interceptor.ApiBootRateLimiterMethodInterceptor; +import org.minbox.framework.api.boot.limiter.annotation.RateLimiter; +import org.minbox.framework.api.boot.limiter.aop.interceptor.ApiBootRateLimiterMethodInterceptor; import org.springframework.aop.Pointcut; import org.springframework.aop.support.AbstractPointcutAdvisor; import org.springframework.aop.support.ComposablePointcut; diff --git a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/aop/interceptor/ApiBootRateLimiterMethodInterceptor.java b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/aop/interceptor/ApiBootRateLimiterMethodInterceptor.java similarity index 90% rename from api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/aop/interceptor/ApiBootRateLimiterMethodInterceptor.java rename to api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/aop/interceptor/ApiBootRateLimiterMethodInterceptor.java index 9993564e..5ada3636 100644 --- a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/aop/interceptor/ApiBootRateLimiterMethodInterceptor.java +++ b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/aop/interceptor/ApiBootRateLimiterMethodInterceptor.java @@ -15,14 +15,14 @@ * */ -package org.minbox.framework.api.boot.plugin.rate.limiter.aop.interceptor; +package org.minbox.framework.api.boot.limiter.aop.interceptor; import org.aopalliance.intercept.MethodInterceptor; import org.aopalliance.intercept.MethodInvocation; -import org.minbox.framework.api.boot.plugin.rate.limiter.ApiBootRateLimiter; -import org.minbox.framework.api.boot.plugin.rate.limiter.annotation.RateLimiter; -import org.minbox.framework.api.boot.plugin.rate.limiter.result.RateLimiterOverFlowResponse; -import org.minbox.framework.api.boot.plugin.tools.AopTools; +import org.minbox.framework.api.boot.limiter.ApiBootRateLimiter; +import org.minbox.framework.api.boot.limiter.annotation.RateLimiter; +import org.minbox.framework.api.boot.limiter.result.RateLimiterOverFlowResponse; +import org.minbox.framework.api.boot.tools.AopTools; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.aop.support.AopUtils; diff --git a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/centre/RateLimiterConfigCentre.java b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/centre/RateLimiterConfigCentre.java similarity index 95% rename from api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/centre/RateLimiterConfigCentre.java rename to api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/centre/RateLimiterConfigCentre.java index 0165ba3a..2676b1ca 100644 --- a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/centre/RateLimiterConfigCentre.java +++ b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/centre/RateLimiterConfigCentre.java @@ -15,7 +15,7 @@ * */ -package org.minbox.framework.api.boot.plugin.rate.limiter.centre; +package org.minbox.framework.api.boot.limiter.centre; import org.minbox.framework.api.boot.common.exception.ApiBootException; diff --git a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/centre/support/AbstractRateLimiterConfigCentre.java b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/centre/support/AbstractRateLimiterConfigCentre.java similarity index 94% rename from api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/centre/support/AbstractRateLimiterConfigCentre.java rename to api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/centre/support/AbstractRateLimiterConfigCentre.java index af49edcf..05d5fdbb 100644 --- a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/centre/support/AbstractRateLimiterConfigCentre.java +++ b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/centre/support/AbstractRateLimiterConfigCentre.java @@ -15,10 +15,10 @@ * */ -package org.minbox.framework.api.boot.plugin.rate.limiter.centre.support; +package org.minbox.framework.api.boot.limiter.centre.support; import org.minbox.framework.api.boot.common.exception.ApiBootException; -import org.minbox.framework.api.boot.plugin.rate.limiter.centre.RateLimiterConfigCentre; +import org.minbox.framework.api.boot.limiter.centre.RateLimiterConfigCentre; import org.springframework.util.StringUtils; import java.io.IOException; diff --git a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/centre/support/ApolloRateLimiterConfigCentre.java b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/centre/support/ApolloRateLimiterConfigCentre.java similarity index 83% rename from api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/centre/support/ApolloRateLimiterConfigCentre.java rename to api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/centre/support/ApolloRateLimiterConfigCentre.java index 85a6c848..dbd54c97 100644 --- a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/centre/support/ApolloRateLimiterConfigCentre.java +++ b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/centre/support/ApolloRateLimiterConfigCentre.java @@ -15,12 +15,13 @@ * */ -package org.minbox.framework.api.boot.plugin.rate.limiter.centre.support; +package org.minbox.framework.api.boot.limiter.centre.support; import org.minbox.framework.api.boot.common.exception.ApiBootException; +import org.minbox.framework.api.boot.limiter.centre.RateLimiterConfigCentre; /** - * The {@link org.minbox.framework.api.boot.plugin.rate.limiter.centre.RateLimiterConfigCentre} Apollo implementation class + * The {@link RateLimiterConfigCentre} Apollo implementation class * * @author 恒宇少年 */ diff --git a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/centre/support/DefaultRateLimiterConfigCentre.java b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/centre/support/DefaultRateLimiterConfigCentre.java similarity index 93% rename from api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/centre/support/DefaultRateLimiterConfigCentre.java rename to api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/centre/support/DefaultRateLimiterConfigCentre.java index 98057236..7256c339 100644 --- a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/centre/support/DefaultRateLimiterConfigCentre.java +++ b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/centre/support/DefaultRateLimiterConfigCentre.java @@ -15,7 +15,7 @@ * */ -package org.minbox.framework.api.boot.plugin.rate.limiter.centre.support; +package org.minbox.framework.api.boot.limiter.centre.support; import org.minbox.framework.api.boot.common.exception.ApiBootException; diff --git a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/centre/support/NacosRateLimiterConfigCentre.java b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/centre/support/NacosRateLimiterConfigCentre.java similarity index 96% rename from api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/centre/support/NacosRateLimiterConfigCentre.java rename to api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/centre/support/NacosRateLimiterConfigCentre.java index f1e8135c..31ca2bc8 100644 --- a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/centre/support/NacosRateLimiterConfigCentre.java +++ b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/centre/support/NacosRateLimiterConfigCentre.java @@ -15,7 +15,7 @@ * */ -package org.minbox.framework.api.boot.plugin.rate.limiter.centre.support; +package org.minbox.framework.api.boot.limiter.centre.support; import com.alibaba.nacos.api.common.Constants; import com.alibaba.nacos.api.config.ConfigService; @@ -23,6 +23,7 @@ import com.alibaba.nacos.client.config.listener.impl.PropertiesListener; import com.alibaba.nacos.spring.util.NacosUtils; import org.minbox.framework.api.boot.common.exception.ApiBootException; +import org.minbox.framework.api.boot.limiter.centre.RateLimiterConfigCentre; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.Assert; @@ -32,7 +33,7 @@ /** * Nacos Config Support - * The {@link org.minbox.framework.api.boot.plugin.rate.limiter.centre.RateLimiterConfigCentre} Nacos implement class + * The {@link RateLimiterConfigCentre} Nacos implement class * * @author 恒宇少年 */ diff --git a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/config/RateLimiterConfig.java b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/config/RateLimiterConfig.java similarity index 92% rename from api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/config/RateLimiterConfig.java rename to api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/config/RateLimiterConfig.java index ee0a4884..d2d28937 100644 --- a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/config/RateLimiterConfig.java +++ b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/config/RateLimiterConfig.java @@ -15,7 +15,7 @@ * */ -package org.minbox.framework.api.boot.plugin.rate.limiter.config; +package org.minbox.framework.api.boot.limiter.config; import lombok.Data; diff --git a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/context/ApiBootRateLimiterContext.java b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/context/ApiBootRateLimiterContext.java similarity index 96% rename from api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/context/ApiBootRateLimiterContext.java rename to api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/context/ApiBootRateLimiterContext.java index 57af56b3..a9cebe95 100644 --- a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/context/ApiBootRateLimiterContext.java +++ b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/context/ApiBootRateLimiterContext.java @@ -15,7 +15,7 @@ * */ -package org.minbox.framework.api.boot.plugin.rate.limiter.context; +package org.minbox.framework.api.boot.limiter.context; import com.google.common.util.concurrent.RateLimiter; import org.springframework.util.ObjectUtils; diff --git a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/result/RateLimiterOverFlowResponse.java b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/result/RateLimiterOverFlowResponse.java similarity index 93% rename from api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/result/RateLimiterOverFlowResponse.java rename to api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/result/RateLimiterOverFlowResponse.java index 79e385ab..de7dda8e 100644 --- a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/result/RateLimiterOverFlowResponse.java +++ b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/result/RateLimiterOverFlowResponse.java @@ -15,7 +15,7 @@ * */ -package org.minbox.framework.api.boot.plugin.rate.limiter.result; +package org.minbox.framework.api.boot.limiter.result; /** * Response results after flow exceeding diff --git a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/support/AbstractRateLimiter.java b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/support/AbstractRateLimiter.java similarity index 84% rename from api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/support/AbstractRateLimiter.java rename to api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/support/AbstractRateLimiter.java index 48c8fea4..07c3188f 100644 --- a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/support/AbstractRateLimiter.java +++ b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/support/AbstractRateLimiter.java @@ -15,14 +15,13 @@ * */ -package org.minbox.framework.api.boot.plugin.rate.limiter.support; +package org.minbox.framework.api.boot.limiter.support; -import org.minbox.framework.api.boot.plugin.rate.limiter.ApiBootRateLimiter; -import org.minbox.framework.api.boot.plugin.rate.limiter.centre.RateLimiterConfigCentre; +import org.minbox.framework.api.boot.limiter.ApiBootRateLimiter; +import org.minbox.framework.api.boot.limiter.centre.support.AbstractRateLimiterConfigCentre; +import org.minbox.framework.api.boot.limiter.centre.RateLimiterConfigCentre; import org.springframework.util.ObjectUtils; -import static org.minbox.framework.api.boot.plugin.rate.limiter.centre.support.AbstractRateLimiterConfigCentre.DEFAULT_QPS; - /** * ApiBoot RateLimiter Abstract Support * @@ -57,7 +56,7 @@ public AbstractRateLimiter(Long globalQPS, RateLimiterConfigCentre rateLimiterCo protected Long getPriorityQPS(String configKey, Double annotationQPS) { // first:config centre value Long centreConfigValue = rateLimiterConfigCentre.getQps(configKey); - if (!DEFAULT_QPS.equals(centreConfigValue)) { + if (!AbstractRateLimiterConfigCentre.DEFAULT_QPS.equals(centreConfigValue)) { return centreConfigValue; } // If the configuration center does not have the qps of the key diff --git a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/support/GoogleGuavaRateLimiter.java b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/support/GoogleGuavaRateLimiter.java similarity index 82% rename from api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/support/GoogleGuavaRateLimiter.java rename to api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/support/GoogleGuavaRateLimiter.java index c04d12a6..a52f10d5 100644 --- a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/support/GoogleGuavaRateLimiter.java +++ b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/support/GoogleGuavaRateLimiter.java @@ -15,11 +15,11 @@ * */ -package org.minbox.framework.api.boot.plugin.rate.limiter.support; +package org.minbox.framework.api.boot.limiter.support; -import org.minbox.framework.api.boot.plugin.rate.limiter.annotation.RateLimiter; -import org.minbox.framework.api.boot.plugin.rate.limiter.centre.RateLimiterConfigCentre; -import org.minbox.framework.api.boot.plugin.rate.limiter.context.ApiBootRateLimiterContext; +import org.minbox.framework.api.boot.limiter.annotation.RateLimiter; +import org.minbox.framework.api.boot.limiter.context.ApiBootRateLimiterContext; +import org.minbox.framework.api.boot.limiter.centre.RateLimiterConfigCentre; /** * Google guava rate limiter support diff --git a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/support/RedisLuaRateLimiter.java b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/support/RedisLuaRateLimiter.java similarity index 95% rename from api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/support/RedisLuaRateLimiter.java rename to api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/support/RedisLuaRateLimiter.java index 70148cfa..f6ec0977 100644 --- a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/java/org/minbox/framework/api/boot/plugin/rate/limiter/support/RedisLuaRateLimiter.java +++ b/api-boot-project/api-boot/src/main/java/org/minbox/framework/api/boot/limiter/support/RedisLuaRateLimiter.java @@ -15,10 +15,10 @@ * */ -package org.minbox.framework.api.boot.plugin.rate.limiter.support; +package org.minbox.framework.api.boot.limiter.support; -import org.minbox.framework.api.boot.plugin.rate.limiter.annotation.RateLimiter; -import org.minbox.framework.api.boot.plugin.rate.limiter.centre.RateLimiterConfigCentre; +import org.minbox.framework.api.boot.limiter.annotation.RateLimiter; +import org.minbox.framework.api.boot.limiter.centre.RateLimiterConfigCentre; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.io.ClassPathResource; diff --git a/api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/resources/META-INF/scripts/qps-rate-limiter.lua b/api-boot-project/api-boot/src/main/resources/META-INF/scripts/qps-rate-limiter.lua similarity index 100% rename from api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/src/main/resources/META-INF/scripts/qps-rate-limiter.lua rename to api-boot-project/api-boot/src/main/resources/META-INF/scripts/qps-rate-limiter.lua diff --git a/api-boot-samples/api-boot-sample-rate-limiter/pom.xml b/api-boot-samples/api-boot-sample-rate-limiter/pom.xml index bee4b6c0..010c0dbc 100644 --- a/api-boot-samples/api-boot-sample-rate-limiter/pom.xml +++ b/api-boot-samples/api-boot-sample-rate-limiter/pom.xml @@ -60,7 +60,7 @@ org.minbox.framework api-boot-dependencies - 2.2.2.RELEASE + ${api-boot.version} pom import diff --git a/api-boot-samples/api-boot-sample-rate-limiter/src/main/java/org/minbox/framework/api/boot/sample/CustomerResponse.java b/api-boot-samples/api-boot-sample-rate-limiter/src/main/java/org/minbox/framework/api/boot/sample/CustomerResponse.java index 45a95036..be845b95 100644 --- a/api-boot-samples/api-boot-sample-rate-limiter/src/main/java/org/minbox/framework/api/boot/sample/CustomerResponse.java +++ b/api-boot-samples/api-boot-sample-rate-limiter/src/main/java/org/minbox/framework/api/boot/sample/CustomerResponse.java @@ -18,7 +18,7 @@ package org.minbox.framework.api.boot.sample; import org.minbox.framework.api.boot.common.model.ApiBootResult; -import org.minbox.framework.api.boot.plugin.rate.limiter.result.RateLimiterOverFlowResponse; +import org.minbox.framework.api.boot.limiter.result.RateLimiterOverFlowResponse; import org.springframework.stereotype.Component; /** diff --git a/api-boot-samples/api-boot-sample-rate-limiter/src/main/java/org/minbox/framework/api/boot/sample/RateLimiterSampleController.java b/api-boot-samples/api-boot-sample-rate-limiter/src/main/java/org/minbox/framework/api/boot/sample/RateLimiterSampleController.java index 5491a809..a77df494 100644 --- a/api-boot-samples/api-boot-sample-rate-limiter/src/main/java/org/minbox/framework/api/boot/sample/RateLimiterSampleController.java +++ b/api-boot-samples/api-boot-sample-rate-limiter/src/main/java/org/minbox/framework/api/boot/sample/RateLimiterSampleController.java @@ -17,7 +17,7 @@ package org.minbox.framework.api.boot.sample; -import org.minbox.framework.api.boot.plugin.rate.limiter.annotation.RateLimiter; +import org.minbox.framework.api.boot.limiter.annotation.RateLimiter; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;