diff --git a/spring-cache-api/pom.xml b/spring-cache-api/pom.xml
index 83b90da..9838cf2 100644
--- a/spring-cache-api/pom.xml
+++ b/spring-cache-api/pom.xml
@@ -28,7 +28,7 @@
   </parent>
 
   <artifactId>spring-cache-api</artifactId>
-  <packaging>bundle</packaging>
+
   <name>Spring Cache API</name>
   <properties>
     <site.staging.base>${project.parent.basedir}/../site</site.staging.base>
@@ -83,27 +83,4 @@
 
   </dependencies>
 
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>maven-bundle-plugin</artifactId>
-        <configuration>
-          <instructions>
-            <Export-Package>
-              org.apache.archiva.redback.components.cache*;version=${project.version};-split-package:=merge-first
-            </Export-Package>
-            <Import-Package>
-              javax.annotation,
-              javax.inject;version="[1,2)",
-              org.springframework*;version="[3,4)",
-              org.apache.commons.lang;version="[2.6,3)",
-              org.slf4j;resolution:=optional
-            </Import-Package>
-          </instructions>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-
 </project>
diff --git a/spring-cache-providers/spring-cache-ehcache/pom.xml b/spring-cache-providers/spring-cache-ehcache/pom.xml
index 2c57903..3104422 100644
--- a/spring-cache-providers/spring-cache-ehcache/pom.xml
+++ b/spring-cache-providers/spring-cache-ehcache/pom.xml
@@ -28,7 +28,6 @@
   </parent>
 
   <artifactId>spring-cache-ehcache</artifactId>
-  <packaging>bundle</packaging>
   <name>Spring Cache Provider :: ehcache</name>
 
   <description>Commons Cache API : ehcache implementation.</description>
@@ -57,27 +56,4 @@
     </dependency>
   </dependencies>
 
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>maven-bundle-plugin</artifactId>
-        <configuration>
-          <instructions>
-            <Export-Package>
-              org.apache.archiva.redback.components.cache.ehcache;version=${project.version};-split-package:=merge-first
-            </Export-Package>
-            <Import-Package>
-              javax.annotation,
-              net.sf.ehcache*;version="[2.5,3)",
-              org.apache.archiva.redback.components.cache*;version=${project.version},
-              org.apache.commons.lang;version="[2.6,3)",
-              org.slf4j;resolution:=optional
-            </Import-Package>
-          </instructions>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-
 </project>
diff --git a/spring-cache-providers/spring-cache-hashmap/pom.xml b/spring-cache-providers/spring-cache-hashmap/pom.xml
index d3d12fa..f6a7a9a 100644
--- a/spring-cache-providers/spring-cache-hashmap/pom.xml
+++ b/spring-cache-providers/spring-cache-hashmap/pom.xml
@@ -28,7 +28,7 @@
   </parent>
 
   <artifactId>spring-cache-hashmap</artifactId>
-  <packaging>bundle</packaging>
+
   <name>Spring Cache Provider :: hashmap</name>
 
   <description>Commons Cache API : simple in memory HashMap implementation.</description>
@@ -45,26 +45,4 @@
     </dependency>
   </dependencies>
 
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>maven-bundle-plugin</artifactId>
-        <configuration>
-          <instructions>
-            <Export-Package>
-              org.apache.archiva.redback.components.cache.hashmap;version=${project.version};-split-package:=merge-first
-            </Export-Package>
-            <Import-Package>
-              javax.annotation,
-              org.apache.archiva.redback.components.cache*;version=${project.version},
-              org.springframework*;version="[3,4)",
-              org.slf4j;resolution:=optional
-            </Import-Package>
-          </instructions>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-
 </project>
diff --git a/spring-cache-providers/spring-cache-hashmap/src/main/java/org/apache/archiva/redback/components/cache/hashmap/HashMapCache.java b/spring-cache-providers/spring-cache-hashmap/src/main/java/org/apache/archiva/redback/components/cache/hashmap/HashMapCache.java
index 227d7a0..d71e309 100644
--- a/spring-cache-providers/spring-cache-hashmap/src/main/java/org/apache/archiva/redback/components/cache/hashmap/HashMapCache.java
+++ b/spring-cache-providers/spring-cache-hashmap/src/main/java/org/apache/archiva/redback/components/cache/hashmap/HashMapCache.java
@@ -225,11 +225,11 @@
 
         if ( cacheMaxSize > 0 )
         {
-            cache = new LinkedHashMap<V,CacheableWrapper<T>>( cacheMaxSize );
+            cache = new LinkedHashMap<>( cacheMaxSize );
         }
         else
         {
-            cache = new LinkedHashMap<V,CacheableWrapper<T>>();
+            cache = new LinkedHashMap<>();
         }
     }
 
@@ -251,7 +251,7 @@
                 cache.remove( key );
             }
 
-            ret = cache.put( key, new CacheableWrapper<T>( value, System.currentTimeMillis() ) );
+            ret = cache.put( key, new CacheableWrapper<>( value, System.currentTimeMillis() ) );
         }
 
         manageCache();
@@ -275,7 +275,7 @@
                 cache.remove( key );
             }
 
-            cache.put( key, new CacheableWrapper<T>( value, System.currentTimeMillis() ) );
+            cache.put( key, new CacheableWrapper<>( value, System.currentTimeMillis() ) );
         }
 
         manageCache();
diff --git a/spring-cache-providers/spring-cache-oscache/pom.xml b/spring-cache-providers/spring-cache-oscache/pom.xml
index 4b4a148..437b363 100644
--- a/spring-cache-providers/spring-cache-oscache/pom.xml
+++ b/spring-cache-providers/spring-cache-oscache/pom.xml
@@ -23,7 +23,7 @@
   </parent>
 
   <artifactId>spring-cache-oscache</artifactId>
-  <packaging>bundle</packaging>
+
   <name>Spring Cache Provider :: oscache</name>
 
   <description>Commons Cache API : oscache implementation.</description>
@@ -52,26 +52,4 @@
     </dependency>
   </dependencies>
 
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>maven-bundle-plugin</artifactId>
-        <configuration>
-          <instructions>
-            <Export-Package>
-              org.apache.archiva.redback.components.cache.oscache;version=${project.version};-split-package:=merge-first
-            </Export-Package>
-            <Import-Package>
-              javax.annotation,
-              com.opensymphony.oscache*;version="[2.4,3)",
-              org.apache.archiva.redback.components.cache*;version=${project.version},
-              org.apache.commons.lang;version="[2.6,3)"
-            </Import-Package>
-          </instructions>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-
 </project>
