diff --git a/pom.xml b/pom.xml
index 3e56b57..e5f890c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,7 +37,7 @@
   <name>Apache Winegrower</name>
 
   <properties>
-    <junit.version>5.5.2</junit.version>
+    <junit.version>5.6.1</junit.version>
     <osgi.version>7.0.0</osgi.version>
     <slf4j.version>1.7.28</slf4j.version>
     <xbean.version>4.16</xbean.version>
diff --git a/winegrower-core/src/test/java/org/apache/winegrower/RipenerTest.java b/winegrower-core/src/test/java/org/apache/winegrower/RipenerTest.java
index 9845a30..6e09724 100644
--- a/winegrower-core/src/test/java/org/apache/winegrower/RipenerTest.java
+++ b/winegrower-core/src/test/java/org/apache/winegrower/RipenerTest.java
@@ -86,13 +86,13 @@
     @Test
     @WithRipener
     void ensureFrameworkBundle(@Service final Ripener ripener) {
-        assertEquals(4, ripener.getRegistry().getBundles().size());
+        assertEquals(10, ripener.getRegistry().getBundles().size());
     }
 
     @Test
     @WithRipener(includeResources = @Entry(path = "org.apache.winegrower.test.implicitactivator"))
     void implicitActivator(@Service final Ripener ripener) {
-        assertEquals(5, ripener.getRegistry().getBundles().size());
+        assertEquals(11, ripener.getRegistry().getBundles().size());
 
         final BundleActivatorHandler activatorHandler = ripener.getRegistry().getBundles().values().stream()
                 .filter(it -> it.getActivator() != null)
@@ -110,7 +110,7 @@
     @Test
     @WithRipener(includeResources = @Entry(path = "org.apache.winegrower.test.simpleactivator"))
     void simpleActivator(@Service final Ripener ripener) {
-        assertEquals(5, ripener.getRegistry().getBundles().size());
+        assertEquals(11, ripener.getRegistry().getBundles().size());
 
         final BundleActivatorHandler activatorHandler = ripener.getRegistry().getBundles().values().stream()
                 .filter(it -> it.getActivator() != null)
