From 18eb6ceb8b2708404764d21bf7d15ee2b9e3cc24 Mon Sep 17 00:00:00 2001 From: zhangzq Date: Tue, 28 Oct 2025 17:43:53 +0800 Subject: [PATCH] init --- .gitattributes | 2 + .mvn/wrapper/maven-wrapper.properties | 3 + language/.gitattributes | 2 + .../.mvn/wrapper/maven-wrapper.properties | 3 + language/effective.xml | 6655 +++++++++++++++++ language/mvnw | 295 + language/mvnw.cmd | 189 + language/pom.xml | 96 + .../main/java/org/nl/LanguageApplication.java | 11 + .../org/nl/common/BadLanguageException.java | 47 + .../main/java/org/nl/common/DataCanvers.java | 113 + .../main/java/org/nl/common/HttpStatus.java | 139 + .../java/org/nl/language/LangBehavior.java | 36 + .../language/controller/langController.java | 123 + .../language/engine/I18nManagerService.java | 107 + .../nl/language/engine/I18nProperties.java | 62 + .../nl/language/engine/LangContextHolder.java | 31 + .../nl/language/engine/LangInterceptor.java | 51 + .../org/nl/language/engine/WebConfig.java | 21 + .../nl/language/engine/dto/LanguageDto.java | 24 + .../src/main/resources/application.properties | 6 + .../src/main/resources/language/i18n/en.js | 133 + .../src/main/resources/language/i18n/jp.js | 133 + .../src/main/resources/language/i18n/vi.js | 133 + .../src/main/resources/language/i18n/zh.js | 161 + language/src/main/归档.zip | Bin 0 -> 28183 bytes mvnw | 295 + mvnw.cmd | 189 + pom.xml | 43 + 29 files changed, 9103 insertions(+) create mode 100644 .gitattributes create mode 100644 .mvn/wrapper/maven-wrapper.properties create mode 100644 language/.gitattributes create mode 100644 language/.mvn/wrapper/maven-wrapper.properties create mode 100644 language/effective.xml create mode 100755 language/mvnw create mode 100644 language/mvnw.cmd create mode 100644 language/pom.xml create mode 100644 language/src/main/java/org/nl/LanguageApplication.java create mode 100644 language/src/main/java/org/nl/common/BadLanguageException.java create mode 100644 language/src/main/java/org/nl/common/DataCanvers.java create mode 100644 language/src/main/java/org/nl/common/HttpStatus.java create mode 100644 language/src/main/java/org/nl/language/LangBehavior.java create mode 100644 language/src/main/java/org/nl/language/controller/langController.java create mode 100644 language/src/main/java/org/nl/language/engine/I18nManagerService.java create mode 100644 language/src/main/java/org/nl/language/engine/I18nProperties.java create mode 100644 language/src/main/java/org/nl/language/engine/LangContextHolder.java create mode 100644 language/src/main/java/org/nl/language/engine/LangInterceptor.java create mode 100644 language/src/main/java/org/nl/language/engine/WebConfig.java create mode 100644 language/src/main/java/org/nl/language/engine/dto/LanguageDto.java create mode 100644 language/src/main/resources/application.properties create mode 100644 language/src/main/resources/language/i18n/en.js create mode 100644 language/src/main/resources/language/i18n/jp.js create mode 100644 language/src/main/resources/language/i18n/vi.js create mode 100644 language/src/main/resources/language/i18n/zh.js create mode 100644 language/src/main/归档.zip create mode 100755 mvnw create mode 100644 mvnw.cmd create mode 100644 pom.xml diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..3b41682 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +/mvnw text eol=lf +*.cmd text eol=crlf diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..c0bcafe --- /dev/null +++ b/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,3 @@ +wrapperVersion=3.3.4 +distributionType=only-script +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.11/apache-maven-3.9.11-bin.zip diff --git a/language/.gitattributes b/language/.gitattributes new file mode 100644 index 0000000..3b41682 --- /dev/null +++ b/language/.gitattributes @@ -0,0 +1,2 @@ +/mvnw text eol=lf +*.cmd text eol=crlf diff --git a/language/.mvn/wrapper/maven-wrapper.properties b/language/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..c0bcafe --- /dev/null +++ b/language/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,3 @@ +wrapperVersion=3.3.4 +distributionType=only-script +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.11/apache-maven-3.9.11-bin.zip diff --git a/language/effective.xml b/language/effective.xml new file mode 100644 index 0000000..ea0cfe4 --- /dev/null +++ b/language/effective.xml @@ -0,0 +1,6655 @@ +[INFO] Scanning for projects... +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugins/maven-release-plugin/2.5.3/maven-release-plugin-2.5.3.pom +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugins/maven-release-plugin/2.5.3/maven-release-plugin-2.5.3.pom (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/release/maven-release/2.5.3/maven-release-2.5.3.pom +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/release/maven-release/2.5.3/maven-release-2.5.3.pom (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugins/maven-release-plugin/2.5.3/maven-release-plugin-2.5.3.jar +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugins/maven-release-plugin/2.5.3/maven-release-plugin-2.5.3.jar (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugins/maven-enforcer-plugin/3.0.0/maven-enforcer-plugin-3.0.0.pom +Progress (1): 3.4/7.7 kB Progress (1): 7.5/7.7 kB Progress (1): 7.7 kB Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugins/maven-enforcer-plugin/3.0.0/maven-enforcer-plugin-3.0.0.pom (7.7 kB at 187 kB/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/enforcer/enforcer/3.0.0/enforcer-3.0.0.pom +Progress (1): 3.4/8.7 kB Progress (1): 7.5/8.7 kB Progress (1): 8.7 kB Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/enforcer/enforcer/3.0.0/enforcer-3.0.0.pom (8.7 kB at 322 kB/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugins/maven-enforcer-plugin/3.0.0/maven-enforcer-plugin-3.0.0.jar +Progress (1): 4.1/27 kB Progress (1): 7.1/27 kB Progress (1): 11/27 kB Progress (1): 15/27 kB Progress (1): 19/27 kB Progress (1): 22/27 kB Progress (1): 26/27 kB Progress (1): 27 kB Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugins/maven-enforcer-plugin/3.0.0/maven-enforcer-plugin-3.0.0.jar (27 kB at 343 kB/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugins/maven-failsafe-plugin/2.22.2/maven-failsafe-plugin-2.22.2.pom +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugins/maven-failsafe-plugin/2.22.2/maven-failsafe-plugin-2.22.2.pom (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugins/maven-failsafe-plugin/2.22.2/maven-failsafe-plugin-2.22.2.jar +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugins/maven-failsafe-plugin/2.22.2/maven-failsafe-plugin-2.22.2.jar (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugins/maven-help-plugin/3.2.0/maven-help-plugin-3.2.0.pom +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugins/maven-help-plugin/3.2.0/maven-help-plugin-3.2.0.pom (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugins/maven-help-plugin/3.2.0/maven-help-plugin-3.2.0.jar +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugins/maven-help-plugin/3.2.0/maven-help-plugin-3.2.0.jar (0 B at 0 B/s) +[INFO] +[INFO] ------------------------< nl.sdk:language-all >------------------------- +[INFO] Building language 0.0.1-SNAPSHOT +[INFO] --------------------------------[ jar ]--------------------------------- +[INFO] +[INFO] --- maven-help-plugin:3.2.0:effective-pom (default-cli) @ language-all --- +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/maven-model/3.6.1/maven-model-3.6.1.pom +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/maven-model/3.6.1/maven-model-3.6.1.pom (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/maven/3.6.1/maven-3.6.1.pom +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/maven/3.6.1/maven-3.6.1.pom (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugin-tools/maven-plugin-tools-generators/3.5.2/maven-plugin-tools-generators-3.5.2.pom +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugin-tools/maven-plugin-tools-generators/3.5.2/maven-plugin-tools-generators-3.5.2.pom (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugin-tools/maven-plugin-tools-api/3.5.2/maven-plugin-tools-api-3.5.2.pom +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugin-tools/maven-plugin-tools-api/3.5.2/maven-plugin-tools-api-3.5.2.pom (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/net/sf/jtidy/jtidy/r938/jtidy-r938.pom +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/net/sf/jtidy/jtidy/r938/jtidy-r938.pom (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/shared/maven-artifact-transfer/0.10.0/maven-artifact-transfer-0.10.0.pom +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/shared/maven-artifact-transfer/0.10.0/maven-artifact-transfer-0.10.0.pom (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/shared/maven-shared-components/31/maven-shared-components-31.pom +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/shared/maven-shared-components/31/maven-shared-components-31.pom (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/reporting/maven-reporting-exec/1.4/maven-reporting-exec-1.4.pom +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/reporting/maven-reporting-exec/1.4/maven-reporting-exec-1.4.pom (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.pom +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.pom (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/codehaus/plexus/plexus-interactivity/1.0-alpha-6/plexus-interactivity-1.0-alpha-6.pom +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/codehaus/plexus/plexus-interactivity/1.0-alpha-6/plexus-interactivity-1.0-alpha-6.pom (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/codehaus/plexus/plexus-components/1.1.9/plexus-components-1.1.9.pom +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/codehaus/plexus/plexus-components/1.1.9/plexus-components-1.1.9.pom (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/codehaus/plexus/plexus-utils/1.4/plexus-utils-1.4.pom +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/codehaus/plexus/plexus-utils/1.4/plexus-utils-1.4.pom (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/com/thoughtworks/xstream/xstream/1.4.11.1/xstream-1.4.11.1.pom +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/com/thoughtworks/xstream/xstream/1.4.11.1/xstream-1.4.11.1.pom (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/com/thoughtworks/xstream/xstream-parent/1.4.11.1/xstream-parent-1.4.11.1.pom +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/com/thoughtworks/xstream/xstream-parent/1.4.11.1/xstream-parent-1.4.11.1.pom (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.pom +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.pom (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.pom +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.pom (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/maven-model/3.6.1/maven-model-3.6.1.jar +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/shared/maven-artifact-transfer/0.10.0/maven-artifact-transfer-0.10.0.jar +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/net/sf/jtidy/jtidy/r938/jtidy-r938.jar +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugin-tools/maven-plugin-tools-api/3.5.2/maven-plugin-tools-api-3.5.2.jar +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugin-tools/maven-plugin-tools-generators/3.5.2/maven-plugin-tools-generators-3.5.2.jar +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/maven-model/3.6.1/maven-model-3.6.1.jar (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/reporting/maven-reporting-exec/1.4/maven-reporting-exec-1.4.jar +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/reporting/maven-reporting-exec/1.4/maven-reporting-exec-1.4.jar (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.jar +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugin-tools/maven-plugin-tools-generators/3.5.2/maven-plugin-tools-generators-3.5.2.jar (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/com/thoughtworks/xstream/xstream/1.4.11.1/xstream-1.4.11.1.jar +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/plugin-tools/maven-plugin-tools-api/3.5.2/maven-plugin-tools-api-3.5.2.jar (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/apache/maven/shared/maven-artifact-transfer/0.10.0/maven-artifact-transfer-0.10.0.jar (0 B at 0 B/s) +Downloading from nexus: http://121.40.234.130:8081/repository/maven-public/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/net/sf/jtidy/jtidy/r938/jtidy-r938.jar (0 B at 0 B/s) +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.jar (0 B at 0 B/s) +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/com/thoughtworks/xstream/xstream/1.4.11.1/xstream-1.4.11.1.jar (0 B at 0 B/s) +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar (0 B at 0 B/s) +Downloaded from nexus: http://121.40.234.130:8081/repository/maven-public/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar (0 B at 0 B/s) +[INFO] +Effective POMs, after inheritance, interpolation, and profiles are applied: + + + + + + + + + + + + + + + 4.0.0 + + nl.sdk + sdk-all + 0.0.1-SNAPSHOT + + nl.sdk + language-all + 0.0.1-SNAPSHOT + language + language SDK + https://spring.io/projects/spring-boot/sdk-all/language-all + + + Apache License, Version 2.0 + https://www.apache.org/licenses/LICENSE-2.0 + + + + + Pivotal + info@pivotal.io + Pivotal Software, Inc. + https://www.spring.io + + + + https://github.com/spring-projects/spring-boot/sdk-all/language-all + + + 5.16.3 + 2.7.7 + 1.9.93 + 2.19.0 + 1.9.7 + 3.21.0 + 4.0.6 + 4.1.1 + 3.2.0 + 1.11.22 + 2.9.3 + 4.13.0 + 1.5.1 + 1.15 + 2.9.0 + 3.12.0 + 1.6 + 2.11.1 + 3.2.4 + 11.5.7.0 + 1.0.11.RELEASE + 10.14.2.0 + 4.2.7 + 2.10.9.2 + 3.9.9 + 7.15.2 + 3.0.0 + 1.2.83 + 8.0.5 + 2.3.31 + 4.9.10 + 3.0.4 + 2.3.5 + 1.2.6 + 3.0.9 + 2.8.9 + 1.4.200 + 2.2 + 2.2.1 + 4.2.4 + 6.2.0.Final + 5.6.3.Final + 4.0.3 + 2.5.2 + 2.54.0 + 4.1.5 + 4.5.13 + 5.1.2 + 4.4.15 + 5.1.2 + 12.1.10.Final + 2.22 + 2.13.1 + 1.2.2 + 1.3.5 + 2.0.3 + 1.0.2 + 1.1.6 + 1.6.7 + 1.1.4 + 2.2.3 + 1.2.7 + 4.0.4 + 1.3.3 + 2.0.2 + 1.1.2 + 2.1.6 + 2.3.3 + 1.4.2 + 2.3.3 + 3.1.6 + 8 + 1.2.0 + 1.3.2 + 1.1.1 + 2.3.1 + 2.3.1 + 2.0.1 + 1.1.4 + 1.0 + 1.6.2 + 1.1 + 2.2 + 1.3 + 2.0.1.Final + 1.1 + 1.2.0 + 4.0.4.java8 + 3.4.2.Final + 2.0.6.1 + 3.7.1 + 2.35 + 9.0.52 + 2.2.0.v201112011158 + 1.1.10 + 9.4.44.v20210927 + 1.15 + 1.2.15 + 1.7.1 + 3.14.15 + 2.6.0 + 2.4.7 + 1.5.0 + 1.2 + 1.3.1 + 5.8.2 + 4.13.2 + 3.0.0 + 1.5.2 + 1.6.10 + 6.1.5.RELEASE + 4.5.0 + 2.17.0 + 1.2.9 + 1.18.22 + 2.7.4 + 3.0.0 + 3.3.0 + 3.1.0 + 3.8.1 + 3.2.0 + 2.8.2 + 3.0.0 + 2.22.2 + 3.2.0 + 2.5.2 + 3.2.2 + 3.2.0 + 3.3.1 + 3.2.0 + 3.2.4 + 3.2.1 + 2.22.2 + 3.3.2 + 1.8 + 1.8 + 1.8 + 1.8.1 + 1.9.15 + 4.0.0 + 4.4.0 + 9.4.1.jre8 + 8.0.27 + 1.9.22 + 4.3.6 + 2.0.46.Final + 4.1.72.Final + 3.14.9 + 21.3.0.0 + 1.2.2 + 42.3.1 + UTF-8 + UTF-8 + 0.12.0 + 2.3.2 + 5.0.0 + Arabba-SR11 + 5.13.1 + 0.4.0 + 1.0.3 + 2020.0.14 + @ + 4.4.0 + 1.1.1 + 1.2.1 + 1.3.8 + 2.2.21 + 1.5.3 + 2.54.0 + 3.141.59 + 4.7.6 + 4.0.1 + 1.7.32 + 1.29 + 8.8.2 + 2.4.1 + 4.3.4 + 2021.1.0 + 5.3.14 + 1.4.0 + 5.5.7 + 2.8.1 + 2.3.5.RELEASE + 2.0.5.RELEASE + 1.3.1 + 5.6.1 + 2021.1.1 + 3.1.2 + 3.36.0.3 + 1.6.7 + 2.0.1 + 3.0.4.RELEASE + 3.0.4.RELEASE + 3.0.0 + 3.0.14.RELEASE + 9.0.56 + 4.0.14 + 2.2.14.Final + 2.8.1 + 0.48 + 1.6.3 + 1.0.2 + 2.8.4 + + + + + org.apache.activemq + activemq-amqp + 5.16.3 + + + org.apache.activemq + activemq-blueprint + 5.16.3 + + + org.apache.activemq + activemq-broker + 5.16.3 + + + org.apache.activemq + activemq-camel + 5.16.3 + + + org.apache.activemq + activemq-client + 5.16.3 + + + org.apache.activemq + activemq-console + 5.16.3 + + + commons-logging + commons-logging + + + + + org.apache.activemq + activemq-http + 5.16.3 + + + org.apache.activemq + activemq-jaas + 5.16.3 + + + org.apache.activemq + activemq-jdbc-store + 5.16.3 + + + org.apache.activemq + activemq-jms-pool + 5.16.3 + + + org.apache.activemq + activemq-kahadb-store + 5.16.3 + + + org.apache.activemq + activemq-karaf + 5.16.3 + + + org.apache.activemq + activemq-leveldb-store + 5.16.3 + + + commons-logging + commons-logging + + + + + org.apache.activemq + activemq-log4j-appender + 5.16.3 + + + org.apache.activemq + activemq-mqtt + 5.16.3 + + + org.apache.activemq + activemq-openwire-generator + 5.16.3 + + + org.apache.activemq + activemq-openwire-legacy + 5.16.3 + + + org.apache.activemq + activemq-osgi + 5.16.3 + + + org.apache.activemq + activemq-partition + 5.16.3 + + + org.apache.activemq + activemq-pool + 5.16.3 + + + org.apache.activemq + activemq-ra + 5.16.3 + + + org.apache.activemq + activemq-run + 5.16.3 + + + org.apache.activemq + activemq-runtime-config + 5.16.3 + + + org.apache.activemq + activemq-shiro + 5.16.3 + + + org.apache.activemq + activemq-spring + 5.16.3 + + + commons-logging + commons-logging + + + + + org.apache.activemq + activemq-stomp + 5.16.3 + + + org.apache.activemq + activemq-web + 5.16.3 + + + antlr + antlr + 2.7.7 + + + com.google.appengine + appengine-api-1.0-sdk + 1.9.93 + + + org.apache.activemq + artemis-amqp-protocol + 2.19.0 + + + org.apache.activemq + artemis-commons + 2.19.0 + + + commons-logging + commons-logging + + + + + org.apache.activemq + artemis-core-client + 2.19.0 + + + geronimo-json_1.0_spec + org.apache.geronimo.specs + + + + + org.apache.activemq + artemis-jms-client + 2.19.0 + + + geronimo-json_1.0_spec + org.apache.geronimo.specs + + + + + org.apache.activemq + artemis-jms-server + 2.19.0 + + + geronimo-json_1.0_spec + org.apache.geronimo.specs + + + + + org.apache.activemq + artemis-journal + 2.19.0 + + + org.apache.activemq + artemis-selector + 2.19.0 + + + org.apache.activemq + artemis-server + 2.19.0 + + + commons-logging + commons-logging + + + geronimo-json_1.0_spec + org.apache.geronimo.specs + + + + + org.apache.activemq + artemis-service-extensions + 2.19.0 + + + org.aspectj + aspectjrt + 1.9.7 + + + org.aspectj + aspectjtools + 1.9.7 + + + org.aspectj + aspectjweaver + 1.9.7 + + + org.assertj + assertj-core + 3.21.0 + + + com.atomikos + transactions-jdbc + 4.0.6 + + + com.atomikos + transactions-jms + 4.0.6 + + + com.atomikos + transactions-jta + 4.0.6 + + + org.awaitility + awaitility + 4.1.1 + + + org.awaitility + awaitility-groovy + 4.1.1 + + + org.awaitility + awaitility-kotlin + 4.1.1 + + + org.awaitility + awaitility-scala + 4.1.1 + + + net.bytebuddy + byte-buddy + 1.11.22 + + + net.bytebuddy + byte-buddy-agent + 1.11.22 + + + com.github.ben-manes.caffeine + caffeine + 2.9.3 + + + com.github.ben-manes.caffeine + guava + 2.9.3 + + + com.github.ben-manes.caffeine + jcache + 2.9.3 + + + com.github.ben-manes.caffeine + simulator + 2.9.3 + + + com.datastax.oss + java-driver-core + 4.13.0 + + + jcl-over-slf4j + org.slf4j + + + + + com.fasterxml + classmate + 1.5.1 + + + commons-codec + commons-codec + 1.15 + + + org.apache.commons + commons-dbcp2 + 2.9.0 + + + commons-logging + commons-logging + + + + + org.apache.commons + commons-lang3 + 3.12.0 + + + commons-pool + commons-pool + 1.6 + + + org.apache.commons + commons-pool2 + 2.11.1 + + + com.couchbase.client + java-client + 3.2.4 + + + com.ibm.db2 + jcc + 11.5.7.0 + + + io.spring.gradle + dependency-management-plugin + 1.0.11.RELEASE + + + org.apache.derby + derby + 10.14.2.0 + + + org.apache.derby + derbyclient + 10.14.2.0 + + + net.sf.ehcache + ehcache + 2.10.9.2 + + + org.ehcache + ehcache + 3.9.9 + + + org.ehcache + ehcache-clustered + 3.9.9 + + + org.ehcache + ehcache-transactions + 3.9.9 + + + org.elasticsearch + elasticsearch + 7.15.2 + + + org.elasticsearch.client + transport + 7.15.2 + + + org.elasticsearch.client + elasticsearch-rest-client + 7.15.2 + + + commons-logging + commons-logging + + + + + org.elasticsearch.client + elasticsearch-rest-client-sniffer + 7.15.2 + + + commons-logging + commons-logging + + + + + org.elasticsearch.client + elasticsearch-rest-high-level-client + 7.15.2 + + + org.elasticsearch.distribution.integ-test-zip + elasticsearch + 7.15.2 + zip + + + org.elasticsearch.plugin + transport-netty4-client + 7.15.2 + + + de.flapdoodle.embed + de.flapdoodle.embed.mongo + 3.0.0 + + + org.flywaydb + flyway-core + 8.0.5 + + + org.freemarker + freemarker + 2.3.31 + + + org.glassfish + jakarta.el + 3.0.4 + + + org.glassfish.jaxb + codemodel + 2.3.5 + + + org.glassfish.jaxb + codemodel-annotation-compiler + 2.3.5 + + + org.glassfish.jaxb + jaxb-jxc + 2.3.5 + + + org.glassfish.jaxb + jaxb-runtime + 2.3.5 + + + org.glassfish.jaxb + jaxb-xjc + 2.3.5 + + + org.glassfish.jaxb + txw2 + 2.3.5 + + + org.glassfish.jaxb + txwc2 + 2.3.5 + + + org.glassfish.jaxb + xsom + 2.3.5 + + + org.glassfish.web + jakarta.servlet.jsp.jstl + 1.2.6 + + + com.google.code.gson + gson + 2.8.9 + + + com.h2database + h2 + 1.4.200 + + + org.hamcrest + hamcrest + 2.2 + + + org.hamcrest + hamcrest-core + 2.2 + + + org.hamcrest + hamcrest-library + 2.2 + + + com.hazelcast + hazelcast + 4.2.4 + + + com.hazelcast + hazelcast-spring + 4.2.4 + + + com.hazelcast + hazelcast-hibernate52 + 2.2.1 + + + com.hazelcast + hazelcast-hibernate53 + 2.2.1 + + + org.hibernate + hibernate-c3p0 + 5.6.3.Final + + + org.hibernate + hibernate-core + 5.6.3.Final + + + org.hibernate + hibernate-ehcache + 5.6.3.Final + + + org.hibernate + hibernate-entitymanager + 5.6.3.Final + + + org.hibernate + hibernate-envers + 5.6.3.Final + + + org.hibernate + hibernate-hikaricp + 5.6.3.Final + + + org.hibernate + hibernate-java8 + 5.6.3.Final + + + org.hibernate + hibernate-jcache + 5.6.3.Final + + + org.hibernate + hibernate-jpamodelgen + 5.6.3.Final + + + org.hibernate + hibernate-micrometer + 5.6.3.Final + + + org.hibernate + hibernate-proxool + 5.6.3.Final + + + org.hibernate + hibernate-spatial + 5.6.3.Final + + + org.hibernate + hibernate-testing + 5.6.3.Final + + + org.hibernate + hibernate-vibur + 5.6.3.Final + + + org.hibernate.validator + hibernate-validator + 6.2.0.Final + + + org.hibernate.validator + hibernate-validator-annotation-processor + 6.2.0.Final + + + com.zaxxer + HikariCP + 4.0.3 + + + org.hsqldb + hsqldb + 2.5.2 + + + net.sourceforge.htmlunit + htmlunit + 2.54.0 + + + commons-logging + commons-logging + + + + + org.apache.httpcomponents + httpasyncclient + 4.1.5 + + + commons-logging + commons-logging + + + + + org.apache.httpcomponents + fluent-hc + 4.5.13 + + + org.apache.httpcomponents + httpclient + 4.5.13 + + + commons-logging + commons-logging + + + + + org.apache.httpcomponents + httpclient-cache + 4.5.13 + + + org.apache.httpcomponents + httpclient-osgi + 4.5.13 + + + org.apache.httpcomponents + httpclient-win + 4.5.13 + + + org.apache.httpcomponents + httpmime + 4.5.13 + + + org.apache.httpcomponents.client5 + httpclient5 + 5.1.2 + + + org.apache.httpcomponents.client5 + httpclient5-cache + 5.1.2 + + + org.apache.httpcomponents.client5 + httpclient5-fluent + 5.1.2 + + + org.apache.httpcomponents.client5 + httpclient5-win + 5.1.2 + + + org.apache.httpcomponents + httpcore + 4.4.15 + + + org.apache.httpcomponents + httpcore-nio + 4.4.15 + + + org.apache.httpcomponents.core5 + httpcore5 + 5.1.2 + + + org.apache.httpcomponents.core5 + httpcore5-h2 + 5.1.2 + + + org.apache.httpcomponents.core5 + httpcore5-reactive + 5.1.2 + + + org.influxdb + influxdb-java + 2.22 + + + com.sun.activation + jakarta.activation + 1.2.2 + + + jakarta.activation + jakarta.activation-api + 1.2.2 + + + jakarta.annotation + jakarta.annotation-api + 1.3.5 + + + jakarta.jms + jakarta.jms-api + 2.0.3 + + + jakarta.json + jakarta.json-api + 1.1.6 + + + jakarta.json.bind + jakarta.json.bind-api + 1.0.2 + + + jakarta.mail + jakarta.mail-api + 1.6.7 + + + jakarta.management.j2ee + jakarta.management.j2ee-api + 1.1.4 + + + jakarta.persistence + jakarta.persistence-api + 2.2.3 + + + jakarta.servlet + jakarta.servlet-api + 4.0.4 + + + jakarta.servlet.jsp.jstl + jakarta.servlet.jsp.jstl-api + 1.2.7 + + + jakarta.transaction + jakarta.transaction-api + 1.3.3 + + + jakarta.validation + jakarta.validation-api + 2.0.2 + + + jakarta.websocket + jakarta.websocket-api + 1.1.2 + + + jakarta.ws.rs + jakarta.ws.rs-api + 2.1.6 + + + jakarta.xml.bind + jakarta.xml.bind-api + 2.3.3 + + + jakarta.xml.soap + jakarta.xml.soap-api + 1.4.2 + + + jakarta.xml.ws + jakarta.xml.ws-api + 2.3.3 + + + org.codehaus.janino + commons-compiler + 3.1.6 + + + org.codehaus.janino + commons-compiler-jdk + 3.1.6 + + + org.codehaus.janino + janino + 3.1.6 + + + javax.activation + javax.activation-api + 1.2.0 + + + javax.annotation + javax.annotation-api + 1.3.2 + + + javax.cache + cache-api + 1.1.1 + + + javax.xml.bind + jaxb-api + 2.3.1 + + + javax.xml.ws + jaxws-api + 2.3.1 + + + javax.jms + javax.jms-api + 2.0.1 + + + javax.json + javax.json-api + 1.1.4 + + + javax.json.bind + javax.json.bind-api + 1.0 + + + javax.mail + javax.mail-api + 1.6.2 + + + javax.money + money-api + 1.1 + + + javax.persistence + javax.persistence-api + 2.2 + + + javax.transaction + javax.transaction-api + 1.3 + + + javax.validation + validation-api + 2.0.1.Final + + + javax.websocket + javax.websocket-api + 1.1 + + + jaxen + jaxen + 1.2.0 + + + org.firebirdsql.jdbc + jaybird + 4.0.4.java8 + + + org.firebirdsql.jdbc + jaybird-jdk18 + 4.0.4.java8 + + + org.jboss.logging + jboss-logging + 3.4.2.Final + + + org.jdom + jdom2 + 2.0.6.1 + + + redis.clients + jedis + 3.7.1 + + + org.mortbay.jasper + apache-el + 9.0.52 + + + org.eclipse.jetty.orbit + javax.servlet.jsp + 2.2.0.v201112011158 + + + org.eclipse.jetty + jetty-reactive-httpclient + 1.1.10 + + + com.samskivert + jmustache + 1.15 + + + org.apache.johnzon + johnzon-core + 1.2.15 + + + org.apache.johnzon + johnzon-jaxrs + 1.2.15 + + + org.apache.johnzon + johnzon-jsonb + 1.2.15 + + + org.apache.johnzon + johnzon-jsonb-extras + 1.2.15 + + + org.apache.johnzon + johnzon-jsonschema + 1.2.15 + + + org.apache.johnzon + johnzon-mapper + 1.2.15 + + + org.apache.johnzon + johnzon-websocket + 1.2.15 + + + org.jolokia + jolokia-core + 1.7.1 + + + org.jooq + jooq + 3.14.15 + + + org.jooq + jooq-codegen + 3.14.15 + + + org.jooq + jooq-kotlin + 3.14.15 + + + org.jooq + jooq-meta + 3.14.15 + + + com.jayway.jsonpath + json-path + 2.6.0 + + + com.jayway.jsonpath + json-path-assert + 2.6.0 + + + net.minidev + json-smart + 2.4.7 + + + org.skyscreamer + jsonassert + 1.5.0 + + + javax.servlet + jstl + 1.2 + + + net.sourceforge.jtds + jtds + 1.3.1 + + + junit + junit + 4.13.2 + + + org.apache.kafka + connect-api + 3.0.0 + + + org.apache.kafka + connect-basic-auth-extension + 3.0.0 + + + org.apache.kafka + connect-file + 3.0.0 + + + org.apache.kafka + connect-json + 3.0.0 + + + org.apache.kafka + connect-runtime + 3.0.0 + + + org.apache.kafka + connect-transforms + 3.0.0 + + + org.apache.kafka + kafka-clients + 3.0.0 + + + org.apache.kafka + kafka-metadata + 3.0.0 + + + org.apache.kafka + kafka-log4j-appender + 3.0.0 + + + org.apache.kafka + kafka-streams + 3.0.0 + + + org.apache.kafka + kafka-streams-scala_2.12 + 3.0.0 + + + org.apache.kafka + kafka-streams-scala_2.13 + 3.0.0 + + + org.apache.kafka + kafka-streams-test-utils + 3.0.0 + + + org.apache.kafka + kafka-tools + 3.0.0 + + + org.apache.kafka + kafka_2.12 + 3.0.0 + + + org.apache.kafka + kafka_2.13 + 3.0.0 + + + io.lettuce + lettuce-core + 6.1.5.RELEASE + + + org.liquibase + liquibase-core + 4.5.0 + + + ch.qos.logback + logback-access + 1.2.9 + + + ch.qos.logback + logback-classic + 1.2.9 + + + ch.qos.logback + logback-core + 1.2.9 + + + org.projectlombok + lombok + 1.18.22 + + + org.mariadb.jdbc + mariadb-java-client + 2.7.4 + + + io.micrometer + micrometer-registry-stackdriver + 1.8.1 + + + javax.annotation-api + javax.annotation + + + + + org.jvnet.mimepull + mimepull + 1.9.15 + + + org.mockito + mockito-core + 4.0.0 + + + org.mockito + mockito-inline + 4.0.0 + + + org.mockito + mockito-junit-jupiter + 4.0.0 + + + org.mongodb + bson + 4.4.0 + + + org.mongodb + mongodb-driver-core + 4.4.0 + + + org.mongodb + mongodb-driver-legacy + 4.4.0 + + + org.mongodb + mongodb-driver-reactivestreams + 4.4.0 + + + org.mongodb + mongodb-driver-sync + 4.4.0 + + + com.microsoft.sqlserver + mssql-jdbc + 9.4.1.jre8 + + + mysql + mysql-connector-java + 8.0.27 + + + protobuf-java + com.google.protobuf + + + + + net.sourceforge.nekohtml + nekohtml + 1.9.22 + + + org.neo4j.driver + neo4j-java-driver + 4.3.6 + + + io.netty + netty-tcnative + 2.0.46.Final + + + io.netty + netty-tcnative-boringssl-static + 2.0.46.Final + + + com.squareup.okhttp3 + logging-interceptor + 3.14.9 + + + com.squareup.okhttp3 + mockwebserver + 3.14.9 + + + com.squareup.okhttp3 + okcurl + 3.14.9 + + + com.squareup.okhttp3 + okhttp + 3.14.9 + + + com.squareup.okhttp3 + okhttp-dnsoverhttps + 3.14.9 + + + com.squareup.okhttp3 + okhttp-sse + 3.14.9 + + + com.squareup.okhttp3 + okhttp-testing-support + 3.14.9 + + + com.squareup.okhttp3 + okhttp-tls + 3.14.9 + + + com.squareup.okhttp3 + okhttp-urlconnection + 3.14.9 + + + org.messaginghub + pooled-jms + 1.2.2 + + + org.postgresql + postgresql + 42.3.1 + + + org.quartz-scheduler + quartz + 2.3.2 + + + c3p0 + com.mchange + + + * + com.zaxxer + + + + + org.quartz-scheduler + quartz-jobs + 2.3.2 + + + com.rabbitmq + amqp-client + 5.13.1 + + + com.rabbitmq + stream-client + 0.4.0 + + + org.reactivestreams + reactive-streams + 1.0.3 + + + io.rest-assured + json-path + 4.4.0 + + + io.rest-assured + json-schema-validator + 4.4.0 + + + io.rest-assured + rest-assured + 4.4.0 + + + io.rest-assured + scala-support + 4.4.0 + + + io.rest-assured + spring-mock-mvc + 4.4.0 + + + io.rest-assured + spring-web-test-client + 4.4.0 + + + io.rest-assured + xml-path + 4.4.0 + + + io.reactivex + rxjava + 1.3.8 + + + io.reactivex + rxjava-reactive-streams + 1.2.1 + + + io.reactivex.rxjava2 + rxjava + 2.2.21 + + + org.springframework.boot + spring-boot + 2.6.2 + + + org.springframework.boot + spring-boot-test + 2.6.2 + + + org.springframework.boot + spring-boot-test-autoconfigure + 2.6.2 + + + org.springframework.boot + spring-boot-actuator + 2.6.2 + + + org.springframework.boot + spring-boot-actuator-autoconfigure + 2.6.2 + + + org.springframework.boot + spring-boot-autoconfigure + 2.6.2 + + + org.springframework.boot + spring-boot-autoconfigure-processor + 2.6.2 + + + org.springframework.boot + spring-boot-buildpack-platform + 2.6.2 + + + org.springframework.boot + spring-boot-configuration-metadata + 2.6.2 + + + org.springframework.boot + spring-boot-configuration-processor + 2.6.2 + + + org.springframework.boot + spring-boot-devtools + 2.6.2 + + + org.springframework.boot + spring-boot-jarmode-layertools + 2.6.2 + + + org.springframework.boot + spring-boot-loader + 2.6.2 + + + org.springframework.boot + spring-boot-loader-tools + 2.6.2 + + + org.springframework.boot + spring-boot-properties-migrator + 2.6.2 + + + org.springframework.boot + spring-boot-starter + 2.6.2 + + + org.springframework.boot + spring-boot-starter-activemq + 2.6.2 + + + org.springframework.boot + spring-boot-starter-actuator + 2.6.2 + + + org.springframework.boot + spring-boot-starter-amqp + 2.6.2 + + + org.springframework.boot + spring-boot-starter-aop + 2.6.2 + + + org.springframework.boot + spring-boot-starter-artemis + 2.6.2 + + + org.springframework.boot + spring-boot-starter-batch + 2.6.2 + + + org.springframework.boot + spring-boot-starter-cache + 2.6.2 + + + org.springframework.boot + spring-boot-starter-data-cassandra + 2.6.2 + + + org.springframework.boot + spring-boot-starter-data-cassandra-reactive + 2.6.2 + + + org.springframework.boot + spring-boot-starter-data-couchbase + 2.6.2 + + + org.springframework.boot + spring-boot-starter-data-couchbase-reactive + 2.6.2 + + + org.springframework.boot + spring-boot-starter-data-elasticsearch + 2.6.2 + + + org.springframework.boot + spring-boot-starter-data-jdbc + 2.6.2 + + + org.springframework.boot + spring-boot-starter-data-jpa + 2.6.2 + + + org.springframework.boot + spring-boot-starter-data-ldap + 2.6.2 + + + org.springframework.boot + spring-boot-starter-data-mongodb + 2.6.2 + + + org.springframework.boot + spring-boot-starter-data-mongodb-reactive + 2.6.2 + + + org.springframework.boot + spring-boot-starter-data-r2dbc + 2.6.2 + + + org.springframework.boot + spring-boot-starter-data-redis + 2.6.2 + + + org.springframework.boot + spring-boot-starter-data-redis-reactive + 2.6.2 + + + org.springframework.boot + spring-boot-starter-data-neo4j + 2.6.2 + + + org.springframework.boot + spring-boot-starter-data-rest + 2.6.2 + + + org.springframework.boot + spring-boot-starter-freemarker + 2.6.2 + + + org.springframework.boot + spring-boot-starter-groovy-templates + 2.6.2 + + + org.springframework.boot + spring-boot-starter-hateoas + 2.6.2 + + + org.springframework.boot + spring-boot-starter-integration + 2.6.2 + + + org.springframework.boot + spring-boot-starter-jdbc + 2.6.2 + + + org.springframework.boot + spring-boot-starter-jersey + 2.6.2 + + + org.springframework.boot + spring-boot-starter-jetty + 2.6.2 + + + org.springframework.boot + spring-boot-starter-jooq + 2.6.2 + + + org.springframework.boot + spring-boot-starter-json + 2.6.2 + + + org.springframework.boot + spring-boot-starter-jta-atomikos + 2.6.2 + + + org.springframework.boot + spring-boot-starter-log4j2 + 2.6.2 + + + org.springframework.boot + spring-boot-starter-logging + 2.6.2 + + + org.springframework.boot + spring-boot-starter-mail + 2.6.2 + + + org.springframework.boot + spring-boot-starter-mustache + 2.6.2 + + + org.springframework.boot + spring-boot-starter-oauth2-client + 2.6.2 + + + org.springframework.boot + spring-boot-starter-oauth2-resource-server + 2.6.2 + + + org.springframework.boot + spring-boot-starter-quartz + 2.6.2 + + + org.springframework.boot + spring-boot-starter-reactor-netty + 2.6.2 + + + org.springframework.boot + spring-boot-starter-rsocket + 2.6.2 + + + org.springframework.boot + spring-boot-starter-security + 2.6.2 + + + org.springframework.boot + spring-boot-starter-test + 2.6.2 + + + org.springframework.boot + spring-boot-starter-thymeleaf + 2.6.2 + + + org.springframework.boot + spring-boot-starter-tomcat + 2.6.2 + + + org.springframework.boot + spring-boot-starter-undertow + 2.6.2 + + + org.springframework.boot + spring-boot-starter-validation + 2.6.2 + + + org.springframework.boot + spring-boot-starter-web + 2.6.2 + + + org.springframework.boot + spring-boot-starter-webflux + 2.6.2 + + + org.springframework.boot + spring-boot-starter-websocket + 2.6.2 + + + org.springframework.boot + spring-boot-starter-web-services + 2.6.2 + + + com.sun.xml.messaging.saaj + saaj-impl + 1.5.3 + + + org.seleniumhq.selenium + selenium-api + 3.141.59 + + + org.seleniumhq.selenium + selenium-chrome-driver + 3.141.59 + + + org.seleniumhq.selenium + selenium-edge-driver + 3.141.59 + + + org.seleniumhq.selenium + selenium-firefox-driver + 3.141.59 + + + org.seleniumhq.selenium + selenium-ie-driver + 3.141.59 + + + org.seleniumhq.selenium + selenium-java + 3.141.59 + + + org.seleniumhq.selenium + selenium-opera-driver + 3.141.59 + + + org.seleniumhq.selenium + selenium-remote-driver + 3.141.59 + + + org.seleniumhq.selenium + selenium-safari-driver + 3.141.59 + + + org.seleniumhq.selenium + selenium-support + 3.141.59 + + + org.seleniumhq.selenium + htmlunit-driver + 2.54.0 + + + com.sendgrid + sendgrid-java + 4.7.6 + + + javax.servlet + javax.servlet-api + 4.0.1 + + + org.slf4j + jcl-over-slf4j + 1.7.32 + + + org.slf4j + jul-to-slf4j + 1.7.32 + + + org.slf4j + log4j-over-slf4j + 1.7.32 + + + org.slf4j + slf4j-api + 1.7.32 + + + org.slf4j + slf4j-ext + 1.7.32 + + + org.slf4j + slf4j-jcl + 1.7.32 + + + org.slf4j + slf4j-jdk14 + 1.7.32 + + + org.slf4j + slf4j-log4j12 + 1.7.32 + + + org.slf4j + slf4j-nop + 1.7.32 + + + org.slf4j + slf4j-simple + 1.7.32 + + + org.yaml + snakeyaml + 1.29 + + + org.apache.solr + solr-analysis-extras + 8.8.2 + + + org.apache.solr + solr-analytics + 8.8.2 + + + org.apache.solr + solr-cell + 8.8.2 + + + org.apache.solr + solr-core + 8.8.2 + + + org.apache.solr + solr-dataimporthandler + 8.8.2 + + + org.apache.solr + solr-dataimporthandler-extras + 8.8.2 + + + org.apache.solr + solr-langid + 8.8.2 + + + org.apache.solr + solr-ltr + 8.8.2 + + + org.apache.solr + solr-solrj + 8.8.2 + + + jcl-over-slf4j + org.slf4j + + + + + org.apache.solr + solr-test-framework + 8.8.2 + + + org.apache.solr + solr-velocity + 8.8.2 + + + org.springframework.amqp + spring-amqp + 2.4.1 + + + org.springframework.amqp + spring-rabbit + 2.4.1 + + + org.springframework.amqp + spring-rabbit-stream + 2.4.1 + + + org.springframework.amqp + spring-rabbit-junit + 2.4.1 + + + org.springframework.amqp + spring-rabbit-test + 2.4.1 + + + org.springframework.batch + spring-batch-core + 4.3.4 + + + org.springframework.batch + spring-batch-infrastructure + 4.3.4 + + + org.springframework.batch + spring-batch-integration + 4.3.4 + + + org.springframework.batch + spring-batch-test + 4.3.4 + + + org.springframework.hateoas + spring-hateoas + 1.4.0 + + + org.springframework.kafka + spring-kafka + 2.8.1 + + + org.springframework.kafka + spring-kafka-test + 2.8.1 + + + org.springframework.ldap + spring-ldap-core + 2.3.5.RELEASE + + + org.springframework.ldap + spring-ldap-core-tiger + 2.3.5.RELEASE + + + org.springframework.ldap + spring-ldap-ldif-batch + 2.3.5.RELEASE + + + org.springframework.ldap + spring-ldap-ldif-core + 2.3.5.RELEASE + + + org.springframework.ldap + spring-ldap-odm + 2.3.5.RELEASE + + + org.springframework.ldap + spring-ldap-test + 2.3.5.RELEASE + + + org.springframework.restdocs + spring-restdocs-asciidoctor + 2.0.5.RELEASE + + + org.springframework.restdocs + spring-restdocs-core + 2.0.5.RELEASE + + + org.springframework.restdocs + spring-restdocs-mockmvc + 2.0.5.RELEASE + + + org.springframework.restdocs + spring-restdocs-restassured + 2.0.5.RELEASE + + + org.springframework.restdocs + spring-restdocs-webtestclient + 2.0.5.RELEASE + + + org.springframework.retry + spring-retry + 1.3.1 + + + org.springframework.ws + spring-ws-core + 3.1.2 + + + org.springframework.ws + spring-ws-security + 3.1.2 + + + org.springframework.ws + spring-ws-support + 3.1.2 + + + org.springframework.ws + spring-ws-test + 3.1.2 + + + org.springframework.ws + spring-xml + 3.1.2 + + + org.xerial + sqlite-jdbc + 3.36.0.3 + + + com.sun.mail + jakarta.mail + 1.6.7 + + + org.thymeleaf + thymeleaf + 3.0.14.RELEASE + + + org.thymeleaf + thymeleaf-spring5 + 3.0.14.RELEASE + + + com.github.mxab.thymeleaf.extras + thymeleaf-extras-data-attribute + 2.0.1 + + + org.thymeleaf.extras + thymeleaf-extras-java8time + 3.0.4.RELEASE + + + org.thymeleaf.extras + thymeleaf-extras-springsecurity5 + 3.0.4.RELEASE + + + nz.net.ultraq.thymeleaf + thymeleaf-layout-dialect + 3.0.0 + + + org.apache.tomcat + tomcat-annotations-api + 9.0.56 + + + org.apache.tomcat + tomcat-jdbc + 9.0.56 + + + org.apache.tomcat + tomcat-jsp-api + 9.0.56 + + + org.apache.tomcat.embed + tomcat-embed-core + 9.0.56 + + + org.apache.tomcat.embed + tomcat-embed-el + 9.0.56 + + + org.apache.tomcat.embed + tomcat-embed-jasper + 9.0.56 + + + org.apache.tomcat.embed + tomcat-embed-websocket + 9.0.56 + + + com.unboundid + unboundid-ldapsdk + 4.0.14 + + + io.undertow + undertow-core + 2.2.14.Final + + + io.undertow + undertow-servlet + 2.2.14.Final + + + io.undertow + undertow-websockets-jsr + 2.2.14.Final + + + org.webjars + webjars-locator-core + 0.48 + + + wsdl4j + wsdl4j + 1.6.3 + + + org.xmlunit + xmlunit-assertj + 2.8.4 + + + org.xmlunit + xmlunit-core + 2.8.4 + + + org.xmlunit + xmlunit-legacy + 2.8.4 + + + org.xmlunit + xmlunit-matchers + 2.8.4 + + + org.xmlunit + xmlunit-placeholders + 2.8.4 + + + com.datastax.oss + java-driver-core-shaded + 4.13.0 + + + com.datastax.oss + java-driver-mapper-processor + 4.13.0 + + + com.datastax.oss + java-driver-mapper-runtime + 4.13.0 + + + com.datastax.oss + java-driver-query-builder + 4.13.0 + + + com.datastax.oss + java-driver-test-infra + 4.13.0 + + + com.datastax.oss + java-driver-metrics-micrometer + 4.13.0 + + + com.datastax.oss + java-driver-metrics-microprofile + 4.13.0 + + + com.datastax.oss + native-protocol + 1.5.0 + + + com.datastax.oss + java-driver-shaded-guava + 25.1-jre-graal-sub-1 + + + io.dropwizard.metrics + metrics-annotation + 4.2.7 + + + io.dropwizard.metrics + metrics-caffeine + 4.2.7 + + + io.dropwizard.metrics + metrics-caffeine3 + 4.2.7 + + + io.dropwizard.metrics + metrics-core + 4.2.7 + + + io.dropwizard.metrics + metrics-collectd + 4.2.7 + + + io.dropwizard.metrics + metrics-ehcache + 4.2.7 + + + io.dropwizard.metrics + metrics-graphite + 4.2.7 + + + io.dropwizard.metrics + metrics-healthchecks + 4.2.7 + + + io.dropwizard.metrics + metrics-httpclient + 4.2.7 + + + io.dropwizard.metrics + metrics-httpclient5 + 4.2.7 + + + io.dropwizard.metrics + metrics-httpasyncclient + 4.2.7 + + + io.dropwizard.metrics + metrics-jakarta-servlet + 4.2.7 + + + io.dropwizard.metrics + metrics-jakarta-servlets + 4.2.7 + + + io.dropwizard.metrics + metrics-jcache + 4.2.7 + + + io.dropwizard.metrics + metrics-jdbi + 4.2.7 + + + io.dropwizard.metrics + metrics-jdbi3 + 4.2.7 + + + io.dropwizard.metrics + metrics-jersey2 + 4.2.7 + + + io.dropwizard.metrics + metrics-jersey3 + 4.2.7 + + + io.dropwizard.metrics + metrics-jetty9 + 4.2.7 + + + io.dropwizard.metrics + metrics-jetty10 + 4.2.7 + + + io.dropwizard.metrics + metrics-jetty11 + 4.2.7 + + + io.dropwizard.metrics + metrics-jmx + 4.2.7 + + + io.dropwizard.metrics + metrics-json + 4.2.7 + + + io.dropwizard.metrics + metrics-jvm + 4.2.7 + + + io.dropwizard.metrics + metrics-log4j2 + 4.2.7 + + + io.dropwizard.metrics + metrics-logback + 4.2.7 + + + io.dropwizard.metrics + metrics-servlet + 4.2.7 + + + io.dropwizard.metrics + metrics-servlets + 4.2.7 + + + org.codehaus.groovy + groovy + 3.0.9 + + + org.codehaus.groovy + groovy-ant + 3.0.9 + + + org.codehaus.groovy + groovy-astbuilder + 3.0.9 + + + org.codehaus.groovy + groovy-bsf + 3.0.9 + + + org.codehaus.groovy + groovy-cli-commons + 3.0.9 + + + org.codehaus.groovy + groovy-cli-picocli + 3.0.9 + + + org.codehaus.groovy + groovy-console + 3.0.9 + + + org.codehaus.groovy + groovy-datetime + 3.0.9 + + + org.codehaus.groovy + groovy-dateutil + 3.0.9 + + + org.codehaus.groovy + groovy-docgenerator + 3.0.9 + + + org.codehaus.groovy + groovy-groovydoc + 3.0.9 + + + org.codehaus.groovy + groovy-groovysh + 3.0.9 + + + org.codehaus.groovy + groovy-jaxb + 3.0.9 + + + org.codehaus.groovy + groovy-jmx + 3.0.9 + + + org.codehaus.groovy + groovy-json + 3.0.9 + + + org.codehaus.groovy + groovy-jsr223 + 3.0.9 + + + org.codehaus.groovy + groovy-macro + 3.0.9 + + + org.codehaus.groovy + groovy-nio + 3.0.9 + + + org.codehaus.groovy + groovy-servlet + 3.0.9 + + + org.codehaus.groovy + groovy-sql + 3.0.9 + + + org.codehaus.groovy + groovy-swing + 3.0.9 + + + org.codehaus.groovy + groovy-templates + 3.0.9 + + + org.codehaus.groovy + groovy-test + 3.0.9 + + + org.codehaus.groovy + groovy-test-junit5 + 3.0.9 + + + org.codehaus.groovy + groovy-testng + 3.0.9 + + + org.codehaus.groovy + groovy-xml + 3.0.9 + + + org.codehaus.groovy + groovy-yaml + 3.0.9 + + + org.infinispan + infinispan-api + 12.1.10.Final + + + org.infinispan + infinispan-cachestore-jdbc + 12.1.10.Final + + + org.infinispan + infinispan-cachestore-jpa + 12.1.10.Final + + + org.infinispan + infinispan-cachestore-remote + 12.1.10.Final + + + org.infinispan + infinispan-cachestore-rocksdb + 12.1.10.Final + + + org.infinispan + infinispan-cdi-common + 12.1.10.Final + + + org.infinispan + infinispan-cdi-embedded + 12.1.10.Final + + + org.infinispan + infinispan-cdi-remote + 12.1.10.Final + + + org.infinispan + infinispan-checkstyle + 12.1.10.Final + + + org.infinispan + infinispan-cli-client + 12.1.10.Final + + + org.infinispan + infinispan-client-hotrod + 12.1.10.Final + + + org.infinispan + infinispan-client-rest + 12.1.10.Final + + + org.infinispan + infinispan-key-value-store-client + 12.1.10.Final + + + org.infinispan + infinispan-clustered-counter + 12.1.10.Final + + + org.infinispan + infinispan-clustered-lock + 12.1.10.Final + + + org.infinispan + infinispan-commons + 12.1.10.Final + + + org.infinispan + infinispan-commons-test + 12.1.10.Final + + + org.infinispan + infinispan-component-annotations + 12.1.10.Final + provided + + + org.infinispan + infinispan-component-processor + 12.1.10.Final + + + org.infinispan + infinispan-core + 12.1.10.Final + + + org.infinispan + infinispan-jboss-marshalling + 12.1.10.Final + + + org.infinispan + infinispan-extended-statistics + 12.1.10.Final + + + org.infinispan + infinispan-hibernate-cache-commons + 12.1.10.Final + + + org.infinispan + infinispan-hibernate-cache-spi + 12.1.10.Final + + + org.infinispan + infinispan-hibernate-cache-v51 + 12.1.10.Final + + + org.infinispan + infinispan-hibernate-cache-v53 + 12.1.10.Final + + + org.infinispan + infinispan-jcache-commons + 12.1.10.Final + + + org.infinispan + infinispan-jcache + 12.1.10.Final + + + org.infinispan + infinispan-jcache-remote + 12.1.10.Final + + + org.infinispan + infinispan-console + 0.14.3.Final + + + org.infinispan + infinispan-marshaller-kryo + 12.1.10.Final + + + org.infinispan + infinispan-marshaller-kryo-bundle + 12.1.10.Final + + + org.infinispan + infinispan-marshaller-protostuff + 12.1.10.Final + + + org.infinispan + infinispan-marshaller-protostuff-bundle + 12.1.10.Final + + + org.infinispan + infinispan-multimap + 12.1.10.Final + + + org.infinispan + infinispan-objectfilter + 12.1.10.Final + + + org.infinispan + infinispan-persistence-soft-index + 12.1.10.Final + + + org.infinispan + infinispan-query-core + 12.1.10.Final + + + org.infinispan + infinispan-query + 12.1.10.Final + + + org.infinispan + infinispan-query-dsl + 12.1.10.Final + + + org.infinispan + infinispan-remote-query-client + 12.1.10.Final + + + org.infinispan + infinispan-remote-query-server + 12.1.10.Final + + + org.infinispan + infinispan-scripting + 12.1.10.Final + + + org.infinispan + infinispan-server-core + 12.1.10.Final + + + org.infinispan + infinispan-server-hotrod + 12.1.10.Final + + + org.infinispan + infinispan-server-memcached + 12.1.10.Final + + + org.infinispan + infinispan-server-rest + 12.1.10.Final + + + org.infinispan + infinispan-server-router + 12.1.10.Final + + + org.infinispan + infinispan-server-runtime + 12.1.10.Final + + + org.infinispan + infinispan-server-testdriver-core + 12.1.10.Final + + + org.infinispan + infinispan-server-testdriver-junit4 + 12.1.10.Final + + + org.infinispan + infinispan-server-testdriver-junit5 + 12.1.10.Final + + + org.infinispan + infinispan-spring5-common + 12.1.10.Final + + + org.infinispan + infinispan-spring5-embedded + 12.1.10.Final + + + org.infinispan + infinispan-spring5-remote + 12.1.10.Final + + + org.infinispan + infinispan-spring-boot-starter-embedded + 12.1.10.Final + + + org.infinispan + infinispan-spring-boot-starter-remote + 12.1.10.Final + + + org.infinispan + infinispan-tasks + 12.1.10.Final + + + org.infinispan + infinispan-tasks-api + 12.1.10.Final + + + org.infinispan + infinispan-tools + 12.1.10.Final + + + org.infinispan + infinispan-anchored-keys + 12.1.10.Final + + + org.infinispan.protostream + protostream + 4.4.1.Final + + + org.infinispan.protostream + protostream-types + 4.4.1.Final + + + org.infinispan.protostream + protostream-processor + 4.4.1.Final + provided + + + org.infinispan + infinispan-cloudevents-integration + 12.1.10.Final + + + com.fasterxml.jackson.core + jackson-annotations + 2.13.1 + + + com.fasterxml.jackson.core + jackson-core + 2.13.1 + + + com.fasterxml.jackson.core + jackson-databind + 2.13.1 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-avro + 2.13.1 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-cbor + 2.13.1 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-csv + 2.13.1 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-ion + 2.13.1 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-properties + 2.13.1 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-protobuf + 2.13.1 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-smile + 2.13.1 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-toml + 2.13.1 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + 2.13.1 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-yaml + 2.13.1 + + + com.fasterxml.jackson.datatype + jackson-datatype-eclipse-collections + 2.13.1 + + + com.fasterxml.jackson.datatype + jackson-datatype-guava + 2.13.1 + + + com.fasterxml.jackson.datatype + jackson-datatype-hibernate4 + 2.13.1 + + + com.fasterxml.jackson.datatype + jackson-datatype-hibernate5 + 2.13.1 + + + com.fasterxml.jackson.datatype + jackson-datatype-hibernate5-jakarta + 2.13.1 + + + com.fasterxml.jackson.datatype + jackson-datatype-hppc + 2.13.1 + + + com.fasterxml.jackson.datatype + jackson-datatype-jakarta-jsonp + 2.13.1 + + + com.fasterxml.jackson.datatype + jackson-datatype-jaxrs + 2.13.1 + + + com.fasterxml.jackson.datatype + jackson-datatype-joda + 2.13.1 + + + com.fasterxml.jackson.datatype + jackson-datatype-joda-money + 2.13.1 + + + com.fasterxml.jackson.datatype + jackson-datatype-jdk8 + 2.13.1 + + + com.fasterxml.jackson.datatype + jackson-datatype-json-org + 2.13.1 + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + 2.13.1 + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr353 + 2.13.1 + + + com.fasterxml.jackson.datatype + jackson-datatype-pcollections + 2.13.1 + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-base + 2.13.1 + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-cbor-provider + 2.13.1 + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-json-provider + 2.13.1 + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-smile-provider + 2.13.1 + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-xml-provider + 2.13.1 + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-yaml-provider + 2.13.1 + + + com.fasterxml.jackson.jakarta.rs + jackson-jakarta-rs-base + 2.13.1 + + + com.fasterxml.jackson.jakarta.rs + jackson-jakarta-rs-cbor-provider + 2.13.1 + + + com.fasterxml.jackson.jakarta.rs + jackson-jakarta-rs-json-provider + 2.13.1 + + + com.fasterxml.jackson.jakarta.rs + jackson-jakarta-rs-smile-provider + 2.13.1 + + + com.fasterxml.jackson.jakarta.rs + jackson-jakarta-rs-xml-provider + 2.13.1 + + + com.fasterxml.jackson.jakarta.rs + jackson-jakarta-rs-yaml-provider + 2.13.1 + + + com.fasterxml.jackson.jr + jackson-jr-all + 2.13.1 + + + com.fasterxml.jackson.jr + jackson-jr-annotation-support + 2.13.1 + + + com.fasterxml.jackson.jr + jackson-jr-objects + 2.13.1 + + + com.fasterxml.jackson.jr + jackson-jr-retrofit2 + 2.13.1 + + + com.fasterxml.jackson.jr + jackson-jr-stree + 2.13.1 + + + com.fasterxml.jackson.module + jackson-module-afterburner + 2.13.1 + + + com.fasterxml.jackson.module + jackson-module-blackbird + 2.13.1 + + + com.fasterxml.jackson.module + jackson-module-guice + 2.13.1 + + + com.fasterxml.jackson.module + jackson-module-jaxb-annotations + 2.13.1 + + + com.fasterxml.jackson.module + jackson-module-jakarta-xmlbind-annotations + 2.13.1 + + + com.fasterxml.jackson.module + jackson-module-jsonSchema + 2.13.1 + + + com.fasterxml.jackson.module + jackson-module-kotlin + 2.13.1 + + + com.fasterxml.jackson.module + jackson-module-mrbean + 2.13.1 + + + com.fasterxml.jackson.module + jackson-module-no-ctor-deser + 2.13.1 + + + com.fasterxml.jackson.module + jackson-module-osgi + 2.13.1 + + + com.fasterxml.jackson.module + jackson-module-parameter-names + 2.13.1 + + + com.fasterxml.jackson.module + jackson-module-paranamer + 2.13.1 + + + com.fasterxml.jackson.module + jackson-module-scala_2.11 + 2.13.1 + + + com.fasterxml.jackson.module + jackson-module-scala_2.12 + 2.13.1 + + + com.fasterxml.jackson.module + jackson-module-scala_2.13 + 2.13.1 + + + com.fasterxml.jackson.module + jackson-module-scala_3 + 2.13.1 + + + org.glassfish.jersey.core + jersey-common + 2.35 + + + org.glassfish.jersey.core + jersey-client + 2.35 + + + org.glassfish.jersey.core + jersey-server + 2.35 + + + org.glassfish.jersey.bundles + jaxrs-ri + 2.35 + + + org.glassfish.jersey.connectors + jersey-apache-connector + 2.35 + + + org.glassfish.jersey.connectors + jersey-helidon-connector + 2.35 + + + org.glassfish.jersey.connectors + jersey-grizzly-connector + 2.35 + + + org.glassfish.jersey.connectors + jersey-jetty-connector + 2.35 + + + org.glassfish.jersey.connectors + jersey-jdk-connector + 2.35 + + + org.glassfish.jersey.connectors + jersey-netty-connector + 2.35 + + + org.glassfish.jersey.containers + jersey-container-jetty-http + 2.35 + + + org.glassfish.jersey.containers + jersey-container-grizzly2-http + 2.35 + + + org.glassfish.jersey.containers + jersey-container-grizzly2-servlet + 2.35 + + + org.glassfish.jersey.containers + jersey-container-jetty-servlet + 2.35 + + + org.glassfish.jersey.containers + jersey-container-jdk-http + 2.35 + + + org.glassfish.jersey.containers + jersey-container-netty-http + 2.35 + + + org.glassfish.jersey.containers + jersey-container-servlet + 2.35 + + + org.glassfish.jersey.containers + jersey-container-servlet-core + 2.35 + + + org.glassfish.jersey.containers + jersey-container-simple-http + 2.35 + + + org.glassfish.jersey.containers.glassfish + jersey-gf-ejb + 2.35 + + + org.glassfish.jersey.ext + jersey-bean-validation + 2.35 + + + org.glassfish.jersey.ext + jersey-entity-filtering + 2.35 + + + org.glassfish.jersey.ext + jersey-metainf-services + 2.35 + + + org.glassfish.jersey.ext.microprofile + jersey-mp-config + 2.35 + + + org.glassfish.jersey.ext + jersey-mvc + 2.35 + + + org.glassfish.jersey.ext + jersey-mvc-bean-validation + 2.35 + + + org.glassfish.jersey.ext + jersey-mvc-freemarker + 2.35 + + + org.glassfish.jersey.ext + jersey-mvc-jsp + 2.35 + + + org.glassfish.jersey.ext + jersey-mvc-mustache + 2.35 + + + org.glassfish.jersey.ext + jersey-proxy-client + 2.35 + + + org.glassfish.jersey.ext + jersey-servlet-portability + 2.35 + + + org.glassfish.jersey.ext + jersey-spring4 + 2.35 + + + org.glassfish.jersey.ext + jersey-spring5 + 2.35 + + + org.glassfish.jersey.ext + jersey-declarative-linking + 2.35 + + + org.glassfish.jersey.ext + jersey-wadl-doclet + 2.35 + + + org.glassfish.jersey.ext.cdi + jersey-weld2-se + 2.35 + + + org.glassfish.jersey.ext.cdi + jersey-cdi1x + 2.35 + + + org.glassfish.jersey.ext.cdi + jersey-cdi1x-transaction + 2.35 + + + org.glassfish.jersey.ext.cdi + jersey-cdi1x-validation + 2.35 + + + org.glassfish.jersey.ext.cdi + jersey-cdi1x-servlet + 2.35 + + + org.glassfish.jersey.ext.cdi + jersey-cdi1x-ban-custom-hk2-binding + 2.35 + + + org.glassfish.jersey.ext.cdi + jersey-cdi-rs-inject + 2.35 + + + org.glassfish.jersey.ext.rx + jersey-rx-client-guava + 2.35 + + + org.glassfish.jersey.ext.rx + jersey-rx-client-rxjava + 2.35 + + + org.glassfish.jersey.ext.rx + jersey-rx-client-rxjava2 + 2.35 + + + org.glassfish.jersey.ext.microprofile + jersey-mp-rest-client + 2.35 + + + org.glassfish.jersey.media + jersey-media-jaxb + 2.35 + + + org.glassfish.jersey.media + jersey-media-json-jackson + 2.35 + + + org.glassfish.jersey.media + jersey-media-json-jettison + 2.35 + + + org.glassfish.jersey.media + jersey-media-json-processing + 2.35 + + + org.glassfish.jersey.media + jersey-media-json-binding + 2.35 + + + org.glassfish.jersey.media + jersey-media-kryo + 2.35 + + + org.glassfish.jersey.media + jersey-media-moxy + 2.35 + + + org.glassfish.jersey.media + jersey-media-multipart + 2.35 + + + org.glassfish.jersey.media + jersey-media-sse + 2.35 + + + org.glassfish.jersey.security + oauth1-client + 2.35 + + + org.glassfish.jersey.security + oauth1-server + 2.35 + + + org.glassfish.jersey.security + oauth1-signature + 2.35 + + + org.glassfish.jersey.security + oauth2-client + 2.35 + + + org.glassfish.jersey.inject + jersey-hk2 + 2.35 + + + org.glassfish.jersey.inject + jersey-cdi2-se + 2.35 + + + org.glassfish.jersey.test-framework + jersey-test-framework-core + 2.35 + + + org.glassfish.jersey.test-framework.providers + jersey-test-framework-provider-bundle + 2.35 + pom + + + org.glassfish.jersey.test-framework.providers + jersey-test-framework-provider-external + 2.35 + + + org.glassfish.jersey.test-framework.providers + jersey-test-framework-provider-grizzly2 + 2.35 + + + org.glassfish.jersey.test-framework.providers + jersey-test-framework-provider-inmemory + 2.35 + + + org.glassfish.jersey.test-framework.providers + jersey-test-framework-provider-jdk-http + 2.35 + + + org.glassfish.jersey.test-framework.providers + jersey-test-framework-provider-simple + 2.35 + + + org.glassfish.jersey.test-framework.providers + jersey-test-framework-provider-jetty + 2.35 + + + org.glassfish.jersey.test-framework + jersey-test-framework-util + 2.35 + + + org.eclipse.jetty + apache-jsp + 9.4.44.v20210927 + + + org.eclipse.jetty + apache-jstl + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-alpn-client + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-alpn-java-client + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-alpn-java-server + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-alpn-openjdk8-client + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-alpn-openjdk8-server + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-alpn-conscrypt-client + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-alpn-conscrypt-server + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-alpn-server + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-annotations + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-ant + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-client + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-continuation + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-deploy + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-distribution + 9.4.44.v20210927 + zip + + + org.eclipse.jetty + jetty-distribution + 9.4.44.v20210927 + tar.gz + + + org.eclipse.jetty.fcgi + fcgi-client + 9.4.44.v20210927 + + + org.eclipse.jetty.fcgi + fcgi-server + 9.4.44.v20210927 + + + org.eclipse.jetty.gcloud + jetty-gcloud-session-manager + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-home + 9.4.44.v20210927 + zip + + + org.eclipse.jetty + jetty-home + 9.4.44.v20210927 + tar.gz + + + org.eclipse.jetty + jetty-http + 9.4.44.v20210927 + + + org.eclipse.jetty.http2 + http2-client + 9.4.44.v20210927 + + + org.eclipse.jetty.http2 + http2-common + 9.4.44.v20210927 + + + org.eclipse.jetty.http2 + http2-hpack + 9.4.44.v20210927 + + + org.eclipse.jetty.http2 + http2-http-client-transport + 9.4.44.v20210927 + + + org.eclipse.jetty.http2 + http2-server + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-http-spi + 9.4.44.v20210927 + + + org.eclipse.jetty + infinispan-common + 9.4.44.v20210927 + + + org.eclipse.jetty + infinispan-remote-query + 9.4.44.v20210927 + + + org.eclipse.jetty + infinispan-embedded-query + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-hazelcast + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-io + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-jaas + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-jaspi + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-jmx + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-jndi + 9.4.44.v20210927 + + + org.eclipse.jetty.memcached + jetty-memcached-sessions + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-nosql + 9.4.44.v20210927 + + + org.eclipse.jetty.osgi + jetty-osgi-boot + 9.4.44.v20210927 + + + org.eclipse.jetty.osgi + jetty-osgi-boot-jsp + 9.4.44.v20210927 + + + org.eclipse.jetty.osgi + jetty-osgi-boot-warurl + 9.4.44.v20210927 + + + org.eclipse.jetty.osgi + jetty-httpservice + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-plus + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-proxy + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-quickstart + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-rewrite + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-security + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-openid + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-server + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-servlet + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-servlets + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-spring + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-unixsocket + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-util + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-util-ajax + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-webapp + 9.4.44.v20210927 + + + org.eclipse.jetty.websocket + javax-websocket-client-impl + 9.4.44.v20210927 + + + org.eclipse.jetty.websocket + javax-websocket-server-impl + 9.4.44.v20210927 + + + org.eclipse.jetty.websocket + websocket-api + 9.4.44.v20210927 + + + org.eclipse.jetty.websocket + websocket-client + 9.4.44.v20210927 + + + org.eclipse.jetty.websocket + websocket-common + 9.4.44.v20210927 + + + org.eclipse.jetty.websocket + websocket-server + 9.4.44.v20210927 + + + org.eclipse.jetty.websocket + websocket-servlet + 9.4.44.v20210927 + + + org.eclipse.jetty + jetty-xml + 9.4.44.v20210927 + + + org.junit.jupiter + junit-jupiter + 5.8.2 + + + org.junit.jupiter + junit-jupiter-api + 5.8.2 + + + org.junit.jupiter + junit-jupiter-engine + 5.8.2 + + + org.junit.jupiter + junit-jupiter-migrationsupport + 5.8.2 + + + org.junit.jupiter + junit-jupiter-params + 5.8.2 + + + org.junit.platform + junit-platform-commons + 1.8.2 + + + org.junit.platform + junit-platform-console + 1.8.2 + + + org.junit.platform + junit-platform-engine + 1.8.2 + + + org.junit.platform + junit-platform-jfr + 1.8.2 + + + org.junit.platform + junit-platform-launcher + 1.8.2 + + + org.junit.platform + junit-platform-reporting + 1.8.2 + + + org.junit.platform + junit-platform-runner + 1.8.2 + + + org.junit.platform + junit-platform-suite + 1.8.2 + + + org.junit.platform + junit-platform-suite-api + 1.8.2 + + + org.junit.platform + junit-platform-suite-commons + 1.8.2 + + + org.junit.platform + junit-platform-suite-engine + 1.8.2 + + + org.junit.platform + junit-platform-testkit + 1.8.2 + + + org.junit.vintage + junit-vintage-engine + 5.8.2 + + + org.jetbrains.kotlin + kotlin-stdlib + 1.6.10 + + + org.jetbrains.kotlin + kotlin-stdlib-jdk7 + 1.6.10 + + + org.jetbrains.kotlin + kotlin-stdlib-jdk8 + 1.6.10 + + + org.jetbrains.kotlin + kotlin-stdlib-js + 1.6.10 + + + org.jetbrains.kotlin + kotlin-stdlib-common + 1.6.10 + + + org.jetbrains.kotlin + kotlin-reflect + 1.6.10 + + + org.jetbrains.kotlin + kotlin-osgi-bundle + 1.6.10 + + + org.jetbrains.kotlin + kotlin-test + 1.6.10 + + + org.jetbrains.kotlin + kotlin-test-junit + 1.6.10 + + + org.jetbrains.kotlin + kotlin-test-junit5 + 1.6.10 + + + org.jetbrains.kotlin + kotlin-test-testng + 1.6.10 + + + org.jetbrains.kotlin + kotlin-test-js + 1.6.10 + + + org.jetbrains.kotlin + kotlin-test-common + 1.6.10 + + + org.jetbrains.kotlin + kotlin-test-annotations-common + 1.6.10 + + + org.jetbrains.kotlin + kotlin-main-kts + 1.6.10 + + + org.jetbrains.kotlin + kotlin-script-runtime + 1.6.10 + + + org.jetbrains.kotlin + kotlin-script-util + 1.6.10 + + + org.jetbrains.kotlin + kotlin-scripting-common + 1.6.10 + + + org.jetbrains.kotlin + kotlin-scripting-jvm + 1.6.10 + + + org.jetbrains.kotlin + kotlin-scripting-jvm-host + 1.6.10 + + + org.jetbrains.kotlin + kotlin-scripting-ide-services + 1.6.10 + + + org.jetbrains.kotlin + kotlin-compiler + 1.6.10 + + + org.jetbrains.kotlin + kotlin-compiler-embeddable + 1.6.10 + + + org.jetbrains.kotlin + kotlin-daemon-client + 1.6.10 + + + org.jetbrains.kotlinx + kotlinx-coroutines-android + 1.5.2 + + + org.jetbrains.kotlinx + kotlinx-coroutines-core-jvm + 1.5.2 + + + org.jetbrains.kotlinx + kotlinx-coroutines-core + 1.5.2 + + + org.jetbrains.kotlinx + kotlinx-coroutines-debug + 1.5.2 + + + org.jetbrains.kotlinx + kotlinx-coroutines-guava + 1.5.2 + + + org.jetbrains.kotlinx + kotlinx-coroutines-javafx + 1.5.2 + + + org.jetbrains.kotlinx + kotlinx-coroutines-jdk8 + 1.5.2 + + + org.jetbrains.kotlinx + kotlinx-coroutines-jdk9 + 1.5.2 + + + org.jetbrains.kotlinx + kotlinx-coroutines-play-services + 1.5.2 + + + org.jetbrains.kotlinx + kotlinx-coroutines-reactive + 1.5.2 + + + org.jetbrains.kotlinx + kotlinx-coroutines-reactor + 1.5.2 + + + org.jetbrains.kotlinx + kotlinx-coroutines-rx2 + 1.5.2 + + + org.jetbrains.kotlinx + kotlinx-coroutines-rx3 + 1.5.2 + + + org.jetbrains.kotlinx + kotlinx-coroutines-slf4j + 1.5.2 + + + org.jetbrains.kotlinx + kotlinx-coroutines-swing + 1.5.2 + + + org.jetbrains.kotlinx + kotlinx-coroutines-test + 1.5.2 + + + org.apache.logging.log4j + log4j-api + 2.17.0 + + + org.apache.logging.log4j + log4j-core + 2.17.0 + + + org.apache.logging.log4j + log4j-layout-template-json + 2.17.0 + + + org.apache.logging.log4j + log4j-1.2-api + 2.17.0 + + + org.apache.logging.log4j + log4j-jcl + 2.17.0 + + + org.apache.logging.log4j + log4j-flume-ng + 2.17.0 + + + org.apache.logging.log4j + log4j-taglib + 2.17.0 + + + org.apache.logging.log4j + log4j-jmx-gui + 2.17.0 + + + org.apache.logging.log4j + log4j-slf4j-impl + 2.17.0 + + + org.apache.logging.log4j + log4j-slf4j18-impl + 2.17.0 + + + org.apache.logging.log4j + log4j-to-slf4j + 2.17.0 + + + org.apache.logging.log4j + log4j-appserver + 2.17.0 + + + org.apache.logging.log4j + log4j-web + 2.17.0 + + + org.apache.logging.log4j + log4j-couchdb + 2.17.0 + + + org.apache.logging.log4j + log4j-mongodb4 + 2.17.0 + + + org.apache.logging.log4j + log4j-mongodb3 + 2.17.0 + + + org.apache.logging.log4j + log4j-cassandra + 2.17.0 + + + org.apache.logging.log4j + log4j-jpa + 2.17.0 + + + org.apache.logging.log4j + log4j-iostreams + 2.17.0 + + + org.apache.logging.log4j + log4j-jul + 2.17.0 + + + org.apache.logging.log4j + log4j-jpl + 2.17.0 + + + org.apache.logging.log4j + log4j-liquibase + 2.17.0 + + + org.apache.logging.log4j + log4j-docker + 2.17.0 + + + org.apache.logging.log4j + log4j-kubernetes + 2.17.0 + + + org.apache.logging.log4j + log4j-spring-boot + 2.17.0 + + + org.apache.logging.log4j + log4j-spring-cloud-config-client + 2.17.0 + + + io.micrometer + micrometer-core + 1.8.1 + + + io.micrometer + micrometer-jersey2 + 1.8.1 + + + io.micrometer + micrometer-registry-appoptics + 1.8.1 + + + io.micrometer + micrometer-registry-atlas + 1.8.1 + + + io.micrometer + micrometer-registry-azure-monitor + 1.8.1 + + + io.micrometer + micrometer-registry-cloudwatch + 1.8.1 + + + io.micrometer + micrometer-registry-cloudwatch2 + 1.8.1 + + + io.micrometer + micrometer-registry-datadog + 1.8.1 + + + io.micrometer + micrometer-registry-dynatrace + 1.8.1 + + + io.micrometer + micrometer-registry-elastic + 1.8.1 + + + io.micrometer + micrometer-registry-ganglia + 1.8.1 + + + io.micrometer + micrometer-registry-graphite + 1.8.1 + + + io.micrometer + micrometer-registry-health + 1.8.1 + + + io.micrometer + micrometer-registry-humio + 1.8.1 + + + io.micrometer + micrometer-registry-influx + 1.8.1 + + + io.micrometer + micrometer-registry-jmx + 1.8.1 + + + io.micrometer + micrometer-registry-kairos + 1.8.1 + + + io.micrometer + micrometer-registry-new-relic + 1.8.1 + + + io.micrometer + micrometer-registry-opentsdb + 1.8.1 + + + io.micrometer + micrometer-registry-prometheus + 1.8.1 + + + io.micrometer + micrometer-registry-signalfx + 1.8.1 + + + io.micrometer + micrometer-registry-statsd + 1.8.1 + + + io.micrometer + micrometer-registry-wavefront + 1.8.1 + + + io.micrometer + micrometer-test + 1.8.1 + + + io.netty + netty-buffer + 4.1.72.Final + + + io.netty + netty-codec + 4.1.72.Final + + + io.netty + netty-codec-dns + 4.1.72.Final + + + io.netty + netty-codec-haproxy + 4.1.72.Final + + + io.netty + netty-codec-http + 4.1.72.Final + + + io.netty + netty-codec-http2 + 4.1.72.Final + + + io.netty + netty-codec-memcache + 4.1.72.Final + + + io.netty + netty-codec-mqtt + 4.1.72.Final + + + io.netty + netty-codec-redis + 4.1.72.Final + + + io.netty + netty-codec-smtp + 4.1.72.Final + + + io.netty + netty-codec-socks + 4.1.72.Final + + + io.netty + netty-codec-stomp + 4.1.72.Final + + + io.netty + netty-codec-xml + 4.1.72.Final + + + io.netty + netty-common + 4.1.72.Final + + + io.netty + netty-dev-tools + 4.1.72.Final + + + io.netty + netty-handler + 4.1.72.Final + + + io.netty + netty-handler-proxy + 4.1.72.Final + + + io.netty + netty-resolver + 4.1.72.Final + + + io.netty + netty-resolver-dns + 4.1.72.Final + + + io.netty + netty-transport + 4.1.72.Final + + + io.netty + netty-transport-rxtx + 4.1.72.Final + + + io.netty + netty-transport-sctp + 4.1.72.Final + + + io.netty + netty-transport-udt + 4.1.72.Final + + + io.netty + netty-example + 4.1.72.Final + + + io.netty + netty-all + 4.1.72.Final + + + io.netty + netty-resolver-dns-classes-macos + 4.1.72.Final + + + io.netty + netty-resolver-dns-native-macos + 4.1.72.Final + + + io.netty + netty-resolver-dns-native-macos + 4.1.72.Final + osx-x86_64 + + + io.netty + netty-resolver-dns-native-macos + 4.1.72.Final + osx-aarch_64 + + + io.netty + netty-transport-native-unix-common + 4.1.72.Final + + + io.netty + netty-transport-native-unix-common + 4.1.72.Final + linux-aarch_64 + + + io.netty + netty-transport-native-unix-common + 4.1.72.Final + linux-x86_64 + + + io.netty + netty-transport-native-unix-common + 4.1.72.Final + osx-x86_64 + + + io.netty + netty-transport-native-unix-common + 4.1.72.Final + osx-aarch_64 + + + io.netty + netty-transport-classes-epoll + 4.1.72.Final + + + io.netty + netty-transport-native-epoll + 4.1.72.Final + + + io.netty + netty-transport-native-epoll + 4.1.72.Final + linux-aarch_64 + + + io.netty + netty-transport-native-epoll + 4.1.72.Final + linux-x86_64 + + + io.netty + netty-transport-classes-kqueue + 4.1.72.Final + + + io.netty + netty-transport-native-kqueue + 4.1.72.Final + + + io.netty + netty-transport-native-kqueue + 4.1.72.Final + osx-x86_64 + + + io.netty + netty-transport-native-kqueue + 4.1.72.Final + osx-aarch_64 + + + io.netty + netty-tcnative-classes + 2.0.46.Final + + + io.netty + netty-tcnative + 2.0.46.Final + linux-x86_64 + + + io.netty + netty-tcnative + 2.0.46.Final + linux-x86_64-fedora + + + io.netty + netty-tcnative + 2.0.46.Final + linux-aarch_64-fedora + + + io.netty + netty-tcnative + 2.0.46.Final + osx-x86_64 + + + io.netty + netty-tcnative-boringssl-static + 2.0.46.Final + linux-x86_64 + + + io.netty + netty-tcnative-boringssl-static + 2.0.46.Final + linux-aarch_64 + + + io.netty + netty-tcnative-boringssl-static + 2.0.46.Final + osx-x86_64 + + + io.netty + netty-tcnative-boringssl-static + 2.0.46.Final + osx-aarch_64 + + + io.netty + netty-tcnative-boringssl-static + 2.0.46.Final + windows-x86_64 + + + com.oracle.database.jdbc + ojdbc11 + 21.3.0.0 + + + com.oracle.database.jdbc + ojdbc8 + 21.3.0.0 + + + com.oracle.database.jdbc + ucp + 21.3.0.0 + + + com.oracle.database.jdbc + ucp11 + 21.3.0.0 + + + com.oracle.database.jdbc + rsi + 21.3.0.0 + + + com.oracle.database.security + oraclepki + 21.3.0.0 + + + com.oracle.database.security + osdt_core + 21.3.0.0 + + + com.oracle.database.security + osdt_cert + 21.3.0.0 + + + com.oracle.database.ha + simplefan + 21.3.0.0 + + + com.oracle.database.ha + ons + 21.3.0.0 + + + com.oracle.database.nls + orai18n + 21.3.0.0 + + + com.oracle.database.xml + xdb + 21.3.0.0 + + + com.oracle.database.xml + xmlparserv2 + 21.3.0.0 + + + com.oracle.database.jdbc.debug + ojdbc11_g + 21.3.0.0 + + + com.oracle.database.jdbc.debug + ojdbc8_g + 21.3.0.0 + + + com.oracle.database.jdbc.debug + ojdbc8dms_g + 21.3.0.0 + + + com.oracle.database.jdbc.debug + ojdbc11dms_g + 21.3.0.0 + + + com.oracle.database.observability + dms + 21.3.0.0 + + + com.oracle.database.observability + ojdbc11dms + 21.3.0.0 + + + com.oracle.database.observability + ojdbc8dms + 21.3.0.0 + + + com.oracle.database.jdbc + ojdbc11-production + 21.3.0.0 + pom + + + com.oracle.database.jdbc + ojdbc8-production + 21.3.0.0 + pom + + + com.oracle.database.observability + ojdbc8-observability + 21.3.0.0 + pom + + + com.oracle.database.observability + ojdbc11-observability + 21.3.0.0 + pom + + + com.oracle.database.jdbc.debug + ojdbc8-debug + 21.3.0.0 + pom + + + com.oracle.database.jdbc.debug + ojdbc11-debug + 21.3.0.0 + pom + + + com.oracle.database.jdbc.debug + ojdbc8-observability-debug + 21.3.0.0 + pom + + + com.oracle.database.jdbc.debug + ojdbc11-observability-debug + 21.3.0.0 + pom + + + io.prometheus + simpleclient + 0.12.0 + + + io.prometheus + simpleclient_caffeine + 0.12.0 + + + io.prometheus + simpleclient_common + 0.12.0 + + + io.prometheus + simpleclient_dropwizard + 0.12.0 + + + io.prometheus + simpleclient_graphite_bridge + 0.12.0 + + + io.prometheus + simpleclient_guava + 0.12.0 + + + io.prometheus + simpleclient_hibernate + 0.12.0 + + + io.prometheus + simpleclient_hotspot + 0.12.0 + + + io.prometheus + simpleclient_httpserver + 0.12.0 + + + io.prometheus + simpleclient_jetty + 0.12.0 + + + io.prometheus + simpleclient_jetty_jdk8 + 0.12.0 + + + io.prometheus + simpleclient_log4j + 0.12.0 + + + io.prometheus + simpleclient_log4j2 + 0.12.0 + + + io.prometheus + simpleclient_logback + 0.12.0 + + + io.prometheus + simpleclient_pushgateway + 0.12.0 + + + io.prometheus + simpleclient_servlet + 0.12.0 + + + io.prometheus + simpleclient_servlet_jakarta + 0.12.0 + + + io.prometheus + simpleclient_spring_boot + 0.12.0 + + + io.prometheus + simpleclient_spring_web + 0.12.0 + + + io.prometheus + simpleclient_tracer_otel + 0.12.0 + + + io.prometheus + simpleclient_tracer_otel_agent + 0.12.0 + + + io.prometheus + simpleclient_vertx + 0.12.0 + + + com.querydsl + querydsl-core + 5.0.0 + + + com.querydsl + querydsl-codegen + 5.0.0 + + + com.querydsl + querydsl-codegen-utils + 5.0.0 + + + com.querydsl + querydsl-spatial + 5.0.0 + + + com.querydsl + querydsl-apt + 5.0.0 + + + com.querydsl + querydsl-collections + 5.0.0 + + + com.querydsl + querydsl-guava + 5.0.0 + + + com.querydsl + querydsl-sql + 5.0.0 + + + com.querydsl + querydsl-sql-spatial + 5.0.0 + + + com.querydsl + querydsl-sql-codegen + 5.0.0 + + + com.querydsl + querydsl-sql-spring + 5.0.0 + + + com.querydsl + querydsl-jpa + 5.0.0 + + + com.querydsl + querydsl-jpa-codegen + 5.0.0 + + + com.querydsl + querydsl-jdo + 5.0.0 + + + com.querydsl + querydsl-kotlin-codegen + 5.0.0 + + + com.querydsl + querydsl-lucene3 + 5.0.0 + + + com.querydsl + querydsl-lucene4 + 5.0.0 + + + com.querydsl + querydsl-lucene5 + 5.0.0 + + + com.querydsl + querydsl-hibernate-search + 5.0.0 + + + com.querydsl + querydsl-mongodb + 5.0.0 + + + com.querydsl + querydsl-scala + 5.0.0 + + + com.querydsl + querydsl-kotlin + 5.0.0 + + + com.google.cloud + cloud-spanner-r2dbc + 0.6.0 + + + com.oracle.database.r2dbc + oracle-r2dbc + 0.1.0 + + + io.r2dbc + r2dbc-h2 + 0.8.4.RELEASE + + + org.mariadb + r2dbc-mariadb + 1.0.2 + + + io.r2dbc + r2dbc-mssql + 0.8.7.RELEASE + + + dev.miku + r2dbc-mysql + 0.8.2.RELEASE + + + io.r2dbc + r2dbc-postgresql + 0.8.10.RELEASE + + + io.r2dbc + r2dbc-pool + 0.8.7.RELEASE + + + io.r2dbc + r2dbc-proxy + 0.8.8.RELEASE + + + io.r2dbc + r2dbc-spi + 0.8.6.RELEASE + + + io.projectreactor + reactor-core + 3.4.13 + + + io.projectreactor + reactor-test + 3.4.13 + + + io.projectreactor + reactor-tools + 3.4.13 + + + io.projectreactor.addons + reactor-extra + 3.4.6 + + + io.projectreactor.addons + reactor-adapter + 3.4.6 + + + io.projectreactor.netty + reactor-netty + 1.0.14 + + + io.projectreactor.netty + reactor-netty-core + 1.0.14 + + + io.projectreactor.netty + reactor-netty-http + 1.0.14 + + + io.projectreactor.netty + reactor-netty-http-brave + 1.0.14 + + + io.projectreactor.addons + reactor-pool + 0.2.7 + + + io.projectreactor.kafka + reactor-kafka + 1.3.8 + + + io.projectreactor.rabbitmq + reactor-rabbitmq + 1.5.4 + + + io.projectreactor.kotlin + reactor-kotlin-extensions + 1.1.5 + + + io.rsocket + rsocket-core + 1.1.1 + + + io.rsocket + rsocket-load-balancer + 1.1.1 + + + io.rsocket + rsocket-micrometer + 1.1.1 + + + io.rsocket + rsocket-test + 1.1.1 + + + io.rsocket + rsocket-transport-local + 1.1.1 + + + io.rsocket + rsocket-transport-netty + 1.1.1 + + + org.springframework.data + spring-data-cassandra + 3.3.0 + + + org.springframework.data + spring-data-commons + 2.6.0 + + + org.springframework.data + spring-data-couchbase + 4.3.0 + + + org.springframework.data + spring-data-elasticsearch + 4.3.0 + + + org.springframework.data + spring-data-geode + 2.6.0 + + + org.springframework.data + spring-data-jdbc + 2.3.0 + + + org.springframework.data + spring-data-relational + 2.3.0 + + + org.springframework.data + spring-data-jpa + 2.6.0 + + + org.springframework.data + spring-data-mongodb + 3.3.0 + + + org.springframework.data + spring-data-neo4j + 6.2.0 + + + org.springframework.data + spring-data-r2dbc + 1.4.0 + + + org.springframework.data + spring-data-redis + 2.6.0 + + + org.springframework.data + spring-data-rest-webmvc + 3.6.0 + + + org.springframework.data + spring-data-rest-core + 3.6.0 + + + org.springframework.data + spring-data-rest-hal-explorer + 3.6.0 + + + org.springframework.data + spring-data-keyvalue + 2.6.0 + + + org.springframework.data + spring-data-envers + 2.6.0 + + + org.springframework.data + spring-data-ldap + 2.6.0 + + + org.springframework + spring-aop + 5.3.14 + + + org.springframework + spring-aspects + 5.3.14 + + + org.springframework + spring-beans + 5.3.14 + + + org.springframework + spring-context + 5.3.14 + + + org.springframework + spring-context-indexer + 5.3.14 + + + org.springframework + spring-context-support + 5.3.14 + + + org.springframework + spring-core + 5.3.14 + + + org.springframework + spring-expression + 5.3.14 + + + org.springframework + spring-instrument + 5.3.14 + + + org.springframework + spring-jcl + 5.3.14 + + + org.springframework + spring-jdbc + 5.3.14 + + + org.springframework + spring-jms + 5.3.14 + + + org.springframework + spring-messaging + 5.3.14 + + + org.springframework + spring-orm + 5.3.14 + + + org.springframework + spring-oxm + 5.3.14 + + + org.springframework + spring-r2dbc + 5.3.14 + + + org.springframework + spring-test + 5.3.14 + + + org.springframework + spring-tx + 5.3.14 + + + org.springframework + spring-web + 5.3.14 + + + org.springframework + spring-webflux + 5.3.14 + + + org.springframework + spring-webmvc + 5.3.14 + + + org.springframework + spring-websocket + 5.3.14 + + + org.springframework.integration + spring-integration-amqp + 5.5.7 + + + org.springframework.integration + spring-integration-core + 5.5.7 + + + org.springframework.integration + spring-integration-event + 5.5.7 + + + org.springframework.integration + spring-integration-feed + 5.5.7 + + + org.springframework.integration + spring-integration-file + 5.5.7 + + + org.springframework.integration + spring-integration-ftp + 5.5.7 + + + org.springframework.integration + spring-integration-gemfire + 5.5.7 + + + org.springframework.integration + spring-integration-groovy + 5.5.7 + + + org.springframework.integration + spring-integration-http + 5.5.7 + + + org.springframework.integration + spring-integration-ip + 5.5.7 + + + org.springframework.integration + spring-integration-jdbc + 5.5.7 + + + org.springframework.integration + spring-integration-jms + 5.5.7 + + + org.springframework.integration + spring-integration-jmx + 5.5.7 + + + org.springframework.integration + spring-integration-jpa + 5.5.7 + + + org.springframework.integration + spring-integration-kafka + 5.5.7 + + + org.springframework.integration + spring-integration-mail + 5.5.7 + + + org.springframework.integration + spring-integration-mongodb + 5.5.7 + + + org.springframework.integration + spring-integration-mqtt + 5.5.7 + + + org.springframework.integration + spring-integration-r2dbc + 5.5.7 + + + org.springframework.integration + spring-integration-redis + 5.5.7 + + + org.springframework.integration + spring-integration-rmi + 5.5.7 + + + org.springframework.integration + spring-integration-rsocket + 5.5.7 + + + org.springframework.integration + spring-integration-scripting + 5.5.7 + + + org.springframework.integration + spring-integration-security + 5.5.7 + + + org.springframework.integration + spring-integration-sftp + 5.5.7 + + + org.springframework.integration + spring-integration-stomp + 5.5.7 + + + org.springframework.integration + spring-integration-stream + 5.5.7 + + + org.springframework.integration + spring-integration-syslog + 5.5.7 + + + org.springframework.integration + spring-integration-test + 5.5.7 + + + org.springframework.integration + spring-integration-test-support + 5.5.7 + + + org.springframework.integration + spring-integration-webflux + 5.5.7 + + + org.springframework.integration + spring-integration-websocket + 5.5.7 + + + org.springframework.integration + spring-integration-ws + 5.5.7 + + + org.springframework.integration + spring-integration-xml + 5.5.7 + + + org.springframework.integration + spring-integration-xmpp + 5.5.7 + + + org.springframework.integration + spring-integration-zeromq + 5.5.7 + + + org.springframework.integration + spring-integration-zookeeper + 5.5.7 + + + org.springframework.security + spring-security-acl + 5.6.1 + + + org.springframework.security + spring-security-aspects + 5.6.1 + + + org.springframework.security + spring-security-cas + 5.6.1 + + + org.springframework.security + spring-security-config + 5.6.1 + + + org.springframework.security + spring-security-core + 5.6.1 + + + org.springframework.security + spring-security-crypto + 5.6.1 + + + org.springframework.security + spring-security-data + 5.6.1 + + + org.springframework.security + spring-security-ldap + 5.6.1 + + + org.springframework.security + spring-security-messaging + 5.6.1 + + + org.springframework.security + spring-security-oauth2-client + 5.6.1 + + + org.springframework.security + spring-security-oauth2-core + 5.6.1 + + + org.springframework.security + spring-security-oauth2-jose + 5.6.1 + + + org.springframework.security + spring-security-oauth2-resource-server + 5.6.1 + + + org.springframework.security + spring-security-openid + 5.6.1 + + + org.springframework.security + spring-security-remoting + 5.6.1 + + + org.springframework.security + spring-security-rsocket + 5.6.1 + + + org.springframework.security + spring-security-saml2-service-provider + 5.6.1 + + + org.springframework.security + spring-security-taglibs + 5.6.1 + + + org.springframework.security + spring-security-test + 5.6.1 + + + org.springframework.security + spring-security-web + 5.6.1 + + + org.springframework.session + spring-session-jdbc + 2.6.1 + + + org.springframework.session + spring-session-data-geode + 2.6.0 + + + org.springframework.session + spring-session-hazelcast + 2.6.1 + + + org.springframework.session + spring-session-data-mongodb + 2.6.1 + + + org.springframework.session + spring-session-core + 2.6.1 + + + org.springframework.session + spring-session-data-redis + 2.6.1 + + + + + + org.springframework.boot + spring-boot-starter + 2.6.2 + provided + + + org.springframework.boot + spring-boot-starter-web + 2.6.2 + provided + + + com.alibaba + fastjson + 1.2.83 + compile + + + org.springframework.boot + spring-boot-starter-test + 2.6.2 + test + + + cn.dev33 + sa-token-spring-boot-starter + 1.31.0 + compile + + + + + + false + + central + Central Repository + https://repo.maven.apache.org/maven2 + + + + + + never + + + false + + central + Central Repository + https://repo.maven.apache.org/maven2 + + + + /Users/mima0000/NL_Pro/SDK 09.35.26/sdk/language/src/main/java + /Users/mima0000/NL_Pro/SDK 09.35.26/sdk/language/src/main/scripts + /Users/mima0000/NL_Pro/SDK 09.35.26/sdk/language/src/test/java + /Users/mima0000/NL_Pro/SDK 09.35.26/sdk/language/target/classes + /Users/mima0000/NL_Pro/SDK 09.35.26/sdk/language/target/test-classes + + + true + /Users/mima0000/NL_Pro/SDK 09.35.26/sdk/language/src/main/resources + + **/* + + + + + + /Users/mima0000/NL_Pro/SDK 09.35.26/sdk/language/src/test/resources + + + /Users/mima0000/NL_Pro/SDK 09.35.26/sdk/language/target + language-all-0.0.1-SNAPSHOT + + + + org.codehaus.mojo + build-helper-maven-plugin + 3.2.0 + + + org.flywaydb + flyway-maven-plugin + 8.0.5 + + + pl.project13.maven + git-commit-id-plugin + 4.9.10 + + + + revision + + + true + yyyy-MM-dd'T'HH:mm:ssZ + true + /Users/mima0000/NL_Pro/SDK 09.35.26/sdk/language/target/classes/git.properties + + + + + true + yyyy-MM-dd'T'HH:mm:ssZ + true + /Users/mima0000/NL_Pro/SDK 09.35.26/sdk/language/target/classes/git.properties + + + + org.apache.johnzon + johnzon-maven-plugin + 1.2.15 + + + org.jooq + jooq-codegen-maven + 3.14.15 + + + org.jetbrains.kotlin + kotlin-maven-plugin + 1.6.10 + + + compile + compile + + compile + + + 8 + true + + + + test-compile + test-compile + + test-compile + + + 8 + true + + + + + 8 + true + + + + org.liquibase + liquibase-maven-plugin + 4.5.0 + + + maven-antrun-plugin + 3.0.0 + + + maven-assembly-plugin + 3.3.0 + + + maven-clean-plugin + 3.1.0 + + + maven-compiler-plugin + 3.8.1 + + true + + + + maven-dependency-plugin + 3.2.0 + + + maven-release-plugin + 2.5.3 + + + maven-deploy-plugin + 2.8.2 + + + maven-enforcer-plugin + 3.0.0 + + + maven-failsafe-plugin + 2.22.2 + + + + integration-test + verify + + + /Users/mima0000/NL_Pro/SDK 09.35.26/sdk/language/target/classes + + + + + /Users/mima0000/NL_Pro/SDK 09.35.26/sdk/language/target/classes + + + + maven-help-plugin + 3.2.0 + + + maven-install-plugin + 2.5.2 + + + maven-invoker-plugin + 3.2.2 + + + maven-jar-plugin + 3.2.0 + + + + ${start-class} + true + + + + + + maven-javadoc-plugin + 3.3.1 + + + maven-resources-plugin + 3.2.0 + + UTF-8 + + @ + + false + + + + maven-shade-plugin + 3.2.4 + + + package + + shade + + + + + META-INF/spring.handlers + + + META-INF/spring.factories + + + META-INF/spring.schemas + + + + ${start-class} + + + true + true + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.6.2 + + + + true + true + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + + + maven-source-plugin + 3.2.1 + + + maven-surefire-plugin + 2.22.2 + + + maven-war-plugin + 3.3.2 + + + + ${start-class} + true + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.6.2 + + + repackage + + repackage + + + ${start-class} + + + + + ${start-class} + + + + org.codehaus.mojo + versions-maven-plugin + 2.8.1 + + + org.codehaus.mojo + xml-maven-plugin + 1.0.2 + + + + + + maven-compiler-plugin + 3.11.0 + + + default-compile + compile + + compile + + + 8 + 8 + UTF-8 + true + + + + default-testCompile + test-compile + + testCompile + + + 8 + 8 + UTF-8 + true + + + + + 8 + 8 + UTF-8 + true + + + + maven-jar-plugin + 3.2.0 + + + default-jar + package + + jar + + + + org/nl/** + application.properties + language.i18n + **/*.i18n + + + + ${start-class} + true + + + + + + + + org/nl/** + application.properties + language.i18n + **/*.i18n + + + + ${start-class} + true + + + + + + maven-clean-plugin + 3.1.0 + + + default-clean + clean + + clean + + + + + + maven-resources-plugin + 3.2.0 + + + default-testResources + process-test-resources + + testResources + + + UTF-8 + + @ + + false + + + + default-resources + process-resources + + resources + + + UTF-8 + + @ + + false + + + + + UTF-8 + + @ + + false + + + + maven-surefire-plugin + 2.22.2 + + + default-test + test + + test + + + + + + maven-install-plugin + 2.5.2 + + + default-install + install + + install + + + + + + maven-deploy-plugin + 2.8.2 + + + default-deploy + deploy + + deploy + + + + + + maven-site-plugin + 3.3 + + + default-site + site + + site + + + /Users/mima0000/NL_Pro/SDK 09.35.26/sdk/language/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + default-deploy + site-deploy + + deploy + + + /Users/mima0000/NL_Pro/SDK 09.35.26/sdk/language/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + + /Users/mima0000/NL_Pro/SDK 09.35.26/sdk/language/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + + + + + + + /Users/mima0000/NL_Pro/SDK 09.35.26/sdk/language/target/site + + + + +[INFO] ------------------------------------------------------------------------ +[INFO] BUILD SUCCESS +[INFO] ------------------------------------------------------------------------ +[INFO] Total time: 2.605 s +[INFO] Finished at: 2025-10-28T16:40:21+08:00 +[INFO] ------------------------------------------------------------------------ diff --git a/language/mvnw b/language/mvnw new file mode 100755 index 0000000..bd8896b --- /dev/null +++ b/language/mvnw @@ -0,0 +1,295 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Apache Maven Wrapper startup batch script, version 3.3.4 +# +# Optional ENV vars +# ----------------- +# JAVA_HOME - location of a JDK home dir, required when download maven via java source +# MVNW_REPOURL - repo url base for downloading maven distribution +# MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven +# MVNW_VERBOSE - true: enable verbose log; debug: trace the mvnw script; others: silence the output +# ---------------------------------------------------------------------------- + +set -euf +[ "${MVNW_VERBOSE-}" != debug ] || set -x + +# OS specific support. +native_path() { printf %s\\n "$1"; } +case "$(uname)" in +CYGWIN* | MINGW*) + [ -z "${JAVA_HOME-}" ] || JAVA_HOME="$(cygpath --unix "$JAVA_HOME")" + native_path() { cygpath --path --windows "$1"; } + ;; +esac + +# set JAVACMD and JAVACCMD +set_java_home() { + # For Cygwin and MinGW, ensure paths are in Unix format before anything is touched + if [ -n "${JAVA_HOME-}" ]; then + if [ -x "$JAVA_HOME/jre/sh/java" ]; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACCMD="$JAVA_HOME/jre/sh/javac" + else + JAVACMD="$JAVA_HOME/bin/java" + JAVACCMD="$JAVA_HOME/bin/javac" + + if [ ! -x "$JAVACMD" ] || [ ! -x "$JAVACCMD" ]; then + echo "The JAVA_HOME environment variable is not defined correctly, so mvnw cannot run." >&2 + echo "JAVA_HOME is set to \"$JAVA_HOME\", but \"\$JAVA_HOME/bin/java\" or \"\$JAVA_HOME/bin/javac\" does not exist." >&2 + return 1 + fi + fi + else + JAVACMD="$( + 'set' +e + 'unset' -f command 2>/dev/null + 'command' -v java + )" || : + JAVACCMD="$( + 'set' +e + 'unset' -f command 2>/dev/null + 'command' -v javac + )" || : + + if [ ! -x "${JAVACMD-}" ] || [ ! -x "${JAVACCMD-}" ]; then + echo "The java/javac command does not exist in PATH nor is JAVA_HOME set, so mvnw cannot run." >&2 + return 1 + fi + fi +} + +# hash string like Java String::hashCode +hash_string() { + str="${1:-}" h=0 + while [ -n "$str" ]; do + char="${str%"${str#?}"}" + h=$(((h * 31 + $(LC_CTYPE=C printf %d "'$char")) % 4294967296)) + str="${str#?}" + done + printf %x\\n $h +} + +verbose() { :; } +[ "${MVNW_VERBOSE-}" != true ] || verbose() { printf %s\\n "${1-}"; } + +die() { + printf %s\\n "$1" >&2 + exit 1 +} + +trim() { + # MWRAPPER-139: + # Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds. + # Needed for removing poorly interpreted newline sequences when running in more + # exotic environments such as mingw bash on Windows. + printf "%s" "${1}" | tr -d '[:space:]' +} + +scriptDir="$(dirname "$0")" +scriptName="$(basename "$0")" + +# parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties +while IFS="=" read -r key value; do + case "${key-}" in + distributionUrl) distributionUrl=$(trim "${value-}") ;; + distributionSha256Sum) distributionSha256Sum=$(trim "${value-}") ;; + esac +done <"$scriptDir/.mvn/wrapper/maven-wrapper.properties" +[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" + +case "${distributionUrl##*/}" in +maven-mvnd-*bin.*) + MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ + case "${PROCESSOR_ARCHITECTURE-}${PROCESSOR_ARCHITEW6432-}:$(uname -a)" in + *AMD64:CYGWIN* | *AMD64:MINGW*) distributionPlatform=windows-amd64 ;; + :Darwin*x86_64) distributionPlatform=darwin-amd64 ;; + :Darwin*arm64) distributionPlatform=darwin-aarch64 ;; + :Linux*x86_64*) distributionPlatform=linux-amd64 ;; + *) + echo "Cannot detect native platform for mvnd on $(uname)-$(uname -m), use pure java version" >&2 + distributionPlatform=linux-amd64 + ;; + esac + distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip" + ;; +maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;; +*) MVN_CMD="mvn${scriptName#mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;; +esac + +# apply MVNW_REPOURL and calculate MAVEN_HOME +# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ +[ -z "${MVNW_REPOURL-}" ] || distributionUrl="$MVNW_REPOURL$_MVNW_REPO_PATTERN${distributionUrl#*"$_MVNW_REPO_PATTERN"}" +distributionUrlName="${distributionUrl##*/}" +distributionUrlNameMain="${distributionUrlName%.*}" +distributionUrlNameMain="${distributionUrlNameMain%-bin}" +MAVEN_USER_HOME="${MAVEN_USER_HOME:-${HOME}/.m2}" +MAVEN_HOME="${MAVEN_USER_HOME}/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")" + +exec_maven() { + unset MVNW_VERBOSE MVNW_USERNAME MVNW_PASSWORD MVNW_REPOURL || : + exec "$MAVEN_HOME/bin/$MVN_CMD" "$@" || die "cannot exec $MAVEN_HOME/bin/$MVN_CMD" +} + +if [ -d "$MAVEN_HOME" ]; then + verbose "found existing MAVEN_HOME at $MAVEN_HOME" + exec_maven "$@" +fi + +case "${distributionUrl-}" in +*?-bin.zip | *?maven-mvnd-?*-?*.zip) ;; +*) die "distributionUrl is not valid, must match *-bin.zip or maven-mvnd-*.zip, but found '${distributionUrl-}'" ;; +esac + +# prepare tmp dir +if TMP_DOWNLOAD_DIR="$(mktemp -d)" && [ -d "$TMP_DOWNLOAD_DIR" ]; then + clean() { rm -rf -- "$TMP_DOWNLOAD_DIR"; } + trap clean HUP INT TERM EXIT +else + die "cannot create temp dir" +fi + +mkdir -p -- "${MAVEN_HOME%/*}" + +# Download and Install Apache Maven +verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." +verbose "Downloading from: $distributionUrl" +verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" + +# select .zip or .tar.gz +if ! command -v unzip >/dev/null; then + distributionUrl="${distributionUrl%.zip}.tar.gz" + distributionUrlName="${distributionUrl##*/}" +fi + +# verbose opt +__MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR='' +[ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v + +# normalize http auth +case "${MVNW_PASSWORD:+has-password}" in +'') MVNW_USERNAME='' MVNW_PASSWORD='' ;; +has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;; +esac + +if [ -z "${MVNW_USERNAME-}" ] && command -v wget >/dev/null; then + verbose "Found wget ... using wget" + wget ${__MVNW_QUIET_WGET:+"$__MVNW_QUIET_WGET"} "$distributionUrl" -O "$TMP_DOWNLOAD_DIR/$distributionUrlName" || die "wget: Failed to fetch $distributionUrl" +elif [ -z "${MVNW_USERNAME-}" ] && command -v curl >/dev/null; then + verbose "Found curl ... using curl" + curl ${__MVNW_QUIET_CURL:+"$__MVNW_QUIET_CURL"} -f -L -o "$TMP_DOWNLOAD_DIR/$distributionUrlName" "$distributionUrl" || die "curl: Failed to fetch $distributionUrl" +elif set_java_home; then + verbose "Falling back to use Java to download" + javaSource="$TMP_DOWNLOAD_DIR/Downloader.java" + targetZip="$TMP_DOWNLOAD_DIR/$distributionUrlName" + cat >"$javaSource" <<-END + public class Downloader extends java.net.Authenticator + { + protected java.net.PasswordAuthentication getPasswordAuthentication() + { + return new java.net.PasswordAuthentication( System.getenv( "MVNW_USERNAME" ), System.getenv( "MVNW_PASSWORD" ).toCharArray() ); + } + public static void main( String[] args ) throws Exception + { + setDefault( new Downloader() ); + java.nio.file.Files.copy( java.net.URI.create( args[0] ).toURL().openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() ); + } + } + END + # For Cygwin/MinGW, switch paths to Windows format before running javac and java + verbose " - Compiling Downloader.java ..." + "$(native_path "$JAVACCMD")" "$(native_path "$javaSource")" || die "Failed to compile Downloader.java" + verbose " - Running Downloader.java ..." + "$(native_path "$JAVACMD")" -cp "$(native_path "$TMP_DOWNLOAD_DIR")" Downloader "$distributionUrl" "$(native_path "$targetZip")" +fi + +# If specified, validate the SHA-256 sum of the Maven distribution zip file +if [ -n "${distributionSha256Sum-}" ]; then + distributionSha256Result=false + if [ "$MVN_CMD" = mvnd.sh ]; then + echo "Checksum validation is not supported for maven-mvnd." >&2 + echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 + exit 1 + elif command -v sha256sum >/dev/null; then + if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c - >/dev/null 2>&1; then + distributionSha256Result=true + fi + elif command -v shasum >/dev/null; then + if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | shasum -a 256 -c >/dev/null 2>&1; then + distributionSha256Result=true + fi + else + echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2 + echo "Please install either command, or disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 + exit 1 + fi + if [ $distributionSha256Result = false ]; then + echo "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised." >&2 + echo "If you updated your Maven version, you need to update the specified distributionSha256Sum property." >&2 + exit 1 + fi +fi + +# unzip and move +if command -v unzip >/dev/null; then + unzip ${__MVNW_QUIET_UNZIP:+"$__MVNW_QUIET_UNZIP"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -d "$TMP_DOWNLOAD_DIR" || die "failed to unzip" +else + tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar" +fi + +# Find the actual extracted directory name (handles snapshots where filename != directory name) +actualDistributionDir="" + +# First try the expected directory name (for regular distributions) +if [ -d "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" ]; then + if [ -f "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/bin/$MVN_CMD" ]; then + actualDistributionDir="$distributionUrlNameMain" + fi +fi + +# If not found, search for any directory with the Maven executable (for snapshots) +if [ -z "$actualDistributionDir" ]; then + # enable globbing to iterate over items + set +f + for dir in "$TMP_DOWNLOAD_DIR"/*; do + if [ -d "$dir" ]; then + if [ -f "$dir/bin/$MVN_CMD" ]; then + actualDistributionDir="$(basename "$dir")" + break + fi + fi + done + set -f +fi + +if [ -z "$actualDistributionDir" ]; then + verbose "Contents of $TMP_DOWNLOAD_DIR:" + verbose "$(ls -la "$TMP_DOWNLOAD_DIR")" + die "Could not find Maven distribution directory in extracted archive" +fi + +verbose "Found extracted Maven distribution directory: $actualDistributionDir" +printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$actualDistributionDir/mvnw.url" +mv -- "$TMP_DOWNLOAD_DIR/$actualDistributionDir" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME" + +clean || : +exec_maven "$@" diff --git a/language/mvnw.cmd b/language/mvnw.cmd new file mode 100644 index 0000000..92450f9 --- /dev/null +++ b/language/mvnw.cmd @@ -0,0 +1,189 @@ +<# : batch portion +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Apache Maven Wrapper startup batch script, version 3.3.4 +@REM +@REM Optional ENV vars +@REM MVNW_REPOURL - repo url base for downloading maven distribution +@REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven +@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output +@REM ---------------------------------------------------------------------------- + +@IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0) +@SET __MVNW_CMD__= +@SET __MVNW_ERROR__= +@SET __MVNW_PSMODULEP_SAVE=%PSModulePath% +@SET PSModulePath= +@FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @( + IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B) +) +@SET PSModulePath=%__MVNW_PSMODULEP_SAVE% +@SET __MVNW_PSMODULEP_SAVE= +@SET __MVNW_ARG0_NAME__= +@SET MVNW_USERNAME= +@SET MVNW_PASSWORD= +@IF NOT "%__MVNW_CMD__%"=="" ("%__MVNW_CMD__%" %*) +@echo Cannot start maven from wrapper >&2 && exit /b 1 +@GOTO :EOF +: end batch / begin powershell #> + +$ErrorActionPreference = "Stop" +if ($env:MVNW_VERBOSE -eq "true") { + $VerbosePreference = "Continue" +} + +# calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties +$distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl +if (!$distributionUrl) { + Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" +} + +switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) { + "maven-mvnd-*" { + $USE_MVND = $true + $distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip" + $MVN_CMD = "mvnd.cmd" + break + } + default { + $USE_MVND = $false + $MVN_CMD = $script -replace '^mvnw','mvn' + break + } +} + +# apply MVNW_REPOURL and calculate MAVEN_HOME +# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ +if ($env:MVNW_REPOURL) { + $MVNW_REPO_PATTERN = if ($USE_MVND -eq $False) { "/org/apache/maven/" } else { "/maven/mvnd/" } + $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace "^.*$MVNW_REPO_PATTERN",'')" +} +$distributionUrlName = $distributionUrl -replace '^.*/','' +$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$','' + +$MAVEN_M2_PATH = "$HOME/.m2" +if ($env:MAVEN_USER_HOME) { + $MAVEN_M2_PATH = "$env:MAVEN_USER_HOME" +} + +if (-not (Test-Path -Path $MAVEN_M2_PATH)) { + New-Item -Path $MAVEN_M2_PATH -ItemType Directory | Out-Null +} + +$MAVEN_WRAPPER_DISTS = $null +if ((Get-Item $MAVEN_M2_PATH).Target[0] -eq $null) { + $MAVEN_WRAPPER_DISTS = "$MAVEN_M2_PATH/wrapper/dists" +} else { + $MAVEN_WRAPPER_DISTS = (Get-Item $MAVEN_M2_PATH).Target[0] + "/wrapper/dists" +} + +$MAVEN_HOME_PARENT = "$MAVEN_WRAPPER_DISTS/$distributionUrlNameMain" +$MAVEN_HOME_NAME = ([System.Security.Cryptography.SHA256]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join '' +$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME" + +if (Test-Path -Path "$MAVEN_HOME" -PathType Container) { + Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME" + Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" + exit $? +} + +if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) { + Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl" +} + +# prepare tmp dir +$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile +$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir" +$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null +trap { + if ($TMP_DOWNLOAD_DIR.Exists) { + try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } + catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } + } +} + +New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null + +# Download and Install Apache Maven +Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." +Write-Verbose "Downloading from: $distributionUrl" +Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" + +$webclient = New-Object System.Net.WebClient +if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) { + $webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD) +} +[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 +$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null + +# If specified, validate the SHA-256 sum of the Maven distribution zip file +$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum +if ($distributionSha256Sum) { + if ($USE_MVND) { + Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." + } + Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash + if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) { + Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property." + } +} + +# unzip and move +Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null + +# Find the actual extracted directory name (handles snapshots where filename != directory name) +$actualDistributionDir = "" + +# First try the expected directory name (for regular distributions) +$expectedPath = Join-Path "$TMP_DOWNLOAD_DIR" "$distributionUrlNameMain" +$expectedMvnPath = Join-Path "$expectedPath" "bin/$MVN_CMD" +if ((Test-Path -Path $expectedPath -PathType Container) -and (Test-Path -Path $expectedMvnPath -PathType Leaf)) { + $actualDistributionDir = $distributionUrlNameMain +} + +# If not found, search for any directory with the Maven executable (for snapshots) +if (!$actualDistributionDir) { + Get-ChildItem -Path "$TMP_DOWNLOAD_DIR" -Directory | ForEach-Object { + $testPath = Join-Path $_.FullName "bin/$MVN_CMD" + if (Test-Path -Path $testPath -PathType Leaf) { + $actualDistributionDir = $_.Name + } + } +} + +if (!$actualDistributionDir) { + Write-Error "Could not find Maven distribution directory in extracted archive" +} + +Write-Verbose "Found extracted Maven distribution directory: $actualDistributionDir" +Rename-Item -Path "$TMP_DOWNLOAD_DIR/$actualDistributionDir" -NewName $MAVEN_HOME_NAME | Out-Null +try { + Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null +} catch { + if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) { + Write-Error "fail to move MAVEN_HOME" + } +} finally { + try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } + catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } +} + +Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" diff --git a/language/pom.xml b/language/pom.xml new file mode 100644 index 0000000..d542bf0 --- /dev/null +++ b/language/pom.xml @@ -0,0 +1,96 @@ + + + 4.0.0 + + nl.sdk + sdk-all + 0.0.1-SNAPSHOT + + nl.sdk + language + 0.0.1-SNAPSHOT + language + language SDK + jar + + + 8 + 8 + 8 + 1.2.83 + + + + + + org.springframework.boot + spring-boot-starter + provided + + + org.springframework.boot + spring-boot-starter-web + provided + + + + + com.alibaba + fastjson + ${fastjson.version} + compile + + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + true + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.11.0 + + ${java.version} + ${java.version} + UTF-8 + + + + org.apache.maven.plugins + maven-jar-plugin + + + org/nl/** + application.properties + language.i18n + **/*.i18n + + + + + + + + src/main/resources + + **/* + + true + + + + diff --git a/language/src/main/java/org/nl/LanguageApplication.java b/language/src/main/java/org/nl/LanguageApplication.java new file mode 100644 index 0000000..5488915 --- /dev/null +++ b/language/src/main/java/org/nl/LanguageApplication.java @@ -0,0 +1,11 @@ +package org.nl; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class LanguageApplication { + public static void main(String[] args) { + SpringApplication.run(LanguageApplication.class, args); + } +} diff --git a/language/src/main/java/org/nl/common/BadLanguageException.java b/language/src/main/java/org/nl/common/BadLanguageException.java new file mode 100644 index 0000000..ca1c483 --- /dev/null +++ b/language/src/main/java/org/nl/common/BadLanguageException.java @@ -0,0 +1,47 @@ +/* + * Copyright 2019-2020 Zheng Jie + * + * 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 org.nl.common; + +import org.springframework.http.HttpStatus; + +import static org.springframework.http.HttpStatus.BAD_REQUEST; + +/** + * @author Zheng Jie + * @date 2018-11-23 + * 统一异常处理 + */ +public class BadLanguageException extends RuntimeException{ + + private Integer status = BAD_REQUEST.value(); + + public BadLanguageException(String msg){ + super(msg); + } + + public BadLanguageException(HttpStatus status, String msg){ + super(msg); + this.status = status.value(); + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } +} diff --git a/language/src/main/java/org/nl/common/DataCanvers.java b/language/src/main/java/org/nl/common/DataCanvers.java new file mode 100644 index 0000000..7acbe52 --- /dev/null +++ b/language/src/main/java/org/nl/common/DataCanvers.java @@ -0,0 +1,113 @@ +package org.nl.common; + + +import java.io.Serializable; +import java.util.List; + +/** + * 表格分页数据对象 + * + * @author Lion Li + */ + +public class DataCanvers implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 总记录数 + */ + private long totalElements; + + /** + * 列表数据 + */ + private Object content; + + /** + * 消息状态码 + */ + private String code; + + /** + * 消息内容 + */ + private String msg; + /** + * 分页 + * + * @param list 列表数据 + * @param total 总记录数 + */ + public DataCanvers(List list, long total) { + this.content = list; + this.totalElements = total; + } + + + public static DataCanvers buildList(List list) { + DataCanvers rspData = new DataCanvers<>(); + rspData.setCode(String.valueOf(HttpStatus.OK.value())); + rspData.setMsg("查询成功"); + rspData.setContent(list); + rspData.setTotalElements(list.size()); + return rspData; + } + + public static DataCanvers build() { + DataCanvers rspData = new DataCanvers<>(); + rspData.setCode(String.valueOf(HttpStatus.OK.value())); + rspData.setMsg("查询成功"); + return rspData; + } + + public static DataCanvers buildJson(Object result) { + DataCanvers rspData = new DataCanvers<>(); + rspData.setCode(String.valueOf(HttpStatus.OK.value())); + rspData.setContent(result); + rspData.setMsg("操作成功"); + return rspData; + } + + public long getTotalElements() { + return totalElements; + } + + public void setTotalElements(long totalElements) { + this.totalElements = totalElements; + } + + public Object getContent() { + return content; + } + + public void setContent(Object content) { + this.content = content; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataCanvers() { + this.totalElements = totalElements; + } + + public DataCanvers(long totalElements, Object content, String code, String msg) { + this.totalElements = totalElements; + this.content = content; + this.code = code; + this.msg = msg; + } +} diff --git a/language/src/main/java/org/nl/common/HttpStatus.java b/language/src/main/java/org/nl/common/HttpStatus.java new file mode 100644 index 0000000..99c27e9 --- /dev/null +++ b/language/src/main/java/org/nl/common/HttpStatus.java @@ -0,0 +1,139 @@ +package org.nl.common; + +public enum HttpStatus { + CONTINUE(100, org.springframework.http.HttpStatus.Series.INFORMATIONAL, "Continue"), + SWITCHING_PROTOCOLS(101, org.springframework.http.HttpStatus.Series.INFORMATIONAL, "Switching Protocols"), + PROCESSING(102, org.springframework.http.HttpStatus.Series.INFORMATIONAL, "Processing"), + CHECKPOINT(103, org.springframework.http.HttpStatus.Series.INFORMATIONAL, "Checkpoint"), + OK(200, org.springframework.http.HttpStatus.Series.SUCCESSFUL, "OK"), + CREATED(201, org.springframework.http.HttpStatus.Series.SUCCESSFUL, "Created"), + ACCEPTED(202, org.springframework.http.HttpStatus.Series.SUCCESSFUL, "Accepted"), + NON_AUTHORITATIVE_INFORMATION(203, org.springframework.http.HttpStatus.Series.SUCCESSFUL, "Non-Authoritative Information"), + NO_CONTENT(204, org.springframework.http.HttpStatus.Series.SUCCESSFUL, "No Content"), + RESET_CONTENT(205, org.springframework.http.HttpStatus.Series.SUCCESSFUL, "Reset Content"), + PARTIAL_CONTENT(206, org.springframework.http.HttpStatus.Series.SUCCESSFUL, "Partial Content"), + MULTI_STATUS(207, org.springframework.http.HttpStatus.Series.SUCCESSFUL, "Multi-Status"), + ALREADY_REPORTED(208, org.springframework.http.HttpStatus.Series.SUCCESSFUL, "Already Reported"), + IM_USED(226, org.springframework.http.HttpStatus.Series.SUCCESSFUL, "IM Used"), + MULTIPLE_CHOICES(300, org.springframework.http.HttpStatus.Series.REDIRECTION, "Multiple Choices"), + MOVED_PERMANENTLY(301, org.springframework.http.HttpStatus.Series.REDIRECTION, "Moved Permanently"), + FOUND(302, org.springframework.http.HttpStatus.Series.REDIRECTION, "Found"), + /** @deprecated */ + @Deprecated + MOVED_TEMPORARILY(302, org.springframework.http.HttpStatus.Series.REDIRECTION, "Moved Temporarily"), + SEE_OTHER(303, org.springframework.http.HttpStatus.Series.REDIRECTION, "See Other"), + NOT_MODIFIED(304, org.springframework.http.HttpStatus.Series.REDIRECTION, "Not Modified"), + /** @deprecated */ + @Deprecated + USE_PROXY(305, org.springframework.http.HttpStatus.Series.REDIRECTION, "Use Proxy"), + TEMPORARY_REDIRECT(307, org.springframework.http.HttpStatus.Series.REDIRECTION, "Temporary Redirect"), + PERMANENT_REDIRECT(308, org.springframework.http.HttpStatus.Series.REDIRECTION, "Permanent Redirect"), + BAD_REQUEST(400, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Bad Request"), + UNAUTHORIZED(401, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Unauthorized"), + PAYMENT_REQUIRED(402, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Payment Required"), + FORBIDDEN(403, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Forbidden"), + NOT_FOUND(404, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Not Found"), + METHOD_NOT_ALLOWED(405, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Method Not Allowed"), + NOT_ACCEPTABLE(406, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Not Acceptable"), + PROXY_AUTHENTICATION_REQUIRED(407, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Proxy Authentication Required"), + REQUEST_TIMEOUT(408, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Request Timeout"), + CONFLICT(409, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Conflict"), + GONE(410, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Gone"), + LENGTH_REQUIRED(411, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Length Required"), + PRECONDITION_FAILED(412, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Precondition Failed"), + PAYLOAD_TOO_LARGE(413, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Payload Too Large"), + /** @deprecated */ + @Deprecated + REQUEST_ENTITY_TOO_LARGE(413, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Request Entity Too Large"), + URI_TOO_LONG(414, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "URI Too Long"), + /** @deprecated */ + @Deprecated + REQUEST_URI_TOO_LONG(414, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Request-URI Too Long"), + UNSUPPORTED_MEDIA_TYPE(415, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Unsupported Media Type"), + REQUESTED_RANGE_NOT_SATISFIABLE(416, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Requested range not satisfiable"), + EXPECTATION_FAILED(417, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Expectation Failed"), + I_AM_A_TEAPOT(418, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "I'm a teapot"), + /** @deprecated */ + @Deprecated + INSUFFICIENT_SPACE_ON_RESOURCE(419, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Insufficient Space On Resource"), + /** @deprecated */ + @Deprecated + METHOD_FAILURE(420, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Method Failure"), + /** @deprecated */ + @Deprecated + DESTINATION_LOCKED(421, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Destination Locked"), + UNPROCESSABLE_ENTITY(422, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Unprocessable Entity"), + LOCKED(423, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Locked"), + FAILED_DEPENDENCY(424, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Failed Dependency"), + TOO_EARLY(425, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Too Early"), + UPGRADE_REQUIRED(426, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Upgrade Required"), + PRECONDITION_REQUIRED(428, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Precondition Required"), + TOO_MANY_REQUESTS(429, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Too Many Requests"), + REQUEST_HEADER_FIELDS_TOO_LARGE(431, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Request Header Fields Too Large"), + UNAVAILABLE_FOR_LEGAL_REASONS(451, org.springframework.http.HttpStatus.Series.CLIENT_ERROR, "Unavailable For Legal Reasons"), + INTERNAL_SERVER_ERROR(500, org.springframework.http.HttpStatus.Series.SERVER_ERROR, "Internal Server Error"), + NOT_IMPLEMENTED(501, org.springframework.http.HttpStatus.Series.SERVER_ERROR, "Not Implemented"), + BAD_GATEWAY(502, org.springframework.http.HttpStatus.Series.SERVER_ERROR, "Bad Gateway"), + SERVICE_UNAVAILABLE(503, org.springframework.http.HttpStatus.Series.SERVER_ERROR, "Service Unavailable"), + GATEWAY_TIMEOUT(504, org.springframework.http.HttpStatus.Series.SERVER_ERROR, "Gateway Timeout"), + HTTP_VERSION_NOT_SUPPORTED(505, org.springframework.http.HttpStatus.Series.SERVER_ERROR, "HTTP Version not supported"), + VARIANT_ALSO_NEGOTIATES(506, org.springframework.http.HttpStatus.Series.SERVER_ERROR, "Variant Also Negotiates"), + INSUFFICIENT_STORAGE(507, org.springframework.http.HttpStatus.Series.SERVER_ERROR, "Insufficient Storage"), + LOOP_DETECTED(508, org.springframework.http.HttpStatus.Series.SERVER_ERROR, "Loop Detected"), + BANDWIDTH_LIMIT_EXCEEDED(509, org.springframework.http.HttpStatus.Series.SERVER_ERROR, "Bandwidth Limit Exceeded"), + NOT_EXTENDED(510, org.springframework.http.HttpStatus.Series.SERVER_ERROR, "Not Extended"), + NETWORK_AUTHENTICATION_REQUIRED(511, org.springframework.http.HttpStatus.Series.SERVER_ERROR, "Network Authentication Required"); + + private static final HttpStatus[] VALUES = values(); + private final int value; + private final org.springframework.http.HttpStatus.Series series; + private final String reasonPhrase; + + private HttpStatus(int value, org.springframework.http.HttpStatus.Series series, String reasonPhrase) { + this.value = value; + this.series = series; + this.reasonPhrase = reasonPhrase; + } + + public int value() { + return this.value; + } + + public org.springframework.http.HttpStatus.Series series() { + return this.series; + } + + public String getReasonPhrase() { + return this.reasonPhrase; + } + + public boolean is1xxInformational() { + return this.series() == org.springframework.http.HttpStatus.Series.INFORMATIONAL; + } + + public boolean is2xxSuccessful() { + return this.series() == org.springframework.http.HttpStatus.Series.SUCCESSFUL; + } + + public boolean is3xxRedirection() { + return this.series() == org.springframework.http.HttpStatus.Series.REDIRECTION; + } + + public boolean is4xxClientError() { + return this.series() == org.springframework.http.HttpStatus.Series.CLIENT_ERROR; + } + + public boolean is5xxServerError() { + return this.series() == org.springframework.http.HttpStatus.Series.SERVER_ERROR; + } + + public boolean isError() { + return this.is4xxClientError() || this.is5xxServerError(); + } + + public String toString() { + return this.value + " " + this.name(); + } + +} + diff --git a/language/src/main/java/org/nl/language/LangBehavior.java b/language/src/main/java/org/nl/language/LangBehavior.java new file mode 100644 index 0000000..26d18ff --- /dev/null +++ b/language/src/main/java/org/nl/language/LangBehavior.java @@ -0,0 +1,36 @@ +package org.nl.language; + + +import org.nl.language.engine.I18nManagerService; +import org.springframework.util.StringUtils; + +public class LangBehavior { + public static I18nManagerService i18nManagerService; + + /** + * 不带从参数 + * @param key:common.paramException + * @return + */ + public static String language(String key) { + if(StringUtils.isEmpty(key)){ + return ""; + } + return i18nManagerService.language(key); + } + + /** + * 带参数的解析 + * @param key:common.paramException + * @param arg: 替换语言输出中的占位符:数据异常,${0}信息不存在 + * @return + */ + public static String language(String key, String...arg) { + if(StringUtils.isEmpty(key)){ + return ""; + } + String language = i18nManagerService.language(key); + String format = String.format(language, arg); + return format; + } +} diff --git a/language/src/main/java/org/nl/language/controller/langController.java b/language/src/main/java/org/nl/language/controller/langController.java new file mode 100644 index 0000000..12402f9 --- /dev/null +++ b/language/src/main/java/org/nl/language/controller/langController.java @@ -0,0 +1,123 @@ +package org.nl.language.controller; + +import cn.dev33.satoken.annotation.SaIgnore; +import com.alibaba.fastjson.JSONObject; +import com.fasterxml.jackson.core.json.UTF8JsonGenerator; +import org.nl.language.engine.I18nManagerService; +import org.nl.common.BadLanguageException; +import org.nl.common.DataCanvers; +import org.nl.language.LangBehavior; +import org.nl.language.engine.dto.LanguageDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.io.Resource; +import org.springframework.core.io.UrlResource; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +@RestController +@RequestMapping("/api/language") +public class langController { + + @Autowired + private I18nManagerService i18nManagerService; + + /** + * 查询code对应结构 + * @param languageDto + * @return + */ + @PostMapping("/structure") + @SaIgnore + public ResponseEntity query(@RequestBody LanguageDto languageDto) { + JSONObject langJs = i18nManagerService.langCache.get(languageDto.getLanguage()); + if (langJs ==null){ + throw new BadLanguageException(LangBehavior.language("system.dataExceptionArg",languageDto.getLanguage())); + } + Set> entries = langJs.entrySet(); + Map map = new HashMap<>(); + for (Map.Entry entry : entries) { + String key = entry.getKey(); + Object value = entry.getValue(); + if (value instanceof String){ + if (key.equals(languageDto.getCode())){ + map.put(key,value); + } + } + if (value instanceof JSONObject){ + keyRecursion(languageDto.getCode(),(JSONObject) value,key,map); + } + } + return new ResponseEntity<>(DataCanvers.buildJson(map), HttpStatus.OK); + } + + private void keyRecursion(String target,JSONObject langJs,String pKey,Map keyRecursion){ + Set> entries = langJs.entrySet(); + for (Map.Entry entry : entries) { + String key = entry.getKey(); + Object value = entry.getValue(); + if (value instanceof String){ + if (key.equals(target)){ + keyRecursion.put(pKey+"."+entry.getKey(),value); + } + }else if (value instanceof JSONObject){ + keyRecursion(target,(JSONObject) value,pKey+"."+entry.getKey(),keyRecursion); + } + } + } + /** + * 查询语言列表 + * @return + */ + @GetMapping("/list") + @SaIgnore + public ResponseEntity query() { + Set langs = i18nManagerService.langCache.keySet(); + Map map = new HashMap<>(); + for (String lang : langs) { + JSONObject langJs = i18nManagerService.langCache.get(lang); + String language = langJs.getString("language"); + map.put(lang,language); + } + return new ResponseEntity<>(DataCanvers.buildJson(map), HttpStatus.OK); + } + + @RequestMapping(value = "/js/{filename}") + @SaIgnore + public ResponseEntity getFile(@PathVariable String filename) { + JSONObject langJs = i18nManagerService.langCache.get(filename); + return new ResponseEntity<>(DataCanvers.buildJson(langJs), HttpStatus.OK); + +// return loadJsFile(filename); + } + + private ResponseEntity loadJsFile(String filename) { + try { + String jsPath = i18nManagerService.filePaths.get(filename); + if (StringUtils.isEmpty(jsPath)){ + return ResponseEntity.badRequest().body("文件不存在"); + } + Resource resource = i18nManagerService.getResource(jsPath); + if (resource.exists() && resource.isReadable()) { + return ResponseEntity.ok() + //text/javascript + .header(HttpHeaders.CONTENT_TYPE, "application/javascript; charset=utf-8") + .body(resource); + } else { + return ResponseEntity.badRequest().body("文件不存在"); + } + } catch (Exception e) { + return ResponseEntity.badRequest().body(e.getMessage()); + } + } +} diff --git a/language/src/main/java/org/nl/language/engine/I18nManagerService.java b/language/src/main/java/org/nl/language/engine/I18nManagerService.java new file mode 100644 index 0000000..7d6ae2d --- /dev/null +++ b/language/src/main/java/org/nl/language/engine/I18nManagerService.java @@ -0,0 +1,107 @@ +package org.nl.language.engine; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import org.nl.language.LangBehavior; +import org.springframework.beans.factory.DisposableBean; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.FileSystemResource; +import org.springframework.core.io.Resource; +import org.springframework.stereotype.Service; +import org.springframework.util.FileCopyUtils; +import org.springframework.util.StringUtils; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.ScheduledExecutorService; + +@Service +public class I18nManagerService implements InitializingBean, DisposableBean { + private final I18nProperties properties; + public final Map langCache = new HashMap<>(); + public final Map filePaths = new HashMap<>(); + private ScheduledExecutorService scheduler; + + + public I18nManagerService(I18nProperties properties) { + System.out.println("I18nManagerService开始加载"+properties.toString()); + this.properties = properties; + } + + @Override + public void afterPropertiesSet() throws Exception { + // 加载所有语言文件 + for (String lang : properties.getSupportedLanguages()) { + loadLangFile(lang); + } + LangBehavior.i18nManagerService = this; + } + // 以下为原有方法(保持不变) + private void loadLangFile(String lang) throws IOException { + String fileName = lang + ".js"; + String fullPath = properties.getLocation() + fileName; + Resource resource = getResource(fullPath); + if (!resource.exists() && properties.isFallbackToClasspath()) { + resource = new ClassPathResource("language/i18n/" + fileName); + fullPath = "classpath:language/i18n/" + fileName; + System.out.println("文件名"+resource.getFilename()); + } + if (!resource.exists()) { + throw new IOException("Language file not found: " + fullPath); + } else { + InputStream inputStream = resource.getInputStream(); + byte[] bytes = FileCopyUtils.copyToByteArray(inputStream); + String content = new String(bytes, StandardCharsets.UTF_8); + String jsonStr = content.replace("var config = ", "").trim(); + JSONObject config = JSON.parseObject(jsonStr); + this.langCache.put(lang, config); + this.filePaths.put(lang, fullPath); + inputStream.close(); + } + } + + public Resource getResource(String path) { + System.out.println("文件加载路径"+path); + if (path.startsWith("file:")) { + return new FileSystemResource(path.substring("file:".length())); + } else if (path.startsWith("classpath:")) { + return new ClassPathResource(path.substring("classpath:".length())); + } else { + return new FileSystemResource(path); + } + } + + + public String language(String key) { + String lang = LangContextHolder.getLangOrDefault(); + JSONObject config = langCache.get(lang); + if (config == null) { + return ""; + } + String[] keyParts = key.split("\\."); + JSONObject current = config; + for (int i = 0; i < keyParts.length; i++) { + if (i == keyParts.length - 1) { + return StringUtils.isEmpty(current.getString(keyParts[i])) ? key : current.getString(keyParts[i]); + } + current = current.getJSONObject(keyParts[i]); + if (current == null) { + return key; + } + } + return key; + } + + @Override + public void destroy() { + if (scheduler != null) { + scheduler.shutdown(); + } + langCache.clear(); + filePaths.clear(); + } +} diff --git a/language/src/main/java/org/nl/language/engine/I18nProperties.java b/language/src/main/java/org/nl/language/engine/I18nProperties.java new file mode 100644 index 0000000..e8f367e --- /dev/null +++ b/language/src/main/java/org/nl/language/engine/I18nProperties.java @@ -0,0 +1,62 @@ +package org.nl.language.engine; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +import java.util.List; + +@Configuration +@ConfigurationProperties(prefix = "i18n") +public class I18nProperties { + // 语言文件存放路径,可以是外部路径或classpath + private String location = "C:\\i18n\\"; + // 热更新检查间隔(秒) + private long refreshInterval = 60; + // 支持的语言列表 + private List supportedLanguages; + // 当外部文件不存在时,是否回退到classpath中的默认文件 + private boolean fallbackToClasspath = true; + + // getter和setter方法 + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public long getRefreshInterval() { + return refreshInterval; + } + + public void setRefreshInterval(long refreshInterval) { + this.refreshInterval = refreshInterval; + } + + public List getSupportedLanguages() { + return supportedLanguages; + } + + public void setSupportedLanguages(List supportedLanguages) { + this.supportedLanguages = supportedLanguages; + } + + public boolean isFallbackToClasspath() { + return fallbackToClasspath; + } + + public void setFallbackToClasspath(boolean fallbackToClasspath) { + this.fallbackToClasspath = fallbackToClasspath; + } + + @Override + public String toString() { + return "I18nProperties{" + + "location='" + location + '\'' + + ", refreshInterval=" + refreshInterval + + ", supportedLanguages=" + supportedLanguages + + ", fallbackToClasspath=" + fallbackToClasspath + + '}'; + } +} diff --git a/language/src/main/java/org/nl/language/engine/LangContextHolder.java b/language/src/main/java/org/nl/language/engine/LangContextHolder.java new file mode 100644 index 0000000..c30b582 --- /dev/null +++ b/language/src/main/java/org/nl/language/engine/LangContextHolder.java @@ -0,0 +1,31 @@ +package org.nl.language.engine; + +import org.springframework.util.StringUtils; + +public class LangContextHolder { + // 线程本地变量,存储当前线程的语言标识 + private static final ThreadLocal LANG_HOLDER = new ThreadLocal<>(); + + // 设置当前线程的语言 + public static void setLang(String lang) { + LANG_HOLDER.set(lang); + } + + // 默认语言(从配置中获取) + public static String defaultLang = "zh"; + // 获取当前线程的语言 + public static String getLang() { + return LANG_HOLDER.get(); + } + + // 清除当前线程的语言设置(防止内存泄漏) + public static void clear() { + LANG_HOLDER.remove(); + } + + // 获取当前语言,如果未设置则返回默认语言 + public static String getLangOrDefault() { + String lang = getLang(); + return StringUtils.hasText(lang) ? lang : defaultLang; + } +} diff --git a/language/src/main/java/org/nl/language/engine/LangInterceptor.java b/language/src/main/java/org/nl/language/engine/LangInterceptor.java new file mode 100644 index 0000000..3e61cf4 --- /dev/null +++ b/language/src/main/java/org/nl/language/engine/LangInterceptor.java @@ -0,0 +1,51 @@ +package org.nl.language.engine; + + +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.HandlerInterceptor; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@Component +public class LangInterceptor implements HandlerInterceptor { + + // 支持的语言列表(实际项目中可从配置获取) + private final I18nProperties properties; + + public LangInterceptor(I18nProperties properties) { + this.properties = properties; + } + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { + // 1. 从请求参数获取语言(如 ?lang=zh) + String lang = request.getParameter("lang"); + + // 2. 如果参数不存在,可从Header获取(如 Accept-Language) + if (lang == null || lang.isEmpty()) { + lang = request.getHeader("Accept-Language"); + // 简单处理,只取前两位(如 zh-CN -> zh) + if (lang != null && lang.length() >= 2) { + lang = lang.substring(0, 2); + } + } + + // 3. 验证语言是否在支持的列表中 + if (lang != null && properties.getSupportedLanguages().contains(lang)) { + LangContextHolder.setLang(lang); + } else { + // 不支持的语言使用默认语言 + LangContextHolder.setLang("zh"); + } + + return true; + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, + Object handler, Exception ex) { + // 清除线程变量,防止内存泄漏 + LangContextHolder.clear(); + } +} diff --git a/language/src/main/java/org/nl/language/engine/WebConfig.java b/language/src/main/java/org/nl/language/engine/WebConfig.java new file mode 100644 index 0000000..f341795 --- /dev/null +++ b/language/src/main/java/org/nl/language/engine/WebConfig.java @@ -0,0 +1,21 @@ +package org.nl.language.engine; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class WebConfig implements WebMvcConfigurer { + + private final LangInterceptor langInterceptor; + + public WebConfig(LangInterceptor langInterceptor) { + this.langInterceptor = langInterceptor; + } + + @Override + public void addInterceptors(InterceptorRegistry registry) { + // 对所有请求生效 + registry.addInterceptor(langInterceptor).addPathPatterns("/**"); + } +} diff --git a/language/src/main/java/org/nl/language/engine/dto/LanguageDto.java b/language/src/main/java/org/nl/language/engine/dto/LanguageDto.java new file mode 100644 index 0000000..df9b2a0 --- /dev/null +++ b/language/src/main/java/org/nl/language/engine/dto/LanguageDto.java @@ -0,0 +1,24 @@ +package org.nl.language.engine.dto; + + +public class LanguageDto { + + private String code; + private String language; + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getLanguage() { + return language; + } + + public void setLanguage(String language) { + this.language = language; + } +} diff --git a/language/src/main/resources/application.properties b/language/src/main/resources/application.properties new file mode 100644 index 0000000..43e78b3 --- /dev/null +++ b/language/src/main/resources/application.properties @@ -0,0 +1,6 @@ +spring.application.name=language +server.port=8081 +i18n.location=file:F:/i18n +i18n.supported-languages=zh,en,vi,jp +i18n.fallback-to-classpath=true +fallback-to-classpath: true diff --git a/language/src/main/resources/language/i18n/en.js b/language/src/main/resources/language/i18n/en.js new file mode 100644 index 0000000..22cb07e --- /dev/null +++ b/language/src/main/resources/language/i18n/en.js @@ -0,0 +1,133 @@ +var config = { + 'lang': 'zh', + 'platform': { + 'title': 'Fujia WMS', + 'tip1': 'Username cannot be empty', + 'tip2': 'Password cannot be empty', + 'tip3': 'Verification code cannot be empty' + }, + 'common': { + 'home': 'Home', + 'Layout_setting': 'Layout Settings', + 'Personal_center': 'Personal Center', + 'Log_out': 'Log Out', + 'Personal_information': 'Personal Information', + 'username': 'Username', + 'name': 'Name', + 'phone': 'Mobile Number', + 'phone2': 'Phone Number', + 'sex': 'Gender', + 'sex_male': 'Male', + 'sex_female': 'Female', + 'email': 'Email', + 'Security_settings': 'Security Settings', + 'Save_settings': 'Save Settings', + 'Reset_settings': 'Reset Settings', + 'Change_password': 'Change Password', + 'New_password': 'New Password', + 'Old_password': 'Old Password', + 'Verify_password': 'Confirm Password', + 'User_information': 'User Profile', + 'Operation_log': 'Operation Log', + 'action': 'Action', + 'IP_source': 'IP Source', + 'Browser': 'Browser', + 'Request_time': 'Request Time', + 'Creation_date': 'Creation Date', + 'account': 'Account', + 'password': 'Password', + 'verification_code': 'Verification Code', + 'login_rm': 'Remember Me', + 'login': 'Login', + 'login_ing': 'Logging in...', + 'Create': 'Add', + 'Update': 'Edit', + 'Delete': 'Delete', + 'More': 'More', + 'Export': 'Export', + 'Editors': 'Edit', + 'SelectAll': 'Select All', + 'Query': 'Query', + 'Reset': 'Reset', + 'Confirm': 'Confirm', + 'Cancel': 'Cancel', + 'Yes': 'Yes', + 'No': 'No', + 'Success': 'Success', + 'Fail': 'Fail', + 'Please_select': 'Please Select', + 'Operation_success': 'Operation Successful', + 'Upload_success': 'Upload Successful', + 'Operate': 'Operation', + 'Refresh': 'Refresh', + 'Closes': 'Close', + 'Closes_l': 'Close Left', + 'Closes_r': 'Close Right', + 'Closes_o': 'Close Others', + 'Closes_a': 'Close All', + 'Theme_style_setting': 'Theme Style Settings', + 'Theme_color': 'Theme Color', + 'System_layout_configuration': 'System Layout Configuration', + 'Open': 'Open', + 'Fixation': 'Fixed', + 'Display': 'Display', + 'Dynamic_titles': 'Dynamic Titles', + 'crudTip': 'Are you sure you want to delete this data?', + 'startDate': 'Start Date', + 'endDate': 'End Date', + 'moreMenu': 'More Menu', + 'browses': 'Browse', + 'fz': 'Full Screen Zoom', + 'submit': 'Submitted Successfully', + 'add': 'Added Successfully', + 'edit': 'Edited Successfully', + 'del': 'Deleted Successfully', + 'close': 'Confirm Close', + 'save': 'Saved Successfully', + 'datas': 'Data', + 'Tips': 'Tips', + 'Tip1': 'Confirm deletion of selected {count} data entries?', + 'Tip3': 'Username is not used for login', + 'Tip4': 'Mobile number cannot be duplicated', + 'Tip5': 'Please enter phone number', + 'Tip6': 'Please enter a valid 11-digit mobile number', + 'Tip7': 'Drag excel file here or', + 'Tip8': 'The two passwords entered do not match', + 'Tip9': 'Please enter password again', + 'Tip10': 'Please enter old password', + 'Tip11': 'Please enter new password', + 'Tip12': 'Length should be between {min} and {max} characters', + 'Tip13': 'Are you sure to log out and exit the system?', + 'Tip14': 'WebSocket connection error occurred', + 'Tip15': 'Please enter icon name', + 'Tip16': 'Cannot be empty', + 'Tip17': 'Please enter what you want to search for', + 'loading': 'Data loading...', + 'Tip18': 'Select date and time', + 'Tip19': 'Are you sure you want to delete the selected data?', + 'Tip20': 'Current login status has expired, please log in again!' + }, + 'WorkOrder': { + 'form': { + 'WorkOrderCode': 'Work Order Code' + }, + 'placeholder': { + 'WorkOrderCode': 'Please enter work order code' + } + }, + 'monitor': { + 'sys': 'System', + 'day': 'Project has been running continuously for', + 'status': 'Status', + 'cpu': 'CPU Usage', + 'core': 'Core', + 'memory': 'Memory Usage', + 'tality': 'Total', + 'used': 'Used', + 'leisure': 'Free', + 'exchange': 'Swap Usage', + 'disk': 'Disk Usage', + 'cpu_monitoring': 'CPU Usage Monitoring', + 'memory_monitoring': 'Memory Usage Monitoring' + } +} diff --git a/language/src/main/resources/language/i18n/jp.js b/language/src/main/resources/language/i18n/jp.js new file mode 100644 index 0000000..ed3b03f --- /dev/null +++ b/language/src/main/resources/language/i18n/jp.js @@ -0,0 +1,133 @@ +var config = { + 'lang': 'zh', + 'platform': { + 'title': '富佳WMS', + 'tip1': 'ユーザー名は必須です', + 'tip2': 'パスワードは必須です', + 'tip3': '認証コードは必須です' + }, + 'common': { + 'home': 'ホーム', + 'Layout_setting': 'レイアウト設定', + 'Personal_center': '個人センター', + 'Log_out': 'ログアウト', + 'Personal_information': '個人情報', + 'username': 'ユーザー名', + 'name': '氏名', + 'phone': '携帯番号', + 'phone2': '電話番号', + 'sex': '性別', + 'sex_male': '男性', + 'sex_female': '女性', + 'email': 'メールアドレス', + 'Security_settings': 'セキュリティ設定', + 'Save_settings': '設定を保存', + 'Reset_settings': '設定をリセット', + 'Change_password': 'パスワード変更', + 'New_password': '新しいパスワード', + 'Old_password': '旧パスワード', + 'Verify_password': 'パスワード確認', + 'User_information': 'ユーザー情報', + 'Operation_log': '操作ログ', + 'action': '操作', + 'IP_source': 'IPソース', + 'Browser': 'ブラウザ', + 'Request_time': 'リクエスト時間', + 'Creation_date': '作成日', + 'account': 'アカウント', + 'password': 'パスワード', + 'verification_code': '認証コード', + 'login_rm': 'ログイン状態を保持', + 'login': 'ログイン', + 'login_ing': 'ログイン中...', + 'Create': '新規追加', + 'Update': '編集', + 'Delete': '削除', + 'More': '詳細', + 'Export': 'エクスポート', + 'Editors': '編集', + 'SelectAll': 'すべて選択', + 'Query': '検索', + 'Reset': 'リセット', + 'Confirm': '確認', + 'Cancel': 'キャンセル', + 'Yes': 'はい', + 'No': 'いいえ', + 'Success': '成功', + 'Fail': '失敗', + 'Please_select': '選択してください', + 'Operation_success': '操作成功', + 'Upload_success': 'アップロード成功', + 'Operate': '操作', + 'Refresh': '更新', + 'Closes': '閉じる', + 'Closes_l': '左を閉じる', + 'Closes_r': '右を閉じる', + 'Closes_o': '他を閉じる', + 'Closes_a': 'すべて閉じる', + 'Theme_style_setting': 'テーマスタイル設定', + 'Theme_color': 'テーマカラー', + 'System_layout_configuration': 'システムレイアウト設定', + 'Open': '开启', + 'Fixation': '固定', + 'Display': '表示', + 'Dynamic_titles': '动态标题', + 'crudTip': 'このデータを削除してもよろしいですか?', + 'startDate': '開始日', + 'endDate': '終了日', + 'moreMenu': '詳細メニュー', + 'browses': '閲覧', + 'fz': '全画面ズーム', + 'submit': '送信成功', + 'add': '追加成功', + 'edit': '編集成功', + 'del': '削除成功', + 'close': '閉じる確認', + 'save': '保存成功', + 'datas': 'データ', + 'Tips': 'ヒント', + 'Tip1': '選択した{count}件のデータを削除してもよろしいですか?', + 'Tip3': 'ユーザー名はログインに使用されません', + 'Tip4': '携帯番号は重複できません', + 'Tip5': '電話番号を入力してください', + 'Tip6': '正しい11桁の携帯番号を入力してください', + 'Tip7': 'Excelファイルをここにドラッグ または', + 'Tip8': '入力した2つのパスワードが一致しません', + 'Tip9': 'パスワードを再度入力してください', + 'Tip10': '旧パスワードを入力してください', + 'Tip11': '新しいパスワードを入力してください', + 'Tip12': '長さは{min}から{max}文字の間でなければなりません', + 'Tip13': 'ログアウトしてシステムを終了してもよろしいですか?', + 'Tip14': 'WebSocket接続でエラーが発生しました', + 'Tip15': 'アイコン名を入力してください', + 'Tip16': '必須項目です', + 'Tip17': '検索内容を入力してください', + 'loading': 'データ読み込み中...', + 'Tip18': '日時を選択', + 'Tip19': '選択したデータを削除してもよろしいですか?', + 'Tip20': '現在のログイン状態は期限切れです。再ログインしてください!' + }, + 'WorkOrder': { + 'form': { + 'WorkOrderCode': '作業指示コード' + }, + 'placeholder': { + 'WorkOrderCode': '作業指示コードを入力してください' + } + }, + 'monitor': { + 'sys': 'システム', + 'day': 'プロジェクトが連続運転中', + 'status': '状態', + 'cpu': 'CPU使用率', + 'core': 'コア', + 'memory': 'メモリ使用率', + 'tality': '合計', + 'used': '使用済み', + 'leisure': '空き', + 'exchange': 'スワップ使用率', + 'disk': 'ディスク使用率', + 'cpu_monitoring': 'CPU使用率モニタリング', + 'memory_monitoring': 'メモリ使用率モニタリング' + } +} diff --git a/language/src/main/resources/language/i18n/vi.js b/language/src/main/resources/language/i18n/vi.js new file mode 100644 index 0000000..cc40a49 --- /dev/null +++ b/language/src/main/resources/language/i18n/vi.js @@ -0,0 +1,133 @@ +var config = { + 'lang': 'zh', + 'platform': { + 'title': '富佳WMS', + 'tip1': '用户名不能为空', + 'tip2': '密码不能为空', + 'tip3': '验证码不能为空' +}, + 'common': { + 'home': '首页', // 首页 + 'Layout_setting': '布局设置', + 'Personal_center': '个人中心', + 'Log_out': '退出登录', + 'Personal_information': '个人信息', + 'username': '用户姓名', + 'name': '姓名', + 'phone': '手机号码', + 'phone2': '手机号', + 'sex': '性别', + 'sex_male': '男', + 'sex_female': '女', + 'email': '用户邮箱', + 'Security_settings': '安全设置', + 'Save_settings': '保存配置', + 'Reset_settings': '重置配置', + 'Change_password': '修改密码', + 'New_password': '新密码', + 'Old_password': '旧密码', + 'Verify_password': '确认密码', + 'User_information': '用户资料', + 'Operation_log': '操作日志', + 'action': '行为', + 'IP_source': 'IP来源', + 'Browser': '浏览器', + 'Request_time': '请求耗时', + 'Creation_date': '创建日期', + 'account': '账号', + 'password': '密码', + 'verification_code': '验证码', + 'login_rm': '记住我', + 'login': '登 录', + 'login_ing': '登 录 中...', + 'Create': '新增', + 'Update': '修改', + 'Delete': '删除', + 'More': '更多', + 'Export': '导出', + 'Editors': '编辑', + 'SelectAll': '全选', + 'Query': '查询', + 'Reset': '重置', + 'Confirm': '确认', + 'Cancel': '取消', + 'Yes': '是', + 'No': '否', + 'Success': '成功', + 'Fail': '失败', + 'Please_select': '请选择', + 'Operation_success': '操作成功', + 'Upload_success': '上传成功', + 'Operate': '操作', + 'Refresh': '刷新', + 'Closes': '关闭', + 'Closes_l': '关闭左侧', + 'Closes_r': '关闭右侧', + 'Closes_o': '关闭其他', + 'Closes_a': '关闭全部', + 'Theme_style_setting': '主题风格设置', + 'Theme_color': '主题颜色', + 'System_layout_configuration': '系统布局配置', + 'Open': '开启', + 'Fixation': '固定', + 'Display': '显示', + 'Dynamic_titles': '动态标题', + 'crudTip': '确定删除本条数据吗?', + 'startDate': '开始日期', + 'endDate': '结束日期', + 'moreMenu': '更多菜单', + 'browses': '浏览', + 'fz': '全屏缩放', + 'submit': '提交成功', + 'add': '新增成功', + 'edit': '编辑成功', + 'del': '删除成功', + 'close': '确认关闭', + 'save': '保存成功', + 'datas': '数据', + 'Tips': '提示', + 'Tip1': '确认删除选中的{count}条数据?', + 'Tip3': '用户姓名不作为登录使用', + 'Tip4': '手机号码不能重复', + 'Tip5': '请输入电话号码', + 'Tip6': '请输入正确的11位手机号码', + 'Tip7': '拖拽excel文件到此处 或者', + 'Tip8': '两次输入的密码不一致', + 'Tip9': '请再次输入密码', + 'Tip10': '请输入旧密码', + 'Tip11': '请输入新密码', + 'Tip12': '长度在 {min} 到 {max} 个字符', + 'Tip13': '确定注销并退出系统吗?', + 'Tip14': 'WebSocket连接发生错误', + 'Tip15': '请输入图标名称', + 'Tip16': '不能为空', + 'Tip17': '请输入你要搜索的内容', + 'loading': '数据加载中...', + 'Tip18': '选择日期时间', + 'Tip19': '你确定删除选中的数据吗?', + 'Tip20': '当前登录状态已过期,请重新登录!' +}, + 'WorkOrder': { + 'form': { + 'WorkOrderCode': '工单编码' + }, + 'placeholder': { + 'WorkOrderCode': '请输入工单编码' + } +}, + 'monitor': { + 'sys': '系统', + 'day': '项目已不间断运行', + 'status': '状态', + 'cpu': 'CPU使用率', + 'core': '核心', + 'memory': '内存使用率', + 'tality': '总量', + 'used': '已使用', + 'leisure': '空闲', + 'exchange': '交换区使用率', + 'disk': '磁盘使用率', + 'cpu_monitoring': 'CPU使用率监控', + 'memory_monitoring': '内存使用率监控' + } +} diff --git a/language/src/main/resources/language/i18n/zh.js b/language/src/main/resources/language/i18n/zh.js new file mode 100644 index 0000000..80a70a8 --- /dev/null +++ b/language/src/main/resources/language/i18n/zh.js @@ -0,0 +1,161 @@ +var config = { + 'lang': 'zh', + 'platform': { + 'title': '富佳WMS', + 'tip1': '用户名不能为空', + 'tip2': '密码不能为空', + 'tip3': '验证码不能为空' + }, + 'common': { + 'home': '首页', // 首页 + 'Layout_setting': '布局设置', + 'Personal_center': '个人中心', + 'Log_out': '退出登录', + 'Personal_information': '个人信息', + 'username': '用户姓名', + 'name': '姓名', + 'phone': '手机号码', + 'phone2': '手机号', + 'sex': '性别', + 'sex_male': '男', + 'sex_female': '女', + 'email': '用户邮箱', + 'Security_settings': '安全设置', + 'Save_settings': '保存配置', + 'Reset_settings': '重置配置', + 'Change_password': '修改密码', + 'New_password': '新密码', + 'Old_password': '旧密码', + 'Verify_password': '确认密码', + 'User_information': '用户资料', + 'Operation_log': '操作日志', + 'action': '行为', + 'IP_source': 'IP来源', + 'Browser': '浏览器', + 'Request_time': '请求耗时', + 'Creation_date': '创建日期', + 'account': '账号', + 'password': '密码', + 'verification_code': '验证码', + 'login_rm': '记住我', + 'login': '登 录', + 'login_ing': '登 录 中...', + 'Create': '新增', + 'Update': '修改', + 'Delete': '删除', + 'More': '更多', + 'Export': '导出', + 'Editors': '编辑', + 'SelectAll': '全选', + 'Query': '查询', + 'Reset': '重置', + 'Confirm': '确认', + 'Cancel': '取消', + 'Yes': '是', + 'No': '否', + 'Success': '成功', + 'Fail': '失败', + 'Please_select': '请选择', + 'Operation_success': '操作成功', + 'Upload_success': '上传成功', + 'Operate': '操作', + 'Refresh': '刷新', + 'Closes': '关闭', + 'Closes_l': '关闭左侧', + 'Closes_r': '关闭右侧', + 'Closes_o': '关闭其他', + 'Closes_a': '关闭全部', + 'Theme_style_setting': '主题风格设置', + 'Theme_color': '主题颜色', + 'System_layout_configuration': '系统布局配置', + 'Open': '开启', + 'Fixation': '固定', + 'Display': '显示', + 'Dynamic_titles': '动态标题', + 'crudTip': '确定删除本条数据吗?', + 'startDate': '开始日期', + 'endDate': '结束日期', + 'moreMenu': '更多菜单', + 'browses': '浏览', + 'fz': '全屏缩放', + 'submit': '提交成功', + 'add': '新增成功', + 'edit': '编辑成功', + 'del': '删除成功', + 'close': '确认关闭', + 'save': '保存成功', + 'datas': '数据', + 'Tips': '提示', + 'Tip1': '确认删除选中的{count}条数据?', + 'Tip3': '用户姓名不作为登录使用', + 'Tip4': '手机号码不能重复', + 'Tip5': '请输入电话号码', + 'Tip6': '请输入正确的11位手机号码', + 'Tip7': '拖拽excel文件到此处 或者', + 'Tip8': '两次输入的密码不一致', + 'Tip9': '请再次输入密码', + 'Tip10': '请输入旧密码', + 'Tip11': '请输入新密码', + 'Tip12': '长度在 {min} 到 {max} 个字符', + 'Tip13': '确定注销并退出系统吗?', + 'Tip14': 'WebSocket连接发生错误', + 'Tip15': '请输入图标名称', + 'Tip16': '不能为空', + 'Tip17': '请输入你要搜索的内容', + 'loading': '数据加载中...', + 'Tip18': '选择日期时间', + 'Tip19': '你确定删除选中的数据吗?', + 'Tip20': '当前登录状态已过期,请重新登录!' + }, + 'WorkOrder': { + 'form': { + 'WorkOrderCode': '工单编码' + }, + 'placeholder': { + 'WorkOrderCode': '请输入工单编码' + } + }, + 'monitor': { + 'sys': '系统', + 'day': '项目已不间断运行', + 'status': '状态', + 'cpu': 'CPU使用率', + 'core': '核心', + 'memory': '内存使用率', + 'tality': '总量', + 'used': '已使用', + 'leisure': '空闲', + 'exchange': '交换区使用率', + 'disk': '磁盘使用率', + 'cpu_monitoring': 'CPU使用率监控', + 'memory_monitoring': '内存使用率监控' + }, + "screen": { + "title":"仓储看板", + "pointUse":"货位使用", + "total_qty":"总数", + "use_qty":"使用数", + "emp_qty":"空货位", + "use_percentage":"货位百分比", + "ivtAnalyse":"实时库存分析", + "inAndOutTrend":"出入库趋势", + "in":"入库", + "out":"出库", + "toDayInAndOut":"今日出入库", + "realTask":"实时任务", + "task_code":"任务编码", + "point_code1":"起点", + "point_code2":"终点", + "vehicle_code":"载具编码", + "task_status":"任务状态", + "unIos":"未完成单据", + "bill_code":"单据编码", + "io_type":"出入库类型", + "bill_type":"单据类型", + "biz_date":"业务日期", + "stor_code":"仓库", + "detail_count":"明细数", + "source_id":"源单号", + "bill_status":"单据状态", + } +} diff --git a/language/src/main/归档.zip b/language/src/main/归档.zip new file mode 100644 index 0000000000000000000000000000000000000000..48489892c1194db3256544ef8134bdfbffc0585f GIT binary patch literal 28183 zcmbrlW0Yk^$*cXBAAkFT0w4fzFm|+cb}%${q*qme1ppUQSTj@m-Tw5> zZqNXLAdi3m0Drk&;qN$fzW<7Y{4Y3G`ZlJ{`liNz1w7_nGrRcR{`CJ55CQ<=Uji%t z9UQ^G0P5S>S(zK^JDJ627j;0e18H|RTMg^r06Z~=5t=-Cn}kg9*r@FrMBuLZBy2DpMWI0Vau zd62{J5&Rj&KM2e6`B%a){$+fBC(N9Y!{)E7t#GZG@&2D!W7qfxswf)(0Pg>QYHmYk z@mI<+9#_r&Q1<5*|MozJv2|i`hHtWU8M!Ex;%Erhc?b^x84#d_t?Uv;Rdr{6$(@;a z9GZAM+6eM+s09!i4U-2DK_m2h!!bzQV`u?shuzhe`^2ZVXX7VU-C*Y3;N|V~6qDR^ zX|1fNJnO9RBrk$68)0AJcox0BWEQMTLEx(y!3eWePR ztdVK|fdCQtaxSdrYluRC# z0Jv6A_7!}Zj_;i)Juuq&&?5;&zyuHm%bU5V3#v>ARL=K#Tsg|#!}IcVCD-%u81;HP z*vgKFf6l-9)-X({b=HpvLQaYta@GQIa&izCAOMiHjSGIdid zg9W(oD###M2%3-E7i-3n7s`!mD9L8>&O|wRQ3cTtock*y`~5R!_u@w^{Fl#dsjVE` z*Y*A*Ypju(n*Gfg(`_N|=lL!jf zw!y7cIxvYwAii`Q;}9%%&4e&L<8>>r3ei}Mb5BZw0doKMNX)W!J_~gX&WZ_&q2j$v zJ{mehXW2%D8eK4KkET#KfT*ovwwb7-WDMhWhGOLF6z96PK%5KP z*mVp(eK$Ysc$oR8@RI(Ui)~5v@1nOjCR>yfhMR1USTLL)?|z*eJ-9sE zXEc&xO>+y_d14V%O7*AE&=N9^kWQ3|f}`+H(-5SkR<%96pmN2PhsVjTG!DfC1yrP= zpa@ALitw}EekPAKzOtQt zLd!VC>Uj47rp4ud_7G>s%9VTpBsDh%M(^o_m&ff8|}XcC0D=0!3^#fX9eq1^Wd zStVoX@MuuAZqs79AEg;+#j1SPW&R%o^{w?mX9#67Kg$!XQ{NON_vW}L3l(!1Z8+lJ zEhrz|)Y0NQkdgsnV6_oMS-^Z7%&bOGZ@qH47|_!3;?^eW@#(pR1*ZUgxDvnhcWNmp zi)VX3+Y{IbQKFz0GObx4kLbYkKB-oW2@-H=nx<8N=ebg8f@04Ka7j6au?H66=FCoh z8m!=+vx(%bS~CKgsS_zo<}v!OA}y$e0?O_!m14(&P_omy`Oje`;_4-o?6%8i1}stJ z7%0W$foxb=>ez{DqO$sP)YuxX8@Uq(q}r!&hxmyO!ks=d6QidPD}~EMzyt?BK#9=D zu2X^^zhCxlvlN&uUjIJK4N-+rX-Cksbh_xM&g{GfLLL++~ek7T(C$TOJhzA z9iMeck4BjSReNUhqp9M3EK>-ikaW?Ha)^G^rW*Lnv->%UmbkV2F9@QO>CR z7kMGznL?hAA+FFby{u$=ln#d&!YX^CXST&m?>jD0W_1y5RTUwEVa|A7Jf;x#2}Dn9 zRK;{t983S;m2GQJA`HDp6hS25o&=&8$we0nnL#&VK~5`*Xfk4Y4K)U1SKG0@$yqF( zS137Ba5MUz_eTK$1)H^C|D|6o{tW@u;4ssGTmc&6+4rERSQF(L28o86vp+*D!Dsol z()q~uSBl6rg`|@⁡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 + echo "JAVA_HOME is set to \"$JAVA_HOME\", but \"\$JAVA_HOME/bin/java\" or \"\$JAVA_HOME/bin/javac\" does not exist." >&2 + return 1 + fi + fi + else + JAVACMD="$( + 'set' +e + 'unset' -f command 2>/dev/null + 'command' -v java + )" || : + JAVACCMD="$( + 'set' +e + 'unset' -f command 2>/dev/null + 'command' -v javac + )" || : + + if [ ! -x "${JAVACMD-}" ] || [ ! -x "${JAVACCMD-}" ]; then + echo "The java/javac command does not exist in PATH nor is JAVA_HOME set, so mvnw cannot run." >&2 + return 1 + fi + fi +} + +# hash string like Java String::hashCode +hash_string() { + str="${1:-}" h=0 + while [ -n "$str" ]; do + char="${str%"${str#?}"}" + h=$(((h * 31 + $(LC_CTYPE=C printf %d "'$char")) % 4294967296)) + str="${str#?}" + done + printf %x\\n $h +} + +verbose() { :; } +[ "${MVNW_VERBOSE-}" != true ] || verbose() { printf %s\\n "${1-}"; } + +die() { + printf %s\\n "$1" >&2 + exit 1 +} + +trim() { + # MWRAPPER-139: + # Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds. + # Needed for removing poorly interpreted newline sequences when running in more + # exotic environments such as mingw bash on Windows. + printf "%s" "${1}" | tr -d '[:space:]' +} + +scriptDir="$(dirname "$0")" +scriptName="$(basename "$0")" + +# parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties +while IFS="=" read -r key value; do + case "${key-}" in + distributionUrl) distributionUrl=$(trim "${value-}") ;; + distributionSha256Sum) distributionSha256Sum=$(trim "${value-}") ;; + esac +done <"$scriptDir/.mvn/wrapper/maven-wrapper.properties" +[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" + +case "${distributionUrl##*/}" in +maven-mvnd-*bin.*) + MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ + case "${PROCESSOR_ARCHITECTURE-}${PROCESSOR_ARCHITEW6432-}:$(uname -a)" in + *AMD64:CYGWIN* | *AMD64:MINGW*) distributionPlatform=windows-amd64 ;; + :Darwin*x86_64) distributionPlatform=darwin-amd64 ;; + :Darwin*arm64) distributionPlatform=darwin-aarch64 ;; + :Linux*x86_64*) distributionPlatform=linux-amd64 ;; + *) + echo "Cannot detect native platform for mvnd on $(uname)-$(uname -m), use pure java version" >&2 + distributionPlatform=linux-amd64 + ;; + esac + distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip" + ;; +maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;; +*) MVN_CMD="mvn${scriptName#mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;; +esac + +# apply MVNW_REPOURL and calculate MAVEN_HOME +# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ +[ -z "${MVNW_REPOURL-}" ] || distributionUrl="$MVNW_REPOURL$_MVNW_REPO_PATTERN${distributionUrl#*"$_MVNW_REPO_PATTERN"}" +distributionUrlName="${distributionUrl##*/}" +distributionUrlNameMain="${distributionUrlName%.*}" +distributionUrlNameMain="${distributionUrlNameMain%-bin}" +MAVEN_USER_HOME="${MAVEN_USER_HOME:-${HOME}/.m2}" +MAVEN_HOME="${MAVEN_USER_HOME}/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")" + +exec_maven() { + unset MVNW_VERBOSE MVNW_USERNAME MVNW_PASSWORD MVNW_REPOURL || : + exec "$MAVEN_HOME/bin/$MVN_CMD" "$@" || die "cannot exec $MAVEN_HOME/bin/$MVN_CMD" +} + +if [ -d "$MAVEN_HOME" ]; then + verbose "found existing MAVEN_HOME at $MAVEN_HOME" + exec_maven "$@" +fi + +case "${distributionUrl-}" in +*?-bin.zip | *?maven-mvnd-?*-?*.zip) ;; +*) die "distributionUrl is not valid, must match *-bin.zip or maven-mvnd-*.zip, but found '${distributionUrl-}'" ;; +esac + +# prepare tmp dir +if TMP_DOWNLOAD_DIR="$(mktemp -d)" && [ -d "$TMP_DOWNLOAD_DIR" ]; then + clean() { rm -rf -- "$TMP_DOWNLOAD_DIR"; } + trap clean HUP INT TERM EXIT +else + die "cannot create temp dir" +fi + +mkdir -p -- "${MAVEN_HOME%/*}" + +# Download and Install Apache Maven +verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." +verbose "Downloading from: $distributionUrl" +verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" + +# select .zip or .tar.gz +if ! command -v unzip >/dev/null; then + distributionUrl="${distributionUrl%.zip}.tar.gz" + distributionUrlName="${distributionUrl##*/}" +fi + +# verbose opt +__MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR='' +[ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v + +# normalize http auth +case "${MVNW_PASSWORD:+has-password}" in +'') MVNW_USERNAME='' MVNW_PASSWORD='' ;; +has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;; +esac + +if [ -z "${MVNW_USERNAME-}" ] && command -v wget >/dev/null; then + verbose "Found wget ... using wget" + wget ${__MVNW_QUIET_WGET:+"$__MVNW_QUIET_WGET"} "$distributionUrl" -O "$TMP_DOWNLOAD_DIR/$distributionUrlName" || die "wget: Failed to fetch $distributionUrl" +elif [ -z "${MVNW_USERNAME-}" ] && command -v curl >/dev/null; then + verbose "Found curl ... using curl" + curl ${__MVNW_QUIET_CURL:+"$__MVNW_QUIET_CURL"} -f -L -o "$TMP_DOWNLOAD_DIR/$distributionUrlName" "$distributionUrl" || die "curl: Failed to fetch $distributionUrl" +elif set_java_home; then + verbose "Falling back to use Java to download" + javaSource="$TMP_DOWNLOAD_DIR/Downloader.java" + targetZip="$TMP_DOWNLOAD_DIR/$distributionUrlName" + cat >"$javaSource" <<-END + public class Downloader extends java.net.Authenticator + { + protected java.net.PasswordAuthentication getPasswordAuthentication() + { + return new java.net.PasswordAuthentication( System.getenv( "MVNW_USERNAME" ), System.getenv( "MVNW_PASSWORD" ).toCharArray() ); + } + public static void main( String[] args ) throws Exception + { + setDefault( new Downloader() ); + java.nio.file.Files.copy( java.net.URI.create( args[0] ).toURL().openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() ); + } + } + END + # For Cygwin/MinGW, switch paths to Windows format before running javac and java + verbose " - Compiling Downloader.java ..." + "$(native_path "$JAVACCMD")" "$(native_path "$javaSource")" || die "Failed to compile Downloader.java" + verbose " - Running Downloader.java ..." + "$(native_path "$JAVACMD")" -cp "$(native_path "$TMP_DOWNLOAD_DIR")" Downloader "$distributionUrl" "$(native_path "$targetZip")" +fi + +# If specified, validate the SHA-256 sum of the Maven distribution zip file +if [ -n "${distributionSha256Sum-}" ]; then + distributionSha256Result=false + if [ "$MVN_CMD" = mvnd.sh ]; then + echo "Checksum validation is not supported for maven-mvnd." >&2 + echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 + exit 1 + elif command -v sha256sum >/dev/null; then + if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c - >/dev/null 2>&1; then + distributionSha256Result=true + fi + elif command -v shasum >/dev/null; then + if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | shasum -a 256 -c >/dev/null 2>&1; then + distributionSha256Result=true + fi + else + echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2 + echo "Please install either command, or disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 + exit 1 + fi + if [ $distributionSha256Result = false ]; then + echo "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised." >&2 + echo "If you updated your Maven version, you need to update the specified distributionSha256Sum property." >&2 + exit 1 + fi +fi + +# unzip and move +if command -v unzip >/dev/null; then + unzip ${__MVNW_QUIET_UNZIP:+"$__MVNW_QUIET_UNZIP"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -d "$TMP_DOWNLOAD_DIR" || die "failed to unzip" +else + tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar" +fi + +# Find the actual extracted directory name (handles snapshots where filename != directory name) +actualDistributionDir="" + +# First try the expected directory name (for regular distributions) +if [ -d "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" ]; then + if [ -f "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/bin/$MVN_CMD" ]; then + actualDistributionDir="$distributionUrlNameMain" + fi +fi + +# If not found, search for any directory with the Maven executable (for snapshots) +if [ -z "$actualDistributionDir" ]; then + # enable globbing to iterate over items + set +f + for dir in "$TMP_DOWNLOAD_DIR"/*; do + if [ -d "$dir" ]; then + if [ -f "$dir/bin/$MVN_CMD" ]; then + actualDistributionDir="$(basename "$dir")" + break + fi + fi + done + set -f +fi + +if [ -z "$actualDistributionDir" ]; then + verbose "Contents of $TMP_DOWNLOAD_DIR:" + verbose "$(ls -la "$TMP_DOWNLOAD_DIR")" + die "Could not find Maven distribution directory in extracted archive" +fi + +verbose "Found extracted Maven distribution directory: $actualDistributionDir" +printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$actualDistributionDir/mvnw.url" +mv -- "$TMP_DOWNLOAD_DIR/$actualDistributionDir" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME" + +clean || : +exec_maven "$@" diff --git a/mvnw.cmd b/mvnw.cmd new file mode 100644 index 0000000..92450f9 --- /dev/null +++ b/mvnw.cmd @@ -0,0 +1,189 @@ +<# : batch portion +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Apache Maven Wrapper startup batch script, version 3.3.4 +@REM +@REM Optional ENV vars +@REM MVNW_REPOURL - repo url base for downloading maven distribution +@REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven +@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output +@REM ---------------------------------------------------------------------------- + +@IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0) +@SET __MVNW_CMD__= +@SET __MVNW_ERROR__= +@SET __MVNW_PSMODULEP_SAVE=%PSModulePath% +@SET PSModulePath= +@FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @( + IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B) +) +@SET PSModulePath=%__MVNW_PSMODULEP_SAVE% +@SET __MVNW_PSMODULEP_SAVE= +@SET __MVNW_ARG0_NAME__= +@SET MVNW_USERNAME= +@SET MVNW_PASSWORD= +@IF NOT "%__MVNW_CMD__%"=="" ("%__MVNW_CMD__%" %*) +@echo Cannot start maven from wrapper >&2 && exit /b 1 +@GOTO :EOF +: end batch / begin powershell #> + +$ErrorActionPreference = "Stop" +if ($env:MVNW_VERBOSE -eq "true") { + $VerbosePreference = "Continue" +} + +# calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties +$distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl +if (!$distributionUrl) { + Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" +} + +switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) { + "maven-mvnd-*" { + $USE_MVND = $true + $distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip" + $MVN_CMD = "mvnd.cmd" + break + } + default { + $USE_MVND = $false + $MVN_CMD = $script -replace '^mvnw','mvn' + break + } +} + +# apply MVNW_REPOURL and calculate MAVEN_HOME +# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ +if ($env:MVNW_REPOURL) { + $MVNW_REPO_PATTERN = if ($USE_MVND -eq $False) { "/org/apache/maven/" } else { "/maven/mvnd/" } + $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace "^.*$MVNW_REPO_PATTERN",'')" +} +$distributionUrlName = $distributionUrl -replace '^.*/','' +$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$','' + +$MAVEN_M2_PATH = "$HOME/.m2" +if ($env:MAVEN_USER_HOME) { + $MAVEN_M2_PATH = "$env:MAVEN_USER_HOME" +} + +if (-not (Test-Path -Path $MAVEN_M2_PATH)) { + New-Item -Path $MAVEN_M2_PATH -ItemType Directory | Out-Null +} + +$MAVEN_WRAPPER_DISTS = $null +if ((Get-Item $MAVEN_M2_PATH).Target[0] -eq $null) { + $MAVEN_WRAPPER_DISTS = "$MAVEN_M2_PATH/wrapper/dists" +} else { + $MAVEN_WRAPPER_DISTS = (Get-Item $MAVEN_M2_PATH).Target[0] + "/wrapper/dists" +} + +$MAVEN_HOME_PARENT = "$MAVEN_WRAPPER_DISTS/$distributionUrlNameMain" +$MAVEN_HOME_NAME = ([System.Security.Cryptography.SHA256]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join '' +$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME" + +if (Test-Path -Path "$MAVEN_HOME" -PathType Container) { + Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME" + Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" + exit $? +} + +if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) { + Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl" +} + +# prepare tmp dir +$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile +$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir" +$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null +trap { + if ($TMP_DOWNLOAD_DIR.Exists) { + try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } + catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } + } +} + +New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null + +# Download and Install Apache Maven +Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." +Write-Verbose "Downloading from: $distributionUrl" +Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" + +$webclient = New-Object System.Net.WebClient +if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) { + $webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD) +} +[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 +$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null + +# If specified, validate the SHA-256 sum of the Maven distribution zip file +$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum +if ($distributionSha256Sum) { + if ($USE_MVND) { + Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." + } + Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash + if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) { + Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property." + } +} + +# unzip and move +Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null + +# Find the actual extracted directory name (handles snapshots where filename != directory name) +$actualDistributionDir = "" + +# First try the expected directory name (for regular distributions) +$expectedPath = Join-Path "$TMP_DOWNLOAD_DIR" "$distributionUrlNameMain" +$expectedMvnPath = Join-Path "$expectedPath" "bin/$MVN_CMD" +if ((Test-Path -Path $expectedPath -PathType Container) -and (Test-Path -Path $expectedMvnPath -PathType Leaf)) { + $actualDistributionDir = $distributionUrlNameMain +} + +# If not found, search for any directory with the Maven executable (for snapshots) +if (!$actualDistributionDir) { + Get-ChildItem -Path "$TMP_DOWNLOAD_DIR" -Directory | ForEach-Object { + $testPath = Join-Path $_.FullName "bin/$MVN_CMD" + if (Test-Path -Path $testPath -PathType Leaf) { + $actualDistributionDir = $_.Name + } + } +} + +if (!$actualDistributionDir) { + Write-Error "Could not find Maven distribution directory in extracted archive" +} + +Write-Verbose "Found extracted Maven distribution directory: $actualDistributionDir" +Rename-Item -Path "$TMP_DOWNLOAD_DIR/$actualDistributionDir" -NewName $MAVEN_HOME_NAME | Out-Null +try { + Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null +} catch { + if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) { + Write-Error "fail to move MAVEN_HOME" + } +} finally { + try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } + catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } +} + +Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..d2ce251 --- /dev/null +++ b/pom.xml @@ -0,0 +1,43 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.6.2 + + + nl.sdk + sdk-all + 0.0.1-SNAPSHOT + sdk + pom + sdk + + 8 + + + language + + + + org.springframework.boot + spring-boot-starter + + + org.springframework.boot + spring-boot-starter-web + + + cn.dev33 + sa-token-spring-boot-starter + 1.31.0 + + + com.alibaba + fastjson + 1.2.83 + + +