diff --git a/.github/scripts/sign-osx-distro-file.sh b/.github/scripts/sign-osx-distro-file.sh
index 9c6613d063..db94dd6e57 100755
--- a/.github/scripts/sign-osx-distro-file.sh
+++ b/.github/scripts/sign-osx-distro-file.sh
@@ -48,11 +48,6 @@ do
codesign --verbose --deep --force --timestamp --entitlements "${entitlements}" --options=runtime --keychain "${KEYCHAIN}" -s "${MACOS_CERTIFICATE_ID}" $f
done
-# These end being inside osx distro tar.gz file built on Linux
-rm -rf ${dir}/${destination_folder_name}/SpringToolSuite4.app/plugins
-rm -rf ${dir}/${destination_folder_name}/SpringToolSuite4.app/p2
-rm -f ${dir}/${destination_folder_name}/SpringToolSuite4.app/artifacts.xml
-
# Sign the app
ls -la ${dir}/${destination_folder_name}/SpringToolSuite4.app/
codesign --verbose --deep --force --timestamp --entitlements "${entitlements}" --options=runtime --keychain "${KEYCHAIN}" -s "${MACOS_CERTIFICATE_ID}" ${dir}/${destination_folder_name}/SpringToolSuite4.app
@@ -71,7 +66,7 @@ echo ' "format": "UDZO"' >> dmg-config.json
echo '}' >> dmg-config.json
cat ./dmg-config.json
dmg_filename=${filename%.*.*}.dmg
-aboyko-appdmg ./dmg-config.json ../${dmg_filename}
+appdmg ./dmg-config.json ../${dmg_filename}
cd ..
rm -rf ./${destination_folder_name}
diff --git a/.github/workflows/create-gh-release.yml b/.github/workflows/create-gh-release.yml
index f65e34da80..698c19084a 100644
--- a/.github/workflows/create-gh-release.yml
+++ b/.github/workflows/create-gh-release.yml
@@ -1,7 +1,7 @@
name: Create Release
on:
- workflow_dispatch:
+ workflow_call:
inputs:
version:
description: Github release marker, i.e. 4.20.1.RELEASE
@@ -64,4 +64,4 @@ jobs:
release_name: ${{ inputs.version }}
body_path: ${{ github.workspace }}/gen-changelog.md
draft: true
- prerelease: false
\ No newline at end of file
+ prerelease: false
diff --git a/.github/workflows/eclipse-ls-extensions-build.yml b/.github/workflows/eclipse-ls-extensions-build.yml
index 81c753a752..cf413c3e7b 100644
--- a/.github/workflows/eclipse-ls-extensions-build.yml
+++ b/.github/workflows/eclipse-ls-extensions-build.yml
@@ -14,7 +14,7 @@ on:
eclipse_profile:
description: Eclipse profile 'e429' etc
required: false
- default: 'e429'
+ default: 'e430'
type: string
skip_tests:
description: skip ls tests execution
@@ -113,14 +113,14 @@ jobs:
run: |
invalid_urls=`aws s3 ls s3://tools-spring-io/${{ steps.upload-p2-to-akamai.outputs.p2_path }}/ --recursive | awk '{$1=$2=$3=""; print $0}' | sed -e 's/^[ \t]*/https:\/\/cdn.spring.io\/spring-tools\//' | paste -sd' ' -`
echo "invalid_urls=$invalid_urls" >> $GITHUB_OUTPUT
- - name: Verify Eclipse LS Extensions on e431
+ - name: Verify Eclipse LS Extensions on e432
if: ${{ inputs.build_type == 'snapshot' }}
run: |
cd eclipse-language-servers
if command -v xvfb-run ; then
- xvfb-run ./mvnw --batch-mode clean package -Pe431 -P${{ inputs.build_type }} -Dhttpclient.retry-max=20 -Declipse.p2.mirrors=false -Dmaven.test.skip=true -Dtycho.localArtifacts=ignore
+ xvfb-run ./mvnw --batch-mode clean package -Pe432 -P${{ inputs.build_type }} -Dhttpclient.retry-max=20 -Declipse.p2.mirrors=false -Dmaven.test.skip=true -Dtycho.localArtifacts=ignore
else
- ./mvnw --batch-mode clean package -Pe431 -P${{ inputs.build_type }} -Dhttpclient.retry-max=20 -Declipse.p2.mirrors=false -Dmaven.test.skip=true -Dtycho.localArtifacts=ignore
+ ./mvnw --batch-mode clean package -Pe432 -P${{ inputs.build_type }} -Dhttpclient.retry-max=20 -Declipse.p2.mirrors=false -Dmaven.test.skip=true -Dtycho.localArtifacts=ignore
fi
purge_cache:
diff --git a/.github/workflows/gh-hosted-eclipse-distro-build.yml b/.github/workflows/gh-hosted-eclipse-distro-build.yml
index d03a0dead7..c484c8476b 100644
--- a/.github/workflows/gh-hosted-eclipse-distro-build.yml
+++ b/.github/workflows/gh-hosted-eclipse-distro-build.yml
@@ -235,7 +235,7 @@ jobs:
sign-osx-distros:
needs: [ eclipse-distro-build ]
- runs-on: macos-latest-xl
+ runs-on: macos-14
steps:
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9
with:
@@ -264,7 +264,7 @@ jobs:
- name: Install appdmg
run: |
python3 -m pip install setuptools
- npm install -g aboyko-appdmg
+ npm install -g appdmg
- name: Cloudgate S3 Configuration
uses: aws-actions/configure-aws-credentials@010d0da01d0b5a38af31e9c3470dbfdabdecca3a
with:
diff --git a/.github/workflows/publish-eclipse-release.yml b/.github/workflows/publish-eclipse-release.yml
index e4cfe92eef..36d4692ff9 100644
--- a/.github/workflows/publish-eclipse-release.yml
+++ b/.github/workflows/publish-eclipse-release.yml
@@ -38,11 +38,11 @@ jobs:
latest: ${{ inputs.eclipse_latest }}
secrets: inherit
-# create-github-release:
-# uses: ./.github/workflows/create-gh-release.yml
-# with:
-# version: ${{ inputs.release_version }}.RELEASE
-# secrets: inherit
+ create-github-release:
+ uses: ./.github/workflows/create-gh-release.yml
+ with:
+ version: ${{ inputs.release_version }}.RELEASE
+ secrets: inherit
# announce-release:
# needs: [ aggregate-ls-extension-update-site, aggregate-distro-update-site, create-github-release ]
diff --git a/.github/workflows/release-eclipse-distro-build.yml b/.github/workflows/release-eclipse-distro-build.yml
index f7953d46b5..7732eef7e2 100644
--- a/.github/workflows/release-eclipse-distro-build.yml
+++ b/.github/workflows/release-eclipse-distro-build.yml
@@ -14,30 +14,29 @@ on:
jobs:
- e429-distro:
+ e430-distro:
uses: ./.github/workflows/gh-hosted-eclipse-distro-build.yml
with:
- eclipse_profile: 'e429'
+ eclipse_profile: 'e430'
build_type: 'release'
p2-qualifier: 'RELEASE'
sts4-language-servers-version: ${{ inputs.sts4-language-servers-version }}
secrets: inherit
- e430-distro:
+ e431-distro:
uses: ./.github/workflows/gh-hosted-eclipse-distro-build.yml
with:
- eclipse_profile: 'e430'
+ eclipse_profile: 'e431'
build_type: 'release'
p2-qualifier: 'RELEASE'
sts4-language-servers-version: ${{ inputs.sts4-language-servers-version }}
secrets: inherit
- e431-distro:
+ e432-distro:
uses: ./.github/workflows/gh-hosted-eclipse-distro-build.yml
with:
- eclipse_profile: 'e431'
+ eclipse_profile: 'e432'
build_type: 'release'
p2-qualifier: 'RELEASE'
sts4-language-servers-version: ${{ inputs.sts4-language-servers-version }}
secrets: inherit
-
diff --git a/.github/workflows/snapshot-e429-eclipse-distro-build.yml b/.github/workflows/snapshot-e432-eclipse-distro-build.yml
similarity index 76%
rename from .github/workflows/snapshot-e429-eclipse-distro-build.yml
rename to .github/workflows/snapshot-e432-eclipse-distro-build.yml
index fea313f83f..8d8483ec15 100644
--- a/.github/workflows/snapshot-e429-eclipse-distro-build.yml
+++ b/.github/workflows/snapshot-e432-eclipse-distro-build.yml
@@ -1,7 +1,7 @@
-name: Snapshot - 4.29 Eclipse STS Distribution Build
+name: Snapshot - 4.32 Eclipse STS Distribution Build
concurrency:
- group: e429-snapshot
+ group: e432-snapshot
cancel-in-progress: true
on:
@@ -13,10 +13,10 @@ on:
# workflow_dispatch:
jobs:
- e429-distro:
+ e432-distro:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
uses: ./.github/workflows/gh-hosted-eclipse-distro-build.yml
with:
- eclipse_profile: 'e429'
+ eclipse_profile: 'e432'
build_type: 'snapshot'
secrets: inherit
\ No newline at end of file
diff --git a/.github/workflows/snapshot-eclipse-ls-extensions-build.yml b/.github/workflows/snapshot-eclipse-ls-extensions-build.yml
index f8b8a879df..2ed075b31d 100644
--- a/.github/workflows/snapshot-eclipse-ls-extensions-build.yml
+++ b/.github/workflows/snapshot-eclipse-ls-extensions-build.yml
@@ -14,6 +14,6 @@ jobs:
eclipse-ls-extensions:
uses: ./.github/workflows/eclipse-ls-extensions-build.yml
with:
- eclipse_profile: 'e429'
+ eclipse_profile: 'e430'
build_type: 'snapshot'
secrets: inherit
diff --git a/concourse/pipeline.yml b/concourse/pipeline.yml
index 046579e5e5..af2e0955f1 100644
--- a/concourse/pipeline.yml
+++ b/concourse/pipeline.yml
@@ -268,19 +268,6 @@ resources:
# secret_access_key: ((s3_prod_secretkey))
# region_name: ((s3_prod_region))
# regexp: release/STS4/fatjars/spring-boot-language-server-(.*).jar
-- name: vscode-snapshot-website
- type: s3-multi
- icon: content-save-outline
- source:
- bucket: ((s3_prod_bucket))
- access_key_id: ((s3_svc_accesskey))
- secret_access_key: ((s3_svc_secretkey))
- aws_role_arn: arn:aws:iam::((s3_svc_account_id)):role/((s3_svc_user))
- region_name: ((s3_region))
- path: snapshot/STS4/vscode-extensions
- change_dir_to: website
- options:
- - "--acl public-read"
- name: vscode-snapshot-website-akamai
type: s3-multi
icon: content-save-outline
@@ -1139,7 +1126,6 @@ jobs:
- task: build-website
file: sts4/concourse/tasks/build-vscode-website.yml
- in_parallel:
- - put: vscode-snapshot-website
- put: vscode-snapshot-website-akamai
# - name: build-fatjars
# plan:
diff --git a/eclipse-distribution/common/html/nightly-distributions.html b/eclipse-distribution/common/html/nightly-distributions.html
index cc27a57d20..a0f449e111 100644
--- a/eclipse-distribution/common/html/nightly-distributions.html
+++ b/eclipse-distribution/common/html/nightly-distributions.html
@@ -23,9 +23,9 @@
Eclipse p2 repositories
STS4 Distribution:
@@ -40,7 +40,13 @@ Eclipse p2 repositories
Eclipse-based Distribution Builds
- Spring Tool Suite 4 - based on Eclipse 2024-03 Milestone Builds (4.31.0)
+ Spring Tool Suite 4 - based on Eclipse 2023-06 Milestone Builds (4.32.0)
+
+
+
+ Spring Tool Suite 4 - based on Eclipse 2024-03 Release (4.31.0)
- Spring Tool Suite 4 - based on Eclipse 2023-09 Release (4.29.0)
-
-
-
Spring Tools 4 - Visual Studio Code Extensions
diff --git a/eclipse-distribution/org.springframework.boot.ide.branding.feature/feature.xml b/eclipse-distribution/org.springframework.boot.ide.branding.feature/feature.xml
index a444008b70..07d3601be7 100644
--- a/eclipse-distribution/org.springframework.boot.ide.branding.feature/feature.xml
+++ b/eclipse-distribution/org.springframework.boot.ide.branding.feature/feature.xml
@@ -2,7 +2,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
diff --git a/eclipse-distribution/org.springframework.boot.ide.branding/META-INF/MANIFEST.MF b/eclipse-distribution/org.springframework.boot.ide.branding/META-INF/MANIFEST.MF
index e36fb92aa0..049eb11ee3 100644
--- a/eclipse-distribution/org.springframework.boot.ide.branding/META-INF/MANIFEST.MF
+++ b/eclipse-distribution/org.springframework.boot.ide.branding/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.springframework.boot.ide.branding;singleton:=true
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Bundle-Vendor: %providerName
Require-Bundle: org.eclipse.ui,
org.eclipse.equinox.p2.ui,
diff --git a/eclipse-distribution/org.springframework.boot.ide.branding/pom.xml b/eclipse-distribution/org.springframework.boot.ide.branding/pom.xml
index 649a45eb39..aedc3128ce 100644
--- a/eclipse-distribution/org.springframework.boot.ide.branding/pom.xml
+++ b/eclipse-distribution/org.springframework.boot.ide.branding/pom.xml
@@ -7,7 +7,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
diff --git a/eclipse-distribution/org.springframework.boot.ide.product.e430/org.springframework.boot.ide.product b/eclipse-distribution/org.springframework.boot.ide.product.e430/org.springframework.boot.ide.product
index cf34a943b4..9a6709aeae 100644
--- a/eclipse-distribution/org.springframework.boot.ide.product.e430/org.springframework.boot.ide.product
+++ b/eclipse-distribution/org.springframework.boot.ide.product.e430/org.springframework.boot.ide.product
@@ -1,6 +1,6 @@
-
+
diff --git a/eclipse-distribution/org.springframework.boot.ide.product.e430/pom.xml b/eclipse-distribution/org.springframework.boot.ide.product.e430/pom.xml
index 96c6397c67..6ecce1823d 100644
--- a/eclipse-distribution/org.springframework.boot.ide.product.e430/pom.xml
+++ b/eclipse-distribution/org.springframework.boot.ide.product.e430/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
@@ -190,7 +190,7 @@
org.eclipse.equinox.p2.director
-nosplash
-destination
- ${project.build.directory}/products/org.springframework.boot.ide.branding.sts4/macosx/cocoa/x86_64/SpringToolSuite4.app
+ ${project.build.directory}/products/org.springframework.boot.ide.branding.sts4/macosx/cocoa/x86_64/SpringToolSuite4.app/Contents/Eclipse
-repository
${justj.repository}
-installIUs
@@ -211,7 +211,7 @@
org.eclipse.equinox.p2.director
-nosplash
-destination
- ${project.build.directory}/products/org.springframework.boot.ide.branding.sts4/macosx/cocoa/aarch64/SpringToolSuite4.app
+ ${project.build.directory}/products/org.springframework.boot.ide.branding.sts4/macosx/cocoa/aarch64/SpringToolSuite4.app/Contents/Eclipse
-repository
${justj.repository}
-installIUs
diff --git a/eclipse-distribution/org.springframework.boot.ide.product.e431/org.springframework.boot.ide.product b/eclipse-distribution/org.springframework.boot.ide.product.e431/org.springframework.boot.ide.product
index cf34a943b4..9a6709aeae 100644
--- a/eclipse-distribution/org.springframework.boot.ide.product.e431/org.springframework.boot.ide.product
+++ b/eclipse-distribution/org.springframework.boot.ide.product.e431/org.springframework.boot.ide.product
@@ -1,6 +1,6 @@
-
+
diff --git a/eclipse-distribution/org.springframework.boot.ide.product.e431/pom.xml b/eclipse-distribution/org.springframework.boot.ide.product.e431/pom.xml
index 96c6397c67..6ecce1823d 100644
--- a/eclipse-distribution/org.springframework.boot.ide.product.e431/pom.xml
+++ b/eclipse-distribution/org.springframework.boot.ide.product.e431/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
@@ -190,7 +190,7 @@
org.eclipse.equinox.p2.director
-nosplash
-destination
- ${project.build.directory}/products/org.springframework.boot.ide.branding.sts4/macosx/cocoa/x86_64/SpringToolSuite4.app
+ ${project.build.directory}/products/org.springframework.boot.ide.branding.sts4/macosx/cocoa/x86_64/SpringToolSuite4.app/Contents/Eclipse
-repository
${justj.repository}
-installIUs
@@ -211,7 +211,7 @@
org.eclipse.equinox.p2.director
-nosplash
-destination
- ${project.build.directory}/products/org.springframework.boot.ide.branding.sts4/macosx/cocoa/aarch64/SpringToolSuite4.app
+ ${project.build.directory}/products/org.springframework.boot.ide.branding.sts4/macosx/cocoa/aarch64/SpringToolSuite4.app/Contents/Eclipse
-repository
${justj.repository}
-installIUs
diff --git a/eclipse-distribution/org.springframework.boot.ide.product.e429/category.xml b/eclipse-distribution/org.springframework.boot.ide.product.e432/category.xml
similarity index 98%
rename from eclipse-distribution/org.springframework.boot.ide.product.e429/category.xml
rename to eclipse-distribution/org.springframework.boot.ide.product.e432/category.xml
index 3bbccead80..14fd547bb2 100644
--- a/eclipse-distribution/org.springframework.boot.ide.product.e429/category.xml
+++ b/eclipse-distribution/org.springframework.boot.ide.product.e432/category.xml
@@ -131,7 +131,7 @@
-
+
@@ -140,6 +140,7 @@
+
diff --git a/eclipse-distribution/org.springframework.boot.ide.product.e429/org.springframework.boot.ide.product b/eclipse-distribution/org.springframework.boot.ide.product.e432/org.springframework.boot.ide.product
similarity index 97%
rename from eclipse-distribution/org.springframework.boot.ide.product.e429/org.springframework.boot.ide.product
rename to eclipse-distribution/org.springframework.boot.ide.product.e432/org.springframework.boot.ide.product
index cf34a943b4..629deca7de 100644
--- a/eclipse-distribution/org.springframework.boot.ide.product.e429/org.springframework.boot.ide.product
+++ b/eclipse-distribution/org.springframework.boot.ide.product.e432/org.springframework.boot.ide.product
@@ -1,6 +1,6 @@
-
+
@@ -69,7 +69,7 @@
-
+
diff --git a/eclipse-distribution/org.springframework.boot.ide.product.e429/p2.inf b/eclipse-distribution/org.springframework.boot.ide.product.e432/p2.inf
similarity index 100%
rename from eclipse-distribution/org.springframework.boot.ide.product.e429/p2.inf
rename to eclipse-distribution/org.springframework.boot.ide.product.e432/p2.inf
diff --git a/eclipse-distribution/org.springframework.boot.ide.product.e429/pom.xml b/eclipse-distribution/org.springframework.boot.ide.product.e432/pom.xml
similarity index 98%
rename from eclipse-distribution/org.springframework.boot.ide.product.e429/pom.xml
rename to eclipse-distribution/org.springframework.boot.ide.product.e432/pom.xml
index 0003dc929f..db77a7d465 100644
--- a/eclipse-distribution/org.springframework.boot.ide.product.e429/pom.xml
+++ b/eclipse-distribution/org.springframework.boot.ide.product.e432/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
@@ -15,7 +15,7 @@
eclipse-repository
- https://download.eclipse.org/justj/jres/17/updates/release/latest/
+ https://download.eclipse.org/justj/jres/21/updates/release/latest/
@@ -97,6 +97,7 @@
+
org.eclipse.tycho.extras
tycho-eclipserun-plugin
@@ -189,7 +190,7 @@
org.eclipse.equinox.p2.director
-nosplash
-destination
- ${project.build.directory}/products/org.springframework.boot.ide.branding.sts4/macosx/cocoa/x86_64/SpringToolSuite4.app
+ ${project.build.directory}/products/org.springframework.boot.ide.branding.sts4/macosx/cocoa/x86_64/SpringToolSuite4.app/Contents/Eclipse
-repository
${justj.repository}
-installIUs
@@ -210,7 +211,7 @@
org.eclipse.equinox.p2.director
-nosplash
-destination
- ${project.build.directory}/products/org.springframework.boot.ide.branding.sts4/macosx/cocoa/aarch64/SpringToolSuite4.app
+ ${project.build.directory}/products/org.springframework.boot.ide.branding.sts4/macosx/cocoa/aarch64/SpringToolSuite4.app/Contents/Eclipse
-repository
${justj.repository}
-installIUs
@@ -339,6 +340,7 @@
run
+
generate-s3-upload-info
verify
@@ -383,6 +385,7 @@
run
+
diff --git a/eclipse-distribution/pom.xml b/eclipse-distribution/pom.xml
index 054402487b..2eb1740c38 100644
--- a/eclipse-distribution/pom.xml
+++ b/eclipse-distribution/pom.xml
@@ -4,7 +4,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
pom
@@ -130,31 +130,38 @@
- e429
+ e430
- e4.29.0
- e4.29
- 2023-09
- 2023-09 (4.29)
- 2023-09
- 4.29
- e429
+ e4.30.0
+ e4.30
+ 2023-12
+ 2023-12 (4.30)
+ 2023-12
+ 4.30
+ e430
- 2023-09
+ 2023-12
p2
- https://download.eclipse.org/releases/2023-09/
+ https://download.eclipse.org/releases/2023-12/
orbit
p2
- https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/2023-09
+ https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/2023-12
-
+
+ buildship
+ p2
+
+ https://download.eclipse.org/buildship/updates/latest
+
+
m2e
p2
https://download.eclipse.org/technology/m2e/releases/latest/
+
latest-m2e-wtp-release
@@ -194,13 +201,13 @@
lsp4e
p2
- https://download.eclipse.org/lsp4e/releases/0.24.1/
+ https://download.eclipse.org/lsp4e/releases/0.25.0/
tm4e-snapshots
p2
- https://download.eclipse.org/tm4e/releases/0.8.1/
+ https://download.eclipse.org/tm4e/releases/latest/
- org.springframework.boot.ide.product.e429
+ org.springframework.boot.ide.product.e430
- e430
+ e431
- e4.30.0
- e4.30
- 2023-12
- 2023-12 (4.30)
- 2023-12
- 4.30
- e430
+ e4.31.0
+ e4.31
+ 2024-03
+ 2024-03 (4.31)
+ 2024-03
+ 4.31
+ e431
2023-12
p2
- https://download.eclipse.org/releases/2023-12/
+ https://download.eclipse.org/releases/2024-03/
orbit
p2
- https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/2023-12
+ https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/2024-03
- buildship
+ buildship-snapshots
p2
https://download.eclipse.org/buildship/updates/latest
-
+
m2e
p2
https://download.eclipse.org/technology/m2e/releases/latest/
@@ -294,7 +301,7 @@
lsp4e
p2
-
+
https://download.eclipse.org/lsp4e/snapshots/
@@ -317,32 +324,39 @@
../eclipse-extensions/org.springframework.ide.eclipse.xterm.macosx.x86_64
../eclipse-extensions/org.springframework.ide.eclipse.xterm.win32.x86_64
-->
- org.springframework.boot.ide.product.e430
+ org.springframework.boot.ide.product.e431
- e431
+ e432
- e4.31.0
- e4.31
- 2024-03
- 2024-03 (4.31)
- 2024-03
- 4.31
- e431
+ e4.32.0
+ e4.32
+ 2024-06
+ 2024-06 (4.32)
+ 2024-06
+ 4.32
+ e432
2023-12
p2
- https://download.eclipse.org/staging/2024-03/
+ https://download.eclipse.org/staging/2024-06/
+
+
+ 2023-12-i-builds
+ p2
+ https://download.eclipse.org/eclipse/updates/4.32-I-builds/
+
+
orbit
p2
- https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/2024-03
+ https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/2024-06
buildship-snapshots
@@ -394,8 +408,8 @@
lsp4e
p2
-
- https://download.eclipse.org/lsp4e/snapshots/
+
+ https://download.eclipse.org/lsp4e/snapshots/
tm4e-snapshots
@@ -417,7 +431,7 @@
../eclipse-extensions/org.springframework.ide.eclipse.xterm.macosx.x86_64
../eclipse-extensions/org.springframework.ide.eclipse.xterm.win32.x86_64
-->
- org.springframework.boot.ide.product.e431
+ org.springframework.boot.ide.product.e432
diff --git a/eclipse-extensions/org.springframework.boot.ide.main.feature/feature.xml b/eclipse-extensions/org.springframework.boot.ide.main.feature/feature.xml
index 83977431fe..8361608477 100644
--- a/eclipse-extensions/org.springframework.boot.ide.main.feature/feature.xml
+++ b/eclipse-extensions/org.springframework.boot.ide.main.feature/feature.xml
@@ -2,7 +2,7 @@
diff --git a/eclipse-extensions/org.springframework.boot.ide.main.feature/pom.xml b/eclipse-extensions/org.springframework.boot.ide.main.feature/pom.xml
index a6ca5e6fa0..a34d411595 100644
--- a/eclipse-extensions/org.springframework.boot.ide.main.feature/pom.xml
+++ b/eclipse-extensions/org.springframework.boot.ide.main.feature/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.beans.ui.live/META-INF/MANIFEST.MF b/eclipse-extensions/org.springframework.ide.eclipse.beans.ui.live/META-INF/MANIFEST.MF
index 8860bde757..61109f6a6d 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.beans.ui.live/META-INF/MANIFEST.MF
+++ b/eclipse-extensions/org.springframework.ide.eclipse.beans.ui.live/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Live Beans Tree
Bundle-SymbolicName: org.springframework.ide.eclipse.beans.ui.live;singleton:=true
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-17
Export-Package: org.springframework.ide.eclipse.beans.ui.live,
org.springframework.ide.eclipse.beans.ui.live.actions,
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.beans.ui.live/pom.xml b/eclipse-extensions/org.springframework.ide.eclipse.beans.ui.live/pom.xml
index 7554878239..ed36c873f8 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.beans.ui.live/pom.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.beans.ui.live/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.azure/META-INF/MANIFEST.MF b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.azure/META-INF/MANIFEST.MF
index 328e2de6ca..8ebb5273cc 100755
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.azure/META-INF/MANIFEST.MF
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.azure/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-SymbolicName: org.springframework.ide.eclipse.boot.dash.azure;singleton:=true
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Bundle-Vendor: VMware, Inc
Bundle-Name: Spring Boot Dash CF Support
Require-Bundle: org.eclipse.ui,
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.azure/pom.xml b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.azure/pom.xml
index a92cd58a77..37cc6143ea 100755
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.azure/pom.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.azure/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.docker/META-INF/MANIFEST.MF b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.docker/META-INF/MANIFEST.MF
index 0baf2e42af..f4807315c0 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.docker/META-INF/MANIFEST.MF
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.docker/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: org.springframework.ide.eclipse.boot.dash.docker
Bundle-SymbolicName: org.springframework.ide.eclipse.boot.dash.docker;singleton:=true
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Automatic-Module-Name: org.springframework.ide.eclipse.boot.dash.docker
Bundle-RequiredExecutionEnvironment: JavaSE-17
Require-Bundle: org.springframework.ide.eclipse.boot.dash,
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.docker/pom.xml b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.docker/pom.xml
index 272adb4305..bf2a355331 100755
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.docker/pom.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.docker/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.feature/feature.xml b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.feature/feature.xml
index 60d8ff54cb..8e77653d41 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.feature/feature.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.feature/feature.xml
@@ -14,7 +14,7 @@
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.feature/pom.xml b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.feature/pom.xml
index 87ab2c80b3..c6b106036c 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.feature/pom.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.feature/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.test/META-INF/MANIFEST.MF b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.test/META-INF/MANIFEST.MF
index da7fcb0df6..68c0e8c42f 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.test/META-INF/MANIFEST.MF
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.test/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Test
Bundle-SymbolicName: org.springframework.ide.eclipse.boot.dash.test
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Bundle-Vendor: VMware, Inc
Require-Bundle: org.junit,
org.eclipse.core.resources,
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.test/pom.xml b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.test/pom.xml
index 9a5c5103a3..73a220aa4f 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.test/pom.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.test/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.xterm/META-INF/MANIFEST.MF b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.xterm/META-INF/MANIFEST.MF
index 526def1cb9..eaadd2969d 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.xterm/META-INF/MANIFEST.MF
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.xterm/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Boot Dashboard integration with Xterm view
Bundle-SymbolicName: org.springframework.ide.eclipse.boot.dash.xterm;singleton:=true
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Automatic-Module-Name: org.springframework.ide.eclipse.boot.dash.xterm
Bundle-RequiredExecutionEnvironment: JavaSE-17
Require-Bundle: org.eclipse.core.runtime,
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.xterm/pom.xml b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.xterm/pom.xml
index 4b27e6ec76..a4eb630d8f 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.xterm/pom.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash.xterm/pom.xml
@@ -6,7 +6,7 @@
org.springframework.ide.eclipse
org.springframework.ide.eclipse.parent
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../pom.xml
eclipse-plugin
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash/META-INF/MANIFEST.MF b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash/META-INF/MANIFEST.MF
index c1de2f626f..1b074c55b4 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash/META-INF/MANIFEST.MF
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Spring Boot Dashboard View
Bundle-SymbolicName: org.springframework.ide.eclipse.boot.dash;singleton:=true
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Bundle-Activator: org.springframework.ide.eclipse.boot.dash.BootDashActivator
Bundle-Vendor: VMware, Inc
Require-Bundle: org.eclipse.ui,
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash/pom.xml b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash/pom.xml
index c421a7e42b..64a03caa05 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash/pom.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash/src/org/springframework/ide/eclipse/boot/dash/liveprocess/DefaultLiveProcessCommandExecutor.java b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash/src/org/springframework/ide/eclipse/boot/dash/liveprocess/DefaultLiveProcessCommandExecutor.java
index 5ee35b2b4f..f612b07020 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.dash/src/org/springframework/ide/eclipse/boot/dash/liveprocess/DefaultLiveProcessCommandExecutor.java
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.dash/src/org/springframework/ide/eclipse/boot/dash/liveprocess/DefaultLiveProcessCommandExecutor.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2019, 2023 Pivotal Software, Inc.
+ * Copyright (c) 2019, 2024 Pivotal Software, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -16,11 +16,8 @@
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
-import org.eclipse.lsp4e.LanguageServers;
-import org.eclipse.lsp4e.LanguageServers.LanguageServerProjectExecutor;
-import org.eclipse.lsp4e.LanguageServersRegistry;
-import org.eclipse.lsp4j.ExecuteCommandOptions;
import org.eclipse.lsp4j.ExecuteCommandParams;
+import org.springframework.ide.eclipse.boot.launch.BootLsCommandUtils;
import com.google.common.collect.ImmutableList;
@@ -35,7 +32,7 @@ public final class DefaultLiveProcessCommandExecutor implements LiveProcessComma
@SuppressWarnings("unchecked")
@Override
public Flux listCommands() {
- List>> futures = getLanguageServers().computeAll(ls -> ls.getWorkspaceService().executeCommand(new ExecuteCommandParams(
+ List>> futures = BootLsCommandUtils.getLanguageServers(CMD_LIST_PROCESSES).computeAll(ls -> ls.getWorkspaceService().executeCommand(new ExecuteCommandParams(
CMD_LIST_PROCESSES,
ImmutableList.of()
)).thenApply(o -> {
@@ -54,21 +51,10 @@ public Flux listCommands() {
@Override
public Mono executeCommand(CommandInfo cmd) {
- return Mono.fromFuture(getLanguageServers().collectAll(ls -> ls.getWorkspaceService().executeCommand(new ExecuteCommandParams(
+ return Mono.fromFuture(BootLsCommandUtils.getLanguageServers(cmd.command).collectAll(ls -> ls.getWorkspaceService().executeCommand(new ExecuteCommandParams(
cmd.command,
ImmutableList.of(cmd.info)
- ))).thenAccept(null));
+ ))).thenAccept(l -> {}));
}
- private LanguageServerProjectExecutor getLanguageServers() {
- return LanguageServers.forProject(null).withFilter(cap -> {
- ExecuteCommandOptions commandCap = cap.getExecuteCommandProvider();
- if (commandCap!=null) {
- List supportedCommands = commandCap.getCommands();
- return supportedCommands!=null && supportedCommands.contains(CMD_LIST_PROCESSES);
- }
- return false;
- }).withPreferredServer(LanguageServersRegistry.getInstance()
- .getDefinition("org.eclipse.languageserver.languages.springboot"));
- }
}
\ No newline at end of file
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.launch.test/META-INF/MANIFEST.MF b/eclipse-extensions/org.springframework.ide.eclipse.boot.launch.test/META-INF/MANIFEST.MF
index 1cb6388a15..ad782d44c2 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.launch.test/META-INF/MANIFEST.MF
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.launch.test/META-INF/MANIFEST.MF
@@ -2,7 +2,9 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Boot Launch Tests
Bundle-SymbolicName: org.springframework.ide.eclipse.boot.launch.test
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
+Import-Package: org.apache.commons.io,
+ org.apache.commons.lang3
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.junit,
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.launch.test/pom.xml b/eclipse-extensions/org.springframework.ide.eclipse.boot.launch.test/pom.xml
index d14108fa70..6637d1bb2d 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.launch.test/pom.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.launch.test/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/.classpath b/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/.classpath
index 43b986286a..8d8612144f 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/.classpath
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/.classpath
@@ -1,6 +1,6 @@
-
+
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/.settings/org.eclipse.jdt.core.prefs b/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/.settings/org.eclipse.jdt.core.prefs
index 9f6ece88bd..59fe89dce4 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/.settings/org.eclipse.jdt.core.prefs
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,15 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=17
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.source=17
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/META-INF/MANIFEST.MF b/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/META-INF/MANIFEST.MF
index 3ef31d1665..a3f6415594 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/META-INF/MANIFEST.MF
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: Boot Launch
Bundle-SymbolicName: org.springframework.ide.eclipse.boot.launch;singleton:=true
Bundle-Vendor: VMware, Inc
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.core.resources,
@@ -29,7 +29,11 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.jface.text,
org.eclipse.jdt.ui,
org.eclipse.ui.genericeditor,
- org.eclipse.ui.ide
+ org.eclipse.ui.ide,
+ org.eclipse.lsp4e,
+ org.eclipse.lsp4j,
+ com.google.gson,
+ org.eclipse.jdt.junit.core
Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-ActivationPolicy: lazy
Export-Package: org.springframework.ide.eclipse.boot.launch,
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/plugin.xml b/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/plugin.xml
index ed7ec551c2..c09175773f 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/plugin.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/plugin.xml
@@ -221,6 +221,11 @@
id="org.springframework.ide.eclipse.boot.commands.editStartersCommand"
name="Edit Starters">
+
+
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/src/org/springframework/ide/eclipse/boot/launch/BootLaunchActivator.java b/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/src/org/springframework/ide/eclipse/boot/launch/BootLaunchActivator.java
index f17c71a7bf..cd40c5ecd9 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/src/org/springframework/ide/eclipse/boot/launch/BootLaunchActivator.java
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/src/org/springframework/ide/eclipse/boot/launch/BootLaunchActivator.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2015 Pivotal, Inc.
+ * Copyright (c) 2015, 2024 Pivotal, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -15,6 +15,7 @@
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.debug.core.DebugPlugin;
+import org.eclipse.debug.core.ILaunchManager;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.Bundle;
@@ -37,7 +38,8 @@ public BootLaunchActivator() {
@Override
public void start(BundleContext context) throws Exception {
super.start(context);
- workspaceListener = new BootLaunchConfDeleter(ResourcesPlugin.getWorkspace(), DebugPlugin.getDefault().getLaunchManager());
+ ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager();
+ workspaceListener = new BootLaunchConfDeleter(ResourcesPlugin.getWorkspace(), launchManager);
instance = this;
IPreferenceStore myStore = instance.getPreferenceStore();
@@ -45,6 +47,8 @@ public void start(BundleContext context) throws Exception {
setPreference("org.eclipse.jdt.debug.ui", "org.eclipse.jdt.debug.ui.prompt_unable_to_install_breakpoint", false);
myStore.setValue("cglib.breakpoint.warning.disabled", true);
}
+
+ TestJarSupport.start();
}
private void setPreference(String plugin, String key, boolean value) {
@@ -70,6 +74,7 @@ public void stop(BundleContext context) throws Exception {
if (workspaceListener!=null) {
workspaceListener.dispose();
}
+ TestJarSupport.stop();
super.stop(context);
}
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/src/org/springframework/ide/eclipse/boot/launch/BootLsCommandUtils.java b/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/src/org/springframework/ide/eclipse/boot/launch/BootLsCommandUtils.java
new file mode 100644
index 0000000000..e51285df85
--- /dev/null
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/src/org/springframework/ide/eclipse/boot/launch/BootLsCommandUtils.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2024 Broadcom, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Broadcom, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.springframework.ide.eclipse.boot.launch;
+
+import java.util.List;
+import java.util.Optional;
+import java.util.concurrent.CompletableFuture;
+
+import org.eclipse.lsp4e.LanguageServers;
+import org.eclipse.lsp4e.LanguageServers.LanguageServerProjectExecutor;
+import org.eclipse.lsp4e.LanguageServersRegistry;
+import org.eclipse.lsp4j.ExecuteCommandOptions;
+import org.eclipse.lsp4j.ExecuteCommandParams;
+
+import com.google.common.collect.ImmutableList;
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+
+@SuppressWarnings("restriction")
+public class BootLsCommandUtils {
+
+ private static Gson GSON = new Gson();
+
+ public static LanguageServerProjectExecutor getLanguageServers(String command) {
+ return LanguageServers.forProject(null).withFilter(cap -> {
+ ExecuteCommandOptions commandCap = cap.getExecuteCommandProvider();
+ if (commandCap!=null) {
+ List supportedCommands = commandCap.getCommands();
+ return supportedCommands!=null && supportedCommands.contains(command);
+ }
+ return false;
+ }).withPreferredServer(LanguageServersRegistry.getInstance()
+ .getDefinition("org.eclipse.languageserver.languages.springboot"));
+ }
+
+ public static CompletableFuture> executeCommand(TypeToken resType, String cmd, Object... params) {
+ return getLanguageServers(cmd).computeFirst(ls -> ls.getWorkspaceService().executeCommand(new ExecuteCommandParams(
+ cmd,
+ ImmutableList.of(params)
+ ))).thenApply(o -> o.map(v -> GSON.fromJson(GSON.toJsonTree(v), resType)));
+ }
+
+}
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/src/org/springframework/ide/eclipse/boot/launch/TestJarLaunchListener.java b/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/src/org/springframework/ide/eclipse/boot/launch/TestJarLaunchListener.java
new file mode 100644
index 0000000000..989850c9bc
--- /dev/null
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.launch/src/org/springframework/ide/eclipse/boot/launch/TestJarLaunchListener.java
@@ -0,0 +1,209 @@
+/*******************************************************************************
+ * Copyright (c) 2024 Broadcom, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Broadcom, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.springframework.ide.eclipse.boot.launch;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+import java.util.regex.Pattern;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.debug.core.ILaunchDelegate;
+import org.eclipse.debug.core.ILaunchManager;
+import org.eclipse.debug.core.ILaunchesListener2;
+import org.eclipse.jdt.internal.junit.launcher.JUnitLaunchConfigurationConstants;
+import org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate;
+import org.springsource.ide.eclipse.commons.livexp.util.Log;
+
+import com.google.gson.reflect.TypeToken;
+
+@SuppressWarnings("restriction")
+class TestJarLaunchListener implements ILaunchesListener2 {
+
+ private static final Pattern TESTJAR_PATTERN = Pattern.compile("^spring-boot-testjars-\\d+\\.\\d+\\.\\d+(.*)?.jar$");
+
+ private static final String TESTJAR_ARTIFACTS = "spring.boot.test-jar-artifacts";
+
+ public record ExecutableProject(String name, String uri, String gav, String mainClass, Collection classpath) {}
+
+ public void launchRemoved(ILaunch launch) {
+ clearTestJarWorkspaceProjectFiles(launch.getLaunchConfiguration());
+ }
+
+ private void clearTestJarWorkspaceProjectFiles(ILaunchConfiguration configuration) {
+ try {
+ if (JUnitLaunchConfigurationConstants.ID_JUNIT_APPLICATION.equals(configuration.getType().getIdentifier())) {
+ Map oldTestJarArtifacts = configuration.getAttribute(TESTJAR_ARTIFACTS, Collections.emptyMap());
+ Map env = new HashMap<>(configuration.getAttribute(ILaunchManager.ATTR_ENVIRONMENT_VARIABLES, Collections.emptyMap()));
+ for (Map.Entry testJarArtifactEnvEntry : oldTestJarArtifacts.entrySet()) {
+ env.remove(testJarArtifactEnvEntry.getKey());
+ try {
+ Files.deleteIfExists(Paths.get(testJarArtifactEnvEntry.getValue()));
+ } catch (IOException e) {
+ Log.log(e);
+ }
+ }
+ ILaunchConfigurationWorkingCopy wc = configuration.getWorkingCopy();
+ wc.removeAttribute(TESTJAR_ARTIFACTS);
+ if (env.isEmpty()) {
+ wc.removeAttribute(ILaunchManager.ATTR_ENVIRONMENT_VARIABLES);
+ } else {
+ wc.setAttribute(ILaunchManager.ATTR_ENVIRONMENT_VARIABLES, env);
+ }
+ wc.doSave();
+ }
+ } catch (CoreException e) {
+ Log.log(e);
+ }
+ }
+
+ private void setupTestJarWorkspaceProjectFiles(ILaunchConfiguration configuration, Map testJarArtifactsEnvMap) {
+ try {
+ Map originalEnv = new HashMap<>(configuration.getAttribute(ILaunchManager.ATTR_ENVIRONMENT_VARIABLES, Collections.emptyMap()));
+ Map oldTestJarArtifacts = configuration.getAttribute(TESTJAR_ARTIFACTS, Collections.emptyMap());
+ for (Map.Entry envEntry : oldTestJarArtifacts.entrySet()) {
+ try {
+ Files.deleteIfExists(Paths.get(envEntry.getValue()));
+ } catch (IOException e) {
+ Log.log(e);
+ }
+ originalEnv.remove(envEntry.getKey());
+ }
+ for (String envVar : originalEnv.keySet()) {
+ testJarArtifactsEnvMap.remove(envVar);
+ }
+ originalEnv.putAll(testJarArtifactsEnvMap);
+ ILaunchConfigurationWorkingCopy wc = configuration.getWorkingCopy();
+ wc.setAttribute(TESTJAR_ARTIFACTS, testJarArtifactsEnvMap);
+ wc.setAttribute(ILaunchManager.ATTR_ENVIRONMENT_VARIABLES, originalEnv);
+ wc.doSave();
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void launchAdded(ILaunch launch) {
+ try {
+ ILaunchConfiguration configuration = launch.getLaunchConfiguration();
+ if (JUnitLaunchConfigurationConstants.ID_JUNIT_APPLICATION.equals(configuration.getType().getIdentifier())) {
+ ILaunchDelegate[] delegates = configuration.getType().getDelegates(Set.of(launch.getLaunchMode()));
+ if (delegates.length > 0) {
+ JUnitLaunchConfigurationDelegate delegate = (JUnitLaunchConfigurationDelegate) delegates[0].getDelegate();
+ String[] classpath = delegate.getClasspathAndModulepath(configuration)[0];
+ if (isTestJarsOnClasspath(classpath)) {
+ try {
+ getTestJarArtifactsMap()
+ .thenAccept(testJarArtifactsEnvMap -> setupTestJarWorkspaceProjectFiles(configuration, testJarArtifactsEnvMap))
+ .get(3000000, TimeUnit.SECONDS);
+ } catch (Exception e) {
+ Log.log(e);
+ }
+ }
+ }
+ }
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private static String createTestJarArtifactEnvKey(String gav) {
+ return "TESTJARS_ARTIFACT_%s".formatted(gav.replace(":", "_"));
+ }
+
+ private static boolean isTestJarsOnClasspath(String[] classpath) {
+ for (String cpe : classpath) {
+ Path p = Paths.get(cpe);
+ if (Files.isRegularFile(p) && TESTJAR_PATTERN.matcher(p.getFileName().toString()).matches()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private CompletableFuture
+
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.refactoring/pom.xml b/eclipse-extensions/org.springframework.ide.eclipse.boot.refactoring/pom.xml
index a5840629d8..30478e188e 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.refactoring/pom.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.refactoring/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.refactoring/src/org/springframework/ide/eclipse/boot/refactoring/ConvertPropertiesToYamlHandler.java b/eclipse-extensions/org.springframework.ide.eclipse.boot.refactoring/src/org/springframework/ide/eclipse/boot/refactoring/ConvertPropertiesToYamlHandler.java
index 13a14d42b7..96a70a0f34 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.refactoring/src/org/springframework/ide/eclipse/boot/refactoring/ConvertPropertiesToYamlHandler.java
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.refactoring/src/org/springframework/ide/eclipse/boot/refactoring/ConvertPropertiesToYamlHandler.java
@@ -24,7 +24,6 @@
import org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation;
import org.eclipse.ui.handlers.HandlerUtil;
import org.springsource.ide.eclipse.commons.livexp.util.Log;
-import org.eclipse.ltk.core.refactoring.RefactoringContext;
public class ConvertPropertiesToYamlHandler extends AbstractHandler {
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.refactoring/src/org/springframework/ide/eclipse/boot/refactoring/ConvertYamlToPropertiesHandler.java b/eclipse-extensions/org.springframework.ide.eclipse.boot.refactoring/src/org/springframework/ide/eclipse/boot/refactoring/ConvertYamlToPropertiesHandler.java
new file mode 100644
index 0000000000..52e19471e2
--- /dev/null
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.refactoring/src/org/springframework/ide/eclipse/boot/refactoring/ConvertYamlToPropertiesHandler.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2024 Broadcom, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Broadcom, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.springframework.ide.eclipse.boot.refactoring;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.filebuffers.FileBuffers;
+import org.eclipse.core.filebuffers.ITextFileBuffer;
+import org.eclipse.core.filebuffers.LocationKind;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ltk.ui.refactoring.RefactoringWizard;
+import org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.springsource.ide.eclipse.commons.livexp.util.Log;
+
+public class ConvertYamlToPropertiesHandler extends AbstractHandler {
+
+ private static ITextFileBuffer getDirtyFileBuffer(IFile file) {
+ ITextFileBuffer buffer = FileBuffers.getTextFileBufferManager().getTextFileBuffer(file.getFullPath(), LocationKind.IFILE);
+ if (buffer!=null && buffer.isDirty()) {
+ return buffer;
+ }
+ return null;
+ }
+
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ IFile file = getTarget(event);
+ try {
+ if (file!=null) {
+ ITextFileBuffer dirtyBuffer = getDirtyFileBuffer(file);
+ if (dirtyBuffer!=null) {
+ dirtyBuffer.commit(null, true);
+ }
+ ConvertYamlToPropertiesRefactoring refactoring = new ConvertYamlToPropertiesRefactoring(file);
+ RefactoringWizard wizard = new RefactoringWizard(refactoring,
+ RefactoringWizard.DIALOG_BASED_USER_INTERFACE |
+ RefactoringWizard.CHECK_INITIAL_CONDITIONS_ON_OPEN |
+ RefactoringWizard.NO_BACK_BUTTON_ON_STATUS_DIALOG
+ ) {
+
+ @Override
+ protected void addUserInputPages() {
+ //no inputs required
+ }
+ };
+ new RefactoringWizardOpenOperation(wizard).run(HandlerUtil.getActiveShell(event), "Convert '"+file.getName()+"' to .properties");
+ }
+ } catch (Exception e) {
+ Log.log(e);
+ }
+ return null;
+ }
+
+ private IFile getTarget(ExecutionEvent event) {
+ ISelection selection = HandlerUtil.getActiveMenuSelection(event);
+ IStructuredSelection ss = null;
+ if (selection instanceof IStructuredSelection) {
+ ss = (IStructuredSelection) selection;
+ } else {
+ selection = HandlerUtil.getActiveMenuEditorInput(event);
+ if (selection instanceof IStructuredSelection) {
+ ss = (IStructuredSelection) selection;
+ }
+ }
+ if (ss!=null && !ss.isEmpty()) {
+ return asFile(ss.getFirstElement());
+ }
+ return null;
+ }
+
+ private IFile asFile(Object selectedElement) {
+ if (selectedElement instanceof IFile) {
+ return (IFile) selectedElement;
+ }
+ if (selectedElement instanceof IAdaptable) {
+ return ((IAdaptable) selectedElement).getAdapter(IFile.class);
+ }
+ return null;
+ }
+}
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.refactoring/src/org/springframework/ide/eclipse/boot/refactoring/ConvertYamlToPropertiesRefactoring.java b/eclipse-extensions/org.springframework.ide.eclipse.boot.refactoring/src/org/springframework/ide/eclipse/boot/refactoring/ConvertYamlToPropertiesRefactoring.java
new file mode 100644
index 0000000000..8fbde189ac
--- /dev/null
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.refactoring/src/org/springframework/ide/eclipse/boot/refactoring/ConvertYamlToPropertiesRefactoring.java
@@ -0,0 +1,166 @@
+/*******************************************************************************
+ * Copyright (c) 2024 Broadcom, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Broadcom, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.springframework.ide.eclipse.boot.refactoring;
+
+import java.io.IOException;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.util.Map;
+import java.util.Properties;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.ltk.core.refactoring.Change;
+import org.eclipse.ltk.core.refactoring.CompositeChange;
+import org.eclipse.ltk.core.refactoring.Refactoring;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.TextFileChange;
+import org.eclipse.ltk.core.refactoring.resource.RenameResourceChange;
+import org.eclipse.text.edits.ReplaceEdit;
+import org.springsource.ide.eclipse.commons.frameworks.core.util.IOUtil;
+import org.springsource.ide.eclipse.commons.livexp.util.ExceptionUtil;
+import org.yaml.snakeyaml.LoaderOptions;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.comments.CommentType;
+import org.yaml.snakeyaml.events.CommentEvent;
+import org.yaml.snakeyaml.events.Event;
+import org.yaml.snakeyaml.events.StreamEndEvent;
+
+public class ConvertYamlToPropertiesRefactoring extends Refactoring {
+
+ private static final String YAML_EXT = ".yml";
+ private static final String PROPERTIES_EXT = ".properties";
+
+ private IFile propsFile;
+ private final IFile yamlFile;
+ private StringBuilder propsContent;
+ private int inputTextLen;
+
+ public ConvertYamlToPropertiesRefactoring(IFile yamlFile) {
+ this.yamlFile = yamlFile;
+ this.propsContent = new StringBuilder();
+ }
+
+ @Override
+ public String getName() {
+ return "Convert .yaml to .properties";
+ }
+
+ @Override
+ public RefactoringStatus checkInitialConditions(IProgressMonitor pm)
+ throws CoreException, OperationCanceledException {
+ if (!yamlFile.isAccessible()) {
+ return RefactoringStatus.createFatalErrorStatus("The resource '"+yamlFile.getFullPath()+"' is not accessible");
+ }
+ this.propsFile = propsFileFor(yamlFile);
+ if (propsFile.exists()) {
+ return RefactoringStatus.createFatalErrorStatus("File '"+propsFile.getFullPath()+"' already exists!");
+ }
+ return new RefactoringStatus();
+ }
+
+ private static IFile propsFileFor(IFile yamlFile) {
+ IContainer container = yamlFile.getParent();
+ String name = yamlFile.getName();
+ if (name.endsWith(YAML_EXT)) {
+ name = name.substring(0, name.length()-YAML_EXT.length())+PROPERTIES_EXT;
+ } else {
+ name = name + PROPERTIES_EXT;
+ }
+ return container.getFile(Path.EMPTY.append(name));
+ }
+
+ @Override
+ public RefactoringStatus checkFinalConditions(IProgressMonitor pm)
+ throws CoreException, OperationCanceledException {
+ RefactoringStatus status = new RefactoringStatus();
+ String yamlContent = null;
+ try {
+ yamlContent = IOUtil.toString(yamlFile.getContents());
+ } catch (Exception e) {
+ status.merge(RefactoringStatus.create(ExceptionUtil.status(e, "Problems reading file: "+yamlFile.getFullPath())));
+ return status;
+ }
+
+ if (hasComments(yamlContent)) {
+ status.merge(RefactoringStatus.createWarningStatus("The yaml file has comments, which will be lost in the refactoring!"));
+ }
+
+ for (Object d : new Yaml().loadAll(new StringReader(yamlContent))) {
+ if (d instanceof Map) {
+ // Add doc divider if not empty
+ @SuppressWarnings("unchecked")
+ Map o = (Map) d;
+ try {
+ YamlToPropertiesConverter converter = new YamlToPropertiesConverter(o);
+ Properties props = converter.getProperties();
+ StringWriter write = new StringWriter();
+ props.store(write, null);
+ write.flush();
+ write.close();
+ if (!propsContent.isEmpty()) {
+ propsContent.append("#---\n");
+ }
+ // Skip over the date header. Comments are not present but date header is.
+ if (write.getBuffer().charAt(0) == '#') {
+ int idx = write.getBuffer().indexOf("\n");
+ this.propsContent.append(idx >= 0 && idx < write.getBuffer().length() ? write.getBuffer().substring(idx + 1) : write.getBuffer().toString());
+ } else {
+ this.propsContent.append(write.getBuffer().toString());
+ }
+ status.merge(converter.getStatus());
+ } catch (IOException e) {
+ status.merge(RefactoringStatus.create(ExceptionUtil.status(e, "Problems writing to .properties file: "+propsFile.getFullPath())));
+ }
+ } else if (d == null) {
+ if (!propsContent.isEmpty()) {
+ propsContent.append("#---\n");
+ }
+ }
+ }
+ return status;
+ }
+
+ private boolean hasComments(String yamlContent) {
+ LoaderOptions loaderOptions = new LoaderOptions();
+ loaderOptions.setProcessComments(true);
+ boolean hasComments = false;
+ for (Event e : new Yaml(loaderOptions).parse(new StringReader(yamlContent))) {
+ if (e instanceof StreamEndEvent) {
+ inputTextLen = e.getEndMark().getIndex();
+ }
+ if (!hasComments && e instanceof CommentEvent ce) {
+ if (ce.getCommentType() == CommentType.BLANK_LINE) {
+ // document separator
+ } else {
+ hasComments = true;
+ }
+ }
+ }
+ return hasComments;
+ }
+
+ @Override
+ public Change createChange(IProgressMonitor pm) throws CoreException, OperationCanceledException {
+ CompositeChange changes = new CompositeChange(getName());
+ TextFileChange textChange = new TextFileChange(getName(), yamlFile);
+ textChange.setEdit(new ReplaceEdit(0, inputTextLen, propsContent.toString()));
+ changes.add(textChange);
+ changes.add(new RenameResourceChange(yamlFile.getFullPath(), propsFile.getName()));
+ changes.initializeValidationData(pm);
+ return changes;
+ }
+
+}
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.refactoring/src/org/springframework/ide/eclipse/boot/refactoring/YamlToPropertiesConverter.java b/eclipse-extensions/org.springframework.ide.eclipse.boot.refactoring/src/org/springframework/ide/eclipse/boot/refactoring/YamlToPropertiesConverter.java
new file mode 100644
index 0000000000..2d15a8bd4e
--- /dev/null
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.refactoring/src/org/springframework/ide/eclipse/boot/refactoring/YamlToPropertiesConverter.java
@@ -0,0 +1,85 @@
+/*******************************************************************************
+ * Copyright (c) 2024 Broadcom, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Broadcom, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.springframework.ide.eclipse.boot.refactoring;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+
+public class YamlToPropertiesConverter {
+
+ private final RefactoringStatus status;
+
+ private final Properties properties;
+
+
+ public YamlToPropertiesConverter(Map yaml) {
+ this.status = new RefactoringStatus();
+ this.properties = new Properties() {
+
+ private static final long serialVersionUID = 1L;
+
+ private LinkedHashMap
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.wizard/pom.xml b/eclipse-extensions/org.springframework.ide.eclipse.boot.wizard/pom.xml
index 2cced44a84..94382627f4 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.wizard/pom.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.wizard/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.wizard/src/org/springframework/ide/eclipse/boot/wizard/AddBootStartersHandler2.java b/eclipse-extensions/org.springframework.ide.eclipse.boot.wizard/src/org/springframework/ide/eclipse/boot/wizard/AddBootStartersHandler2.java
new file mode 100644
index 0000000000..3eb99e1cdc
--- /dev/null
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.wizard/src/org/springframework/ide/eclipse/boot/wizard/AddBootStartersHandler2.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2024 Broadcom, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Broadcom, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.springframework.ide.eclipse.boot.wizard;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IFileEditorInput;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.springframework.ide.eclipse.boot.wizard.starters.AddStartersWizard;
+
+public class AddBootStartersHandler2 extends AbstractHandler {
+
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ try {
+ IEditorInput input = HandlerUtil.getActiveEditorInput(event);
+ if (input instanceof IFileEditorInput fileInput) {
+ AddStartersWizard.openFor(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), fileInput.getFile().getProject());
+ return null;
+ }
+ } catch (Exception e) {
+ throw new ExecutionException("", e);
+ }
+ throw new ExecutionException("Current active editor is not for pom.xml");
+ }
+
+}
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot.wizard/src/org/springframework/ide/eclipse/boot/wizard/starters/eclipse/ResourceCompareInput.java b/eclipse-extensions/org.springframework.ide.eclipse.boot.wizard/src/org/springframework/ide/eclipse/boot/wizard/starters/eclipse/ResourceCompareInput.java
index 1315481abd..1a56b6a901 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot.wizard/src/org/springframework/ide/eclipse/boot/wizard/starters/eclipse/ResourceCompareInput.java
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot.wizard/src/org/springframework/ide/eclipse/boot/wizard/starters/eclipse/ResourceCompareInput.java
@@ -42,11 +42,16 @@
import org.eclipse.compare.CompareConfiguration;
import org.eclipse.compare.CompareEditorInput;
import org.eclipse.compare.CompareUI;
+import org.eclipse.compare.CompareViewerPane;
import org.eclipse.compare.CompareViewerSwitchingPane;
import org.eclipse.compare.IStreamContentAccessor;
import org.eclipse.compare.ITypedElement;
+import org.eclipse.compare.Splitter;
+import org.eclipse.compare.contentmergeviewer.ContentMergeViewer;
import org.eclipse.compare.contentmergeviewer.TextMergeViewer;
+import org.eclipse.compare.internal.AbstractViewer;
import org.eclipse.compare.internal.BufferedResourceNode;
+import org.eclipse.compare.internal.CompareContentViewerSwitchingPane;
import org.eclipse.compare.internal.CompareMessages;
import org.eclipse.compare.internal.CompareUIPlugin;
import org.eclipse.compare.internal.IMergeViewerTestAdapter;
@@ -684,12 +689,17 @@ public void acceptAllChanges() {
Shell shell = new Shell();
shell.setVisible(false);
// Content difference
- TextMergeViewer contentViewer = (TextMergeViewer) CompareUI.findContentViewer(new NullViewer(shell),
+ ContentMergeViewer contentViewer = (ContentMergeViewer) CompareUI.findContentViewer(new NullViewer(shell),
n, shell, getCompareConfiguration());
if (contentViewer != null) {
contentViewer.setInput(n);
try {
- Method method = TextMergeViewer.class.getDeclaredMethod("copy", boolean.class);
+ Method method;
+ try {
+ method = contentViewer.getClass().getDeclaredMethod("copy", boolean.class);
+ } catch (Exception e) {
+ method = TextMergeViewer.class.getDeclaredMethod("copy", boolean.class);
+ }
method.setAccessible(true);
method.invoke(contentViewer, true);
contentViewer.flush(new NullProgressMonitor());
@@ -731,6 +741,48 @@ public Viewer getMergeContentViewer() {
}
}
+ class CustomNullViewer extends AbstractViewer {
+
+ private final Control fDummy;
+ private final Composite parent;
+ private boolean firstSetInput = true;
+
+ public CustomNullViewer(Composite parent) {
+ this.parent = parent;
+ fDummy= new Tree(parent, SWT.NULL);
+
+ }
+
+ @Override
+ public void setInput(Object input) {
+ if (!parent.isDisposed() && firstSetInput) {
+ CompareViewerPane.clearToolBar(parent);
+ }
+ super.setInput(input);
+ firstSetInput = false;
+ }
+
+ @Override
+ public Control getControl() {
+ return fDummy;
+ }
+ }
+
+ @Override
+ protected CompareViewerSwitchingPane createContentViewerSwitchingPane(Splitter parent, int style, CompareEditorInput cei) {
+ return new CompareContentViewerSwitchingPane(parent, style, cei) {
+ @Override
+ protected Viewer getViewer(Viewer oldViewer, Object input) {
+ if (input instanceof MyDiffNode n) {
+ if (ITypedElement.FOLDER_TYPE.equals(n.getId().getType())) {
+ return new CustomNullViewer(this);
+ }
+ }
+ return super.getViewer(oldViewer, input);
+ }
+ };
+ }
+
@Override
public Viewer createDiffViewer(Composite parent) {
fDiffViewer= new CustomDiffTreeViewer(parent, getCompareConfiguration());
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot/META-INF/MANIFEST.MF b/eclipse-extensions/org.springframework.ide.eclipse.boot/META-INF/MANIFEST.MF
index a158dfc7e4..601fb1bf16 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot/META-INF/MANIFEST.MF
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: Boot
Bundle-SymbolicName: org.springframework.ide.eclipse.boot;singleton:=true
Bundle-Vendor: VMware, Inc
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Bundle-Activator: org.springframework.ide.eclipse.boot.core.BootActivator
Require-Bundle: org.eclipse.core.resources,
org.eclipse.m2e.core,
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot/pom.xml b/eclipse-extensions/org.springframework.ide.eclipse.boot/pom.xml
index 8731eeda1d..db357a1be0 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot/pom.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot/src/org/springframework/ide/eclipse/boot/core/BootPreferences.java b/eclipse-extensions/org.springframework.ide.eclipse.boot/src/org/springframework/ide/eclipse/boot/core/BootPreferences.java
index a91c358cd8..68be24ed46 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot/src/org/springframework/ide/eclipse/boot/core/BootPreferences.java
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot/src/org/springframework/ide/eclipse/boot/core/BootPreferences.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2015, 2017 Pivotal, Inc.
+ * Copyright (c) 2015, 2024 Pivotal, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -44,6 +44,9 @@ public class BootPreferences implements IPreferenceChangeListener {
public static final String PREF_BOOT_FAST_STARTUP_JVM_ARGS = "org.springframework.ide.eclipse.boot.FastStartupJvmArgs";
public static final String BOOT_FAST_STARTUP_DEFAULT_JVM_ARGS = "-XX:TieredStopAtLevel=1";
+ public static final String PREF_BOOT_TESTJARS_LAUNCH_SUPPORT = "org.springframework.ide.eclipse.boot.TestJarsLaunch";
+
+
// Boot Preference Page ID
public static final String BOOT_PREFERENCE_PAGE_ID = "org.springframework.ide.eclipse.boot.ui.preferences.BootPreferencePage";
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot/src/org/springframework/ide/eclipse/boot/core/initializr/InitializrService.java b/eclipse-extensions/org.springframework.ide.eclipse.boot/src/org/springframework/ide/eclipse/boot/core/initializr/InitializrService.java
index ecaffc1658..d32a3ca6a9 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot/src/org/springframework/ide/eclipse/boot/core/initializr/InitializrService.java
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot/src/org/springframework/ide/eclipse/boot/core/initializr/InitializrService.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2015, 2016 Pivotal, Inc.
+ * Copyright (c) 2015, 2024 Pivotal, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -17,7 +17,7 @@
import java.util.Map;
import java.util.function.Supplier;
-import org.apache.maven.shared.utils.io.IOUtil;
+import org.apache.commons.io.IOUtils;
import org.springframework.ide.eclipse.boot.core.BootActivator;
import org.springframework.ide.eclipse.boot.core.BootPreferences;
import org.springframework.ide.eclipse.boot.core.SimpleUriBuilder;
@@ -83,7 +83,7 @@ public String getPom(Map parameters) throws Exception {
}
URLConnection urlConnection = urlConnectionFactory.createConnection(new URL(builder.toString()));
urlConnection.connect();
- return IOUtil.toString(urlConnection.getInputStream(), "UTF8");
+ return IOUtils.toString(urlConnection.getInputStream(), "UTF8");
}
};
}
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot/src/org/springframework/ide/eclipse/boot/ui/preferences/BootPreferencePage.java b/eclipse-extensions/org.springframework.ide.eclipse.boot/src/org/springframework/ide/eclipse/boot/ui/preferences/BootPreferencePage.java
index 1940d77e3a..ac5c2f714a 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot/src/org/springframework/ide/eclipse/boot/ui/preferences/BootPreferencePage.java
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot/src/org/springframework/ide/eclipse/boot/ui/preferences/BootPreferencePage.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2015, 2023 Pivotal, Inc.
+ * Copyright (c) 2015, 2024 Pivotal, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -15,6 +15,7 @@
import static org.springframework.ide.eclipse.boot.core.BootPreferences.PREF_BOOT_FAST_STARTUP_REMIND_MESSAGE;
import static org.springframework.ide.eclipse.boot.core.BootPreferences.PREF_BOOT_THIN_WRAPPER;
import static org.springframework.ide.eclipse.boot.core.BootPreferences.PREF_IGNORE_SILENT_EXIT;
+import static org.springframework.ide.eclipse.boot.core.BootPreferences.PREF_BOOT_TESTJARS_LAUNCH_SUPPORT;
import org.eclipse.debug.internal.ui.preferences.BooleanFieldEditor2;
import org.eclipse.jface.layout.GridDataFactory;
@@ -71,6 +72,8 @@ protected void createFieldEditors() {
thinLauncher.setErrorMessage("Thin launcher must be an existing file");
setTooltip(thinLauncherComposite, thinLauncher, "Thin boot launcher jar to use in Spring Boot Launch configuration (when that option is enabled in the launch config)");
addField(thinLauncher);
+
+ addField(new BooleanFieldEditor2(PREF_BOOT_TESTJARS_LAUNCH_SUPPORT, "TestJars Support", SWT.CHECK, launchGroup));
}
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.boot/src/org/springframework/ide/eclipse/boot/ui/preferences/PreferencesInitializer.java b/eclipse-extensions/org.springframework.ide.eclipse.boot/src/org/springframework/ide/eclipse/boot/ui/preferences/PreferencesInitializer.java
index 9b300ab0cd..6ce574317f 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.boot/src/org/springframework/ide/eclipse/boot/ui/preferences/PreferencesInitializer.java
+++ b/eclipse-extensions/org.springframework.ide.eclipse.boot/src/org/springframework/ide/eclipse/boot/ui/preferences/PreferencesInitializer.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2016, 2017 Pivotal, Inc.
+ * Copyright (c) 2016, 2024 Pivotal, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -17,6 +17,7 @@
import static org.springframework.ide.eclipse.boot.core.BootPreferences.PREF_BOOT_FAST_STARTUP_REMIND_MESSAGE;
import static org.springframework.ide.eclipse.boot.core.BootPreferences.PREF_BOOT_FAST_STARTUP_JVM_ARGS;
import static org.springframework.ide.eclipse.boot.core.BootPreferences.BOOT_FAST_STARTUP_DEFAULT_JVM_ARGS;
+import static org.springframework.ide.eclipse.boot.core.BootPreferences.PREF_BOOT_TESTJARS_LAUNCH_SUPPORT;
import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
import org.eclipse.jface.preference.IPreferenceStore;
@@ -25,7 +26,7 @@
/**
* Initializer of default values for the Spring Boot support
- *
+ *
* @author Alex Boyko
*
*/
@@ -34,7 +35,7 @@ public class PreferencesInitializer extends AbstractPreferenceInitializer {
@Override
public void initializeDefaultPreferences() {
IPreferenceStore store = BootActivator.getDefault().getPreferenceStore();
-
+
/*
* Note that line below cannot be moved to BootPreferencePage static
* init method because the class has BooleanFieldEditor2 import that in
@@ -42,13 +43,15 @@ public void initializeDefaultPreferences() {
* because workbench may not be started in the case of a unit test
*/
store.setDefault(PREF_IGNORE_SILENT_EXIT, DEFAULT_PREF_IGNORE_SILENT_EXIT);
-
+
store.setDefault(PREF_INITIALIZR_URL, StsProperties.getInstance().get("spring.initializr.json.url"));
-
+
store.setDefault(PREF_BOOT_FAST_STARTUP_DEFAULT, true);
store.setDefault(PREF_BOOT_FAST_STARTUP_REMIND_MESSAGE, true);
store.setDefault(PREF_BOOT_FAST_STARTUP_JVM_ARGS, BOOT_FAST_STARTUP_DEFAULT_JVM_ARGS);
+ store.setDefault(BOOT_FAST_STARTUP_DEFAULT_JVM_ARGS, DEFAULT_PREF_IGNORE_SILENT_EXIT);
+ store.setDefault(PREF_BOOT_TESTJARS_LAUNCH_SUPPORT, true);
}
-
+
}
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.buildship30/META-INF/MANIFEST.MF b/eclipse-extensions/org.springframework.ide.eclipse.buildship30/META-INF/MANIFEST.MF
index bdc0db2664..500639f44c 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.buildship30/META-INF/MANIFEST.MF
+++ b/eclipse-extensions/org.springframework.ide.eclipse.buildship30/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.springframework.ide.eclipse.buildship30;singleton:=true
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Bundle-Vendor: %providerName
Bundle-RequiredExecutionEnvironment: JavaSE-17
Eclipse-LazyStart: true
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.buildship30/pom.xml b/eclipse-extensions/org.springframework.ide.eclipse.buildship30/pom.xml
index 1b8bbf1c17..faf5e5ba9b 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.buildship30/pom.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.buildship30/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.docker.client/META-INF/MANIFEST.MF b/eclipse-extensions/org.springframework.ide.eclipse.docker.client/META-INF/MANIFEST.MF
index 9e81c2945f..5e5a849129 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.docker.client/META-INF/MANIFEST.MF
+++ b/eclipse-extensions/org.springframework.ide.eclipse.docker.client/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: org.springframework.ide.eclipse.docker.client.wrapper
Bundle-SymbolicName: org.springframework.ide.eclipse.docker.client;singleton:=true
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Automatic-Module-Name: org.springframework.ide.eclipse.docker.client.wrapper
Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-ClassPath: .,
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.docker.client/pom.xml b/eclipse-extensions/org.springframework.ide.eclipse.docker.client/pom.xml
index 4a96826004..08563ca8a8 100755
--- a/eclipse-extensions/org.springframework.ide.eclipse.docker.client/pom.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.docker.client/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.imports/META-INF/MANIFEST.MF b/eclipse-extensions/org.springframework.ide.eclipse.imports/META-INF/MANIFEST.MF
index 430256f060..02a5a6314e 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.imports/META-INF/MANIFEST.MF
+++ b/eclipse-extensions/org.springframework.ide.eclipse.imports/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.springframework.ide.eclipse.imports;singleton:=true
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Bundle-Localization: plugin
Bundle-Vendor: %providerName
Bundle-Activator: org.springframework.ide.eclipse.imports.ImportsActivator
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.imports/pom.xml b/eclipse-extensions/org.springframework.ide.eclipse.imports/pom.xml
index d189f744d6..f615ee3f39 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.imports/pom.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.imports/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.maven.pom.tests/META-INF/MANIFEST.MF b/eclipse-extensions/org.springframework.ide.eclipse.maven.pom.tests/META-INF/MANIFEST.MF
index 7fcdd839b0..9fa75f7f03 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.maven.pom.tests/META-INF/MANIFEST.MF
+++ b/eclipse-extensions/org.springframework.ide.eclipse.maven.pom.tests/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Maven POM Compare Tests
Bundle-SymbolicName: org.springframework.ide.eclipse.maven.pom.tests
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Automatic-Module-Name: org.springframework.ide.eclipse.maven.pom.tests
Bundle-RequiredExecutionEnvironment: JavaSE-17
Require-Bundle: org.junit,
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.maven.pom.tests/pom.xml b/eclipse-extensions/org.springframework.ide.eclipse.maven.pom.tests/pom.xml
index 55070a8cea..3b39fb94a6 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.maven.pom.tests/pom.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.maven.pom.tests/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.maven.pom/META-INF/MANIFEST.MF b/eclipse-extensions/org.springframework.ide.eclipse.maven.pom/META-INF/MANIFEST.MF
index 511cffacb1..c8a2a8c02b 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.maven.pom/META-INF/MANIFEST.MF
+++ b/eclipse-extensions/org.springframework.ide.eclipse.maven.pom/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Maven POM Compare
Bundle-SymbolicName: org.springframework.ide.eclipse.maven.pom;singleton:=true
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Automatic-Module-Name: org.springframework.ide.eclipse.maven.pom
Bundle-RequiredExecutionEnvironment: JavaSE-17
Require-Bundle: org.eclipse.compare,
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.maven.pom/pom.xml b/eclipse-extensions/org.springframework.ide.eclipse.maven.pom/pom.xml
index a7c42d9f53..c2dc563734 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.maven.pom/pom.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.maven.pom/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.xml.namespaces.feature/feature.xml b/eclipse-extensions/org.springframework.ide.eclipse.xml.namespaces.feature/feature.xml
index 4a29953b36..9dacf933b9 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.xml.namespaces.feature/feature.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.xml.namespaces.feature/feature.xml
@@ -14,7 +14,7 @@
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.xml.namespaces.feature/pom.xml b/eclipse-extensions/org.springframework.ide.eclipse.xml.namespaces.feature/pom.xml
index 7f306c5b2b..344765b8d9 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.xml.namespaces.feature/pom.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.xml.namespaces.feature/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.xml.namespaces/META-INF/MANIFEST.MF b/eclipse-extensions/org.springframework.ide.eclipse.xml.namespaces/META-INF/MANIFEST.MF
index b2b13d6855..ccf3f80b01 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.xml.namespaces/META-INF/MANIFEST.MF
+++ b/eclipse-extensions/org.springframework.ide.eclipse.xml.namespaces/META-INF/MANIFEST.MF
@@ -31,7 +31,7 @@ Import-Package: org.eclipse.core.commands.common,
org.springsource.ide.eclipse.commons.ui,
org.apache.commons.io
Bundle-Activator: org.springframework.ide.eclipse.xml.namespaces.SpringXmlNamespacesPlugin
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Export-Package: org.springframework.ide.eclipse.xml.namespaces,
org.springframework.ide.eclipse.xml.namespaces.classpath,
org.springframework.ide.eclipse.xml.namespaces.internal,
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.xml.namespaces/pom.xml b/eclipse-extensions/org.springframework.ide.eclipse.xml.namespaces/pom.xml
index 60ea0deb0d..4b8f032215 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.xml.namespaces/pom.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.xml.namespaces/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.xterm.feature/feature.xml b/eclipse-extensions/org.springframework.ide.eclipse.xterm.feature/feature.xml
index 780efa9254..9f2a4e5d45 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.xterm.feature/feature.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.xterm.feature/feature.xml
@@ -2,7 +2,7 @@
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.xterm.feature/pom.xml b/eclipse-extensions/org.springframework.ide.eclipse.xterm.feature/pom.xml
index d42d45f20c..76ff462038 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.xterm.feature/pom.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.xterm.feature/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
org.springframework.ide.eclipse
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.xterm.linux.x86_64/META-INF/MANIFEST.MF b/eclipse-extensions/org.springframework.ide.eclipse.xterm.linux.x86_64/META-INF/MANIFEST.MF
index d4e7bb6a1e..aaf7808454 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.xterm.linux.x86_64/META-INF/MANIFEST.MF
+++ b/eclipse-extensions/org.springframework.ide.eclipse.xterm.linux.x86_64/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Node-Xterm package for Linux
Bundle-SymbolicName: org.springframework.ide.eclipse.xterm.linux.x86_64
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Bundle-Vendor: VMware
Fragment-Host: org.springframework.ide.eclipse.xterm;bundle-version="4.8.2"
Automatic-Module-Name: org.springframework.ide.eclipse.xterm.linux.x86.64
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.xterm.linux.x86_64/pom.xml b/eclipse-extensions/org.springframework.ide.eclipse.xterm.linux.x86_64/pom.xml
index ca3cf158ff..51fa583074 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.xterm.linux.x86_64/pom.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.xterm.linux.x86_64/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
eclipse-plugin
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.xterm.macosx.x86_64/META-INF/MANIFEST.MF b/eclipse-extensions/org.springframework.ide.eclipse.xterm.macosx.x86_64/META-INF/MANIFEST.MF
index 45eaad91d6..7836965b75 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.xterm.macosx.x86_64/META-INF/MANIFEST.MF
+++ b/eclipse-extensions/org.springframework.ide.eclipse.xterm.macosx.x86_64/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Node-Xterm package for Mac OSX
Bundle-SymbolicName: org.springframework.ide.eclipse.xterm.macosx.x86_64
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Bundle-Vendor: VMware
Fragment-Host: org.springframework.ide.eclipse.xterm;bundle-version="4.8.2"
Automatic-Module-Name: org.springframework.ide.eclipse.xterm.macosx.x86.64
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.xterm.macosx.x86_64/pom.xml b/eclipse-extensions/org.springframework.ide.eclipse.xterm.macosx.x86_64/pom.xml
index a3e0d4b4f0..12def03e11 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.xterm.macosx.x86_64/pom.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.xterm.macosx.x86_64/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
eclipse-plugin
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.xterm.win32.x86_64/META-INF/MANIFEST.MF b/eclipse-extensions/org.springframework.ide.eclipse.xterm.win32.x86_64/META-INF/MANIFEST.MF
index 0c102f4dd0..6198e330d6 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.xterm.win32.x86_64/META-INF/MANIFEST.MF
+++ b/eclipse-extensions/org.springframework.ide.eclipse.xterm.win32.x86_64/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Node-Xterm package for Windows
Bundle-SymbolicName: org.springframework.ide.eclipse.xterm.win32.x86_64
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Bundle-Vendor: VMware
Fragment-Host: org.springframework.ide.eclipse.xterm;bundle-version="4.8.2"
Automatic-Module-Name: org.springframework.ide.eclipse.xterm.win32.x86.64
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.xterm.win32.x86_64/pom.xml b/eclipse-extensions/org.springframework.ide.eclipse.xterm.win32.x86_64/pom.xml
index 4f5bd1bcfa..9c75b71700 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.xterm.win32.x86_64/pom.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.xterm.win32.x86_64/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
eclipse-plugin
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.xterm/META-INF/MANIFEST.MF b/eclipse-extensions/org.springframework.ide.eclipse.xterm/META-INF/MANIFEST.MF
index a2474edf88..81d4d944d3 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.xterm/META-INF/MANIFEST.MF
+++ b/eclipse-extensions/org.springframework.ide.eclipse.xterm/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: org.springframework.ide.eclipse.xterm
Bundle-SymbolicName: org.springframework.ide.eclipse.xterm;singleton:=true
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Automatic-Module-Name: org.springframework.ide.eclipse.xterm
Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-Activator: org.springframework.ide.eclipse.xterm.XtermPlugin
diff --git a/eclipse-extensions/org.springframework.ide.eclipse.xterm/pom.xml b/eclipse-extensions/org.springframework.ide.eclipse.xterm/pom.xml
index ffdf0aa1fc..1247cdc7fd 100644
--- a/eclipse-extensions/org.springframework.ide.eclipse.xterm/pom.xml
+++ b/eclipse-extensions/org.springframework.ide.eclipse.xterm/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../../eclipse-distribution/pom.xml
eclipse-plugin
diff --git a/eclipse-language-servers/org.springframework.ide.eclipse.editor.support/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springframework.ide.eclipse.editor.support/META-INF/MANIFEST.MF
index 2267107318..ca0c3d2042 100644
--- a/eclipse-language-servers/org.springframework.ide.eclipse.editor.support/META-INF/MANIFEST.MF
+++ b/eclipse-language-servers/org.springframework.ide.eclipse.editor.support/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-SymbolicName: org.springframework.ide.eclipse.editor.support
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Bundle-Activator: org.springframework.ide.eclipse.editor.support.EditorSupportActivator
Bundle-Localization: plugin
Require-Bundle: org.eclipse.ui,
diff --git a/eclipse-language-servers/org.springframework.ide.eclipse.editor.support/pom.xml b/eclipse-language-servers/org.springframework.ide.eclipse.editor.support/pom.xml
index ab52367384..8aef0955cc 100644
--- a/eclipse-language-servers/org.springframework.ide.eclipse.editor.support/pom.xml
+++ b/eclipse-language-servers/org.springframework.ide.eclipse.editor.support/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls.feature/feature.xml b/eclipse-language-servers/org.springframework.tooling.boot.ls.feature/feature.xml
index a46d55ad34..326e856d46 100644
--- a/eclipse-language-servers/org.springframework.tooling.boot.ls.feature/feature.xml
+++ b/eclipse-language-servers/org.springframework.tooling.boot.ls.feature/feature.xml
@@ -2,7 +2,7 @@
diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls.feature/pom.xml b/eclipse-language-servers/org.springframework.tooling.boot.ls.feature/pom.xml
index eff432818f..a04bba9789 100644
--- a/eclipse-language-servers/org.springframework.tooling.boot.ls.feature/pom.xml
+++ b/eclipse-language-servers/org.springframework.tooling.boot.ls.feature/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springframework.tooling.boot.ls/META-INF/MANIFEST.MF
index aa6d30424d..6f0e21db39 100644
--- a/eclipse-language-servers/org.springframework.tooling.boot.ls/META-INF/MANIFEST.MF
+++ b/eclipse-language-servers/org.springframework.tooling.boot.ls/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: Spring Boot Language Server
Bundle-Vendor: Broadcom
Bundle-SymbolicName: org.springframework.tooling.boot.ls;singleton:=true
-Bundle-Version: 1.53.0.qualifier
+Bundle-Version: 1.54.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-17
Require-Bundle: org.eclipse.jdt.launching;bundle-version="3.9.0",
org.eclipse.core.runtime;bundle-version="3.12.0",
diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/icons/boot-icon.png b/eclipse-language-servers/org.springframework.tooling.boot.ls/icons/boot-icon.png
new file mode 100644
index 0000000000..de88ef0d5c
Binary files /dev/null and b/eclipse-language-servers/org.springframework.tooling.boot.ls/icons/boot-icon.png differ
diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/plugin.xml b/eclipse-language-servers/org.springframework.tooling.boot.ls/plugin.xml
index 9942e4a07f..1d944e022a 100644
--- a/eclipse-language-servers/org.springframework.tooling.boot.ls/plugin.xml
+++ b/eclipse-language-servers/org.springframework.tooling.boot.ls/plugin.xml
@@ -82,6 +82,10 @@
-->
+
+
@@ -173,6 +177,17 @@
file-names="spring.factories,aot.factories"
file-patterns="*.factories">
+
+
+
+
+
+
+
+
+
+
@@ -292,6 +319,34 @@
id="org.springframework.tooling.boot.ls.modulith.metadata.refresh"
name="Refresh Modulith Metadata">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
org.springframework.tooling.boot.ls
- 1.53.0-SNAPSHOT
+ 1.54.0-SNAPSHOT
eclipse-plugin
diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/Constants.java b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/Constants.java
index 0d018ff978..5d177cb8df 100644
--- a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/Constants.java
+++ b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/Constants.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2017, 2023 Pivotal, Inc.
+ * Copyright (c) 2017, 2024 Pivotal, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -44,4 +44,7 @@ public class Constants {
public static final String PREF_START_LS_EARLY = "start.boot-ls.early";
public static final String PREF_COMMON_PROPS_METADATA = "boot-java.common.properties-metadata";
+
+ public static final String PREF_MODULITH = "boot-java.modulith-project-tracking";
+
}
diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/DelegatingStreamConnectionProvider.java b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/DelegatingStreamConnectionProvider.java
index 9243794ff5..c97921f530 100644
--- a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/DelegatingStreamConnectionProvider.java
+++ b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/DelegatingStreamConnectionProvider.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2017, 2023 Pivotal, Inc.
+ * Copyright (c) 2017, 2024 Pivotal, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -212,6 +212,7 @@ private void sendConfiguration() {
bootJavaObj.put("change-detection", bootChangeDetection);
bootJavaObj.put("validation", validation);
bootJavaObj.put("remote-apps", getAllRemoteApps());
+ bootJavaObj.put("modulith-project-tracking", preferenceStore.getBoolean(Constants.PREF_MODULITH));
bootJavaObj.put("rewrite", Map.of(
"recipe-filters", StringListEditor.decode(preferenceStore.getString(Constants.PREF_REWRITE_RECIPE_FILTERS)),
diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/SpringBootLanguageServer.java b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/SpringBootLanguageServer.java
index 9d3aeb983a..e17c26c702 100644
--- a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/SpringBootLanguageServer.java
+++ b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/SpringBootLanguageServer.java
@@ -45,7 +45,6 @@ private List getJVMArgs() {
// args.add("-Xrunjdwp:server=y,transport=dt_socket,address=1044,suspend=n");
args.add("-Dlsp.completions.indentation.enable=true");
args.add("-Xmx1024m");
- args.add("-XX:+HeapDumpOnOutOfMemoryError");
args.add("-XX:TieredStopAtLevel=1");
addCustomJVMArgs(args);
diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/commands/AddStartersHandler.java b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/commands/AddStartersHandler.java
new file mode 100644
index 0000000000..402127060b
--- /dev/null
+++ b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/commands/AddStartersHandler.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2024 Broadcom, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Broadcom, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.springframework.tooling.boot.ls.commands;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.ui.handlers.IHandlerService;
+
+public class AddStartersHandler extends AbstractHandler {
+
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ try {
+ IWorkbenchWindow workbenchWindow = HandlerUtil.getActiveWorkbenchWindow(event);
+ final IHandlerService service = workbenchWindow.getService(IHandlerService.class);
+ return service.executeCommand("org.springframework.ide.eclipse.boot.commands.editStartersCommand2", null);
+ } catch (Exception e) {
+ throw new ExecutionException("", e);
+ }
+ }
+
+}
diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/commands/ConvertBootPropertiesHanlder.java b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/commands/ConvertBootPropertiesHanlder.java
new file mode 100644
index 0000000000..296516f910
--- /dev/null
+++ b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/commands/ConvertBootPropertiesHanlder.java
@@ -0,0 +1,158 @@
+/*******************************************************************************
+ * Copyright (c) 2024 Broadcom, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Broadcom, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.springframework.tooling.boot.ls.commands;
+
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.lsp4e.LanguageServers;
+import org.eclipse.lsp4e.LanguageServersRegistry;
+import org.eclipse.lsp4e.LanguageServersRegistry.LanguageServerDefinition;
+import org.eclipse.lsp4j.ExecuteCommandParams;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.springframework.tooling.boot.ls.BootLanguageServerPlugin;
+
+@SuppressWarnings("restriction")
+public abstract class ConvertBootPropertiesHanlder extends AbstractHandler {
+
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ IFile sourceFile = getSourceFile(event);
+ IProject project = sourceFile.getProject();
+ if (project != null) {
+
+ // No replace functionality for Eclipse due to issues with undoing the change
+ final boolean replace = false;
+
+// ITextFileBuffer buffer = FileBuffers.getTextFileBufferManager().getTextFileBuffer(sourceFile.getFullPath(), LocationKind.IFILE);
+// if (buffer != null && buffer.isDirty()) {
+// try {
+// buffer.commit(null, true);
+// } catch (CoreException e) {
+// BootLanguageServerPlugin.getDefault().getLog().log(e.getStatus());
+// }
+// }
+//
+// final boolean replace = BootLanguageServerPlugin.getDefault().getPreferenceStore().getBoolean(Constants.PREF_REPLACE_CONVERTED_PROPS_FILE);
+//
+// if (replace) {
+// // Workaround: LSP4E LSPTextEdit doesn't work well with non opened files in the workspace in this particular case
+// // Therefore, open the file in an editor thus changes are applied to the document.
+// try {
+// IDE.openEditor(UI.getActivePage(), sourceFile);
+// } catch (PartInitException e) {
+// BootLanguageServerPlugin.getDefault().getLog().error("", e);
+// }
+// }
+
+ IFile targetFile = getTargetFile(sourceFile, getTargetExtension());
+
+ LanguageServerDefinition def = LanguageServersRegistry.getInstance().getDefinition(BootLanguageServerPlugin.BOOT_LS_DEFINITION_ID);
+ Assert.isLegal(def != null, "No definition found for Boot Language Server");
+
+ ExecuteCommandParams commandParams = new ExecuteCommandParams();
+ commandParams.setCommand(getCommandId());
+ commandParams.setArguments(List.of(
+ sourceFile.getLocationURI().toASCIIString(),
+ targetFile.getLocationURI().toASCIIString(),
+ replace
+ ));
+
+ LanguageServers.forProject(project).withPreferredServer(def).computeFirst(ls -> ls.getWorkspaceService().executeCommand(commandParams));
+
+ }
+
+ return null;
+ }
+
+ abstract protected String getTargetExtension();
+
+ abstract protected String getCommandId();
+
+ private IFile getTargetFile(IFile sourceFile, String ext) {
+ IProject project = sourceFile.getProject();
+ IPath eclipsePath = sourceFile.getProjectRelativePath();
+ IPath dir = eclipsePath.removeLastSegments(1);
+ String fileName = sourceFile.getName();
+ String fileNoExt = fileName.substring(0, fileName.length() - sourceFile.getFileExtension().length() - 1);
+ IFile target = project.getFile(dir.append("%s.%s".formatted(fileNoExt, ext)));
+ for (int i = 1; i < Integer.MAX_VALUE && target.exists(); i++) {
+ target = project.getFile(dir.append("%s-%d.%s".formatted(fileNoExt, i, ext)));
+ }
+ return target;
+ }
+
+ private IFile getSourceFile(ExecutionEvent event) {
+ ISelection selection = HandlerUtil.getActiveMenuSelection(event);
+ IStructuredSelection ss = null;
+ if (selection instanceof IStructuredSelection) {
+ ss = (IStructuredSelection) selection;
+ } else {
+ selection = HandlerUtil.getActiveMenuEditorInput(event);
+ if (selection instanceof IStructuredSelection) {
+ ss = (IStructuredSelection) selection;
+ }
+ }
+ if (ss!=null && !ss.isEmpty()) {
+ return asFile(ss.getFirstElement());
+ }
+ return null;
+ }
+
+ private IFile asFile(Object selectedElement) {
+ if (selectedElement instanceof IFile) {
+ return (IFile) selectedElement;
+ }
+ if (selectedElement instanceof IAdaptable) {
+ return ((IAdaptable) selectedElement).getAdapter(IFile.class);
+ }
+ return null;
+ }
+
+ public static class ConvertPropertiesToYamlHandler extends ConvertBootPropertiesHanlder {
+
+ @Override
+ protected String getTargetExtension() {
+ return "yml";
+ }
+
+ @Override
+ protected String getCommandId() {
+ return "sts/boot/props-to-yaml";
+ }
+
+ }
+
+ public static class ConvertYamlToPropertiesHanlder extends ConvertBootPropertiesHanlder {
+
+ @Override
+ protected String getTargetExtension() {
+ return "properties";
+ }
+
+ @Override
+ protected String getCommandId() {
+ return "sts/boot/yaml-to-props";
+ }
+
+ }
+
+
+}
diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/prefs/BootJavaPreferencesPage.java b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/prefs/BootJavaPreferencesPage.java
index 2d2109326b..8cec47a468 100644
--- a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/prefs/BootJavaPreferencesPage.java
+++ b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/prefs/BootJavaPreferencesPage.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2017, 2023 Pivotal, Inc.
+ * Copyright (c) 2017, 2024 Pivotal, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -42,6 +42,9 @@ protected void createFieldEditors() {
addField(new BooleanFieldEditor(Constants.PREF_SCAN_JAVA_TEST_SOURCES, "Scan Java test sources", fieldEditorParent));
addField(new BooleanFieldEditor(Constants.PREF_CHANGE_DETECTION, "Live Boot Change Detection", fieldEditorParent));
+
+ // Experimental Modulith support
+ addField(new BooleanFieldEditor(Constants.PREF_MODULITH, "Spring Boot Modulith automatic project tracking and metadata update", fieldEditorParent));
Composite c = new Composite(fieldEditorParent, SWT.NONE);
GridDataFactory.fillDefaults().grab(true, false).applyTo(c);
diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/prefs/PrefsInitializer.java b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/prefs/PrefsInitializer.java
index 48cb942d0f..391c91baeb 100644
--- a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/prefs/PrefsInitializer.java
+++ b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/prefs/PrefsInitializer.java
@@ -50,8 +50,7 @@ public void initializeDefaultPreferences() {
preferenceStore.setDefault(Constants.PREF_REWRITE_RECIPE_FILTERS, StringListEditor.encode(new String[] {
"org.openrewrite.java.spring.boot2.SpringBoot2JUnit4to5Migration",
- "org.openrewrite.java.spring.boot2.SpringBoot2BestPractices",
- "org.openrewrite.java.spring.boot2.SpringBoot1To2Migration",
+ "org.openrewrite.java.spring.boot3.SpringBoot3BestPractices",
"org.openrewrite.java.testing.junit5.JUnit5BestPractices",
"org.openrewrite.java.testing.junit5.JUnit4to5Migration",
"org.openrewrite.java.spring.boot2.UpgradeSpringBoot_2_7",
@@ -60,6 +59,9 @@ public void initializeDefaultPreferences() {
"org.springframework.rewrite.test.*",
"rewrite.test.*"
}));
+
+ preferenceStore.setDefault(Constants.PREF_MODULITH, true);
+
}
}
diff --git a/eclipse-language-servers/org.springframework.tooling.bosh.ls.feature/feature.xml b/eclipse-language-servers/org.springframework.tooling.bosh.ls.feature/feature.xml
index ac41efbaa8..2943e79546 100644
--- a/eclipse-language-servers/org.springframework.tooling.bosh.ls.feature/feature.xml
+++ b/eclipse-language-servers/org.springframework.tooling.bosh.ls.feature/feature.xml
@@ -2,7 +2,7 @@
diff --git a/eclipse-language-servers/org.springframework.tooling.bosh.ls.feature/pom.xml b/eclipse-language-servers/org.springframework.tooling.bosh.ls.feature/pom.xml
index 76586fcab5..159d7321cc 100644
--- a/eclipse-language-servers/org.springframework.tooling.bosh.ls.feature/pom.xml
+++ b/eclipse-language-servers/org.springframework.tooling.bosh.ls.feature/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
diff --git a/eclipse-language-servers/org.springframework.tooling.bosh.ls/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springframework.tooling.bosh.ls/META-INF/MANIFEST.MF
index aeba3517e0..f48bd96027 100644
--- a/eclipse-language-servers/org.springframework.tooling.bosh.ls/META-INF/MANIFEST.MF
+++ b/eclipse-language-servers/org.springframework.tooling.bosh.ls/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: BOSH Manifest Language Server
Bundle-Vendor: Broadcom
Bundle-SymbolicName: org.springframework.tooling.bosh.ls;singleton:=true
-Bundle-Version: 1.53.0.qualifier
+Bundle-Version: 1.54.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-17
Require-Bundle: org.eclipse.jdt.launching;bundle-version="3.9.0",
org.eclipse.core.runtime;bundle-version="3.12.0",
diff --git a/eclipse-language-servers/org.springframework.tooling.bosh.ls/pom.xml b/eclipse-language-servers/org.springframework.tooling.bosh.ls/pom.xml
index bfcf687023..814b938e52 100644
--- a/eclipse-language-servers/org.springframework.tooling.bosh.ls/pom.xml
+++ b/eclipse-language-servers/org.springframework.tooling.bosh.ls/pom.xml
@@ -7,12 +7,12 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
org.springframework.tooling.bosh.ls
- 1.53.0-SNAPSHOT
+ 1.54.0-SNAPSHOT
eclipse-plugin
diff --git a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.feature/feature.xml b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.feature/feature.xml
index d188528bbb..8304bf69da 100644
--- a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.feature/feature.xml
+++ b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.feature/feature.xml
@@ -2,7 +2,7 @@
diff --git a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.feature/pom.xml b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.feature/pom.xml
index c872b4e4c8..1072f3dce8 100644
--- a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.feature/pom.xml
+++ b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.feature/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
diff --git a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.integration.feature/feature.xml b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.integration.feature/feature.xml
index 6fd260bc0a..5106ca8d35 100644
--- a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.integration.feature/feature.xml
+++ b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.integration.feature/feature.xml
@@ -2,7 +2,7 @@
diff --git a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.integration.feature/pom.xml b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.integration.feature/pom.xml
index 157c755365..afa1e3228c 100644
--- a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.integration.feature/pom.xml
+++ b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.integration.feature/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
diff --git a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.integration/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.integration/META-INF/MANIFEST.MF
index 0e58249721..a6785b80be 100644
--- a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.integration/META-INF/MANIFEST.MF
+++ b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.integration/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: Cloud Foundry Manifest Language Server Generic Editor Integration
Bundle-Vendor: Broadcom
Bundle-SymbolicName: org.springframework.tooling.cloudfoundry.manifest.ls.integration;singleton:=true
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-17
Require-Bundle: org.eclipse.jdt.launching;bundle-version="3.9.0",
org.eclipse.core.runtime;bundle-version="3.12.0",
diff --git a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.integration/pom.xml b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.integration/pom.xml
index 8e3c173756..d21fad55f1 100644
--- a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.integration/pom.xml
+++ b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.integration/pom.xml
@@ -7,7 +7,7 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
diff --git a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/META-INF/MANIFEST.MF
index 9ac544286a..e7351cf310 100644
--- a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/META-INF/MANIFEST.MF
+++ b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: Cloud Foundry Manifest Language Server
Bundle-Vendor: Broadcom
Bundle-SymbolicName: org.springframework.tooling.cloudfoundry.manifest.ls;singleton:=true
-Bundle-Version: 1.53.0.qualifier
+Bundle-Version: 1.54.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-17
Require-Bundle: org.eclipse.jdt.launching;bundle-version="3.8.0",
org.eclipse.core.runtime;bundle-version="3.12.0",
diff --git a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/pom.xml b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/pom.xml
index a074593f0d..025a69fda0 100644
--- a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/pom.xml
+++ b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/pom.xml
@@ -7,12 +7,12 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
org.springframework.tooling.cloudfoundry.manifest.ls
- 1.53.0-SNAPSHOT
+ 1.54.0-SNAPSHOT
eclipse-plugin
diff --git a/eclipse-language-servers/org.springframework.tooling.concourse.ls.feature/feature.xml b/eclipse-language-servers/org.springframework.tooling.concourse.ls.feature/feature.xml
index 34a4b7ca2c..a2e406c691 100644
--- a/eclipse-language-servers/org.springframework.tooling.concourse.ls.feature/feature.xml
+++ b/eclipse-language-servers/org.springframework.tooling.concourse.ls.feature/feature.xml
@@ -2,7 +2,7 @@
diff --git a/eclipse-language-servers/org.springframework.tooling.concourse.ls.feature/pom.xml b/eclipse-language-servers/org.springframework.tooling.concourse.ls.feature/pom.xml
index cb87b8d5b5..6264f99c3a 100644
--- a/eclipse-language-servers/org.springframework.tooling.concourse.ls.feature/pom.xml
+++ b/eclipse-language-servers/org.springframework.tooling.concourse.ls.feature/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
diff --git a/eclipse-language-servers/org.springframework.tooling.concourse.ls/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springframework.tooling.concourse.ls/META-INF/MANIFEST.MF
index 25f31f80e6..11a52d2f03 100644
--- a/eclipse-language-servers/org.springframework.tooling.concourse.ls/META-INF/MANIFEST.MF
+++ b/eclipse-language-servers/org.springframework.tooling.concourse.ls/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: Concourse Pipeline Language Server
Bundle-Vendor: Broadcom
Bundle-SymbolicName: org.springframework.tooling.concourse.ls;singleton:=true
-Bundle-Version: 1.53.0.qualifier
+Bundle-Version: 1.54.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-17
Require-Bundle: org.eclipse.jdt.launching;bundle-version="3.9.0",
org.eclipse.core.runtime;bundle-version="3.12.0",
diff --git a/eclipse-language-servers/org.springframework.tooling.concourse.ls/pom.xml b/eclipse-language-servers/org.springframework.tooling.concourse.ls/pom.xml
index be74407563..deecd1b00f 100644
--- a/eclipse-language-servers/org.springframework.tooling.concourse.ls/pom.xml
+++ b/eclipse-language-servers/org.springframework.tooling.concourse.ls/pom.xml
@@ -7,12 +7,12 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
org.springframework.tooling.concourse.ls
- 1.53.0-SNAPSHOT
+ 1.54.0-SNAPSHOT
eclipse-plugin
diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons.test/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons.test/META-INF/MANIFEST.MF
index 223d695877..d6ff1439e9 100644
--- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons.test/META-INF/MANIFEST.MF
+++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons.test/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Test
Bundle-SymbolicName: org.springframework.tooling.ls.eclipse.commons.test
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Automatic-Module-Name: org.springframework.tooling.ls.eclipse.commons.test
Bundle-RequiredExecutionEnvironment: JavaSE-17
Require-Bundle: org.junit,
@@ -19,4 +19,5 @@ Require-Bundle: org.junit,
Import-Package: com.google.gson,
com.google.gson.annotations,
com.google.gson.reflect,
- com.google.gson.stream
+ com.google.gson.stream,
+ org.apache.commons.io
diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons.test/pom.xml b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons.test/pom.xml
index e9f76003bb..bd1f69a684 100644
--- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons.test/pom.xml
+++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons.test/pom.xml
@@ -10,7 +10,7 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/META-INF/MANIFEST.MF
index e86cc48151..0d45612c47 100644
--- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/META-INF/MANIFEST.MF
+++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Eclipse Language Server Commons
Bundle-SymbolicName: org.springframework.tooling.ls.eclipse.commons;singleton:=true
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Bundle-Vendor: Broadcom
Require-Bundle: org.eclipse.jdt.launching;bundle-version="3.8.0",
org.eclipse.ui,
diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/pom.xml b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/pom.xml
index 97768f2f1c..29e12b623a 100644
--- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/pom.xml
+++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/HighlightsCodeLensProvider.java b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/HighlightsCodeLensProvider.java
index fda4ce1684..bad0449f4a 100644
--- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/HighlightsCodeLensProvider.java
+++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/HighlightsCodeLensProvider.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2018, 2023 Pivotal, Inc.
+ * Copyright (c) 2018, 2024 Pivotal, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -48,14 +48,19 @@ public class HighlightsCodeLensProvider extends AbstractCodeMiningProvider {
private static final Map>> ACTION_MAP = new HashMap<>();
static {
ACTION_MAP.put("sts.open.url", (cmd) -> {
- return (me) -> {
- IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
- if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof JsonPrimitive) {
- String url = ((JsonPrimitive)cmd.getArguments().get(0)).getAsString();
- LSPEclipseUtils.open(url, page, null);
- }
- };
+ return (me) -> opneUrlCommand(cmd);
});
+ ACTION_MAP.put("vscode-spring-boot.open.url", (cmd) -> {
+ return (me) -> opneUrlCommand(cmd);
+ });
+ }
+
+ private static void opneUrlCommand(Command cmd) {
+ IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof JsonPrimitive) {
+ String url = ((JsonPrimitive)cmd.getArguments().get(0)).getAsString();
+ LSPEclipseUtils.open(url, page, null);
+ }
}
private static Consumer action(Command cmd) {
diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/META-INF/MANIFEST.MF
index 5719dabe79..53c67c4231 100644
--- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/META-INF/MANIFEST.MF
+++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Goto Symbol Popup
Bundle-SymbolicName: org.springframework.tooling.ls.eclipse.gotosymbol;singleton:=true
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Require-Bundle: org.eclipse.ui,
org.eclipse.ui.workbench.texteditor,
org.eclipse.lsp4e;bundle-version="0.13.12",
diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/pom.xml b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/pom.xml
index cb1a4e76ae..c729e2dcbd 100644
--- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/pom.xml
+++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
diff --git a/eclipse-language-servers/org.springframework.tooling.ls.integration.repository/pom.xml b/eclipse-language-servers/org.springframework.tooling.ls.integration.repository/pom.xml
index 5ad5239b3a..41e6342f57 100644
--- a/eclipse-language-servers/org.springframework.tooling.ls.integration.repository/pom.xml
+++ b/eclipse-language-servers/org.springframework.tooling.ls.integration.repository/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
diff --git a/eclipse-language-servers/org.springframework.tooling.ls.repository/pom.xml b/eclipse-language-servers/org.springframework.tooling.ls.repository/pom.xml
index 30f3f2f242..fe1182ebaf 100644
--- a/eclipse-language-servers/org.springframework.tooling.ls.repository/pom.xml
+++ b/eclipse-language-servers/org.springframework.tooling.ls.repository/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
diff --git a/eclipse-language-servers/org.springsource.ide.eclipse.commons.boot.ls/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springsource.ide.eclipse.commons.boot.ls/META-INF/MANIFEST.MF
index 5b5e1bca02..ccb094b0fc 100644
--- a/eclipse-language-servers/org.springsource.ide.eclipse.commons.boot.ls/META-INF/MANIFEST.MF
+++ b/eclipse-language-servers/org.springsource.ide.eclipse.commons.boot.ls/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Spring Tool Suite Common UI Components
Bundle-SymbolicName: org.springsource.ide.eclipse.commons.boot.ls;singleton:=true
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Bundle-Vendor: Broadcom
Require-Bundle: org.eclipse.core.resources,
org.springsource.ide.eclipse.commons.livexp
diff --git a/eclipse-language-servers/org.springsource.ide.eclipse.commons.boot.ls/pom.xml b/eclipse-language-servers/org.springsource.ide.eclipse.commons.boot.ls/pom.xml
index b7cce9c944..a1e1dd9051 100644
--- a/eclipse-language-servers/org.springsource.ide.eclipse.commons.boot.ls/pom.xml
+++ b/eclipse-language-servers/org.springsource.ide.eclipse.commons.boot.ls/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
diff --git a/eclipse-language-servers/org.springsource.ide.eclipse.commons.core/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springsource.ide.eclipse.commons.core/META-INF/MANIFEST.MF
index a4a2f154c9..4c6cf2bd84 100644
--- a/eclipse-language-servers/org.springsource.ide.eclipse.commons.core/META-INF/MANIFEST.MF
+++ b/eclipse-language-servers/org.springsource.ide.eclipse.commons.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: SpringSource Tool Suite (Core)
Bundle-SymbolicName: org.springsource.ide.eclipse.commons.core;singleton:=true
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Bundle-Activator: org.springsource.ide.eclipse.commons.internal.core.CorePlugin
Bundle-Vendor: Broadcom
Require-Bundle: org.eclipse.core.resources,
diff --git a/eclipse-language-servers/org.springsource.ide.eclipse.commons.core/pom.xml b/eclipse-language-servers/org.springsource.ide.eclipse.commons.core/pom.xml
index f19dc4671b..bd9504b6f5 100644
--- a/eclipse-language-servers/org.springsource.ide.eclipse.commons.core/pom.xml
+++ b/eclipse-language-servers/org.springsource.ide.eclipse.commons.core/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
diff --git a/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.core/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.core/META-INF/MANIFEST.MF
index 9b1a6ef0f5..d8aa03be52 100644
--- a/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.core/META-INF/MANIFEST.MF
+++ b/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.springsource.ide.eclipse.commons.frameworks.core;singleton:=true
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Bundle-Activator: org.springsource.ide.eclipse.commons.frameworks.core.FrameworkCoreActivator
Bundle-Vendor: %providerName
Require-Bundle: org.eclipse.ui,
diff --git a/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.core/pom.xml b/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.core/pom.xml
index 0c149d6784..a2002f4b3d 100644
--- a/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.core/pom.xml
+++ b/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.core/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
diff --git a/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.test.util/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.test.util/META-INF/MANIFEST.MF
index ada272683a..5f1c9f7706 100644
--- a/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.test.util/META-INF/MANIFEST.MF
+++ b/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.test.util/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: com.springsource.sts.frameworks.test.util
Bundle-SymbolicName: org.springsource.ide.eclipse.commons.frameworks.test.util;singleton:=true
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Bundle-ActivationPolicy: lazy
Bundle-Vendor: Broadcom
Bundle-RequiredExecutionEnvironment: JavaSE-17
diff --git a/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.test.util/pom.xml b/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.test.util/pom.xml
index 62368e30e4..0787ab790e 100644
--- a/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.test.util/pom.xml
+++ b/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.test.util/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
diff --git a/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.ui/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.ui/META-INF/MANIFEST.MF
index 1beaff5a95..83d436096c 100644
--- a/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.ui/META-INF/MANIFEST.MF
+++ b/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.springsource.ide.eclipse.commons.frameworks.ui;singleton:=true
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Bundle-Activator: org.springsource.ide.eclipse.commons.frameworks.ui.FrameworkUIActivator
Bundle-Vendor: %providerName
Require-Bundle: org.eclipse.ui,
diff --git a/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.ui/pom.xml b/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.ui/pom.xml
index 1d558cfda2..e08b8d3d8a 100644
--- a/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.ui/pom.xml
+++ b/eclipse-language-servers/org.springsource.ide.eclipse.commons.frameworks.ui/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
diff --git a/eclipse-language-servers/org.springsource.ide.eclipse.commons.jdk_tools/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springsource.ide.eclipse.commons.jdk_tools/META-INF/MANIFEST.MF
index 724c0effe0..5ff5612e21 100644
--- a/eclipse-language-servers/org.springsource.ide.eclipse.commons.jdk_tools/META-INF/MANIFEST.MF
+++ b/eclipse-language-servers/org.springsource.ide.eclipse.commons.jdk_tools/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: SpringSource Tool Suite (JDK Tools)
Bundle-SymbolicName: org.springsource.ide.eclipse.commons.jdk_tools;singleton:=true
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-ClassPath: external:$java.home$/../lib/tools.jar
Export-Package: com.sun.tools.attach
diff --git a/eclipse-language-servers/org.springsource.ide.eclipse.commons.jdk_tools/pom.xml b/eclipse-language-servers/org.springsource.ide.eclipse.commons.jdk_tools/pom.xml
index ccb050a091..56b484739e 100644
--- a/eclipse-language-servers/org.springsource.ide.eclipse.commons.jdk_tools/pom.xml
+++ b/eclipse-language-servers/org.springsource.ide.eclipse.commons.jdk_tools/pom.xml
@@ -7,7 +7,7 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
diff --git a/eclipse-language-servers/org.springsource.ide.eclipse.commons.livexp/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springsource.ide.eclipse.commons.livexp/META-INF/MANIFEST.MF
index 721a00915a..d10bd7a44d 100644
--- a/eclipse-language-servers/org.springsource.ide.eclipse.commons.livexp/META-INF/MANIFEST.MF
+++ b/eclipse-language-servers/org.springsource.ide.eclipse.commons.livexp/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Eclipse Integration Commands - Livexp
Bundle-SymbolicName: org.springsource.ide.eclipse.commons.livexp
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Bundle-Activator: org.springsource.ide.eclipse.commons.livexp.Activator
Require-Bundle: org.eclipse.jface,
org.eclipse.ui.workbench,
diff --git a/eclipse-language-servers/org.springsource.ide.eclipse.commons.livexp/pom.xml b/eclipse-language-servers/org.springsource.ide.eclipse.commons.livexp/pom.xml
index 088f162986..1860a542e4 100644
--- a/eclipse-language-servers/org.springsource.ide.eclipse.commons.livexp/pom.xml
+++ b/eclipse-language-servers/org.springsource.ide.eclipse.commons.livexp/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
diff --git a/eclipse-language-servers/org.springsource.ide.eclipse.commons.tests.util/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springsource.ide.eclipse.commons.tests.util/META-INF/MANIFEST.MF
index a58c605fd6..456ffeb7a5 100644
--- a/eclipse-language-servers/org.springsource.ide.eclipse.commons.tests.util/META-INF/MANIFEST.MF
+++ b/eclipse-language-servers/org.springsource.ide.eclipse.commons.tests.util/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: SpringSource Tool Suite Test Utilities
Bundle-SymbolicName: org.springsource.ide.eclipse.commons.tests.util;singleton:=true
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Bundle-Vendor: Broadcom
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.core.resources,
diff --git a/eclipse-language-servers/org.springsource.ide.eclipse.commons.tests.util/pom.xml b/eclipse-language-servers/org.springsource.ide.eclipse.commons.tests.util/pom.xml
index 7b9e1c5a90..ba8b3d066e 100644
--- a/eclipse-language-servers/org.springsource.ide.eclipse.commons.tests.util/pom.xml
+++ b/eclipse-language-servers/org.springsource.ide.eclipse.commons.tests.util/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
diff --git a/eclipse-language-servers/org.springsource.ide.eclipse.commons.ui/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springsource.ide.eclipse.commons.ui/META-INF/MANIFEST.MF
index 60b3922212..f2419714f2 100644
--- a/eclipse-language-servers/org.springsource.ide.eclipse.commons.ui/META-INF/MANIFEST.MF
+++ b/eclipse-language-servers/org.springsource.ide.eclipse.commons.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Spring Tool Suite Common UI Components
Bundle-SymbolicName: org.springsource.ide.eclipse.commons.ui;singleton:=true
-Bundle-Version: 4.22.0.qualifier
+Bundle-Version: 4.22.1.qualifier
Bundle-Vendor: Broadcom
Require-Bundle: org.eclipse.core.resources,
org.eclipse.ui,
diff --git a/eclipse-language-servers/org.springsource.ide.eclipse.commons.ui/pom.xml b/eclipse-language-servers/org.springsource.ide.eclipse.commons.ui/pom.xml
index ef5b0d0a1b..983eff5b7a 100644
--- a/eclipse-language-servers/org.springsource.ide.eclipse.commons.ui/pom.xml
+++ b/eclipse-language-servers/org.springsource.ide.eclipse.commons.ui/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
../pom.xml
diff --git a/eclipse-language-servers/pom.xml b/eclipse-language-servers/pom.xml
index ba1d3df8de..1d0fec63f3 100644
--- a/eclipse-language-servers/pom.xml
+++ b/eclipse-language-servers/pom.xml
@@ -4,7 +4,7 @@
org.springframework.boot.ide
org.springframework.boot.ide.servers
- 4.22.0-SNAPSHOT
+ 4.22.1-SNAPSHOT
pom
@@ -139,26 +139,26 @@
- e429
+ e430
- e4.29.0
- e4.29
- 2023-09
- 2023-09 (4.29)
- 2023-09
- 4.29
- e429
+ e4.30.0
+ e4.30
+ 2023-12
+ 2023-12 (4.30)
+ 2023-12
+ 4.30
+ e430
- 2023-09
+ 2023-12
p2
- https://download.eclipse.org/releases/2023-09/
+ https://download.eclipse.org/releases/2023-12/
orbit
p2
- https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/2023-09
+ https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/2023-12
+
+ https://download.eclipse.org/lsp4e/snapshots
tm4e
p2
- https://download.eclipse.org/tm4e/releases/0.8.1/
-
+
+ https://download.eclipse.org/tm4e/snapshots
wwd
@@ -192,26 +192,26 @@
- e430
+ e431
- e4.30.0
- e4.30
- 2023-12
- 2023-12 (4.30)
- 2023-12
- 4.30
- e430
+ e4.31.0
+ e4.31
+ 2024-03
+ 2024-03 (4.31)
+ 2024-03
+ 4.31
+ e431
2023-12
p2
- https://download.eclipse.org/releases/2023-12/
+ https://download.eclipse.org/staging/2024-03/
orbit
p2
- https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/2023-12
+ https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/2024-03
+
https://download.eclipse.org/lsp4e/snapshots
@@ -245,47 +245,42 @@
- e431
+ e432
- e4.31.0
- e4.31
- 2024-03
- 2024-03 (4.31)
- 2024-03
- 4.31
- e431
+ e4.32.0
+ e4.32
+ 2024-06
+ 2024-06 (4.32)
+ 2024-06
+ 4.32
+ e432
- 2023-12
+ 2024-06
p2
- https://download.eclipse.org/staging/2024-03/
+ https://download.eclipse.org/staging/2024-06/
orbit
p2
- https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/2024-03
+ https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/2024-06
-
mylyn-markdown
p2
- https://download.eclipse.org/mylyn/docs/releases/3.0.45/
+ https://download.eclipse.org/mylyn/docs/releases/3.0.48/
lsp4e
p2
-
+
https://download.eclipse.org/lsp4e/snapshots
tm4e
p2
-
+
https://download.eclipse.org/tm4e/snapshots
@@ -296,7 +291,6 @@
-
diff --git a/headless-services/bosh-language-server/pom.xml b/headless-services/bosh-language-server/pom.xml
index 2cd25a4c52..dc3532d7c5 100644
--- a/headless-services/bosh-language-server/pom.xml
+++ b/headless-services/bosh-language-server/pom.xml
@@ -9,7 +9,7 @@
org.springframework.ide.vscode
commons-parent
- 1.53.0-SNAPSHOT
+ 1.54.0-SNAPSHOT
../commons/pom.xml
diff --git a/headless-services/commons/commons-cf/pom.xml b/headless-services/commons/commons-cf/pom.xml
index 49a23fdb62..1b91bb5bde 100644
--- a/headless-services/commons/commons-cf/pom.xml
+++ b/headless-services/commons/commons-cf/pom.xml
@@ -8,7 +8,7 @@
org.springframework.ide.vscode
commons-parent
- 1.53.0-SNAPSHOT
+ 1.54.0-SNAPSHOT
../pom.xml
diff --git a/headless-services/commons/commons-gradle/pom.xml b/headless-services/commons/commons-gradle/pom.xml
index 929f2e184e..307ae6a69d 100644
--- a/headless-services/commons/commons-gradle/pom.xml
+++ b/headless-services/commons/commons-gradle/pom.xml
@@ -9,7 +9,7 @@
org.springframework.ide.vscode
commons-parent
- 1.53.0-SNAPSHOT
+ 1.54.0-SNAPSHOT
../pom.xml
diff --git a/headless-services/commons/commons-gradle/src/main/java/org/springframework/ide/vscode/commons/gradle/GradleJavaProject.java b/headless-services/commons/commons-gradle/src/main/java/org/springframework/ide/vscode/commons/gradle/GradleJavaProject.java
index 3d1c06c416..13ed398ec3 100644
--- a/headless-services/commons/commons-gradle/src/main/java/org/springframework/ide/vscode/commons/gradle/GradleJavaProject.java
+++ b/headless-services/commons/commons-gradle/src/main/java/org/springframework/ide/vscode/commons/gradle/GradleJavaProject.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2017, 2022 Pivotal, Inc.
+ * Copyright (c) 2017, 2024 Pivotal, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -35,7 +35,7 @@ public class GradleJavaProject extends LegacyJavaProject {
private static final Logger log = LoggerFactory.getLogger(GradleJavaProject.class);
private GradleJavaProject(FileObserver fileObserver, Path projectDataCache, IClasspath classpath, File gradleFile, JavadocService javadocService) {
- super(fileObserver, gradleFile.getParentFile().toURI(), projectDataCache, classpath, javadocService, IProjectBuild.create(ProjectBuild.GRADLE_PROJECT_TYPE, gradleFile.toURI()));
+ super(fileObserver, gradleFile.getParentFile().toURI(), projectDataCache, classpath, javadocService, IProjectBuild.create(ProjectBuild.GRADLE_PROJECT_TYPE, gradleFile.toURI(), null));
}
public static GradleJavaProject create(FileObserver fileObserver, GradleCore gradle, File gradleFile, Path projectDataCache, JavadocService javadocService) {
diff --git a/headless-services/commons/commons-java/pom.xml b/headless-services/commons/commons-java/pom.xml
index 3d31261d11..0643ca34c1 100644
--- a/headless-services/commons/commons-java/pom.xml
+++ b/headless-services/commons/commons-java/pom.xml
@@ -8,7 +8,7 @@
org.springframework.ide.vscode
commons-parent
- 1.53.0-SNAPSHOT
+ 1.54.0-SNAPSHOT
../pom.xml
diff --git a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/IGav.java b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/IGav.java
new file mode 100644
index 0000000000..e6ebc2ddbb
--- /dev/null
+++ b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/IGav.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2024 Broadcom, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Broadcom, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.springframework.ide.vscode.commons.java;
+
+import org.springframework.ide.vscode.commons.protocol.java.Gav;
+
+public interface IGav {
+
+ String getGroupId();
+
+ String getArtifactId();
+
+ String getVersion();
+
+ static IGav create(Gav gav) {
+ return new IGav() {
+
+ @Override
+ public String getVersion() {
+ return gav.version();
+ }
+
+ @Override
+ public String getGroupId() {
+ return gav.groupId();
+ }
+
+ @Override
+ public String getArtifactId() {
+ return gav.artifactId();
+ }
+ };
+ }
+}
diff --git a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/IProjectBuild.java b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/IProjectBuild.java
index 5c73235c56..880bccbefe 100644
--- a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/IProjectBuild.java
+++ b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/IProjectBuild.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2022 VMware, Inc.
+ * Copyright (c) 2022, 2024 VMware, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -12,13 +12,17 @@
import java.net.URI;
+import org.springframework.ide.vscode.commons.protocol.java.Gav;
+
public interface IProjectBuild {
String getType();
URI getBuildFile();
- static IProjectBuild create(String type, URI buildFile) {
+ IGav getGav();
+
+ static IProjectBuild create(String type, URI buildFile, Gav gav) {
return new IProjectBuild() {
@Override
@@ -30,6 +34,10 @@ public String getType() {
public URI getBuildFile() {
return buildFile;
}
+
+ public IGav getGav() {
+ return IGav.create(gav);
+ }
};
}
diff --git a/headless-services/commons/commons-language-server/pom.xml b/headless-services/commons/commons-language-server/pom.xml
index f8b400c60b..3deb4ab094 100644
--- a/headless-services/commons/commons-language-server/pom.xml
+++ b/headless-services/commons/commons-language-server/pom.xml
@@ -8,7 +8,7 @@
org.springframework.ide.vscode
commons-parent
- 1.53.0-SNAPSHOT
+ 1.54.0-SNAPSHOT
../pom.xml
diff --git a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/composable/CompositeLanguageServerComponents.java b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/composable/CompositeLanguageServerComponents.java
index 43414c6a31..c095971ed0 100644
--- a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/composable/CompositeLanguageServerComponents.java
+++ b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/composable/CompositeLanguageServerComponents.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2018, 2022 Pivotal, Inc.
+ * Copyright (c) 2018, 2024 Pivotal, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -10,34 +10,45 @@
*******************************************************************************/
package org.springframework.ide.vscode.commons.languageserver.composable;
+import java.net.URI;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
+import java.util.stream.Collectors;
import org.eclipse.lsp4j.CodeAction;
import org.eclipse.lsp4j.CodeActionCapabilities;
import org.eclipse.lsp4j.CodeActionContext;
+import org.eclipse.lsp4j.CodeLens;
+import org.eclipse.lsp4j.CodeLensParams;
import org.eclipse.lsp4j.Command;
import org.eclipse.lsp4j.DocumentSymbolParams;
import org.eclipse.lsp4j.Hover;
import org.eclipse.lsp4j.HoverParams;
+import org.eclipse.lsp4j.InlayHint;
+import org.eclipse.lsp4j.InlayHintParams;
import org.eclipse.lsp4j.WorkspaceSymbol;
import org.eclipse.lsp4j.jsonrpc.CancelChecker;
import org.eclipse.lsp4j.jsonrpc.messages.Either;
+import org.springframework.context.ApplicationContext;
import org.springframework.ide.vscode.commons.languageserver.reconcile.IProblemCollector;
import org.springframework.ide.vscode.commons.languageserver.reconcile.IReconcileEngine;
import org.springframework.ide.vscode.commons.languageserver.util.CodeActionHandler;
+import org.springframework.ide.vscode.commons.languageserver.util.CodeLensHandler;
import org.springframework.ide.vscode.commons.languageserver.util.DocumentSymbolHandler;
import org.springframework.ide.vscode.commons.languageserver.util.HoverHandler;
+import org.springframework.ide.vscode.commons.languageserver.util.InlayHintHandler;
+import org.springframework.ide.vscode.commons.languageserver.util.LanguageComputer;
import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer;
import org.springframework.ide.vscode.commons.languageserver.util.SimpleTextDocumentService;
-import org.springframework.ide.vscode.commons.util.Assert;
import org.springframework.ide.vscode.commons.util.text.IDocument;
import org.springframework.ide.vscode.commons.util.text.IRegion;
import org.springframework.ide.vscode.commons.util.text.LanguageId;
+import org.springframework.ide.vscode.commons.util.text.LazyTextDocument;
import org.springframework.ide.vscode.commons.util.text.TextDocument;
import com.google.common.collect.ImmutableMap;
@@ -45,45 +56,52 @@
public class CompositeLanguageServerComponents implements LanguageServerComponents {
public static class Builder {
- private Map componentsByLanguageId = new HashMap<>();
+ private Map> componentsByLanguageId = new HashMap<>();
public void add(LanguageServerComponents components) {
for (LanguageId language : components.getInterestingLanguages()) {
- //Multiple associations to a single language id not yet supported.
- Assert.isLegal(!componentsByLanguageId.containsKey(language));
- componentsByLanguageId.put(language, components);
+ List list = componentsByLanguageId.get(language);
+ if (list == null) {
+ list = new ArrayList<>(1);
+ componentsByLanguageId.put(language, list);
+ }
+ list.add(components);
}
}
- public CompositeLanguageServerComponents build(SimpleLanguageServer server) {
- return new CompositeLanguageServerComponents(server, this);
+ public CompositeLanguageServerComponents build(ApplicationContext appContext) {
+ return new CompositeLanguageServerComponents(appContext, this);
}
}
- private final Map componentsByLanguageId;
+ private final Map> componentsByLanguageId;
private final IReconcileEngine reconcileEngine;
private final HoverHandler hoverHandler;
private final CodeActionHandler codeActionHandler;
+ private final CodeLensHandler codeLensHandler;
private final DocumentSymbolHandler docSymbolHandler;
+ private final InlayHintHandler inlayHintHandler;
- public CompositeLanguageServerComponents(SimpleLanguageServer server, Builder builder) {
+ public CompositeLanguageServerComponents(ApplicationContext appContext, Builder builder) {
+ SimpleLanguageServer server = appContext.getBean(SimpleLanguageServer.class);
this.componentsByLanguageId = ImmutableMap.copyOf(builder.componentsByLanguageId);
//Create composite Reconcile engine
- if (componentsByLanguageId.values().stream().map(LanguageServerComponents::getReconcileEngine).anyMatch(Optional::isPresent)) {
+ if (componentsByLanguageId.values().stream().flatMap(l -> l.stream()).map(LanguageServerComponents::getReconcileEngine).anyMatch(Optional::isPresent)) {
this.reconcileEngine = new IReconcileEngine() {
@Override
public void reconcile(IDocument document, IProblemCollector problemCollector) {
LanguageId language = document.getLanguageId();
- LanguageServerComponents subComponents = componentsByLanguageId.get(language);
+ List subComponents = componentsByLanguageId.get(language);
if (subComponents!=null) {
- Optional subEngine = subComponents.getReconcileEngine();
- if (subEngine.isPresent()) {
- subEngine.get().reconcile(document, problemCollector);
- return;
+ for (LanguageServerComponents subComponent : subComponents) {
+ Optional subEngine = subComponent.getReconcileEngine();
+ if (subEngine.isPresent()) {
+ subEngine.get().reconcile(document, problemCollector);
+ }
}
}
- //No applicable subEngine... but we still have to obey the IReconcileEngine contract!
- IReconcileEngine.NULL.reconcile(document, problemCollector);
+// //No applicable subEngine... but we still have to obey the IReconcileEngine contract!
+// IReconcileEngine.NULL.reconcile(document, problemCollector);
}
};
} else {
@@ -95,11 +113,13 @@ public void reconcile(IDocument document, IProblemCollector problemCollector) {
public Hover handle(CancelChecker cancelToken, HoverParams params) {
TextDocument doc = server.getTextDocumentService().getLatestSnapshot(params.getTextDocument().getUri());
LanguageId language = doc.getLanguageId();
- LanguageServerComponents subComponents = componentsByLanguageId.get(language);
+ List subComponents = componentsByLanguageId.get(language);
if (subComponents != null) {
- HoverHandler subEngine = subComponents.getHoverProvider();
- if (subEngine != null) {
- return subEngine.handle(cancelToken, params);
+ for (LanguageServerComponents subComponent : subComponents) {
+ HoverHandler subEngine = subComponent.getHoverProvider();
+ if (subEngine != null) {
+ return subEngine.handle(cancelToken, params);
+ }
}
}
//No applicable subEngine...
@@ -113,11 +133,51 @@ public Hover handle(CancelChecker cancelToken, HoverParams params) {
public List> handle(CancelChecker cancelToken,
CodeActionCapabilities capabilities, CodeActionContext context, TextDocument doc, IRegion region) {
LanguageId language = doc.getLanguageId();
- LanguageServerComponents subComponents = componentsByLanguageId.get(language);
+ List subComponents = componentsByLanguageId.get(language);
if (subComponents != null) {
- return subComponents.getCodeActionProvider()
- .map(subEngine -> subEngine.handle(cancelToken, capabilities, context, doc, region))
- .orElse(Collections.emptyList());
+ return subComponents.stream()
+ .map(sc -> sc.getCodeActionProvider())
+ .filter(provider -> provider.isPresent())
+ .flatMap(se -> se.get().handle(cancelToken, capabilities, context, doc, region).stream())
+ .collect(Collectors.toList());
+ }
+ // No applicable subEngine...
+ return Collections.emptyList();
+ }
+ };
+
+ this.codeLensHandler = new CodeLensHandler() {
+
+ @Override
+ public List extends CodeLens> handle(CancelChecker cancelToken, CodeLensParams params) {
+ TextDocument doc = getDoc(appContext, params.getTextDocument().getUri());
+ LanguageId language = doc.getLanguageId();
+ List subComponents = componentsByLanguageId.get(language);
+ if (subComponents != null) {
+ return subComponents.stream()
+ .map(sc -> sc.getCodeLensHandler())
+ .filter(h -> h.isPresent())
+ .flatMap(h -> h.get().handle(cancelToken, params).stream())
+ .collect(Collectors.toList());
+ }
+ // No applicable subEngine...
+ return Collections.emptyList();
+ }
+ };
+
+ this.inlayHintHandler = new InlayHintHandler() {
+
+ @Override
+ public List handle(CancelChecker token, InlayHintParams params) {
+ TextDocument doc = server.getTextDocumentService().getLatestSnapshot(params.getTextDocument().getUri());
+ LanguageId language = doc.getLanguageId();
+ List subComponents = componentsByLanguageId.get(language);
+ if (subComponents != null) {
+ return subComponents.stream()
+ .map(sc -> sc.getInlayHintHandler())
+ .filter(h -> h.isPresent())
+ .flatMap(h -> h.get().handle(token, params).stream())
+ .collect(Collectors.toList());
}
// No applicable subEngine...
return Collections.emptyList();
@@ -128,14 +188,15 @@ public List> handle(CancelChecker cancelToken,
@Override
public List extends WorkspaceSymbol> handle(DocumentSymbolParams params) {
- TextDocument doc = server.getTextDocumentService().getLatestSnapshot(params.getTextDocument().getUri());
+ TextDocument doc = getDoc(appContext, params.getTextDocument().getUri());
LanguageId language = doc.getLanguageId();
- LanguageServerComponents subComponents = componentsByLanguageId.get(language);
+ List subComponents = componentsByLanguageId.get(language);
if (subComponents != null) {
- DocumentSymbolHandler subHandler = subComponents.getDocumentSymbolProvider().orElse(null);
- if (subHandler != null) {
- return subHandler.handle(params);
- }
+ return subComponents.stream()
+ .map(sc -> sc.getDocumentSymbolProvider())
+ .filter(ds -> ds.isPresent())
+ .flatMap(ds -> ds.get().handle(params).stream())
+ .collect(Collectors.toList());
}
//No applicable subEngine...
return Collections.emptyList();
@@ -163,14 +224,13 @@ public Optional getDocumentSymbolProvider() {
return Optional.ofNullable(docSymbolHandler);
}
- @SuppressWarnings("unchecked")
public C get(Class subComponentsType) {
- for (LanguageServerComponents subcomp : this.componentsByLanguageId.values()) {
- if (subComponentsType.isInstance(subcomp)) {
- return (C) subcomp;
- }
- }
- return null;
+ return this.componentsByLanguageId.values().stream()
+ .flatMap(l -> l.stream())
+ .filter(subComponentsType::isInstance)
+ .map(subComponentsType::cast)
+ .findFirst()
+ .orElse(null);
}
@Override
@@ -178,4 +238,31 @@ public Optional getCodeActionProvider() {
return Optional.of(codeActionHandler);
}
+ @Override
+ public Optional getCodeLensHandler() {
+ return Optional.of(codeLensHandler);
+ }
+
+ @Override
+ public Optional getInlayHintHandler() {
+ return Optional.of(inlayHintHandler);
+ }
+
+ private static TextDocument getDoc(ApplicationContext appContext, String uri) {
+
+ TextDocument doc = appContext.getBean(SimpleLanguageServer.class).getTextDocumentService().getLatestSnapshot(uri);
+
+ if (doc == null) {
+ LanguageComputer languageComputer = appContext.getBean(LanguageComputer.class);
+ if (languageComputer != null) {
+ LanguageId language = languageComputer.computeLanguage(URI.create(uri));
+ if (language != null) {
+ doc = new LazyTextDocument(uri, language);
+ }
+ }
+ }
+
+ return doc;
+ }
+
}
diff --git a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/composable/LanguageServerComponents.java b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/composable/LanguageServerComponents.java
index 9925d3113e..257426106f 100644
--- a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/composable/LanguageServerComponents.java
+++ b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/composable/LanguageServerComponents.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2018, 2022 Pivotal, Inc.
+ * Copyright (c) 2018, 2024 Pivotal, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -15,15 +15,19 @@
import org.springframework.ide.vscode.commons.languageserver.reconcile.IReconcileEngine;
import org.springframework.ide.vscode.commons.languageserver.util.CodeActionHandler;
+import org.springframework.ide.vscode.commons.languageserver.util.CodeLensHandler;
import org.springframework.ide.vscode.commons.languageserver.util.DocumentSymbolHandler;
import org.springframework.ide.vscode.commons.languageserver.util.HoverHandler;
+import org.springframework.ide.vscode.commons.languageserver.util.InlayHintHandler;
import org.springframework.ide.vscode.commons.util.text.LanguageId;
public interface LanguageServerComponents {
Set getInterestingLanguages();
default Optional getReconcileEngine() { return Optional.empty(); }
- HoverHandler getHoverProvider();
+ default HoverHandler getHoverProvider() { return null; }
default Optional getCodeActionProvider() { return Optional.empty(); }
default Optional getDocumentSymbolProvider() { return Optional.empty(); }
+ default Optional getCodeLensHandler() { return Optional.empty(); }
+ default Optional getInlayHintHandler() { return Optional.empty(); }
}
diff --git a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/ExecuteCommandHandler.java b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/ExecuteCommandHandler.java
index 826f4da176..fceb2b74f1 100644
--- a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/ExecuteCommandHandler.java
+++ b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/ExecuteCommandHandler.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2017 Pivotal, Inc.
+ * Copyright (c) 2017, 2024 Pivotal, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -15,6 +15,6 @@
import org.eclipse.lsp4j.ExecuteCommandParams;
@FunctionalInterface
-public interface ExecuteCommandHandler {
- CompletableFuture