TRINIDAD-1898

reflecting new Converter/Validaotr EL Tags in code generator

did some more generics 'work'
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 26fd284..04a3717 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
@@ -48,7 +48,7 @@
       StringWriter sw = new StringWriter();
       PrettyWriter out = new PrettyWriter(sw);
 
-      Set imports = createImports(converter);
+      Set<String> imports = createImports(converter);
       writeHeader(out, converter, imports);
 
       writeClass(out, converter);
@@ -79,7 +79,7 @@
     }
   }
 
-  protected abstract Set createImports(ConverterBean converter);
+  protected abstract Set<String> createImports(ConverterBean converter);
   protected abstract void writeSetProperty(PrettyWriter out, PropertyBean property);
 
 
@@ -174,7 +174,8 @@
     }
 
 
-  private void writeClass(PrettyWriter out, AbstractTagBean abstractTag) {
+  protected void writeClass(PrettyWriter out, AbstractTagBean abstractTag)
+  {
     String className = Util.getClassFromFullClass(abstractTag.getTagClass());
     if (is12())
     {
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/AbstractTagGenerator.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/AbstractTagGenerator.java
index 3d180ea..15c8c6e 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/AbstractTagGenerator.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/AbstractTagGenerator.java
@@ -181,7 +181,7 @@
 
   protected void writeImports(
     PrettyWriter   out,
-    AbstractTagBean  abstractTagBean, Set imports)
+    AbstractTagBean  abstractTagBean, Set<String> imports)
   {
 
     // do not import implicit!
@@ -191,7 +191,7 @@
     GeneratorHelper.writeImports(out, packageName, imports);
   }
 
-  protected final void writeHeader(PrettyWriter out, AbstractTagBean converter, Set imports) {
+  protected final void writeHeader(PrettyWriter out, AbstractTagBean converter, Set<String> imports) {
     String packageName = Util.getPackageFromFullClass(converter.getTagClass());
     // header/copyright
     writePreamble(out);
@@ -209,7 +209,7 @@
     out.println(" */");
   }
 
-  protected void addImportsFromPropertes(AbstractTagBean abstractTagBean, Set imports) {
+  protected void addImportsFromPropertes(AbstractTagBean abstractTagBean, Set<String> imports) {
     Iterator<PropertyBean> properties = abstractTagBean.properties();
     properties = new FilteredIterator(properties, new TagAttributeFilter());
 
@@ -242,9 +242,9 @@
   // TODO: for everything but Locale, String[], Date, and TimeZone,
   // in JSF 1.2 we should already be going through coercion, and
   // not need any of the "TagUtils" functions
-  private Map _createResolvableTypes()
+  private Map<String, String> _createResolvableTypes()
   {
-    Map resolvableTypes = new HashMap();
+    Map<String, String> resolvableTypes = new HashMap<String, String>();
 
     resolvableTypes.put("boolean", "Boolean");
     resolvableTypes.put("char", "Character");
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/AbstractValidatorTagGenerator.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/AbstractValidatorTagGenerator.java
index ff19d86..fc455ff 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/AbstractValidatorTagGenerator.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/AbstractValidatorTagGenerator.java
@@ -49,7 +49,7 @@
 
       StringWriter sw = new StringWriter();
       PrettyWriter out = new PrettyWriter(sw);
-      Set imports = createImports(validator);
+      Set<String> imports = createImports(validator);
       writeHeader(out, validator, imports);
 
       writeClass(out, validator);
@@ -81,9 +81,10 @@
     }
   }
 
-  protected abstract Set createImports(ValidatorBean validator);
+  protected abstract Set<String> createImports(ValidatorBean validator);
 
-  protected void writeClass(PrettyWriter out, AbstractTagBean abstractTag) {
+  protected void writeClass(PrettyWriter out, AbstractTagBean abstractTag)
+  {
     String className = Util.getClassFromFullClass(abstractTag.getTagClass());
     if (is12())
     {
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/MyFacesConverterTagGenerator.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/MyFacesConverterTagGenerator.java
index 0462ed8..a21203d 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/MyFacesConverterTagGenerator.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/MyFacesConverterTagGenerator.java
@@ -33,8 +33,8 @@
     super(is12, licenseHeader, log);
   }
 
-  protected Set createImports(ConverterBean converter) {
-    Set imports = new TreeSet();
+  protected Set<String> createImports(ConverterBean converter) {
+    Set<String> imports = new TreeSet<String>();
 
     if (is12())
     {
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/TrinidadConverterTagGenerator.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/TrinidadConverterTagGenerator.java
index 85c280e..c6fdbe1 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/TrinidadConverterTagGenerator.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/TrinidadConverterTagGenerator.java
@@ -20,6 +20,7 @@
 
 import org.apache.maven.plugin.logging.Log;
 import org.apache.myfaces.trinidadbuild.plugin.faces.io.PrettyWriter;
+import org.apache.myfaces.trinidadbuild.plugin.faces.parse.AbstractTagBean;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.ConverterBean;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.PropertyBean;
 import org.apache.myfaces.trinidadbuild.plugin.faces.util.Util;
@@ -38,7 +39,7 @@
 
     if (is12())
     {
-      imports.add("javax.faces.webapp.ConverterELTag");
+      imports.add("org.apache.myfaces.trinidad.webapp.TrinidadConverterELTag");
       imports.add("javax.faces.context.FacesContext");
       imports.add("javax.faces.application.Application");
     }
@@ -66,7 +67,23 @@
     return imports;
   }
 
-
+  @Override
+  protected void writeClass(PrettyWriter out, AbstractTagBean abstractTag)
+  {
+    String className = Util.getClassFromFullClass(abstractTag.getTagClass());
+    if (is12())
+    {
+      out.println("public class " + className +
+                  " extends TrinidadConverterELTag");
+      out.println("{");
+      out.indent();
+    }
+    else
+    {
+      // non 1.2
+      super.writeClass(out, abstractTag);
+    }
+  }
 
 
   protected void writeSetProperty(
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/TrinidadValidatorTagGenerator.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/TrinidadValidatorTagGenerator.java
index 1391fc8..2b2dac1 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/TrinidadValidatorTagGenerator.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/generator/taglib/TrinidadValidatorTagGenerator.java
@@ -20,6 +20,7 @@
 
 import org.apache.maven.plugin.logging.Log;
 import org.apache.myfaces.trinidadbuild.plugin.faces.io.PrettyWriter;
+import org.apache.myfaces.trinidadbuild.plugin.faces.parse.AbstractTagBean;
 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.Util;
@@ -38,7 +39,7 @@
 
     if (is12())
     {
-      imports.add("javax.faces.webapp.ValidatorELTag");
+      imports.add("org.apache.myfaces.trinidad.webapp.TrinidadValidatorELTag");
       imports.add("javax.faces.context.FacesContext");
       imports.add("javax.faces.application.Application");
     }
@@ -65,6 +66,24 @@
     addImportsFromPropertes(validator, imports);
     return imports;
   }
+  
+  @Override
+  protected void writeClass(PrettyWriter out, AbstractTagBean abstractTag)
+  {
+    String className = Util.getClassFromFullClass(abstractTag.getTagClass());
+    if (is12())
+    {
+      out.println("public class " + className +
+                  " extends TrinidadValidatorELTag");
+      out.println("{");
+      out.indent();
+    }
+    else
+    {
+      // non 1.2
+      super.writeClass(out, abstractTag);
+    }
+  }
 
   protected void writeSetProperty(
     PrettyWriter out,