542569 Update Spring Framework to 4.3.21.RELEASE

This commit cherry-picks the changes from 3.7.x stream into master.
diff --git a/ebr/README.md b/ebr/README.md
index 08608db..fa19611 100644
--- a/ebr/README.md
+++ b/ebr/README.md
@@ -1,25 +1,29 @@
-## Publishing 3rd party bundles
+# Publishing 3rd party bundles
 
-We publish 3rd party OSGi bundles via Jenkins job [virgo-mirrored-master](https://ci.eclipse.org/virgo/view/Virgo/job/virgo-mirrored-master/)
+We use our JIPP instance to publish 3rd party bundles.
+The job [virgo-mirrored-master](https://ci.eclipse.org/virgo/view/Virgo/job/virgo-mirrored-master/) publishes the artifacts created with subproject `ebr`.
 
-### Building
+## Building 
 
 Gradle default tasks:
  1. `clean` - Cleans old build output
- 2. `bundlor` - Generates the OSGiifed MF and outputs jar bundles
+ 2. `bundlor` - Generates the OSGi metadata plus jar bundles
  3. `publishToMavenLocal` - Publishes jar bundles to `[USER_HOME]/.m2/org/eclipse/virgo/mirrored/[artifactId]/[version]/[bundle].jar`
  4. `test` - Executes the PaxExam tests, the bundles are resolved against local Maven repo thus `publishToMavenLocal` is required to be executed before `test`
  5. `publishIvyPublicationToIvyRepository` - Publishes the jar bundles to `build.eclipse.org` ivy repo (only possible on HIPP)
- 
-Building locally:
+
+Build and test locally:
 
     `./gradlew clean bundlor publishToMavenLocal test`
 
-### Update Spring Framework
+## Update Version of a Spring Framework stream
 
 The Spring Framework BOM (Bill of Material) is a good point to start
 [spring-framework-bom : 5.0.4.RELEASE](http://search.maven.org/#artifactdetails%7Corg.springframework%7Cspring-framework-bom%7C5.0.4.RELEASE%7Cpom)
 
-### Writing PaxExam test for 3rd party bundle
+* Rename the directories to the new version of Spring.
+* Check and update the versions of the dependencies in `gradle.properties`, if required.
 
-TBD
+## Add a new Spring Framework stream
+
+* Create new folder structure e.g. `5.1.<version>`
diff --git a/ebr/gradle.properties b/ebr/gradle.properties
index 4df7db2..7293e53 100644
--- a/ebr/gradle.properties
+++ b/ebr/gradle.properties
@@ -341,7 +341,7 @@
 
 # spring-orm
 jdoApiVersion = 3.1
-openjpaVersion = 2.4.0
+openjpaVersion = 2.4.2
 
 # spring-oxm
 xstreamVersion = 1.4.9
@@ -351,7 +351,7 @@
 
 # spring-web
 hessianVersion = 4.0.38
-gsonVersion = 2.8.2
+gsonVersion = 2.8.5
 protobufJavaVersion = 2.6.1
 protobufJavaFormatVersion = 1.4
 romeVersion = 1.7.4
@@ -360,7 +360,7 @@
 
 # spring-webmvc
 jxlVersion = 2.6.12
-poiVersion = 3.13
+poiVersion = 3.14
 # 0.32-1 is no valid OSGi qualifier
 webjarsVersion = 0.32
 
diff --git a/ebr/org.springframework.aop-4.3.18.RELEASE/build.gradle b/ebr/org.springframework.aop-4.3.21.RELEASE/build.gradle
similarity index 100%
rename from ebr/org.springframework.aop-4.3.18.RELEASE/build.gradle
rename to ebr/org.springframework.aop-4.3.21.RELEASE/build.gradle
diff --git a/ebr/org.springframework.aop-4.3.18.RELEASE/org.springframework.aop.mf b/ebr/org.springframework.aop-4.3.21.RELEASE/org.springframework.aop.mf
similarity index 100%
rename from ebr/org.springframework.aop-4.3.18.RELEASE/org.springframework.aop.mf
rename to ebr/org.springframework.aop-4.3.21.RELEASE/org.springframework.aop.mf
diff --git a/ebr/org.springframework.aspects-4.3.18.RELEASE/build.gradle b/ebr/org.springframework.aspects-4.3.21.RELEASE/build.gradle
similarity index 100%
rename from ebr/org.springframework.aspects-4.3.18.RELEASE/build.gradle
rename to ebr/org.springframework.aspects-4.3.21.RELEASE/build.gradle
diff --git a/ebr/org.springframework.aspects-4.3.18.RELEASE/org.springframework.aspects.mf b/ebr/org.springframework.aspects-4.3.21.RELEASE/org.springframework.aspects.mf
similarity index 100%
rename from ebr/org.springframework.aspects-4.3.18.RELEASE/org.springframework.aspects.mf
rename to ebr/org.springframework.aspects-4.3.21.RELEASE/org.springframework.aspects.mf
diff --git a/ebr/org.springframework.beans-4.3.18.RELEASE/build.gradle b/ebr/org.springframework.beans-4.3.21.RELEASE/build.gradle
similarity index 100%
rename from ebr/org.springframework.beans-4.3.18.RELEASE/build.gradle
rename to ebr/org.springframework.beans-4.3.21.RELEASE/build.gradle
diff --git a/ebr/org.springframework.beans-4.3.18.RELEASE/org.springframework.beans.mf b/ebr/org.springframework.beans-4.3.21.RELEASE/org.springframework.beans.mf
similarity index 100%
rename from ebr/org.springframework.beans-4.3.18.RELEASE/org.springframework.beans.mf
rename to ebr/org.springframework.beans-4.3.21.RELEASE/org.springframework.beans.mf
diff --git a/ebr/org.springframework.context-4.3.18.RELEASE/build.gradle b/ebr/org.springframework.context-4.3.21.RELEASE/build.gradle
similarity index 100%
rename from ebr/org.springframework.context-4.3.18.RELEASE/build.gradle
rename to ebr/org.springframework.context-4.3.21.RELEASE/build.gradle
diff --git a/ebr/org.springframework.context-4.3.18.RELEASE/org.springframework.context.mf b/ebr/org.springframework.context-4.3.21.RELEASE/org.springframework.context.mf
similarity index 100%
rename from ebr/org.springframework.context-4.3.18.RELEASE/org.springframework.context.mf
rename to ebr/org.springframework.context-4.3.21.RELEASE/org.springframework.context.mf
diff --git a/ebr/org.springframework.context.support-4.3.18.RELEASE/build.gradle b/ebr/org.springframework.context.support-4.3.21.RELEASE/build.gradle
similarity index 100%
rename from ebr/org.springframework.context.support-4.3.18.RELEASE/build.gradle
rename to ebr/org.springframework.context.support-4.3.21.RELEASE/build.gradle
diff --git a/ebr/org.springframework.context.support-4.3.18.RELEASE/org.springframework.context.support.mf b/ebr/org.springframework.context.support-4.3.21.RELEASE/org.springframework.context.support.mf
similarity index 100%
rename from ebr/org.springframework.context.support-4.3.18.RELEASE/org.springframework.context.support.mf
rename to ebr/org.springframework.context.support-4.3.21.RELEASE/org.springframework.context.support.mf
diff --git a/ebr/org.springframework.core-4.3.18.RELEASE/build.gradle b/ebr/org.springframework.core-4.3.21.RELEASE/build.gradle
similarity index 100%
rename from ebr/org.springframework.core-4.3.18.RELEASE/build.gradle
rename to ebr/org.springframework.core-4.3.21.RELEASE/build.gradle
diff --git a/ebr/org.springframework.core-4.3.18.RELEASE/org.springframework.core.mf b/ebr/org.springframework.core-4.3.21.RELEASE/org.springframework.core.mf
similarity index 100%
rename from ebr/org.springframework.core-4.3.18.RELEASE/org.springframework.core.mf
rename to ebr/org.springframework.core-4.3.21.RELEASE/org.springframework.core.mf
diff --git a/ebr/org.springframework.core-4.3.18.RELEASE/src/test/resources/bundle.conf b/ebr/org.springframework.core-4.3.21.RELEASE/src/test/resources/bundle.conf
similarity index 100%
rename from ebr/org.springframework.core-4.3.18.RELEASE/src/test/resources/bundle.conf
rename to ebr/org.springframework.core-4.3.21.RELEASE/src/test/resources/bundle.conf
diff --git a/ebr/org.springframework.expression-4.3.18.RELEASE/build.gradle b/ebr/org.springframework.expression-4.3.21.RELEASE/build.gradle
similarity index 100%
rename from ebr/org.springframework.expression-4.3.18.RELEASE/build.gradle
rename to ebr/org.springframework.expression-4.3.21.RELEASE/build.gradle
diff --git a/ebr/org.springframework.expression-4.3.18.RELEASE/org.springframework.expression.mf b/ebr/org.springframework.expression-4.3.21.RELEASE/org.springframework.expression.mf
similarity index 100%
rename from ebr/org.springframework.expression-4.3.18.RELEASE/org.springframework.expression.mf
rename to ebr/org.springframework.expression-4.3.21.RELEASE/org.springframework.expression.mf
diff --git a/ebr/org.springframework.jdbc-4.3.18.RELEASE/build.gradle b/ebr/org.springframework.jdbc-4.3.21.RELEASE/build.gradle
similarity index 100%
rename from ebr/org.springframework.jdbc-4.3.18.RELEASE/build.gradle
rename to ebr/org.springframework.jdbc-4.3.21.RELEASE/build.gradle
diff --git a/ebr/org.springframework.jdbc-4.3.18.RELEASE/org.springframework.jdbc.mf b/ebr/org.springframework.jdbc-4.3.21.RELEASE/org.springframework.jdbc.mf
similarity index 100%
rename from ebr/org.springframework.jdbc-4.3.18.RELEASE/org.springframework.jdbc.mf
rename to ebr/org.springframework.jdbc-4.3.21.RELEASE/org.springframework.jdbc.mf
diff --git a/ebr/org.springframework.jms-4.3.18.RELEASE/build.gradle b/ebr/org.springframework.jms-4.3.21.RELEASE/build.gradle
similarity index 100%
rename from ebr/org.springframework.jms-4.3.18.RELEASE/build.gradle
rename to ebr/org.springframework.jms-4.3.21.RELEASE/build.gradle
diff --git a/ebr/org.springframework.jms-4.3.18.RELEASE/org.springframework.jms.mf b/ebr/org.springframework.jms-4.3.21.RELEASE/org.springframework.jms.mf
similarity index 100%
rename from ebr/org.springframework.jms-4.3.18.RELEASE/org.springframework.jms.mf
rename to ebr/org.springframework.jms-4.3.21.RELEASE/org.springframework.jms.mf
diff --git a/ebr/org.springframework.messaging-4.3.18.RELEASE/build.gradle b/ebr/org.springframework.messaging-4.3.21.RELEASE/build.gradle
similarity index 100%
rename from ebr/org.springframework.messaging-4.3.18.RELEASE/build.gradle
rename to ebr/org.springframework.messaging-4.3.21.RELEASE/build.gradle
diff --git a/ebr/org.springframework.messaging-4.3.18.RELEASE/org.springframework.messaging.mf b/ebr/org.springframework.messaging-4.3.21.RELEASE/org.springframework.messaging.mf
similarity index 100%
rename from ebr/org.springframework.messaging-4.3.18.RELEASE/org.springframework.messaging.mf
rename to ebr/org.springframework.messaging-4.3.21.RELEASE/org.springframework.messaging.mf
diff --git a/ebr/org.springframework.orm-4.3.18.RELEASE/build.gradle b/ebr/org.springframework.orm-4.3.21.RELEASE/build.gradle
similarity index 100%
rename from ebr/org.springframework.orm-4.3.18.RELEASE/build.gradle
rename to ebr/org.springframework.orm-4.3.21.RELEASE/build.gradle
diff --git a/ebr/org.springframework.orm-4.3.18.RELEASE/org.springframework.orm.mf b/ebr/org.springframework.orm-4.3.21.RELEASE/org.springframework.orm.mf
similarity index 100%
rename from ebr/org.springframework.orm-4.3.18.RELEASE/org.springframework.orm.mf
rename to ebr/org.springframework.orm-4.3.21.RELEASE/org.springframework.orm.mf
diff --git a/ebr/org.springframework.oxm-4.3.18.RELEASE/build.gradle b/ebr/org.springframework.oxm-4.3.21.RELEASE/build.gradle
similarity index 100%
rename from ebr/org.springframework.oxm-4.3.18.RELEASE/build.gradle
rename to ebr/org.springframework.oxm-4.3.21.RELEASE/build.gradle
diff --git a/ebr/org.springframework.oxm-4.3.18.RELEASE/org.springframework.oxm.mf b/ebr/org.springframework.oxm-4.3.21.RELEASE/org.springframework.oxm.mf
similarity index 100%
rename from ebr/org.springframework.oxm-4.3.18.RELEASE/org.springframework.oxm.mf
rename to ebr/org.springframework.oxm-4.3.21.RELEASE/org.springframework.oxm.mf
diff --git a/ebr/org.springframework.test-4.3.18.RELEASE/build.gradle b/ebr/org.springframework.test-4.3.21.RELEASE/build.gradle
similarity index 100%
rename from ebr/org.springframework.test-4.3.18.RELEASE/build.gradle
rename to ebr/org.springframework.test-4.3.21.RELEASE/build.gradle
diff --git a/ebr/org.springframework.test-4.3.18.RELEASE/org.springframework.test.mf b/ebr/org.springframework.test-4.3.21.RELEASE/org.springframework.test.mf
similarity index 100%
rename from ebr/org.springframework.test-4.3.18.RELEASE/org.springframework.test.mf
rename to ebr/org.springframework.test-4.3.21.RELEASE/org.springframework.test.mf
diff --git a/ebr/org.springframework.transaction-4.3.18.RELEASE/build.gradle b/ebr/org.springframework.transaction-4.3.21.RELEASE/build.gradle
similarity index 100%
rename from ebr/org.springframework.transaction-4.3.18.RELEASE/build.gradle
rename to ebr/org.springframework.transaction-4.3.21.RELEASE/build.gradle
diff --git a/ebr/org.springframework.transaction-4.3.18.RELEASE/org.springframework.transaction.mf b/ebr/org.springframework.transaction-4.3.21.RELEASE/org.springframework.transaction.mf
similarity index 100%
rename from ebr/org.springframework.transaction-4.3.18.RELEASE/org.springframework.transaction.mf
rename to ebr/org.springframework.transaction-4.3.21.RELEASE/org.springframework.transaction.mf
diff --git a/ebr/org.springframework.web-4.3.18.RELEASE/build.gradle b/ebr/org.springframework.web-4.3.21.RELEASE/build.gradle
similarity index 100%
rename from ebr/org.springframework.web-4.3.18.RELEASE/build.gradle
rename to ebr/org.springframework.web-4.3.21.RELEASE/build.gradle
diff --git a/ebr/org.springframework.web-4.3.18.RELEASE/org.springframework.web.mf b/ebr/org.springframework.web-4.3.21.RELEASE/org.springframework.web.mf
similarity index 100%
rename from ebr/org.springframework.web-4.3.18.RELEASE/org.springframework.web.mf
rename to ebr/org.springframework.web-4.3.21.RELEASE/org.springframework.web.mf
diff --git a/ebr/org.springframework.webmvc-4.3.18.RELEASE/build.gradle b/ebr/org.springframework.webmvc-4.3.21.RELEASE/build.gradle
similarity index 100%
rename from ebr/org.springframework.webmvc-4.3.18.RELEASE/build.gradle
rename to ebr/org.springframework.webmvc-4.3.21.RELEASE/build.gradle
diff --git a/ebr/org.springframework.webmvc-4.3.18.RELEASE/org.springframework.webmvc.mf b/ebr/org.springframework.webmvc-4.3.21.RELEASE/org.springframework.webmvc.mf
similarity index 100%
rename from ebr/org.springframework.webmvc-4.3.18.RELEASE/org.springframework.webmvc.mf
rename to ebr/org.springframework.webmvc-4.3.21.RELEASE/org.springframework.webmvc.mf
diff --git a/ebr/org.springframework.webmvc.portlet-4.3.18.RELEASE/build.gradle b/ebr/org.springframework.webmvc.portlet-4.3.21.RELEASE/build.gradle
similarity index 100%
rename from ebr/org.springframework.webmvc.portlet-4.3.18.RELEASE/build.gradle
rename to ebr/org.springframework.webmvc.portlet-4.3.21.RELEASE/build.gradle
diff --git a/ebr/org.springframework.webmvc.portlet-4.3.18.RELEASE/org.springframework.webmvc.portlet.mf b/ebr/org.springframework.webmvc.portlet-4.3.21.RELEASE/org.springframework.webmvc.portlet.mf
similarity index 100%
rename from ebr/org.springframework.webmvc.portlet-4.3.18.RELEASE/org.springframework.webmvc.portlet.mf
rename to ebr/org.springframework.webmvc.portlet-4.3.21.RELEASE/org.springframework.webmvc.portlet.mf
diff --git a/ebr/org.springframework.websocket-4.3.18.RELEASE/build.gradle b/ebr/org.springframework.websocket-4.3.21.RELEASE/build.gradle
similarity index 100%
rename from ebr/org.springframework.websocket-4.3.18.RELEASE/build.gradle
rename to ebr/org.springframework.websocket-4.3.21.RELEASE/build.gradle
diff --git a/ebr/org.springframework.websocket-4.3.18.RELEASE/org.springframework.websocket.mf b/ebr/org.springframework.websocket-4.3.21.RELEASE/org.springframework.websocket.mf
similarity index 100%
rename from ebr/org.springframework.websocket-4.3.18.RELEASE/org.springframework.websocket.mf
rename to ebr/org.springframework.websocket-4.3.21.RELEASE/org.springframework.websocket.mf
diff --git a/ebr/src/test/java/org/eclipse/virgo/ebr/AbstractBaseTest.java b/ebr/src/test/java/org/eclipse/virgo/ebr/AbstractBaseTest.java
index e64a491..286e09f 100644
--- a/ebr/src/test/java/org/eclipse/virgo/ebr/AbstractBaseTest.java
+++ b/ebr/src/test/java/org/eclipse/virgo/ebr/AbstractBaseTest.java
@@ -10,6 +10,9 @@
 import org.osgi.framework.BundleException;
 
 import javax.inject.Inject;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Properties;
 
 import static org.junit.Assert.fail;
 import static org.junit.Assume.assumeFalse;
@@ -25,14 +28,14 @@
 @ExamReactorStrategy(PerClass.class)
 public abstract class AbstractBaseTest {
 
-    public static final String MIRROR_GROUP = "org.eclipse.virgo.mirrored";
+    static final String MIRROR_GROUP = "org.eclipse.virgo.mirrored";
 
     @Inject
-    protected BundleContext bundleContext;
+    private BundleContext bundleContext;
 
     public abstract Option[] config();
 
-    protected void assertBundleActive(String symbolicName) throws BundleException {
+    void assertBundleActive(String symbolicName) throws BundleException {
         assumeNotNull(symbolicName);
         assumeFalse(symbolicName.isEmpty());
         for (Bundle b : this.bundleContext.getBundles()) {
@@ -45,4 +48,20 @@
         }
         fail("Bundle with symbolicName [" + symbolicName + "] could not be found.");
     }
+
+    static String resolveVersionFromGradleProperties(String libraryName) {
+        String versionString = "unresolved";
+        String gradlePropertiesFile = "gradle.properties";
+        try {
+            Properties gradleProperties = new Properties();
+            gradleProperties.load(new FileInputStream(gradlePropertiesFile));
+            if (!gradleProperties.containsKey(libraryName)) {
+                fail("Couldn't resolve '" + libraryName + "' in '" + gradlePropertiesFile + "'.");
+            }
+            return gradleProperties.getProperty(libraryName);
+        } catch (IOException e) {
+            fail("Failed to load '" + gradlePropertiesFile + " ' to get version for '" + libraryName + "'.");
+        }
+        return versionString;
+    }
 }
diff --git a/ebr/src/test/java/org/eclipse/virgo/ebr/OkHttp3Test.java b/ebr/src/test/java/org/eclipse/virgo/ebr/OkHttp3Test.java
index 8ed0557..3154d3a 100644
--- a/ebr/src/test/java/org/eclipse/virgo/ebr/OkHttp3Test.java
+++ b/ebr/src/test/java/org/eclipse/virgo/ebr/OkHttp3Test.java
@@ -14,18 +14,18 @@
 public class OkHttp3Test extends AbstractBaseTest {
 
     private static final String OKIO = "com.squareup.okio";
-    private static final String OKIO_VERSION = "1.14.0";
+    private static final String OKIO_VERSION_KEY = "okioVersion";
 
     private static final String OKHTTP3 = "com.squareup.okhttp3";
-    private static final String OKHTTP3_VERSION = "3.9.1";
+    private static final String OKHTTP3_VERSION_KEY = "okhttp3Version";
 
     @Configuration
     @Override
     public Option[] config() {
         return options(
                 // maven local
-                mavenBundle(MIRROR_GROUP, OKIO, OKIO_VERSION),
-                mavenBundle(MIRROR_GROUP, OKHTTP3, OKHTTP3_VERSION),
+                mavenBundle(MIRROR_GROUP, OKIO, resolveVersionFromGradleProperties(OKIO_VERSION_KEY)),
+                mavenBundle(MIRROR_GROUP, OKHTTP3, resolveVersionFromGradleProperties(OKHTTP3_VERSION_KEY)),
                 // specify junit bundles
                 junitBundles()
         );
diff --git a/ebr/src/test/java/org/eclipse/virgo/ebr/SpringFrameworkTest.java b/ebr/src/test/java/org/eclipse/virgo/ebr/SpringFrameworkTest.java
index 57bf48a..3812128 100644
--- a/ebr/src/test/java/org/eclipse/virgo/ebr/SpringFrameworkTest.java
+++ b/ebr/src/test/java/org/eclipse/virgo/ebr/SpringFrameworkTest.java
@@ -13,10 +13,10 @@
  */
 public class SpringFrameworkTest extends AbstractBaseTest {
 
+    private static final String ASPECTJ_WEAVER_VERSION_KEY = "aspectjVersion";
     private static final String ASPECTJ_WEAVER = "org.aspectj.weaver";
-    private static final String ASPECTJ_WEAVER_VERSION = "1.8.10";
 
-    private static final String SF_VERSION = "5.0.8.RELEASE";
+    private static final String SF_VERSION_KEY = "springframeworkVersion";
 
     private static final String SF_PREFIX = "org.springframework.";
     private static final String SF_CORE = SF_PREFIX + "core";
@@ -48,25 +48,25 @@
                 bundle("http://build.eclipse.org/rt/virgo/ivy/bundles/release/org.eclipse.virgo.mirrored/oevm.org.aopalliance/1.0.0/oevm.org.aopalliance-1.0.0.jar"),
                 bundle("http://build.eclipse.org/rt/virgo/ivy/bundles/release/org.eclipse.virgo.mirrored/javax.jms/1.1.0.v201205091237/javax.jms-1.1.0.v201205091237.jar"),
                 // maven local
-                mavenBundle(MIRROR_GROUP, ASPECTJ_WEAVER, ASPECTJ_WEAVER_VERSION),
-                mavenBundle(MIRROR_GROUP, SF_CORE, SF_VERSION),
-                mavenBundle(MIRROR_GROUP, SF_BEANS, SF_VERSION),
-                mavenBundle(MIRROR_GROUP, SF_AOP, SF_VERSION),
-                mavenBundle(MIRROR_GROUP, SF_ASPECTS, SF_VERSION),
-                mavenBundle(MIRROR_GROUP, SF_EXPRESSION, SF_VERSION),
-                mavenBundle(MIRROR_GROUP, SF_CONTEXT, SF_VERSION),
-                mavenBundle(MIRROR_GROUP, SF_CONTEXT_SUPPORT, SF_VERSION),
-                mavenBundle(MIRROR_GROUP, SF_TRANSACTION, SF_VERSION),
-                mavenBundle(MIRROR_GROUP, SF_JCL, SF_VERSION),
-                mavenBundle(MIRROR_GROUP, SF_JDBC, SF_VERSION),
-                mavenBundle(MIRROR_GROUP, SF_MESSAGING, SF_VERSION),
-                mavenBundle(MIRROR_GROUP, SF_JMS, SF_VERSION),
-                mavenBundle(MIRROR_GROUP, SF_ORM, SF_VERSION),
-                mavenBundle(MIRROR_GROUP, SF_OXM, SF_VERSION),
-                mavenBundle(MIRROR_GROUP, SF_WEB, SF_VERSION),
-                mavenBundle(MIRROR_GROUP, SF_WEBFLUX, SF_VERSION),
-                mavenBundle(MIRROR_GROUP, SF_WEBMVC, SF_VERSION),
-                mavenBundle(MIRROR_GROUP, SF_WEBSOCKET, SF_VERSION),
+                mavenBundle(MIRROR_GROUP, ASPECTJ_WEAVER, resolveVersionFromGradleProperties(ASPECTJ_WEAVER_VERSION_KEY)),
+                mavenBundle(MIRROR_GROUP, SF_CORE, resolveVersionFromGradleProperties(SF_VERSION_KEY)),
+                mavenBundle(MIRROR_GROUP, SF_BEANS, resolveVersionFromGradleProperties(SF_VERSION_KEY)),
+                mavenBundle(MIRROR_GROUP, SF_AOP, resolveVersionFromGradleProperties(SF_VERSION_KEY)),
+                mavenBundle(MIRROR_GROUP, SF_ASPECTS, resolveVersionFromGradleProperties(SF_VERSION_KEY)),
+                mavenBundle(MIRROR_GROUP, SF_EXPRESSION, resolveVersionFromGradleProperties(SF_VERSION_KEY)),
+                mavenBundle(MIRROR_GROUP, SF_CONTEXT, resolveVersionFromGradleProperties(SF_VERSION_KEY)),
+                mavenBundle(MIRROR_GROUP, SF_CONTEXT_SUPPORT, resolveVersionFromGradleProperties(SF_VERSION_KEY)),
+                mavenBundle(MIRROR_GROUP, SF_TRANSACTION, resolveVersionFromGradleProperties(SF_VERSION_KEY)),
+                mavenBundle(MIRROR_GROUP, SF_JCL, resolveVersionFromGradleProperties(SF_VERSION_KEY)),
+                mavenBundle(MIRROR_GROUP, SF_JDBC, resolveVersionFromGradleProperties(SF_VERSION_KEY)),
+                mavenBundle(MIRROR_GROUP, SF_MESSAGING, resolveVersionFromGradleProperties(SF_VERSION_KEY)),
+                mavenBundle(MIRROR_GROUP, SF_JMS, resolveVersionFromGradleProperties(SF_VERSION_KEY)),
+                mavenBundle(MIRROR_GROUP, SF_ORM, resolveVersionFromGradleProperties(SF_VERSION_KEY)),
+                mavenBundle(MIRROR_GROUP, SF_OXM, resolveVersionFromGradleProperties(SF_VERSION_KEY)),
+                mavenBundle(MIRROR_GROUP, SF_WEB, resolveVersionFromGradleProperties(SF_VERSION_KEY)),
+                mavenBundle(MIRROR_GROUP, SF_WEBFLUX, resolveVersionFromGradleProperties(SF_VERSION_KEY)),
+                mavenBundle(MIRROR_GROUP, SF_WEBMVC, resolveVersionFromGradleProperties(SF_VERSION_KEY)),
+                mavenBundle(MIRROR_GROUP, SF_WEBSOCKET, resolveVersionFromGradleProperties(SF_VERSION_KEY)),
                 // specify junit bundles
                 junitBundles()
         );
diff --git a/gradle.properties b/gradle.properties
index 3091f07..1597f2b 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -164,7 +164,6 @@
 springCoreHash = 415c7d22dcab46985f27bbe1ce6de968e073497c
 springWebHash = 2340ad8f7dc47227a0475836791541619fff2486
 
-
 geminiManagementVersion = 1.0.5.RELEASE
 geminiWebVersion = 3.0.3.RELEASE