diff --git a/eclipse-distribution/org.springframework.boot.ide.product.e421/category.xml b/eclipse-distribution/org.springframework.boot.ide.product.e421/category.xml
new file mode 100644
index 000000000..d991c89e4
--- /dev/null
+++ b/eclipse-distribution/org.springframework.boot.ide.product.e421/category.xml
@@ -0,0 +1,184 @@
+
+
+
+ Spring Tool Suite 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/eclipse-distribution/org.springframework.boot.ide.product.e421/entitlements.plist b/eclipse-distribution/org.springframework.boot.ide.product.e421/entitlements.plist
new file mode 100644
index 000000000..6a297d495
--- /dev/null
+++ b/eclipse-distribution/org.springframework.boot.ide.product.e421/entitlements.plist
@@ -0,0 +1,18 @@
+
+
+
+
+ com.apple.security.cs.allow-jit
+
+ com.apple.security.cs.allow-unsigned-executable-memory
+
+ com.apple.security.cs.disable-executable-page-protection
+
+ com.apple.security.cs.allow-dyld-environment-variables
+
+ com.apple.security.cs.disable-library-validation
+
+ com.apple.security.cs.debugger
+
+
+
diff --git a/eclipse-distribution/org.springframework.boot.ide.product.e421/macos-notarize.sh b/eclipse-distribution/org.springframework.boot.ide.product.e421/macos-notarize.sh
new file mode 100755
index 000000000..448edb094
--- /dev/null
+++ b/eclipse-distribution/org.springframework.boot.ide.product.e421/macos-notarize.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+
+DMG=$1
+NOTARIZE_SERVICE_URL=$2
+
+echo "Notarize DMG"
+echo ${DMG}
+
+RESPONSE=\
+$(curl -s -X POST \
+ -F file=@${DMG} \
+ -F 'options={"primaryBundleId": "SpringTools4", "staple": true};type=application/json' \
+ ${NOTARIZE_SERVICE_URL}/macos-notarization-service/notarize)
+
+echo "Notarization request submitted"
+echo ${RESPONSE}
+
+UUID=$(echo ${RESPONSE} | jq -r '.uuid')
+
+STATUS=$(echo ${RESPONSE} | jq -r '.notarizationStatus.status')
+
+echo "Status after submitting"
+echo ${STATUS}
+
+while [[ ${STATUS} == 'IN_PROGRESS' ]]; do
+ sleep 60
+ RESPONSE=$(curl -s ${NOTARIZE_SERVICE_URL}/macos-notarization-service/${UUID}/status)
+ STATUS=$(echo ${RESPONSE} | jq -r '.notarizationStatus.status')
+
+ echo "Waiting for status to change"
+ echo ${RESPONSE}
+ echo ${STATUS}
+done
+
+echo "Status is not in progress anymore"
+echo ${RESPONSE}
+echo ${STATUS}
+
+if [[ ${STATUS} != 'COMPLETE' ]]; then
+ echo "Notarization failed: ${RESPONSE}"
+ exit 1
+fi
+
+mv "${DMG}" "${DMG}-unnotarized"
+
+curl -o ${DMG} -J ${NOTARIZE_SERVICE_URL}/macos-notarization-service/${UUID}/download
diff --git a/eclipse-distribution/org.springframework.boot.ide.product.e421/org.springframework.boot.ide.product b/eclipse-distribution/org.springframework.boot.ide.product.e421/org.springframework.boot.ide.product
new file mode 100644
index 000000000..a08a0f3fd
--- /dev/null
+++ b/eclipse-distribution/org.springframework.boot.ide.product.e421/org.springframework.boot.ide.product
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+
+
+ -product org.springframework.boot.ide.branding.sts4
+--launcher.defaultAction openFile
+
+ -Dosgi.requiredJavaVersion=11
+-Dosgi.dataAreaRequiresExplicitInit=true
+-Xms256m
+-Xmx2048m
+--illegal-access=permit
+--add-modules=ALL-SYSTEM
+
+
+
+ -XstartOnFirstThread
+-Dorg.eclipse.swt.internal.carbon.smallFonts -Xdock:icon=../Resources/sts4.icns
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/eclipse-distribution/org.springframework.boot.ide.product.e421/p2.inf b/eclipse-distribution/org.springframework.boot.ide.product.e421/p2.inf
new file mode 100644
index 000000000..07a0ab677
--- /dev/null
+++ b/eclipse-distribution/org.springframework.boot.ide.product.e421/p2.inf
@@ -0,0 +1,16 @@
+instructions.configure=\
+ org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:0,location:https${#58}//download.eclipse.org/releases/latest,name:Latest Eclipse Release);\
+ org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:1,location:https${#58}//download.eclipse.org/releases/latest,name:Latest Eclipse Release);\
+ org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:0,location:https${#58}//download.springsource.com/release/TOOLS/sts4/update/latest,name:Spring Tool Suite 4);\
+ org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:1,location:https${#58}//download.springsource.com/release/TOOLS/sts4/update/latest,name:Spring Tool Suite 4);\
+ org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:0,location:https${#58}//download.springsource.com/release/TOOLS/sts4-language-server-integrations,name:Spring Tools 4 Language Servers for Eclipse);\
+ org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:1,location:https${#58}//download.springsource.com/release/TOOLS/sts4-language-server-integrations,name:Spring Tools 4 Language Servers for Eclipse);\
+ org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/dropins);
+
+instructions.unconfigure=\
+ org.eclipse.equinox.p2.touchpoint.eclipse.removeRepository(type:0,location:https${#58}//download.eclipse.org/releases/latest);\
+ org.eclipse.equinox.p2.touchpoint.eclipse.removeRepository(type:1,location:https${#58}//download.eclipse.org/releases/latest);\
+ org.eclipse.equinox.p2.touchpoint.eclipse.removeRepository(type:0,location:https${#58}//download.springsource.com/release/TOOLS/sts4/update/latest);\
+ org.eclipse.equinox.p2.touchpoint.eclipse.removeRepository(type:1,location:https${#58}//download.springsource.com/release/TOOLS/sts4/update/latest);\
+ org.eclipse.equinox.p2.touchpoint.eclipse.removeRepository(type:0,location:https${#58}//download.springsource.com/release/TOOLS/sts4-language-server-integrations);\
+ org.eclipse.equinox.p2.touchpoint.eclipse.removeRepository(type:1,location:https${#58}//download.springsource.com/release/TOOLS/sts4-language-server-integrations);
diff --git a/eclipse-distribution/org.springframework.boot.ide.product.e421/pom.xml b/eclipse-distribution/org.springframework.boot.ide.product.e421/pom.xml
new file mode 100644
index 000000000..9c060215e
--- /dev/null
+++ b/eclipse-distribution/org.springframework.boot.ide.product.e421/pom.xml
@@ -0,0 +1,647 @@
+
+
+ 4.0.0
+
+
+ org.springframework.boot.ide
+ org.springframework.boot.ide
+ 4.11.1-SNAPSHOT
+ ../pom.xml
+
+
+ org.springframework.boot.ide.product
+
+ eclipse-repository
+
+
+ ${accessKey}
+ ${secretKey}
+ https://download.eclipse.org/justj/jres/16/updates/release/latest/
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-install-plugin
+ 2.5.2
+
+
+ default-install
+ none
+
+
+
+
+
+ org.eclipse.tycho
+ tycho-p2-repository-plugin
+ ${tycho-version}
+
+ false
+
+
+
+
+ org.eclipse.tycho
+ tycho-p2-publisher-plugin
+ ${tycho-version}
+
+ true
+
+
+
+
+ org.eclipse.tycho
+ tycho-p2-director-plugin
+ ${tycho-version}
+
+
+ materialize-products
+
+ materialize-products
+
+ package
+
+
+ archive-products
+
+ archive-products
+
+ verify
+
+
+
+
+
+ org.springframework.boot.ide.branding.sts4
+ sts-${unqualifiedVersion}.${p2.qualifier}
+
+ SpringToolSuite4.app
+
+ spring-tool-suite-4-${unqualifiedVersion}.${p2.qualifier}-${dist.target}
+
+
+
+ tar.gz
+ tar.gz
+
+
+
+
+
+ org.eclipse.tycho.extras
+ tycho-eclipserun-plugin
+ ${tycho-version}
+
+
+
+ 2021-06
+ p2
+ https://download.eclipse.org/releases/2021-06
+
+
+ -Declipse.p2.mirrors=false
+
+
+ org.eclipse.pde.api.tools
+ eclipse-plugin
+
+
+ org.eclipse.pde.build
+ eclipse-plugin
+
+
+ org.eclipse.pde.core
+ eclipse-plugin
+
+
+ org.eclipse.equinox.launcher
+ eclipse-plugin
+
+
+ org.eclipse.osgi.compatibility.state
+ eclipse-plugin
+
+
+ javax.annotation
+ eclipse-plugin
+
+
+ org.eclipse.equinox.p2.transport.ecf
+ eclipse-plugin
+
+
+ org.eclipse.equinox.p2.repository
+ eclipse-plugin
+
+
+ org.eclipse.equinox.p2.touchpoint.natives
+ eclipse-plugin
+
+
+ org.eclipse.equinox.p2.touchpoint.eclipse
+ eclipse-plugin
+
+
+ org.eclipse.equinox.p2.artifact.repository
+
+ eclipse-plugin
+
+
+ org.eclipse.equinox.p2.director.app
+ eclipse-plugin
+
+
+ org.eclipse.equinox.ds
+ eclipse-plugin
+
+
+ org.eclipse.core.net
+ eclipse-plugin
+
+
+
+
+
+ macos-x86_64
+ package
+
+ eclipse-run
+
+
+ -consoleLog -application org.eclipse.equinox.p2.director -nosplash -destination ${project.build.directory}/products/org.springframework.boot.ide.branding.sts4/macosx/cocoa/x86_64/SpringToolSuite4.app -repository ${justj.repository} -installIUs org.eclipse.justj.openjdk.hotspot.jre.full.feature.group
+
+
+
+ windows-x86_64
+ package
+
+ eclipse-run
+
+
+ -consoleLog -application org.eclipse.equinox.p2.director -nosplash -destination ${project.build.directory}/products/org.springframework.boot.ide.branding.sts4/win32/win32/x86_64/sts-${unqualifiedVersion}.${p2.qualifier} -repository ${justj.repository} -installIUs org.eclipse.justj.openjdk.hotspot.jre.full.feature.group
+
+
+
+ linux_x86_64
+ package
+
+ eclipse-run
+
+
+ -consoleLog -application org.eclipse.equinox.p2.director -nosplash -destination ${project.build.directory}/products/org.springframework.boot.ide.branding.sts4/linux/gtk/x86_64/sts-${unqualifiedVersion}.${p2.qualifier} -repository ${justj.repository} -installIUs org.eclipse.justj.openjdk.hotspot.jre.full.feature.group
+
+
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 1.6.0
+
+
+ generate-license-files
+ package
+
+ exec
+
+
+ java
+
+ -jar
+ ${project.build.directory}/../../common/eclipse-distribution-license-file-generator.jar
+ ${project.build.directory}/products/org.springframework.boot.ide.branding.sts4/macosx/cocoa/x86_64/SpringToolSuite4.app/Contents/Eclipse/plugins/
+ ${project.build.directory}/products/org.springframework.boot.ide.branding.sts4/macosx/cocoa/x86_64/SpringToolSuite4.app/Contents/Eclipse/open-source-licenses.txt
+ ${project.build.directory}/products/org.springframework.boot.ide.branding.sts4/macosx/cocoa/aarch64/SpringToolSuite4.app/Contents/Eclipse/plugins/
+ ${project.build.directory}/products/org.springframework.boot.ide.branding.sts4/macosx/cocoa/aarch64/SpringToolSuite4.app/Contents/Eclipse/open-source-licenses.txt
+ ${project.build.directory}/products/org.springframework.boot.ide.branding.sts4/linux/gtk/x86_64/sts-${unqualifiedVersion}.${p2.qualifier}/plugins/
+ ${project.build.directory}/products/org.springframework.boot.ide.branding.sts4/linux/gtk/x86_64/sts-${unqualifiedVersion}.${p2.qualifier}/open-source-licenses.txt
+ ${project.build.directory}/products/org.springframework.boot.ide.branding.sts4/win32/win32/x86_64/sts-${unqualifiedVersion}.${p2.qualifier}/plugins/
+ ${project.build.directory}/products/org.springframework.boot.ide.branding.sts4/win32/win32/x86_64/sts-${unqualifiedVersion}.${p2.qualifier}/open-source-licenses.txt
+
+
+
+
+
+ generate-self-extracting-jar
+ verify
+
+ exec
+
+
+ java
+
+ -jar
+ ${project.build.directory}/../../common/self-extracting-jar-creator.jar
+ ${project.build.directory}/products/spring-tool-suite-4-${unqualifiedVersion}.${p2.qualifier}-${dist.target}-win32.win32.x86_64.zip
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+ 1.7
+
+
+
+
+ win-exe-signing
+ package
+
+ ${skip.win.signing}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ run
+
+
+
+
+
+ osx-app-signing
+ package
+
+ ${skip.osx.signing}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ run
+
+
+
+
+
+ osx-dmg-creation
+ verify
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ run
+
+
+
+
+ osx-dmg-signing
+ verify
+
+ ${skip.osx.signing}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ run
+
+
+
+
+
+ osx-dmg-notarizing
+ verify
+
+ ${skip.osx.notarizing}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ run
+
+
+
+
+ upload-product-bundles
+ deploy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ run
+
+
+
+
+ update-nightly-downloads
+ deploy
+
+ ${skip.update-nightly-download-page}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ run
+
+
+
+
+ zip-sts-repository
+ install
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ run
+
+
+
+
+ upload-sts-repository
+ deploy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ run
+
+
+
+
+
+
+ org.springframework.build
+ org.springframework.build.aws.ant
+ 3.1.0.RELEASE
+
+
+ net.java.dev.jets3t
+ jets3t
+ 0.8.1
+
+
+ ant-contrib
+ ant-contrib
+ 20020829
+
+
+
+
+
+
+
+
diff --git a/eclipse-distribution/org.springframework.boot.ide.product.e421/spring-tool-suite-4-dmg-config-e4.21-aarch64.json b/eclipse-distribution/org.springframework.boot.ide.product.e421/spring-tool-suite-4-dmg-config-e4.21-aarch64.json
new file mode 100644
index 000000000..ba3c1e32b
--- /dev/null
+++ b/eclipse-distribution/org.springframework.boot.ide.product.e421/spring-tool-suite-4-dmg-config-e4.21-aarch64.json
@@ -0,0 +1,10 @@
+{
+ "title": "Spring Tool Suite 4",
+ "icon": "../org.springframework.boot.ide.branding/sts4.icns",
+ "contents": [
+ { "x": 192, "y": 100, "type": "file", "path": "target/products/org.springframework.boot.ide.branding.sts4/macosx/cocoa/aarch64/SpringToolSuite4.app" },
+ { "x": 448, "y": 100, "type": "link", "path": "/Applications" },
+ { "x": 1000, "y": 2000, "type": "file", "path": "../org.springframework.boot.ide.branding/sts4.icns", "name": ".VolumeIcon.icns" }
+ ],
+ "format": "UDZO"
+}
diff --git a/eclipse-distribution/org.springframework.boot.ide.product.e421/spring-tool-suite-4-dmg-config-e4.21-x86.json b/eclipse-distribution/org.springframework.boot.ide.product.e421/spring-tool-suite-4-dmg-config-e4.21-x86.json
new file mode 100644
index 000000000..c86b0023f
--- /dev/null
+++ b/eclipse-distribution/org.springframework.boot.ide.product.e421/spring-tool-suite-4-dmg-config-e4.21-x86.json
@@ -0,0 +1,10 @@
+{
+ "title": "Spring Tool Suite 4",
+ "icon": "../org.springframework.boot.ide.branding/sts4.icns",
+ "contents": [
+ { "x": 192, "y": 100, "type": "file", "path": "target/products/org.springframework.boot.ide.branding.sts4/macosx/cocoa/x86_64/SpringToolSuite4.app" },
+ { "x": 448, "y": 100, "type": "link", "path": "/Applications" },
+ { "x": 1000, "y": 2000, "type": "file", "path": "../org.springframework.boot.ide.branding/sts4.icns", "name": ".VolumeIcon.icns" }
+ ],
+ "format": "UDZO"
+}
diff --git a/eclipse-distribution/pom.xml b/eclipse-distribution/pom.xml
index 46fbf88c6..59937a0ad 100644
--- a/eclipse-distribution/pom.xml
+++ b/eclipse-distribution/pom.xml
@@ -511,15 +511,10 @@
e420
-
-
- 2021-06-staging
- p2
- https://download.eclipse.org/staging/2021-06/
orbit
@@ -656,6 +651,163 @@
+
+ e421
+
+ e4.21.0
+ e4.21
+ 2021-09
+ 2021-09 (4.21)
+ 2021-09
+ 4.21
+ e421
+
+
+
+
+ 2021-09-staging
+ p2
+ https://download.eclipse.org/staging/2021-09/
+
+
+ orbit
+ p2
+ https://download.eclipse.org/tools/orbit/downloads/drops/R20210602031627/repository
+
+
+ m2e
+ p2
+ https://download.eclipse.org/technology/m2e/releases/latest/
+
+
+ latest-m2e-wtp
+ p2
+ https://download.eclipse.org/m2e-wtp/snapshots/1.4/m2e-wtp/
+
+
+
+ maven-extras-mirror
+ p2
+ https://download.springsource.com/release/TOOLS/third-party/m2e-sts310-signed/
+
+
+ maven-egit
+ p2
+ https://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-egit/0.15.1/N/LATEST
+
+
+
+ maven-wro4j
+ p2
+ https://download.jboss.org/jbosstools/updates/m2e-extensions/m2e-wro4j/1.1.0-2014-06-25_06-16-31-H26/
+
+
+ m2e-chromatic
+ p2
+ https://sidespin.github.io/m2e-chromatic/update/
+
+
+ maven-devtools
+ p2
+ https://dist.springsource.com/release/TOOLS/mavendevtools/
+
+
+ maven-dependency-support
+ p2
+ https://ianbrandt.github.io/m2e-maven-dependency-plugin/
+
+
+ ansi-console
+ p2
+ https://www.mihai-nita.net/eclipse
+
+
+
+ mylyn-markdown
+ p2
+ https://download.eclipse.org/mylyn/docs/releases/3.0/
+
+
+ lsp4e
+ p2
+ https://download.eclipse.org/lsp4e/snapshots/
+
+
+
+
+
+
+
+ org.springframework.boot.ide.product.e421
+
+
+
+
+
+
+ org.eclipse.tycho
+ target-platform-configuration
+ ${tycho-version}
+
+
+
+ macosx
+ cocoa
+ x86_64
+
+
+ macosx
+ cocoa
+ aarch64
+
+
+ win32
+ win32
+ x86_64
+
+
+ linux
+ gtk
+ x86_64
+
+
+
+
+
+
+
+
+
+
build.springsource.com
diff --git a/eclipse-language-servers/pom.xml b/eclipse-language-servers/pom.xml
index ef8fcbf49..8c718fdff 100644
--- a/eclipse-language-servers/pom.xml
+++ b/eclipse-language-servers/pom.xml
@@ -285,15 +285,61 @@
e420
-
+ https://download.eclipse.org/wildwebdeveloper/snapshots
+
+
+
+
+
+ e421
+
+ e4.21.0
+ e4.21
+ 2021-09
+ 2021-09 (4.21)
+ 2021-09
+ 4.21
+ e421
+
+
+
- 2021-06-staging
+ 2021-09-staging
p2
- https://download.eclipse.org/staging/2021-06/
+ https://download.eclipse.org/staging/2021-09/
orbit