diff --git a/.github/scripts/sign-exe.sh b/.github/scripts/sign-exe.sh
index 02235f9e9..ef2c209bd 100755
--- a/.github/scripts/sign-exe.sh
+++ b/.github/scripts/sign-exe.sh
@@ -13,6 +13,6 @@ ssh -i $SSH_KEY $SSH_USER@vm-tools.spring.vmware.com -- /build/apps/signing/sign
echo "Copying **signed** $in_filename back... (into $out_file)"
scp -i $SSH_KEY $SSH_USER@vm-tools.spring.vmware.com:/opt/bamboo/$id/$in_filename $out_file
echo "Cleaning up remote machine..."
-ssh -i $SSH_KEY $SSH_USER@vm-tools.spring.vmware.com -- rm -f /opt/bamboo/$id
+ssh -i $SSH_KEY $SSH_USER@vm-tools.spring.vmware.com -- rm -rf /opt/bamboo/$id
echo "Successfully signed $in_filename"
diff --git a/.github/scripts/update-distro-download-page.sh b/.github/scripts/update-distro-download-page.sh
new file mode 100755
index 000000000..0ac114b5b
--- /dev/null
+++ b/.github/scripts/update-distro-download-page.sh
@@ -0,0 +1,20 @@
+dist_path=$1
+eclipse_version=$2
+build_type=$3
+
+s3_url=s3://dist.springsource.com/${dist_path}
+downloads_html="sts4-nightly-${eclipse_version}.html"
+files=`aws s3 cp ${s3_url} . --recursive --exclude "*" --include "spring-tool-suite-4*.zip" --include "spring-tool-suite-4*.dmg" --include "spring-tool-suite-4*.self-extracting.jar" --include "spring-tool-suite-4*.tar.gz" --exclude "*/*" --dryrun`
+rm -f ./${downloads_html}
+echo '
' >> $downloads_html
+for file in $files
+do
+ if [[ "$file" =~ ^"s3://dist." ]]; then
+ download_url=https://download${file:9}
+ filename=${file:${#s3_url}+1}
+ echo ' - '${filename}'
' >> $downloads_html
+ fi
+done
+echo '
' >> $downloads_html
+cat ./$downloads_html
+aws s3 mv ./$downloads_html s3://dist.springsource.com/${build_type}/STS4/ --acl public-read --no-progress
diff --git a/.github/workflows/eclipse-ls-extensions-build.yml b/.github/workflows/eclipse-ls-extensions-build.yml
index 10bed3766..d39d69ff9 100644
--- a/.github/workflows/eclipse-ls-extensions-build.yml
+++ b/.github/workflows/eclipse-ls-extensions-build.yml
@@ -41,9 +41,9 @@ jobs:
run: |
cd headless-services
if command -v xvfb-run ; then
- xvfb-run ./mvnw --batch-mode clean install -DskipTests
+ xvfb-run ./mvnw --batch-mode clean install
else
- ./mvnw --batch-mode clean install -DskipTests
+ ./mvnw --batch-mode clean install
fi
- name: Install GPG key
run: |
diff --git a/.github/workflows/gen-nighly-downloads.yml b/.github/workflows/gen-nighly-downloads.yml
new file mode 100644
index 000000000..0113e58be
--- /dev/null
+++ b/.github/workflows/gen-nighly-downloads.yml
@@ -0,0 +1,36 @@
+name: Generate Nightly Downloads HTML
+
+# configure manual trigger
+on:
+ workflow_dispatch:
+
+jobs:
+ gen_html:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Update Nightly Distro Downloads page
+ env:
+ AWS_ACCESS_KEY_ID: ${{ secrets.TOOLS_S3_ACCESS_KEY }}
+ AWS_SECRET_ACCESS_KEY: ${{ secrets.TOOLS_S3_SECRET_KEY }}
+ AWS_DEFAULT_REGION: us-east-1
+ run: |
+ dist_path="snapshot/STS4/nightly/dist/e4.28"
+ s3_url=s3://dist.springsource.com/${dist_path}
+ downloads_html="sts4-nightly-e4.28.html"
+ files=`aws s3 cp ${s3_url} . --recursive --exclude "*" --include "spring-tool-suite-4*.zip" --include "spring-tool-suite-4*.dmg" --include "spring-tool-suite-4*.self-extracting.jar" --include "spring-tool-suite-4*.tar.gz" --exclude "*/*" --dryrun`
+ echo '' >> $downloads_html
+ for file in $files
+ do
+ if [[ "$file" =~ ^"s3://dist." ]]; then
+ download_url=https://download${file:9}
+ filename=${file:${#s3_url}+1}
+ echo ' - '${filename}'
' >> $downloads_html
+ fi
+ done
+ echo '
' >> $downloads_html
+ cat ./$downloads_html
+ aws s3 mv ./$downloads_html s3://dist.springsource.com/snapshot/STS4/ --acl public-read
+ aws s3 ls s3://dist.springsource.com/snapshot/STS4/
+
+
+
diff --git a/.github/workflows/gh-hosted-eclipse-distro-build.yml b/.github/workflows/gh-hosted-eclipse-distro-build.yml
index dc8af537e..4baf37a7e 100644
--- a/.github/workflows/gh-hosted-eclipse-distro-build.yml
+++ b/.github/workflows/gh-hosted-eclipse-distro-build.yml
@@ -28,6 +28,7 @@ jobs:
with:
ref: ${{ inputs.ref }}
sparse-checkout: |
+ .github
eclipse-distribution
eclipse-extensions
- name: Set up JDK 17
@@ -71,6 +72,17 @@ jobs:
aws s3 rm s3://dist.springsource.com/${dist_path} --recursive --exclude "*" --include "spring-tool-suite-4*linux*.tar.gz*" --exclude "*/*"
echo "Uploading new Linux .ta.gz files to s3..."
aws s3 cp . s3://dist.springsource.com/${dist_path} --recursive --exclude "*" --include "spring-tool-suite-4*linux*.tar.gz*" --exclude "*/*" --acl public-read --no-progress
+ - name: Update Nightly Distro Downloads page
+ if: ${{ inputs.build_type == 'snapshot' && always() }}
+ env:
+ AWS_ACCESS_KEY_ID: ${{ secrets.TOOLS_S3_ACCESS_KEY }}
+ AWS_SECRET_ACCESS_KEY: ${{ secrets.TOOLS_S3_SECRET_KEY }}
+ AWS_DEFAULT_REGION: us-east-1
+ run: |
+ dist_path=`cat ${{ github.workspace }}/eclipse-distribution/org.springframework.boot.ide.product.${{ inputs.eclipse_profile }}/target/s3-dist-path.txt`
+ eclipse_profile=${{ inputs.eclipse_profile }}
+ eclipse_version=${eclipse_profile:0:2}.${eclipse_profile:2}
+ ${{ github.workspace }}/.github/scripts/update-distro-download-page.sh $dist_path $eclipse_version ${{ inputs.build_type }}
- name: Upload Build Artifacts for Signing
env:
AWS_ACCESS_KEY_ID: ${{ secrets.TOOLS_S3_ACCESS_KEY }}
@@ -89,6 +101,10 @@ jobs:
needs: eclipse-distro-build
runs-on: self-hosted
steps:
+ - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9
+ with:
+ sparse-checkout: |
+ .github
- name: Download Win Zips from S3 for Signing
env:
AWS_ACCESS_KEY_ID: ${{ secrets.TOOLS_S3_ACCESS_KEY }}
@@ -126,6 +142,25 @@ jobs:
aws s3 rm s3://dist.springsource.com/${dist_path} --recursive --exclude "*" --include "spring-tool-suite-4*win*.zip*" --include "spring-tool-suite-4*win*.self-extracting.jar*" --exclude "*/*"
echo "Uploading new win zip and self extracting jar files to s3..."
aws s3 mv . s3://dist.springsource.com/${dist_path} --recursive --exclude "*" --include "spring-tool-suite-4*win*.zip*" --include "spring-tool-suite-4*win*.self-extracting.jar*" --exclude "*/*" --acl public-read --no-progress
+ - name: Update Nightly Distro Downloads page
+ if: ${{ inputs.build_type == 'snapshot' && always() }}
+ env:
+ AWS_ACCESS_KEY_ID: ${{ secrets.TOOLS_S3_ACCESS_KEY }}
+ AWS_SECRET_ACCESS_KEY: ${{ secrets.TOOLS_S3_SECRET_KEY }}
+ AWS_DEFAULT_REGION: us-east-1
+ run: |
+ dist_path=`cat s3-dist-path.txt`
+ eclipse_profile=${{ inputs.eclipse_profile }}
+ eclipse_version=${eclipse_profile:0:2}.${eclipse_profile:2}
+ ${{ github.workspace }}/.github/scripts/update-distro-download-page.sh $dist_path $eclipse_version ${{ inputs.build_type }}
+ - name: Cleanup
+ if: ${{ always() }}
+ env:
+ SSH_KEY: ~/.ssh/id_rsa
+ SSH_USER: signer
+ run: |
+ ssh -i $SSH_KEY $SSH_USER@vm-tools.spring.vmware.com -- rm -rf /opt/bamboo/${{ github.run_id }}
+ rm -rf *spring-tool-suite-4*win*
sign-osx-distros:
needs: eclipse-distro-build
@@ -206,6 +241,21 @@ jobs:
aws s3 rm s3://dist.springsource.com/${dist_path} --recursive --exclude "*" --include "spring-tool-suite-4*macosx*.dmg*" --exclude "*/*"
echo "Uploading new dmg files to s3..."
aws s3 mv . s3://dist.springsource.com/${dist_path} --recursive --exclude "*" --include "spring-tool-suite-4*macosx*.dmg*" --exclude "*/*" --acl public-read --no-progress
+ - name: Update Nightly Distro Downloads page
+ if: ${{ inputs.build_type == 'snapshot' && always() }}
+ env:
+ AWS_ACCESS_KEY_ID: ${{ secrets.TOOLS_S3_ACCESS_KEY }}
+ AWS_SECRET_ACCESS_KEY: ${{ secrets.TOOLS_S3_SECRET_KEY }}
+ AWS_DEFAULT_REGION: us-east-1
+ run: |
+ dist_path=`cat s3-dist-path.txt`
+ eclipse_profile=${{ inputs.eclipse_profile }}
+ eclipse_version=${eclipse_profile:0:2}.${eclipse_profile:2}
+ ${{ github.workspace }}/.github/scripts/update-distro-download-page.sh $dist_path $eclipse_version ${{ inputs.build_type }}
+ - name: Cleanup
+ if: ${{ always() }}
+ run: |
+ rm -rf *spring-tool-suite-4*macosx*
cleanup:
needs: [ sign-win-distros, sign-osx-distros ]
diff --git a/eclipse-distribution/pom.xml b/eclipse-distribution/pom.xml
index 1b7fc6acc..e8b94bda8 100644
--- a/eclipse-distribution/pom.xml
+++ b/eclipse-distribution/pom.xml
@@ -146,6 +146,7 @@
${env.tools_s3_secret_key}
${env.gpg_passphrase}
${env.gpg_keyname}
+ true
diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexerJava.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexerJava.java
index 6e87b3e0c..18e068782 100644
--- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexerJava.java
+++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexerJava.java
@@ -68,6 +68,7 @@ import org.springframework.ide.vscode.commons.languageserver.ProgressService;
import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder;
import org.springframework.ide.vscode.commons.languageserver.reconcile.IProblemCollector;
import org.springframework.ide.vscode.commons.languageserver.reconcile.ReconcileProblem;
+import org.springframework.ide.vscode.commons.protocol.java.Classpath;
import org.springframework.ide.vscode.commons.protocol.spring.Bean;
import org.springframework.ide.vscode.commons.util.UriUtil;
import org.springframework.ide.vscode.commons.util.text.TextDocument;
@@ -755,7 +756,7 @@ public class SpringIndexerJava implements SpringIndexer {
private IndexCacheKey getCacheKey(IJavaProject project, String elementType) {
IClasspath classpath = project.getClasspath();
- Stream classpathEntries = IClasspathUtil.getAllBinaryRoots(classpath).stream();
+ Stream classpathEntries = IClasspathUtil.getBinaryRoots(classpath, cpe -> !Classpath.ENTRY_KIND_SOURCE.equals(cpe.getKind())).stream();
String classpathIdentifier = classpathEntries
.filter(file -> file.exists())