Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,7 @@ after_success:
- bash <(curl -s https://codecov.io/bash)
notifications:
email:
- jnyuqy@gmail.com
recipients:
- apiboot@minbox.org
on_success: change
on_failure: always
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ The official version of ApiBoot will be released to Maven Center. If you want to

```sh
# Download master branch source code to local
➜ git clone https://gitee.com/minbox-projects/api-boot.git
➜ git clone https://github.com/minbox-projects/api-boot.git
➜ cd api-boot
# install
➜ mvn clean install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Dgpg.skip
Expand Down
2 changes: 1 addition & 1 deletion README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ ApiBoot正式版本都会发布到Maven Center,如果你想使用源码最新

```sh
# 下载master分支源码到本地
➜ git clone https://gitee.com/minbox-projects/api-boot.git
➜ git clone https://github.com/minbox-projects/api-boot.git
# 进入api-boot源码根目录
➜ cd api-boot
# 执行安装
Expand Down
5 changes: 5 additions & 0 deletions api-boot-project/api-boot-autoconfigure/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,11 @@
<artifactId>minbox-security</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.minbox.framework</groupId>
<artifactId>minbox-oss</artifactId>
<optional>true</optional>
</dependency>


<!--Others-->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.cache.CacheManagerCustomizer;
import org.springframework.boot.autoconfigure.cache.CacheManagerCustomizers;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
Expand All @@ -38,6 +40,7 @@
import org.springframework.util.ObjectUtils;

import java.util.List;
import java.util.stream.Collectors;

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

Expand Down Expand Up @@ -74,18 +77,24 @@ public ApiBootLoggingAutoConfiguration(ApiBootLoggingProperties apiBootLoggingPr
this.apiBootLoggingProperties = apiBootLoggingProperties;
}

@Bean
@ConditionalOnMissingBean
public LoggingFactoryBeanCustomizers loggingFactoryBeanCustomizers(ObjectProvider<LoggingFactoryBeanCustomizer> customizers) {
return new LoggingFactoryBeanCustomizers(customizers.orderedStream().collect(Collectors.toList()));
}

/**
* logging factory bean
* {@link LoggingFactoryBean}
*
* @param loggingAdminDiscoveryObjectProvider Logging Admin Discovery Instance Provider
* @param customizerObjectProvider LoggingFactory Bean Customizer
* @param customizers LoggingFactory Bean Customizers
* @return LoggingFactoryBean
*/
@Bean
@ConditionalOnMissingBean
public LoggingFactoryBean loggingFactoryBean(ObjectProvider<LoggingAdminDiscovery> loggingAdminDiscoveryObjectProvider,
ObjectProvider<List<LoggingFactoryBeanCustomizer>> customizerObjectProvider) {
LoggingFactoryBeanCustomizers customizers) {
LoggingFactoryBean factoryBean = new LoggingFactoryBean();
factoryBean.setIgnorePaths(apiBootLoggingProperties.getIgnorePaths());
factoryBean.setIgnoreHttpStatus(apiBootLoggingProperties.getIgnoreHttpStatus());
Expand All @@ -97,12 +106,8 @@ public LoggingFactoryBean loggingFactoryBean(ObjectProvider<LoggingAdminDiscover
factoryBean.setShowConsoleLog(apiBootLoggingProperties.isShowConsoleLog());
factoryBean.setFormatConsoleLog(apiBootLoggingProperties.isFormatConsoleLogJson());

List<LoggingFactoryBeanCustomizer> customizers = customizerObjectProvider.getIfAvailable();
if (!ObjectUtils.isEmpty(customizers)) {
customizers.stream().forEach(customizer -> customizer.customize(factoryBean));
}
logger.info("【LoggingFactoryBean】init successfully.");
return factoryBean;
return customizers.customize(factoryBean);
}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package org.minbox.framework.api.boot.autoconfigure.logging;

import org.minbox.framework.logging.client.LoggingFactoryBean;
import org.springframework.boot.autoconfigure.cache.CacheManagerCustomizer;
import org.springframework.boot.autoconfigure.cache.CacheManagerCustomizers;
import org.springframework.boot.util.LambdaSafe;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
* The {@link LoggingFactoryBeanCustomizer} collection processing class
*
* @author 恒宇少年
*/
public class LoggingFactoryBeanCustomizers {
private List<LoggingFactoryBeanCustomizer> customizers;

public LoggingFactoryBeanCustomizers(List<LoggingFactoryBeanCustomizer> customizers) {
this.customizers = (customizers != null) ? new ArrayList<>(customizers) : Collections.emptyList();
}

/**
* Customize the specified {@link LoggingFactoryBean}. Locates all
* {@link LoggingFactoryBeanCustomizer} beans able to handle the specified instance and
* invoke {@link LoggingFactoryBeanCustomizer#customize(LoggingFactoryBean)} on them.
*
* @param factoryBean the logging factory bean to customize
* @return the factory bean
*/
public LoggingFactoryBean customize(LoggingFactoryBean factoryBean) {
LambdaSafe.callbacks(LoggingFactoryBeanCustomizer.class, this.customizers, factoryBean)
.withLogger(LoggingFactoryBeanCustomizer.class).invoke((customizer) -> customizer.customize(factoryBean));
return factoryBean;
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package org.minbox.framework.api.boot.autoconfigure.oss;

import com.aliyun.oss.OSSClient;
import org.minbox.framework.api.boot.oss.ApiBootOssService;
import org.minbox.framework.api.boot.oss.progress.ApiBootObjectStorageProgress;
import org.minbox.framework.oss.ObjectStorageProgress;
import org.minbox.framework.oss.ObjectStorageService;
import org.minbox.framework.oss.support.aliyun.AliyunObjectStorageService;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
Expand Down Expand Up @@ -36,9 +37,9 @@ public class ApiBootOssAutoConfiguration {
/**
* ApiBoot Progress Provider
*/
private ApiBootObjectStorageProgress apiBootObjectStorageProgress;
private ObjectStorageProgress apiBootObjectStorageProgress;

public ApiBootOssAutoConfiguration(ApiBootOssProperties apiBootOssProperties, ObjectProvider<ApiBootObjectStorageProgress> apiBootProgressProvider) {
public ApiBootOssAutoConfiguration(ApiBootOssProperties apiBootOssProperties, ObjectProvider<ObjectStorageProgress> apiBootProgressProvider) {
this.apiBootOssProperties = apiBootOssProperties;
this.apiBootObjectStorageProgress = apiBootProgressProvider.getIfAvailable();
}
Expand All @@ -50,9 +51,9 @@ public ApiBootOssAutoConfiguration(ApiBootOssProperties apiBootOssProperties, Ob
*/
@Bean
@ConditionalOnMissingBean
ApiBootOssService apiBootOssService() {
ApiBootOssService apiBootOssService = new ApiBootOssService(apiBootOssProperties.getRegion().getEndpoint(), apiBootOssProperties.getBucketName(), apiBootOssProperties.getAccessKeyId(), apiBootOssProperties.getAccessKeySecret(), apiBootOssProperties.getDomain());
apiBootOssService.setApiBootObjectStorageProgress(apiBootObjectStorageProgress);
return apiBootOssService;
ObjectStorageService apiBootOssService() {
AliyunObjectStorageService objectStorageService = new AliyunObjectStorageService(apiBootOssProperties.getRegion().getEndpoint(), apiBootOssProperties.getBucketName(), apiBootOssProperties.getAccessKeyId(), apiBootOssProperties.getAccessKeySecret(), apiBootOssProperties.getDomain());
objectStorageService.setObjectStorageProgress(apiBootObjectStorageProgress);
return objectStorageService;
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.minbox.framework.api.boot.autoconfigure.oss;

import lombok.Data;
import org.minbox.framework.api.boot.oss.OssRegion;
import org.minbox.framework.oss.OssRegion;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import org.springframework.security.web.access.AccessDeniedHandler;
import org.springframework.util.ObjectUtils;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

Expand Down Expand Up @@ -54,7 +55,7 @@ public ApiBootWebSecurityAutoConfiguration(ApiBootSecurityProperties apiBootSecu
*/
@Override
protected List<String> configureIgnoreUrls() {
List<String> ignoringUrls = Arrays.asList(ApiBootSecurityProperties.DEFAULT_IGNORE_URLS);
List<String> ignoringUrls = new ArrayList(Arrays.asList(ApiBootSecurityProperties.DEFAULT_IGNORE_URLS));
if (!ObjectUtils.isEmpty(apiBootSecurityProperties.getIgnoringUrls())) {
ignoringUrls.addAll(Arrays.asList(apiBootSecurityProperties.getIgnoringUrls()));
}
Expand Down
Loading