diff --git a/gradle.properties b/gradle.properties
index e36fde2..2f7890b 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -110,7 +110,7 @@
 #CQ4033
 orgAopAllianceVersion = 1.0.0
 
-geminiBlueprintVersion = 2.1.0.RELEASE
+geminiBlueprintVersion = 3.0.0.M01
 
 #CQ 13690 org.springframework.aop
 #CQ 13691 org.springframework.aspects
@@ -129,7 +129,7 @@
 #CQ 13704 org.springframework.webmvc
 #CQ 13705 org.springframework.webmvc.portlet
 #CQ 13706 org.springframework.websocket
-springframeworkVersion = 4.3.18.RELEASE
+springframeworkVersion = 5.0.8.RELEASE
 
 geminiManagementVersion = 1.0.5.RELEASE
 geminiWebVersion = 3.0.3.RELEASE
@@ -202,7 +202,7 @@
 javaxAnnotationVersion= 1.2.0.v201401042248
 # CQ6093 ejb-api Version: 3.1.1
 javaxEjbVersion=3.1.1.v201204261316
-javaxElVersion=3.0.0.20170128
+javaxElVersion=3.0.0.20180121
 # CQ6090 (PB Orbit CQ3578)
 javaxInjectVersion = 1.0.0.v20091030
 javaxJmsVersion=1.1.0.v201205091237
diff --git a/kernel/org.eclipse.virgo.kernel.userregion/src/test/java/org/eclipse/virgo/kernel/userregion/internal/equinox/EquinoxOsgiFrameworkTests.java b/kernel/org.eclipse.virgo.kernel.userregion/src/test/java/org/eclipse/virgo/kernel/userregion/internal/equinox/EquinoxOsgiFrameworkTests.java
index acdfeea..ec40191 100644
--- a/kernel/org.eclipse.virgo.kernel.userregion/src/test/java/org/eclipse/virgo/kernel/userregion/internal/equinox/EquinoxOsgiFrameworkTests.java
+++ b/kernel/org.eclipse.virgo.kernel.userregion/src/test/java/org/eclipse/virgo/kernel/userregion/internal/equinox/EquinoxOsgiFrameworkTests.java
@@ -64,7 +64,7 @@
     public void testLoadClassAndGetClassLoader() throws Exception {
         Bundle bundle = installSpringCore(this.framework);
         assertEquals("incorrect bundle loaded", "org.springframework.core", bundle.getSymbolicName());
-        Class<?> cls = bundle.loadClass("org.springframework.core.JdkVersion");
+        Class<?> cls = bundle.loadClass("org.springframework.core.SpringVersion");
         assertNotNull(cls);
         assertTrue(cls.getClassLoader() instanceof KernelBundleClassLoader);
         assertTrue("classloader is screwed", cls.getClassLoader().toString().contains("org.springframework.core"));
@@ -86,7 +86,7 @@
             }
 
         });
-        bundle.loadClass("org.springframework.core.JdkVersion");
+        bundle.loadClass("org.springframework.core.SpringVersion");
         assertEquals(1, count.get());
     }
 
@@ -103,7 +103,7 @@
             + "/.gradle/caches/modules-2/files-2.1/org.eclipse.virgo.mirrored/org.apache.commons.codec/1.10.0/"
             + "8aff50e99bd7e53f8c4f5fe45c2a63f1d47dd19c/org.apache.commons.codec-1.10.0.jar").getAbsolutePath());
         return osgi.getBundleContext().installBundle("file:///" + new File(System.getProperty("user.home")
-            + "/.gradle/caches/modules-2/files-2.1/org.eclipse.virgo.mirrored/org.springframework.core/4.3.18.RELEASE"
-            + "/94ea91866a78e518943e91488017d8b58d3142ad/org.springframework.core-4.3.18.RELEASE.jar").getAbsolutePath());
+            + "/.gradle/caches/modules-2/files-2.1/org.eclipse.virgo.mirrored/org.springframework.core/5.0.8.RELEASE"
+            + "/415c7d22dcab46985f27bbe1ce6de968e073497c/org.springframework.core-5.0.8.RELEASE.jar").getAbsolutePath());
     }
 }
diff --git a/kernel/org.eclipse.virgo.kernel.userregion/src/test/java/org/eclipse/virgo/kernel/userregion/internal/importexpansion/ImportExpansionHandlerTests.java b/kernel/org.eclipse.virgo.kernel.userregion/src/test/java/org/eclipse/virgo/kernel/userregion/internal/importexpansion/ImportExpansionHandlerTests.java
index 8d21c14..d441220 100644
--- a/kernel/org.eclipse.virgo.kernel.userregion/src/test/java/org/eclipse/virgo/kernel/userregion/internal/importexpansion/ImportExpansionHandlerTests.java
+++ b/kernel/org.eclipse.virgo.kernel.userregion/src/test/java/org/eclipse/virgo/kernel/userregion/internal/importexpansion/ImportExpansionHandlerTests.java
@@ -76,11 +76,11 @@
         LibraryBridge libraryBridge = new LibraryBridge(new StubHashGenerator());
 
         this.repository.addArtifactDescriptor(bundleBridge.generateArtifactDescriptor(new File(System.getProperty("user.home")
-            + "/.gradle/caches/modules-2/files-2.1/org.eclipse.virgo.mirrored/org.springframework.core/4.3.18.RELEASE"
-            + "/94ea91866a78e518943e91488017d8b58d3142ad/org.springframework.core-4.3.18.RELEASE.jar")));
+            + "/.gradle/caches/modules-2/files-2.1/org.eclipse.virgo.mirrored/org.springframework.core/5.0.8.RELEASE"
+            + "/415c7d22dcab46985f27bbe1ce6de968e073497c/org.springframework.core-5.0.8.RELEASE.jar")));
         this.repository.addArtifactDescriptor(bundleBridge.generateArtifactDescriptor(new File(System.getProperty("user.home")
-            + "/.gradle/caches/modules-2/files-2.1/org.eclipse.virgo.mirrored/org.springframework.beans/4.3.18.RELEASE"
-            + "/533ebe4038cc80dbff5117214ecc094cb5f62e/org.springframework.beans-4.3.18.RELEASE.jar")));
+            + "/.gradle/caches/modules-2/files-2.1/org.eclipse.virgo.mirrored/org.springframework.beans/5.0.8.RELEASE"
+            + "/bf5fd324c11eb63777f810250cb8c2ea292f9279/org.springframework.beans-5.0.8.RELEASE.jar")));
         this.repository.addArtifactDescriptor(bundleBridge.generateArtifactDescriptor(new File("src/test/resources/silht/bundles/fragmentOne")));
         this.repository.addArtifactDescriptor(bundleBridge.generateArtifactDescriptor(new File("src/test/resources/silht/bundles/fragmentTwo")));
         this.repository.addArtifactDescriptor(bundleBridge.generateArtifactDescriptor(new File("src/test/resources/silht/bundles/fragmentThree")));
@@ -100,7 +100,7 @@
 
         ImportedBundle bundleImport = createAndStoreMock(ImportedBundle.class, mocks);
         expect(bundleImport.getBundleSymbolicName()).andReturn("org.springframework.core").atLeastOnce();
-        expect(bundleImport.getVersion()).andReturn(new VersionRange("[4.2,5)")).atLeastOnce();
+        expect(bundleImport.getVersion()).andReturn(new VersionRange("[5,6)")).atLeastOnce();
         expect(bundleImport.isApplicationImportScope()).andReturn(false).atLeastOnce();
         expect(bundleImport.getResolution()).andReturn(Resolution.MANDATORY).atLeastOnce();
 
@@ -120,7 +120,7 @@
         for (ImportedPackage packageImport : packageImports) {
             Map<String, String> attributes = packageImport.getAttributes();
             assertEquals("org.springframework.core", attributes.get("bundle-symbolic-name"));
-            assertEquals(new VersionRange("[4.3.18.RELEASE,4.3.18.RELEASE]"), new VersionRange(attributes.get("bundle-version")));
+            assertEquals(new VersionRange("[5.0.8.RELEASE,5.0.8.RELEASE]"), new VersionRange(attributes.get("bundle-version")));
         }
     }
 
@@ -132,7 +132,7 @@
         ImportedLibrary libraryImport = createAndStoreMock(ImportedLibrary.class, mocks);
 
         expect(libraryImport.getLibrarySymbolicName()).andReturn("org.springframework").atLeastOnce();
-        expect(libraryImport.getVersion()).andReturn(new VersionRange("[4.3,5)")).atLeastOnce();
+        expect(libraryImport.getVersion()).andReturn(new VersionRange("[5,6)")).atLeastOnce();
         expect(libraryImport.getResolution()).andReturn(Resolution.MANDATORY).anyTimes();
 
         ImportExpansionHandler handler = new ImportExpansionHandler(repository, packagesExportedBySystemBundle, new MockEventLogger());
@@ -155,7 +155,7 @@
             } else {
                 assertEquals("org.springframework.core", attributes.get("bundle-symbolic-name"));
             }
-            assertEquals(new VersionRange("[4.3.18.RELEASE,4.3.18.RELEASE]"), new VersionRange(attributes.get("bundle-version")));
+            assertEquals(new VersionRange("[5.0.8.RELEASE,5.0.8.RELEASE]"), new VersionRange(attributes.get("bundle-version")));
         }
 
     }
@@ -446,7 +446,7 @@
 
         ImportedBundle bundleImport = createAndStoreMock(ImportedBundle.class, mocks);
         expect(bundleImport.getBundleSymbolicName()).andReturn("org.springframework.core").atLeastOnce();
-        expect(bundleImport.getVersion()).andReturn(new VersionRange("[4.2,5)")).atLeastOnce();
+        expect(bundleImport.getVersion()).andReturn(new VersionRange("[5,6)")).atLeastOnce();
         expect(bundleImport.getResolution()).andReturn(Resolution.MANDATORY).atLeastOnce();
         expect(bundleImport.isApplicationImportScope()).andReturn(false);
 
@@ -469,7 +469,7 @@
 
         ImportedLibrary libraryImport = createAndStoreMock(ImportedLibrary.class, mocks);
         expect(libraryImport.getLibrarySymbolicName()).andReturn("org.springframework").atLeastOnce();
-        expect(libraryImport.getVersion()).andReturn(new VersionRange("[4.3,5)")).atLeastOnce();
+        expect(libraryImport.getVersion()).andReturn(new VersionRange("[5,6)")).atLeastOnce();
 
         ImportExpansionHandler handler = new ImportExpansionHandler(repository, packagesExportedBySystemBundle, new MockEventLogger());
 
@@ -516,13 +516,13 @@
 
         ImportedBundle bundleImport = createAndStoreMock(ImportedBundle.class, mocks);
         expect(bundleImport.getBundleSymbolicName()).andReturn("org.springframework.core").atLeastOnce();
-        expect(bundleImport.getVersion()).andReturn(new VersionRange("[4.2,5)")).atLeastOnce();
+        expect(bundleImport.getVersion()).andReturn(new VersionRange("[5.0.8,6)")).atLeastOnce();
         expect(bundleImport.isApplicationImportScope()).andReturn(false).atLeastOnce();
         expect(bundleImport.getResolution()).andReturn(Resolution.MANDATORY).atLeastOnce();
 
         ImportedLibrary libraryImport = createAndStoreMock(ImportedLibrary.class, mocks);
         expect(libraryImport.getLibrarySymbolicName()).andReturn("org.springframework").atLeastOnce();
-        expect(libraryImport.getVersion()).andReturn(new VersionRange("[4.2,5)")).atLeastOnce();
+        expect(libraryImport.getVersion()).andReturn(new VersionRange("[5.0.8,6)")).atLeastOnce();
         expect(libraryImport.getResolution()).andReturn(Resolution.MANDATORY).atLeastOnce();
 
         ImportExpansionHandler handler = new ImportExpansionHandler(repository, packagesExportedBySystemBundle, new MockEventLogger());
diff --git a/kernel/org.eclipse.virgo.kernel.userregion/src/test/resources/silht/libraries/spring.libd b/kernel/org.eclipse.virgo.kernel.userregion/src/test/resources/silht/libraries/spring.libd
index d38b3d8..5018fac 100644
--- a/kernel/org.eclipse.virgo.kernel.userregion/src/test/resources/silht/libraries/spring.libd
+++ b/kernel/org.eclipse.virgo.kernel.userregion/src/test/resources/silht/libraries/spring.libd
@@ -1,4 +1,4 @@
 Library-SymbolicName: org.springframework
-Library-Version: 4.3.18
-Import-Bundle: org.springframework.core;version="[4.3.18.RELEASE,4.3.18.RELEASE]",
- org.springframework.beans;version="[4.3.18.RELEASE,4.3.18.RELEASE]"
+Library-Version: 5.0.8
+Import-Bundle: org.springframework.core;version="[5.0.8.RELEASE,5.0.8.RELEASE]",
+ org.springframework.beans;version="[5.0.8.RELEASE,5.0.8.RELEASE]"
diff --git a/packaging/build.gradle b/packaging/build.gradle
index ad790d2..93b813f 100644
--- a/packaging/build.gradle
+++ b/packaging/build.gradle
@@ -112,8 +112,8 @@
         repositoryExt group: "org.eclipse.virgo.mirrored", name: "org.springframework.oxm", version: springframeworkVersion, ext: "jar"
         repositoryExt group: "org.eclipse.virgo.mirrored", name: "org.springframework.transaction", version: springframeworkVersion, ext: "jar"
         repositoryExt group: "org.eclipse.virgo.mirrored", name: "org.springframework.web", version: springframeworkVersion, ext: "jar"
+        repositoryExt group: "org.eclipse.virgo.mirrored", name: "org.springframework.webflux", version: springframeworkVersion, ext: "jar"
         repositoryExt group: "org.eclipse.virgo.mirrored", name: "org.springframework.webmvc", version: springframeworkVersion, ext: "jar"
-        repositoryExt group: "org.eclipse.virgo.mirrored", name: "org.springframework.webmvc.portlet", version: springframeworkVersion, ext: "jar"
         repositoryExt group: "org.eclipse.virgo.mirrored", name: "org.springframework.websocket", version: springframeworkVersion, ext: "jar"
 
         repositoryExt group: "org.eclipse.virgo.mirrored", name: "org.aspectj.weaver", version: aspectjVersion, ext: "jar"
diff --git a/packaging/jetty-server/src/main/filtered/configuration/org.eclipse.virgo.kernel.userregion.properties b/packaging/jetty-server/src/main/filtered/configuration/org.eclipse.virgo.kernel.userregion.properties
index bf57be3..0b94a40 100644
--- a/packaging/jetty-server/src/main/filtered/configuration/org.eclipse.virgo.kernel.userregion.properties
+++ b/packaging/jetty-server/src/main/filtered/configuration/org.eclipse.virgo.kernel.userregion.properties
@@ -46,7 +46,7 @@
  org.slf4j;version="[1.6.4,2)",\
  org.slf4j.helpers;version="[1.6.4,2)",\
  org.slf4j.spi;version="[1.6.4,2)",\
- org.springframework.util;version="[4.2.1,5)"
+ org.springframework.util;version="[5.0.8,6)"
 
 serviceImports =\
  org.eclipse.equinox.region.Region,\
diff --git a/packaging/jetty-server/src/main/filtered/repository/ext/org.eclipse.virgo.kernel.userregion.blueprint.plan b/packaging/jetty-server/src/main/filtered/repository/ext/org.eclipse.virgo.kernel.userregion.blueprint.plan
index e0ee95f..57ea166 100644
--- a/packaging/jetty-server/src/main/filtered/repository/ext/org.eclipse.virgo.kernel.userregion.blueprint.plan
+++ b/packaging/jetty-server/src/main/filtered/repository/ext/org.eclipse.virgo.kernel.userregion.blueprint.plan
@@ -3,10 +3,10 @@
 	  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	  xsi:schemaLocation="http://www.eclipse.org/virgo/schema/plan http://www.eclipse.org/virgo/schema/plan/eclipse-virgo-plan.xsd">
 
-	<artifact type="bundle" name="org.eclipse.gemini.blueprint.core" version="[2.1, 3)"/>
-	<artifact type="bundle" name="org.eclipse.gemini.blueprint.extender" version="[2.1, 3)"/>
-	<artifact type="bundle" name="org.eclipse.gemini.blueprint.io" version="[2.1, 3)"/>
-	<artifact type="bundle" name="org.eclipse.gemini.blueprint.extensions" version="[2.1, 3)"/>
+	<artifact type="bundle" name="org.eclipse.gemini.blueprint.core" version="[3, 4)"/>
+	<artifact type="bundle" name="org.eclipse.gemini.blueprint.extender" version="[3, 4)"/>
+	<artifact type="bundle" name="org.eclipse.gemini.blueprint.io" version="[3, 4)"/>
+	<artifact type="bundle" name="org.eclipse.gemini.blueprint.extensions" version="[3, 4)"/>
 
 	<artifact type="bundle" name="org.eclipse.virgo.kernel.agent.dm" version="[@VIRGO.VERSION.LOWER_BOUND@, @VIRGO.VERSION.UPPER_BOUND@)"/>
 	<artifact type="bundle" name="org.eclipse.virgo.kernel.deployer.dm" version="[@VIRGO.VERSION.LOWER_BOUND@, @VIRGO.VERSION.UPPER_BOUND@)"/>
diff --git a/packaging/jetty-server/src/main/filtered/repository/ext/org.springframework.spring-library.libd b/packaging/jetty-server/src/main/filtered/repository/ext/org.springframework.spring-library.libd
index b8d132b..7982560 100644
--- a/packaging/jetty-server/src/main/filtered/repository/ext/org.springframework.spring-library.libd
+++ b/packaging/jetty-server/src/main/filtered/repository/ext/org.springframework.spring-library.libd
@@ -15,8 +15,8 @@
  org.springframework.oxm;version="[@SPRING.VERSION@, @SPRING.VERSION@]",
  org.springframework.transaction;version="[@SPRING.VERSION@, @SPRING.VERSION@]",
  org.springframework.web;version="[@SPRING.VERSION@, @SPRING.VERSION@]",
+ org.springframework.webflux;version="[@SPRING.VERSION@, @SPRING.VERSION@]",
  org.springframework.webmvc;version="[@SPRING.VERSION@, @SPRING.VERSION@]",
- org.springframework.webmvc.portlet;version="[@SPRING.VERSION@, @SPRING.VERSION@]",
  org.springframework.websocket;version="[@SPRING.VERSION@, @SPRING.VERSION@]",
  oevm.org.aopalliance;version="[1.0.0, 1.0.0]",
  javax.jms;version="[1,2)"
diff --git a/packaging/kernel/src/main/filtered/configuration/org.eclipse.virgo.kernel.userregion.properties b/packaging/kernel/src/main/filtered/configuration/org.eclipse.virgo.kernel.userregion.properties
index b376727..bdf193d 100644
--- a/packaging/kernel/src/main/filtered/configuration/org.eclipse.virgo.kernel.userregion.properties
+++ b/packaging/kernel/src/main/filtered/configuration/org.eclipse.virgo.kernel.userregion.properties
@@ -47,7 +47,7 @@
  org.slf4j;version="[1.6.4,2)",\
  org.slf4j.helpers;version="[1.6.4,2)",\
  org.slf4j.spi;version="[1.6.4,2)",\
- org.springframework.util;version="[4.2.1,5)"
+ org.springframework.util;version="[5.0.8,6)"
 
 serviceImports =\
  org.eclipse.equinox.region.Region,\
diff --git a/packaging/kernel/src/main/filtered/repository/ext/org.eclipse.virgo.kernel.userregion.blueprint.plan b/packaging/kernel/src/main/filtered/repository/ext/org.eclipse.virgo.kernel.userregion.blueprint.plan
index e0ee95f..57ea166 100644
--- a/packaging/kernel/src/main/filtered/repository/ext/org.eclipse.virgo.kernel.userregion.blueprint.plan
+++ b/packaging/kernel/src/main/filtered/repository/ext/org.eclipse.virgo.kernel.userregion.blueprint.plan
@@ -3,10 +3,10 @@
 	  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	  xsi:schemaLocation="http://www.eclipse.org/virgo/schema/plan http://www.eclipse.org/virgo/schema/plan/eclipse-virgo-plan.xsd">
 
-	<artifact type="bundle" name="org.eclipse.gemini.blueprint.core" version="[2.1, 3)"/>
-	<artifact type="bundle" name="org.eclipse.gemini.blueprint.extender" version="[2.1, 3)"/>
-	<artifact type="bundle" name="org.eclipse.gemini.blueprint.io" version="[2.1, 3)"/>
-	<artifact type="bundle" name="org.eclipse.gemini.blueprint.extensions" version="[2.1, 3)"/>
+	<artifact type="bundle" name="org.eclipse.gemini.blueprint.core" version="[3, 4)"/>
+	<artifact type="bundle" name="org.eclipse.gemini.blueprint.extender" version="[3, 4)"/>
+	<artifact type="bundle" name="org.eclipse.gemini.blueprint.io" version="[3, 4)"/>
+	<artifact type="bundle" name="org.eclipse.gemini.blueprint.extensions" version="[3, 4)"/>
 
 	<artifact type="bundle" name="org.eclipse.virgo.kernel.agent.dm" version="[@VIRGO.VERSION.LOWER_BOUND@, @VIRGO.VERSION.UPPER_BOUND@)"/>
 	<artifact type="bundle" name="org.eclipse.virgo.kernel.deployer.dm" version="[@VIRGO.VERSION.LOWER_BOUND@, @VIRGO.VERSION.UPPER_BOUND@)"/>
diff --git a/packaging/tomcat-server/src/main/filtered/configuration/org.eclipse.virgo.kernel.userregion.properties b/packaging/tomcat-server/src/main/filtered/configuration/org.eclipse.virgo.kernel.userregion.properties
index 69321a2..2a6ea72 100644
--- a/packaging/tomcat-server/src/main/filtered/configuration/org.eclipse.virgo.kernel.userregion.properties
+++ b/packaging/tomcat-server/src/main/filtered/configuration/org.eclipse.virgo.kernel.userregion.properties
@@ -45,7 +45,7 @@
  org.slf4j;version="[1.6.4,2)",\
  org.slf4j.helpers;version="[1.6.4,2)",\
  org.slf4j.spi;version="[1.6.4,2)",\
- org.springframework.util;version="[4.2.1,5)"
+ org.springframework.util;version="[5.0.8,6)"
 
 serviceImports =\
  org.eclipse.equinox.region.Region,\
diff --git a/packaging/tomcat-server/src/main/filtered/repository/ext/org.eclipse.virgo.kernel.userregion.blueprint.plan b/packaging/tomcat-server/src/main/filtered/repository/ext/org.eclipse.virgo.kernel.userregion.blueprint.plan
index 684cfe2..956f2f5 100644
--- a/packaging/tomcat-server/src/main/filtered/repository/ext/org.eclipse.virgo.kernel.userregion.blueprint.plan
+++ b/packaging/tomcat-server/src/main/filtered/repository/ext/org.eclipse.virgo.kernel.userregion.blueprint.plan
@@ -3,10 +3,10 @@
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.eclipse.org/virgo/schema/plan http://www.eclipse.org/virgo/schema/plan/eclipse-virgo-plan.xsd">
 
-    <artifact type="bundle" name="org.eclipse.gemini.blueprint.core" version="[2.1, 3)"/>
-    <artifact type="bundle" name="org.eclipse.gemini.blueprint.extender" version="[2.1, 3)"/>
-    <artifact type="bundle" name="org.eclipse.gemini.blueprint.io" version="[2.1, 3)"/>
-    <artifact type="bundle" name="org.eclipse.gemini.blueprint.extensions" version="[2.1, 3)"/>
+    <artifact type="bundle" name="org.eclipse.gemini.blueprint.core" version="[3, 4)"/>
+    <artifact type="bundle" name="org.eclipse.gemini.blueprint.extender" version="[3, 4)"/>
+    <artifact type="bundle" name="org.eclipse.gemini.blueprint.io" version="[3, 4)"/>
+    <artifact type="bundle" name="org.eclipse.gemini.blueprint.extensions" version="[3, 4)"/>
 
     <artifact type="bundle" name="org.eclipse.virgo.kernel.agent.dm" version="[@VIRGO.VERSION.LOWER_BOUND@, @VIRGO.VERSION.UPPER_BOUND@)"/>
     <artifact type="bundle" name="org.eclipse.virgo.kernel.deployer.dm" version="[@VIRGO.VERSION.LOWER_BOUND@, @VIRGO.VERSION.UPPER_BOUND@)"/>
diff --git a/packaging/tomcat-server/src/main/filtered/repository/ext/org.eclipse.virgo.web.tomcat.plan b/packaging/tomcat-server/src/main/filtered/repository/ext/org.eclipse.virgo.web.tomcat.plan
index 011d429..09e857b 100644
--- a/packaging/tomcat-server/src/main/filtered/repository/ext/org.eclipse.virgo.web.tomcat.plan
+++ b/packaging/tomcat-server/src/main/filtered/repository/ext/org.eclipse.virgo.web.tomcat.plan
@@ -7,7 +7,9 @@
 
         <artifact type="configuration" name="org.eclipse.virgo.web"/>
 
+<!-- TODO add oev.web.spring.integration back to Tomcat plan
         <artifact type="bundle" name="org.eclipse.virgo.web.spring.integration" version="[@VIRGO.VERSION.LOWER_BOUND@, @VIRGO.VERSION.UPPER_BOUND@)"/>
+-->
         <artifact type="bundle" name="org.eclipse.gemini.web.core" version="[3.0, 4.0)"/>
         <artifact type="bundle" name="org.eclipse.gemini.web.tomcat" version="[3.0, 4.0)"/>
 
diff --git a/packaging/tomcat-server/src/main/filtered/repository/ext/org.springframework.spring-library.libd b/packaging/tomcat-server/src/main/filtered/repository/ext/org.springframework.spring-library.libd
index b8d132b..7982560 100644
--- a/packaging/tomcat-server/src/main/filtered/repository/ext/org.springframework.spring-library.libd
+++ b/packaging/tomcat-server/src/main/filtered/repository/ext/org.springframework.spring-library.libd
@@ -15,8 +15,8 @@
  org.springframework.oxm;version="[@SPRING.VERSION@, @SPRING.VERSION@]",
  org.springframework.transaction;version="[@SPRING.VERSION@, @SPRING.VERSION@]",
  org.springframework.web;version="[@SPRING.VERSION@, @SPRING.VERSION@]",
+ org.springframework.webflux;version="[@SPRING.VERSION@, @SPRING.VERSION@]",
  org.springframework.webmvc;version="[@SPRING.VERSION@, @SPRING.VERSION@]",
- org.springframework.webmvc.portlet;version="[@SPRING.VERSION@, @SPRING.VERSION@]",
  org.springframework.websocket;version="[@SPRING.VERSION@, @SPRING.VERSION@]",
  oevm.org.aopalliance;version="[1.0.0, 1.0.0]",
  javax.jms;version="[1,2)"
