diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 000000000..a4fc69e1f
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,31 @@
+# This workflow will build and release a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
+# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
+
+name: Release
+
+on:
+ workflow_dispatch:
+
+
+jobs:
+ release:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - name: Set up JDK 8
+ uses: actions/setup-java@v3
+ with:
+ java-version: '8'
+ distribution: 'temurin'
+ cache: maven
+ server-id: ossrh
+ server-username: MAVEN_USERNAME
+ server-password: MAVEN_PASSWORD
+ gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Value of the GPG private key to import
+ gpg-passphrase: MAVEN_GPG_PASSPHRASE # env variable for GPG private key passphrase
+ - name: Build with Maven
+ run: mvn --batch-mode deploy -DskipTests -Prelease
+ env:
+ MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
+ MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
+ MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
diff --git a/LICENSE b/LICENSE
index 629f627b1..261eeb9e9 100644
--- a/LICENSE
+++ b/LICENSE
@@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.
- Copyright 2018 Ant Group Co., Ltd.
+ Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -198,4 +198,4 @@
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.
\ No newline at end of file
+ limitations under the License.
diff --git a/README_ZH.md b/README_ZH.md
index 8e2103c9d..2aa6be78f 100644
--- a/README_ZH.md
+++ b/README_ZH.md
@@ -74,7 +74,7 @@ SOFABoot 的示例工程 [sofaboot-samples](https://github.com/sofastack-guides/
请参考 [SOFABoot 官方文档](http://www.sofastack.tech/sofa-boot/docs/Home)。
### 源码解析
-- SOFABoot HealthCheck 机制解析
+- [SOFABoot HealthCheck 机制解析](https://www.sofastack.tech/projects/sofa-boot/sofaboot-healthcheck-mechanism-explained/)
## 八、开源许可
diff --git a/pom.xml b/pom.xml
index 5d0055e76..f15110461 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.6.9
+ 2.7.3
@@ -37,11 +37,11 @@
SOFABoot Build
- 3.14.1
+ 3.15.0-SNAPSHOT
${revision}
1.6.7
- 1.5
+ 1.6
1.2.7
@@ -126,6 +126,12 @@
+
+
+ --pinentry-mode
+ loopback
+
+
diff --git a/sofa-boot-project/sofa-boot-core/isle-sofa-boot/src/main/java/com/alipay/sofa/isle/stage/SpringContextInstallStage.java b/sofa-boot-project/sofa-boot-core/isle-sofa-boot/src/main/java/com/alipay/sofa/isle/stage/SpringContextInstallStage.java
index 3a05e0cd1..d81a66c95 100644
--- a/sofa-boot-project/sofa-boot-core/isle-sofa-boot/src/main/java/com/alipay/sofa/isle/stage/SpringContextInstallStage.java
+++ b/sofa-boot-project/sofa-boot-core/isle-sofa-boot/src/main/java/com/alipay/sofa/isle/stage/SpringContextInstallStage.java
@@ -62,7 +62,7 @@ public class SpringContextInstallStage extends AbstractPipelineStage {
private static final int DEFAULT_REFRESH_TASK_QUEUE_SIZE = 1000;
private static final int CPU_COUNT = Runtime.getRuntime()
- .availableProcessors(); ;
+ .availableProcessors();
private final SofaModuleProperties sofaModuleProperties;
@@ -156,18 +156,31 @@ private void outputModulesMessage(ApplicationRuntimeModel application)
private String getErrorMessageByApplicationModule(ApplicationRuntimeModel application) {
StringBuilder sbError = new StringBuilder(512);
if (application.getDeployRegistry().getPendingEntries().size() > 0) {
- sbError.append("\n").append(ErrorCode.convert("01-12000")).append(".)").append("(")
+ sbError.append("\n").append(ErrorCode.convert("01-12000")).append("(")
.append(application.getDeployRegistry().getPendingEntries().size())
.append(") >>>>>>>>\n");
+
+ for (DependencyTree.Entry entry : application
+ .getDeployRegistry().getPendingEntries()) {
+ if (application.getAllDeployments().contains(entry.get())) {
+ sbError.append("[").append(entry.getKey()).append("]").append(" depends on ")
+ .append(entry.getWaitsFor())
+ .append(", but the latter can not be resolved.").append("\n");
+ }
+ }
}
- for (DependencyTree.Entry entry : application
- .getDeployRegistry().getPendingEntries()) {
- if (application.getAllDeployments().contains(entry.get())) {
- sbError.append("[").append(entry.getKey()).append("]").append(" depends on ")
- .append(entry.getWaitsFor()).append(", but the latter can not be resolved.")
- .append("\n");
+ if (application.getDeployRegistry().getMissingRequirements().size() > 0) {
+ sbError.append("Missing modules").append("(")
+ .append(application.getDeployRegistry().getMissingRequirements().size())
+ .append(") >>>>>>>>\n");
+
+ for (DependencyTree.Entry entry : application
+ .getDeployRegistry().getMissingRequirements()) {
+ sbError.append("[").append(entry.getKey()).append("]").append("\n");
}
+
+ sbError.append("Please add the corresponding modules.").append("\n");
}
return sbError.toString();