Code cleanup / improvement : add generics information

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1663988 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/AbstractDependencyFilter.java b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/AbstractDependencyFilter.java
index e550df1..80ed259 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/AbstractDependencyFilter.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/AbstractDependencyFilter.java
@@ -28,13 +28,14 @@
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.plugin.MojoExecutionException;
 
-import aQute.bnd.osgi.Instruction;
+import aQute.bnd.header.Attrs;
 import aQute.bnd.header.OSGiHeader;
+import aQute.bnd.osgi.Instruction;
 
 
 /**
  * Apply clause-based filter over given dependencies
- * 
+ *
  * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public abstract class AbstractDependencyFilter
@@ -44,10 +45,10 @@
     /**
      * Dependency artifacts.
      */
-    private final Collection m_dependencyArtifacts;
+    private final Collection<Artifact> m_dependencyArtifacts;
 
 
-    public AbstractDependencyFilter( Collection dependencyArtifacts )
+    public AbstractDependencyFilter( Collection<Artifact> dependencyArtifacts )
     {
         m_dependencyArtifacts = dependencyArtifacts;
     }
@@ -71,11 +72,11 @@
         }
 
 
-        public void filter( Collection dependencies )
+        public void filter( Collection<Artifact> dependencies )
         {
-            for ( Iterator i = dependencies.iterator(); i.hasNext(); )
+            for ( Iterator<Artifact> i = dependencies.iterator(); i.hasNext(); )
             {
-                if ( false == matches( ( Artifact ) i.next() ) )
+                if ( false == matches( i.next() ) )
                 {
                     i.remove();
                 }
@@ -106,21 +107,21 @@
 
     protected final void processInstructions( String header ) throws MojoExecutionException
     {
-        Map instructions = OSGiHeader.parseHeader( MISSING_KEY_PATTERN.matcher( header ).replaceAll( "$1$2*;$3" ) );
+        Map<String,Attrs> instructions = OSGiHeader.parseHeader( MISSING_KEY_PATTERN.matcher( header ).replaceAll( "$1$2*;$3" ) );
 
-        Collection availableDependencies = new LinkedHashSet( m_dependencyArtifacts );
+        Collection<Artifact> availableDependencies = new LinkedHashSet<Artifact>( m_dependencyArtifacts );
 
         DependencyFilter filter;
-        for ( Iterator clauseIterator = instructions.entrySet().iterator(); clauseIterator.hasNext(); )
+        for ( Iterator<Map.Entry<String,Attrs>> clauseIterator = instructions.entrySet().iterator(); clauseIterator.hasNext(); )
         {
             String inline = "false";
 
             // always start with a fresh *modifiable* collection for each unique clause
-            Collection filteredDependencies = new LinkedHashSet( availableDependencies );
+            Collection<Artifact> filteredDependencies = new LinkedHashSet<Artifact>( availableDependencies );
 
             // CLAUSE: REGEXP --> { ATTRIBUTE MAP }
-            Map.Entry clause = ( Map.Entry ) clauseIterator.next();
-            String primaryKey = ( ( String ) clause.getKey() ).replaceFirst( "~+$", "" );
+            Map.Entry<String,Attrs> clause = clauseIterator.next();
+            String primaryKey = clause.getKey().replaceFirst( "~+$", "" );
             boolean isNegative = primaryKey.startsWith( "!" );
             if ( isNegative )
             {
@@ -131,6 +132,7 @@
             {
                 filter = new DependencyFilter( primaryKey )
                 {
+                    @Override
                     boolean matches( Artifact dependency )
                     {
                         return super.matches( dependency.getArtifactId() );
@@ -140,14 +142,15 @@
                 filter.filter( filteredDependencies );
             }
 
-            for ( Iterator attrIterator = ( ( Map ) clause.getValue() ).entrySet().iterator(); attrIterator.hasNext(); )
+            for ( Iterator<Map.Entry<String,String>> attrIterator = clause.getValue().entrySet().iterator(); attrIterator.hasNext(); )
             {
                 // ATTRIBUTE: KEY --> REGEXP
-                Map.Entry attr = ( Map.Entry ) attrIterator.next();
+                Map.Entry<String,String> attr = attrIterator.next();
                 if ( "groupId".equals( attr.getKey() ) )
                 {
-                    filter = new DependencyFilter( ( String ) attr.getValue() )
+                    filter = new DependencyFilter( attr.getValue() )
                     {
+                        @Override
                         boolean matches( Artifact dependency )
                         {
                             return super.matches( dependency.getGroupId() );
@@ -156,8 +159,9 @@
                 }
                 else if ( "artifactId".equals( attr.getKey() ) )
                 {
-                    filter = new DependencyFilter( ( String ) attr.getValue() )
+                    filter = new DependencyFilter( attr.getValue() )
                     {
+                        @Override
                         boolean matches( Artifact dependency )
                         {
                             return super.matches( dependency.getArtifactId() );
@@ -166,8 +170,9 @@
                 }
                 else if ( "version".equals( attr.getKey() ) )
                 {
-                    filter = new DependencyFilter( ( String ) attr.getValue() )
+                    filter = new DependencyFilter( attr.getValue() )
                     {
+                        @Override
                         boolean matches( Artifact dependency )
                         {
                             try
@@ -184,8 +189,9 @@
                 }
                 else if ( "scope".equals( attr.getKey() ) )
                 {
-                    filter = new DependencyFilter( ( String ) attr.getValue(), "compile" )
+                    filter = new DependencyFilter( attr.getValue(), "compile" )
                     {
+                        @Override
                         boolean matches( Artifact dependency )
                         {
                             return super.matches( dependency.getScope() );
@@ -194,8 +200,9 @@
                 }
                 else if ( "type".equals( attr.getKey() ) )
                 {
-                    filter = new DependencyFilter( ( String ) attr.getValue(), "jar" )
+                    filter = new DependencyFilter( attr.getValue(), "jar" )
                     {
+                        @Override
                         boolean matches( Artifact dependency )
                         {
                             return super.matches( dependency.getType() );
@@ -204,8 +211,9 @@
                 }
                 else if ( "classifier".equals( attr.getKey() ) )
                 {
-                    filter = new DependencyFilter( ( String ) attr.getValue() )
+                    filter = new DependencyFilter( attr.getValue() )
                     {
+                        @Override
                         boolean matches( Artifact dependency )
                         {
                             return super.matches( dependency.getClassifier() );
@@ -214,8 +222,9 @@
                 }
                 else if ( "optional".equals( attr.getKey() ) )
                 {
-                    filter = new DependencyFilter( ( String ) attr.getValue(), "false" )
+                    filter = new DependencyFilter( attr.getValue(), "false" )
                     {
+                        @Override
                         boolean matches( Artifact dependency )
                         {
                             return super.matches( "" + dependency.isOptional() );
@@ -224,7 +233,7 @@
                 }
                 else if ( "inline".equals( attr.getKey() ) )
                 {
-                    inline = ( String ) attr.getValue();
+                    inline = attr.getValue();
                     continue;
                 }
                 else
@@ -255,5 +264,5 @@
     }
 
 
-    protected abstract void processDependencies( Collection dependencies, String inline );
+    protected abstract void processDependencies( Collection<Artifact> dependencies, String inline );
 }
diff --git a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/AntPlugin.java b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/AntPlugin.java
index 63d7b34..0274f0d 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/AntPlugin.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/AntPlugin.java
@@ -48,7 +48,8 @@
     static final String BUILD_BND = "/maven-build.bnd";
 
 
-    protected void execute( MavenProject currentProject, Map originalInstructions, Properties properties,
+    @Override
+    protected void execute( MavenProject currentProject, Map<String, String> originalInstructions, Properties properties,
         Jar[] classpath ) throws MojoExecutionException
     {
         final String artifactId = getProject().getArtifactId();
diff --git a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BlueprintPlugin.java b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BlueprintPlugin.java
index 97b3d69..9ece6c1 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BlueprintPlugin.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BlueprintPlugin.java
@@ -19,6 +19,8 @@
 package org.apache.felix.bundleplugin;
 
 
+import static org.apache.felix.utils.manifest.Parser.parseHeader;
+
 import java.io.BufferedReader;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -26,15 +28,10 @@
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.net.URL;
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.TreeSet;
 import java.util.regex.Pattern;
 
 import javax.xml.transform.Transformer;
@@ -42,22 +39,18 @@
 import javax.xml.transform.stream.StreamResult;
 import javax.xml.transform.stream.StreamSource;
 
+import org.apache.felix.utils.manifest.Attribute;
+import org.apache.felix.utils.manifest.Clause;
+import org.osgi.framework.Constants;
+
 import aQute.bnd.header.Attrs;
-import aQute.bnd.service.AnalyzerPlugin;
 import aQute.bnd.osgi.Analyzer;
 import aQute.bnd.osgi.Descriptors.PackageRef;
 import aQute.bnd.osgi.Jar;
 import aQute.bnd.osgi.Processor;
 import aQute.bnd.osgi.Resource;
+import aQute.bnd.service.AnalyzerPlugin;
 import aQute.libg.generics.Create;
-import aQute.libg.qtokens.QuotedTokenizer;
-import aQute.service.reporter.Reporter;
-import org.apache.felix.utils.manifest.Attribute;
-import org.apache.felix.utils.manifest.Clause;
-import org.apache.felix.utils.manifest.Directive;
-import org.osgi.framework.Constants;
-
-import static org.apache.felix.utils.manifest.Parser.parseHeader;
 
 
 public class BlueprintPlugin implements AnalyzerPlugin
@@ -99,7 +92,7 @@
             if ( dir == null || dir.isEmpty() )
             {
                 Resource resource = jar.getResource( root );
-                if ( resource != null ) 
+                if ( resource != null )
 				{
                     process( analyzer, root, resource, headers );
 					if (bpHeader.length() > 0) {
@@ -113,7 +106,7 @@
             {
                 String path = entry.getKey();
                 Resource resource = entry.getValue();
-                if ( PATHS.matcher( path ).matches() ) 
+                if ( PATHS.matcher( path ).matches() )
 				{
                     process( analyzer, path, resource, headers );
 					if (bpHeader.length() > 0) {
@@ -123,7 +116,7 @@
 				}
             }
         }
-		if( !map.isEmpty() ) 
+		if( !map.isEmpty() )
 		{
 			analyzer.setProperty("Bundle-Blueprint", bpHeader);
 		}
diff --git a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundleInfo.java b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundleInfo.java
index b75d978..d42ab74 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundleInfo.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundleInfo.java
@@ -4,9 +4,9 @@
  * copyright ownership. The ASF licenses this file 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 KIND, either express
  * or implied. See the License for the specific language governing permissions and limitations under
@@ -15,7 +15,6 @@
 package org.apache.felix.bundleplugin;
 
 
-import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -26,8 +25,8 @@
 
 
 /**
- * Information result of the bundling process 
- * 
+ * Information result of the bundling process
+ *
  * @author <a href="mailto:carlos@apache.org">Carlos Sanchez</a>
  * @version $Id$
  */
@@ -37,22 +36,22 @@
      * {@link Map} &lt; {@link String}, {@link Set} &lt; {@link Artifact} > >
      * Used to check for duplicated exports. Key is package name and value list of artifacts where it's exported.
      */
-    private Map m_exportedPackages = new HashMap();
+    private Map<String, Set<Artifact>> m_exportedPackages = new HashMap<String, Set<Artifact>>();
 
 
     public void addExportedPackage( String packageName, Artifact artifact )
     {
-        Set artifacts = ( Set ) getExportedPackages().get( packageName );
+        Set<Artifact> artifacts = getExportedPackages().get( packageName );
         if ( artifacts == null )
         {
-            artifacts = new HashSet();
+            artifacts = new HashSet<Artifact>();
             m_exportedPackages.put( packageName, artifacts );
         }
         artifacts.add( artifact );
     }
 
 
-    protected Map getExportedPackages()
+    protected Map<String, Set<Artifact>> getExportedPackages()
     {
         return m_exportedPackages;
     }
@@ -63,23 +62,23 @@
      * Key is package name and value list of artifacts where it's exported.
      * @return {@link Map} &lt; {@link String}, {@link Set} &lt; {@link Artifact} > >
      */
-    public Map getDuplicatedExports()
+    public Map<String, Set<Artifact>> getDuplicatedExports()
     {
-        Map duplicatedExports = new HashMap();
+        Map<String, Set<Artifact>> duplicatedExports = new HashMap<String, Set<Artifact>>();
 
-        for ( Iterator it = getExportedPackages().entrySet().iterator(); it.hasNext(); )
+        for ( Iterator<Map.Entry<String, Set<Artifact>>> it = getExportedPackages().entrySet().iterator(); it.hasNext(); )
         {
-            Map.Entry entry = ( Map.Entry ) it.next();
-            Set artifacts = ( Set ) entry.getValue();
+            Map.Entry<String, Set<Artifact>> entry = it.next();
+            Set<Artifact> artifacts = entry.getValue();
             if ( artifacts.size() > 1 )
             {
                 /* remove warnings caused by different versions of same artifact */
-                Set artifactKeys = new HashSet();
+                Set<String> artifactKeys = new HashSet<String>();
 
-                String packageName = ( String ) entry.getKey();
-                for ( Iterator it2 = artifacts.iterator(); it2.hasNext(); )
+                String packageName = entry.getKey();
+                for ( Iterator<Artifact> it2 = artifacts.iterator(); it2.hasNext(); )
                 {
-                    Artifact artifact = ( Artifact ) it2.next();
+                    Artifact artifact = it2.next();
                     artifactKeys.add( artifact.getGroupId() + "." + artifact.getArtifactId() );
                 }
 
@@ -96,16 +95,16 @@
 
     public void merge( BundleInfo bundleInfo )
     {
-        for ( Iterator it = bundleInfo.getExportedPackages().entrySet().iterator(); it.hasNext(); )
+        for ( Iterator<Map.Entry<String, Set<Artifact>>> it = bundleInfo.getExportedPackages().entrySet().iterator(); it.hasNext(); )
         {
-            Map.Entry entry = ( Map.Entry ) it.next();
-            String packageName = ( String ) entry.getKey();
-            Collection artifacts = ( Collection ) entry.getValue();
+            Map.Entry<String, Set<Artifact>> entry = it.next();
+            String packageName = entry.getKey();
+            Set<Artifact> artifacts = entry.getValue();
 
-            Collection artifactsWithPackage = ( Collection ) getExportedPackages().get( packageName );
+            Set<Artifact> artifactsWithPackage = getExportedPackages().get( packageName );
             if ( artifactsWithPackage == null )
             {
-                artifactsWithPackage = new HashSet();
+                artifactsWithPackage = new HashSet<Artifact>();
                 getExportedPackages().put( packageName, artifactsWithPackage );
             }
             artifactsWithPackage.addAll( artifacts );
diff --git a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
index 4e5835f..c84973c 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java
@@ -39,7 +39,6 @@
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.Properties;
 import java.util.Set;
 import java.util.jar.Attributes;
@@ -178,7 +177,7 @@
      *
      * @parameter
      */
-    protected List supportedProjectTypes = Arrays.asList( new String[]
+    protected List<String> supportedProjectTypes = Arrays.asList( new String[]
         { "jar", "bundle" } );
 
     /**
@@ -211,7 +210,7 @@
      *
      * @parameter
      */
-    private Map instructions = new LinkedHashMap();
+    private Map<String, String> instructions = new LinkedHashMap<String, String>();
 
     /**
      * Use locally patched version for now.
@@ -287,7 +286,7 @@
     }
 
 
-    protected void execute( MavenProject currentProject, Map originalInstructions, Properties properties )
+    protected void execute( MavenProject currentProject, Map<String, String> originalInstructions, Properties properties )
         throws MojoExecutionException
     {
         try
@@ -302,20 +301,20 @@
 
 
     /* transform directives from their XML form to the expected BND syntax (eg. _include becomes -include) */
-    protected static Map transformDirectives( Map originalInstructions )
+    protected static Map<String, String> transformDirectives( Map<String, String> originalInstructions )
     {
-        Map transformedInstructions = new LinkedHashMap();
-        for ( Iterator i = originalInstructions.entrySet().iterator(); i.hasNext(); )
+        Map<String, String> transformedInstructions = new LinkedHashMap<String, String>();
+        for ( Iterator<Map.Entry<String, String>> i = originalInstructions.entrySet().iterator(); i.hasNext(); )
         {
-            Map.Entry e = ( Map.Entry ) i.next();
+            Map.Entry<String, String> e = i.next();
 
-            String key = ( String ) e.getKey();
+            String key = e.getKey();
             if ( key.startsWith( "_" ) )
             {
                 key = "-" + key.substring( 1 );
             }
 
-            String value = ( String ) e.getValue();
+            String value = e.getValue();
             if ( null == value )
             {
                 value = "";
@@ -339,20 +338,20 @@
 
     protected boolean reportErrors( String prefix, Analyzer analyzer )
     {
-        List errors = analyzer.getErrors();
-        List warnings = analyzer.getWarnings();
+        List<String> errors = analyzer.getErrors();
+        List<String> warnings = analyzer.getWarnings();
 
-        for ( Iterator w = warnings.iterator(); w.hasNext(); )
+        for ( Iterator<String> w = warnings.iterator(); w.hasNext(); )
         {
-            String msg = ( String ) w.next();
+            String msg = w.next();
             getLog().warn( prefix + " : " + msg );
         }
 
         boolean hasErrors = false;
         String fileNotFound = "Input file does not exist: ";
-        for ( Iterator e = errors.iterator(); e.hasNext(); )
+        for ( Iterator<String> e = errors.iterator(); e.hasNext(); )
         {
-            String msg = ( String ) e.next();
+            String msg = e.next();
             if ( msg.startsWith( fileNotFound ) && msg.endsWith( "~" ) )
             {
                 // treat as warning; this error happens when you have duplicate entries in Include-Resource
@@ -369,7 +368,7 @@
     }
 
 
-    protected void execute( MavenProject currentProject, Map originalInstructions, Properties properties,
+    protected void execute( MavenProject currentProject, Map<String, String> originalInstructions, Properties properties,
         Jar[] classpath ) throws MojoExecutionException
     {
         try
@@ -456,18 +455,18 @@
     }
 
 
-    protected Builder getOSGiBuilder( MavenProject currentProject, Map originalInstructions, Properties properties,
+    protected Builder getOSGiBuilder( MavenProject currentProject, Map<String, String> originalInstructions, Properties properties,
         Jar[] classpath ) throws Exception
     {
         properties.putAll( getDefaultProperties( currentProject ) );
         properties.putAll( transformDirectives( originalInstructions ) );
 
         // process overrides from project
-        final Map addProps = new HashMap();
-        final Iterator iter = currentProject.getProperties().entrySet().iterator();
+        final Map<String, String> addProps = new HashMap<String, String>();
+        final Iterator<Map.Entry<Object, Object>> iter = currentProject.getProperties().entrySet().iterator();
         while ( iter.hasNext() )
         {
-            final Map.Entry entry = (Entry) iter.next();
+            final Map.Entry<Object, Object> entry = iter.next();
             final String key = entry.getKey().toString();
             if ( key.startsWith(BUNDLE_PLUGIN_EXTENSION) )
             {
@@ -475,7 +474,7 @@
                 final String currentValue = properties.getProperty(oKey);
                 if ( currentValue == null )
                 {
-                    addProps.put(oKey, entry.getValue());
+                    addProps.put(oKey, entry.getValue().toString());
                 }
                 else
                 {
@@ -488,7 +487,7 @@
                 final String currentValue = properties.getProperty(oKey);
                 if ( currentValue == null )
                 {
-                    addProps.put(oKey, entry.getValue());
+                    addProps.put(oKey, entry.getValue().toString());
                 }
                 else
                 {
@@ -497,7 +496,7 @@
             }
         }
         properties.putAll( addProps );
-        final Iterator keyIter = addProps.keySet().iterator();
+        final Iterator<String> keyIter = addProps.keySet().iterator();
         while ( keyIter.hasNext() )
         {
             Object key = keyIter.next();
@@ -548,9 +547,9 @@
     {
         // convert any non-String keys/values to Strings
         Properties sanitizedEntries = new Properties();
-        for ( Iterator itr = properties.entrySet().iterator(); itr.hasNext(); )
+        for ( Iterator<Map.Entry<Object,Object>> itr = properties.entrySet().iterator(); itr.hasNext(); )
         {
-            Map.Entry entry = ( Map.Entry ) itr.next();
+            Map.Entry<Object,Object> entry = itr.next();
             if ( entry.getKey() instanceof String == false )
             {
                 String key = sanitize( entry.getKey() );
@@ -620,7 +619,7 @@
         }
 
         // update BND instructions to embed selected Maven dependencies
-        Collection embeddableArtifacts = getEmbeddableArtifacts( currentProject, builder );
+        Collection<Artifact> embeddableArtifacts = getEmbeddableArtifacts( currentProject, builder );
         new DependencyEmbedder( getLog(), embeddableArtifacts ).processHeaders( builder );
 
         if ( dumpInstructions != null || getLog().isDebugEnabled() )
@@ -649,7 +648,7 @@
     }
 
 
-    protected Builder buildOSGiBundle( MavenProject currentProject, Map originalInstructions, Properties properties,
+    protected Builder buildOSGiBundle( MavenProject currentProject, Map<String, String> originalInstructions, Properties properties,
         Jar[] classpath ) throws Exception
     {
         Builder builder = getOSGiBuilder( currentProject, originalInstructions, properties, classpath );
@@ -670,10 +669,10 @@
         {
             buf.append( "#-----------------------------------------------------------------------" + NL );
             Properties stringProperties = new Properties();
-            for ( Enumeration e = properties.propertyNames(); e.hasMoreElements(); )
+            for ( Enumeration<String> e = (Enumeration<String>) properties.propertyNames(); e.hasMoreElements(); )
             {
                 // we can only store String properties
-                String key = ( String ) e.nextElement();
+                String key = e.nextElement();
                 String value = properties.getProperty( key );
                 if ( value != null )
                 {
@@ -693,15 +692,15 @@
     }
 
 
-    protected static StringBuilder dumpClasspath( List classpath, StringBuilder buf )
+    protected static StringBuilder dumpClasspath( List<Jar> classpath, StringBuilder buf )
     {
         try
         {
             buf.append( "#-----------------------------------------------------------------------" + NL );
             buf.append( "-classpath:\\" + NL );
-            for ( Iterator i = classpath.iterator(); i.hasNext(); )
+            for ( Iterator<Jar> i = classpath.iterator(); i.hasNext(); )
             {
-                File path = ( ( Jar ) i.next() ).getSource();
+                File path = i.next().getSource();
                 if ( path != null )
                 {
                     buf.append( ' ' + path.toString() + ( i.hasNext() ? ",\\" : "" ) + NL );
@@ -815,19 +814,19 @@
                 /*
                  * Add customized manifest sections (for some reason MavenArchiver doesn't do this for us)
                  */
-                List sections = archiveConfig.getManifestSections();
-                for ( Iterator i = sections.iterator(); i.hasNext(); )
+                List<ManifestSection> sections = archiveConfig.getManifestSections();
+                for ( Iterator<ManifestSection> i = sections.iterator(); i.hasNext(); )
                 {
-                    ManifestSection section = ( ManifestSection ) i.next();
+                    ManifestSection section = i.next();
                     Attributes attributes = new Attributes();
 
                     if ( !section.isManifestEntriesEmpty() )
                     {
-                        Map entries = section.getManifestEntries();
-                        for ( Iterator j = entries.entrySet().iterator(); j.hasNext(); )
+                        Map<String, String> entries = section.getManifestEntries();
+                        for ( Iterator<Map.Entry<String, String>> j = entries.entrySet().iterator(); j.hasNext(); )
                         {
-                            Map.Entry entry = ( Map.Entry ) j.next();
-                            attributes.putValue( ( String ) entry.getKey(), ( String ) entry.getValue() );
+                            Map.Entry<String, String> entry = j.next();
+                            attributes.putValue( entry.getKey(), entry.getValue() );
                         }
                     }
 
@@ -843,7 +842,7 @@
             // apply -removeheaders to the custom manifest
             for ( int i = 0; i < removeHeaders.length; i++ )
             {
-                for ( Iterator j = mainMavenAttributes.keySet().iterator(); j.hasNext(); )
+                for ( Iterator<Object> j = mainMavenAttributes.keySet().iterator(); j.hasNext(); )
                 {
                     if ( j.next().toString().matches( removeHeaders[i].trim() ) )
                     {
@@ -901,13 +900,13 @@
     }
 
 
-    protected Set getOptionalPackages( MavenProject currentProject ) throws IOException, MojoExecutionException
+    protected Set<String> getOptionalPackages( MavenProject currentProject ) throws IOException, MojoExecutionException
     {
-        ArrayList inscope = new ArrayList();
-        final Collection artifacts = getSelectedDependencies( currentProject.getArtifacts() );
-        for ( Iterator it = artifacts.iterator(); it.hasNext(); )
+        ArrayList<Artifact> inscope = new ArrayList<Artifact>();
+        final Collection<Artifact> artifacts = getSelectedDependencies( currentProject.getArtifacts() );
+        for ( Iterator<Artifact> it = artifacts.iterator(); it.hasNext(); )
         {
-            Artifact artifact = ( Artifact ) it.next();
+            Artifact artifact = it.next();
             if ( artifact.getArtifactHandler().isAddedToClasspath() )
             {
                 if ( !Artifact.SCOPE_TEST.equals( artifact.getScope() ) )
@@ -917,10 +916,10 @@
             }
         }
 
-        HashSet optionalArtifactIds = new HashSet();
-        for ( Iterator it = inscope.iterator(); it.hasNext(); )
+        HashSet<String> optionalArtifactIds = new HashSet<String>();
+        for ( Iterator<Artifact> it = inscope.iterator(); it.hasNext(); )
         {
-            Artifact artifact = ( Artifact ) it.next();
+            Artifact artifact = it.next();
             if ( artifact.isOptional() )
             {
                 String id = artifact.toString();
@@ -934,11 +933,11 @@
 
         }
 
-        HashSet required = new HashSet();
-        HashSet optional = new HashSet();
-        for ( Iterator it = inscope.iterator(); it.hasNext(); )
+        HashSet<String> required = new HashSet<String>();
+        HashSet<String> optional = new HashSet<String>();
+        for ( Iterator<Artifact> it = inscope.iterator(); it.hasNext(); )
         {
-            Artifact artifact = ( Artifact ) it.next();
+            Artifact artifact = it.next();
             File file = getFile( artifact );
             if ( file == null )
             {
@@ -968,12 +967,12 @@
      *
      * @param artifact
      */
-    protected boolean isTransitivelyOptional( HashSet optionalArtifactIds, Artifact artifact )
+    protected boolean isTransitivelyOptional( HashSet<String> optionalArtifactIds, Artifact artifact )
     {
-        List trail = artifact.getDependencyTrail();
-        for ( Iterator iterator = trail.iterator(); iterator.hasNext(); )
+        List<String> trail = artifact.getDependencyTrail();
+        for ( Iterator<String> iterator = trail.iterator(); iterator.hasNext(); )
         {
-            String next = ( String ) iterator.next();
+            String next = iterator.next();
             if ( optionalArtifactIds.contains( next ) )
             {
                 return true;
@@ -1036,9 +1035,9 @@
     }
 
 
-    private static Map getProperties( Model projectModel, String prefix )
+    private static Map<String, String> getProperties( Model projectModel, String prefix )
     {
-        Map properties = new LinkedHashMap();
+        Map<String, String> properties = new LinkedHashMap<String, String>();
         Method methods[] = Model.class.getDeclaredMethods();
         for ( int i = 0; i < methods.length; i++ )
         {
@@ -1054,7 +1053,7 @@
                         if ( v.getClass().isArray() )
                             properties.put( name, Arrays.asList( ( Object[] ) v ).toString() );
                         else
-                            properties.put( name, v );
+                            properties.put( name, v.toString() );
 
                     }
                 }
@@ -1068,15 +1067,15 @@
     }
 
 
-    private static StringBuffer printLicenses( List licenses )
+    private static StringBuffer printLicenses( List<License> licenses )
     {
         if ( licenses == null || licenses.size() == 0 )
             return null;
         StringBuffer sb = new StringBuffer();
         String del = "";
-        for ( Iterator i = licenses.iterator(); i.hasNext(); )
+        for ( Iterator<License> i = licenses.iterator(); i.hasNext(); )
         {
-            License l = ( License ) i.next();
+            License l = i.next();
             String url = l.getUrl();
             if ( url == null )
                 continue;
@@ -1112,17 +1111,17 @@
 
     protected Jar[] getClasspath( MavenProject currentProject ) throws IOException, MojoExecutionException
     {
-        List list = new ArrayList();
+        List<Jar> list = new ArrayList<Jar>();
 
         if ( getOutputDirectory() != null && getOutputDirectory().exists() )
         {
             list.add( new Jar( ".", getOutputDirectory() ) );
         }
 
-        final Collection artifacts = getSelectedDependencies( currentProject.getArtifacts() );
-        for ( Iterator it = artifacts.iterator(); it.hasNext(); )
+        final Collection<Artifact> artifacts = getSelectedDependencies( currentProject.getArtifacts() );
+        for ( Iterator<Artifact> it = artifacts.iterator(); it.hasNext(); )
         {
-            Artifact artifact = ( Artifact ) it.next();
+            Artifact artifact = it.next();
             if ( artifact.getArtifactHandler().isAddedToClasspath() )
             {
                 if ( !Artifact.SCOPE_TEST.equals( artifact.getScope() ) )
@@ -1146,7 +1145,7 @@
     }
 
 
-    private Collection getSelectedDependencies( Collection artifacts ) throws MojoExecutionException
+    private Collection<Artifact> getSelectedDependencies( Collection<Artifact> artifacts ) throws MojoExecutionException
     {
         if ( null == excludeDependencies || excludeDependencies.length() == 0 )
         {
@@ -1154,10 +1153,10 @@
         }
         else if ( "true".equalsIgnoreCase( excludeDependencies ) )
         {
-            return Collections.EMPTY_LIST;
+            return Collections.emptyList();
         }
 
-        Collection selectedDependencies = new LinkedHashSet( artifacts );
+        Collection<Artifact> selectedDependencies = new LinkedHashSet<Artifact>( artifacts );
         DependencyExcluder excluder = new DependencyExcluder( artifacts );
         excluder.processHeaders( excludeDependencies );
         selectedDependencies.removeAll( excluder.getExcludedArtifacts() );
@@ -1291,9 +1290,9 @@
         properties.putAll( currentProject.getProperties() );
         properties.putAll( currentProject.getModel().getProperties() );
 
-        for ( Iterator i = currentProject.getFilters().iterator(); i.hasNext(); )
+        for ( Iterator<String> i = currentProject.getFilters().iterator(); i.hasNext(); )
         {
-            File filterFile = new File( ( String ) i.next() );
+            File filterFile = new File( i.next() );
             if ( filterFile.isFile() )
             {
                 properties.putAll( PropertyUtils.loadProperties( filterFile ) );
@@ -1306,9 +1305,9 @@
             {
                 // don't pass upper-case session settings to bnd as they end up in the manifest
                 Properties sessionProperties = m_mavenSession.getExecutionProperties();
-                for ( Enumeration e = sessionProperties.propertyNames(); e.hasMoreElements(); )
+                for ( Enumeration<String> e = (Enumeration<String>) sessionProperties.propertyNames(); e.hasMoreElements(); )
                 {
-                    String key = ( String ) e.nextElement();
+                    String key = e.nextElement();
                     if ( key.length() > 0 && !Character.isUpperCase( key.charAt( 0 ) ) )
                     {
                         properties.put( key, sessionProperties.getProperty( key ) );
@@ -1455,17 +1454,17 @@
     }
 
 
-    private static List getMavenResources( MavenProject currentProject, boolean test )
+    private static List<Resource> getMavenResources( MavenProject currentProject, boolean test )
     {
-        List resources = new ArrayList( test ? currentProject.getTestResources() : currentProject.getResources() );
+        List<Resource> resources = new ArrayList<Resource>( test ? currentProject.getTestResources() : currentProject.getResources() );
 
         if ( currentProject.getCompileSourceRoots() != null )
         {
             // also scan for any "packageinfo" files lurking in the source folders
-            List packageInfoIncludes = Collections.singletonList( "**/packageinfo" );
-            for ( Iterator i = currentProject.getCompileSourceRoots().iterator(); i.hasNext(); )
+            final List<String> packageInfoIncludes = Collections.singletonList( "**/packageinfo" );
+            for ( Iterator<String> i = currentProject.getCompileSourceRoots().iterator(); i.hasNext(); )
             {
-                String sourceRoot = ( String ) i.next();
+                String sourceRoot = i.next();
                 Resource packageInfoResource = new Resource();
                 packageInfoResource.setDirectory( sourceRoot );
                 packageInfoResource.setIncludes( packageInfoIncludes );
@@ -1481,10 +1480,10 @@
     {
         final String basePath = currentProject.getBasedir().getAbsolutePath();
 
-        Set pathSet = new LinkedHashSet();
-        for ( Iterator i = getMavenResources( currentProject, test ).iterator(); i.hasNext(); )
+        Set<String> pathSet = new LinkedHashSet<String>();
+        for ( Iterator<Resource> i = getMavenResources( currentProject, test ).iterator(); i.hasNext(); )
         {
-            Resource resource = ( Resource ) i.next();
+            Resource resource = i.next();
 
             final String sourcePath = resource.getDirectory();
             final String targetPath = resource.getTargetPath();
@@ -1512,11 +1511,11 @@
                 scanner.addDefaultExcludes();
                 scanner.scan();
 
-                List includedFiles = Arrays.asList( scanner.getIncludedFiles() );
+                List<String> includedFiles = Arrays.asList( scanner.getIncludedFiles() );
 
-                for ( Iterator j = includedFiles.iterator(); j.hasNext(); )
+                for ( Iterator<String> j = includedFiles.iterator(); j.hasNext(); )
                 {
-                    String name = ( String ) j.next();
+                    String name = j.next();
                     String path = sourcePath + '/' + name;
 
                     // make relative to project
@@ -1559,7 +1558,7 @@
         }
 
         StringBuffer resourcePaths = new StringBuffer();
-        for ( Iterator i = pathSet.iterator(); i.hasNext(); )
+        for ( Iterator<String> i = pathSet.iterator(); i.hasNext(); )
         {
             resourcePaths.append( i.next() );
             if ( i.hasNext() )
@@ -1572,10 +1571,10 @@
     }
 
 
-    protected Collection getEmbeddableArtifacts( MavenProject currentProject, Analyzer analyzer )
+    protected Collection<Artifact> getEmbeddableArtifacts( MavenProject currentProject, Analyzer analyzer )
         throws MojoExecutionException
     {
-        final Collection artifacts;
+        final Collection<Artifact> artifacts;
 
         String embedTransitive = analyzer.getProperty( DependencyEmbedder.EMBED_TRANSITIVE );
         if ( Boolean.valueOf( embedTransitive ).booleanValue() )
@@ -1598,22 +1597,22 @@
         // pass maven source paths onto BND analyzer
         StringBuilder mavenSourcePaths = new StringBuilder();
         StringBuilder mavenTestSourcePaths = new StringBuilder();
-        Map<StringBuilder, List<?>> map = new HashMap<StringBuilder, List<?>>(2);
+        Map<StringBuilder, List<String>> map = new HashMap<StringBuilder, List<String>>(2);
         map.put(mavenSourcePaths, currentProject.getCompileSourceRoots() );
         map.put(mavenTestSourcePaths, currentProject.getTestCompileSourceRoots() );
-        for ( Map.Entry<StringBuilder, List<?>> entry : map.entrySet() )
+        for ( Map.Entry<StringBuilder, List<String>> entry : map.entrySet() )
         {
-            List<?> compileSourceRoots = entry.getValue();
+            List<String> compileSourceRoots = entry.getValue();
             if ( compileSourceRoots != null )
             {
                 StringBuilder sourcePaths = entry.getKey();
-                for ( Iterator i = compileSourceRoots.iterator(); i.hasNext(); )
+                for ( Iterator<String> i = compileSourceRoots.iterator(); i.hasNext(); )
                 {
                     if ( sourcePaths.length() > 0 )
                     {
                         sourcePaths.append( ',' );
                     }
-                    sourcePaths.append( ( String ) i.next() );
+                    sourcePaths.append( i.next() );
                 }
             }
         }
diff --git a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/DependencyEmbedder.java b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/DependencyEmbedder.java
index 0f5578a..c83d3a2 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/DependencyEmbedder.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/DependencyEmbedder.java
@@ -34,7 +34,7 @@
 
 /**
  * Add BND directives to embed selected dependencies inside a bundle
- * 
+ *
  * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public final class DependencyEmbedder extends AbstractDependencyFilter
@@ -54,29 +54,22 @@
     private String m_embedStripVersion;
 
     /**
-     * Maven logger.
-     */
-    private final Log m_log;
-
-    /**
      * Inlined paths.
      */
-    private final Collection m_inlinedPaths;
+    private final Collection<String> m_inlinedPaths;
 
     /**
      * Embedded artifacts.
      */
-    private final Collection m_embeddedArtifacts;
+    private final Collection<Artifact> m_embeddedArtifacts;
 
 
-    public DependencyEmbedder( Log log, Collection dependencyArtifacts )
+    public DependencyEmbedder( Log log, Collection<Artifact> dependencyArtifacts )
     {
         super( dependencyArtifacts );
 
-        m_log = log;
-
-        m_inlinedPaths = new LinkedHashSet();
-        m_embeddedArtifacts = new LinkedHashSet();
+        m_inlinedPaths = new LinkedHashSet<String>();
+        m_embeddedArtifacts = new LinkedHashSet<Artifact>();
     }
 
 
@@ -98,13 +91,13 @@
 
             processInstructions( embedDependencyHeader );
 
-            for ( Iterator i = m_inlinedPaths.iterator(); i.hasNext(); )
+            for ( Iterator<String> i = m_inlinedPaths.iterator(); i.hasNext(); )
             {
-                inlineDependency( ( String ) i.next(), includeResource );
+                inlineDependency( i.next(), includeResource );
             }
-            for ( Iterator i = m_embeddedArtifacts.iterator(); i.hasNext(); )
+            for ( Iterator<Artifact> i = m_embeddedArtifacts.iterator(); i.hasNext(); )
             {
-                embedDependency( ( Artifact ) i.next(), includeResource, bundleClassPath, embeddedArtifacts );
+                embedDependency( i.next(), includeResource, bundleClassPath, embeddedArtifacts );
             }
         }
 
@@ -124,7 +117,7 @@
 
 
     @Override
-    protected void processDependencies( Collection dependencies, String inline )
+    protected void processDependencies( Collection<Artifact> dependencies, String inline )
     {
         if ( null == inline || "false".equalsIgnoreCase( inline ) )
         {
@@ -132,15 +125,15 @@
         }
         else
         {
-            for ( Iterator i = dependencies.iterator(); i.hasNext(); )
+            for ( Iterator<Artifact> i = dependencies.iterator(); i.hasNext(); )
             {
-                addInlinedPaths( ( Artifact ) i.next(), inline, m_inlinedPaths );
+                addInlinedPaths( i.next(), inline, m_inlinedPaths );
             }
         }
     }
 
 
-    private static void addInlinedPaths( Artifact dependency, String inline, Collection inlinedPaths )
+    private static void addInlinedPaths( Artifact dependency, String inline, Collection<String> inlinedPaths )
     {
         File path = dependency.getFile();
         if ( null != path && path.exists() )
@@ -252,13 +245,13 @@
     }
 
 
-    public Collection getInlinedPaths()
+    public Collection<String> getInlinedPaths()
     {
         return m_inlinedPaths;
     }
 
 
-    public Collection getEmbeddedArtifacts()
+    public Collection<Artifact> getEmbeddedArtifacts()
     {
         return m_embeddedArtifacts;
     }
diff --git a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/DependencyExcluder.java b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/DependencyExcluder.java
index dedd93d..1bcc8b1 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/DependencyExcluder.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/DependencyExcluder.java
@@ -22,12 +22,13 @@
 import java.util.Collection;
 import java.util.HashSet;
 
+import org.apache.maven.artifact.Artifact;
 import org.apache.maven.plugin.MojoExecutionException;
 
 
 /**
  * Exclude selected dependencies from the classpath passed to BND.
- * 
+ *
  * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public final class DependencyExcluder extends AbstractDependencyFilter
@@ -35,14 +36,14 @@
     /**
      * Excluded artifacts.
      */
-    private final Collection m_excludedArtifacts;
+    private final Collection<Artifact> m_excludedArtifacts;
 
 
-    public DependencyExcluder( Collection dependencyArtifacts )
+    public DependencyExcluder( Collection<Artifact> dependencyArtifacts )
     {
         super( dependencyArtifacts );
 
-        m_excludedArtifacts = new HashSet();
+        m_excludedArtifacts = new HashSet<Artifact>();
     }
 
 
@@ -58,13 +59,13 @@
 
 
     @Override
-    protected void processDependencies( Collection dependencies, String inline )
+    protected void processDependencies( Collection<Artifact> dependencies, String inline )
     {
         m_excludedArtifacts.addAll( dependencies );
     }
 
 
-    public Collection getExcludedArtifacts()
+    public Collection<Artifact> getExcludedArtifacts()
     {
         return m_excludedArtifacts;
     }
diff --git a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/InstructionsPlugin.java b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/InstructionsPlugin.java
index 55ae76e..baf69d3 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/InstructionsPlugin.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/InstructionsPlugin.java
@@ -34,14 +34,15 @@
 
 /**
  * Generate BND instructions for this project
- * 
+ *
  * @goal instructions
  * @requiresDependencyResolution test
  * @threadSafe
  */
 public class InstructionsPlugin extends BundlePlugin
 {
-    protected void execute( MavenProject project, Map instructions, Properties properties, Jar[] classpath )
+    @Override
+    protected void execute( MavenProject project, Map<String, String> instructions, Properties properties, Jar[] classpath )
         throws MojoExecutionException
     {
         if ( dumpInstructions == null )
diff --git a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/ManifestPlugin.java b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/ManifestPlugin.java
index 4bac2ab..de70107 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/ManifestPlugin.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/ManifestPlugin.java
@@ -43,7 +43,7 @@
 
 /**
  * Generate an OSGi manifest for this project
- * 
+ *
  * @goal manifest
  * @phase process-classes
  * @requiresDependencyResolution test
@@ -52,7 +52,7 @@
 public class ManifestPlugin extends BundlePlugin
 {
     /**
-     * When true, generate the manifest by rebuilding the full bundle in memory 
+     * When true, generate the manifest by rebuilding the full bundle in memory
      *
      * @parameter expression="${rebuildBundle}"
      */
@@ -60,7 +60,7 @@
 
 
     @Override
-    protected void execute( MavenProject project, Map instructions, Properties properties, Jar[] classpath )
+    protected void execute( MavenProject project, Map<String, String> instructions, Properties properties, Jar[] classpath )
         throws MojoExecutionException
     {
         Manifest manifest;
@@ -104,11 +104,11 @@
     public Manifest getManifest( MavenProject project, Jar[] classpath ) throws IOException, MojoFailureException,
         MojoExecutionException, Exception
     {
-        return getManifest( project, new LinkedHashMap(), new Properties(), classpath );
+        return getManifest( project, new LinkedHashMap<String, String>(), new Properties(), classpath );
     }
 
 
-    public Manifest getManifest( MavenProject project, Map instructions, Properties properties, Jar[] classpath )
+    public Manifest getManifest( MavenProject project, Map<String, String> instructions, Properties properties, Jar[] classpath )
         throws IOException, MojoFailureException, MojoExecutionException, Exception
     {
         Analyzer analyzer = getAnalyzer( project, instructions, properties, classpath );
@@ -152,11 +152,11 @@
     protected Analyzer getAnalyzer( MavenProject project, Jar[] classpath ) throws IOException, MojoExecutionException,
         Exception
     {
-        return getAnalyzer( project, new LinkedHashMap(), new Properties(), classpath );
+        return getAnalyzer( project, new LinkedHashMap<String, String>(), new Properties(), classpath );
     }
 
 
-    protected Analyzer getAnalyzer( MavenProject project, Map instructions, Properties properties, Jar[] classpath )
+    protected Analyzer getAnalyzer( MavenProject project, Map<String, String> instructions, Properties properties, Jar[] classpath )
         throws IOException, MojoExecutionException, Exception
     {
         if ( rebuildBundle && supportedProjectTypes.contains( project.getArtifact().getType() ) )
diff --git a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/ManifestWriter.java b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/ManifestWriter.java
index d90dfda9..7999789 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/ManifestWriter.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/ManifestWriter.java
@@ -196,55 +196,4 @@
             writeEntry(out, entry.getKey(), entry.getValue(), nice);
         }
     }
-
-    private static Manifest clean(Manifest org) {
-
-        Manifest result = new Manifest();
-        for (Map.Entry< ? , ? > entry : org.getMainAttributes().entrySet()) {
-            String nice = clean((String) entry.getValue());
-            result.getMainAttributes().put(entry.getKey(), nice);
-        }
-        for (String name : org.getEntries().keySet()) {
-            Attributes attrs = result.getAttributes(name);
-            if (attrs == null) {
-                attrs = new Attributes();
-                result.getEntries().put(name, attrs);
-            }
-
-            for (Map.Entry< ? , ? > entry : org.getAttributes(name).entrySet()) {
-                String nice = clean((String) entry.getValue());
-                attrs.put(entry.getKey(), nice);
-            }
-        }
-        return result;
-    }
-
-    private static String clean(String s) {
-        StringBuilder sb = new StringBuilder(s);
-        boolean changed = false;
-        boolean replacedPrev = false;
-        for ( int i=0; i<sb.length(); i++) {
-            char c = s.charAt(i);
-            switch(c) {
-            case 0:
-            case '\n':
-            case '\r':
-                changed = true;
-                if ( !replacedPrev ) {
-                    sb.replace(i, i+1, " ");
-                    replacedPrev= true;
-                } else
-                    sb.delete(i, i+1);
-                break;
-            default:
-                replacedPrev = false;
-                break;
-            }
-        }
-        if ( changed)
-            return sb.toString();
-        else
-            return s;
-    }
-
 }
diff --git a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/ScrPlugin.java b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/ScrPlugin.java
index f3fc73b..746e516 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/ScrPlugin.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/ScrPlugin.java
@@ -26,15 +26,9 @@
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.TreeSet;
-import java.util.regex.Pattern;
 
 import javax.xml.transform.Transformer;
 import javax.xml.transform.TransformerFactory;
@@ -42,17 +36,10 @@
 import javax.xml.transform.stream.StreamSource;
 
 import aQute.bnd.osgi.Analyzer;
-import aQute.bnd.osgi.Descriptors.PackageRef;
-import aQute.bnd.osgi.Jar;
 import aQute.bnd.osgi.Processor;
 import aQute.bnd.osgi.Resource;
 import aQute.bnd.service.AnalyzerPlugin;
 import aQute.libg.generics.Create;
-import org.apache.felix.utils.manifest.Attribute;
-import org.apache.felix.utils.manifest.Clause;
-import org.osgi.framework.Constants;
-
-import static org.apache.felix.utils.manifest.Parser.parseHeader;
 
 
 public class ScrPlugin implements AnalyzerPlugin
diff --git a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/VersionCleanerPlugin.java b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/VersionCleanerPlugin.java
index 05e7c0d..04c0f2b 100644
--- a/bundleplugin/src/main/java/org/apache/felix/bundleplugin/VersionCleanerPlugin.java
+++ b/bundleplugin/src/main/java/org/apache/felix/bundleplugin/VersionCleanerPlugin.java
@@ -45,7 +45,7 @@
      *
      * @parameter
      */
-    private Map versions = new LinkedHashMap();
+    private Map<String, String> versions = new LinkedHashMap<String, String>();
 
     /**
      * The Maven project.
@@ -73,10 +73,9 @@
 
     public void execute() throws MojoExecutionException, MojoFailureException
     {
-        for ( Object key : versions.keySet() )
+        for ( String name : versions.keySet() )
         {
-            String name = ( String ) key;
-            String version = ( String ) versions.get( key );
+            String version = versions.get( name );
             String osgi = maven2OsgiConverter.getVersion( version );
             project.getProperties().put( name, osgi );
         }