From 0134dc660c78bbce50f6cc397d9ea07557c1ec6c Mon Sep 17 00:00:00 2001 From: smallchill Date: Fri, 6 Nov 2020 17:12:53 +0800 Subject: [PATCH] =?UTF-8?q?:tada:=202.8.0.RELEASE=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E6=8A=A5=E8=A1=A8=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +- blade-core-boot/pom.xml | 4 +- .../src/main/resources/bootstrap.yml | 2 +- blade-core-cloud/pom.xml | 4 +- blade-core-develop/pom.xml | 2 +- blade-core-launch/pom.xml | 2 +- .../core/launch/constant/AppConstant.java | 6 +- .../core/launch/constant/TokenConstant.java | 2 +- blade-core-log/pom.xml | 2 +- blade-core-mybatis/pom.xml | 2 +- blade-core-oss/pom.xml | 2 +- blade-core-report/pom.xml | 30 +++++ .../report/config/ReportConfiguration.java | 65 +++++++++++ .../report/datasource/ReportDataSource.java | 54 +++++++++ .../report/endpoint/ReportBootEndpoint.java | 38 ++++++ .../core/report/endpoint/ReportEndpoint.java | 71 +++++++++++ .../core/report/entity/ReportFileEntity.java | 65 +++++++++++ .../core/report/mapper/ReportFileMapper.java | 27 +++++ .../props/ReportDatabaseProperties.java | 32 +++++ .../core/report/props/ReportProperties.java | 35 ++++++ .../report/provider/DatabaseProvider.java | 110 ++++++++++++++++++ .../provider/ReportPlaceholderProvider.java | 39 +++++++ .../report/service/IReportFileService.java | 27 +++++ .../service/impl/ReportFileServiceImpl.java | 31 +++++ blade-core-secure/pom.xml | 11 +- .../io/jsonwebtoken/impl/Base64Codec.java | 37 ------ .../core/secure/registry/SecureRegistry.java | 1 - .../core/secure/utils/SecureUtil.java | 12 +- blade-core-social/pom.xml | 4 +- blade-core-swagger/pom.xml | 2 +- .../core/swagger/EnableSwagger.java | 32 +++++ .../swagger/SwaggerAutoConfiguration.java | 43 +++---- .../swagger/SwaggerLauncherServiceImpl.java | 43 +++++++ .../core/swagger/SwaggerProperties.java | 2 +- .../springblade/core/swagger/SwaggerUtil.java | 2 +- ...gblade.core.launch.service.LauncherService | 1 + blade-core-test/pom.xml | 2 +- blade-core-tool/pom.xml | 4 +- blade-core-transaction/pom.xml | 2 +- pom.xml | 26 +++-- 40 files changed, 779 insertions(+), 101 deletions(-) create mode 100644 blade-core-report/pom.xml create mode 100644 blade-core-report/src/main/java/org/springblade/core/report/config/ReportConfiguration.java create mode 100644 blade-core-report/src/main/java/org/springblade/core/report/datasource/ReportDataSource.java create mode 100644 blade-core-report/src/main/java/org/springblade/core/report/endpoint/ReportBootEndpoint.java create mode 100644 blade-core-report/src/main/java/org/springblade/core/report/endpoint/ReportEndpoint.java create mode 100644 blade-core-report/src/main/java/org/springblade/core/report/entity/ReportFileEntity.java create mode 100644 blade-core-report/src/main/java/org/springblade/core/report/mapper/ReportFileMapper.java create mode 100644 blade-core-report/src/main/java/org/springblade/core/report/props/ReportDatabaseProperties.java create mode 100644 blade-core-report/src/main/java/org/springblade/core/report/props/ReportProperties.java create mode 100644 blade-core-report/src/main/java/org/springblade/core/report/provider/DatabaseProvider.java create mode 100644 blade-core-report/src/main/java/org/springblade/core/report/provider/ReportPlaceholderProvider.java create mode 100644 blade-core-report/src/main/java/org/springblade/core/report/service/IReportFileService.java create mode 100644 blade-core-report/src/main/java/org/springblade/core/report/service/impl/ReportFileServiceImpl.java delete mode 100644 blade-core-secure/src/main/java/io/jsonwebtoken/impl/Base64Codec.java create mode 100644 blade-core-swagger/src/main/java/org/springblade/core/swagger/EnableSwagger.java create mode 100644 blade-core-swagger/src/main/java/org/springblade/core/swagger/SwaggerLauncherServiceImpl.java create mode 100644 blade-core-swagger/src/main/resources/META-INF/services/org.springblade.core.launch.service.LauncherService diff --git a/README.md b/README.md index 6c89615..69ebff8 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@

Build Status - Coverage Status - Downloads + Coverage Status + Downloads

## SpringBlade微服务开发平台 diff --git a/blade-core-boot/pom.xml b/blade-core-boot/pom.xml index c884ad3..fe34379 100644 --- a/blade-core-boot/pom.xml +++ b/blade-core-boot/pom.xml @@ -5,7 +5,7 @@ org.springblade blade-tool - 2.7.3 + 2.8.0 4.0.0 @@ -88,7 +88,7 @@ com.alibaba druid-spring-boot-starter - 1.1.22 + 1.2.1 diff --git a/blade-core-boot/src/main/resources/bootstrap.yml b/blade-core-boot/src/main/resources/bootstrap.yml index f3f8664..2b3841f 100644 --- a/blade-core-boot/src/main/resources/bootstrap.yml +++ b/blade-core-boot/src/main/resources/bootstrap.yml @@ -97,7 +97,7 @@ mybatis-plus: swagger: title: SpringBlade 接口文档系统 description: SpringBlade 接口文档系统 - version: 2.7.3 + version: 2.8.0 license: Powered By SpringBlade licenseUrl: https://bladex.vip terms-of-service-url: https://bladex.vip diff --git a/blade-core-cloud/pom.xml b/blade-core-cloud/pom.xml index b685220..9572333 100644 --- a/blade-core-cloud/pom.xml +++ b/blade-core-cloud/pom.xml @@ -5,7 +5,7 @@ blade-tool org.springblade - 2.7.3 + 2.8.0 4.0.0 @@ -86,7 +86,7 @@ com.alibaba fastjson - 1.2.73 + 1.2.74 diff --git a/blade-core-develop/pom.xml b/blade-core-develop/pom.xml index 2887098..c9fcc45 100644 --- a/blade-core-develop/pom.xml +++ b/blade-core-develop/pom.xml @@ -5,7 +5,7 @@ blade-tool org.springblade - 2.7.3 + 2.8.0 4.0.0 diff --git a/blade-core-launch/pom.xml b/blade-core-launch/pom.xml index baaa8aa..2109d38 100644 --- a/blade-core-launch/pom.xml +++ b/blade-core-launch/pom.xml @@ -5,7 +5,7 @@ blade-tool org.springblade - 2.7.3 + 2.8.0 4.0.0 diff --git a/blade-core-launch/src/main/java/org/springblade/core/launch/constant/AppConstant.java b/blade-core-launch/src/main/java/org/springblade/core/launch/constant/AppConstant.java index 0a1d6e8..3d00ded 100644 --- a/blade-core-launch/src/main/java/org/springblade/core/launch/constant/AppConstant.java +++ b/blade-core-launch/src/main/java/org/springblade/core/launch/constant/AppConstant.java @@ -25,7 +25,7 @@ public interface AppConstant { /** * 应用版本 */ - String APPLICATION_VERSION = "2.7.3"; + String APPLICATION_VERSION = "2.8.0"; /** * 基础包 @@ -76,6 +76,10 @@ public interface AppConstant { * 链路追踪模块名称 */ String APPLICATION_ZIPKIN_NAME = APPLICATION_NAME_PREFIX + "zipkin"; + /** + * 报表系统名称 + */ + String APPLICATION_REPORT_NAME = APPLICATION_NAME_PREFIX + "report"; /** * 测试模块名称 */ diff --git a/blade-core-launch/src/main/java/org/springblade/core/launch/constant/TokenConstant.java b/blade-core-launch/src/main/java/org/springblade/core/launch/constant/TokenConstant.java index 9a30741..39d9da6 100644 --- a/blade-core-launch/src/main/java/org/springblade/core/launch/constant/TokenConstant.java +++ b/blade-core-launch/src/main/java/org/springblade/core/launch/constant/TokenConstant.java @@ -22,7 +22,7 @@ package org.springblade.core.launch.constant; */ public interface TokenConstant { - String SIGN_KEY = "Blade"; + String SIGN_KEY = "bladexisapowerfulmicroservicearchitectureupgradedandoptimizedfromacommercialproject"; String AVATAR = "avatar"; String HEADER = "blade-auth"; String BEARER = "bearer"; diff --git a/blade-core-log/pom.xml b/blade-core-log/pom.xml index a722cb1..9c30b95 100644 --- a/blade-core-log/pom.xml +++ b/blade-core-log/pom.xml @@ -5,7 +5,7 @@ blade-tool org.springblade - 2.7.3 + 2.8.0 4.0.0 diff --git a/blade-core-mybatis/pom.xml b/blade-core-mybatis/pom.xml index 7e2e60b..c314c6f 100644 --- a/blade-core-mybatis/pom.xml +++ b/blade-core-mybatis/pom.xml @@ -5,7 +5,7 @@ blade-tool org.springblade - 2.7.3 + 2.8.0 4.0.0 diff --git a/blade-core-oss/pom.xml b/blade-core-oss/pom.xml index d87639d..2e7b7a7 100644 --- a/blade-core-oss/pom.xml +++ b/blade-core-oss/pom.xml @@ -5,7 +5,7 @@ blade-tool org.springblade - 2.7.3 + 2.8.0 4.0.0 diff --git a/blade-core-report/pom.xml b/blade-core-report/pom.xml new file mode 100644 index 0000000..478351d --- /dev/null +++ b/blade-core-report/pom.xml @@ -0,0 +1,30 @@ + + + + blade-tool + org.springblade + 2.8.0 + + 4.0.0 + + blade-core-report + ${project.artifactId} + ${blade.tool.version} + jar + + + + org.springblade + blade-core-mybatis + ${blade.tool.version} + + + com.bstek.ureport + ureport2-console + 2.2.9 + + + + diff --git a/blade-core-report/src/main/java/org/springblade/core/report/config/ReportConfiguration.java b/blade-core-report/src/main/java/org/springblade/core/report/config/ReportConfiguration.java new file mode 100644 index 0000000..ef28971 --- /dev/null +++ b/blade-core-report/src/main/java/org/springblade/core/report/config/ReportConfiguration.java @@ -0,0 +1,65 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.gnu.org/licenses/lgpl.html + *

+ * 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.springblade.core.report.config; + +import com.bstek.ureport.UReportPropertyPlaceholderConfigurer; +import com.bstek.ureport.console.UReportServlet; +import com.bstek.ureport.provider.report.ReportProvider; +import org.springblade.core.report.props.ReportDatabaseProperties; +import org.springblade.core.report.props.ReportProperties; +import org.springblade.core.report.provider.DatabaseProvider; +import org.springblade.core.report.provider.ReportPlaceholderProvider; +import org.springblade.core.report.service.IReportFileService; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.boot.web.servlet.ServletRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; +import org.springframework.core.annotation.Order; + +import javax.servlet.Servlet; + +/** + * UReport配置类 + * + * @author Chill + */ +@Order +@Configuration +@ConditionalOnProperty(value = "report.enabled", havingValue = "true", matchIfMissing = true) +@EnableConfigurationProperties({ReportProperties.class, ReportDatabaseProperties.class}) +@ImportResource("classpath:ureport-console-context.xml") +public class ReportConfiguration { + + @Bean + public ServletRegistrationBean registrationBean() { + return new ServletRegistrationBean<>(new UReportServlet(), "/ureport/*"); + } + + @Bean + public UReportPropertyPlaceholderConfigurer uReportPropertyPlaceholderConfigurer(ReportProperties properties) { + return new ReportPlaceholderProvider(properties); + } + + @Bean + @ConditionalOnMissingBean + public ReportProvider reportProvider(ReportDatabaseProperties properties, IReportFileService service) { + return new DatabaseProvider(properties, service); + } + +} diff --git a/blade-core-report/src/main/java/org/springblade/core/report/datasource/ReportDataSource.java b/blade-core-report/src/main/java/org/springblade/core/report/datasource/ReportDataSource.java new file mode 100644 index 0000000..ebb6deb --- /dev/null +++ b/blade-core-report/src/main/java/org/springblade/core/report/datasource/ReportDataSource.java @@ -0,0 +1,54 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.gnu.org/licenses/lgpl.html + *

+ * 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.springblade.core.report.datasource; + +import com.bstek.ureport.definition.datasource.BuildinDatasource; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +import javax.sql.DataSource; +import java.sql.Connection; +import java.sql.SQLException; + +/** + * UReport数据源配置 + * + * @author Chill + */ +@Slf4j +@AllArgsConstructor +public class ReportDataSource implements BuildinDatasource { + private static final String NAME = "ReportDataSource"; + + private final DataSource dataSource; + + @Override + public String name() { + return NAME; + } + + @Override + public Connection getConnection() { + try { + return dataSource.getConnection(); + } catch (SQLException e) { + log.error("report数据源链接失败"); + e.printStackTrace(); + } + return null; + } + +} diff --git a/blade-core-report/src/main/java/org/springblade/core/report/endpoint/ReportBootEndpoint.java b/blade-core-report/src/main/java/org/springblade/core/report/endpoint/ReportBootEndpoint.java new file mode 100644 index 0000000..2879ee3 --- /dev/null +++ b/blade-core-report/src/main/java/org/springblade/core/report/endpoint/ReportBootEndpoint.java @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.gnu.org/licenses/lgpl.html + *

+ * 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.springblade.core.report.endpoint; + +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.report.service.IReportFileService; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import springfox.documentation.annotations.ApiIgnore; + +/** + * UReport Boot版 API端点 + * + * @author Chill + */ +@ApiIgnore +@RestController +@RequestMapping(AppConstant.APPLICATION_REPORT_NAME + "/report/rest") +public class ReportBootEndpoint extends ReportEndpoint { + + public ReportBootEndpoint(IReportFileService service) { + super(service); + } + +} diff --git a/blade-core-report/src/main/java/org/springblade/core/report/endpoint/ReportEndpoint.java b/blade-core-report/src/main/java/org/springblade/core/report/endpoint/ReportEndpoint.java new file mode 100644 index 0000000..0ea59aa --- /dev/null +++ b/blade-core-report/src/main/java/org/springblade/core/report/endpoint/ReportEndpoint.java @@ -0,0 +1,71 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.gnu.org/licenses/lgpl.html + *

+ * 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.springblade.core.report.endpoint; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.AllArgsConstructor; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.report.entity.ReportFileEntity; +import org.springblade.core.report.service.IReportFileService; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.Map; + +/** + * UReport API端点 + * + * @author Chill + */ +@ApiIgnore +@RestController +@AllArgsConstructor +@RequestMapping("/report/rest") +public class ReportEndpoint { + + private final IReportFileService service; + + /** + * 详情 + */ + @GetMapping("/detail") + public R detail(ReportFileEntity file) { + ReportFileEntity detail = service.getOne(Condition.getQueryWrapper(file)); + return R.data(detail); + } + + /** + * 分页 + */ + @GetMapping("/list") + public R> list(@RequestParam Map file, Query query) { + IPage pages = service.page(Condition.getPage(query), Condition.getQueryWrapper(file, ReportFileEntity.class)); + return R.data(pages); + } + + /** + * 删除 + */ + @PostMapping("/remove") + public R remove(@RequestParam String ids) { + boolean temp = service.removeByIds(Func.toLongList(ids)); + return R.status(temp); + } + +} diff --git a/blade-core-report/src/main/java/org/springblade/core/report/entity/ReportFileEntity.java b/blade-core-report/src/main/java/org/springblade/core/report/entity/ReportFileEntity.java new file mode 100644 index 0000000..1e60c61 --- /dev/null +++ b/blade-core-report/src/main/java/org/springblade/core/report/entity/ReportFileEntity.java @@ -0,0 +1,65 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.gnu.org/licenses/lgpl.html + *

+ * 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.springblade.core.report.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * UReport实体类 + * + * @author Chill + */ +@Data +@TableName("blade_report_file") +public class ReportFileEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + /** + * 文件名 + */ + private String name; + /** + * 文件内容 + */ + private byte[] content; + /** + * 创建时间 + */ + private Date createTime; + /** + * 更新时间 + */ + private Date updateTime; + /** + * 是否已删除 + */ + @TableLogic + private Integer isDeleted; + +} diff --git a/blade-core-report/src/main/java/org/springblade/core/report/mapper/ReportFileMapper.java b/blade-core-report/src/main/java/org/springblade/core/report/mapper/ReportFileMapper.java new file mode 100644 index 0000000..719afc4 --- /dev/null +++ b/blade-core-report/src/main/java/org/springblade/core/report/mapper/ReportFileMapper.java @@ -0,0 +1,27 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.gnu.org/licenses/lgpl.html + *

+ * 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.springblade.core.report.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.core.report.entity.ReportFileEntity; + +/** + * UReport Mapper + * + * @author Chill + */ +public interface ReportFileMapper extends BaseMapper { +} diff --git a/blade-core-report/src/main/java/org/springblade/core/report/props/ReportDatabaseProperties.java b/blade-core-report/src/main/java/org/springblade/core/report/props/ReportDatabaseProperties.java new file mode 100644 index 0000000..e84328d --- /dev/null +++ b/blade-core-report/src/main/java/org/springblade/core/report/props/ReportDatabaseProperties.java @@ -0,0 +1,32 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.gnu.org/licenses/lgpl.html + *

+ * 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.springblade.core.report.props; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; + +/** + * UReport配置类 + * + * @author Chill + */ +@Data +@ConfigurationProperties(prefix = "report.database.provider") +public class ReportDatabaseProperties { + private String name = "数据库文件系统"; + private String prefix = "blade-"; + private boolean disabled = false; +} diff --git a/blade-core-report/src/main/java/org/springblade/core/report/props/ReportProperties.java b/blade-core-report/src/main/java/org/springblade/core/report/props/ReportProperties.java new file mode 100644 index 0000000..823c981 --- /dev/null +++ b/blade-core-report/src/main/java/org/springblade/core/report/props/ReportProperties.java @@ -0,0 +1,35 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.gnu.org/licenses/lgpl.html + *

+ * 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.springblade.core.report.props; + +import lombok.Data; +import org.springblade.core.tool.utils.StringPool; +import org.springframework.boot.context.properties.ConfigurationProperties; + +/** + * UReport配置类 + * + * @author Chill + */ +@Data +@ConfigurationProperties(prefix = "report") +public class ReportProperties { + private Boolean enabled = true; + private Boolean disableHttpSessionReportCache = false; + private Boolean disableFileProvider = true; + private String fileStoreDir = StringPool.EMPTY; + private Boolean debug = false; +} diff --git a/blade-core-report/src/main/java/org/springblade/core/report/provider/DatabaseProvider.java b/blade-core-report/src/main/java/org/springblade/core/report/provider/DatabaseProvider.java new file mode 100644 index 0000000..114918f --- /dev/null +++ b/blade-core-report/src/main/java/org/springblade/core/report/provider/DatabaseProvider.java @@ -0,0 +1,110 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.gnu.org/licenses/lgpl.html + *

+ * 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.springblade.core.report.provider; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.bstek.ureport.provider.report.ReportFile; +import com.bstek.ureport.provider.report.ReportProvider; +import lombok.AllArgsConstructor; +import org.springblade.core.report.entity.ReportFileEntity; +import org.springblade.core.report.props.ReportDatabaseProperties; +import org.springblade.core.report.service.IReportFileService; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.utils.DateUtil; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 数据库文件处理 + * + * @author Chill + */ +@AllArgsConstructor +public class DatabaseProvider implements ReportProvider { + + private final ReportDatabaseProperties properties; + private final IReportFileService service; + + @Override + public InputStream loadReport(String file) { + ReportFileEntity reportFileEntity = service.getOne(Wrappers.lambdaQuery().eq(ReportFileEntity::getName, getFileName(file))); + byte[] content = reportFileEntity.getContent(); + return new ByteArrayInputStream(content); + } + + @Override + public void deleteReport(String file) { + service.remove(Wrappers.lambdaUpdate().eq(ReportFileEntity::getName, getFileName(file))); + } + + @Override + public List getReportFiles() { + List list = service.list(); + List reportFiles = new ArrayList<>(); + list.forEach(reportFileEntity -> reportFiles.add(new ReportFile(reportFileEntity.getName(), reportFileEntity.getUpdateTime()))); + return reportFiles; + } + + @Override + public void saveReport(String file, String content) { + String fileName = getFileName(file); + ReportFileEntity reportFileEntity = service.getOne(Wrappers.lambdaQuery().eq(ReportFileEntity::getName, fileName)); + Date now = DateUtil.now(); + if (reportFileEntity == null) { + reportFileEntity = new ReportFileEntity(); + reportFileEntity.setName(fileName); + reportFileEntity.setContent(content.getBytes()); + reportFileEntity.setCreateTime(now); + reportFileEntity.setIsDeleted(BladeConstant.DB_NOT_DELETED); + } else { + reportFileEntity.setContent(content.getBytes()); + } + reportFileEntity.setUpdateTime(now); + service.saveOrUpdate(reportFileEntity); + } + + @Override + public String getName() { + return properties.getName(); + } + + @Override + public boolean disabled() { + return properties.isDisabled(); + } + + @Override + public String getPrefix() { + return properties.getPrefix(); + } + + /** + * 获取标准格式文件名 + * + * @param name 原文件名 + */ + private String getFileName(String name) { + if (name.startsWith(getPrefix())) { + name = name.substring(getPrefix().length()); + } + return name; + } + +} diff --git a/blade-core-report/src/main/java/org/springblade/core/report/provider/ReportPlaceholderProvider.java b/blade-core-report/src/main/java/org/springblade/core/report/provider/ReportPlaceholderProvider.java new file mode 100644 index 0000000..01e28a7 --- /dev/null +++ b/blade-core-report/src/main/java/org/springblade/core/report/provider/ReportPlaceholderProvider.java @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.gnu.org/licenses/lgpl.html + *

+ * 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.springblade.core.report.provider; + +import com.bstek.ureport.UReportPropertyPlaceholderConfigurer; +import org.springblade.core.report.props.ReportProperties; + +import java.util.Properties; + +/** + * UReport自定义配置 + * + * @author Chill + */ +public class ReportPlaceholderProvider extends UReportPropertyPlaceholderConfigurer { + + public ReportPlaceholderProvider(ReportProperties properties) { + Properties props = new Properties(); + props.setProperty("ureport.disableHttpSessionReportCache", properties.getDisableHttpSessionReportCache().toString()); + props.setProperty("ureport.disableFileProvider", properties.getDisableFileProvider().toString()); + props.setProperty("ureport.fileStoreDir", properties.getFileStoreDir()); + props.setProperty("ureport.debug", properties.getDebug().toString()); + this.setProperties(props); + } + +} diff --git a/blade-core-report/src/main/java/org/springblade/core/report/service/IReportFileService.java b/blade-core-report/src/main/java/org/springblade/core/report/service/IReportFileService.java new file mode 100644 index 0000000..9cf5b13 --- /dev/null +++ b/blade-core-report/src/main/java/org/springblade/core/report/service/IReportFileService.java @@ -0,0 +1,27 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.gnu.org/licenses/lgpl.html + *

+ * 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.springblade.core.report.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.core.report.entity.ReportFileEntity; + +/** + * UReport Service + * + * @author Chill + */ +public interface IReportFileService extends IService { +} diff --git a/blade-core-report/src/main/java/org/springblade/core/report/service/impl/ReportFileServiceImpl.java b/blade-core-report/src/main/java/org/springblade/core/report/service/impl/ReportFileServiceImpl.java new file mode 100644 index 0000000..2939eb6 --- /dev/null +++ b/blade-core-report/src/main/java/org/springblade/core/report/service/impl/ReportFileServiceImpl.java @@ -0,0 +1,31 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.gnu.org/licenses/lgpl.html + *

+ * 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.springblade.core.report.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.core.report.entity.ReportFileEntity; +import org.springblade.core.report.mapper.ReportFileMapper; +import org.springblade.core.report.service.IReportFileService; +import org.springframework.stereotype.Service; + +/** + * UReport Service + * + * @author Chill + */ +@Service +public class ReportFileServiceImpl extends ServiceImpl implements IReportFileService { +} diff --git a/blade-core-secure/pom.xml b/blade-core-secure/pom.xml index f923e7b..0593b60 100644 --- a/blade-core-secure/pom.xml +++ b/blade-core-secure/pom.xml @@ -5,7 +5,7 @@ blade-tool org.springblade - 2.7.3 + 2.8.0 4.0.0 @@ -19,8 +19,13 @@ io.jsonwebtoken - jjwt - 0.9.1 + jjwt-impl + 0.11.2 + + + io.jsonwebtoken + jjwt-jackson + 0.11.2 diff --git a/blade-core-secure/src/main/java/io/jsonwebtoken/impl/Base64Codec.java b/blade-core-secure/src/main/java/io/jsonwebtoken/impl/Base64Codec.java deleted file mode 100644 index b73e2f2..0000000 --- a/blade-core-secure/src/main/java/io/jsonwebtoken/impl/Base64Codec.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2014 jsonwebtoken.io - * - * 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 io.jsonwebtoken.impl; - -import java.util.Base64; - -/** - * Base64Codec - * - * @author jjwt - */ -public class Base64Codec extends AbstractTextCodec { - - @Override - public String encode(byte[] data) { - return Base64.getEncoder().encodeToString(data); - } - - @Override - public byte[] decode(String encoded) { - return Base64.getDecoder().decode(encoded); - } - -} diff --git a/blade-core-secure/src/main/java/org/springblade/core/secure/registry/SecureRegistry.java b/blade-core-secure/src/main/java/org/springblade/core/secure/registry/SecureRegistry.java index 80d06c0..978b0b7 100644 --- a/blade-core-secure/src/main/java/org/springblade/core/secure/registry/SecureRegistry.java +++ b/blade-core-secure/src/main/java/org/springblade/core/secure/registry/SecureRegistry.java @@ -38,7 +38,6 @@ public class SecureRegistry { public SecureRegistry() { this.defaultExcludePatterns.add("/actuator/health/**"); this.defaultExcludePatterns.add("/v2/api-docs/**"); - this.defaultExcludePatterns.add("/v2/api-docs-ext/**"); this.defaultExcludePatterns.add("/auth/**"); this.defaultExcludePatterns.add("/token/**"); this.defaultExcludePatterns.add("/log/**"); diff --git a/blade-core-secure/src/main/java/org/springblade/core/secure/utils/SecureUtil.java b/blade-core-secure/src/main/java/org/springblade/core/secure/utils/SecureUtil.java index eadae24..553dbfb 100644 --- a/blade-core-secure/src/main/java/org/springblade/core/secure/utils/SecureUtil.java +++ b/blade-core-secure/src/main/java/org/springblade/core/secure/utils/SecureUtil.java @@ -53,9 +53,9 @@ public class SecureUtil { private final static String TENANT_ID = TokenConstant.TENANT_ID; private final static String CLIENT_ID = TokenConstant.CLIENT_ID; private final static Integer AUTH_LENGTH = TokenConstant.AUTH_LENGTH; - private static String BASE64_SECURITY = Base64.getEncoder().encodeToString(TokenConstant.SIGN_KEY.getBytes(Charsets.UTF_8)); + private static final String BASE64_SECURITY = Base64.getEncoder().encodeToString(TokenConstant.SIGN_KEY.getBytes(Charsets.UTF_8)); - private static IClientDetailsService clientDetailsService; + private static final IClientDetailsService clientDetailsService; static { clientDetailsService = SpringUtil.getBean(IClientDetailsService.class); @@ -297,8 +297,8 @@ public class SecureUtil { */ public static Claims parseJWT(String jsonWebToken) { try { - return Jwts.parser() - .setSigningKey(Base64.getDecoder().decode(BASE64_SECURITY)) + return Jwts.parserBuilder() + .setSigningKey(Base64.getDecoder().decode(BASE64_SECURITY)).build() .parseClaimsJws(jsonWebToken).getBody(); } catch (Exception ex) { return null; @@ -339,10 +339,10 @@ public class SecureUtil { Key signingKey = new SecretKeySpec(apiKeySecretBytes, signatureAlgorithm.getJcaName()); //添加构成JWT的类 - JwtBuilder builder = Jwts.builder().setHeaderParam("typ", "JsonWebToken") + JwtBuilder builder = Jwts.builder().setHeaderParam("typ", "JWT") .setIssuer(issuer) .setAudience(audience) - .signWith(signatureAlgorithm, signingKey); + .signWith(signingKey); //设置JWT参数 user.forEach(builder::claim); diff --git a/blade-core-social/pom.xml b/blade-core-social/pom.xml index 6ec08c4..b1f44bc 100644 --- a/blade-core-social/pom.xml +++ b/blade-core-social/pom.xml @@ -5,7 +5,7 @@ blade-tool org.springblade - 2.7.3 + 2.8.0 4.0.0 @@ -25,7 +25,7 @@ me.zhyd.oauth JustAuth - 1.15.6 + 1.15.8 org.apache.httpcomponents diff --git a/blade-core-swagger/pom.xml b/blade-core-swagger/pom.xml index 5a104da..5951fe1 100644 --- a/blade-core-swagger/pom.xml +++ b/blade-core-swagger/pom.xml @@ -5,7 +5,7 @@ blade-tool org.springblade - 2.7.3 + 2.8.0 4.0.0 diff --git a/blade-core-swagger/src/main/java/org/springblade/core/swagger/EnableSwagger.java b/blade-core-swagger/src/main/java/org/springblade/core/swagger/EnableSwagger.java new file mode 100644 index 0000000..ab12ea7 --- /dev/null +++ b/blade-core-swagger/src/main/java/org/springblade/core/swagger/EnableSwagger.java @@ -0,0 +1,32 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.gnu.org/licenses/lgpl.html + *

+ * 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.springblade.core.swagger; + +import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc; + +import java.lang.annotation.*; + +/** + * Swagger配置开关 + * + * @author Chill + */ +@Documented +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +@EnableSwagger2WebMvc +public @interface EnableSwagger { +} diff --git a/blade-core-swagger/src/main/java/org/springblade/core/swagger/SwaggerAutoConfiguration.java b/blade-core-swagger/src/main/java/org/springblade/core/swagger/SwaggerAutoConfiguration.java index 56fc7ce..34dcf05 100644 --- a/blade-core-swagger/src/main/java/org/springblade/core/swagger/SwaggerAutoConfiguration.java +++ b/blade-core-swagger/src/main/java/org/springblade/core/swagger/SwaggerAutoConfiguration.java @@ -16,25 +16,23 @@ package org.springblade.core.swagger; -import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; -import com.google.common.base.Predicate; -import com.google.common.base.Predicates; +import com.google.common.collect.Lists; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; -import org.springframework.context.annotation.Profile; import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.service.*; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spi.service.contexts.SecurityContext; +import springfox.documentation.spring.web.plugins.ApiSelectorBuilder; import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -44,15 +42,14 @@ import java.util.List; * @author Chill */ @Configuration -@EnableKnife4j -@EnableSwagger2 -@Profile({"dev", "test"}) +@EnableSwagger @EnableConfigurationProperties(SwaggerProperties.class) @Import(BeanValidatorPluginsConfiguration.class) public class SwaggerAutoConfiguration { - private static final String DEFAULT_EXCLUDE_PATH = "/error"; - private static final String BASE_PATH = "/**"; + private static final String DEFAULT_MAPPING_PATH = "/"; + private static final String DEFAULT_BASE_PATH = "/**"; + private static final List DEFAULT_EXCLUDE_PATH = Arrays.asList("/error", "/actuator/**"); @Bean @ConditionalOnMissingBean @@ -64,29 +61,27 @@ public class SwaggerAutoConfiguration { public Docket api(SwaggerProperties swaggerProperties) { // base-path处理 if (swaggerProperties.getBasePath().size() == 0) { - swaggerProperties.getBasePath().add(BASE_PATH); + swaggerProperties.getBasePath().add(DEFAULT_BASE_PATH); } - //noinspection unchecked - List> basePath = new ArrayList(); - swaggerProperties.getBasePath().forEach(path -> basePath.add(PathSelectors.ant(path))); // exclude-path处理 if (swaggerProperties.getExcludePath().size() == 0) { - swaggerProperties.getExcludePath().add(DEFAULT_EXCLUDE_PATH); + swaggerProperties.getExcludePath().addAll(DEFAULT_EXCLUDE_PATH); } - List> excludePath = new ArrayList<>(); - swaggerProperties.getExcludePath().forEach(path -> excludePath.add(PathSelectors.ant(path))); - - //noinspection Guava - return new Docket(DocumentationType.SWAGGER_2) + ApiSelectorBuilder apis = new Docket(DocumentationType.SWAGGER_2) .host(swaggerProperties.getHost()) .apiInfo(apiInfo(swaggerProperties)).select() - .apis(SwaggerUtil.basePackages(swaggerProperties.getBasePackages())) - .paths(Predicates.and(Predicates.not(Predicates.or(excludePath)), Predicates.or(basePath))) - .build() + .apis(SwaggerUtil.basePackages(swaggerProperties.getBasePackages())); + + swaggerProperties.getBasePath().forEach(p -> apis.paths(PathSelectors.ant(p))); + swaggerProperties.getExcludePath().forEach(p -> apis.paths(PathSelectors.ant(p).negate())); + + return apis.build() .securitySchemes(Collections.singletonList(securitySchema())) .securityContexts(Collections.singletonList(securityContext())) - .pathMapping("/"); + .securityContexts(Lists.newArrayList(securityContext())) + .securitySchemes(Collections.singletonList(securitySchema())) + .pathMapping(DEFAULT_MAPPING_PATH); } /** diff --git a/blade-core-swagger/src/main/java/org/springblade/core/swagger/SwaggerLauncherServiceImpl.java b/blade-core-swagger/src/main/java/org/springblade/core/swagger/SwaggerLauncherServiceImpl.java new file mode 100644 index 0000000..667c0bb --- /dev/null +++ b/blade-core-swagger/src/main/java/org/springblade/core/swagger/SwaggerLauncherServiceImpl.java @@ -0,0 +1,43 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.gnu.org/licenses/lgpl.html + *

+ * 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.springblade.core.swagger; + +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.launch.service.LauncherService; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.core.Ordered; + +import java.util.Properties; + +/** + * 初始化Swagger配置 + * + * @author Chill + */ +public class SwaggerLauncherServiceImpl implements LauncherService { + @Override + public void launcher(SpringApplicationBuilder builder, String appName, String profile) { + Properties props = System.getProperties(); + if (profile.equals(AppConstant.PROD_CODE)) { + props.setProperty("knife4j.production", "true"); + } + } + + @Override + public int getOrder() { + return Ordered.LOWEST_PRECEDENCE; + } +} diff --git a/blade-core-swagger/src/main/java/org/springblade/core/swagger/SwaggerProperties.java b/blade-core-swagger/src/main/java/org/springblade/core/swagger/SwaggerProperties.java index 1525640..b53eeb1 100644 --- a/blade-core-swagger/src/main/java/org/springblade/core/swagger/SwaggerProperties.java +++ b/blade-core-swagger/src/main/java/org/springblade/core/swagger/SwaggerProperties.java @@ -55,7 +55,7 @@ public class SwaggerProperties { /** * 版本 **/ - private String version = "2.7.3"; + private String version = "2.8.0"; /** * 许可证 **/ diff --git a/blade-core-swagger/src/main/java/org/springblade/core/swagger/SwaggerUtil.java b/blade-core-swagger/src/main/java/org/springblade/core/swagger/SwaggerUtil.java index ac32be3..a6a0aae 100644 --- a/blade-core-swagger/src/main/java/org/springblade/core/swagger/SwaggerUtil.java +++ b/blade-core-swagger/src/main/java/org/springblade/core/swagger/SwaggerUtil.java @@ -17,10 +17,10 @@ package org.springblade.core.swagger; import com.google.common.base.Function; import com.google.common.base.Optional; -import com.google.common.base.Predicate; import springfox.documentation.RequestHandler; import java.util.List; +import java.util.function.Predicate; /** * Swagger工具类 diff --git a/blade-core-swagger/src/main/resources/META-INF/services/org.springblade.core.launch.service.LauncherService b/blade-core-swagger/src/main/resources/META-INF/services/org.springblade.core.launch.service.LauncherService new file mode 100644 index 0000000..03ce0b3 --- /dev/null +++ b/blade-core-swagger/src/main/resources/META-INF/services/org.springblade.core.launch.service.LauncherService @@ -0,0 +1 @@ +org.springblade.core.swagger.SwaggerLauncherServiceImpl diff --git a/blade-core-test/pom.xml b/blade-core-test/pom.xml index d0ef651..3c4b8ca 100644 --- a/blade-core-test/pom.xml +++ b/blade-core-test/pom.xml @@ -5,7 +5,7 @@ org.springblade blade-tool - 2.7.3 + 2.8.0 4.0.0 diff --git a/blade-core-tool/pom.xml b/blade-core-tool/pom.xml index 2f9e51a..90f8d10 100644 --- a/blade-core-tool/pom.xml +++ b/blade-core-tool/pom.xml @@ -6,7 +6,7 @@ org.springblade blade-tool - 2.7.3 + 2.8.0 4.0.0 @@ -31,7 +31,7 @@ com.google.guava guava - 26.0-jre + 30.0-jre diff --git a/blade-core-transaction/pom.xml b/blade-core-transaction/pom.xml index a535c21..1ee758c 100644 --- a/blade-core-transaction/pom.xml +++ b/blade-core-transaction/pom.xml @@ -5,7 +5,7 @@ blade-tool org.springblade - 2.7.3 + 2.8.0 4.0.0 diff --git a/pom.xml b/pom.xml index 66061a9..a610c2d 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springblade blade-tool - 2.7.3 + 2.8.0 pom blade-tool @@ -36,22 +36,23 @@ - 2.7.3 + 2.8.0 1.8 3.8.0 - 2.9.2 - 1.5.21 - 2.0.4 + 2.10.5 + 1.6.2 + 2.0.6 3.4.0 1.6.0 3.4.2 2.3.0 1.2.5 - 2.2.1.RELEASE + 2.2.3.RELEASE 1.3.0 + 2.0.0.RELEASE - 2.2.9.RELEASE + 2.2.11.RELEASE Hoxton.SR8 Cairo-SR8 @@ -73,10 +74,21 @@ blade-core-tool blade-core-oss blade-core-transaction + blade-core-report + + org.springframework.plugin + spring-plugin-core + ${spring.plugin.version} + + + org.springframework.plugin + spring-plugin-metadata + ${spring.plugin.version} + org.springframework.boot spring-boot-dependencies