You are viewing a plain text version of this content. The canonical link for it is here.
Posted to adffaces-commits@incubator.apache.org by gc...@apache.org on 2006/11/17 18:32:04 UTC

svn commit: r476241 - /incubator/adffaces/trunk/plugins/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateJspTaglibsMojo.java

Author: gcrawford
Date: Fri Nov 17 10:32:03 2006
New Revision: 476241

URL: http://svn.apache.org/viewvc?view=rev&rev=476241
Log:
Fix for issue 296 add hooks for custom code to GenerateJspTaglibsMojo

1] add 3 protected methods which are no-ops in Trinidad. These are each called once in the class.

// hook for custom component tag java imports
 protected void addCustomComponentTagHandlerImports(
     Set imports,
     ComponentBean component)
 {
 }


 // hook for custom component tag java content
 protected void writeCustomComponentTagHandlerContent(
     PrettyWriter out,
     ComponentBean component) throws IOException
 {
 }

 // hook for custom component descriptor content
 protected void writeCustomComponentTagDescriptorContent(
     XMLStreamWriter stream,
     ComponentBean component) throws XMLStreamException
 {
 }

2] Change _writeTagAttribute to be protected


3] All the injected property params are null when subclassing, so I need to make them protected instead of private and set them from my subclass.

Modified:
    incubator/adffaces/trunk/plugins/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateJspTaglibsMojo.java

Modified: incubator/adffaces/trunk/plugins/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateJspTaglibsMojo.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/plugins/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateJspTaglibsMojo.java?view=diff&rev=476241&r1=476240&r2=476241
==============================================================================
--- incubator/adffaces/trunk/plugins/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateJspTaglibsMojo.java (original)
+++ incubator/adffaces/trunk/plugins/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateJspTaglibsMojo.java Fri Nov 17 10:32:03 2006
@@ -97,6 +97,29 @@
     }
   }
 
+
+  // hook for custom component tag java content
+  protected void writeCustomComponentTagHandlerContent(
+      PrettyWriter  out,
+      ComponentBean component) throws IOException
+  {
+  }
+
+  // hook for custom component tag java imports
+  protected void addCustomComponentTagHandlerImports(
+      Set           imports,
+      ComponentBean component)
+  {
+  }
+
+  // hook for custom component descriptor content
+  protected void writeCustomComponentTagDescriptorContent(
+      XMLStreamWriter  stream,
+      ComponentBean    component)throws XMLStreamException
+  {
+  }
+
+
   /**
    * Generates tag library descriptors for parsed component metadata.
    */
@@ -342,12 +365,15 @@
       stream.writeEndElement();
     }
 
+
+    GenerateJspTaglibsMojo.this.writeCustomComponentTagDescriptorContent(stream, component);
+
     Iterator properties = component.properties(true);
     properties = new FilteredIterator(properties, new TagAttributeFilter());
     while (properties.hasNext())
     {
       PropertyBean property = (PropertyBean)properties.next();
-      _writeTagAttribute(stream,
+      writeTagAttribute(stream,
                          property.getPropertyName(),
                          property.getDescription(),
                          property.getUnsupportedAgents());
@@ -383,14 +409,14 @@
     }
 
     // converters need an id attribute
-    _writeTagAttribute(stream, "id", "the identifier for the component", null);
+    writeTagAttribute(stream, "id", "the identifier for the component", null);
 
     Iterator properties = converter.properties();
     properties = new FilteredIterator(properties, new TagAttributeFilter());
     while (properties.hasNext())
     {
       PropertyBean property = (PropertyBean)properties.next();
-      _writeTagAttribute(stream,
+      writeTagAttribute(stream,
                          property.getPropertyName(),
                          property.getDescription(),
                          property.getUnsupportedAgents());
@@ -400,7 +426,7 @@
     stream.writeEndElement();
   }
 
-  private void _writeTagAttribute(
+  protected void writeTagAttribute(
     XMLStreamWriter stream,
     String          propertyName,
     String          description,
@@ -474,14 +500,14 @@
     }
 
     // validators need an id attribute
-    _writeTagAttribute(stream, "id", "the identifier for the component", null);
+    writeTagAttribute(stream, "id", "the identifier for the component", null);
 
     Iterator properties = validator.properties();
     properties = new FilteredIterator(properties, new TagAttributeFilter());
     while (properties.hasNext())
     {
       PropertyBean property = (PropertyBean)properties.next();
-      _writeTagAttribute(stream,
+      writeTagAttribute(stream,
                          property.getPropertyName(),
                          property.getDescription(),
                          property.getUnsupportedAgents());
@@ -1254,6 +1280,11 @@
           _writeGetComponentType(out, component);
           _writeGetRendererType(out, component);
         }
+
+
+        GenerateJspTaglibsMojo.this.writeCustomComponentTagHandlerContent(out, component);
+
+
         _writePropertyMethods(out, component);
         _writeSetProperties(out, componentClass, component);
         _writeRelease(out, component);
@@ -1316,7 +1347,7 @@
         if (propertyClass != null && property.isLiteralOnly())
         {
           // Import the property class only if only litterals are supported
-          // otherwise the class will be a String inside the tag to support 
+          // otherwise the class will be a String inside the tag to support
           // ValueBinding
           imports.add(propertyClass);
         }
@@ -1362,9 +1393,13 @@
         //}
       }
 
+
+      GenerateJspTaglibsMojo.this.addCustomComponentTagHandlerImports(imports, component);
+
       // do not import implicit!
       imports.removeAll(Util.PRIMITIVE_TYPES);
 
+
       String tagClass = component.getTagClass();
       String packageName = Util.getPackageFromFullClass(tagClass);
       writeImports(out, packageName, imports);
@@ -1991,55 +2026,55 @@
    * @required
    * @readonly
    */
-  private MavenProject project;
+  protected MavenProject project;
 
   /**
    * @parameter
    * @required
    */
-  private Map taglibs;
+  protected Map taglibs;
 
   /**
    * @parameter expression="META-INF/maven-faces-plugin/faces-config.xml"
    * @required
    * @readonly
    */
-  private String resourcePath;
+  protected String resourcePath;
 
   /**
    * @parameter expression="src/main/conf"
    * @required
    */
-  private File configSourceDirectory;
+  protected File configSourceDirectory;
 
   /**
    * @parameter expression="src/main/java-templates"
    * @required
    */
-  private File templateSourceDirectory;
+  protected File templateSourceDirectory;
 
   /**
    * @parameter expression="${project.build.directory}/maven-faces-plugin/main/java"
    * @required
    */
-  private File generatedSourceDirectory;
+  protected File generatedSourceDirectory;
 
   /**
    * @parameter expression="${project.build.directory}/maven-faces-plugin/main/resources"
    * @required
    */
-  private File generatedResourcesDirectory;
+  protected File generatedResourcesDirectory;
 
   /**
    * @parameter
    * @required
    */
-  private String packageContains;
+  protected String packageContains;
 
   /**
    * @parameter
    */
-  private boolean force;
+  protected boolean force;
 
   static private String _resolveType(
     String className)