You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by de...@apache.org on 2017/09/17 18:05:31 UTC

[myfaces-trinidad-maven] 04/04: [Trinidad-2494] Switch plugin code to use generics

This is an automated email from the ASF dual-hosted git repository.

deki pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces-trinidad-maven.git

commit 4454c449daac293302bbef01bdb4a48649feecab
Author: Blake Sullivan <bs...@apache.org>
AuthorDate: Tue Jul 22 04:13:50 2014 +0000

    [Trinidad-2494] Switch plugin code to use generics
---
 .../plugin/faces/AbstractFacesMojo.java            | 123 ++++++++--------
 .../plugin/faces/GenerateComponentsMojo.java       |  14 +-
 .../plugin/faces/GenerateFaceletsTaglibsMojo.java  |  35 ++---
 .../plugin/faces/GenerateJspTaglibsMojo.java       | 108 +++++++--------
 .../plugin/faces/generator/ClassGenerator.java     |   2 +-
 .../component/AbstractComponentGenerator.java      |  39 +++---
 .../component/MyFacesComponentGenerator.java       |   9 +-
 .../component/TrinidadComponentGenerator.java      |  24 +++-
 .../taglib/AbstractComponentTagGenerator.java      |  50 +++----
 .../taglib/AbstractConverterTagGenerator.java      |   6 +-
 .../generator/taglib/ComponentTagGenerator.java    |   6 +-
 .../faces/generator/taglib/TagAttributeFilter.java |   8 +-
 .../plugin/faces/parse/AttributeBean.java          |   1 -
 .../plugin/faces/parse/ComponentBean.java          |   8 +-
 .../plugin/faces/parse/FacesConfigBean.java        |   4 +-
 .../plugin/faces/util/AttributeFilter.java         |  33 -----
 .../plugin/faces/util/ComponentFilter.java         |  33 -----
 .../plugin/faces/util/CompoundIterator.java        |  21 +--
 .../plugin/faces/util/ConverterFilter.java         |  33 -----
 .../plugin/faces/util/FacetFilter.java             |  33 -----
 .../trinidadbuild/plugin/faces/util/Filter.java    |   4 +-
 .../plugin/faces/util/FilteredIterator.java        |  21 +--
 .../plugin/faces/util/PropertyFilter.java          |  33 -----
 .../plugin/faces/util/RendererFilter.java          |  33 -----
 .../plugin/faces/util/SortedIterator.java          |  17 ++-
 .../trinidadbuild/plugin/faces/util/Util.java      |   4 +-
 .../plugin/faces/util/ValidatorFilter.java         |  33 -----
 .../trinidadbuild/plugin/tagdoc/TagdocReport.java  | 154 ++++++++++-----------
 .../plugin/xrts/AbstractGenerateSourcesMojo.java   |  13 +-
 .../plugin/xrts/GenerateSourcesMojo.java           |   6 +
 .../plugin/xrts/GenerateTestSourcesMojo.java       |   6 +
 .../trinidadbuild/plugin/xrts/ListRTSWriter.java   |  14 +-
 .../trinidadbuild/plugin/xrts/RTSWriter.java       |   8 +-
 .../trinidadbuild/plugin/xrts/XRTSGenerator.java   |   5 +-
 .../trinidadbuild/plugin/xrts/XRTSParser.java      |  13 +-
 35 files changed, 378 insertions(+), 576 deletions(-)

diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/AbstractFacesMojo.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/AbstractFacesMojo.java
index 8490279..e171027 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/AbstractFacesMojo.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/AbstractFacesMojo.java
@@ -55,11 +55,8 @@ import org.apache.myfaces.trinidadbuild.plugin.faces.parse.ConverterBean;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.FacesConfigBean;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.FacesConfigParser;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.ValidatorBean;
-import org.apache.myfaces.trinidadbuild.plugin.faces.util.AttributeFilter;
-import org.apache.myfaces.trinidadbuild.plugin.faces.util.ComponentFilter;
-import org.apache.myfaces.trinidadbuild.plugin.faces.util.ConverterFilter;
+import org.apache.myfaces.trinidadbuild.plugin.faces.util.Filter;
 import org.apache.myfaces.trinidadbuild.plugin.faces.util.Util;
-import org.apache.myfaces.trinidadbuild.plugin.faces.util.ValidatorFilter;
 import org.apache.myfaces.trinidadbuild.plugin.faces.util.XIncludeFilter;
 
 import org.codehaus.plexus.util.FileUtils;
@@ -70,7 +67,7 @@ import org.xml.sax.SAXException;
 
 abstract public class AbstractFacesMojo extends AbstractMojo
 {
-  protected List getCompileDependencyResources(
+  protected List<URL> getCompileDependencyResources(
     MavenProject project,
     String       resourcePath) throws MojoExecutionException
   {
@@ -78,7 +75,7 @@ abstract public class AbstractFacesMojo extends AbstractMojo
     {
       ClassLoader cl = createCompileClassLoader(project);
       Enumeration e = cl.getResources(resourcePath);
-      List urls = new ArrayList();
+      List<URL> urls = new ArrayList<URL>();
       while (e.hasMoreElements())
       {
         URL url = (URL)e.nextElement();
@@ -98,7 +95,7 @@ abstract public class AbstractFacesMojo extends AbstractMojo
     MavenProject project,
     String       resourceRoot)
   {
-    List resources = project.getBuild().getResources();
+    List<Resource> resources = project.getBuild().getResources();
     Resource resource = new Resource();
     resource.setDirectory(resourceRoot);
     resources.add(resource);
@@ -108,21 +105,23 @@ abstract public class AbstractFacesMojo extends AbstractMojo
    * @deprecated
    */
   protected URL[] readIndex(
-    MavenProject project,
-    String       resourcePath) throws MojoExecutionException
+    MavenProject project, @SuppressWarnings("unused") String resourcePath) throws MojoExecutionException
   {
     return readIndex(project);
   }
 
-  protected List getMasterConfigs(
+  protected List<URL> getMasterConfigs(
     MavenProject project) throws MojoExecutionException
   {
     if (localResource != null)
     {
-      List urls = new ArrayList();
-      try {
+      List<URL> urls = new ArrayList<URL>();
+      try
+      {
         urls.add(localResource.toURL());
-      } catch (MalformedURLException e) {
+      }
+      catch (MalformedURLException e)
+      {
         getLog().error("", e);
       }
       return urls;
@@ -140,7 +139,7 @@ abstract public class AbstractFacesMojo extends AbstractMojo
     try
     {
       // 1. read master faces-config.xml resources
-      List masters = getMasterConfigs(project);
+      List<URL> masters = getMasterConfigs(project);
       if (masters.isEmpty())
       {
         getLog().warn("Master faces-config.xml not found");
@@ -148,14 +147,14 @@ abstract public class AbstractFacesMojo extends AbstractMojo
       }
       else
       {
-        List entries = new LinkedList();
+        List<URL> entries = new LinkedList<URL>();
 
         SAXParserFactory spf = SAXParserFactory.newInstance();
         spf.setNamespaceAware(true);
         // requires JAXP 1.3, in JavaSE 5.0
         // spf.setXIncludeAware(false);
 
-        for (Iterator<URL> i=masters.iterator(); i.hasNext();)
+        for (Iterator<URL> i = masters.iterator(); i.hasNext();)
         {
           URL url = i.next();
           Digester digester = new Digester(spf.newSAXParser());
@@ -173,7 +172,7 @@ abstract public class AbstractFacesMojo extends AbstractMojo
           digester.parse(url.openStream());
         }
 
-        return (URL[])entries.toArray(new URL[0]);
+        return entries.toArray(new URL[entries.size()]);
       }
     }
     catch (ParserConfigurationException e)
@@ -370,10 +369,13 @@ abstract public class AbstractFacesMojo extends AbstractMojo
 
     try
     {
-      List classpathElements = project.getCompileClasspathElements();
-      if (!classpathElements.isEmpty())
+      List<String> classpathElements = project.getCompileClasspathElements();
+      
+      int classpathElementCount = classpathElements.size();
+      
+      if (classpathElementCount > 0)
       {
-        String[] entries = (String[])classpathElements.toArray(new String[0]);
+        String[] entries = classpathElements.toArray(new String[classpathElementCount]);
         URL[] urls = new URL[entries.length];
         for (int i=0; i < urls.length; i++)
         {
@@ -394,10 +396,10 @@ abstract public class AbstractFacesMojo extends AbstractMojo
     return cl;
   }
 
-  protected class SkipFilter extends ComponentFilter
+  protected class SkipFilter implements Filter<ComponentBean>
   {
-    protected boolean accept(
-      ComponentBean component)
+    @Override
+    public boolean accept(ComponentBean component)
     {
       String componentType = component.getComponentType();
 
@@ -408,7 +410,7 @@ abstract public class AbstractFacesMojo extends AbstractMojo
     }
   }
 
-  static final protected class ComponentTypeFilter extends ComponentFilter
+  static final protected class ComponentTypeFilter implements Filter<ComponentBean>
   {
     public ComponentTypeFilter(
       String typePrefix)
@@ -416,16 +418,17 @@ abstract public class AbstractFacesMojo extends AbstractMojo
       _typePrefix = typePrefix;
     }
 
-    protected boolean accept(
-      ComponentBean component)
+    @Override
+    public boolean accept(ComponentBean component)
     {
       String componentType = component.getComponentType();
       return (componentType.startsWith(_typePrefix));
     }
-     private final String _typePrefix;
+    
+    private final String _typePrefix;
   }
 
-  static final protected class ComponentClassFilter extends ComponentFilter
+  static final protected class ComponentClassFilter implements Filter<ComponentBean>
   {
     public ComponentClassFilter(
       String packageContains)
@@ -433,8 +436,8 @@ abstract public class AbstractFacesMojo extends AbstractMojo
       _packageContains = packageContains;
     }
 
-    protected boolean accept(
-      ComponentBean component)
+    @Override
+    public boolean accept(ComponentBean component)
     {
       String componentClass = component.getComponentClass();
       String packageName = Util.getPackageFromFullClass(componentClass);
@@ -446,7 +449,7 @@ abstract public class AbstractFacesMojo extends AbstractMojo
     private final String _packageContains;
   }
 
-  static final protected class ComponentTagClassFilter extends ComponentFilter
+  static final protected class ComponentTagClassFilter implements Filter<ComponentBean>
   {
     public ComponentTagClassFilter(
       String packageContains)
@@ -454,8 +457,8 @@ abstract public class AbstractFacesMojo extends AbstractMojo
       _packageContains = packageContains;
     }
 
-    protected boolean accept(
-      ComponentBean component)
+    @Override
+    public boolean accept(ComponentBean component)
     {
       String tagClass = component.getTagClass();
       String packageName = Util.getPackageFromFullClass(tagClass);
@@ -467,7 +470,7 @@ abstract public class AbstractFacesMojo extends AbstractMojo
     private final String _packageContains;
   }
 
-  static final protected class ConverterTagClassFilter extends ConverterFilter
+  static final protected class ConverterTagClassFilter implements Filter<ConverterBean>
   {
     public ConverterTagClassFilter(
       String packageContains)
@@ -475,8 +478,8 @@ abstract public class AbstractFacesMojo extends AbstractMojo
       _packageContains = packageContains;
     }
 
-    protected boolean accept(
-      ConverterBean converter)
+    @Override
+    public boolean accept(ConverterBean converter)
     {
       String tagClass = converter.getTagClass();
       String packageName = Util.getPackageFromFullClass(tagClass);
@@ -488,7 +491,7 @@ abstract public class AbstractFacesMojo extends AbstractMojo
     private final String _packageContains;
   }
 
-  static final protected class ValidatorTagClassFilter extends ValidatorFilter
+  static final protected class ValidatorTagClassFilter implements Filter<ValidatorBean>
   {
     public ValidatorTagClassFilter(
       String packageContains)
@@ -496,8 +499,8 @@ abstract public class AbstractFacesMojo extends AbstractMojo
       _packageContains = packageContains;
     }
 
-    protected boolean accept(
-      ValidatorBean validator)
+    @Override
+    public boolean accept(ValidatorBean validator)
     {
       String tagClass = validator.getTagClass();
       String packageName = Util.getPackageFromFullClass(tagClass);
@@ -511,34 +514,34 @@ abstract public class AbstractFacesMojo extends AbstractMojo
 
 
 
-  static final protected class ComponentTagFilter extends ComponentFilter
+  static final protected class ComponentTagFilter implements Filter<ComponentBean>
   {
-    protected boolean accept(
-      ComponentBean component)
+    @Override
+    public boolean accept(ComponentBean component)
     {
       return (component.getTagClass() != null);
     }
   }
 
-  static final protected class ConverterTagFilter extends ConverterFilter
+  static final protected class ConverterTagFilter implements Filter<ConverterBean>
   {
-    protected boolean accept(
-      ConverterBean converter)
+    @Override
+    public boolean accept(ConverterBean converter)
     {
       return (converter.getTagClass() != null);
     }
   }
 
-  static final protected class ValidatorTagFilter extends ValidatorFilter
+  static final protected class ValidatorTagFilter implements Filter<ValidatorBean>
   {
-    protected boolean accept(
-      ValidatorBean validator)
+    @Override
+    public boolean accept(ValidatorBean validator)
     {
       return (validator.getTagClass() != null);
     }
   }
 
-  static final protected class ComponentTagLibraryFilter extends ComponentFilter
+  static final protected class ComponentTagLibraryFilter implements Filter<ComponentBean>
   {
     public ComponentTagLibraryFilter(
       String namespaceURI)
@@ -554,8 +557,8 @@ abstract public class AbstractFacesMojo extends AbstractMojo
       _requireTagClass = requireTagClass;
     }
 
-    protected boolean accept(
-      ComponentBean component)
+    @Override
+    public boolean accept(ComponentBean component)
     {
       QName tagName = component.getTagName();
       String tagClass = component.getTagClass();
@@ -571,7 +574,7 @@ abstract public class AbstractFacesMojo extends AbstractMojo
     private final boolean _requireTagClass;
   }
 
-  static final protected class ValidatorTagLibraryFilter extends ValidatorFilter
+  static final protected class ValidatorTagLibraryFilter implements Filter<ValidatorBean>
   {
     public ValidatorTagLibraryFilter(
       String namespaceURI)
@@ -587,8 +590,8 @@ abstract public class AbstractFacesMojo extends AbstractMojo
       _requireTagClass = requireTagClass;
     }
 
-    protected boolean accept(
-      ValidatorBean validator)
+    @Override
+    public boolean accept(ValidatorBean validator)
     {
       QName tagName = validator.getTagName();
       String tagClass = validator.getTagClass();
@@ -604,7 +607,7 @@ abstract public class AbstractFacesMojo extends AbstractMojo
     private final boolean _requireTagClass;
   }
 
-  static final protected class ConverterTagLibraryFilter extends ConverterFilter
+  static final protected class ConverterTagLibraryFilter implements Filter<ConverterBean>
   {
     public ConverterTagLibraryFilter(
       String namespaceURI)
@@ -620,8 +623,8 @@ abstract public class AbstractFacesMojo extends AbstractMojo
       _requireTagClass = requireTagClass;
     }
 
-    protected boolean accept(
-      ConverterBean converter)
+    @Override
+    public boolean accept(ConverterBean converter)
     {
       QName tagName = converter.getTagName();
       String tagClass = converter.getTagClass();
@@ -637,10 +640,10 @@ abstract public class AbstractFacesMojo extends AbstractMojo
     private final boolean _requireTagClass;
   }
 
-  static protected class VirtualAttributeFilter extends AttributeFilter
+  static protected class VirtualAttributeFilter implements Filter<AttributeBean>
   {
-    protected boolean accept(
-      AttributeBean attribute)
+    @Override
+    public boolean accept(AttributeBean attribute)
     {
       return !attribute.isVirtual();
     }
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateComponentsMojo.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateComponentsMojo.java
index e0342cb..63256cb 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateComponentsMojo.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateComponentsMojo.java
@@ -36,7 +36,7 @@ import org.apache.myfaces.trinidadbuild.plugin.faces.generator.component.Trinida
 import org.apache.myfaces.trinidadbuild.plugin.faces.io.PrettyWriter;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.ComponentBean;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.FacesConfigBean;
-import org.apache.myfaces.trinidadbuild.plugin.faces.util.ComponentFilter;
+import org.apache.myfaces.trinidadbuild.plugin.faces.util.Filter;
 import org.apache.myfaces.trinidadbuild.plugin.faces.util.FilteredIterator;
 import org.apache.myfaces.trinidadbuild.plugin.faces.util.SourceTemplate;
 import org.apache.myfaces.trinidadbuild.plugin.faces.util.Util;
@@ -86,13 +86,13 @@ public class GenerateComponentsMojo extends AbstractFacesMojo
         getLog().warn("Event listener methods will not be generated");
 
       Iterator<ComponentBean> components = facesConfig.components();
-      components = new FilteredIterator(components, new SkipFilter());
-      components = new FilteredIterator(components,
+      components = new FilteredIterator<ComponentBean>(components, new SkipFilter());
+      components = new FilteredIterator<ComponentBean>(components,
                                         new ComponentTypeFilter(typePrefix));
 
       // incremental unless forced
       if (!force)
-        components = new FilteredIterator(components, new IfModifiedFilter());
+        components = new FilteredIterator<ComponentBean>(components, new IfModifiedFilter());
 
       if (!components.hasNext())
       {
@@ -315,10 +315,10 @@ public class GenerateComponentsMojo extends AbstractFacesMojo
     }
   }
 
-  private class IfModifiedFilter extends ComponentFilter
+  private class IfModifiedFilter implements Filter<ComponentBean>
   {
-    protected boolean accept(
-      ComponentBean component)
+    @Override
+    public boolean accept(ComponentBean component)
     {
       String componentClass = component.getComponentClass();
       String sourcePath = Util.convertClassToSourcePath(componentClass, ".java");
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateFaceletsTaglibsMojo.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateFaceletsTaglibsMojo.java
index a5997cd..adc337d 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateFaceletsTaglibsMojo.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateFaceletsTaglibsMojo.java
@@ -92,15 +92,18 @@ public class GenerateFaceletsTaglibsMojo extends AbstractFacesMojo
         String namespaceURI = (String)entry.getValue();
 
         FacesConfigBean facesConfig = getFacesConfig();
-        Iterator components = facesConfig.components();
-        components = new FilteredIterator(components, new SkipFilter());
-        components = new FilteredIterator(components, new ComponentTagLibraryFilter(namespaceURI, false));
+        Iterator<ComponentBean> components = facesConfig.components();
+        components = new FilteredIterator<ComponentBean>(components, new SkipFilter());
+        components = new FilteredIterator<ComponentBean>(components,
+                                                        new ComponentTagLibraryFilter(namespaceURI, false));
 
-        Iterator validators = facesConfig.validators();
-        validators = new FilteredIterator(validators, new ValidatorTagLibraryFilter(namespaceURI, false));
+        Iterator<ValidatorBean> validators = facesConfig.validators();
+        validators = new FilteredIterator<ValidatorBean>(validators,
+                                                         new ValidatorTagLibraryFilter(namespaceURI, false));
 
-        Iterator converters = facesConfig.converters();
-        converters = new FilteredIterator(converters, new ConverterTagLibraryFilter(namespaceURI, false));
+        Iterator<ConverterBean> converters = facesConfig.converters();
+        converters = new FilteredIterator<ConverterBean>(converters,
+                                                         new ConverterTagLibraryFilter(namespaceURI, false));
 
 
         String targetPath = "META-INF/" + shortName + ".taglib.xml";
@@ -340,11 +343,11 @@ public class GenerateFaceletsTaglibsMojo extends AbstractFacesMojo
 
     if (isJSF20PLus)
     {
-      Iterator properties = component.properties(true);
-      properties = new FilteredIterator(properties, new TagAttributeFilter());
+      Iterator<PropertyBean> properties = component.properties(true);
+      properties = new FilteredIterator<PropertyBean>(properties, new TagAttributeFilter());
       while (properties.hasNext())
       {
-        PropertyBean property = (PropertyBean)properties.next();
+        PropertyBean property = properties.next();
         writeTagAttribute(stream,
                            property.getPropertyName(),
                            property.getDescription(),
@@ -408,11 +411,11 @@ public class GenerateFaceletsTaglibsMojo extends AbstractFacesMojo
       // validators need an id attribute
       writeTagAttribute(stream, "id", "the identifier for the validator", null, null);
 
-      Iterator properties = validator.properties();
-      properties = new FilteredIterator(properties, new TagAttributeFilter());
+      Iterator<PropertyBean> properties = validator.properties();
+      properties = new FilteredIterator<PropertyBean>(properties, new TagAttributeFilter());
       while (properties.hasNext())
       {
-        PropertyBean property = (PropertyBean)properties.next();
+        PropertyBean property = properties.next();
         writeTagAttribute(stream,
                            property.getPropertyName(),
                            property.getDescription(),
@@ -476,11 +479,11 @@ public class GenerateFaceletsTaglibsMojo extends AbstractFacesMojo
       // converters need an id attribute
       writeTagAttribute(stream, "id", "the identifier for the converter", null, null);
 
-      Iterator properties = converter.properties();
-      properties = new FilteredIterator(properties, new TagAttributeFilter());
+      Iterator<PropertyBean> properties = converter.properties();
+      properties = new FilteredIterator<PropertyBean>(properties, new TagAttributeFilter());
       while (properties.hasNext())
       {
-        PropertyBean property = (PropertyBean)properties.next();
+        PropertyBean property = properties.next();
         writeTagAttribute(stream,
                            property.getPropertyName(),
                            property.getDescription(),
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateJspTaglibsMojo.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateJspTaglibsMojo.java
index a446b36..0b8bf40 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateJspTaglibsMojo.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateJspTaglibsMojo.java
@@ -69,12 +69,10 @@ import org.apache.myfaces.trinidadbuild.plugin.faces.parse.FacesConfigBean;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.MethodSignatureBean;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.PropertyBean;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.ValidatorBean;
-import org.apache.myfaces.trinidadbuild.plugin.faces.util.ComponentFilter;
-import org.apache.myfaces.trinidadbuild.plugin.faces.util.ConverterFilter;
+import org.apache.myfaces.trinidadbuild.plugin.faces.util.Filter;
 import org.apache.myfaces.trinidadbuild.plugin.faces.util.FilteredIterator;
 import org.apache.myfaces.trinidadbuild.plugin.faces.util.SourceTemplate;
 import org.apache.myfaces.trinidadbuild.plugin.faces.util.Util;
-import org.apache.myfaces.trinidadbuild.plugin.faces.util.ValidatorFilter;
 import org.apache.myfaces.trinidadbuild.plugin.faces.util.XIncludeFilter;
 
 import org.codehaus.plexus.util.FileUtils;
@@ -146,22 +144,22 @@ public class GenerateJspTaglibsMojo extends AbstractFacesMojo
 
       // taglibs map syntax requires distinct shortNames,
       // which is a Good Thing!
-      for (Iterator<Map.Entry> i = taglibs.entrySet().iterator(); i.hasNext(); )
+      for (Iterator<Map.Entry<String, String>> i = taglibs.entrySet().iterator(); i.hasNext(); )
       {
-        Map.Entry entry = i.next();
-        String shortName = (String)entry.getKey();
-        String namespaceURI = (String)entry.getValue();
+        Map.Entry<String, String> entry = i.next();
+        String shortName = entry.getKey();
+        String namespaceURI = entry.getValue();
 
         FacesConfigBean facesConfig = getFacesConfig();
-        Iterator components = facesConfig.components();
-        components = new FilteredIterator(components, new SkipFilter());
-        components = new FilteredIterator(components, new ComponentTagLibraryFilter(namespaceURI));
+        Iterator<ComponentBean> components = facesConfig.components();
+        components = new FilteredIterator<ComponentBean>(components, new SkipFilter());
+        components = new FilteredIterator<ComponentBean>(components, new ComponentTagLibraryFilter(namespaceURI));
 
-        Iterator validators = facesConfig.validators();
-        validators = new FilteredIterator(validators, new ValidatorTagLibraryFilter(namespaceURI));
+        Iterator<ValidatorBean> validators = facesConfig.validators();
+        validators = new FilteredIterator<ValidatorBean>(validators, new ValidatorTagLibraryFilter(namespaceURI));
 
-        Iterator converters = facesConfig.converters();
-        converters = new FilteredIterator(converters, new ConverterTagLibraryFilter(namespaceURI));
+        Iterator<ConverterBean> converters = facesConfig.converters();
+        converters = new FilteredIterator<ConverterBean>(converters, new ConverterTagLibraryFilter(namespaceURI));
 
         String targetPath = "META-INF/" + shortName + ".tld";
         File targetFile = new File(generatedResourcesDirectory, targetPath);
@@ -191,17 +189,17 @@ public class GenerateJspTaglibsMojo extends AbstractFacesMojo
           stream.writeEndElement();
           while (components.hasNext())
           {
-            ComponentBean component = (ComponentBean)components.next();
+            ComponentBean component = components.next();
             _writeTag(stream, component);
           }
           while (converters.hasNext())
           {
-            ConverterBean converter = (ConverterBean)converters.next();
+            ConverterBean converter = converters.next();
             _writeTag(stream, converter);
           }
           while (validators.hasNext())
           {
-            ValidatorBean validator = (ValidatorBean)validators.next();
+            ValidatorBean validator = validators.next();
             _writeTag(stream, validator);
           }
           _writeEndTagLibrary(stream);
@@ -260,17 +258,17 @@ public class GenerateJspTaglibsMojo extends AbstractFacesMojo
           _writeStartTagLibrary(stream, !JsfVersion.isJSF11(jsfVersion) ? "2.1" : "1.2", shortName, namespaceURI);
           while (components.hasNext())
           {
-            ComponentBean component = (ComponentBean)components.next();
+            ComponentBean component = components.next();
             _writeTag(stream, component);
           }
           while (converters.hasNext())
           {
-            ConverterBean converter = (ConverterBean)converters.next();
+            ConverterBean converter = converters.next();
             _writeTag(stream, converter);
           }
           while (validators.hasNext())
           {
-            ValidatorBean validator = (ValidatorBean)validators.next();
+            ValidatorBean validator = validators.next();
             _writeTag(stream, validator);
           }
           _writeEndTagLibrary(stream);
@@ -433,11 +431,11 @@ public class GenerateJspTaglibsMojo extends AbstractFacesMojo
       stream.writeEndElement();
     }
 
-    Iterator properties = component.properties(true);
-    properties = new FilteredIterator(properties, new TagAttributeFilter());
+    Iterator<PropertyBean> properties = component.properties(true);
+    properties = new FilteredIterator<PropertyBean>(properties, new TagAttributeFilter());
     while (properties.hasNext())
     {
-      PropertyBean property = (PropertyBean)properties.next();
+      PropertyBean property = properties.next();
       writeTagAttribute(stream,
                          property.getPropertyName(),
                          property.getDescription(),
@@ -496,7 +494,7 @@ public class GenerateJspTaglibsMojo extends AbstractFacesMojo
     writeTagAttribute(stream, "id", "the identifier for the converter", null, null);
 
     Iterator<PropertyBean> properties = converter.properties();
-    properties = new FilteredIterator(properties, new TagAttributeFilter());
+    properties = new FilteredIterator<PropertyBean>(properties, new TagAttributeFilter());
     while (properties.hasNext())
     {
       PropertyBean property = properties.next();
@@ -708,7 +706,7 @@ public class GenerateJspTaglibsMojo extends AbstractFacesMojo
     writeTagAttribute(stream, "id", "the identifier for the validator", null, null);
 
     Iterator<PropertyBean> properties = validator.properties();
-    properties = new FilteredIterator(properties, new TagAttributeFilter());
+    properties = new FilteredIterator<PropertyBean>(properties, new TagAttributeFilter());
     while (properties.hasNext())
     {
       PropertyBean property = properties.next();
@@ -738,25 +736,25 @@ public class GenerateJspTaglibsMojo extends AbstractFacesMojo
     }
     else
     {
-      Iterator components = facesConfig.components();
-      components = new FilteredIterator(components, new SkipFilter());
-      components = new FilteredIterator(components, new ComponentTagFilter());
-      components = new FilteredIterator(components, new ComponentTagClassFilter(packageContains));
+      Iterator<ComponentBean> components = facesConfig.components();
+      components = new FilteredIterator<ComponentBean>(components, new SkipFilter());
+      components = new FilteredIterator<ComponentBean>(components, new ComponentTagFilter());
+      components = new FilteredIterator<ComponentBean>(components, new ComponentTagClassFilter(packageContains));
 
-      Iterator validators = facesConfig.validators();
-      validators = new FilteredIterator(validators, new ValidatorTagFilter());
-      validators = new FilteredIterator(validators, new ValidatorTagClassFilter(packageContains));
+      Iterator<ValidatorBean> validators = facesConfig.validators();
+      validators = new FilteredIterator<ValidatorBean>(validators, new ValidatorTagFilter());
+      validators = new FilteredIterator<ValidatorBean>(validators, new ValidatorTagClassFilter(packageContains));
 
-      Iterator converters = facesConfig.converters();
-      converters = new FilteredIterator(converters, new ConverterTagFilter());
-      converters = new FilteredIterator(converters, new ConverterTagClassFilter(packageContains));
+      Iterator<ConverterBean> converters = facesConfig.converters();
+      converters = new FilteredIterator<ConverterBean>(converters, new ConverterTagFilter());
+      converters = new FilteredIterator<ConverterBean>(converters, new ConverterTagClassFilter(packageContains));
 
       // incremental unless forced
       if (!force)
       {
-        components = new FilteredIterator(components, new IfComponentModifiedFilter());
-        converters = new FilteredIterator(converters, new IfConverterModifiedFilter());
-        validators = new FilteredIterator(validators, new IfValidatorModifiedFilter());
+        components = new FilteredIterator<ComponentBean>(components, new IfComponentModifiedFilter());
+        converters = new FilteredIterator<ConverterBean>(converters, new IfConverterModifiedFilter());
+        validators = new FilteredIterator<ValidatorBean>(validators, new IfValidatorModifiedFilter());
       }
 
       if (!components.hasNext() && !converters.hasNext() && !validators.hasNext())
@@ -781,17 +779,17 @@ public class GenerateJspTaglibsMojo extends AbstractFacesMojo
         int count = 0;
         while (components.hasNext())
         {
-          componentGen.generateTagHandler((ComponentBean)components.next());
+          componentGen.generateTagHandler(components.next());
           count++;
         }
         while (converters.hasNext())
         {
-          converterGen.generateTagHandler((ConverterBean)converters.next(), generatedSourceDirectory);
+          converterGen.generateTagHandler(converters.next(), generatedSourceDirectory);
           count++;
         }
         while (validators.hasNext())
         {
-          validatorGen.generateTagHandler((ValidatorBean)validators.next(), generatedSourceDirectory);
+          validatorGen.generateTagHandler(validators.next(), generatedSourceDirectory);
           count++;
         }
         getLog().info("Generated " + count + " JSP tag(s)");
@@ -801,10 +799,10 @@ public class GenerateJspTaglibsMojo extends AbstractFacesMojo
 
   class ComponentTagHandlerGenerator
   {
-    private Set initComponentList(ComponentBean component,
+    private Set<ComponentBean> initComponentList(ComponentBean component,
                                   String fullSuperclassName)
     {
-      Set componentList = new HashSet();
+      Set<ComponentBean> componentList = new HashSet<ComponentBean>();
       componentList.add(component);
 
       ComponentBean lBean = component;
@@ -822,7 +820,7 @@ public class GenerateJspTaglibsMojo extends AbstractFacesMojo
     public void generateTagHandler(ComponentBean component)
     {
       ComponentTagGenerator generator;
-      Set componentList;
+      Set<ComponentBean> componentList;
 
       String fullSuperclassName = component.findJspTagSuperclass();
       if (fullSuperclassName == null)
@@ -946,10 +944,10 @@ public class GenerateJspTaglibsMojo extends AbstractFacesMojo
     }
   }
 
-  private class IfComponentModifiedFilter extends ComponentFilter
+  private class IfComponentModifiedFilter implements Filter<ComponentBean>
   {
-    protected boolean accept(
-      ComponentBean component)
+    @Override
+    public boolean accept(ComponentBean component)
     {
       String tagClass = component.getTagClass();
 
@@ -966,10 +964,10 @@ public class GenerateJspTaglibsMojo extends AbstractFacesMojo
     }
   }
 
-  private class IfConverterModifiedFilter extends ConverterFilter
+  private class IfConverterModifiedFilter implements Filter<ConverterBean>
   {
-    protected boolean accept(
-      ConverterBean converter)
+    @Override
+    public boolean accept(ConverterBean converter)
     {
       String tagClass = converter.getTagClass();
       String sourcePath = Util.convertClassToSourcePath(tagClass, ".java");
@@ -983,10 +981,10 @@ public class GenerateJspTaglibsMojo extends AbstractFacesMojo
     }
   }
 
-  private class IfValidatorModifiedFilter extends ValidatorFilter
+  private class IfValidatorModifiedFilter implements Filter<ValidatorBean>
   {
-    protected boolean accept(
-      ValidatorBean validator)
+    @Override
+    public boolean accept(ValidatorBean validator)
     {
       String tagClass = validator.getTagClass();
       String sourcePath = Util.convertClassToSourcePath(tagClass, ".java");
@@ -1114,7 +1112,7 @@ public class GenerateJspTaglibsMojo extends AbstractFacesMojo
    * @parameter
    * @required
    */
-  protected Map taglibs;
+  protected Map<String, String> taglibs;
 
   /**
    * @parameter expression="META-INF/maven-faces-plugin/faces-config.xml"
@@ -1205,7 +1203,7 @@ public class GenerateJspTaglibsMojo extends AbstractFacesMojo
     "          xpointer CDATA #IMPLIED>\n" +
     "]>\n";
 
-  static final private Set _CAN_COERCE = new HashSet();
+  static final private Set<String> _CAN_COERCE = new HashSet<String>();
   static
   {
     // What?  Can't coerce Strings?  How could that be?  Well, take a look at:
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/ClassGenerator.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/ClassGenerator.java
index 8d3b50b..c50bb98 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/ClassGenerator.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/ClassGenerator.java
@@ -47,7 +47,7 @@ public interface ClassGenerator
       String packageName,
       String fullSuperclassName,
       String superclassName,
-      Collection components);
+      Collection<ComponentBean> components);
 
   void writeClassBegin(
       PrettyWriter out,
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/component/AbstractComponentGenerator.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/component/AbstractComponentGenerator.java
index b710843..6300ab5 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/component/AbstractComponentGenerator.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/component/AbstractComponentGenerator.java
@@ -42,8 +42,8 @@ import org.apache.myfaces.trinidadbuild.plugin.faces.parse.EventBean;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.EventRefBean;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.FacetBean;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.PropertyBean;
+import org.apache.myfaces.trinidadbuild.plugin.faces.util.Filter;
 import org.apache.myfaces.trinidadbuild.plugin.faces.util.FilteredIterator;
-import org.apache.myfaces.trinidadbuild.plugin.faces.util.PropertyFilter;
 import org.apache.myfaces.trinidadbuild.plugin.faces.util.SourceTemplate;
 import org.apache.myfaces.trinidadbuild.plugin.faces.util.Util;
 
@@ -186,7 +186,7 @@ public abstract class AbstractComponentGenerator implements ComponentGenerator
     out.println(classStart + " class " + className +
         " extends " + superclassName);
 
-    Set interfaces = new HashSet();
+    Set<String> interfaces = new HashSet<String>();
     if (template != null)
       interfaces.addAll(template.getImplements());
 
@@ -214,7 +214,7 @@ public abstract class AbstractComponentGenerator implements ComponentGenerator
 
     if (!interfaces.isEmpty())
     {
-      Set implementsSet = new HashSet();
+      Set<String> implementsSet = new HashSet<String>();
       for (Iterator iter = interfaces.iterator(); iter.hasNext();)
       {
         String fcqn = (String) iter.next();
@@ -269,7 +269,7 @@ public abstract class AbstractComponentGenerator implements ComponentGenerator
       String superclassName,
       ComponentBean component)
   {
-    Set imports = new TreeSet();
+    Set<String> imports = new TreeSet<String>();
 
     // Use the template imports
     if (template != null)
@@ -292,7 +292,7 @@ public abstract class AbstractComponentGenerator implements ComponentGenerator
     }
 
     Iterator<PropertyBean> properties = component.properties();
-    properties = new FilteredIterator(properties, new NonVirtualFilter());
+    properties = new FilteredIterator<PropertyBean>(properties, new NonVirtualFilter());
     // PropertyKey only needed if there are properties
     if (properties.hasNext())
     {
@@ -366,14 +366,13 @@ public abstract class AbstractComponentGenerator implements ComponentGenerator
     GeneratorHelper.writeImports(out, packageName, imports);
   }
 
-  protected void addSpecificImports(
-      Set imports,
-      ComponentBean component)
+  protected void addSpecificImports(@SuppressWarnings("unused") Set<String> imports,
+                                    @SuppressWarnings("unused") ComponentBean component)
   {
     // nothing by default
   }
 
-  public void addGenericImports(Set imports, String type)
+  public void addGenericImports(Set<String> imports, String type)
   {
     Matcher matcher = _GENERIC_TYPE.matcher(type);
     if (matcher.matches())
@@ -422,7 +421,7 @@ public abstract class AbstractComponentGenerator implements ComponentGenerator
   {
     //  component property keys
     Iterator<PropertyBean> properties = component.properties();
-    properties = new FilteredIterator(properties, new NonVirtualFilter());
+    properties = new FilteredIterator<PropertyBean>(properties, new NonVirtualFilter());
     while (properties.hasNext())
     {
       PropertyBean property = properties.next();
@@ -672,11 +671,11 @@ public abstract class AbstractComponentGenerator implements ComponentGenerator
       throws IOException
   {
     Iterator<PropertyBean> properties = component.properties();
-    properties = new FilteredIterator(properties, new NonVirtualFilter());
+    properties = new FilteredIterator<PropertyBean>(properties, new NonVirtualFilter());
     if (isAccessorMethodFinal())
     {
       // Do not generate property methods if they are final and the properties are overrides
-      properties = new FilteredIterator(properties, new NonOverriddenFilter());
+      properties = new FilteredIterator<PropertyBean>(properties, new NonOverriddenFilter());
     }
     while (properties.hasNext())
     {
@@ -1220,11 +1219,10 @@ public abstract class AbstractComponentGenerator implements ComponentGenerator
    return buff.toString();
   }
 
-  protected class ResolvableTypeFilter extends PropertyFilter
+  protected class ResolvableTypeFilter implements Filter<PropertyBean>
   {
     @Override
-    protected boolean accept(
-        PropertyBean property)
+    public boolean accept(PropertyBean property)
     {
       String propertyClass = property.getPropertyClass();
       String resolvableType = resolveType(propertyClass);
@@ -1232,22 +1230,19 @@ public abstract class AbstractComponentGenerator implements ComponentGenerator
     }
   }
 
-  protected class NonVirtualFilter extends PropertyFilter
+  protected class NonVirtualFilter implements Filter<PropertyBean>
   {
     @Override
-    protected boolean accept(
-        PropertyBean property)
+    public boolean accept(PropertyBean property)
     {
       return (!property.isVirtual());
     }
   }
 
-  protected static class NonOverriddenFilter
-    extends PropertyFilter
+  protected static class NonOverriddenFilter implements Filter<PropertyBean>
   {
     @Override
-    protected boolean accept(
-      PropertyBean property)
+    public boolean accept(PropertyBean property)
     {
       return (!property.isOverride());
     }
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/component/MyFacesComponentGenerator.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/component/MyFacesComponentGenerator.java
index 47e4773..c9abafe 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/component/MyFacesComponentGenerator.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/component/MyFacesComponentGenerator.java
@@ -44,8 +44,8 @@ public class MyFacesComponentGenerator extends AbstractComponentGenerator
     super(log, is12);
   }
 
-
-  protected void addSpecificImports(Set imports, ComponentBean component)
+  @Override
+  protected void addSpecificImports(Set<String> imports, ComponentBean component)
   {
     imports.add("javax.faces.context.FacesContext");
     imports.add("javax.el.ValueExpression");
@@ -62,6 +62,7 @@ public class MyFacesComponentGenerator extends AbstractComponentGenerator
     }
   }
 
+  @Override
   public void writePropertyDeclaration(PrettyWriter out,
                                        PropertyBean property) throws IOException
   {
@@ -83,6 +84,7 @@ public class MyFacesComponentGenerator extends AbstractComponentGenerator
     }
   }
 
+  @Override
   public void writeStateManagementMethods(PrettyWriter out,
                                           ComponentBean component) throws IOException
   {
@@ -95,6 +97,7 @@ public class MyFacesComponentGenerator extends AbstractComponentGenerator
     writeRestoreState(out, component);
   }
 
+  @Override
   public void writePropertyListMethods(
       PrettyWriter out,
       PropertyBean property) throws IOException
@@ -102,11 +105,13 @@ public class MyFacesComponentGenerator extends AbstractComponentGenerator
     // nothing
   }
 
+  @Override
   protected void writeConstructorContent(PrettyWriter out, ComponentBean component, int modifiers, String rendererType) throws IOException
   {
     out.println("setRendererType(" + rendererType + ");");
   }
 
+  @Override
   protected void writePropertyListMethods(PrettyWriter out, PropertyBean property, Collection ignoreList)
   {
     String propName = property.getPropertyName();
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/component/TrinidadComponentGenerator.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/component/TrinidadComponentGenerator.java
index 0ed40f2..89f646f 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/component/TrinidadComponentGenerator.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/component/TrinidadComponentGenerator.java
@@ -32,8 +32,8 @@ import org.apache.maven.plugin.logging.Log;
 import org.apache.myfaces.trinidadbuild.plugin.faces.io.PrettyWriter;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.ComponentBean;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.PropertyBean;
+import org.apache.myfaces.trinidadbuild.plugin.faces.util.Filter;
 import org.apache.myfaces.trinidadbuild.plugin.faces.util.FilteredIterator;
-import org.apache.myfaces.trinidadbuild.plugin.faces.util.PropertyFilter;
 import org.apache.myfaces.trinidadbuild.plugin.faces.util.Util;
 
 
@@ -44,20 +44,22 @@ public class TrinidadComponentGenerator extends AbstractComponentGenerator
     super(log, is12);
   }
 
-  protected void addSpecificImports(Set imports, ComponentBean component)
+  @Override
+  protected void addSpecificImports(Set<String> imports, ComponentBean component)
   {
     // FacesBean is always needed to define the TYPE
 
     imports.add("org.apache.myfaces.trinidad.bean.FacesBean");
 
     Iterator<PropertyBean> properties = component.properties();
-    properties = new FilteredIterator(properties, new NonVirtualFilter());
+    properties = new FilteredIterator<PropertyBean>(properties, new NonVirtualFilter());
+    
     // PropertyKey only needed if there are properties
     if (properties.hasNext())
     {
       imports.add("org.apache.myfaces.trinidad.bean.PropertyKey");
 
-      PropertyFilter resolvable = new ResolvableTypeFilter();
+      Filter<PropertyBean> resolvable = new ResolvableTypeFilter();
       while (properties.hasNext())
       {
         PropertyBean property = properties.next();
@@ -75,6 +77,7 @@ public class TrinidadComponentGenerator extends AbstractComponentGenerator
     }
   }
 
+  @Override
   protected void writeConstructorContent(PrettyWriter out,
                                          ComponentBean component,
                                          int modifiers,
@@ -83,6 +86,7 @@ public class TrinidadComponentGenerator extends AbstractComponentGenerator
     out.println("super(" + rendererType + ");");
   }
 
+  @Override
   protected void writePropertyListMethods(PrettyWriter out, PropertyBean property, Collection gnoreList)
   {
     // nothing
@@ -100,8 +104,8 @@ public class TrinidadComponentGenerator extends AbstractComponentGenerator
 
     //  component property keys
     Iterator<PropertyBean> properties = component.properties();
-    properties = new FilteredIterator(properties, new NonVirtualFilter());
-    properties = new FilteredIterator(properties, new NonOverriddenFilter());
+    properties = new FilteredIterator<PropertyBean>(properties, new NonVirtualFilter());
+    properties = new FilteredIterator<PropertyBean>(properties, new NonOverriddenFilter());
 
     while (properties.hasNext())
     {
@@ -182,6 +186,7 @@ public class TrinidadComponentGenerator extends AbstractComponentGenerator
     }
   }
 
+  @Override
   protected void writePropertyDeclaration(PrettyWriter out, PropertyBean property) throws IOException
   {
     // nothing by default
@@ -192,11 +197,13 @@ public class TrinidadComponentGenerator extends AbstractComponentGenerator
    *
    * @return true if the getters/setters are final
    */
+  @Override
   protected boolean isAccessorMethodFinal()
   {
     return true;
   }
 
+  @Override
   protected void writePropertySetterMethodBody(PrettyWriter out,
                                                PropertyBean property,
                                                String propertyClass) throws IOException
@@ -227,6 +234,7 @@ public class TrinidadComponentGenerator extends AbstractComponentGenerator
     }
   }
 
+  @Override
   protected void writePropertyGetterMethodBody(
       PrettyWriter out,
       PropertyBean property) throws IOException
@@ -275,11 +283,13 @@ public class TrinidadComponentGenerator extends AbstractComponentGenerator
     }
   }
 
+  @Override
   public void writeStateManagementMethods(PrettyWriter out, ComponentBean component) throws IOException
   {
     // nothing to do here
   }
 
+  @Override
   public void writePropertyListMethods(
       PrettyWriter out,
       PropertyBean property) throws IOException
@@ -445,7 +455,7 @@ public class TrinidadComponentGenerator extends AbstractComponentGenerator
   private String _getPropertyCapabilities(
       PropertyBean property)
   {
-    List caps = new ArrayList();
+    List<String> caps = new ArrayList<String>();
 
     if (property.isMethodBinding() ||
         property.isLiteralOnly())
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/AbstractComponentTagGenerator.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/AbstractComponentTagGenerator.java
index 174725e..5f2f67a 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/AbstractComponentTagGenerator.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/AbstractComponentTagGenerator.java
@@ -32,8 +32,9 @@ import org.apache.myfaces.trinidadbuild.plugin.faces.generator.GeneratorHelper;
 import org.apache.myfaces.trinidadbuild.plugin.faces.io.PrettyWriter;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.ComponentBean;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.PropertyBean;
+
+import org.apache.myfaces.trinidadbuild.plugin.faces.util.Filter;
 import org.apache.myfaces.trinidadbuild.plugin.faces.util.FilteredIterator;
-import org.apache.myfaces.trinidadbuild.plugin.faces.util.PropertyFilter;
 import org.apache.myfaces.trinidadbuild.plugin.faces.util.SourceTemplate;
 import org.apache.myfaces.trinidadbuild.plugin.faces.util.Util;
 
@@ -54,7 +55,7 @@ public abstract class AbstractComponentTagGenerator implements ComponentTagGener
                            String superclassName,
                            ComponentBean component)
   {
-    Collection components = new HashSet();
+    Collection<ComponentBean> components = new HashSet<ComponentBean>();
     components.add(component);
     writeImports(out, template, packageName, fullSuperclassName, superclassName, components);
   }
@@ -62,17 +63,17 @@ public abstract class AbstractComponentTagGenerator implements ComponentTagGener
 
   @Override
   public void writeImports(PrettyWriter out, SourceTemplate template, String packageName,
-    String fullSuperclassName, String superclassName, Collection components)
+    String fullSuperclassName, String superclassName, Collection<ComponentBean> components)
   {
     // TODO: support SourceTemplate
 
-    Set imports = new TreeSet();
+    Set<String> imports = new TreeSet<String>();
 
     for (Iterator<ComponentBean> lIterator = components.iterator(); lIterator.hasNext();)
     {
       ComponentBean component = lIterator.next();
       Iterator<PropertyBean> properties = component.properties();
-      properties = new FilteredIterator(properties, new TagAttributeFilter());
+      properties = new FilteredIterator<PropertyBean>(properties, new TagAttributeFilter());
 
       // TODO: remove these imports
       // FIXME: Actually last 2 can be kept when not abstract
@@ -229,11 +230,11 @@ public abstract class AbstractComponentTagGenerator implements ComponentTagGener
                                    ComponentBean component) throws IOException
   {
     Iterator<PropertyBean> properties = component.properties();
-    properties = new FilteredIterator(properties, new TagAttributeFilter());
+    properties = new FilteredIterator<PropertyBean>(properties, new TagAttributeFilter());
     if (isSetterMethodFinal())
     {
       // Do not generate property methods if they are final and the properties are overrides
-      properties = new FilteredIterator(properties, new NonOverriddenFilter());
+      properties = new FilteredIterator<PropertyBean>(properties, new NonOverriddenFilter());
     }
 
     while (properties.hasNext())
@@ -255,7 +256,7 @@ public abstract class AbstractComponentTagGenerator implements ComponentTagGener
   }
 
   @Override
-  public void writePropertyMembers(PrettyWriter out, Collection components) throws IOException
+  public void writePropertyMembers(PrettyWriter out, Collection<ComponentBean> components) throws IOException
   {
     for (Iterator<ComponentBean> lIterator = components.iterator(); lIterator.hasNext();)
     {
@@ -267,7 +268,7 @@ public abstract class AbstractComponentTagGenerator implements ComponentTagGener
   public void writeReleaseMethod(PrettyWriter out,
                                  ComponentBean component) throws IOException
   {
-    Collection components = new HashSet();
+    Collection<ComponentBean> components = new HashSet<ComponentBean>();
     components.add(component);
     writeReleaseMethod(out, components);
   }
@@ -275,14 +276,14 @@ public abstract class AbstractComponentTagGenerator implements ComponentTagGener
 
   @Override
   public void writeReleaseMethod(
-    PrettyWriter out, Collection components) throws IOException
+    PrettyWriter out, Collection<ComponentBean> components) throws IOException
   {
-    Collection all = new HashSet();
+    Collection<PropertyBean> all = new HashSet<PropertyBean>();
     boolean special = false;
-    for (Iterator lIterator = components.iterator(); lIterator.hasNext();)
+    for (Iterator<ComponentBean> lIterator = components.iterator(); lIterator.hasNext();)
     {
-      ComponentBean component = (ComponentBean) lIterator.next();
-      Iterator prop = component.properties();
+      ComponentBean component = lIterator.next();
+      Iterator<PropertyBean> prop = component.properties();
       // TODO: remove special case for UIXFormTag
       special |= "org.apache.myfaces.trinidadinternal.taglib.UIXFormTag".equals(component.getTagClass());
       while (prop.hasNext())
@@ -291,9 +292,9 @@ public abstract class AbstractComponentTagGenerator implements ComponentTagGener
       }
     }
 
-    Iterator properties = all.iterator();
-    properties = new FilteredIterator(properties, new TagAttributeFilter());
-    properties = new FilteredIterator(properties, new NonOverriddenFilter());
+    Iterator<PropertyBean> properties = all.iterator();
+    properties = new FilteredIterator<PropertyBean>(properties, new TagAttributeFilter());
+    properties = new FilteredIterator<PropertyBean>(properties, new NonOverriddenFilter());
 
     if (properties.hasNext() || special)
     {
@@ -305,7 +306,7 @@ public abstract class AbstractComponentTagGenerator implements ComponentTagGener
       out.println("super.release();");
       while (properties.hasNext())
       {
-        PropertyBean property = (PropertyBean) properties.next();
+        PropertyBean property = properties.next();
         String propName = property.getPropertyName();
         String propVar = "_" + propName;
         out.print(propVar + " = ");
@@ -322,9 +323,8 @@ public abstract class AbstractComponentTagGenerator implements ComponentTagGener
     }
   }
 
-  protected void addSpecificImports(
-      Set imports,
-      ComponentBean component)
+  protected void addSpecificImports(@SuppressWarnings("unused") Set<String> imports,
+                                    @SuppressWarnings("unused") ComponentBean component)
   {
     // nothing by default
   }
@@ -342,12 +342,12 @@ public abstract class AbstractComponentTagGenerator implements ComponentTagGener
 
   protected abstract void writeSetPropertyMethodBody(PrettyWriter out,
                                                      String componentClass,
-                                                     Iterator properties) throws IOException;
+                                                  Iterator<PropertyBean> properties) throws IOException;
 
-  protected static class NonOverriddenFilter
-    extends PropertyFilter
+  protected static class NonOverriddenFilter implements Filter<PropertyBean>
   {
-    protected boolean accept(
+    @Override
+    public boolean accept(
       PropertyBean property)
     {
       return (!property.isOverride());
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/AbstractConverterTagGenerator.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/AbstractConverterTagGenerator.java
index 3a1f25a..3723f14 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/AbstractConverterTagGenerator.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/AbstractConverterTagGenerator.java
@@ -88,7 +88,7 @@ public abstract class AbstractConverterTagGenerator extends AbstractTagGenerator
     ConverterBean converter) throws IOException
   {
     Iterator<PropertyBean> properties = converter.properties();
-    properties = new FilteredIterator(properties, new TagAttributeFilter());
+    properties = new FilteredIterator<PropertyBean>(properties, new TagAttributeFilter());
     if (properties.hasNext())
     {
       String converterFullClass = converter.getConverterClass();
@@ -114,8 +114,8 @@ public abstract class AbstractConverterTagGenerator extends AbstractTagGenerator
     PrettyWriter  out,
     ConverterBean converter) throws IOException
   {
-    Iterator properties = converter.properties();
-    properties = new FilteredIterator(properties, new TagAttributeFilter());
+    Iterator<PropertyBean> properties = converter.properties();
+    properties = new FilteredIterator<PropertyBean>(properties, new TagAttributeFilter());
     
     String converterFullClass = converter.getConverterClass();
     String converterClass = Util.getClassFromFullClass(converterFullClass);
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/ComponentTagGenerator.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/ComponentTagGenerator.java
index 7519f58..7f7e1ba 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/ComponentTagGenerator.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/ComponentTagGenerator.java
@@ -40,13 +40,13 @@ public interface ComponentTagGenerator extends ClassGenerator
 
   void writeSetPropertiesMethod(PrettyWriter out,
                                 String componentClass,
-                                Collection components) throws IOException;
+                                Collection<ComponentBean> components) throws IOException;
 
   void writeReleaseMethod(PrettyWriter out,
                           ComponentBean component) throws IOException;
 
   void writeReleaseMethod(PrettyWriter out,
-                          Collection components) throws IOException;
+                          Collection<ComponentBean> components) throws IOException;
 
   void writeGetComponentType(PrettyWriter out,
                              ComponentBean component) throws IOException;
@@ -58,5 +58,5 @@ public interface ComponentTagGenerator extends ClassGenerator
                             ComponentBean component) throws IOException;
 
   void writePropertyMembers(PrettyWriter out,
-                            Collection components) throws IOException;
+                            Collection<ComponentBean> components) throws IOException;
 }
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/TagAttributeFilter.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/TagAttributeFilter.java
index 5dbf483..f73fadb 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/TagAttributeFilter.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/TagAttributeFilter.java
@@ -19,7 +19,7 @@
 package org.apache.myfaces.trinidadbuild.plugin.faces.generator.taglib;
 
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.PropertyBean;
-import org.apache.myfaces.trinidadbuild.plugin.faces.util.PropertyFilter;
+import org.apache.myfaces.trinidadbuild.plugin.faces.util.Filter;
 
 /**
  * TODO: comment this!
@@ -27,10 +27,10 @@ import org.apache.myfaces.trinidadbuild.plugin.faces.util.PropertyFilter;
  * @author Bruno Aranda (latest modification by $Author$)
  * @version $Revision$ $Date$
  */
-final public class TagAttributeFilter extends PropertyFilter
+public final class TagAttributeFilter implements Filter<PropertyBean>
 {
-  protected boolean accept(
-      PropertyBean property)
+  @Override
+  public boolean accept(PropertyBean property)
   {
     return (!property.isTagAttributeExcluded());
   }
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/AttributeBean.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/AttributeBean.java
index 703575f..5c2beeb 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/AttributeBean.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/AttributeBean.java
@@ -18,7 +18,6 @@
  */
 package org.apache.myfaces.trinidadbuild.plugin.faces.parse;
 
-import java.lang.Comparable;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/ComponentBean.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/ComponentBean.java
index a3885fa..95a2ce8 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/ComponentBean.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/ComponentBean.java
@@ -1057,7 +1057,7 @@ public class ComponentBean extends AbstractTagBean
     {
       ComponentBean parent = resolveSupertype();
       if (parent != null)
-        events = new CompoundIterator(events, parent.events(true));
+        events = new CompoundIterator<EventRefBean>(events, parent.events(true));
     }
     return events;
   }
@@ -1243,9 +1243,9 @@ public class ComponentBean extends AbstractTagBean
   private String  _defaultEventName;
   private boolean _namingContainer;
   private boolean _children = true;
-  private Map<String, PropertyBean> _properties;
-  private Map<String, FacetBean>    _facets;
-  private Map<String, EventRefBean>    _events;
+  private final Map<String, PropertyBean> _properties;
+  private final Map<String, FacetBean>    _facets;
+  private final Map<String, EventRefBean>    _events;
   private int     _componentClassModifiers;
   private int     _tagClassModifiers;
   private String[] _unsupportedAgents = new String[0];
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/FacesConfigBean.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/FacesConfigBean.java
index fa40c95..8f44106 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/FacesConfigBean.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/FacesConfigBean.java
@@ -214,7 +214,7 @@ public class FacesConfigBean extends ObjectBean
   public EventBean findEvent(
     String eventType)
   {
-    return (EventBean)_events.get(eventType);
+    return _events.get(eventType);
   }
 
   /**
@@ -269,7 +269,7 @@ public class FacesConfigBean extends ObjectBean
   public RenderKitBean findRenderKit(
     String renderKitId)
   {
-    return (RenderKitBean)_renderKits.get(renderKitId);
+    return _renderKits.get(renderKitId);
   }
 
   /**
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/AttributeFilter.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/AttributeFilter.java
deleted file mode 100644
index ec3bf0d..0000000
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/AttributeFilter.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding 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 the License.
- */
-package org.apache.myfaces.trinidadbuild.plugin.faces.util;
-
-import org.apache.myfaces.trinidadbuild.plugin.faces.parse.AttributeBean;
-
-abstract public class AttributeFilter implements Filter
-{
-  final public boolean accept(
-    Object obj)
-  {
-    return accept((AttributeBean)obj);
-  }
-
-  abstract protected boolean accept(
-    AttributeBean attribute);
-}
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/ComponentFilter.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/ComponentFilter.java
deleted file mode 100644
index bf4c453..0000000
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/ComponentFilter.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding 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 the License.
- */
-package org.apache.myfaces.trinidadbuild.plugin.faces.util;
-
-import org.apache.myfaces.trinidadbuild.plugin.faces.parse.ComponentBean;
-
-abstract public class ComponentFilter implements Filter
-{
-  final public boolean accept(
-    Object obj)
-  {
-    return accept((ComponentBean)obj);
-  }
-
-  abstract protected boolean accept(
-    ComponentBean component);
-}
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/CompoundIterator.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/CompoundIterator.java
index 032e6b6..dd19791 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/CompoundIterator.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/CompoundIterator.java
@@ -25,38 +25,41 @@ import java.util.NoSuchElementException;
  * CompoundIterator consumes the initial iterator before
  * observing the next iterator.
  */
-public class CompoundIterator implements Iterator
+public class CompoundIterator<T> implements Iterator<T>
 {
   public CompoundIterator(
-    Iterator primary,
-    Iterator secondary)
+    Iterator<T> primary,
+    Iterator<T> secondary)
   {
     this(new Iterator[] {primary, secondary});
   }
 
   public CompoundIterator(
-    Iterator[] iterators)
+    Iterator<T>[] iterators)
   {
     _iterators = iterators;
     _index = 0;
     _advance();
   }
 
+  @Override
   public boolean hasNext()
   {
     return (_next != null);
   }
 
-  public Object next()
+  @Override
+  public T next()
   {
     if (_next == null)
       throw new NoSuchElementException();
 
-    Object obj = _next;
+    T obj = _next;
     _advance();
     return obj;
   }
 
+  @Override
   public void remove()
   {
     throw new UnsupportedOperationException();
@@ -64,7 +67,7 @@ public class CompoundIterator implements Iterator
 
   private void _advance()
   {
-    Iterator current = _iterators[_index];
+    Iterator<T> current = _iterators[_index];
     if (current != null && !current.hasNext())
     {
       _index ++;
@@ -74,7 +77,7 @@ public class CompoundIterator implements Iterator
     _next = (current != null && current.hasNext()) ? current.next() : null;
   }
 
-  private Object _next;
-  private Iterator[] _iterators;
+  private final Iterator<T>[] _iterators;
+  private T _next;
   private int _index;
 }
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/ConverterFilter.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/ConverterFilter.java
deleted file mode 100644
index 8a66297..0000000
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/ConverterFilter.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding 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 the License.
- */
-package org.apache.myfaces.trinidadbuild.plugin.faces.util;
-
-import org.apache.myfaces.trinidadbuild.plugin.faces.parse.ConverterBean;
-
-abstract public class ConverterFilter implements Filter
-{
-  final public boolean accept(
-    Object obj)
-  {
-    return accept((ConverterBean)obj);
-  }
-
-  abstract protected boolean accept(
-    ConverterBean converter);
-}
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/FacetFilter.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/FacetFilter.java
deleted file mode 100644
index 2f296ea..0000000
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/FacetFilter.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding 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 the License.
- */
-package org.apache.myfaces.trinidadbuild.plugin.faces.util;
-
-import org.apache.myfaces.trinidadbuild.plugin.faces.parse.FacetBean;
-
-abstract public class FacetFilter implements Filter
-{
-  final public boolean accept(
-    Object obj)
-  {
-    return accept((FacetBean)obj);
-  }
-
-  abstract protected boolean accept(
-    FacetBean facet);
-}
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/Filter.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/Filter.java
index 668694c..46914c6 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/Filter.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/Filter.java
@@ -18,8 +18,8 @@
  */
 package org.apache.myfaces.trinidadbuild.plugin.faces.util;
 
-public interface Filter
+public interface Filter<T>
 {
   abstract public boolean accept(
-    Object obj);
+    T obj);
 }
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/FilteredIterator.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/FilteredIterator.java
index a706b20..f132664 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/FilteredIterator.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/FilteredIterator.java
@@ -21,32 +21,35 @@ package org.apache.myfaces.trinidadbuild.plugin.faces.util;
 import java.util.Iterator;
 import java.util.NoSuchElementException;
 
-public class FilteredIterator implements Iterator
+public class FilteredIterator<T> implements Iterator<T>
 {
   public FilteredIterator(
-    Iterator iter,
-    Filter   filter)
+    Iterator<T> iter,
+    Filter<T>   filter)
   {
     _iter = iter;
     _filter = filter;
     _advance();
   }
 
+  @Override
   public boolean hasNext()
   {
     return (_next != null);
   }
 
-  public Object next()
+  @Override
+  public T next()
   {
     if (_next == null)
       throw new NoSuchElementException();
 
-    Object obj = _next;
+    T obj = _next;
     _advance();
     return obj;
   }
 
+  @Override
   public void remove()
   {
     throw new UnsupportedOperationException();
@@ -56,7 +59,7 @@ public class FilteredIterator implements Iterator
   {
     while (_iter.hasNext())
     {
-      Object obj = _iter.next();
+      T obj = _iter.next();
       if (_filter.accept(obj))
       {
         _next = obj;
@@ -67,7 +70,7 @@ public class FilteredIterator implements Iterator
     _next = null;
   }
 
-  private final Iterator _iter;
-  private final Filter _filter;
-  private Object _next;
+  private final Iterator<T> _iter;
+  private final Filter<T> _filter;
+  private T _next;
 }
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/PropertyFilter.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/PropertyFilter.java
deleted file mode 100644
index 5618101..0000000
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/PropertyFilter.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding 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 the License.
- */
-package org.apache.myfaces.trinidadbuild.plugin.faces.util;
-
-import org.apache.myfaces.trinidadbuild.plugin.faces.parse.PropertyBean;
-
-abstract public class PropertyFilter implements Filter
-{
-  final public boolean accept(
-    Object obj)
-  {
-    return accept((PropertyBean)obj);
-  }
-
-  abstract protected boolean accept(
-    PropertyBean property);
-}
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/RendererFilter.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/RendererFilter.java
deleted file mode 100644
index 79a3b95..0000000
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/RendererFilter.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding 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 the License.
- */
-package org.apache.myfaces.trinidadbuild.plugin.faces.util;
-
-import org.apache.myfaces.trinidadbuild.plugin.faces.parse.RendererBean;
-
-abstract public class RendererFilter implements Filter
-{
-  final public boolean accept(
-    Object obj)
-  {
-    return accept((RendererBean)obj);
-  }
-
-  abstract protected boolean accept(
-    RendererBean renderer);
-}
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/SortedIterator.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/SortedIterator.java
index 831a5c5..25dd9f0 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/SortedIterator.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/SortedIterator.java
@@ -19,20 +19,21 @@
 package org.apache.myfaces.trinidadbuild.plugin.faces.util;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
 
 /**
  * SortedIterator presents the elements of another iterator in a sorted order.
  */
-public class SortedIterator implements Iterator
+public class SortedIterator<T extends Comparable<? super T>> implements Iterator<T>
 {
   public SortedIterator(
-    Iterator unsorted)
+    Iterator<T> unsorted)
   {
      // this implementation just pulls the entire contents into a list --
      // it will be awkward if the unsorted iterator is infinite
-     ArrayList sortedList = new ArrayList();
+     List<T> sortedList = new ArrayList<T>();
      while(unsorted.hasNext())
      {
        sortedList.add(unsorted.next());
@@ -41,21 +42,23 @@ public class SortedIterator implements Iterator
      _sorted = sortedList.iterator();
   }
 
+  @Override
   public boolean hasNext()
   {
     return _sorted.hasNext();
   }
 
-  public Object next()
+  @Override
+  public T next()
   {
     return _sorted.next();
   }
 
+  @Override
   public void remove()
   {
     throw new UnsupportedOperationException();
   }
 
-  private final Iterator _sorted;
-
+  private final Iterator<T> _sorted;
 }
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/Util.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/Util.java
index e33cab2..e3179c4 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/Util.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/Util.java
@@ -426,7 +426,7 @@ public class Util
 
   static private Set _createPrimitiveTypesSet()
   {
-    Set primitives = new TreeSet();
+    Set<String> primitives = new TreeSet<String>();
     for (int i=0; i < _PRIMITIVE_TYPES.length; i++)
     {
       String type = _PRIMITIVE_TYPES[i];
@@ -438,7 +438,7 @@ public class Util
 
   static private Set _createReservedWordsSet()
   {
-    Set reserved = new TreeSet();
+    Set<String> reserved = new TreeSet<String>();
     for (int i=0; i < _RESERVED_WORDS.length; i++)
     {
       String keyword = _RESERVED_WORDS[i];
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/ValidatorFilter.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/ValidatorFilter.java
deleted file mode 100644
index 230dade..0000000
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/util/ValidatorFilter.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding 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 the License.
- */
-package org.apache.myfaces.trinidadbuild.plugin.faces.util;
-
-import org.apache.myfaces.trinidadbuild.plugin.faces.parse.ValidatorBean;
-
-abstract public class ValidatorFilter implements Filter
-{
-  final public boolean accept(
-    Object obj)
-  {
-    return accept((ValidatorBean)obj);
-  }
-
-  abstract protected boolean accept(
-    ValidatorBean validator);
-}
diff --git a/maven-tagdoc-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/tagdoc/TagdocReport.java b/maven-tagdoc-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/tagdoc/TagdocReport.java
index cc0eb80..a41c678 100644
--- a/maven-tagdoc-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/tagdoc/TagdocReport.java
+++ b/maven-tagdoc-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/tagdoc/TagdocReport.java
@@ -31,6 +31,7 @@ import java.net.URLClassLoader;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Enumeration;
@@ -68,11 +69,8 @@ import org.apache.myfaces.trinidadbuild.plugin.faces.parse.FacetBean;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.PropertyBean;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.ScreenshotBean;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.ValidatorBean;
-import org.apache.myfaces.trinidadbuild.plugin.faces.util.ComponentFilter;
-import org.apache.myfaces.trinidadbuild.plugin.faces.util.ConverterFilter;
+import org.apache.myfaces.trinidadbuild.plugin.faces.util.Filter;
 import org.apache.myfaces.trinidadbuild.plugin.faces.util.FilteredIterator;
-import org.apache.myfaces.trinidadbuild.plugin.faces.util.PropertyFilter;
-import org.apache.myfaces.trinidadbuild.plugin.faces.util.ValidatorFilter;
 import org.apache.myfaces.trinidadbuild.plugin.faces.util.XIncludeFilter;
 
 import org.codehaus.doxia.sink.Sink;
@@ -101,7 +99,7 @@ public class TagdocReport extends AbstractMavenMultiPageReport
     factory.setSiteDirectory(getOutputDirectory());
     setSinkFactory(factory);
 
-    processIndex(project, resourcePath);
+    processIndex(project);
     try
     {
       _generateTagDocs();
@@ -125,14 +123,14 @@ public class TagdocReport extends AbstractMavenMultiPageReport
     // components Iterator will be used when actually writing out the tag doc
     // compIter Iterator will be used when creating the maps of component relationships
     Iterator<ComponentBean> components = facesConfig.components();
-    components = new FilteredIterator(components, new SkipFilter());
-    components = new FilteredIterator(components, new ComponentTagFilter());
-    components = new FilteredIterator(components, new ComponentNamespaceFilter());
+    components = new FilteredIterator<ComponentBean>(components, new SkipFilter());
+    components = new FilteredIterator<ComponentBean>(components, new ComponentTagFilter());
+    components = new FilteredIterator<ComponentBean>(components, new ComponentNamespaceFilter());
 
     Iterator<ComponentBean> compIter = facesConfig.components();
-    compIter = new FilteredIterator(compIter, new SkipFilter());
-    compIter = new FilteredIterator(compIter, new ComponentTagFilter());
-    compIter = new FilteredIterator(compIter, new ComponentNamespaceFilter());
+    compIter = new FilteredIterator<ComponentBean>(compIter, new SkipFilter());
+    compIter = new FilteredIterator<ComponentBean>(compIter, new ComponentTagFilter());
+    compIter = new FilteredIterator<ComponentBean>(compIter, new ComponentNamespaceFilter());
 
     // compTypeMap holds a map of compononent types to tag names that implement that component type
     // The map is built using getComponentType method on the component bean to determine the
@@ -190,12 +188,12 @@ public class TagdocReport extends AbstractMavenMultiPageReport
     }
 
     Iterator<ValidatorBean> validators = facesConfig.validators();
-    validators = new FilteredIterator(validators, new ValidatorTagFilter());
-    validators = new FilteredIterator(validators, new ValidatorNamespaceFilter());
+    validators = new FilteredIterator<ValidatorBean>(validators, new ValidatorTagFilter());
+    validators = new FilteredIterator<ValidatorBean>(validators, new ValidatorNamespaceFilter());
 
     Iterator<ConverterBean> converters = facesConfig.converters();
-    converters = new FilteredIterator(converters, new ConverterTagFilter());
-    converters = new FilteredIterator(converters, new ConverterNamespaceFilter());
+    converters = new FilteredIterator<ConverterBean>(converters, new ConverterTagFilter());
+    converters = new FilteredIterator<ConverterBean>(converters, new ConverterNamespaceFilter());
 
     // =-=AEW Note that only updating out-of-date components, etc. is
     // permanently tricky, even if we had proper detection in place,
@@ -208,9 +206,9 @@ public class TagdocReport extends AbstractMavenMultiPageReport
     }
     */
 
-    Set componentPages = new TreeSet();
-    Set converterPages = new TreeSet();
-    Set validatorPages = new TreeSet();
+    Set<String> componentPages = new TreeSet<String>();
+    Set<String> converterPages = new TreeSet<String>();
+    Set<String> validatorPages = new TreeSet<String>();
 
     int count = 0;
     while (components.hasNext())
@@ -242,7 +240,7 @@ public class TagdocReport extends AbstractMavenMultiPageReport
     }
 
 
-    Set otherPages = _gatherOtherTags();
+    Set<String> otherPages = _gatherOtherTags();
 
     getLog().info("Generated " + count + " page(s)");
 
@@ -259,23 +257,23 @@ public class TagdocReport extends AbstractMavenMultiPageReport
     sink.sectionTitle1_();
     sink.section1();
 
-    for (Iterator<Map.Entry> i = taglibs.entrySet().iterator(); i.hasNext(); )
+    for (Iterator<Map.Entry<String, String>> i = taglibs.entrySet().iterator(); i.hasNext(); )
     {
-      Map.Entry entry = i.next();
+      Map.Entry<String, String> entry = i.next();
       sink.paragraph();
 
       sink.bold();
       sink.text("Short name:");
       sink.bold_();
       sink.nonBreakingSpace();
-      sink.text(entry.getKey().toString());
+      sink.text(entry.getKey());
       sink.lineBreak();
 
       sink.bold();
       sink.text("Namespace:");
       sink.bold_();
       sink.nonBreakingSpace();
-      sink.text(entry.getValue().toString());
+      sink.text(entry.getValue());
       sink.lineBreak();
 
       sink.paragraph_();
@@ -291,9 +289,9 @@ public class TagdocReport extends AbstractMavenMultiPageReport
     sink.body_();
   }
 
-  private Set _gatherOtherTags()
+  private Set<String> _gatherOtherTags()
   {
-    TreeSet set = new TreeSet();
+    Set<String> set = new TreeSet<String>();
     String subDir =
       _platformAgnosticPath(_platformAgnosticPath("xdoc/" +
                                                   _DOC_SUBDIRECTORY));
@@ -428,7 +426,7 @@ public class TagdocReport extends AbstractMavenMultiPageReport
     return formatted;
   }
 
-  private void _writeIndexSection(Sink sink, Set pages, String title)
+  private void _writeIndexSection(Sink sink, Set<String> pages, String title)
   {
     if (pages.isEmpty())
       return;
@@ -489,11 +487,11 @@ public class TagdocReport extends AbstractMavenMultiPageReport
     if (namespace == null)
       return null;
 
-    for (Iterator<Map.Entry> i = taglibs.entrySet().iterator(); i.hasNext(); )
+    for (Iterator<Map.Entry<String, String>> i = taglibs.entrySet().iterator(); i.hasNext(); )
     {
-      Map.Entry entry = i.next();
+      Map.Entry<String, String> entry = i.next();
       if (namespace.equals(entry.getValue()))
-        return (String) entry.getKey();
+        return entry.getKey();
     }
 
     return "unknown";
@@ -858,13 +856,15 @@ public class TagdocReport extends AbstractMavenMultiPageReport
   }
 
 
-  private class GroupComparator implements Comparator
+  private class GroupComparator implements Comparator<String>
   {
-    public int compare(Object o1, Object o2)
+    @Override
+    public int compare(String o1, String o2)
     {
       return _getGroupIndex(o1) - _getGroupIndex(o2);
     }
 
+    @Override
     public boolean equals(Object o)
     {
       return (o instanceof GroupComparator);
@@ -874,9 +874,6 @@ public class TagdocReport extends AbstractMavenMultiPageReport
     {
       String s = (o == null) ? null : o.toString();
 
-
-
-
       if ("message".equalsIgnoreCase(s))
       {
         return 0;
@@ -902,9 +899,9 @@ public class TagdocReport extends AbstractMavenMultiPageReport
   private void _writeComponentAttributes(Writer out, ComponentBean bean) throws IOException
   {
     // Sort the names
-    TreeSet<String> attributes = new TreeSet<String>();
+    Collection<String> attributes = new TreeSet<String>();
     Iterator<PropertyBean> attrs = bean.properties(true);
-    attrs = new FilteredIterator(attrs, new NonHiddenFilter());
+    attrs = new FilteredIterator<PropertyBean>(attrs, new NonHiddenFilter());
 
     while (attrs.hasNext())
     {
@@ -922,7 +919,7 @@ public class TagdocReport extends AbstractMavenMultiPageReport
       list.add(bean.findProperty(attrName, true));
     }
 
-    TreeSet<String> groups = new TreeSet<String>(new GroupComparator());
+    Set<String> groups = new TreeSet<String>(new GroupComparator());
     /* No current support for grouping
     // Make sure "null" is the representative for unknown groups
     Iterator iter = attributes.iterator();
@@ -952,7 +949,7 @@ public class TagdocReport extends AbstractMavenMultiPageReport
   private void _writeConverterAttributes(Writer out, ConverterBean bean) throws IOException
   {
     // Sort the names
-    TreeSet attributes = new TreeSet();
+    Collection<String> attributes = new TreeSet<String>();
     Iterator<PropertyBean> attrs = bean.properties();
     while (attrs.hasNext())
     {
@@ -962,7 +959,7 @@ public class TagdocReport extends AbstractMavenMultiPageReport
     }
 
     // Now get a list of PropertyBeans
-    List list = new ArrayList();
+    List<PropertyBean> list = new ArrayList<PropertyBean>();
     Iterator<String> iter = attributes.iterator();
     while (iter.hasNext())
     {
@@ -981,7 +978,7 @@ public class TagdocReport extends AbstractMavenMultiPageReport
   private void _writeValidatorAttributes(Writer out, ValidatorBean bean) throws IOException
   {
     // Sort the names
-    TreeSet attributes = new TreeSet();
+    Collection<String> attributes = new TreeSet<String>();
     Iterator<PropertyBean> attrs = bean.properties();
     while (attrs.hasNext())
     {
@@ -991,7 +988,7 @@ public class TagdocReport extends AbstractMavenMultiPageReport
     }
 
     // Now get a list of PropertyBeans
-    List list = new ArrayList();
+    List<PropertyBean> list = new ArrayList<PropertyBean>();
     Iterator<String> iter = attributes.iterator();
     while (iter.hasNext())
     {
@@ -1279,7 +1276,7 @@ public class TagdocReport extends AbstractMavenMultiPageReport
   private void _writeComponentFacets(Writer out, ComponentBean bean, Map<String, List<QName>> compTypeMap) throws IOException
   {
     // Sort the facets
-    TreeSet facetNames = new TreeSet();
+    Collection<String> facetNames = new TreeSet<String>();
     Iterator<FacetBean> iter = bean.facets(true);
     while (iter.hasNext())
     {
@@ -1596,8 +1593,7 @@ public class TagdocReport extends AbstractMavenMultiPageReport
   }
 
   protected void processIndex(
-    MavenProject project,
-    String       resourcePath) throws MavenReportException
+    MavenProject project) throws MavenReportException
   {
     _facesConfig = new FacesConfigBean();
 
@@ -1627,14 +1623,14 @@ public class TagdocReport extends AbstractMavenMultiPageReport
   }
 
 
-  protected List getMasterConfigs(
+  protected List<URL> getMasterConfigs(
     MavenProject project) throws MavenReportException
   {
     String resourcePath = "META-INF/maven-faces-plugin/faces-config.xml";
     return getCompileDependencyResources(project, resourcePath);
   }
 
-  protected List getCompileDependencyResources(
+  protected List<URL> getCompileDependencyResources(
     MavenProject project,
     String       resourcePath) throws MavenReportException
   {
@@ -1642,7 +1638,7 @@ public class TagdocReport extends AbstractMavenMultiPageReport
     {
       ClassLoader cl = createCompileClassLoader(project);
       Enumeration e = cl.getResources(resourcePath);
-      List urls = new ArrayList();
+      List<URL> urls = new ArrayList<URL>();
       while (e.hasMoreElements())
       {
         URL url = (URL)e.nextElement();
@@ -1664,7 +1660,7 @@ public class TagdocReport extends AbstractMavenMultiPageReport
     try
     {
       // 1. read master faces-config.xml resources
-      List masters = getMasterConfigs(project);
+      List<URL> masters = getMasterConfigs(project);
       if (masters.isEmpty())
       {
         getLog().warn("Master faces-config.xml not found");
@@ -1672,7 +1668,7 @@ public class TagdocReport extends AbstractMavenMultiPageReport
       }
       else
       {
-        List entries = new LinkedList();
+        List<URL> entries = new LinkedList<URL>();
 
         SAXParserFactory spf = SAXParserFactory.newInstance();
         spf.setNamespaceAware(true);
@@ -1697,7 +1693,7 @@ public class TagdocReport extends AbstractMavenMultiPageReport
           digester.parse(url.openStream());
         }
 
-        return (URL[])entries.toArray(new URL[0]);
+        return entries.toArray(new URL[entries.size()]);
       }
     }
     catch (ParserConfigurationException e)
@@ -1722,7 +1718,7 @@ public class TagdocReport extends AbstractMavenMultiPageReport
 
     try
     {
-      List classpathElements = project.getCompileClasspathElements();
+      List<String> classpathElements = project.getCompileClasspathElements();
       if (!classpathElements.isEmpty())
       {
         String[] entries = (String[]) classpathElements.toArray(new String[0]);
@@ -1760,10 +1756,10 @@ public class TagdocReport extends AbstractMavenMultiPageReport
     }
   }
 
-  static protected class SkipFilter extends ComponentFilter
+  static protected class SkipFilter implements Filter<ComponentBean>
   {
-    protected boolean accept(
-      ComponentBean component)
+    @Override
+    public boolean accept(ComponentBean component)
     {
       String componentType = component.getComponentType();
 
@@ -1773,14 +1769,14 @@ public class TagdocReport extends AbstractMavenMultiPageReport
     }
   }
 
-  private class ComponentNamespaceFilter extends ComponentFilter
+  private class ComponentNamespaceFilter implements Filter<ComponentBean>
   {
     public ComponentNamespaceFilter()
     {
     }
 
-    protected boolean accept(
-      ComponentBean component)
+    @Override
+    public boolean accept(ComponentBean component)
     {
       if (component.getTagName() == null)
         return false;
@@ -1789,14 +1785,14 @@ public class TagdocReport extends AbstractMavenMultiPageReport
     }
   }
 
-  private class ValidatorNamespaceFilter extends ValidatorFilter
+  private class ValidatorNamespaceFilter implements Filter<ValidatorBean>
   {
     public ValidatorNamespaceFilter()
     {
     }
 
-    protected boolean accept(
-      ValidatorBean component)
+    @Override
+    public boolean accept(ValidatorBean component)
     {
       if (component.getTagName() == null)
         return false;
@@ -1805,14 +1801,14 @@ public class TagdocReport extends AbstractMavenMultiPageReport
     }
   }
 
-  private class ConverterNamespaceFilter extends ConverterFilter
+  private class ConverterNamespaceFilter implements Filter<ConverterBean>
   {
     public ConverterNamespaceFilter()
     {
     }
 
-    protected boolean accept(
-      ConverterBean component)
+    @Override
+    public boolean accept(ConverterBean component)
     {
       if (component.getTagName() == null)
         return false;
@@ -1821,46 +1817,46 @@ public class TagdocReport extends AbstractMavenMultiPageReport
     }
   }
 
-  static final protected class TagAttributeFilter extends PropertyFilter
+  static final protected class TagAttributeFilter implements Filter<PropertyBean>
   {
-    protected boolean accept(
-      PropertyBean property)
+    @Override
+    public boolean accept(PropertyBean property)
     {
       return (!property.isTagAttributeExcluded());
     }
   }
 
-  static final protected class ComponentTagFilter extends ComponentFilter
+  static final protected class ComponentTagFilter implements Filter<ComponentBean>
   {
-    protected boolean accept(
-      ComponentBean component)
+    @Override
+    public boolean accept(ComponentBean component)
     {
       return (component.getTagName() != null);
     }
   }
 
-  static final protected class ConverterTagFilter extends ConverterFilter
+  static final protected class ConverterTagFilter implements Filter<ConverterBean>
   {
-    protected boolean accept(
-      ConverterBean converter)
+    @Override
+    public boolean accept(ConverterBean converter)
     {
       return (converter.getTagClass() != null);
     }
   }
 
-  static final protected class ValidatorTagFilter extends ValidatorFilter
+  static final protected class ValidatorTagFilter implements Filter<ValidatorBean>
   {
-    protected boolean accept(
-      ValidatorBean validator)
+    @Override
+    public boolean accept(ValidatorBean validator)
     {
       return (validator.getTagClass() != null);
     }
   }
 
-  final protected static class NonHiddenFilter extends PropertyFilter
+  final protected static class NonHiddenFilter implements Filter<PropertyBean>
   {
-    protected boolean accept(
-        PropertyBean property)
+    @Override
+    public boolean accept(PropertyBean property)
     {
       return (!property.isHidden());
     }
@@ -1904,7 +1900,7 @@ public class TagdocReport extends AbstractMavenMultiPageReport
    * @parameter
    * @required
    */
-  private Map taglibs;
+  private Map<String, String> taglibs;
 
   /**
    * @parameter expression="META-INF/maven-faces-plugin/faces-config.xml"
diff --git a/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/AbstractGenerateSourcesMojo.java b/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/AbstractGenerateSourcesMojo.java
index da8ab17..3b707e3 100644
--- a/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/AbstractGenerateSourcesMojo.java
+++ b/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/AbstractGenerateSourcesMojo.java
@@ -21,7 +21,6 @@ package org.apache.myfaces.trinidadbuild.plugin.xrts;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
-import java.io.InputStream;
 
 import java.util.Arrays;
 import java.util.Map;
@@ -95,15 +94,15 @@ abstract public class AbstractGenerateSourcesMojo extends AbstractMojo
       if (xrtsFiles.length > 0)
       {
         RTSWriter writer = getRTSWriter();
-        Map params = new HashMap();
+        Map<String, Object> params = new HashMap<String, Object>();
 
-        List dirtyXRTS = new LinkedList(Arrays.asList(xrtsFiles));
+        List<String> dirtyXRTS = new LinkedList<String>(Arrays.asList(xrtsFiles));
         SAXParserFactory factory = SAXParserFactory.newInstance();
         factory.setValidating(false);
 
-        for (Iterator i=dirtyXRTS.iterator(); i.hasNext();)
+        for (Iterator<String> i = dirtyXRTS.iterator(); i.hasNext();)
         {
-          String xrtsFile = (String)i.next();
+          String xrtsFile = i.next();
           File targetFile = getTargetFile(xrtsFile);
           if (targetFile.exists())
           {
@@ -123,9 +122,9 @@ abstract public class AbstractGenerateSourcesMojo extends AbstractMojo
         {
           getLog().info("Generating " + dirtyXRTS.size() + " XRTS bundles to " + getTargetDirectory());
 
-          for (Iterator i=dirtyXRTS.iterator(); i.hasNext();)
+          for (Iterator<String> i = dirtyXRTS.iterator(); i.hasNext();)
           {
-            String xrtsFile = (String)i.next();
+            String xrtsFile = i.next();
             File sourceFile = getSourceFile(xrtsFile);
             File targetFile = getTargetFile(xrtsFile);
             String baseName = getBasename(xrtsFile);
diff --git a/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/GenerateSourcesMojo.java b/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/GenerateSourcesMojo.java
index 8afaff4..c767fc6 100644
--- a/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/GenerateSourcesMojo.java
+++ b/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/GenerateSourcesMojo.java
@@ -66,31 +66,37 @@ public class GenerateSourcesMojo extends AbstractGenerateSourcesMojo
    */
   private File targetDirectory;
 
+  @Override
   protected String[] getDefaultLocales()
   {
     return defaultLocales;
   }
 
+  @Override
   protected String[] getExcludes()
   {
     return excludes;
   }
 
+  @Override
   protected void addCompileSourceRoot() throws IOException
   {
     project.addCompileSourceRoot(targetDirectory.getCanonicalPath());
   }
 
+  @Override
   protected String getTargetType()
   {
     return targetType;
   }
 
+  @Override
   protected File getSourceDirectory()
   {
     return sourceDirectory;
   }
 
+  @Override
   protected File getTargetDirectory()
   {
     return targetDirectory;
diff --git a/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/GenerateTestSourcesMojo.java b/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/GenerateTestSourcesMojo.java
index 169c22e..2ab7f2b 100644
--- a/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/GenerateTestSourcesMojo.java
+++ b/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/GenerateTestSourcesMojo.java
@@ -66,31 +66,37 @@ public class GenerateTestSourcesMojo extends AbstractGenerateSourcesMojo
    */
   private File targetDirectory;
 
+  @Override
   protected String[] getDefaultLocales()
   {
     return defaultLocales;
   }
 
+  @Override
   protected String[] getExcludes()
   {
     return testExcludes;
   }
 
+  @Override
   protected void addCompileSourceRoot() throws IOException
   {
     project.addTestCompileSourceRoot(targetDirectory.getCanonicalPath());
   }
 
+  @Override
   protected String getTargetType()
   {
     return targetType;
   }
 
+  @Override
   protected File getSourceDirectory()
   {
     return testSourceDirectory;
   }
 
+  @Override
   protected File getTargetDirectory()
   {
     return targetDirectory;
diff --git a/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/ListRTSWriter.java b/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/ListRTSWriter.java
index 59fba4e..79251ef 100644
--- a/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/ListRTSWriter.java
+++ b/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/ListRTSWriter.java
@@ -23,7 +23,6 @@ import java.io.File;
 import java.io.FileWriter;
 import java.io.PrintWriter;
 import java.util.Map;
-//import java.util.StringTokenizer;
 
 
 /**
@@ -53,7 +52,8 @@ public class ListRTSWriter implements RTSWriter
    * @param meta a <code>Map</code> of parsed non-resource data
    * (e.g., authors).
    */
-  public void startBundle(Map parms, Map meta)
+  @Override
+  public void startBundle(Map<String, ?> parms, Map<String, ?> meta)
     throws Throwable
   {
     File outFile = (File)parms.get("outFile");
@@ -139,12 +139,15 @@ public class ListRTSWriter implements RTSWriter
     
   }
 
-  protected void writeImports(Map parms, Map meta)
+  protected void writeImports(@SuppressWarnings("unused") Map<String, ?> parms,
+                              @SuppressWarnings("unused") Map<String, ?> meta)
      throws Throwable
   {
+    // do nothing
   }
 
-  public void writeString(Map parms, Map meta, String key,
+  @Override
+  public void writeString(Map<String, ?> parms, Map<String, ?> meta, String key,
     String value) throws Throwable
   {
     _pw.println("    {\"" + UnicodeEscapes.convert(key) + "\", \"" +
@@ -161,7 +164,8 @@ public class ListRTSWriter implements RTSWriter
    * @param meta a <code>Map</code> of parsed non-resource data
    * (e.g., authors).
    */
-  public void endBundle(Map parms, Map meta) throws Throwable
+  @Override
+  public void endBundle(Map<String, ?> parms, Map<String, ?> meta) throws Throwable
   {
     _pw.println("    };");
     _pw.println("  }");
diff --git a/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/RTSWriter.java b/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/RTSWriter.java
index c2be3e9..2164835 100644
--- a/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/RTSWriter.java
+++ b/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/RTSWriter.java
@@ -39,13 +39,13 @@ public interface RTSWriter
 {
 
   /**
-   * Writes the <file or other output header(s).
+   * Writes the file or other output header(s).
    *
    * @param parms a <code>Map</code> of command line parameters.
    * @param meta a <code>Map</code> of parsed non-resource data
    * (e.g., package).
    */
-  public void startBundle(Map parms, Map meta)
+  public void startBundle(Map<String, ?> parms, Map<String, ?> meta)
     throws Throwable;
 
   /**
@@ -67,7 +67,7 @@ public interface RTSWriter
    * @param key a <code>String</code> key.
    * @param value a <code>String</code> value.
    */
-  public void writeString(Map parms, Map meta, String key,
+  public void writeString(Map<String, ?> parms, Map<String, ?> meta, String key,
     String value) throws Throwable;
 
   /**
@@ -77,6 +77,6 @@ public interface RTSWriter
    * @param meta a <code>Map</code> of parsed non-resource data
    * (e.g., package).
    */
-  public void endBundle(Map parms, Map meta) throws Throwable;
+  public void endBundle(Map<String, ?> parms, Map<String, ?> meta) throws Throwable;
 
 }
diff --git a/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/XRTSGenerator.java b/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/XRTSGenerator.java
index aed7282..4bea2c1 100644
--- a/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/XRTSGenerator.java
+++ b/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/XRTSGenerator.java
@@ -23,9 +23,6 @@ import java.util.Map;
 import javax.xml.parsers.SAXParser;
 
 import org.xml.sax.InputSource;
-import org.xml.sax.Parser;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
 
 /**
  * The <code>XRTSGenerator</code> class is a online facility (as opposed to the
@@ -49,7 +46,7 @@ public final class XRTSGenerator
    *
    */
   public static void generate(SAXParser parser, InputSource is, RTSWriter rtsw,
-    Map parms) throws Throwable
+    Map<String, ?> parms) throws Throwable
   {
     XRTSParser rtsp = new XRTSParser(rtsw, parms);
     parser.parse(is, rtsp);
diff --git a/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/XRTSParser.java b/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/XRTSParser.java
index f52c3c5..8e5938c 100644
--- a/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/XRTSParser.java
+++ b/maven-xrts-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/xrts/XRTSParser.java
@@ -22,14 +22,11 @@ import java.util.Map;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Set;
-import java.util.List;
 
 import org.xml.sax.AttributeList;
 import org.xml.sax.HandlerBase;
-import org.xml.sax.InputSource;
 import org.xml.sax.Locator;
 import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
 
 /**
  * */
@@ -44,7 +41,7 @@ final class XRTSParser extends HandlerBase
   {
   }
 
-  public XRTSParser(RTSWriter bw, Map parms)
+  public XRTSParser(RTSWriter bw, Map<String, ?> parms)
   {
     _bundleWriter = bw;
     _parms = parms;
@@ -58,6 +55,7 @@ final class XRTSParser extends HandlerBase
    *
    * @param locator A locator for all SAX document events.
    */
+  @Override
   public void setDocumentLocator (Locator locator)
   {
     _locator = locator;
@@ -78,6 +76,7 @@ final class XRTSParser extends HandlerBase
    * Receive notification of the end of the document.
    * SAX Parser event for finding the end of an XML-based RTS document
    */
+  @Override
   public void endDocument() throws SAXException
   {
 //    System.out.println("EndDocument");
@@ -97,6 +96,7 @@ final class XRTSParser extends HandlerBase
    * @param name the element type name.
    * @param attributes the specified or defaulted attributes.
    */
+  @Override
   public void startElement(String name, AttributeList atts) throws SAXException
   {
     _nestingLevel++;
@@ -144,6 +144,7 @@ final class XRTSParser extends HandlerBase
    * Receive notification of the end of an element.
    * @param name the element type name.
    */
+  @Override
   public void endElement(String name) throws SAXException
   {
     if ((_nestingLevel == 2) && name.equals("resource"))
@@ -169,6 +170,7 @@ final class XRTSParser extends HandlerBase
    * @param start the start position in the character array.
    * @param length the number of characters to use from the character array.
    */
+  @Override
   public void ignorableWhitespace(char[] cbuf, int start, int len)
     throws SAXException
   {
@@ -182,6 +184,7 @@ final class XRTSParser extends HandlerBase
    * @param start the start position in the character array.
    * @param length the number of characters to use from the character array.
    */
+  @Override
   public void characters(char[] cbuf, int start, int len) throws SAXException
   {
     if (_nestingLevel == 2)
@@ -200,7 +203,7 @@ final class XRTSParser extends HandlerBase
   private Set<String> _uniqKeys = new HashSet<String>();
 
   private RTSWriter _bundleWriter;
-  private Map _parms;
+  private Map<String, ?> _parms;
 
   private int _nestingLevel = 0;
   private boolean _startDoc = false;

-- 
To stop receiving notification emails like this one, please contact
"commits@myfaces.apache.org" <co...@myfaces.apache.org>.