diff --git a/ipojo/junit4osgi/felix-command/pom.xml b/ipojo/junit4osgi/felix-command/pom.xml
index 4c16e17..830332e 100644
--- a/ipojo/junit4osgi/felix-command/pom.xml
+++ b/ipojo/junit4osgi/felix-command/pom.xml
@@ -6,9 +6,9 @@
   to you under the Apache License, Version 2.0 (the
   "License"); you may not use this file except in compliance
   with the License.  You may obtain a copy of the License at
-  
+
   http://www.apache.org/licenses/LICENSE-2.0
-  
+
   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -76,7 +76,7 @@
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-ipojo-plugin</artifactId>
-        <version>1.5.0-SNAPSHOT</version>
+        <version>1.8.0</version>
         <executions>
           <execution>
             <goals>
diff --git a/ipojo/junit4osgi/immediate-launcher/pom.xml b/ipojo/junit4osgi/immediate-launcher/pom.xml
index 4f73a1d..29a3c62 100644
--- a/ipojo/junit4osgi/immediate-launcher/pom.xml
+++ b/ipojo/junit4osgi/immediate-launcher/pom.xml
@@ -6,9 +6,9 @@
   to you under the Apache License, Version 2.0 (the
   "License"); you may not use this file except in compliance
   with the License.  You may obtain a copy of the License at
-  
+
   http://www.apache.org/licenses/LICENSE-2.0
-  
+
   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -76,7 +76,7 @@
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-ipojo-plugin</artifactId>
-        <version>1.5.0-SNAPSHOT</version>
+        <version>1.8.0</version>
         <executions>
           <execution>
             <goals>
diff --git a/ipojo/junit4osgi/junit4osgi/pom.xml b/ipojo/junit4osgi/junit4osgi/pom.xml
index b26ad25..e77cb2a 100644
--- a/ipojo/junit4osgi/junit4osgi/pom.xml
+++ b/ipojo/junit4osgi/junit4osgi/pom.xml
@@ -6,9 +6,9 @@
   to you under the Apache License, Version 2.0 (the
   "License"); you may not use this file except in compliance
   with the License.  You may obtain a copy of the License at
-  
+
   http://www.apache.org/licenses/LICENSE-2.0
-  
+
   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -31,7 +31,7 @@
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.ipojo</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
+      <version>1.8.0</version>
     </dependency>
     <dependency>
       <groupId>org.apache.felix</groupId>
@@ -77,7 +77,7 @@
               org.apache.felix.ipojo.junit4osgi.test,
             </Private-Package>
             <Export-Package>
-              org.apache.felix.ipojo.junit4osgi, 
+              org.apache.felix.ipojo.junit4osgi,
               org.apache.felix.ipojo.junit4osgi.helpers,
               junit.*
             </Export-Package>
@@ -88,7 +88,7 @@
               org.apache.felix.ipojo.junit4osgi.test.TestTestSuite,
               org.apache.felix.ipojo.junit4osgi.test.TestOSGiTestSuite,
             </Test-Suite>
-            <Include-Resource> 
+            <Include-Resource>
               META-INF/LICENSE=LICENSE,
               META-INF/LICENSE.junit=LICENSE.junit,
               META-INF/NOTICE=NOTICE
@@ -99,7 +99,7 @@
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-ipojo-plugin</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
+        <version>1.8.0</version>
         <executions>
           <execution>
             <goals>
diff --git a/ipojo/junit4osgi/swing-runner/pom.xml b/ipojo/junit4osgi/swing-runner/pom.xml
index bada98c..451cd2a 100644
--- a/ipojo/junit4osgi/swing-runner/pom.xml
+++ b/ipojo/junit4osgi/swing-runner/pom.xml
@@ -6,9 +6,9 @@
   to you under the Apache License, Version 2.0 (the
   "License"); you may not use this file except in compliance
   with the License.  You may obtain a copy of the License at
-  
+
   http://www.apache.org/licenses/LICENSE-2.0
-  
+
   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -68,7 +68,7 @@
     <plugin>
       <groupId>org.apache.felix</groupId>
       <artifactId>maven-ipojo-plugin</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
+      <version>1.8.0</version>
       <executions>
         <execution>
           <goals>
