Skip to content

Commit a7b5f18

Browse files
committed
Move "api-boot-plugin-rate-limiter" to "api-boot"
1 parent d5a8052 commit a7b5f18

File tree

30 files changed

+202
-141
lines changed

30 files changed

+202
-141
lines changed

api-boot-project/api-boot-autoconfigure/pom.xml

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -163,13 +163,6 @@
163163
<optional>true</optional>
164164
</dependency>
165165

166-
<!--ApiBoot RateLimiter-->
167-
<dependency>
168-
<groupId>${project.groupId}</groupId>
169-
<artifactId>api-boot-plugin-rate-limiter</artifactId>
170-
<optional>true</optional>
171-
</dependency>
172-
173166
<!--Nacos Config-->
174167
<dependency>
175168
<groupId>com.alibaba.boot</groupId>
@@ -256,6 +249,11 @@
256249
<artifactId>quartz</artifactId>
257250
<optional>true</optional>
258251
</dependency>
252+
<dependency>
253+
<groupId>com.google.guava</groupId>
254+
<artifactId>guava</artifactId>
255+
<optional>true</optional>
256+
</dependency>
259257
<!--apiboot tools-->
260258
<dependency>
261259
<groupId>org.minbox.framework</groupId>

api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/ratelimiter/ApiBootRateLimiterAutoConfiguration.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@
1717

1818
package org.minbox.framework.api.boot.autoconfigure.ratelimiter;
1919

20-
import org.minbox.framework.api.boot.plugin.rate.limiter.ApiBootRateLimiter;
21-
import org.minbox.framework.api.boot.plugin.rate.limiter.aop.advisor.ApiBootRateLimiterAdvisor;
22-
import org.minbox.framework.api.boot.plugin.rate.limiter.aop.interceptor.ApiBootRateLimiterMethodInterceptor;
23-
import org.minbox.framework.api.boot.plugin.rate.limiter.centre.RateLimiterConfigCentre;
24-
import org.minbox.framework.api.boot.plugin.rate.limiter.centre.support.DefaultRateLimiterConfigCentre;
25-
import org.minbox.framework.api.boot.plugin.rate.limiter.result.RateLimiterOverFlowResponse;
26-
import org.minbox.framework.api.boot.plugin.rate.limiter.support.GoogleGuavaRateLimiter;
20+
import org.minbox.framework.api.boot.limiter.ApiBootRateLimiter;
21+
import org.minbox.framework.api.boot.limiter.aop.advisor.ApiBootRateLimiterAdvisor;
22+
import org.minbox.framework.api.boot.limiter.aop.interceptor.ApiBootRateLimiterMethodInterceptor;
23+
import org.minbox.framework.api.boot.limiter.centre.RateLimiterConfigCentre;
24+
import org.minbox.framework.api.boot.limiter.centre.support.DefaultRateLimiterConfigCentre;
25+
import org.minbox.framework.api.boot.limiter.result.RateLimiterOverFlowResponse;
26+
import org.minbox.framework.api.boot.limiter.support.GoogleGuavaRateLimiter;
2727
import org.springframework.beans.factory.ObjectProvider;
2828
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
2929
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;

api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/ratelimiter/ApiBootRateLimiterNacosConfigConfiguration.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
import com.alibaba.nacos.api.NacosFactory;
2323
import com.alibaba.nacos.api.config.ConfigService;
2424
import com.alibaba.nacos.api.exception.NacosException;
25-
import org.minbox.framework.api.boot.plugin.rate.limiter.centre.RateLimiterConfigCentre;
26-
import org.minbox.framework.api.boot.plugin.rate.limiter.centre.support.NacosRateLimiterConfigCentre;
25+
import org.minbox.framework.api.boot.limiter.centre.RateLimiterConfigCentre;
26+
import org.minbox.framework.api.boot.limiter.centre.support.NacosRateLimiterConfigCentre;
2727
import org.slf4j.Logger;
2828
import org.slf4j.LoggerFactory;
2929
import org.springframework.beans.factory.annotation.Qualifier;

api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/ratelimiter/ApiBootRateLimiterRedisAutoConfiguration.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,9 @@
1616
*/
1717

1818
package org.minbox.framework.api.boot.autoconfigure.ratelimiter;
19-
20-
import org.minbox.framework.api.boot.plugin.rate.limiter.ApiBootRateLimiter;
21-
import org.minbox.framework.api.boot.plugin.rate.limiter.centre.RateLimiterConfigCentre;
22-
import org.minbox.framework.api.boot.plugin.rate.limiter.support.RedisLuaRateLimiter;
19+
import org.minbox.framework.api.boot.limiter.ApiBootRateLimiter;
20+
import org.minbox.framework.api.boot.limiter.centre.RateLimiterConfigCentre;
21+
import org.minbox.framework.api.boot.limiter.support.RedisLuaRateLimiter;
2322
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
2423
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2524
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;

api-boot-project/api-boot-dependencies/pom.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -319,11 +319,6 @@
319319
</dependency>
320320

321321
<!--ApiBoot RateLimiter-->
322-
<dependency>
323-
<groupId>org.minbox.framework</groupId>
324-
<artifactId>api-boot-plugin-rate-limiter</artifactId>
325-
<version>${project.version}</version>
326-
</dependency>
327322
<dependency>
328323
<groupId>org.minbox.framework</groupId>
329324
<artifactId>api-boot-starter-rate-limiter</artifactId>

api-boot-project/api-boot-plugins/api-boot-plugin-rate-limiter/pom.xml

Lines changed: 0 additions & 72 deletions
This file was deleted.

api-boot-project/api-boot-plugins/pom.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
<module>api-boot-plugin-security</module>
2323
<module>api-boot-plugin-oauth</module>
2424
<module>api-boot-plugin-resource-load</module>
25-
<module>api-boot-plugin-rate-limiter</module>
2625
<module>api-boot-plugin-sequence</module>
2726
</modules>
2827
</project>

api-boot-project/api-boot-starters/api-boot-starter-rate-limiter/pom.xml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,17 @@
4949
<groupId>org.minbox.framework</groupId>
5050
<artifactId>api-boot-starter</artifactId>
5151
</dependency>
52-
<!--ApiBoot RateLimiter Plugin-->
5352
<dependency>
54-
<groupId>org.minbox.framework</groupId>
55-
<artifactId>api-boot-plugin-rate-limiter</artifactId>
53+
<groupId>com.google.guava</groupId>
54+
<artifactId>guava</artifactId>
55+
</dependency>
56+
<dependency>
57+
<groupId>org.springframework.boot</groupId>
58+
<artifactId>spring-boot-starter-web</artifactId>
59+
</dependency>
60+
<dependency>
61+
<groupId>org.springframework.boot</groupId>
62+
<artifactId>spring-boot-starter-aop</artifactId>
5663
</dependency>
5764
</dependencies>
5865

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/*
2+
* Copyright [2019] [恒宇少年 - 于起宇]
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*
16+
*/
17+
18+
package org.minbox.framework.api.boot.tools;
19+
20+
import org.springframework.core.BridgeMethodResolver;
21+
import org.springframework.util.ClassUtils;
22+
23+
import java.lang.reflect.Method;
24+
25+
/**
26+
* Aop Tools
27+
*
28+
* @author 恒宇少年
29+
*/
30+
public class AopTools {
31+
/**
32+
* get method declared annotation
33+
*
34+
* @param targetClass class instance
35+
* @param method method instance
36+
* @param annotationClass annotation class
37+
* @param <T> annotation type
38+
* @return annotation instance
39+
*/
40+
public static <T> T getMethodAnnotation(Class targetClass, Method method, Class annotationClass) {
41+
Method specificMethod = ClassUtils.getMostSpecificMethod(method, targetClass);
42+
// declared method object instance
43+
Method declaredMethod = BridgeMethodResolver.findBridgedMethod(specificMethod);
44+
return (T) declaredMethod.getDeclaredAnnotation(annotationClass);
45+
}
46+
}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
/*
2+
* Copyright [2019] [恒宇少年 - 于起宇]
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*
16+
*/
17+
18+
package org.minbox.framework.api.boot.tools;
19+
20+
import com.alibaba.fastjson.JSON;
21+
import com.alibaba.fastjson.JSONObject;
22+
import com.alibaba.fastjson.serializer.SerializerFeature;
23+
import org.springframework.util.ObjectUtils;
24+
25+
/**
26+
* json tools
27+
*
28+
* @author 恒宇少年
29+
*/
30+
public class JsonTools {
31+
/**
32+
* beautify object to json
33+
*
34+
* @param object object
35+
* @return object json string
36+
*/
37+
public static String beautifyJson(Object object) {
38+
if (ObjectUtils.isEmpty(object)) {
39+
return null;
40+
}
41+
return JSON.toJSONString(object,
42+
SerializerFeature.PrettyFormat,
43+
SerializerFeature.SortField,
44+
SerializerFeature.MapSortField
45+
);
46+
}
47+
48+
/**
49+
* beautify string to json
50+
*
51+
* @param json json string
52+
* @return after beautify json
53+
*/
54+
public static String beautifyJson(String json) {
55+
if (ObjectUtils.isEmpty(json)) {
56+
return json;
57+
}
58+
return JSON.toJSONString(
59+
JSONObject.parse(json),
60+
SerializerFeature.PrettyFormat
61+
);
62+
}
63+
}

0 commit comments

Comments
 (0)