<?xml version="1.0" encoding="ISO-8859-1"?>

<!--
 * 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.
-->

<project name="Myfaces Builder Plugin">
  <bannerLeft>
    <name>Apache MyFaces</name>
    <src>img/banners/MyFaces_logo.jpg</src>
    <href>http://myfaces.apache.org/index.html</href>
  </bannerLeft>

  <bannerRight>
    <name>Apache Banner</name>
    <src>img/banners/apache_banner.png</src>
    <href>http://www.apache.org/</href>
  </bannerRight>  

  <publishDate format="dd MMM yyyy"/>

  <skin>
    <groupId>org.apache.myfaces.maven</groupId>
    <artifactId>myfaces-site-skin</artifactId>
    <version>1-SNAPSHOT</version>
  </skin>


  <body>
    <links>
      <item name="Apache" href="http://www.apache.org"/>
      <item name="MyFaces" href="http://myfaces.apache.org/index.html"/>
    </links>

    <menu name="Overview">
      <item name="Introduction" href="index.html"/>
      <item name="Goals" href="plugin-info.html"/>
      <item name="How to Use" href="howto.html"/>
	  <item name="Plugin Javadoc" href="apidocs/index.html"/>
      <item name="Doclets and Annotations" href="doclets-annotations.html"/>
	  <item name="Annotations Javadoc" href="http://myfaces.apache.org/build-tools/plugins/myfaces-builder-annotations/apidocs/index.html"/>
      <item name="Wiki" href="http://wiki.apache.org/myfaces/MyfacesBuilderPlugin"/>
    </menu>

    <menu name="Users Guide">
      <item name="Setting up your project" href="setup.html"/>
      <item name="Template Files" href="templates.html"/>
      <item name="Configuration Files" href="config-files.html"/>
      <item name="Components" href="components.html"/>      
      <item name="Converters" href="converters.html"/>
      <item name="Validators" href="validators.html"/>
      <item name="Properties for Components, Converters and Validators" href="properties.html"/>
      <item name="JSP Tags" href="tags.html"/>
      <item name="Attributes for JSP Tags" href="attributes.html"/>
    </menu>

    <menu ref="reports"/>

  </body>
</project>
