Go to file
guqing 3e5e50fea5
fix: incorrect started plugin records obtained from plugin manager (#4454)
#### What type of PR is this?
/kind bug
/area core
/milestone 2.9.x

#### What this PR does / why we need it:
修复从插件管理器中获取已启动插件的记录不正确的问题

由于 PR #4403 优化了 plugin extension 的 status 与内存状态的同步方式,优先级改为以数据库为准但这样状态维护变得复杂,所以此 PR 还是以内存为准但不同的是:
1. 当状态不一致时在 reconciler 中先将数据库的和内存状态都统一为停止状态即调用 haloPluginManager.stopPlugin 然后将停止状态更新到 status 的 phase 上,在继续后续的逻辑
2. 如果在更新 status 失败时加上重试避免因乐观锁而容易导致插件启动或停止成功但 status 更新失败导致的不一致几率问题。

经过上述两点的双重保障,多次测试后暂没有发现状态不一致的场景

how to test it?
1. 多安装几个插件十个以上最好,测试启动后通过 HaloPluginManager 获取已启动插件名称是否与 Console 已启动插件列表一致
```java
haloPluginManager.getStartedPlugins()
```
2. 对于提供了 console 功能的插件不会出现启动成功但 status 的 entry 为空的情况

#### Does this PR introduce a user-facing change?

```release-note
None
```
2023-08-23 03:28:13 +00:00
.github chore: add sponsorship entry and sponsor image (#4233) 2023-07-16 16:14:19 +00:00
api Support getting backup root path in plugin (#4422) 2023-08-14 11:38:11 +00:00
application fix: incorrect started plugin records obtained from plugin manager (#4454) 2023-08-23 03:28:13 +00:00
buildSrc Support publishing to maven central repository (#3767) 2023-04-18 14:28:23 +08:00
config/checkstyle chore: add checkstyle rule (#2091) 2022-05-17 06:46:11 +00:00
console refactor: improve plugin upgrade related code to resolve performance issue (#4410) 2023-08-22 08:12:12 +00:00
docs Support backup and restore (#4206) 2023-07-24 08:26:16 +00:00
gradle/wrapper Upgrade to Gradle 8.0.2 (#3543) 2023-03-21 02:44:27 +00:00
hack chore: add cherry_pick_pull.sh for cherry-picking pull request (#1554) 2021-12-03 10:21:24 +08:00
platform Upgrade to SpringDoc 2.2.0 for OpenAPI 3.1 support (#4384) 2023-08-08 07:02:12 +00:00
.dockerignore Refactor project structure for a better development (#3552) 2023-03-23 08:02:33 +00:00
.editorconfig Support backup and restore (#4206) 2023-07-24 08:26:16 +00:00
.gitattributes Refactor .gitignore 2019-04-03 11:37:59 +08:00
.gitignore Refactor project structure for a better development (#3552) 2023-03-23 08:02:33 +00:00
CODE_OF_CONDUCT.md docs: add CODE_OF_CONDUCT.md (#2150) 2022-06-12 08:10:12 +00:00
CONTRIBUTING.md chore: add cherry_pick_pull.sh for cherry-picking pull request (#1554) 2021-12-03 10:21:24 +08:00
Dockerfile Refactor project structure for a better development (#3552) 2023-03-23 08:02:33 +00:00
LICENSE Create LICENSE 2018-03-21 21:39:46 +08:00
OWNERS chore: add @LIlGG to reviewers list (#3292) 2023-02-13 01:48:18 +00:00
README.md docs: add appstore link in readme (#4370) 2023-08-03 06:05:26 +00:00
SECURITY.md docs: update SECURITY.md for Halo 2.x (#3780) 2023-04-19 02:47:00 +00:00
gradle.properties Prepare for developing Halo 2.9.0 (#4344) 2023-08-01 07:33:45 +00:00
gradlew Upgrade to Gradle 8.0.2 (#3543) 2023-03-21 02:44:27 +00:00
gradlew.bat Upgrade to Gradle 8.0.2 (#3543) 2023-03-21 02:44:27 +00:00
settings.gradle Refactor project structure for a better development (#3552) 2023-03-23 08:02:33 +00:00

README.md

Halo logo

Halo [ˈheɪloʊ],强大易用的开源建站工具。

GitHub release Docker pulls GitHub last commit GitHub Workflow Status Codecov percentage
官网 文档 社区 Gitee Telegram 频道


快速开始

docker run \
  -it -d \
  --name halo \
  -p 8090:8090 \
  -v ~/.halo2:/root/.halo2 \
  halohub/halo:2.8 \
  --halo.security.initializer.superadminusername=admin \
  --halo.security.initializer.superadminpassword=P@88w0rd

以上仅作为体验使用,详细部署文档请查阅:https://docs.halo.run/getting-started/install/docker-compose

在线体验

生态

可访问 官方应用市场awesome-halo 仓库 查看已经适用于 Halo 2.x 的主题和插件,以及适用于 Halo 1.x 的相关仓库。

许可证

license

Halo 使用 GPL-v3.0 协议开源,请遵守开源协议。

赞助

如果 Halo 对你有帮助,欢迎赞助我们,感谢以下赞助者对 Halo 项目的支持:

sponsors

贡献

参考 CONTRIBUTING

状态

Repobeats analytics