mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-07-22 13:15:23 +00:00
refactor: move modules under app/ directory and update file paths (#3938)
# Description of Changes - **What was changed:** - Renamed top-level directories: `stirling-pdf` → `app/core`, `common` → `app/common`, `proprietary` → `app/proprietary`. - Updated all path references in `.gitattributes`, GitHub workflows (`.github/workflows/*`), scripts (`.github/scripts/*`), `.gitignore`, Dockerfiles, license files, and template settings to reflect the new structure. - Added a new CI job `check-generateOpenApiDocs` to generate and upload OpenAPI documentation. - Removed redundant `@Autowired` annotations from `TempFileShutdownHook` and `UnlockPDFFormsController`. - Minor formatting and comment adjustments in YAML templates and resource files. - **Why the change was made:** - To introduce a clear `app/` directory hierarchy for core, common, and proprietary modules, improving organization and maintainability. - To ensure continuous integration and Docker builds continue to work seamlessly with the reorganized structure. - To automate OpenAPI documentation generation as part of the CI pipeline. --- ## Checklist ### General - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md) (if applicable) - [x] I have performed a self-review of my own code - [x] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing) for more details.
This commit is contained in:
parent
38b53d7cc1
commit
299d52c517
@ -1,5 +1,9 @@
|
|||||||
# Formatting
|
# Formatting
|
||||||
5f771b785130154ed47952635b7acef371ffe0ec
|
5f771b785130154ed47952635b7acef371ffe0ec
|
||||||
|
7fa5e130d99227c2202ebddfdd91348176ec0c7b
|
||||||
|
14d4fbb2a36195eedb034785e5a5ff6a47f268c6
|
||||||
|
ee8030c1c4148062cde15c49c67d04ef03930c55
|
||||||
|
fcd41924f5f261febfa9d9a92994671f3ebc97d6
|
||||||
|
|
||||||
# Normalize files
|
# Normalize files
|
||||||
55d4fda01b2f39f5b7d7b4fda5214bd7ff0fd5dd
|
55d4fda01b2f39f5b7d7b4fda5214bd7ff0fd5dd
|
||||||
|
14
.gitattributes
vendored
14
.gitattributes
vendored
@ -1,10 +1,10 @@
|
|||||||
* text=auto eol=lf
|
* text=auto eol=lf
|
||||||
|
|
||||||
# Ignore all JavaScript files in a directory
|
# Ignore all JavaScript files in a directory
|
||||||
stirling-pdf/src/main/resources/static/pdfjs/* linguist-vendored
|
app/core/src/main/resources/static/pdfjs/* linguist-vendored
|
||||||
stirling-pdf/src/main/resources/static/pdfjs/** linguist-vendored
|
app/core/src/main/resources/static/pdfjs/** linguist-vendored
|
||||||
stirling-pdf/src/main/resources/static/pdfjs-legacy/* linguist-vendored
|
app/core/src/main/resources/static/pdfjs-legacy/* linguist-vendored
|
||||||
stirling-pdf/src/main/resources/static/pdfjs-legacy/** linguist-vendored
|
app/core/src/main/resources/static/pdfjs-legacy/** linguist-vendored
|
||||||
stirling-pdf/src/main/resources/static/css/bootstrap-icons.css linguist-vendored
|
app/core/src/main/resources/static/css/bootstrap-icons.css linguist-vendored
|
||||||
stirling-pdf/src/main/resources/static/css/bootstrap.min.css linguist-vendored
|
app/core/src/main/resources/static/css/bootstrap.min.css linguist-vendored
|
||||||
stirling-pdf/src/main/resources/static/css/fonts/* linguist-vendored
|
app/core/src/main/resources/static/css/fonts/* linguist-vendored
|
||||||
|
64
.github/labeler-config-srvaroa.yml
vendored
64
.github/labeler-config-srvaroa.yml
vendored
@ -34,6 +34,9 @@ labels:
|
|||||||
- label: "Documentation"
|
- label: "Documentation"
|
||||||
title: '^docs(\([^)]*\))?:|^docs:.*'
|
title: '^docs(\([^)]*\))?:|^docs:.*'
|
||||||
|
|
||||||
|
- label: "Documentation"
|
||||||
|
title: '^.*\(docs\):.*'
|
||||||
|
|
||||||
- label: "dependencies"
|
- label: "dependencies"
|
||||||
title: '^deps(\([^)]*\))?:|^deps:.*'
|
title: '^deps(\([^)]*\))?:|^deps:.*'
|
||||||
|
|
||||||
@ -45,53 +48,53 @@ labels:
|
|||||||
|
|
||||||
- label: 'Translation'
|
- label: 'Translation'
|
||||||
files:
|
files:
|
||||||
- 'stirling-pdf/src/main/resources/messages_[a-zA-Z_]{2}_[a-zA-Z_]{2,7}.properties'
|
- 'app/core/src/main/resources/messages_[a-zA-Z_]{2}_[a-zA-Z_]{2,7}.properties'
|
||||||
- 'scripts/ignore_translation.toml'
|
- 'scripts/ignore_translation.toml'
|
||||||
- 'stirling-pdf/src/main/resources/templates/fragments/languages.html'
|
- 'app/core/src/main/resources/templates/fragments/languages.html'
|
||||||
- '.github/scripts/check_language_properties.py'
|
- '.github/scripts/check_language_properties.py'
|
||||||
|
|
||||||
- label: 'Front End'
|
- label: 'Front End'
|
||||||
files:
|
files:
|
||||||
- 'stirling-pdf/src/main/resources/templates/.*'
|
- 'app/core/src/main/resources/templates/.*'
|
||||||
- 'proprietary/src/main/resources/templates/.*'
|
- 'app/proprietary/src/main/resources/templates/.*'
|
||||||
- 'stirling-pdf/src/main/resources/static/.*'
|
- 'app/core/src/main/resources/static/.*'
|
||||||
- 'proprietary/src/main/resources/static/.*'
|
- 'app/proprietary/src/main/resources/static/.*'
|
||||||
- 'stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/.*'
|
- 'app/core/src/main/java/stirling/software/SPDF/controller/web/.*'
|
||||||
- 'stirling-pdf/src/main/java/stirling/software/SPDF/UI/.*'
|
- 'app/core/src/main/java/stirling/software/SPDF/UI/.*'
|
||||||
- 'proprietary/src/main/java/stirling/software/proprietary/security/controller/web/.*'
|
- 'app/proprietary/src/main/java/stirling/software/proprietary/security/controller/web/.*'
|
||||||
|
|
||||||
- label: 'Java'
|
- label: 'Java'
|
||||||
files:
|
files:
|
||||||
- 'common/src/main/java/.*.java'
|
- 'app/common/src/main/java/.*.java'
|
||||||
- 'proprietary/src/main/java/.*.java'
|
- 'app/proprietary/src/main/java/.*.java'
|
||||||
- 'stirling-pdf/src/main/java/.*.java'
|
- 'app/core/src/main/java/.*.java'
|
||||||
|
|
||||||
- label: 'Back End'
|
- label: 'Back End'
|
||||||
files:
|
files:
|
||||||
- 'stirling-pdf/src/main/java/stirling/software/SPDF/config/.*'
|
- 'app/core/src/main/java/stirling/software/SPDF/config/.*'
|
||||||
- 'stirling-pdf/src/main/java/stirling/software/SPDF/controller/.*'
|
- 'app/core/src/main/java/stirling/software/SPDF/controller/.*'
|
||||||
- 'stirling-pdf/src/main/resources/settings.yml.template'
|
- 'app/core/src/main/resources/settings.yml.template'
|
||||||
- 'stirling-pdf/src/main/resources/application.properties'
|
- 'app/core/src/main/resources/application.properties'
|
||||||
- 'stirling-pdf/src/main/resources/banner.txt'
|
- 'app/core/src/main/resources/banner.txt'
|
||||||
- 'scripts/png_to_webp.py'
|
- 'scripts/png_to_webp.py'
|
||||||
- 'split_photos.py'
|
- 'split_photos.py'
|
||||||
- 'application.properties'
|
- 'application.properties'
|
||||||
|
|
||||||
- label: 'Security'
|
- label: 'Security'
|
||||||
files:
|
files:
|
||||||
- 'proprietary/src/main/java/stirling/software/proprietary/security/.*'
|
- 'app/proprietary/src/main/java/stirling/software/proprietary/security/.*'
|
||||||
- 'scripts/download-security-jar.sh'
|
- 'scripts/download-security-jar.sh'
|
||||||
- '.github/workflows/dependency-review.yml'
|
- '.github/workflows/dependency-review.yml'
|
||||||
- '.github/workflows/scorecards.yml'
|
- '.github/workflows/scorecards.yml'
|
||||||
|
|
||||||
- label: 'API'
|
- label: 'API'
|
||||||
files:
|
files:
|
||||||
- 'stirling-pdf/src/main/java/stirling/software/SPDF/config/OpenApiConfig.java'
|
- 'app/core/src/main/java/stirling/software/SPDF/config/OpenApiConfig.java'
|
||||||
- 'stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/MetricsController.java'
|
- 'app/core/src/main/java/stirling/software/SPDF/controller/web/MetricsController.java'
|
||||||
- 'stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/.*'
|
- 'app/core/src/main/java/stirling/software/SPDF/controller/api/.*'
|
||||||
- 'stirling-pdf/src/main/java/stirling/software/SPDF/model/api/.*'
|
- 'app/core/src/main/java/stirling/software/SPDF/model/api/.*'
|
||||||
- 'stirling-pdf/src/main/java/stirling/software/SPDF/service/ApiDocService.java'
|
- 'app/core/src/main/java/stirling/software/SPDF/service/ApiDocService.java'
|
||||||
- 'proprietary/src/main/java/stirling/software/proprietary/security/controller/api/.*'
|
- 'app/proprietary/src/main/java/stirling/software/proprietary/security/controller/api/.*'
|
||||||
- 'scripts/png_to_webp.py'
|
- 'scripts/png_to_webp.py'
|
||||||
- 'split_photos.py'
|
- 'split_photos.py'
|
||||||
- '.github/workflows/swagger.yml'
|
- '.github/workflows/swagger.yml'
|
||||||
@ -127,12 +130,13 @@ labels:
|
|||||||
- '.github/workflows/pre_commit.yml'
|
- '.github/workflows/pre_commit.yml'
|
||||||
- 'devGuide/.*'
|
- 'devGuide/.*'
|
||||||
- 'devTools/.*'
|
- 'devTools/.*'
|
||||||
|
- 'devTools/.*'
|
||||||
|
|
||||||
- label: 'Test'
|
- label: 'Test'
|
||||||
files:
|
files:
|
||||||
- 'common/src/test/.*'
|
- 'app/common/src/test/.*'
|
||||||
- 'proprietary/src/test/.*'
|
- 'app/proprietary/src/test/.*'
|
||||||
- 'stirling-pdf/src/test/.*'
|
- 'app/core/src/test/.*'
|
||||||
- 'testing/.*'
|
- 'testing/.*'
|
||||||
- '.github/workflows/scorecards.yml'
|
- '.github/workflows/scorecards.yml'
|
||||||
- 'exampleYmlFiles/test_cicd.yml'
|
- 'exampleYmlFiles/test_cicd.yml'
|
||||||
@ -148,6 +152,6 @@ labels:
|
|||||||
- 'gradlew.bat'
|
- 'gradlew.bat'
|
||||||
- 'settings.gradle'
|
- 'settings.gradle'
|
||||||
- 'build.gradle'
|
- 'build.gradle'
|
||||||
- 'common/build.gradle'
|
- 'app/common/build.gradle'
|
||||||
- 'proprietary/build.gradle'
|
- 'app/proprietary/build.gradle'
|
||||||
- 'stirling-pdf/build.gradle'
|
- 'app/core/build.gradle'
|
||||||
|
86
.github/labeler-config.yml
vendored
86
.github/labeler-config.yml
vendored
@ -1,86 +0,0 @@
|
|||||||
Translation:
|
|
||||||
- changed-files:
|
|
||||||
- any-glob-to-any-file: 'stirling-pdf/src/main/resources/messages_*_*.properties'
|
|
||||||
- any-glob-to-any-file: 'scripts/ignore_translation.toml'
|
|
||||||
- any-glob-to-any-file: 'stirling-pdf/src/main/resources/templates/fragments/languages.html'
|
|
||||||
|
|
||||||
Front End:
|
|
||||||
- changed-files:
|
|
||||||
- any-glob-to-any-file: 'stirling-pdf/src/main/resources/templates/**/*'
|
|
||||||
- any-glob-to-any-file: 'stirling-pdf/src/main/resources/static/**/*'
|
|
||||||
- any-glob-to-any-file: 'stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/**'
|
|
||||||
- any-glob-to-any-file: 'stirling-pdf/src/main/java/stirling/software/SPDF/UI/**/*'
|
|
||||||
|
|
||||||
Java:
|
|
||||||
- changed-files:
|
|
||||||
- any-glob-to-any-file: 'common/src/main/java/**/*.java'
|
|
||||||
- any-glob-to-any-file: 'proprietary/src/main/java/**/*.java'
|
|
||||||
- any-glob-to-any-file: 'stirling-pdf/src/main/java/**/*.java'
|
|
||||||
|
|
||||||
Back End:
|
|
||||||
- changed-files:
|
|
||||||
- any-glob-to-any-file: 'stirling-pdf/src/main/java/stirling/software/SPDF/config/**/*'
|
|
||||||
- any-glob-to-any-file: 'stirling-pdf/src/main/java/stirling/software/SPDF/controller/**/*'
|
|
||||||
- any-glob-to-any-file: 'stirling-pdf/src/main/resources/settings.yml.template'
|
|
||||||
- any-glob-to-any-file: 'stirling-pdf/src/main/resources/application.properties'
|
|
||||||
- any-glob-to-any-file: 'stirling-pdf/src/main/resources/banner.txt'
|
|
||||||
- any-glob-to-any-file: 'scripts/png_to_webp.py'
|
|
||||||
- any-glob-to-any-file: 'split_photos.py'
|
|
||||||
|
|
||||||
Security:
|
|
||||||
- changed-files:
|
|
||||||
- any-glob-to-any-file: 'proprietary/src/main/java/stirling/software/proprietary/security/**/*'
|
|
||||||
- any-glob-to-any-file: 'scripts/download-security-jar.sh'
|
|
||||||
- any-glob-to-any-file: '.github/workflows/dependency-review.yml'
|
|
||||||
- any-glob-to-any-file: '.github/workflows/scorecards.yml'
|
|
||||||
|
|
||||||
API:
|
|
||||||
- changed-files:
|
|
||||||
- any-glob-to-any-file: 'stirling-pdf/src/main/java/stirling/software/SPDF/config/OpenApiConfig.java'
|
|
||||||
- any-glob-to-any-file: 'stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/MetricsController.java'
|
|
||||||
- any-glob-to-any-file: 'stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/**/*'
|
|
||||||
- any-glob-to-any-file: 'stirling-pdf/src/main/java/stirling/software/SPDF/model/api/**/*'
|
|
||||||
- any-glob-to-any-file: 'scripts/png_to_webp.py'
|
|
||||||
- any-glob-to-any-file: 'split_photos.py'
|
|
||||||
- any-glob-to-any-file: '.github/workflows/swagger.yml'
|
|
||||||
|
|
||||||
Documentation:
|
|
||||||
- changed-files:
|
|
||||||
- any-glob-to-any-file: '**/*.md'
|
|
||||||
- any-glob-to-any-file: 'scripts/counter_translation.py'
|
|
||||||
- any-glob-to-any-file: 'scripts/ignore_translation.toml'
|
|
||||||
|
|
||||||
Docker:
|
|
||||||
- changed-files:
|
|
||||||
- any-glob-to-any-file: '.github/workflows/build.yml'
|
|
||||||
- any-glob-to-any-file: '.github/workflows/push-docker.yml'
|
|
||||||
- any-glob-to-any-file: 'Dockerfile'
|
|
||||||
- any-glob-to-any-file: 'Dockerfile.fat'
|
|
||||||
- any-glob-to-any-file: 'Dockerfile.ultra-lite'
|
|
||||||
- any-glob-to-any-file: 'exampleYmlFiles/*.yml'
|
|
||||||
- any-glob-to-any-file: 'scripts/download-security-jar.sh'
|
|
||||||
- any-glob-to-any-file: 'scripts/init.sh'
|
|
||||||
- any-glob-to-any-file: 'scripts/init-without-ocr.sh'
|
|
||||||
- any-glob-to-any-file: 'scripts/installFonts.sh'
|
|
||||||
- any-glob-to-any-file: 'test.sh'
|
|
||||||
- any-glob-to-any-file: 'test2.sh'
|
|
||||||
|
|
||||||
Devtools:
|
|
||||||
- changed-files:
|
|
||||||
- any-glob-to-any-file: '.devcontainer/**/*'
|
|
||||||
- any-glob-to-any-file: 'Dockerfile.dev'
|
|
||||||
|
|
||||||
Test:
|
|
||||||
- changed-files:
|
|
||||||
- any-glob-to-any-file: 'cucumber/**/*'
|
|
||||||
- any-glob-to-any-file: 'common/src/test/**/*'
|
|
||||||
- any-glob-to-any-file: 'proprietary/src/test/**/*'
|
|
||||||
- any-glob-to-any-file: 'stirling-pdf/src/test/**/*'
|
|
||||||
- any-glob-to-any-file: 'src/testing/**/*'
|
|
||||||
- any-glob-to-any-file: '.pre-commit-config'
|
|
||||||
- any-glob-to-any-file: '.github/workflows/pre_commit.yml'
|
|
||||||
- any-glob-to-any-file: '.github/workflows/scorecards.yml'
|
|
||||||
|
|
||||||
Github:
|
|
||||||
- changed-files:
|
|
||||||
- any-glob-to-any-file: '.github/**/*'
|
|
12
.github/scripts/check_language_properties.py
vendored
12
.github/scripts/check_language_properties.py
vendored
@ -197,7 +197,7 @@ def check_for_differences(reference_file, file_list, branch, actor):
|
|||||||
if len(file_list) == 1:
|
if len(file_list) == 1:
|
||||||
file_arr = file_list[0].split()
|
file_arr = file_list[0].split()
|
||||||
base_dir = os.path.abspath(
|
base_dir = os.path.abspath(
|
||||||
os.path.join(os.getcwd(), "stirling-pdf", "src", "main", "resources")
|
os.path.join(os.getcwd(), "app", "core", "src", "main", "resources")
|
||||||
)
|
)
|
||||||
|
|
||||||
for file_path in file_arr:
|
for file_path in file_arr:
|
||||||
@ -219,13 +219,14 @@ def check_for_differences(reference_file, file_list, branch, actor):
|
|||||||
# only local windows command
|
# only local windows command
|
||||||
not file_normpath.startswith(
|
not file_normpath.startswith(
|
||||||
os.path.join(
|
os.path.join(
|
||||||
"", "stirling-pdf", "src", "main", "resources", "messages_"
|
"", "app", "core", "src", "main", "resources", "messages_"
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
and not file_normpath.startswith(
|
and not file_normpath.startswith(
|
||||||
os.path.join(
|
os.path.join(
|
||||||
os.getcwd(),
|
os.getcwd(),
|
||||||
"stirling-pdf",
|
"app",
|
||||||
|
"core",
|
||||||
"src",
|
"src",
|
||||||
"main",
|
"main",
|
||||||
"resources",
|
"resources",
|
||||||
@ -328,7 +329,7 @@ def check_for_differences(reference_file, file_list, branch, actor):
|
|||||||
report.append("## ❌ Overall Check Status: **_Failed_**")
|
report.append("## ❌ Overall Check Status: **_Failed_**")
|
||||||
report.append("")
|
report.append("")
|
||||||
report.append(
|
report.append(
|
||||||
f"@{actor} please check your translation if it conforms to the standard. Follow the format of [messages_en_GB.properties](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/stirling-pdf/src/main/resources/messages_en_GB.properties)"
|
f"@{actor} please check your translation if it conforms to the standard. Follow the format of [messages_en_GB.properties](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/app/core/src/main/resources/messages_en_GB.properties)"
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
report.append("## ✅ Overall Check Status: **_Success_**")
|
report.append("## ✅ Overall Check Status: **_Success_**")
|
||||||
@ -389,7 +390,8 @@ if __name__ == "__main__":
|
|||||||
file_list = glob.glob(
|
file_list = glob.glob(
|
||||||
os.path.join(
|
os.path.join(
|
||||||
os.getcwd(),
|
os.getcwd(),
|
||||||
"stirling-pdf",
|
"app",
|
||||||
|
"core",
|
||||||
"src",
|
"src",
|
||||||
"main",
|
"main",
|
||||||
"resources",
|
"resources",
|
||||||
|
27
.github/workflows/auto-labeler.yml
vendored
27
.github/workflows/auto-labeler.yml
vendored
@ -1,27 +0,0 @@
|
|||||||
name: "Pull Request Labeler"
|
|
||||||
on:
|
|
||||||
pull_request_target:
|
|
||||||
types: [opened, synchronize]
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
labeler:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
pull-requests: write
|
|
||||||
steps:
|
|
||||||
- name: Harden Runner
|
|
||||||
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
|
||||||
with:
|
|
||||||
egress-policy: audit
|
|
||||||
|
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
|
|
||||||
- name: Apply Labels
|
|
||||||
uses: actions/labeler@8558fd74291d67161a8a78ce36a881fa63b766a9 # v5.0.0
|
|
||||||
with:
|
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
configuration-path: .github/labeler-config.yml
|
|
||||||
sync-labels: true
|
|
57
.github/workflows/build.yml
vendored
57
.github/workflows/build.yml
vendored
@ -48,12 +48,12 @@ jobs:
|
|||||||
if: always()
|
if: always()
|
||||||
run: |
|
run: |
|
||||||
declare -a dirs=(
|
declare -a dirs=(
|
||||||
"stirling-pdf/build/reports/tests/"
|
"app/core/build/reports/tests/"
|
||||||
"stirling-pdf/build/test-results/"
|
"app/core/build/test-results/"
|
||||||
"common/build/reports/tests/"
|
"app/common/build/reports/tests/"
|
||||||
"common/build/test-results/"
|
"app/common/build/test-results/"
|
||||||
"proprietary/build/reports/tests/"
|
"app/proprietary/build/reports/tests/"
|
||||||
"proprietary/build/test-results/"
|
"app/proprietary/build/test-results/"
|
||||||
)
|
)
|
||||||
missing_reports=()
|
missing_reports=()
|
||||||
for dir in "${dirs[@]}"; do
|
for dir in "${dirs[@]}"; do
|
||||||
@ -74,19 +74,46 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
name: test-reports-jdk-${{ matrix.jdk-version }}-spring-security-${{ matrix.spring-security }}
|
name: test-reports-jdk-${{ matrix.jdk-version }}-spring-security-${{ matrix.spring-security }}
|
||||||
path: |
|
path: |
|
||||||
stirling-pdf/build/reports/tests/
|
app/core/build/reports/tests/
|
||||||
stirling-pdf/build/test-results/
|
app/core/build/test-results/
|
||||||
stirling-pdf/build/reports/problems/
|
app/core/build/reports/problems/
|
||||||
common/build/reports/tests/
|
app/common/build/reports/tests/
|
||||||
common/build/test-results/
|
app/common/build/test-results/
|
||||||
common/build/reports/problems/
|
app/common/build/reports/problems/
|
||||||
proprietary/build/reports/tests/
|
app/proprietary/build/reports/tests/
|
||||||
proprietary/build/test-results/
|
app/proprietary/build/test-results/
|
||||||
proprietary/build/reports/problems/
|
app/proprietary/build/reports/problems/
|
||||||
build/reports/problems/
|
build/reports/problems/
|
||||||
retention-days: 3
|
retention-days: 3
|
||||||
if-no-files-found: warn
|
if-no-files-found: warn
|
||||||
|
|
||||||
|
check-generateOpenApiDocs:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Harden Runner
|
||||||
|
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||||
|
with:
|
||||||
|
egress-policy: audit
|
||||||
|
|
||||||
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
|
||||||
|
- name: Set up JDK 17
|
||||||
|
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||||
|
with:
|
||||||
|
java-version: "17"
|
||||||
|
distribution: "temurin"
|
||||||
|
|
||||||
|
- uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1
|
||||||
|
|
||||||
|
- name: Generate OpenAPI documentation
|
||||||
|
run: ./gradlew :stirling-pdf:generateOpenApiDocs
|
||||||
|
|
||||||
|
- name: Upload OpenAPI Documentation
|
||||||
|
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||||
|
with:
|
||||||
|
name: openapi-docs
|
||||||
|
path: ./SwaggerDoc.json
|
||||||
|
|
||||||
check-licence:
|
check-licence:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
12
.github/workflows/check_properties.yml
vendored
12
.github/workflows/check_properties.yml
vendored
@ -4,7 +4,7 @@ on:
|
|||||||
pull_request_target:
|
pull_request_target:
|
||||||
types: [opened, synchronize, reopened]
|
types: [opened, synchronize, reopened]
|
||||||
paths:
|
paths:
|
||||||
- "stirling-pdf/src/main/resources/messages_*.properties"
|
- "app/core/src/main/resources/messages_*.properties"
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read # Allow read access to repository content
|
contents: read # Allow read access to repository content
|
||||||
@ -67,7 +67,7 @@ jobs:
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
# Get changed files and filter for properties files, handle case where no matches are found
|
# Get changed files and filter for properties files, handle case where no matches are found
|
||||||
gh pr view ${{ steps.get-pr-data.outputs.pr_number }} --json files -q ".files[].path" | grep -E '^stirling-pdf/src/main/resources/messages_[a-zA-Z_]{2}_[a-zA-Z_]{2,7}\.properties$' > changed_files.txt || echo "No matching properties files found in PR"
|
gh pr view ${{ steps.get-pr-data.outputs.pr_number }} --json files -q ".files[].path" | grep -E '^app/core/src/main/resources/messages_[a-zA-Z_]{2}_[a-zA-Z_]{2,7}\.properties$' > changed_files.txt || echo "No matching properties files found in PR"
|
||||||
# Check if any files were found
|
# Check if any files were found
|
||||||
if [ ! -s changed_files.txt ]; then
|
if [ ! -s changed_files.txt ]; then
|
||||||
echo "No properties files changed in this PR"
|
echo "No properties files changed in this PR"
|
||||||
@ -117,7 +117,7 @@ jobs:
|
|||||||
const changedFiles = files
|
const changedFiles = files
|
||||||
.filter(file =>
|
.filter(file =>
|
||||||
file.status !== "removed" &&
|
file.status !== "removed" &&
|
||||||
/^stirling-pdf\/src\/main\/resources\/messages_[a-zA-Z_]{2}_[a-zA-Z_]{2,7}\.properties$/.test(file.filename)
|
/^app\/core\/src\/main\/resources\/messages_[a-zA-Z_]{2}_[a-zA-Z_]{2,7}\.properties$/.test(file.filename)
|
||||||
)
|
)
|
||||||
.map(file => file.filename);
|
.map(file => file.filename);
|
||||||
|
|
||||||
@ -157,12 +157,12 @@ jobs:
|
|||||||
|
|
||||||
// Determine reference file
|
// Determine reference file
|
||||||
let referenceFilePath;
|
let referenceFilePath;
|
||||||
if (changedFiles.includes("stirling-pdf/src/main/resources/messages_en_GB.properties")) {
|
if (changedFiles.includes("app/core/src/main/resources/messages_en_GB.properties")) {
|
||||||
console.log("Using PR branch reference file.");
|
console.log("Using PR branch reference file.");
|
||||||
const { data: fileContent } = await github.rest.repos.getContent({
|
const { data: fileContent } = await github.rest.repos.getContent({
|
||||||
owner: prRepoOwner,
|
owner: prRepoOwner,
|
||||||
repo: prRepoName,
|
repo: prRepoName,
|
||||||
path: "stirling-pdf/src/main/resources/messages_en_GB.properties",
|
path: "app/core/src/main/resources/messages_en_GB.properties",
|
||||||
ref: branch,
|
ref: branch,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -174,7 +174,7 @@ jobs:
|
|||||||
const { data: fileContent } = await github.rest.repos.getContent({
|
const { data: fileContent } = await github.rest.repos.getContent({
|
||||||
owner: repoOwner,
|
owner: repoOwner,
|
||||||
repo: repoName,
|
repo: repoName,
|
||||||
path: "stirling-pdf/src/main/resources/messages_en_GB.properties",
|
path: "app/core/src/main/resources/messages_en_GB.properties",
|
||||||
ref: "main",
|
ref: "main",
|
||||||
});
|
});
|
||||||
|
|
||||||
|
4
.github/workflows/licenses-update.yml
vendored
4
.github/workflows/licenses-update.yml
vendored
@ -57,11 +57,11 @@ jobs:
|
|||||||
|
|
||||||
- name: Move and rename license file
|
- name: Move and rename license file
|
||||||
run: |
|
run: |
|
||||||
mv build/reports/dependency-license/index.json stirling-pdf/src/main/resources/static/3rdPartyLicenses.json
|
mv build/reports/dependency-license/index.json app/core/src/main/resources/static/3rdPartyLicenses.json
|
||||||
|
|
||||||
- name: Commit changes
|
- name: Commit changes
|
||||||
run: |
|
run: |
|
||||||
git add stirling-pdf/src/main/resources/static/3rdPartyLicenses.json
|
git add app/core/src/main/resources/static/3rdPartyLicenses.json
|
||||||
git diff --staged --quiet || echo "CHANGES_DETECTED=true" >> $GITHUB_ENV
|
git diff --staged --quiet || echo "CHANGES_DETECTED=true" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
|
2
.github/workflows/multiOSReleases.yml
vendored
2
.github/workflows/multiOSReleases.yml
vendored
@ -86,7 +86,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
mkdir ./binaries
|
mkdir ./binaries
|
||||||
mv ./build/launch4j/Stirling-PDF.exe ./binaries/win-Stirling-PDF-portable-Server${{ matrix.file_suffix }}.exe
|
mv ./build/launch4j/Stirling-PDF.exe ./binaries/win-Stirling-PDF-portable-Server${{ matrix.file_suffix }}.exe
|
||||||
mv ./stirling-pdf/build/libs/stirling-pdf-${{ needs.read_versions.outputs.version }}.jar ./binaries/Stirling-PDF${{ matrix.file_suffix }}.jar
|
mv ./app/core/build/libs/stirling-pdf-${{ needs.read_versions.outputs.version }}.jar ./binaries/Stirling-PDF${{ matrix.file_suffix }}.jar
|
||||||
|
|
||||||
- name: Upload build artifacts
|
- name: Upload build artifacts
|
||||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||||
|
10
.github/workflows/sync_files.yml
vendored
10
.github/workflows/sync_files.yml
vendored
@ -8,8 +8,8 @@ on:
|
|||||||
paths:
|
paths:
|
||||||
- "build.gradle"
|
- "build.gradle"
|
||||||
- "README.md"
|
- "README.md"
|
||||||
- "stirling-pdf/src/main/resources/messages_*.properties"
|
- "app/core/src/main/resources/messages_*.properties"
|
||||||
- "stirling-pdf/src/main/resources/static/3rdPartyLicenses.json"
|
- "app/core/src/main/resources/static/3rdPartyLicenses.json"
|
||||||
- "scripts/ignore_translation.toml"
|
- "scripts/ignore_translation.toml"
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
@ -41,11 +41,11 @@ jobs:
|
|||||||
|
|
||||||
- name: Sync translation property files
|
- name: Sync translation property files
|
||||||
run: |
|
run: |
|
||||||
python .github/scripts/check_language_properties.py --reference-file "stirling-pdf/src/main/resources/messages_en_GB.properties" --branch main
|
python .github/scripts/check_language_properties.py --reference-file "app/core/src/main/resources/messages_en_GB.properties" --branch main
|
||||||
|
|
||||||
- name: Commit translation files
|
- name: Commit translation files
|
||||||
run: |
|
run: |
|
||||||
git add stirling-pdf/src/main/resources/messages_*.properties
|
git add app/core/src/main/resources/messages_*.properties
|
||||||
git diff --staged --quiet || git commit -m ":memo: Sync translation files" || echo "No changes detected"
|
git diff --staged --quiet || git commit -m ":memo: Sync translation files" || echo "No changes detected"
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
@ -101,4 +101,4 @@ jobs:
|
|||||||
sign-commits: true
|
sign-commits: true
|
||||||
add-paths: |
|
add-paths: |
|
||||||
README.md
|
README.md
|
||||||
stirling-pdf/src/main/resources/messages_*.properties
|
app/core/src/main/resources/messages_*.properties
|
||||||
|
6
.gitignore
vendored
6
.gitignore
vendored
@ -125,9 +125,9 @@ SwaggerDoc.json
|
|||||||
*.rar
|
*.rar
|
||||||
*.db
|
*.db
|
||||||
/build
|
/build
|
||||||
/stirling-pdf/build
|
/app/core/build
|
||||||
/common/build
|
/app/common/build
|
||||||
/proprietary/build
|
/app/proprietary/build
|
||||||
|
|
||||||
# Byte-compiled / optimized / DLL files
|
# Byte-compiled / optimized / DLL files
|
||||||
__pycache__/
|
__pycache__/
|
||||||
|
@ -20,7 +20,7 @@ repos:
|
|||||||
- --skip="./.*,*.csv,*.json,*.ambr"
|
- --skip="./.*,*.csv,*.json,*.ambr"
|
||||||
- --quiet-level=2
|
- --quiet-level=2
|
||||||
files: \.(html|css|js|py|md)$
|
files: \.(html|css|js|py|md)$
|
||||||
exclude: (.vscode|.devcontainer|stirling-pdf/src/main/resources|Dockerfile|.*/pdfjs.*|.*/thirdParty.*|bootstrap.*|.*\.min\..*|.*diff\.js)
|
exclude: (.vscode|.devcontainer|app/core/src/main/resources|app/proprietary/src/main/resources|Dockerfile|.*/pdfjs.*|.*/thirdParty.*|bootstrap.*|.*\.min\..*|.*diff\.js)
|
||||||
- repo: https://github.com/gitleaks/gitleaks
|
- repo: https://github.com/gitleaks/gitleaks
|
||||||
rev: v8.27.2
|
rev: v8.27.2
|
||||||
hooks:
|
hooks:
|
||||||
@ -34,3 +34,13 @@ repos:
|
|||||||
- id: trailing-whitespace
|
- id: trailing-whitespace
|
||||||
files: ^.*(\.js|\.java|\.py|\.yml)$
|
files: ^.*(\.js|\.java|\.py|\.yml)$
|
||||||
exclude: ^(.*/pdfjs.*|.*/thirdParty.*|bootstrap.*|.*\.min\..*|.*diff\.js|\.github/workflows/.*$)
|
exclude: ^(.*/pdfjs.*|.*/thirdParty.*|bootstrap.*|.*\.min\..*|.*diff\.js|\.github/workflows/.*$)
|
||||||
|
# - repo: https://github.com/thibaudcolas/pre-commit-stylelint
|
||||||
|
# rev: v16.21.1
|
||||||
|
# hooks:
|
||||||
|
# - id: stylelint
|
||||||
|
# additional_dependencies:
|
||||||
|
# - stylelint@16.21.1
|
||||||
|
# - stylelint-config-standard@38.0.0
|
||||||
|
# - "@stylistic/stylelint-plugin@3.1.3"
|
||||||
|
# files: \.(css)$
|
||||||
|
# args: [--fix]
|
26
.vscode/settings.json
vendored
26
.vscode/settings.json
vendored
@ -3,6 +3,9 @@
|
|||||||
"editor.guides.bracketPairs": "active",
|
"editor.guides.bracketPairs": "active",
|
||||||
"editor.guides.bracketPairsHorizontal": "active",
|
"editor.guides.bracketPairsHorizontal": "active",
|
||||||
"cSpell.enabled": false,
|
"cSpell.enabled": false,
|
||||||
|
"[feature]": {
|
||||||
|
"editor.defaultFormatter": "alexkrechik.cucumberautocomplete"
|
||||||
|
},
|
||||||
"[java]": {
|
"[java]": {
|
||||||
"editor.defaultFormatter": "josevseb.google-java-format-for-vs-code"
|
"editor.defaultFormatter": "josevseb.google-java-format-for-vs-code"
|
||||||
},
|
},
|
||||||
@ -76,13 +79,17 @@
|
|||||||
".venv*/",
|
".venv*/",
|
||||||
".vscode/",
|
".vscode/",
|
||||||
"bin/",
|
"bin/",
|
||||||
"common/bin/",
|
"app/core/bin/",
|
||||||
"proprietary/bin/",
|
"app/common/bin/",
|
||||||
|
"app/proprietary/bin/",
|
||||||
"build/",
|
"build/",
|
||||||
"common/build/",
|
"app/core/build/",
|
||||||
"proprietary/build/",
|
"app/common/build/",
|
||||||
|
"app/proprietary/build/",
|
||||||
"configs/",
|
"configs/",
|
||||||
|
"app/core/configs/",
|
||||||
"customFiles/",
|
"customFiles/",
|
||||||
|
"app/core/customFiles/",
|
||||||
"docs/",
|
"docs/",
|
||||||
"exampleYmlFiles",
|
"exampleYmlFiles",
|
||||||
"gradle/",
|
"gradle/",
|
||||||
@ -94,8 +101,9 @@
|
|||||||
".git-blame-ignore-revs",
|
".git-blame-ignore-revs",
|
||||||
".gitattributes",
|
".gitattributes",
|
||||||
".gitignore",
|
".gitignore",
|
||||||
"common/.gitignore",
|
"app/core/.gitignore",
|
||||||
"proprietary/.gitignore",
|
"app/common/.gitignore",
|
||||||
|
"app/proprietary/.gitignore",
|
||||||
".pre-commit-config.yaml",
|
".pre-commit-config.yaml",
|
||||||
],
|
],
|
||||||
// Enables signature help in Java.
|
// Enables signature help in Java.
|
||||||
@ -127,8 +135,8 @@
|
|||||||
"html.format.maxPreserveNewLines": 2,
|
"html.format.maxPreserveNewLines": 2,
|
||||||
"stylelint.configFile": "devTools/.stylelintrc.json",
|
"stylelint.configFile": "devTools/.stylelintrc.json",
|
||||||
"java.project.sourcePaths": [
|
"java.project.sourcePaths": [
|
||||||
"stirling-pdf/src/main/java",
|
"app/core/src/main/java",
|
||||||
"common/src/main/java",
|
"app/common/src/main/java",
|
||||||
"proprietary/src/main/java"
|
"app/proprietary/src/main/java"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -4,8 +4,8 @@ FROM alpine:3.22.0@sha256:8a1f59ffb675680d47db6337b49d22281a139e9d709335b492be02
|
|||||||
# Copy necessary files
|
# Copy necessary files
|
||||||
COPY scripts /scripts
|
COPY scripts /scripts
|
||||||
COPY pipeline /pipeline
|
COPY pipeline /pipeline
|
||||||
COPY stirling-pdf/src/main/resources/static/fonts/*.ttf /usr/share/fonts/opentype/noto/
|
COPY app/core/src/main/resources/static/fonts/*.ttf /usr/share/fonts/opentype/noto/
|
||||||
COPY stirling-pdf/build/libs/*.jar app.jar
|
COPY app/core/build/libs/*.jar app.jar
|
||||||
|
|
||||||
ARG VERSION_TAG
|
ARG VERSION_TAG
|
||||||
|
|
||||||
|
@ -5,9 +5,9 @@ COPY build.gradle .
|
|||||||
COPY settings.gradle .
|
COPY settings.gradle .
|
||||||
COPY gradlew .
|
COPY gradlew .
|
||||||
COPY gradle gradle/
|
COPY gradle gradle/
|
||||||
COPY stirling-pdf/build.gradle stirling-pdf/.
|
COPY app/core/build.gradle core/.
|
||||||
COPY common/build.gradle common/.
|
COPY app/common/build.gradle common/.
|
||||||
COPY proprietary/build.gradle proprietary/.
|
COPY app/proprietary/build.gradle proprietary/.
|
||||||
RUN ./gradlew build -x spotlessApply -x spotlessCheck -x test -x sonarqube || return 0
|
RUN ./gradlew build -x spotlessApply -x spotlessCheck -x test -x sonarqube || return 0
|
||||||
|
|
||||||
# Set the working directory
|
# Set the working directory
|
||||||
@ -27,8 +27,8 @@ FROM alpine:3.22.0@sha256:8a1f59ffb675680d47db6337b49d22281a139e9d709335b492be02
|
|||||||
# Copy necessary files
|
# Copy necessary files
|
||||||
COPY scripts /scripts
|
COPY scripts /scripts
|
||||||
COPY pipeline /pipeline
|
COPY pipeline /pipeline
|
||||||
COPY stirling-pdf/src/main/resources/static/fonts/*.ttf /usr/share/fonts/opentype/noto/
|
COPY app/core/src/main/resources/static/fonts/*.ttf /usr/share/fonts/opentype/noto/
|
||||||
COPY --from=build /app/stirling-pdf/build/libs/*.jar app.jar
|
COPY --from=build /app/core/build/libs/*.jar app.jar
|
||||||
|
|
||||||
ARG VERSION_TAG
|
ARG VERSION_TAG
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ COPY scripts/download-security-jar.sh /scripts/download-security-jar.sh
|
|||||||
COPY scripts/init-without-ocr.sh /scripts/init-without-ocr.sh
|
COPY scripts/init-without-ocr.sh /scripts/init-without-ocr.sh
|
||||||
COPY scripts/installFonts.sh /scripts/installFonts.sh
|
COPY scripts/installFonts.sh /scripts/installFonts.sh
|
||||||
COPY pipeline /pipeline
|
COPY pipeline /pipeline
|
||||||
COPY stirling-pdf/build/libs/*.jar app.jar
|
COPY app/core/build/libs/*.jar app.jar
|
||||||
|
|
||||||
# Set up necessary directories and permissions
|
# Set up necessary directories and permissions
|
||||||
RUN echo "@testing https://dl-cdn.alpinelinux.org/alpine/edge/main" | tee -a /etc/apk/repositories && \
|
RUN echo "@testing https://dl-cdn.alpinelinux.org/alpine/edge/main" | tee -a /etc/apk/repositories && \
|
||||||
@ -52,4 +52,4 @@ EXPOSE 8080/tcp
|
|||||||
|
|
||||||
# Run the application
|
# Run the application
|
||||||
ENTRYPOINT ["tini", "--", "/scripts/init-without-ocr.sh"]
|
ENTRYPOINT ["tini", "--", "/scripts/init-without-ocr.sh"]
|
||||||
CMD ["java", "-Dfile.encoding=UTF-8", "-Djava.io.tmpdir=/tmp/stirling-pdf", "-jar", "/app.jar"]
|
CMD ["java", "-Dfile.encoding=UTF-8", "-Djava.io.tmpdir=/tmp/stirling-pdf", "-jar", "/app.jar"]
|
||||||
|
4
LICENSE
4
LICENSE
@ -4,8 +4,8 @@ Copyright (c) 2025 Stirling PDF Inc.
|
|||||||
|
|
||||||
Portions of this software are licensed as follows:
|
Portions of this software are licensed as follows:
|
||||||
|
|
||||||
* All content that resides under the "proprietary/" directory of this repository,
|
* All content that resides under the "app/proprietary/" directory of this repository,
|
||||||
if that directory exists, is licensed under the license defined in "proprietary/LICENSE".
|
if that directory exists, is licensed under the license defined in "app/proprietary/LICENSE".
|
||||||
* Content outside of the above mentioned directories or restrictions above is
|
* Content outside of the above mentioned directories or restrictions above is
|
||||||
available under the MIT License as defined below.
|
available under the MIT License as defined below.
|
||||||
|
|
||||||
|
2
common/.gitignore → app/common/.gitignore
vendored
2
common/.gitignore → app/common/.gitignore
vendored
@ -124,7 +124,7 @@ SwaggerDoc.json
|
|||||||
*.rar
|
*.rar
|
||||||
*.db
|
*.db
|
||||||
/build
|
/build
|
||||||
/common/build/
|
/app/common/build/
|
||||||
|
|
||||||
# Byte-compiled / optimized / DLL files
|
# Byte-compiled / optimized / DLL files
|
||||||
__pycache__/
|
__pycache__/
|
@ -6,7 +6,6 @@ import java.nio.file.Path;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.springframework.beans.factory.DisposableBean;
|
import org.springframework.beans.factory.DisposableBean;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@ -24,7 +23,6 @@ public class TempFileShutdownHook implements DisposableBean {
|
|||||||
|
|
||||||
private final TempFileRegistry registry;
|
private final TempFileRegistry registry;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
public TempFileShutdownHook(TempFileRegistry registry) {
|
public TempFileShutdownHook(TempFileRegistry registry) {
|
||||||
this.registry = registry;
|
this.registry = registry;
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user