Skip to content

Commit 454c6fd

Browse files
committed
Merge branch '2.3.x'
2 parents bcdebea + ede9938 commit 454c6fd

File tree

44 files changed

+242
-77
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+242
-77
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
# ApiBoot: Born to build Api services as components
44

5-
65
[![Ci Builder](https://github.com/minbox-projects/api-boot/workflows/Ci%20Builder/badge.svg)](https://github.com/minbox-projects/api-boot/actions)
6+
![](https://tokei.rs/b1/github/minbox-projects/api-boot?category=lines)
77
[![](https://codecov.io/gh/minbox-projects/api-boot/branch/master/graph/badge.svg)](https://codecov.io/gh/minbox-projects/api-boot)
88
[![](https://badges.gitter.im/api-boot/community.svg)](https://gitter.im/api-boot/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
99
[![](https://img.shields.io/badge/link-官方文档-green.svg?style=flat-square)](https://apiboot.minbox.io)

README.zh-CN.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
# ApiBoot:为组件化构建Api服务而生
44

55
[![Ci Builder](https://github.com/minbox-projects/api-boot/workflows/Ci%20Builder/badge.svg)](https://github.com/minbox-projects/api-boot/actions)
6+
![](https://tokei.rs/b1/github/minbox-projects/api-boot?category=lines)
67
[![](https://codecov.io/gh/minbox-projects/api-boot/branch/master/graph/badge.svg)](https://codecov.io/gh/minbox-projects/api-boot)
78
[![](https://badges.gitter.im/api-boot/community.svg)](https://gitter.im/api-boot/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
89
[![](https://img.shields.io/badge/link-官方文档-green.svg?style=flat-square)](https://apiboot.minbox.io)

api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/logging/ApiBootLoggingAutoConfiguration.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@
2525
import org.slf4j.LoggerFactory;
2626
import org.springframework.beans.factory.ObjectProvider;
2727
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
28-
import org.springframework.boot.autoconfigure.cache.CacheManagerCustomizer;
29-
import org.springframework.boot.autoconfigure.cache.CacheManagerCustomizers;
3028
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
3129
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
3230
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -37,9 +35,7 @@
3735
import org.springframework.context.annotation.Configuration;
3836
import org.springframework.context.annotation.Import;
3937
import org.springframework.scheduling.annotation.EnableAsync;
40-
import org.springframework.util.ObjectUtils;
4138

42-
import java.util.List;
4339
import java.util.stream.Collectors;
4440

4541
import static org.minbox.framework.api.boot.autoconfigure.logging.ApiBootLoggingProperties.API_BOOT_LOGGING_PREFIX;

api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/logging/LoggingFactoryBeanCustomizers.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package org.minbox.framework.api.boot.autoconfigure.logging;
22

33
import org.minbox.framework.logging.client.LoggingFactoryBean;
4-
import org.springframework.boot.autoconfigure.cache.CacheManagerCustomizer;
5-
import org.springframework.boot.autoconfigure.cache.CacheManagerCustomizers;
64
import org.springframework.boot.util.LambdaSafe;
75

86
import java.util.ArrayList;

api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/message/pipe/client/MessagePipeClientAutoConfiguration.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.minbox.framework.api.boot.autoconfigure.message.pipe.client;
22

33
import org.minbox.framework.message.pipe.client.config.ClientConfiguration;
4-
import org.minbox.framework.message.pipe.spring.annotation.client.EnableMessagePipeClient;
54
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
65
import org.springframework.boot.context.properties.EnableConfigurationProperties;
76
import org.springframework.context.annotation.Bean;
@@ -13,7 +12,6 @@
1312
*/
1413
@ConditionalOnClass(ClientConfiguration.class)
1514
@EnableConfigurationProperties(MessagePipeClientProperties.class)
16-
@EnableMessagePipeClient
1715
public class MessagePipeClientAutoConfiguration {
1816
private MessagePipeClientProperties messagePipeClientProperties;
1917

@@ -25,7 +23,7 @@ public MessagePipeClientAutoConfiguration(MessagePipeClientProperties messagePip
2523
* Create {@link ClientConfiguration} instance
2624
*
2725
* @return The {@link ClientConfiguration} instance
28-
* @see MessagePipeClientProperties#getConfiguration
26+
* @see MessagePipeClientProperties
2927
*/
3028
@Bean
3129
public ClientConfiguration clientConfiguration() {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package org.minbox.framework.api.boot.autoconfigure.message.pipe.server;
2+
3+
import org.minbox.framework.message.pipe.server.config.MessagePipeConfiguration;
4+
5+
/**
6+
* The {@link MessagePipeConfiguration} Custom configuration interface definition
7+
* <p>
8+
* If there is a sequence, you can use the {@link org.springframework.core.annotation.Order} annotation to configure
9+
*
10+
* @author 恒宇少年
11+
*/
12+
@FunctionalInterface
13+
public interface MessagePipeConfigurationCustomizer {
14+
/**
15+
* To implement this method, it can be modified according to the parameter object
16+
*
17+
* @param configuration The {@link MessagePipeConfiguration} instance
18+
*/
19+
void customize(MessagePipeConfiguration configuration);
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package org.minbox.framework.api.boot.autoconfigure.message.pipe.server;
2+
3+
import org.minbox.framework.message.pipe.server.config.MessagePipeConfiguration;
4+
import org.springframework.boot.util.LambdaSafe;
5+
6+
import java.util.ArrayList;
7+
import java.util.Collections;
8+
import java.util.List;
9+
10+
/**
11+
* The wrapper class of {@link MessagePipeConfigurationCustomizer}
12+
* <p>
13+
* Execute {@link MessagePipeConfigurationCustomizer#customize} according to the order configured by {@link org.springframework.core.annotation.Order}
14+
*
15+
* @author 恒宇少年
16+
*/
17+
public class MessagePipeConfigurationCustomizers {
18+
private List<MessagePipeConfigurationCustomizer> customizers;
19+
20+
public MessagePipeConfigurationCustomizers(List<MessagePipeConfigurationCustomizer> customizers) {
21+
this.customizers = (customizers != null) ? new ArrayList<>(customizers) : Collections.emptyList();
22+
}
23+
24+
public MessagePipeConfiguration customizer(MessagePipeConfiguration configuration) {
25+
LambdaSafe.callbacks(MessagePipeConfigurationCustomizer.class, this.customizers, configuration)
26+
.withLogger(MessagePipeConfigurationCustomizer.class).invoke((customizer) -> customizer.customize(configuration));
27+
return configuration;
28+
}
29+
}

api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/message/pipe/server/MessagePipeServerAutoConfiguration.java

Lines changed: 51 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,22 @@
22

33
import org.minbox.framework.message.pipe.server.config.MessagePipeConfiguration;
44
import org.minbox.framework.message.pipe.server.config.ServerConfiguration;
5-
import org.minbox.framework.message.pipe.spring.annotation.server.EnableMessagePipeServer;
5+
import org.springframework.beans.factory.ObjectProvider;
66
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
7+
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
78
import org.springframework.boot.context.properties.EnableConfigurationProperties;
89
import org.springframework.context.annotation.Bean;
910

11+
import java.util.List;
12+
import java.util.stream.Collectors;
13+
1014
/**
1115
* The Message Pipe Server configuration
1216
*
1317
* @author 恒宇少年
1418
*/
1519
@ConditionalOnClass(ServerConfiguration.class)
1620
@EnableConfigurationProperties(MessagePipeServerProperties.class)
17-
@EnableMessagePipeServer
1821
public class MessagePipeServerAutoConfiguration {
1922
private MessagePipeServerProperties messagePipeServerProperties;
2023

@@ -26,13 +29,28 @@ public MessagePipeServerAutoConfiguration(MessagePipeServerProperties messagePip
2629
* Create {@link ServerConfiguration} instance
2730
*
2831
* @return The {@link ServerConfiguration} instance
29-
* @see MessagePipeServerProperties#getConfiguration
32+
* @see MessagePipeServerProperties
3033
*/
3134
@Bean
3235
public ServerConfiguration serverConfiguration() {
3336
return messagePipeServerProperties.getConfiguration();
3437
}
3538

39+
/**
40+
* Instantiate the wrapper class of {@link MessagePipeConfigurationCustomizer}
41+
*
42+
* @param customizers The {@link MessagePipeConfigurationCustomizer} object provider
43+
* @return The {@link MessagePipeConfigurationCustomizers} instance
44+
*/
45+
@Bean
46+
@ConditionalOnMissingBean
47+
public MessagePipeConfigurationCustomizers messagePipeConfigurationCustomizers(
48+
ObjectProvider<MessagePipeConfigurationCustomizer> customizers) {
49+
List<MessagePipeConfigurationCustomizer> sortedCustomizers =
50+
customizers.orderedStream().collect(Collectors.toList());
51+
return new MessagePipeConfigurationCustomizers(sortedCustomizers);
52+
}
53+
3654
/**
3755
* Create {@link MessagePipeConfiguration}
3856
* <p>
@@ -41,14 +59,36 @@ public ServerConfiguration serverConfiguration() {
4159
* @return The {@link MessagePipeConfiguration} instance
4260
*/
4361
@Bean
44-
public MessagePipeConfiguration messagePipeConfiguration() {
62+
public MessagePipeConfiguration messagePipeConfiguration(MessagePipeConfigurationCustomizers customizers) {
4563
MessagePipeConfiguration configuration = MessagePipeConfiguration.defaultConfiguration();
46-
MessagePipeConfiguration.LockTime lockTime =
47-
new MessagePipeConfiguration.LockTime()
48-
.setLeaseTime(messagePipeServerProperties.getLockLeaseTime())
49-
.setTimeUnit(messagePipeServerProperties.getLockLeaseTimeUnit());
50-
configuration.setLockTime(lockTime);
51-
configuration.setDistributionMessagePoolSize(messagePipeServerProperties.getDistributionMessagePoolSize());
52-
return configuration;
64+
return customizers.customizer(configuration);
65+
}
66+
67+
/**
68+
* Configuration {@link MessagePipeConfiguration#setLockTime}
69+
*
70+
* @return The {@link MessagePipeConfigurationCustomizer} instance of {@link MessagePipeConfiguration.LockTime}
71+
*/
72+
@Bean
73+
public MessagePipeConfigurationCustomizer customizerLockTime() {
74+
return configuration -> {
75+
MessagePipeConfiguration.LockTime lockTime =
76+
new MessagePipeConfiguration.LockTime()
77+
.setLeaseTime(messagePipeServerProperties.getLockLeaseTime())
78+
.setTimeUnit(messagePipeServerProperties.getLockLeaseTimeUnit());
79+
configuration.setLockTime(lockTime);
80+
};
81+
}
82+
83+
/**
84+
* Configuration {@link MessagePipeConfiguration#setMessagePipeMonitorMillis}
85+
*
86+
* @return The {@link MessagePipeConfigurationCustomizer} instance of monitor millis
87+
*/
88+
@Bean
89+
public MessagePipeConfigurationCustomizer customizerMonitorTime() {
90+
return configuration ->
91+
configuration.setMessagePipeMonitorMillis(messagePipeServerProperties.getMessagePipeMonitorMillis());
92+
5393
}
5494
}

api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/message/pipe/server/MessagePipeServerProperties.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,11 @@ public class MessagePipeServerProperties {
3737
/**
3838
* The number of threads in the message thread pool
3939
*/
40+
@Deprecated
4041
private int distributionMessagePoolSize = 10;
42+
/**
43+
* The interval time for each message pipeline to perform monitoring
44+
* time unit: milliseconds
45+
*/
46+
private long messagePipeMonitorMillis = 10000L;
4147
}
Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
1-
. .--. .
2-
/ \ o | ) _|_
3-
/___\ .,-. . |--: .-. .-. |
4-
/ \ | ) | | )( )( )|
5-
' `|`-'-' `-'--' `-' `-' `-'
6-
|
7-
'
8-
:: Based On SpringBoot Version : ${spring-boot.formatted-version} ::
9-
:: ApiBoot Version : ${api.boot.version} ::
1+
2+
___ .______ __ .______ ______ ______ .___________.
3+
/ \ | _ \ | | | _ \ / __ \ / __ \ | |
4+
/ ^ \ | |_) | | | | |_) | | | | | | | | | `---| |----`
5+
/ /_\ \ | ___/ | | | _ < | | | | | | | | | |
6+
/ _____ \ | | | | | |_) | | `--' | | `--' | | |
7+
/__/ \__\ | _| |__| |______/ \______/ \______/ |__|
8+
9+
10+
SpringBoot Version : ${spring-boot.formatted-version}
11+
12+
Version : ${api.boot.version}
13+
14+
WebSite : https://apiboot.minbox.org
15+
16+
Study Articles : https://blog.yuqiyu.com/apiboot-all-articles.html

0 commit comments

Comments
 (0)