You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by al...@apache.org on 2010/08/12 22:51:33 UTC
svn commit: r984963 - in
/myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core: ./
src/main/resources/META-INF/
Author: aliok
Date: Thu Aug 12 20:51:33 2010
New Revision: 984963
URL: http://svn.apache.org/viewvc?rev=984963&view=rev
Log:
+Maven config to generate website of the project.
+Updated velocitiy templates
Removed:
myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/facelets-taglib20_fx.vm
Modified:
myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/pom.xml
myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/facelets-taglib20.vm
myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/faces-config20.vm
myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/jsp-tld.vm
Modified: myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/pom.xml?rev=984963&r1=984962&r2=984963&view=diff
==============================================================================
--- myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/pom.xml (original)
+++ myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/pom.xml Thu Aug 12 20:51:33 2010
@@ -169,6 +169,7 @@
<execution>
<id>make-html5-hx-tld</id>
<configuration>
+ <outputDirectory>${project.build.directory}/tlddoc-facelets</outputDirectory>
<xmlFile>META-INF/html5-hx.tld</xmlFile>
<xmlBaseFile>src/main/resources/META-INF/jsp-tld-base.tld</xmlBaseFile>
<templateFile>jsp-tld.vm</templateFile>
@@ -214,6 +215,7 @@
<execution>
<id>make-html5-fx-tld</id>
<configuration>
+ <outputDirectory>${project.build.directory}/tlddoc-facelets</outputDirectory>
<xmlFile>META-INF/html5-fx.tld</xmlFile>
<xmlBaseFile>src/main/resources/META-INF/jsp-tld-base.tld</xmlBaseFile>
<templateFile>jsp-tld.vm</templateFile>
@@ -240,7 +242,7 @@
<configuration>
<xmlFile>META-INF/html5-fx.taglib.xml</xmlFile>
<xmlBaseFile>src/main/resources/META-INF/facelets-taglib-base.xml</xmlBaseFile>
- <templateFile>facelets-taglib20_fx.vm</templateFile>
+ <templateFile>facelets-taglib20.vm</templateFile>
<metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
<params>
<shortname>fx</shortname>
@@ -275,6 +277,127 @@
</executions>
</plugin>
</plugins>
- </build>
+ </build>
+
+ <profiles>
+ <profile>
+ <!--
+ - Whenever the full website is generated, the command
+ - mvn -Pgenerate-site -Pgenerate-tlddoc site
+ - should be used. This will create the "tlddoc" directory containing
+ - nicely-formatted versions of the docs in the jsp taglib file, ie
+ - docs on all the available tags and their properties.
+ -->
+ <id>generate-site</id>
+ <build>
+ <plugins>
+ <plugin>
+ <!-- Generate content for custom tagdoc report -->
+ <groupId>org.apache.myfaces.buildtools</groupId>
+ <artifactId>myfaces-builder-plugin</artifactId>
+ <version>1.0.6</version>
+ <executions>
+ <execution>
+ <id>site-tagdoc-content</id>
+ <configuration>
+ <metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
+ <modelIds>
+ <modelId>html5-comp-lib-core</modelId>
+ </modelIds>
+ <taglibs>
+ <hx>http://myfaces.apache.org/html5/html</hx>
+ <fx>http://myfaces.apache.org/html5/core</fx>
+ </taglibs>
+ </configuration>
+ <goals><goal>tagdoc-content</goal></goals>
+ </execution>
+ <execution>
+ <id>site-web-config</id>
+ <configuration>
+ <metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
+ <outputDirectory>${project.build.directory}/generated-site/xdoc</outputDirectory>
+ <xmlFile>webconfig.xml</xmlFile>
+ <modelIds>
+ <modelId>html5-comp-lib-core</modelId>
+ </modelIds>
+ </configuration>
+ <goals>
+ <goal>make-config</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <!-- Unfortunately we can't execute the same report twice, so
+ we have to generate this files outside report generation. -->
+ <groupId>net.sourceforge.maven-taglib</groupId>
+ <artifactId>maven-taglib-plugin</artifactId>
+ <version>2.4</version>
+ <executions>
+ <execution>
+ <id>tlddoc-facelets</id>
+ <phase>site</phase>
+ <goals>
+ <goal>taglibdoc</goal>
+ </goals>
+ <inherited>false</inherited>
+ <configuration>
+ <title>${project.name} Tag library documentation for Facelets</title>
+ <srcDir>${basedir}/target/tlddoc-facelets</srcDir>
+ <tldDocDir>${basedir}/target/site/tlddoc-facelets</tldDocDir>
+ </configuration>
+ </execution>
+ <execution>
+ <id>tlddoc-jsp</id>
+ <phase>site</phase>
+ <goals>
+ <goal>taglibdoc</goal>
+ </goals>
+ <inherited>false</inherited>
+ <configuration>
+ <taglib.src.dir>${basedir}/target/tlddoc-facelets</taglib.src.dir>
+ <tldDocDir>${basedir}/target/site/tlddoc</tldDocDir>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>net.sourceforge.maven-taglib</groupId>
+ <artifactId>maven-taglib-plugin</artifactId>
+ <version>2.4</version>
+ <configuration>
+ <taglib.src.dir>${basedir}/target/classes/META-INF</taglib.src.dir>
+ <tldDocDir>${basedir}/target/site/tlddoc</tldDocDir>
+ </configuration>
+ </plugin>
+ <plugin>
+ <!-- trigger tagdoc-index report -->
+ <groupId>org.apache.myfaces.buildtools</groupId>
+ <artifactId>myfaces-builder-plugin</artifactId>
+ <version>1.0.6</version>
+ <reportSets>
+ <reportSet>
+ <configuration>
+ <metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
+ <modelIds>
+ <modelId>html5-comp-lib-core</modelId>
+ </modelIds>
+ <taglibs>
+ <hx>http://myfaces.apache.org/html5/html</hx>
+ <fx>http://myfaces.apache.org/html5/core</fx>
+ </taglibs>
+ </configuration>
+ <reports><report>tagdoc-index</report></reports>
+ </reportSet>
+ </reportSets>
+ </plugin>
+ </plugins>
+ </reporting>
+ </profile>
+ </profiles>
</project>
\ No newline at end of file
Modified: myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/facelets-taglib20.vm
URL: http://svn.apache.org/viewvc/myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/facelets-taglib20.vm?rev=984963&r1=984962&r2=984963&view=diff
==============================================================================
--- myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/facelets-taglib20.vm (original)
+++ myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/facelets-taglib20.vm Thu Aug 12 20:51:33 2010
@@ -23,14 +23,20 @@
version="2.0">
<namespace>$uri</namespace>
+#if ($compositeLibrary)
+ <composite-library-name>$compositeLibrary</composite-library-name>
+#end
+
+$baseContent
<!-- Component Tags -->
#set ($componentList = ${model.getComponents()})
#foreach( $component in $componentList )
#if ($modelIds.contains($component.modelId)
- && ($component.name) && $utils.getTagPrefix($component.name) == $shortname)
-
-#if (!$component.isConfigExcluded())
+ && ($component.name))
+#if (!$component.isConfigExcluded() && !$component.isComposite())
+## Check if we don't have a facelet tag taking precedence over this description
+#if (! ${model.findFaceletTagByName($component.name)})
<tag>
<tag-name>$utils.getTagName($component.name)</tag-name>
<component>
@@ -48,13 +54,16 @@
#end
#end
#end
+#end
<!-- Converter tags -->
#set ($componentList = ${model.getConverters()})
#foreach( $component in $componentList )
#if ($modelIds.contains($component.modelId)
&& ($component.name))
-#if ($component.converterId)
+#if ($component.converterId)
+## Check if we don't have a facelet tag taking precedence over this description
+#if (! ${model.findFaceletTagByName($component.name)})
<tag>
<tag-name>$utils.getTagName($component.name)</tag-name>
<converter>
@@ -64,6 +73,7 @@
#end
#end
#end
+#end
<!-- Validator tags -->
#set ($componentList = ${model.getValidators()})
@@ -71,6 +81,8 @@
#if ($modelIds.contains($component.modelId)
&& ($component.name))
#if ($component.validatorId)
+## Check if we don't have a facelet tag taking precedence over this description
+#if (! ${model.findFaceletTagByName($component.name)})
<tag>
<tag-name>$utils.getTagName($component.name)</tag-name>
<validator>
@@ -80,13 +92,34 @@
#end
#end
#end
+#end
-#* ATTENTION: FACELET TAGS THAT ARE SPECIFIED BY @JSFJspTag annotation's tagHandler property are ignored!
+ <!-- Behavior tags -->
+#set ($behaviorList = ${model.getBehaviors()})
+#foreach( $behavior in $behaviorList )
+#if ($modelIds.contains($behavior.modelId)
+ && ($behavior.name))
+#if ($behavior.behaviorId)
+## Check if we don't have a facelet tag taking precedence over this description
+#if (! ${model.findFaceletTagByName($behavior.name)})
+ <tag>
+ <tag-name>$utils.getTagName($behavior.name)</tag-name>
+ <behavior>
+ <behavior-id>$behavior.behaviorId</behavior-id>
+ </behavior>
+ </tag>
+#end
+#end
+#end
+#end
+
<!-- Single Tags -->
#set ($tagList = $model.getTags())
#foreach( $tag in $tagList )
#if ($modelIds.contains($tag.modelId))
#if ($tag.tagHandler)
+## Check if we don't have a facelet tag taking precedence over this description
+#if (! ${model.findFaceletTagByName($tag.name)})
<tag>
<tag-name>$utils.getTagName($tag.name)</tag-name>
<handler-class>$tag.tagHandler</handler-class>
@@ -94,19 +127,43 @@
#end
#end
#end
-*#
+#end
- <!-- Single Facelets Tags -->
+ <!-- Facelet Tags -->
#set ($faceletTagList = $model.getFaceletTags())
#foreach( $faceletTag in $faceletTagList )
-#if ($modelIds.contains($faceletTag.modelId)
- && ($faceletTag.name) && $utils.getTagPrefix($faceletTag.name) == $shortname)
-#if ($faceletTag.className)
+#if ($modelIds.contains($faceletTag.modelId) && ($faceletTag.name))
+#if ($utils.getTagPrefix($faceletTag.name) == $shortname)
<tag>
<tag-name>$utils.getTagName($faceletTag.name)</tag-name>
- <handler-class>$faceletTag.className</handler-class>
+#if ($faceletTag.componentClass)
+#set ($component = ${model.findComponentByClassName($faceletTag.componentClass)})
+ <component>
+ <component-type>$component.type</component-type>
+#if ($component.rendererType)
+#if (!($component.rendererType == ""))
+ <renderer-type>$component.rendererType</renderer-type>
+#end
+#end
+ <handler-class>$faceletTag.className</handler-class>
+ </component>
+#elseif ($faceletTag.converterClass)
+#set ($converter = ${model.findConverterByClassName($faceletTag.converterClass)})
+ <converter>
+ <converter-id>$converter.converterId</converter-id>
+ <handler-class>$faceletTag.className</handler-class>
+ </converter>
+#elseif ($faceletTag.behaviorClass)
+#set ($behavior = ${model.findBehaviorByClassName($faceletTag.behaviorClass)})
+ <behavior>
+ <behavior-id>$behavior.behaviorId</behavior-id>
+ <handler-class>$faceletTag.className</handler-class>
+ </behavior>
+#else
+ <handler-class>$faceletTag.className</handler-class>
+#end
</tag>
#end
#end
#end
-</facelet-taglib>
\ No newline at end of file
+</facelet-taglib>
Modified: myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/faces-config20.vm
URL: http://svn.apache.org/viewvc/myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/faces-config20.vm?rev=984963&r1=984962&r2=984963&view=diff
==============================================================================
--- myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/faces-config20.vm (original)
+++ myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/faces-config20.vm Thu Aug 12 20:51:33 2010
@@ -57,6 +57,15 @@ $baseContent
</validator>
#end
#end
+#set ($behaviorList = ${model.getBehaviors()})
+#foreach( $behavior in $behaviorList )
+#if ($modelIds.contains($behavior.modelId))
+ <behavior>
+ <behavior-id>$behavior.behaviorId</behavior-id>
+ <behavior-class>$behavior.className</behavior-class>
+ </behavior>
+#end
+#end
#set ($renderKitList = ${model.getRenderKits()})
#foreach( $renderKit in $renderKitList )
<render-kit>
@@ -75,27 +84,14 @@ $baseContent
<!-- TODO: use the myfaces-builder-plugin here -->
<client-behavior-renderer>
- <client-behavior-renderer-type>org.apache.myfaces.html5.DragSourceBehavior</client-behavior-renderer-type>
- <client-behavior-renderer-class>org.apache.myfaces.html5.renderkit.behavior.DragSourceBehaviorRenderer</client-behavior-renderer-class>
+ <client-behavior-renderer-type>org.apache.myfaces.html5.DragSourceBehavior</client-behavior-renderer-type>
+ <client-behavior-renderer-class>org.apache.myfaces.html5.renderkit.behavior.DragSourceBehaviorRenderer</client-behavior-renderer-class>
</client-behavior-renderer>
<client-behavior-renderer>
- <client-behavior-renderer-type>org.apache.myfaces.html5.DropTargetBehavior</client-behavior-renderer-type>
- <client-behavior-renderer-class>org.apache.myfaces.html5.renderkit.behavior.DropTargetBehaviorRenderer</client-behavior-renderer-class>
+ <client-behavior-renderer-type>org.apache.myfaces.html5.DropTargetBehavior</client-behavior-renderer-type>
+ <client-behavior-renderer-class>org.apache.myfaces.html5.renderkit.behavior.DropTargetBehaviorRenderer</client-behavior-renderer-class>
</client-behavior-renderer>
</render-kit>
#end
-
-
-<!-- TODO: use the myfaces-builder-plugin here -->
- <behavior>
- <behavior-id>org.apache.myfaces.html5.DragSourceBehavior</behavior-id>
- <behavior-class>org.apache.myfaces.html5.behavior.DragSourceBehavior</behavior-class>
- </behavior>
- <behavior>
- <behavior-id>org.apache.myfaces.html5.DropTargetBehavior</behavior-id>
- <behavior-class>org.apache.myfaces.html5.behavior.DropTargetBehavior</behavior-class>
- </behavior>
-
-
</faces-config>
Modified: myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/jsp-tld.vm
URL: http://svn.apache.org/viewvc/myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/jsp-tld.vm?rev=984963&r1=984962&r2=984963&view=diff
==============================================================================
--- myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/jsp-tld.vm (original)
+++ myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/jsp-tld.vm Thu Aug 12 20:51:33 2010
@@ -17,15 +17,17 @@
* specific language governing permissions and limitations
* under the License.
-->
-<taglib xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
- version="2.1">
- <tlib-version>1.1.7</tlib-version>
+<taglib xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
+ version="2.1">
+ <description>$description</description>
+ <display-name>$displayname</display-name>
+ <tlib-version>1.1.7</tlib-version>
<short-name>$shortname</short-name>
<uri>$uri</uri>
- <display-name>$displayname</display-name>
- <description>$description</description>
+
+
$baseContent
@@ -34,8 +36,11 @@ $baseContent
#foreach( $component in $componentList )
#if ($modelIds.contains($component.modelId)
&& ($component.name))
-#if ($utils.getTagPrefix($component.name) == $shortname)
+#if ($utils.getTagPrefix($component.name) == $shortname)
+## Check if we don't have a facelet tag taking precedence over this description
+#if (! ${model.findFaceletTagByName($component.name)})
<tag>
+ <description><![CDATA[$component.longDescription]]></description>
<name>$utils.getTagName($component.name)</name>
<tag-class>$component.tagClass</tag-class>
#if ($component.bodyContent)
@@ -43,12 +48,16 @@ $baseContent
#else
<body-content>JSP</body-content>
#end
- <description><![CDATA[$component.longDescription]]></description>
#set ($propertyList = ${component.propertyList})
#foreach( $property in $propertyList )
#if (!$property.isTagExcluded())
<attribute>
+#if ($property.longDescription)
+ <description><![CDATA[$property.longDescription]]></description>
+#else
+ <description><![CDATA[]]></description>
+#end
<name>$property.jspName</name>
#if ($property.isRequired())
<required>$property.isRequired()</required>
@@ -72,8 +81,14 @@ $baseContent
#else
#if ( "$!property.isRtexprvalue()" == "")
#set ($type = $utils.getClassFromFullClass($property.className))
-#if ($type == "String")
- <deferred-value></deferred-value>
+#if($property.deferredValueType)
+ <deferred-value>
+ <type>$property.deferredValueType</type>
+ </deferred-value>
+#elseif ($type == "String")
+ <deferred-value>
+ <type>java.lang.String</type>
+ </deferred-value>
#else
<deferred-value>
<type>$property.className</type>
@@ -83,11 +98,6 @@ $baseContent
<rtexprvalue>$property.isRtexprvalue().booleanValue()</rtexprvalue>
#end
#end
-#if ($property.longDescription)
- <description><![CDATA[$property.longDescription]]></description>
-#else
- <description><![CDATA[]]></description>
-#end
</attribute>
#end
#end
@@ -95,13 +105,17 @@ $baseContent
#end
#end
#end
+#end
<!-- Converter tags -->
#set ($componentList = ${model.getConverters()})
#foreach( $component in $componentList )
#if ($modelIds.contains($component.modelId)
&& ($component.name))
-#if ($utils.getTagPrefix($component.name) == $shortname)
+#if ($utils.getTagPrefix($component.name) == $shortname)
+## Check if we don't have a facelet tag taking precedence over this description
+#if (! ${model.findFaceletTagByName($component.name)})
<tag>
+ <description><![CDATA[$component.longDescription]]></description>
<name>$utils.getTagName($component.name)</name>
<tag-class>$component.tagClass</tag-class>
#if ($component.bodyContent)
@@ -109,12 +123,16 @@ $baseContent
#else
<body-content>empty</body-content>
#end
- <description><![CDATA[$component.longDescription]]></description>
#set ($propertyList = ${component.propertyList})
#foreach( $property in $propertyList )
#if (!$property.isTagExcluded())
<attribute>
+#if ($property.longDescription)
+ <description><![CDATA[$property.longDescription]]></description>
+#else
+ <description><![CDATA[]]></description>
+#end
<name>$property.name</name>
#if ($property.isRequired())
<required>$property.isRequired()</required>
@@ -123,19 +141,22 @@ $baseContent
<rtexprvalue>false</rtexprvalue>
#else
#set ($type = $utils.getClassFromFullClass($property.className))
-#if ($type == "String")
- <deferred-value></deferred-value>
+#if($property.deferredValueType)
+ <deferred-value>
+ <type>$property.deferredValueType</type>
+ </deferred-value>
+#elseif ($type == "String")
+ <deferred-value>
+ <type>java.lang.String</type>
+ </deferred-value>
+
+
#else
<deferred-value>
<type>$property.className</type>
</deferred-value>
#end
#end
-#if ($property.longDescription)
- <description><![CDATA[$property.longDescription]]></description>
-#else
- <description><![CDATA[]]></description>
-#end
</attribute>
#end
#end
@@ -143,13 +164,17 @@ $baseContent
#end
#end
#end
+#end
<!-- Validator tags -->
#set ($componentList = ${model.getValidators()})
#foreach( $component in $componentList )
#if ($modelIds.contains($component.modelId)
&& ($component.name))
-#if ($utils.getTagPrefix($component.name) == $shortname)
+#if ($utils.getTagPrefix($component.name) == $shortname)
+## Check if we don't have a facelet tag taking precedence over this description
+#if (! ${model.findFaceletTagByName($component.name)})
<tag>
+ <description><![CDATA[$component.longDescription]]></description>
<name>$utils.getTagName($component.name)</name>
<tag-class>$component.tagClass</tag-class>
#if ($component.bodyContent)
@@ -157,12 +182,16 @@ $baseContent
#else
<body-content>empty</body-content>
#end
- <description><![CDATA[$component.longDescription]]></description>
#set ($propertyList = ${component.propertyList})
#foreach( $property in $propertyList )
#if (!$property.isTagExcluded())
<attribute>
+#if ($property.longDescription)
+ <description><![CDATA[$property.longDescription]]></description>
+#else
+ <description><![CDATA[]]></description>
+#end
<name>$property.name</name>
#if ($property.isRequired())
<required>$property.isRequired()</required>
@@ -171,19 +200,77 @@ $baseContent
<rtexprvalue>false</rtexprvalue>
#else
#set ($type = $utils.getClassFromFullClass($property.className))
-#if ($type == "String")
- <deferred-value></deferred-value>
+#if($property.deferredValueType)
+ <deferred-value>
+ <type>$property.deferredValueType</type>
+ </deferred-value>
+#elseif ($type == "String")
+ <deferred-value>
+ <type>java.lang.String</type>
+ </deferred-value>
#else
<deferred-value>
<type>$property.className</type>
</deferred-value>
#end
#end
+ </attribute>
+#end
+#end
+ </tag>
+#end
+#end
+#end
+#end
+
+ <!-- Behavior tags -->
+#set ($behaviorList = ${model.getBehaviors()})
+#foreach( $component in $behaviorList )
+#if ($modelIds.contains($component.modelId)
+ && ($component.name))
+#if ($component.behaviorId)
+## Check if we don't have a facelet tag taking precedence over this description
+#if (! ${model.findFaceletTagByName($component.name)})
+ <tag>
+ <description><![CDATA[$component.longDescription]]></description>
+ <name>$utils.getTagName($component.name)</name>
+ <tag-class>$component.tagClass</tag-class>
+#if ($component.bodyContent)
+ <body-content>$component.bodyContent</body-content>
+#else
+ <body-content>empty</body-content>
+#end
+#set ($propertyList = ${component.propertyList})
+#foreach( $property in $propertyList )
+#if (!$property.isTagExcluded())
+ <attribute>
#if ($property.longDescription)
<description><![CDATA[$property.longDescription]]></description>
#else
<description><![CDATA[]]></description>
#end
+ <name>$property.name</name>
+#if ($property.isRequired())
+ <required>$property.isRequired()</required>
+#end
+#if ($property.isLiteralOnly())
+ <rtexprvalue>false</rtexprvalue>
+#else
+#set ($type = $utils.getClassFromFullClass($property.className))
+#if($property.deferredValueType)
+ <deferred-value>
+ <type>$property.deferredValueType</type>
+ </deferred-value>
+#elseif ($type == "String")
+ <deferred-value>
+ <type>java.lang.String</type>
+ </deferred-value>
+#else
+ <deferred-value>
+ <type>$property.className</type>
+ </deferred-value>
+#end
+#end
</attribute>
#end
#end
@@ -191,23 +278,41 @@ $baseContent
#end
#end
#end
+#end
+
<!-- Single Tags -->
#set ($tagList = $model.getTags())
#foreach( $tag in $tagList )
-#if ($modelIds.contains($tag.modelId))
+#if ($modelIds.contains($tag.modelId) && ($tag.name))
+#if ($utils.getTagPrefix($tag.name) == $shortname)
+## Check if we don't have a facelet tag taking precedence over this description
+#if (! ${model.findFaceletTagByName($tag.name)})
<tag>
+ <description><![CDATA[$tag.longDescription]]></description>
<name>$utils.getTagName($tag.name)</name>
<tag-class>$tag.className</tag-class>
<body-content>$tag.bodyContent</body-content>
- <description><![CDATA[$tag.longDescription]]></description>
#set ($attributeList = ${tag.attributeList})
#foreach( $attribute in $attributeList )
<attribute>
+#if ($attribute.longDescription)
+ <description><![CDATA[$attribute.longDescription]]></description>
+#else
+ <description><![CDATA[]]></description>
+#end
<name>$attribute.name</name>
<required>$attribute.isRequired()</required>
#set ($type = $utils.getClassFromFullClass($attribute.className))
-#if ($type == "ValueExpression")
- <deferred-value></deferred-value>
+#if ($type == "MethodExpression")
+ <deferred-method>
+ <method-signature>${attribute.deferredMethodSignature}</method-signature>
+ </deferred-method>
+#elseif ($type == "ValueExpression")
+ <deferred-value>
+#if($attribute.deferredValueType)
+ <type>$attribute.deferredValueType</type>
+#end
+ </deferred-value>
#else
<rtexprvalue>$attribute.isRtexprvalue()</rtexprvalue>
#if ($attribute.className)
@@ -216,14 +321,57 @@ $baseContent
<type>java.lang.String</type>
#end
#end
-#if ($property.longDescription)
- <description><![CDATA[$property.longDescription]]></description>
+ </attribute>
+#end
+ </tag>
+#end
+#end
+#end
+#end
+
+ <!-- Facelets Tags -->
+#set ($tagList = $model.getFaceletTags())
+#foreach( $tag in $tagList )
+#if ($modelIds.contains($tag.modelId) && ($tag.name))
+#if ($utils.getTagPrefix($tag.name) == $shortname)
+ <tag>
+ <description><![CDATA[$tag.longDescription]]></description>
+ <name>$utils.getTagName($tag.name)</name>
+ <tag-class>$tag.className</tag-class>
+ <body-content>$tag.bodyContent</body-content>
+#set ($attributeList = ${tag.attributeList})
+#foreach( $attribute in $attributeList )
+ <attribute>
+#if ($attribute.longDescription)
+ <description><![CDATA[$attribute.longDescription]]></description>
#else
<description><![CDATA[]]></description>
#end
+ <name>$attribute.name</name>
+ <required>$attribute.isRequired()</required>
+#set ($type = $utils.getClassFromFullClass($attribute.className))
+#if ($type == "MethodExpression")
+ <deferred-method>
+ <method-signature>${attribute.deferredMethodSignature}</method-signature>
+ </deferred-method>
+#elseif ($type == "ValueExpression")
+ <deferred-value>
+#if($attribute.deferredValueType)
+ <type>$attribute.deferredValueType</type>
+#end
+ </deferred-value>
+#else
+ <rtexprvalue>$attribute.isRtexprvalue()</rtexprvalue>
+#if ($attribute.className)
+ <type>$attribute.className</type>
+#else
+ <type>java.lang.String</type>
+#end
+#end
</attribute>
#end
</tag>
#end
#end
+#end
</taglib>