You are viewing a plain text version of this content. The canonical link for it is here.
Posted to easyant-commits@incubator.apache.org by hi...@apache.org on 2011/02/17 17:01:56 UTC

svn commit: r1071697 [37/42] - in /incubator/easyant: buildtypes/ buildtypes/trunk/ buildtypes/trunk/build-osgi-bundle-java/ buildtypes/trunk/build-osgi-bundle-java/src/ buildtypes/trunk/build-osgi-bundle-java/src/main/ buildtypes/trunk/build-osgi-bund...

Added: incubator/easyant/plugins/trunk/docbook/src/main/resources/docbook.ant
URL: http://svn.apache.org/viewvc/incubator/easyant/plugins/trunk/docbook/src/main/resources/docbook.ant?rev=1071697&view=auto
==============================================================================
--- incubator/easyant/plugins/trunk/docbook/src/main/resources/docbook.ant (added)
+++ incubator/easyant/plugins/trunk/docbook/src/main/resources/docbook.ant Thu Feb 17 17:01:07 2011
@@ -0,0 +1,93 @@
+<!--
+	Copyright 2008-2010 the EasyAnt project
+	
+	See the NOTICE file distributed with this work for additional information 
+	regarding copyright ownership.
+	
+	Licensed 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="org.apache.easyant.plugins#docbook" 
+	xmlns:ivy="antlib:org.apache.ivy.ant"
+	xmlns:m="http://ant.apache.org/ivy/maven"
+	xmlns:ea="antlib:org.apache.easyant">
+	
+	<ea:core-version requiredrevision="[0.8,+]" />
+	<dirname file="${ant.file.org.apache.easyant.plugins#docbook}" property="docbook.module.dir" />
+
+	<target name=":init" phase="validate">
+
+		<ea:parameter phase="validate" />
+		<ea:parameter phase="documentation" />
+
+		<ea:parameter property="target.documentation.dir" description="directory where the documentation will be generated to" 
+			default="target/documentation"/>
+		<ea:parameter property="src.documentation.dir" description="directory where documentation sources reside" 
+			default="src/documentation"/>
+		
+		<ea:parameter property="docbook.documentation.dir" description="directory where the documentation is stored in the project" 
+			default="${src.documentation.dir}/docbook"/>
+			
+		<ea:parameter property="docbook.index.file" description="the main docbook source file" 
+			default="${docbook.documentation.dir}/index.xml"/>
+		<ea:parameter property="docbook.output.file" description="path of the HTML index file for generated documentation"
+			default="${target.documentation.dir}/index.html"/>
+			
+		<ea:parameter property="docbook.parameters" 
+			description="whitespace-separated list of parameter values to pass to the DocBook XSL, for example 'param1=value1 param2=value2'"
+			default=""/>
+		
+	</target>
+
+	<target name=":generate" phase="documentation" depends=":init" unless="skip.documentation" description="generate documentation">
+
+		<!-- unpack docbook xsl resources into the local module directory -->
+		<mkdir dir="${docbook.module.dir}/docbook-xsl"/>
+
+		<ivy:retrieve inline="true" 
+				organisation="org.apache.easyant.plugins" 
+				module="docbook" 
+				revision="0.1" 
+				conf="docbook_dist" 
+				pattern="${docbook.module.dir}/docbook-xsl/[artifact](-[classifier]).[ext]" 
+				settingsRef="easyant.ivy.instance"/>
+		
+		<echo>Unpacking docbook XSL distribution...</echo>
+		<unzip src="${docbook.module.dir}/docbook-xsl/docbook-xsl-resources.zip" 
+			   dest="${docbook.module.dir}" overwrite="false"/>
+		
+		<mkdir dir="${target.documentation.dir}/html" />
+		<copy todir="${target.documentation.dir}/html">
+			<fileset dir="${src.documentation.dir}/html" includes="**/*" erroronmissingdir="false"/>
+		</copy>
+
+		<!-- convert to absolute path -->		
+		<property name="docbook.index.path" location="${docbook.index.file}"/>
+
+		<!-- TODO: support other transforms:  PDF, html-single, manpage, slides -->
+		<java classname="com.icl.saxon.StyleSheet" fork="true"
+			  failonerror="true" dir="${target.documentation.dir}/html"
+			  classpathref="org.apache.easyant.plugins#docbook.classpath">
+			<sysproperty key="javax.xml.parsers.DocumentBuilderFactory" value="org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"/>
+			<sysproperty key="javax.xml.parsers.SAXParserFactory" value="org.apache.xerces.jaxp.SAXParserFactoryImpl"/>
+			<sysproperty key="org.apache.xerces.xni.parser.XMLParserConfiguration" value="org.apache.xerces.parsers.XIncludeParserConfiguration"/>
+			<jvmarg value="-Xmx256M"/>
+			<arg value="${docbook.index.path}"/>
+			<arg value="${docbook.module.dir}/docbook/html/chunk.xsl"/>
+			<arg line="${docbook.parameters}"/>
+		</java>
+		 
+	</target>
+
+	<target name="doit" depends=":generate" />
+	
+</project>

Propchange: incubator/easyant/plugins/trunk/docbook/src/main/resources/docbook.ant
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/easyant/plugins/trunk/docbook/src/main/resources/docbook.ant
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: incubator/easyant/plugins/trunk/docbook/src/main/resources/docbook.ant
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/easyant/plugins/trunk/documentation/module.ivy
URL: http://svn.apache.org/viewvc/incubator/easyant/plugins/trunk/documentation/module.ivy?rev=1071697&view=auto
==============================================================================
--- incubator/easyant/plugins/trunk/documentation/module.ivy (added)
+++ incubator/easyant/plugins/trunk/documentation/module.ivy Thu Feb 17 17:01:07 2011
@@ -0,0 +1,43 @@
+<!--
+	Copyright 2008-2010 the EasyAnt project
+	
+	See the NOTICE file distributed with this work for additional information 
+	regarding copyright ownership.
+	
+	Licensed 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.  
+-->
+<ivy-module version="2.0" xmlns:ea="http://www.easyant.org"> 
+	<info organisation="org.apache.easyant.plugins" module="documentation" revision="0.1">
+	       <description><p>This module is used to generate documentation (out of XDOC files).<br/>
+            Your project must have the following structure:<br/>
+                src--<br/>
+                    |documentation ($src.documentation.dir)<br/>
+                    --menu.xml ($documentation.menu.file)<br/>
+                The documentation itself, must follow the XDOC-Guideline (see http://maven.apache.org/doxia/references/xdoc-format.html).<br/>
+                You can provide a CSS-Stylesheet for the format of the page ($documentation.css.dir), furthermore, you can provide your <br/>
+                own XSL-Stylesheet for the conversion of the XDOC-Documents to HTML.</p>
+            </description>
+	       <ea:build organisation="org.apache.easyant.buildtypes" module="build-std-ant-plugin" revision="0.1"/>
+        </info>
+        <configurations>
+                <conf name="default" description="runtime dependencies artifact can be used with this conf"/>
+                <conf name="test" description="this scope indicates that the dependency is not required for normal use of the application, and is only available for the test compilation and execution phases."/>
+                <conf name="provided" description="this is much like compile, but indicates you expect the JDK or a container to provide it. It is only available on the compilation classpath, and is not transitive."/>
+        </configurations>
+    <publications>
+        <artifact type="ant"/>
+        <artifact type="xsl" name="site"/>
+        <artifact type="css" name="style"/>
+    </publications>
+	<dependencies/>
+</ivy-module>

Propchange: incubator/easyant/plugins/trunk/documentation/module.ivy
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/easyant/plugins/trunk/documentation/module.ivy
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: incubator/easyant/plugins/trunk/documentation/module.ivy
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/easyant/plugins/trunk/documentation/src/main/resources/documentation.ant
URL: http://svn.apache.org/viewvc/incubator/easyant/plugins/trunk/documentation/src/main/resources/documentation.ant?rev=1071697&view=auto
==============================================================================
--- incubator/easyant/plugins/trunk/documentation/src/main/resources/documentation.ant (added)
+++ incubator/easyant/plugins/trunk/documentation/src/main/resources/documentation.ant Thu Feb 17 17:01:07 2011
@@ -0,0 +1,105 @@
+<!--
+	Copyright 2008-2010 the EasyAnt project
+	
+	See the NOTICE file distributed with this work for additional information 
+	regarding copyright ownership.
+	
+	Licensed 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="org.apache.easyant.plugins#documentation" xmlns:ea="antlib:org.apache.easyant">
+	
+	<ea:core-version requiredrevision="[0.8,+]" />
+
+	<dirname file="${org.apache.easyant.plugins#documentation.style.css.file}" property="org.apache.easyant.plugins#documentation.style.css.dir" />
+
+	<target name=":init" phase="validate">
+		<ea:parameter phase="validate" />
+		<ea:parameter phase="verify" />
+		<ea:parameter phase="documentation" />
+
+		<ea:parameter property="documentation.xsl.file" default="${org.apache.easyant.plugins#documentation.site.xsl.file}" description="xsl, used to transform XML -> HTML" />
+		<ea:parameter property="documentation.css.dir" default="{org.apache.easyant.plugins#documentation.style.css.dir}" description="path where the css are stored, used for nice looking HTML" />
+		<ea:parameter property="target.documentation.dir" default="${target}/documentation" description="directory where the documentation will be generated to" />
+		<ea:parameter property="src.dir" default="${user.dir}/src" description="directory containing projects sources" />
+		<ea:parameter property="src.documentation.dir" default="${src.dir}/documentation" description="directory where the documentation is stored in the project" />
+		<ea:parameter property="documentation.menu.file" default="${src.documentation.dir}/menu.xml" description="the file, which stores the navigation" />
+
+		<condition property="xslt.available">
+			<available classname="org.apache.tools.ant.taskdefs.optional.TraXLiaison" />
+		</condition>
+		<fail message="Ant xslt was not found. Please install ant-nodeps in your ANT_HOME" unless="xslt.available" />
+
+		<available file="${documentation.xsl.file}" property="has.documentation.xsl.file" />
+		<fail message="documentation.xsl.file was not found. Please reference this file appropriately" unless="has.documentation.xsl.file" />
+
+		<available file="${src.documentation.dir}" property="has.src.documentation.dir" />
+		<available file="${documentation.menu.file}" property="has.documentation.menu.file" />
+
+		<available file="${documentation.css.dir}" property="has.documentation.css.dir" />
+	</target>
+
+	<target name="-warn-src.documentation.dir.missing" unless="has.src.documentation.dir">
+		<echo>WARN: Your project doesn't match with documentation structure.</echo>
+		<echo>	If you want to use the documentation feature you must create ${src.documentation.dir} directory. This directory must have a menu.xml file</echo>
+		<echo>	If you want to have more information, you should look at the documentation of this module.</echo>
+		<property name="skip.documentation" value="true" />
+	</target>
+
+	<target name="-warn-documentation.menu.file.missing" unless="has.documentation.menu.file">
+		<echo>WARN: Your project doesn't match with documentation structure (documentation menu file is missing).</echo> 
+		<echo>	If you want to have more information, you should look at the documentation of this module.</echo>
+		<property name="skip.documentation" value="true" />
+	</target>
+
+	<target name="-documentation" unless="skip.documentation" 
+		phase="documentation" 
+		depends="validate, -warn-src.documentation.dir.missing, -warn-documentation.menu.file.missing, -copy-css, process-documentation-resources">
+		<mkdir dir="${target.documentation.dir}" />
+
+		<echo message="Transforming the site documents..." />
+		<xslt basedir="${src.documentation.dir}" destdir="${target.documentation.dir}" extension=".html" style="${documentation.xsl.file}" excludes="${documentation.menu.file}" includes="*.xml">			<param name="relative-path" expression="." />
+			<param name="menu-src-path" expression="${src.documentation.dir}" />
+			<param name="menu-file" expression="${documentation.menu.file}" />
+		</xslt>
+
+		<!-- Copy static resource files 
+             in the future try to solve this via a patternset.
+        -->
+		<echo message="Copying static resource files... (images)" />
+		<copy todir="${target.documentation.dir}" filtering="no">
+			<fileset dir="${src.documentation.dir}">
+				<include name="**/*.gif" />
+				<include name="**/*.png" />
+				<include name="**/*.jpg" />
+			</fileset>
+		</copy>
+
+	</target>
+
+	<!-- Copy CSS stylesheets -->
+	<target name="-copy-css" if="has.documentation.css.dir" unless="skip.documentation" phase="process-documentation-resources">
+		<echo message="Copying CSS files..." />
+		<copy todir="${target.documentation.dir}" filtering="no">
+			<fileset dir="${documentation.css.dir}">
+				<include name="**/*.css" />
+			</fileset>
+		</copy>
+	</target>
+
+	<target name=":documentation" depends="-documentation" unless="skip.documentation" description="generate documentation">
+		<fail if="documentation.failure" message="There are documentation violation(s)" />
+	</target>
+
+
+	<target name="doit" depends=":documentation" />
+</project>

Propchange: incubator/easyant/plugins/trunk/documentation/src/main/resources/documentation.ant
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/easyant/plugins/trunk/documentation/src/main/resources/documentation.ant
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: incubator/easyant/plugins/trunk/documentation/src/main/resources/documentation.ant
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/easyant/plugins/trunk/documentation/src/main/resources/site.xsl
URL: http://svn.apache.org/viewvc/incubator/easyant/plugins/trunk/documentation/src/main/resources/site.xsl?rev=1071697&view=auto
==============================================================================
--- incubator/easyant/plugins/trunk/documentation/src/main/resources/site.xsl (added)
+++ incubator/easyant/plugins/trunk/documentation/src/main/resources/site.xsl Thu Feb 17 17:01:07 2011
@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+   Copyright 2008-2010 the EasyAnt project
+
+	See the NOTICE file distributed with this work for additional information 
+	regarding copyright ownership.
+	
+	Licensed 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.
+-->
+<!-- Content Stylesheet for "project-site" Documentation -->
+
+
+<!-- $Id$ -->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  version="1.0">
+
+
+  <!-- Output method -->
+  <xsl:output method="xml"
+              encoding="iso-8859-1"
+              doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
+              doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
+              indent="yes"/>
+
+
+  <!-- Defined parameters (overrideable) -->
+  <xsl:param    name="relative-path" select="'.'"/>
+  <xsl:param    name="menu-src-path" select="'.'"/>
+  <!-- Process an entire document into an HTML page -->
+  <xsl:template match="document">
+	  <xsl:variable name="filename" select="concat($menu-src-path, '/menu.xml')"/>  
+    <xsl:variable name="project"
+	    select="document($filename)/project"/>
+
+    <xsl:variable name="homelink" select="project/@href"/>
+    <xsl:variable name="title" select="$project/title"/>
+    <xsl:variable name="logo" select="$project/logo"/>
+
+    <html>
+    <head>
+        <xsl:apply-templates select="meta"/>
+        <title><xsl:value-of select="$project/title"/> - <xsl:value-of select="properties/title"/></title>
+
+        <xsl:for-each select="properties/author">
+          <xsl:variable name="name">
+            <xsl:value-of select="."/>
+          </xsl:variable>
+          <xsl:variable name="email">
+            <xsl:value-of select="@email"/>
+          </xsl:variable>
+          <meta name="author" value="{$name}"/>
+          <meta name="email" value="{$email}"/>
+        </xsl:for-each>
+        <xsl:if test="properties/base">
+          <base href="{properties/base/@href}"/>
+  </xsl:if>
+
+        <style type="text/css" media="all">
+			@import url("style.css");
+        </style>
+        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+    </head>
+
+    <body>
+        <div id="body">
+        <div id="inner_body">
+            <div id="frame_logo">
+                <div class="logo">
+				    <a href="{$homelink}" 
+				       title="{$title}">
+				       <img src="{$logo}" alt="{$title}" border="0" />
+				    </a>
+                </div>
+
+                <div class="title">
+                    <h1><xsl:value-of select="$title"/></h1>
+                </div>
+
+            </div>
+          
+            <div id="content_wrapper">
+                <div id="content_wrapper" class="nav_left">
+                    <xsl:apply-templates select="$project/body/menu"/>
+                </div>
+                <div id="content_wrapper" class="content">
+                    <xsl:apply-templates select="body/section"/>
+                </div>
+            </div>
+                
+			<div id="footer">
+                <em>Copyright &#169; 1999-2008, The Apache Software Foundation</em>
+            </div>
+		</div>	
+		</div>	
+  </body>
+  </html>
+  </xsl:template>
+
+
+  <!-- Process a menu for the navigation bar -->
+  <xsl:template match="menu">
+        <h1><xsl:value-of select="@name"/></h1>
+        <ul>
+            <xsl:apply-templates select="item"/>
+        </ul>
+  </xsl:template>
+
+
+  <!-- Process a menu item for the navigation bar -->
+  <xsl:template match="item">
+    <xsl:variable name="href">
+      <xsl:choose>
+            <xsl:when test="starts-with(@href, 'http://')">
+                <xsl:value-of select="@href"/>
+            </xsl:when>
+            <xsl:when test="starts-with(@href, 'https://')">
+                <xsl:value-of select="@href"/>
+            </xsl:when>
+            <xsl:when test="starts-with(@href, '/')">
+                <xsl:value-of select="@href"/>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:value-of select="$relative-path"/><xsl:value-of select="@href"/>
+            </xsl:otherwise>    
+      </xsl:choose>
+    </xsl:variable>
+    <li>
+        <a href="{$href}" class="menu_item"><xsl:value-of select="@name"/></a>
+    </li>
+  </xsl:template>
+
+
+  <!-- Process a documentation section -->
+  <xsl:template match="section">
+    <xsl:variable name="name">
+      <xsl:value-of select="@name"/>
+    </xsl:variable>
+    <h1 id="section_heading">
+          <a name="{$name}"><xsl:value-of select="@name"/></a>
+    </h1>
+      <!-- Section body -->
+      <p><blockquote>
+        <xsl:apply-templates/>
+      </blockquote></p>
+  </xsl:template>
+
+
+  <!-- Process a documentation subsection -->
+  <xsl:template match="subsection">
+    <xsl:variable name="name">
+      <xsl:value-of select="@name"/>
+    </xsl:variable>
+    <h2 id="subsection_heading">
+          <a name="{$name}"><xsl:value-of select="@name"/></a>
+      </h2>
+      <!-- Subsection body -->
+        <blockquote>
+        <xsl:apply-templates/>
+      </blockquote>
+  </xsl:template>
+
+
+  <!-- Process a source code example -->
+  <xsl:template match="source">
+    <div align="left">
+      <table>
+        <tr>
+          <td>
+            <img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
+          </td>
+          <td bgcolor="grey" height="1">
+            <img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
+          </td>
+          <td bgcolor="grey" width="1" height="1">
+            <img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
+          </td>
+        </tr>
+        <tr>
+          <td bgcolor="grey" width="1">
+            <img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
+          </td>
+          <td bgcolor="#ffffff" height="1"><pre>
+            <xsl:value-of select="."/>
+          </pre></td>
+          <td bgcolor="grey" width="1">
+            <img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
+          </td>
+        </tr>
+        <tr>
+          <td bgcolor="grey" width="1" height="1">
+            <img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
+          </td>
+          <td bgcolor="grey" height="1">
+            <img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
+          </td>
+          <td bgcolor="grey" width="1" height="1">
+            <img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </xsl:template>
+
+  <!-- specially process td tags ala site.vsl -->
+  <xsl:template match="table[@class='detail-table']/tr/td">
+    <td class="detail-table">
+        <xsl:if test="@colspan"><xsl:attribute name="colspan"><xsl:value-of select="@colspan"/></xsl:attribute></xsl:if>
+        <xsl:if test="@rowspan"><xsl:attribute name="rowspan"><xsl:value-of select="@rowspan"/></xsl:attribute></xsl:if>
+        <xsl:apply-templates/>
+    </td>
+  </xsl:template>
+  
+  <!-- handle th ala site.vsl -->
+  <xsl:template match="table[@class='detail-table']/tr/th">
+    <td class="detail-table-header">
+        <xsl:if test="@colspan"><xsl:attribute name="colspan"><xsl:value-of select="@colspan"/></xsl:attribute></xsl:if>
+        <xsl:if test="@rowspan"><xsl:attribute name="rowspan"><xsl:value-of select="@rowspan"/></xsl:attribute></xsl:if>
+        <xsl:apply-templates />
+    </td>
+  </xsl:template>
+  
+  <!-- Process everything else by just passing it through -->
+  <xsl:template match="*|@*">
+    <xsl:copy>
+      <xsl:apply-templates select="@*|*|text()"/>
+    </xsl:copy>
+  </xsl:template>
+
+</xsl:stylesheet>

Propchange: incubator/easyant/plugins/trunk/documentation/src/main/resources/site.xsl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/easyant/plugins/trunk/documentation/src/main/resources/site.xsl
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: incubator/easyant/plugins/trunk/documentation/src/main/resources/site.xsl
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/easyant/plugins/trunk/documentation/src/main/resources/style.css
URL: http://svn.apache.org/viewvc/incubator/easyant/plugins/trunk/documentation/src/main/resources/style.css?rev=1071697&view=auto
==============================================================================
--- incubator/easyant/plugins/trunk/documentation/src/main/resources/style.css (added)
+++ incubator/easyant/plugins/trunk/documentation/src/main/resources/style.css Thu Feb 17 17:01:07 2011
@@ -0,0 +1,177 @@
+/*
+ *  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.
+ *
+ */
+
+body, p, td, li, ul, ol  {
+  font-family: Verdana, Helvetica, Arial, sans-serif;
+  font-size: small;
+}
+
+h1, h2, h3, h4, h5, h6 {
+  font-family: "Trebuchet MS", Geneva, Arial, Helvetica, SunSans-Regular, Verdana, sans-serif;
+}
+
+h1 {
+  padding-top: 0;
+  margin-top: 0;
+  padding-left: 10px;
+  font-size: 1.4em;
+  -moz-border-radius-topleft: 5px;
+  -moz-border-radius-topright: 5px;
+}
+
+h2 {
+  font-size: 1.2em;
+}
+
+h3 {
+  font-size: 1.1em;
+}
+
+h4 {
+  font-size: 1.0em;
+}
+
+/*
+** Page layout blocks / IDs
+*/
+#body  {
+    -moz-border-radius-topleft: 5px;
+    -moz-border-radius-topright: 5px;
+    -moz-border-radius-bottomright: 5px;
+    -moz-border-radius-bottomleft: 5px;
+    background-color: silver;
+    padding-top: 5px;
+    padding-bottom: 5px;
+}
+
+#inner_body  {
+    background-color: white;
+    margin-top: 5px;
+    margin-bottom: 5px;
+    margin-left: 5px;
+    margin-right: 5px;
+    height: 100%;
+}
+
+#frame_logo {
+	height: 70px;
+	width: 100%;
+}
+
+#frame_logo .logo {
+	float: left;
+	width: 30%;
+	padding-top: 0;
+}
+
+#frame_logo .title {
+    float: right;
+    width: 60%;
+    font-size: 1.6em;
+    color: silver;
+    margin-top: 15px;
+}
+
+#empty_header {
+	clear: both;
+	width: 100%;
+	height: 21px;
+	background: #E9E9E9;
+}
+
+#content_wrapper {
+    width: 100%;
+    height: 800px;
+    background: white;
+    margin-top: 3px;
+}
+
+#content_wrapper .nav_left {
+    float: left;
+	width: 15%;
+}
+
+#content_wrapper .nav_left  h1 {
+    font-size: 12px;
+    text-align: left;
+    color: white;
+    margin-left: 2px;
+    margin-bottom: 0;
+    background-color: silver;
+    -moz-border-radius-topleft: 5px;
+    -moz-border-radius-topright: 5px;
+}
+
+#content_wrapper .nav_left ul {
+    font-size: 10px;
+    margin-left: 2px;
+    margin-top: 0;
+    border-bottom: 1px solid silver;
+    border-left: 1px solid silver;
+    border-right: 1px solid silver;
+    padding-top: 4px;
+}
+
+a.menu_item {
+    font-size: 12px;
+    color: black;
+    padding-top: 4px;
+    text-decoration: none;
+}
+
+a.menu_item:hover {
+    text-decoration: underline;
+    font-weight: bold;
+}
+
+#content_wrapper .content {
+    margin-left: 5px;
+    float: left;
+    width: 83%;
+}
+#section_heading {
+    color: white;
+    background-color: silver;
+    font-weight: bold;
+    -moz-border-radius-topleft: 5px;
+    -moz-border-radius-topright: 5px;
+    -moz-border-radius-bottomleft: 5px;
+    -moz-border-radius-bottomright: 5px;
+}
+
+#subsection_heading {
+    color: white;
+    background-color: silver;
+}
+
+#footer {
+    text-align: center;
+    margin-top: 5px;
+    height: 10%;
+    width: 100%;
+}
+
+td.detail-table-header {
+    background-color: silver;
+    color: white;
+}
+
+td.detail-table {
+    background-color: white;
+    color: black;
+}

Propchange: incubator/easyant/plugins/trunk/documentation/src/main/resources/style.css
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/easyant/plugins/trunk/documentation/src/main/resources/style.css
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: incubator/easyant/plugins/trunk/documentation/src/main/resources/style.css
------------------------------------------------------------------------------
    svn:mime-type = text/css

Added: incubator/easyant/plugins/trunk/eadoc/module.ivy
URL: http://svn.apache.org/viewvc/incubator/easyant/plugins/trunk/eadoc/module.ivy?rev=1071697&view=auto
==============================================================================
--- incubator/easyant/plugins/trunk/eadoc/module.ivy (added)
+++ incubator/easyant/plugins/trunk/eadoc/module.ivy Thu Feb 17 17:01:07 2011
@@ -0,0 +1,40 @@
+<!--
+	Copyright 2008-2010 the EasyAnt project
+	
+	See the NOTICE file distributed with this work for additional information 
+	regarding copyright ownership.
+	
+	Licensed 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.  
+-->
+<ivy-module version="2.0" xmlns:ea="http://www.easyant.org"> 
+	<info organisation="org.apache.easyant.plugins" module="eadoc" revision="0.1">
+	       <description>
+	       EADoc generates <a href="http://xooki.sourceforge.net/">xooki</a> 
+	       documentation for EasyAnt modules (plugins and buildtypes).  
+	       The description for each module is culled from that module's Ivy descriptor.  
+	       Information about the module's phases and parameters is taken from the module's 
+	       Ant script.
+	       </description>
+	       <ea:build organisation="org.apache.easyant.buildtypes" module="build-std-ant-plugin" revision="0.1"/>
+        </info>
+        <configurations>
+                <conf name="default" description="runtime dependencies artifact can be used with this conf"/>
+                <conf name="test" description="this scope indicates that the dependency is not required for normal use of the application, and is only available for the test compilation and execution phases."/>
+                <conf name="provided" description="this is much like compile, but indicates you expect the JDK or a container to provide it. It is only available on the compilation classpath, and is not transitive."/>
+        </configurations>
+	<publications>
+		<artifact type="ant"/>
+		<artifact name="eadoc-plugin" type="xsl"/>
+		<artifact name="eadoc-buildtype" type="xsl"/>
+	</publications>
+</ivy-module>

Propchange: incubator/easyant/plugins/trunk/eadoc/module.ivy
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/easyant/plugins/trunk/eadoc/module.ivy
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: incubator/easyant/plugins/trunk/eadoc/module.ivy
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/easyant/plugins/trunk/eadoc/src/main/resources/eadoc-buildtype.xsl
URL: http://svn.apache.org/viewvc/incubator/easyant/plugins/trunk/eadoc/src/main/resources/eadoc-buildtype.xsl?rev=1071697&view=auto
==============================================================================
--- incubator/easyant/plugins/trunk/eadoc/src/main/resources/eadoc-buildtype.xsl (added)
+++ incubator/easyant/plugins/trunk/eadoc/src/main/resources/eadoc-buildtype.xsl Thu Feb 17 17:01:07 2011
@@ -0,0 +1,371 @@
+<?xml version="1.0"?>
+
+	<!--
+		Generate xooki documentation from a buildtype ant file. Stylesheet
+		parameters are passed in by eadoc.ant at runtime.
+	-->
+<xsl:stylesheet version="1.0"
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ea="antlib:org.apache.easyant"
+	xmlns:exsl="http://exslt.org/common" extension-element-prefixes="exsl"
+	exclude-result-prefixes="#all">
+
+	<xsl:param name="pluginOrganisation">org.apache.easyant.plugins</xsl:param>
+	<xsl:param name="typeOrganisation">org.apache.easyant.buildtypes</xsl:param>
+
+	<!-- xooki TOC level for the output HTML document -->
+	<xsl:param name="tocLevel">2</xsl:param>
+
+	<xsl:output method="html" indent="yes" omit-xml-declaration="yes"
+		doctype-public="-//W3C//DTD HTML 4.01//EN" doctype-system="http://www.w3.org/TR/html4/strict.dtd" />
+
+	<xsl:template match="/ivy-report/dependencies/module/revision">
+		<xsl:variable name="moduleVersion" select="@name" />
+		<xsl:variable name="moduleDescription" select="description" />
+		<xsl:variable name="typeName" select="../@name" />
+		<xsl:variable name="moduleOrganisation" select="../@organisation"/>
+		<xsl:comment>
+			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.
+		</xsl:comment>
+		<xsl:text>
+		</xsl:text>
+		<xsl:comment>
+			<xsl:value-of select="$typeName" />
+			documentation autogenerated by EADoc
+		</xsl:comment>
+		<xsl:text>
+		</xsl:text>
+		<html>
+			<head>
+				<title>
+					EasyAnt BuildType <xsl:value-of select="$typeName" /><xsl:text> </xsl:text><xsl:value-of select="concat('v', $moduleVersion)" />
+				</title>
+				<script type="text/javascript">
+					var xookiConfig = {level:<xsl:value-of select="$tocLevel" />};
+				</script>
+				<script type="text/javascript" src="../../xooki/xooki.js">
+					<xsl:text></xsl:text>
+				</script>
+			</head>
+			<body>
+				<textarea id="xooki-source">
+
+					<xsl:call-template name="outputHeader">
+						<xsl:with-param name="typeName" select="$typeName" />
+						<xsl:with-param name="typeVersion" select="$moduleVersion" />
+					</xsl:call-template>
+
+					<xsl:if test="$moduleDescription">
+						<h2>Overview</h2>
+						<p>
+							<xsl:copy-of select="$moduleDescription"/>
+						</p>
+					</xsl:if>
+					
+					<div id="sample">
+						<h2>Example</h2>
+						You can use this buildtype by adding the following code in your module.ivy (or module.ant) file
+						<code type="xml">
+							<ea:build>
+								<xsl:attribute name="organisation">
+									<xsl:value-of select="$moduleOrganisation"/>
+								</xsl:attribute>
+								<xsl:attribute name="module">
+									<xsl:value-of select="$typeName"/>
+								</xsl:attribute>
+								<xsl:attribute name="rev">
+									<xsl:value-of select="$moduleVersion"/>
+								</xsl:attribute>
+							</ea:build>
+						</code>
+						<xsl:if test="$moduleOrganisation='org.apache.easyant.buildtypes'">
+							<div id="note">Note: The organisation argument in <b>ea:build</b> tag is optional. If not specified easyant will use the default one (org.apache.easyant.buildtypes).</div>					
+							Shorter form : 
+							<code type="xml">
+								<ea:build>
+									<xsl:attribute name="module">
+										<xsl:value-of select="$typeName"/>
+									</xsl:attribute>
+									<xsl:attribute name="rev">
+										<xsl:value-of select="$moduleVersion"/>
+									</xsl:attribute>
+								</ea:build>
+							</code>
+						</xsl:if>
+					</div>
+					<xsl:call-template name="outputPhaseDescriptions" />
+					<xsl:call-template name="outputParameterTable" />
+
+
+				</textarea>
+				<script type="text/javascript">xooki.postProcess();</script>
+			</body>
+		</html>
+
+	</xsl:template>
+	
+
+	<!-- Output type name and generate links to extended types -->
+	<xsl:template name="outputHeader">
+		<xsl:param name="typeName" />
+		<xsl:param name="typeVersion" />
+		<h1>
+			BuildType
+			<xsl:value-of select="$typeName" />
+			<xsl:text> </xsl:text>
+			<xsl:value-of select="concat('v', $typeVersion)" />
+		</h1>
+		<xsl:if test="easyant/imports/import[@organisation = $typeOrganisation]">
+			<div class="parent-types">
+				extends
+				<xsl:for-each
+					select="easyant/imports/import[@organisation = $typeOrganisation]">
+					<xsl:variable name="parentName" select="@name" />
+					<xsl:element name="a">
+						<xsl:attribute name="href"><xsl:value-of
+							select="concat($parentName, '.html')" /></xsl:attribute>
+						<xsl:value-of select="$parentName" />
+					</xsl:element>
+				</xsl:for-each>
+			</div>
+		</xsl:if>
+		<hr />
+	</xsl:template>
+
+	<!-- Generate an HTML table summarizing parameters used by the type -->
+	<xsl:template name="outputParameterTable">
+		<xsl:if test="easyant/properties/property">
+			<h2>Parameters</h2>
+			<p>The following property values can be changed to tune the behavior of this buildtype.
+				Required parameters must be defined upon import, or the build will fail.</p>
+			<table class="sortable" id="type-parameters">
+				<thead>
+					<tr>
+						<th>Parameter</th>
+						<th>Required?</th>
+						<th class="unsortable">Description</th>
+					</tr>
+				</thead>
+				<tbody>
+					<xsl:for-each select="easyant/properties/property">
+						<xsl:sort select="@name" />
+						<tr>
+							<td>
+								<xsl:value-of select="@name" />
+							</td>
+							<td>
+								<xsl:choose>
+									<xsl:when test="@required = 'true'">Yes</xsl:when>
+									<xsl:otherwise>No</xsl:otherwise>
+								</xsl:choose>
+							</td>
+							<td>
+								<xsl:if test="@description">
+									<xsl:value-of select="@description" /><br/>
+								</xsl:if>
+								<xsl:if test="not(@value) and @default">
+									<span class="bold">Default: </span><span id="defaultValue"><xsl:value-of select="@default" /></span><br/>
+								</xsl:if> 
+								<xsl:if test="@value">
+									<span class="bold">BuildType value: </span><span id="buildTypeValue"><xsl:value-of select="@value" /></span>
+								</xsl:if>
+							</td>
+						</tr>
+					</xsl:for-each>
+				</tbody>
+			</table>
+		</xsl:if>
+	</xsl:template>
+
+	<!--
+		Generate a list describing what the type does during each build phase
+	-->
+	<xsl:template name="outputPhaseDescriptions">
+
+		<!--
+			an XML fragment that condenses nested phases and targets into a flat
+			list, so that we can then make an output summary table.
+		-->
+		<xsl:variable name="typeSummary">
+			<project>
+				<xsl:call-template name="add-plugin-targets">
+					<xsl:with-param name="as" select="" />
+				</xsl:call-template>
+			</project>
+		</xsl:variable>
+		<xsl:variable name="phaseTargets" select="exsl:node-set($typeSummary)/project" />
+
+		<h2>Plugins</h2>
+		<p>
+			This build type loads each of the following	<a href="../plugins/plugins.html">plugins</a>:
+		</p>
+		<div class="type-plugins">
+			<xsl:for-each select="easyant/imports/import[@organisation=$pluginOrganisation]">
+				<xsl:variable name="pluginName" select="@name"/>
+				<xsl:if test="position() &gt; 1"><xsl:text>, </xsl:text></xsl:if>
+				<a href="{concat('../plugins/', $pluginName, '.html')}">
+					<xsl:value-of select="$pluginName"/>
+				</a>
+			</xsl:for-each>
+		</div>
+		
+
+		<h2>Build Phases</h2>
+		<p>
+			This build type takes the following actions during each	<a href="../phases.html">build phase</a> :
+		</p>
+		<table id="buildtype-phases">
+		<thead>
+			<tr class="header-row">
+				<th>Phase</th>
+				<th>Description</th>
+			</tr>
+		</thead>
+		<tbody>
+			<xsl:for-each
+					select="$phaseTargets/phase[not(@name = preceding::phase/@name)]">
+					<xsl:variable name="currentPhase" select="string(@name)" />
+					<xsl:variable name="currentPhaseTargets"
+						select="$phaseTargets/target[@phase=$currentPhase]" />
+					<xsl:if test="$currentPhaseTargets">
+						<tr class="phase-row">
+							<td>
+								<span class="phase-name">
+									<xsl:value-of select="$currentPhase" />
+								</span>
+							</td>
+							<td>
+								<span class="phase-description">
+									<xsl:value-of select="@description" />
+								</span>
+								<table class="sortable" id="type-phases">
+									<thead>
+										<tr class="header-row">
+											<th>Target</th>
+											<th>Description</th>
+											<th>From Plugin</th>
+										</tr>
+									</thead>
+									<tbody>
+										<xsl:for-each select="$currentPhaseTargets">
+											<tr>
+												<td class="target-name">
+													<xsl:value-of select="@name" />
+												</td>
+												<td>
+													<xsl:value-of select="@description" />
+												</td>
+													<td>
+														<xsl:if test="@plugin">
+															<a>
+																<xsl:attribute name="href"><xsl:value-of
+																	select="concat('../plugins/', @plugin, '.html')" /></xsl:attribute>
+																<xsl:value-of select="@plugin" />
+															</a>
+														</xsl:if>
+													</td>
+												
+											</tr>
+										</xsl:for-each>
+									</tbody>
+								</table>
+							</td>
+						</tr>
+	
+					</xsl:if>
+				</xsl:for-each>
+			</tbody>
+		</table>
+
+		<xsl:if test="$phaseTargets/target[not(@phase or starts-with(@name, '-'))]">
+			<h2>Extra Targets</h2>
+			<p>
+				This type defines some extra Ant targets not attached to any <a href="../phases.html">build phase</a> :
+			</p>
+			<table class="sortable" id="type-phases">
+				<thead>
+					<tr class="header-row">
+						<th>Target</th>
+						<th class="unsortable">Description</th>
+						<th>From Plugin</th>
+					</tr>
+				</thead>
+				<tbody>
+					<xsl:for-each
+						select="$phaseTargets/target[not(@phase or starts-with(@name, '-'))]">
+						<tr>
+							<td class="target-name">
+								<xsl:value-of select="@name" />
+							</td>
+							<td>
+								<xsl:value-of select="@description" />
+							</td>
+							<xsl:if test="@plugin">
+								<td>
+									<a>
+										<xsl:attribute name="href"><xsl:value-of
+											select="concat('../plugins/', @plugin, '.html')" /></xsl:attribute>
+										<xsl:value-of select="@plugin" />
+									</a>
+								</td>
+							</xsl:if>
+						</tr>
+					</xsl:for-each>
+				</tbody>
+			</table>
+		</xsl:if>
+	</xsl:template>
+
+	<!--
+		for the current module, output one 'target' element for each target in
+		that module, recursively adding targets for imported plugins. The
+		optional parameter 'as' is prepended to the name of each target.
+	-->
+	<xsl:template name="add-plugin-targets">
+		<xsl:param name="as" />
+		<xsl:for-each
+			select="easyant/imports/import[@organisation=$pluginOrganisation]">
+			<xsl:variable name="pluginName" select="@name" />
+			<xsl:variable name="prefix" select="concat($as, @as)" />
+			<xsl:for-each select="easyant/phases/phase">
+				<phase>
+					<xsl:attribute name="name"><xsl:value-of
+						select="@name" /></xsl:attribute>
+					<xsl:attribute name="description"><xsl:value-of
+						select="@description" /></xsl:attribute>
+				</phase>
+			</xsl:for-each>
+			<xsl:for-each select="easyant/targets/target">
+				<target>
+					<xsl:attribute name="name"><xsl:value-of
+						select="concat($prefix, @name)" /></xsl:attribute>
+					<xsl:attribute name="plugin"><xsl:value-of
+						select="$pluginName" /></xsl:attribute>
+					<xsl:for-each select="@*[name() != 'name']">
+						<xsl:copy-of select="." />
+					</xsl:for-each>
+				</target>
+			</xsl:for-each>
+			<xsl:call-template name="add-plugin-targets">
+				<xsl:with-param name="as" select="$prefix" />
+			</xsl:call-template>
+		</xsl:for-each>
+	</xsl:template>
+	
+	<xsl:template match="text()"/>
+
+</xsl:stylesheet>

Propchange: incubator/easyant/plugins/trunk/eadoc/src/main/resources/eadoc-buildtype.xsl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/easyant/plugins/trunk/eadoc/src/main/resources/eadoc-buildtype.xsl
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: incubator/easyant/plugins/trunk/eadoc/src/main/resources/eadoc-buildtype.xsl
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/easyant/plugins/trunk/eadoc/src/main/resources/eadoc-plugin.xsl
URL: http://svn.apache.org/viewvc/incubator/easyant/plugins/trunk/eadoc/src/main/resources/eadoc-plugin.xsl?rev=1071697&view=auto
==============================================================================
--- incubator/easyant/plugins/trunk/eadoc/src/main/resources/eadoc-plugin.xsl (added)
+++ incubator/easyant/plugins/trunk/eadoc/src/main/resources/eadoc-plugin.xsl Thu Feb 17 17:01:07 2011
@@ -0,0 +1,275 @@
+<?xml version="1.0"?>
+
+	<!--
+		Generate xooki Plugin documentation from a ea:repreport xml file.
+	-->
+<xsl:stylesheet version="1.0"
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ea="antlib:org.apache.easyant">
+
+	<!--
+		module organisation, provided from eadoc configuration parameters
+	-->
+	<xsl:param name="pluginOrganisation">org.apache.easyant.plugins</xsl:param>
+
+	<!--
+		xooki TOC level for the output HTML document. Default assumes TOC
+		structure like Documentation > Reference > Plugins (level 2)
+	-->
+	<xsl:param name="tocLevel">2</xsl:param>
+
+	<xsl:output method="html" indent="yes" omit-xml-declaration="yes"
+		doctype-public="-//W3C//DTD HTML 4.01//EN" doctype-system="http://www.w3.org/TR/html4/strict.dtd" />
+
+	<!--
+		TODO: this model breaks if there is more than one revision element per
+		module.
+	-->
+	
+	<xsl:template match="/ivy-report/dependencies/module[1]/revision">
+		<xsl:variable name="pluginName" select="../@name" />
+		<xsl:variable name="pluginOrganisation" select="../@organisation"/>
+		<xsl:variable name="moduleVersion" select="@name" />
+		<xsl:variable name="moduleDescription" select="description" />
+		<xsl:comment>
+			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.
+		</xsl:comment>
+		<xsl:text>
+		</xsl:text>
+		<xsl:comment>
+			<xsl:value-of select="$pluginName" />
+			documentation autogenerated by EADoc
+		</xsl:comment>
+		<xsl:text>
+		</xsl:text>
+		<html>
+			<head>
+				<title>
+					EasyAnt Plugin <xsl:value-of select="$pluginName" /><xsl:text> </xsl:text><xsl:value-of select="concat('v', $moduleVersion)" />
+				</title>
+				<script type="text/javascript">
+					var xookiConfig = {level:<xsl:value-of select="$tocLevel" />};
+				</script>
+				<script type="text/javascript" src="../../xooki/xooki.js">
+					<xsl:text></xsl:text>
+				</script>
+			</head>
+			<body>
+				<textarea id="xooki-source">
+
+					<xsl:call-template name="outputHeader">
+						<xsl:with-param name="pluginName" select="$pluginName" />
+						<xsl:with-param name="pluginVersion" select="$moduleVersion" />
+					</xsl:call-template>
+
+					<xsl:if test="$moduleDescription">
+						<h2>Overview</h2>
+						<p>
+							<xsl:copy-of select="$moduleDescription"/> 
+						</p>
+					</xsl:if>
+
+					<div id="sample">
+						<h2>Example</h2>
+						You can use this plugin by adding the following code in your module.ivy (or module.ant) file
+						<code type="xml">
+							<ea:plugin>
+								<xsl:attribute name="organisation">
+									<xsl:value-of select="$pluginOrganisation"/>
+								</xsl:attribute>
+								<xsl:attribute name="module">
+									<xsl:value-of select="$pluginName"/>
+								</xsl:attribute>
+								<xsl:attribute name="rev">
+									<xsl:value-of select="$moduleVersion"/>
+								</xsl:attribute>
+								<xsl:attribute name="as">
+									<xsl:value-of select="$pluginName"/>
+								</xsl:attribute>
+							</ea:plugin>
+						</code>
+						<div id="note">
+							Note: By default targets provided by a plugin are prefixed by the plugin name (<xsl:value-of select="$pluginOrganisation"/>#<xsl:value-of select="$pluginName"/>).
+							Most of the time the plugin name is quite long so easyant allows you to define an alias for the project names. This alias can be used in place of the complete project name. 
+							You can define an alias for a plugin using 'as' attribute. 
+						</div>
+						<xsl:if test="$pluginOrganisation='org.apache.easyant.plugins'">
+							<div id="note">Note: The organisation argument in <b>ea:plugin</b> tag is optional. If not specified easyant will use the default one (org.apache.easyant.plugins).</div>					
+							Shorter form : 
+							<code type="xml">
+								<ea:build>
+									<xsl:attribute name="module">
+										<xsl:value-of select="$pluginName"/>
+									</xsl:attribute>
+									<xsl:attribute name="rev">
+										<xsl:value-of select="$moduleVersion"/>
+									</xsl:attribute>
+									<xsl:attribute name="as">
+										<xsl:value-of select="$pluginName"/>
+									</xsl:attribute>
+								</ea:build>
+							</code>
+						</xsl:if>
+					</div>
+					
+					<xsl:call-template name="outputBuildPhases" />
+					<xsl:call-template name="outputParameterTable" />
+				</textarea>
+				<script type="text/javascript">xooki.postProcess();</script>
+			</body>
+		</html>
+
+	</xsl:template>
+
+	<!-- Output plugin name and generate links to extended plugins -->
+	<xsl:template name="outputHeader">
+		<xsl:param name="pluginName" />
+		<xsl:param name="pluginVersion" />
+		<h1>
+			Plugin <xsl:value-of select="$pluginName" /><xsl:text> </xsl:text><xsl:value-of select="concat('v', $pluginVersion)" />
+		</h1>
+		<xsl:if test="easyant/imports/import[@organisation = $pluginOrganisation]">
+			<div class="parent-plugins">
+				extends
+				<xsl:for-each
+					select="easyant/imports/import[@organisation = $pluginOrganisation]">
+					<xsl:variable name="parentName" select="@name" />
+					<xsl:element name="a">
+						<xsl:attribute name="href"><xsl:value-of
+							select="concat($parentName, '.html')" /></xsl:attribute>
+						<xsl:value-of select="$parentName" />
+					</xsl:element>
+				</xsl:for-each>
+			</div>
+		</xsl:if>
+		<hr />
+	</xsl:template>
+
+	<!--
+		Generate an HTML table summarizing parameters used by the plugin
+	-->
+	<xsl:template name="outputParameterTable">
+		<xsl:if test="easyant/properties/property">
+			<h2>Parameters</h2>
+			<p>The following property values can be changed to tune the behavior of this plugin.
+				Required parameters must be defined upon import, or the build will fail.</p>
+			<table class="sortable" id="plugin-parameters">
+				<thead>
+					<tr  class="header-row">
+						<th>Parameter</th>
+						<th>Required?</th>
+						<th class="unsortable">Description</th>
+					</tr>
+				</thead>
+				<tbody>
+					<xsl:for-each select="easyant/properties/property">
+						<tr>
+							<td>
+								<xsl:value-of select="@name" />
+							</td>
+							<td>
+								<xsl:choose>
+									<xsl:when test="@required = 'true'">Yes</xsl:when>
+									<xsl:otherwise>No</xsl:otherwise>
+								</xsl:choose>
+							</td>
+							<td>
+								<xsl:if test="@description">
+									<xsl:value-of select="@description" /><br/>
+								</xsl:if>
+								<xsl:if test="@default">
+									<span class="bold">Default value: </span><span class="defaultValue"><xsl:value-of select="@default" /></span>
+								</xsl:if>
+							</td>
+						</tr>
+					</xsl:for-each>
+				</tbody>
+			</table>
+		</xsl:if>
+	</xsl:template>
+
+	<!--
+		Generate a list describing what the plugin does during each build
+		phase
+	-->
+	<xsl:template name="outputBuildPhases">
+		<xsl:variable name="targets" select="easyant/targets" />
+
+		<xsl:if test="easyant/phases/phase or $targets/target[@phase]">
+			<xsl:if test="easyant/phases/phase">
+				<h2>Build Phases</h2>
+			
+				<p>
+					This plugin defines the following <a href="../phases.html">new build phases</a> :
+				</p>
+				<table class="sortable" id="plugin-phases">
+					<thead>
+						<tr class="header-row">
+							<td>Phase</td>
+							<td class="unsortable">Description</td>
+						</tr>
+					</thead>
+					<tbody>
+						<xsl:for-each select="easyant/phases/phase">
+							<tr>
+								<td>
+									<xsl:value-of select="@name" />
+								</td>
+								<td>
+									<xsl:value-of select="@description" />
+								</td>
+							</tr>
+						</xsl:for-each>
+					</tbody>
+				</table>
+			</xsl:if>
+
+			<xsl:if test="$targets/target">
+				<h2>Targets</h2>
+				<p>This plugin contains the following targets:</p>
+				<table class="sortable" id="plugin-targets">
+					<thead>
+						<tr  class="header-row">
+							<th>Target</th>
+							<th class="unsortable">Description</th>
+							<th>Phase</th>
+						</tr>
+					</thead>
+					<tbody>
+						<xsl:for-each select="$targets/target">
+							<tr class="target-row">
+								<td class="target-name">
+									<xsl:value-of select="@name" />
+								</td>
+								<td>
+									<xsl:value-of select="@description" />
+								</td>
+								<td>
+									<xsl:value-of select="@phase" />
+								</td>
+							</tr>
+						</xsl:for-each>
+					</tbody>
+				</table>
+				<p>
+					Some targets are bound to existing <a href="../phases.html">build phase(s)</a>.
+				</p>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+	<xsl:template match="text()"/>
+</xsl:stylesheet>

Propchange: incubator/easyant/plugins/trunk/eadoc/src/main/resources/eadoc-plugin.xsl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/easyant/plugins/trunk/eadoc/src/main/resources/eadoc-plugin.xsl
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: incubator/easyant/plugins/trunk/eadoc/src/main/resources/eadoc-plugin.xsl
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/easyant/plugins/trunk/eadoc/src/main/resources/eadoc.ant
URL: http://svn.apache.org/viewvc/incubator/easyant/plugins/trunk/eadoc/src/main/resources/eadoc.ant?rev=1071697&view=auto
==============================================================================
--- incubator/easyant/plugins/trunk/eadoc/src/main/resources/eadoc.ant (added)
+++ incubator/easyant/plugins/trunk/eadoc/src/main/resources/eadoc.ant Thu Feb 17 17:01:07 2011
@@ -0,0 +1,80 @@
+<?xml version="1.0"?>
+<!--
+	Copyright 2008-2010 the EasyAnt project
+	
+	See the NOTICE file distributed with this work for additional information 
+	regarding copyright ownership.
+	
+	Licensed 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="org.apache.easyant.plugins#eadoc"
+	xmlns:ea="antlib:org.apache.easyant"
+	xmlns:ivy="antlib:org.apache.ivy.ant"
+	xmlns:ac="antlib:net.sf.antcontrib">
+	
+	<ea:core-version requiredrevision="[0.8,+]" />
+	
+	<target name=":init" description="Read and verify property configuration, load required task libraries" phase="validate">
+		<ea:parameter phase="validate" />
+		<ea:parameter phase="documentation" />
+
+		<ea:parameter property="eadoc.repository.name"
+			description="name of the repository to document" default="local"/>
+		<ea:parameter property="target.documentation.dir" default="${target}/documentation" 
+			description="directory where the documentation will be generated to" />
+		<ea:parameter property="eadoc.documentation.dir"
+			description="target directory for generated documentation" default="${target.documentation.dir}"/>
+		
+		<ea:parameter property="eadoc.module.org" 
+			description="org name for easyant modules" default="*" />
+		<ea:parameter property="eadoc.module.includes"
+			description="name pattern of modules to document" default="*"/>
+	
+		<ea:parameter property="eadoc.module.types"
+			description="List of module types to be documented" default="plugin,buildtype"/>
+		
+	</target>
+
+	<target name=":generate"
+			description="generate documentation for all EasyAnt plugins in the target repository" 
+			depends="validate" phase="process-documentation-resources">
+	
+		<!-- generate xooki TOC for each module type -->
+		<ac:for list="${eadoc.module.types}" param="current.type">
+			<sequential>
+                <echo>Generating @{current.type} docs</echo>
+
+                <ac:var name="current.menu" value="@{current.type}s"/>
+                <ac:var name="current.output.dir" value="${eadoc.documentation.dir}/ref/${current.menu}"/>
+                <ac:var name="current.toc" value="${current.output.dir}/toc.json"/>
+
+                <ea:startmenu context="${current.menu}" file="${current.toc}"/>
+
+                <ea:repreport organisation="org.apache.easyant.@{current.type}s"
+                    module="*" toDir="${current.output.dir}"
+                    xslfile="${org.apache.easyant.plugins#eadoc.eadoc-@{current.type}.xsl.file}">
+
+                    <menugenerator context="${current.menu}"/>
+
+                </ea:repreport>
+
+                <ea:endmenu context="${current.menu}"/>
+
+			</sequential>
+		</ac:for>
+		
+	</target>
+	
+	<target name="doit" depends=":generate" />
+	
+</project>

Propchange: incubator/easyant/plugins/trunk/eadoc/src/main/resources/eadoc.ant
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/easyant/plugins/trunk/eadoc/src/main/resources/eadoc.ant
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: incubator/easyant/plugins/trunk/eadoc/src/main/resources/eadoc.ant
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/easyant/plugins/trunk/easyant-plugin-publication/module.ivy
URL: http://svn.apache.org/viewvc/incubator/easyant/plugins/trunk/easyant-plugin-publication/module.ivy?rev=1071697&view=auto
==============================================================================
--- incubator/easyant/plugins/trunk/easyant-plugin-publication/module.ivy (added)
+++ incubator/easyant/plugins/trunk/easyant-plugin-publication/module.ivy Thu Feb 17 17:01:07 2011
@@ -0,0 +1,32 @@
+<!--
+	Copyright 2008-2010 the EasyAnt project
+	
+	See the NOTICE file distributed with this work for additional information 
+	regarding copyright ownership.
+	
+	Licensed 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.  
+-->
+<ivy-module version="2.0" xmlns:ea="http://www.easyant.org"> 
+	<info organisation="org.apache.easyant.plugins" module="easyant-plugin-publication" revision="0.1">
+	       <description>This module provides publication features for easyant plugins.</description>
+	       <ea:build organisation="org.apache.easyant.buildtypes" module="build-std-ant-plugin" revision="0.1"/>
+        </info>
+        <configurations>
+                <conf name="default" description="runtime dependencies artifact can be used with this conf"/>
+                <conf name="test" description="this scope indicates that the dependency is not required for normal use of the application, and is only available for the test compilation and execution phases."/>
+                <conf name="provided" description="this is much like compile, but indicates you expect the JDK or a container to provide it. It is only available on the compilation classpath, and is not transitive."/>
+        </configurations>
+	<publications>
+		<artifact type="ant"/>
+	</publications>
+</ivy-module>

Propchange: incubator/easyant/plugins/trunk/easyant-plugin-publication/module.ivy
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/easyant/plugins/trunk/easyant-plugin-publication/module.ivy
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: incubator/easyant/plugins/trunk/easyant-plugin-publication/module.ivy
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/easyant/plugins/trunk/easyant-plugin-publication/src/main/resources/easyant-plugin-publication.ant
URL: http://svn.apache.org/viewvc/incubator/easyant/plugins/trunk/easyant-plugin-publication/src/main/resources/easyant-plugin-publication.ant?rev=1071697&view=auto
==============================================================================
--- incubator/easyant/plugins/trunk/easyant-plugin-publication/src/main/resources/easyant-plugin-publication.ant (added)
+++ incubator/easyant/plugins/trunk/easyant-plugin-publication/src/main/resources/easyant-plugin-publication.ant Thu Feb 17 17:01:07 2011
@@ -0,0 +1,44 @@
+<!--
+	Copyright 2008-2010 the EasyAnt project
+	
+	See the NOTICE file distributed with this work for additional information 
+	regarding copyright ownership.
+	
+	Licensed 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="org.apache.easyant.plugins#easyant-plugin-publication"
+	xmlns:ivy="antlib:org.apache.ivy.ant"
+	xmlns:ac="antlib:net.sf.antcontrib"
+	xmlns:ea="antlib:org.apache.easyant">
+	
+	<ea:core-version requiredrevision="[0.8,+]" />
+	
+	<ea:import mrid="org.apache.easyant.plugins#ivy-publication;0.1"/>
+	
+	<target name=":init" phase="validate">
+		<ea:parameter phase="validate" />
+		<ea:parameter phase="test" />
+		<ea:parameter property="publish.plugin.before.test"
+				description="defines if easyant should publish the plugin before running test"/>
+	</target>
+		
+	<!--
+		publish in build scoped repository before test 
+	-->
+	<target name="-before-test" depends="validate" phase="test" if="publish.plugin.before.test">
+		<ea:configure-build-scoped-repository buildScopedRepositoryName="build" settingsRef="easyant.ivy.instance"/>
+		<ivy:publish artifactspattern="${target.artifacts}/[artifact](-[classifier]).[ext]" resolver="build"  forcedeliver="true" overwrite="true" settingsRef="easyant.ivy.instance" />
+	</target>
+
+	<target name="doit" depends=":init" />
+</project>

Propchange: incubator/easyant/plugins/trunk/easyant-plugin-publication/src/main/resources/easyant-plugin-publication.ant
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/easyant/plugins/trunk/easyant-plugin-publication/src/main/resources/easyant-plugin-publication.ant
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: incubator/easyant/plugins/trunk/easyant-plugin-publication/src/main/resources/easyant-plugin-publication.ant
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/easyant/plugins/trunk/emma/module.ivy
URL: http://svn.apache.org/viewvc/incubator/easyant/plugins/trunk/emma/module.ivy?rev=1071697&view=auto
==============================================================================
--- incubator/easyant/plugins/trunk/emma/module.ivy (added)
+++ incubator/easyant/plugins/trunk/emma/module.ivy Thu Feb 17 17:01:07 2011
@@ -0,0 +1,39 @@
+<!--
+	Copyright 2008-2010 the EasyAnt project
+	
+	See the NOTICE file distributed with this work for additional information 
+	regarding copyright ownership.
+	
+	Licensed 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.  
+-->
+<ivy-module version="2.0" xmlns:ea="http://www.easyant.org"> 
+	<info organisation="org.apache.easyant.plugins" module="emma" revision="0.1">
+		<description>
+This module provides coverage report using emma framework.<br/>
+Emma library and instrumentation classes (classes used for coverage report) will be prepended at the begining of compile.test.classpath and lib.test.classpath.
+		</description>
+	       <ea:build organisation="org.apache.easyant.buildtypes" module="build-std-ant-plugin" revision="0.1"/>
+        </info>
+        <configurations>
+                <conf name="default" description="runtime dependencies artifact can be used with this conf"/>
+                <conf name="test" description="this scope indicates that the dependency is not required for normal use of the application, and is only available for the test compilation and execution phases."/>
+                <conf name="provided" description="this is much like compile, but indicates you expect the JDK or a container to provide it. It is only available on the compilation classpath, and is not transitive."/>
+        </configurations>
+	<publications>
+		<artifact type="ant"/>
+	</publications>
+	<dependencies>
+		<dependency org="emma" name="emma" rev="2.0.5312"/>
+		<dependency org="emma" name="emma_ant" rev="2.0.5312"/>
+	</dependencies>
+</ivy-module>

Propchange: incubator/easyant/plugins/trunk/emma/module.ivy
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/easyant/plugins/trunk/emma/module.ivy
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: incubator/easyant/plugins/trunk/emma/module.ivy
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/easyant/plugins/trunk/emma/src/main/resources/emma.ant
URL: http://svn.apache.org/viewvc/incubator/easyant/plugins/trunk/emma/src/main/resources/emma.ant?rev=1071697&view=auto
==============================================================================
--- incubator/easyant/plugins/trunk/emma/src/main/resources/emma.ant (added)
+++ incubator/easyant/plugins/trunk/emma/src/main/resources/emma.ant Thu Feb 17 17:01:07 2011
@@ -0,0 +1,93 @@
+<!--
+	Copyright 2008-2010 the EasyAnt project
+	
+	See the NOTICE file distributed with this work for additional information 
+	regarding copyright ownership.
+	
+	Licensed 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="org.apache.easyant.plugins#emma" 
+	xmlns:ac="antlib:net.sf.antcontrib"
+	xmlns:ea="antlib:org.apache.easyant">
+	
+	<ea:core-version requiredrevision="[0.8,+]" />
+		
+	<ea:include mrid="org.apache.easyant.plugins#abstract-coverage;0.1" as=":abstract-coverage"/>
+
+	<target name=":init" phase="validate" depends=":abstract-coverage:init">
+		
+		<ea:parameter property="emma.metadata.path" description="location of emma metadata file" 
+			default="${target.coverage.report}/coverage.em"/>
+		<ea:parameter property="emma.datafile.path" description="location of emma coverage data file" 
+			default="${target.coverage.report}/coverage.ec"/>
+		
+		<ea:parameter property="emma.overrides.file" default="${target.coverage.report}/emma-overrides.properties"/>
+		
+		<!-- add datafile to system properties during test run, if it isn't explicitly set elsewhere -->
+		<property name="emma.properties" location="${emma.overrides.file}"/>
+		<mkdir dir="${target.coverage.report}" />
+
+		<!-- generate emma configuration file -->
+		<propertyfile file="${emma.overrides.file}">
+			<entry key="metadata.out.file" value="${emma.metadata.path}"/>
+			<entry key="coverage.out.file" value="${emma.datafile.path}"/>
+		</propertyfile>
+		
+		<ac:if>
+			<not><contains string="${test.run.jvmargs}" substring="emma.properties"/></not>
+			<ac:then>
+				<ac:var name="test.run.jvmargs" value="-Demma.properties='${emma.properties}' ${test.run.jvmargs}"/>
+			</ac:then>
+		</ac:if>
+		
+		<available property="emma.available" classname="com.vladium.emma.emmaTask" classpathref="org.apache.easyant.plugins#emma.classpath"/>
+		<fail unless="emma.available" message="Emma is unavailable!" />
+		<taskdef resource="emma_ant.properties" classpathref="org.apache.easyant.plugins#emma.classpath" />
+		
+	</target>
+
+ 	<target name=":instrument" depends=":init" phase="process-classes" if="has.src.test.java">
+		<ea:path overwrite="prepend" pathid="run.test.classpath">
+			<pathelement path="${target.coverage.classes}" />
+			<path refid="org.apache.easyant.plugins#emma.classpath"/>
+		</ea:path>	
+				
+		<!-- Apply emma instrumentation to the classes in instrpath and copy to destdir -->
+		<emma verbosity="${coverage.verbosity}" properties="${emma.properties}">
+			<instr instrpath="${target.main.classes}" destdir="${target.coverage.classes}" mode="copy" merge="true">
+				<filter excludes="${coverage.exclude.filter}" />
+			</instr>
+		</emma>
+	</target>
+
+	<target name=":report" depends=":init" phase="report" if="has.src.test.java">
+
+		<!-- Generate code coverage report -->
+		<emma>
+			<report sourcepath="${src.main.java}">
+				<fileset dir="${target.coverage.report}">
+					<include name="*.em" />
+					<include name="*.ec" />
+				</fileset>
+				<!--TODO: Find an easy way to choose report type -->
+				<txt outfile="${target.coverage.report}/${coverage.report.name}.txt" />
+				<xml outfile="${target.coverage.report}/${coverage.report.name}.xml" />
+				<html outfile="${target.coverage.report}/${coverage.report.name}.html" />
+			</report>
+		</emma>
+
+	</target>
+
+	<target name=":emma" depends="validate,test,report" description="generate emma covera report" />
+	<target name="doit" depends=":emma" />
+</project>

Propchange: incubator/easyant/plugins/trunk/emma/src/main/resources/emma.ant
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/easyant/plugins/trunk/emma/src/main/resources/emma.ant
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: incubator/easyant/plugins/trunk/emma/src/main/resources/emma.ant
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/easyant/plugins/trunk/ivy-provisioning/module.ivy
URL: http://svn.apache.org/viewvc/incubator/easyant/plugins/trunk/ivy-provisioning/module.ivy?rev=1071697&view=auto
==============================================================================
--- incubator/easyant/plugins/trunk/ivy-provisioning/module.ivy (added)
+++ incubator/easyant/plugins/trunk/ivy-provisioning/module.ivy Thu Feb 17 17:01:07 2011
@@ -0,0 +1,31 @@
+<!--
+	Copyright 2008-2010 the EasyAnt project
+	
+	See the NOTICE file distributed with this work for additional information 
+	regarding copyright ownership.
+	
+	Licensed 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.  
+-->
+<ivy-module version="2.0" xmlns:ea="http://www.easyant.org"> 
+	<info organisation="org.apache.easyant.plugins" module="ivy-provisioning" revision="0.1">
+	       <ea:build organisation="org.apache.easyant.buildtypes" module="build-std-ant-plugin" revision="0.1"/>
+        </info>
+        <configurations>
+                <conf name="default" description="runtime dependencies artifact can be used with this conf"/>
+                <conf name="test" description="this scope indicates that the dependency is not required for normal use of the application, and is only available for the test compilation and execution phases."/>
+                <conf name="provided" description="this is much like compile, but indicates you expect the JDK or a container to provide it. It is only available on the compilation classpath, and is not transitive."/>
+        </configurations>
+	<publications>
+		<artifact type="ant"/>
+	</publications>
+</ivy-module>

Propchange: incubator/easyant/plugins/trunk/ivy-provisioning/module.ivy
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/easyant/plugins/trunk/ivy-provisioning/module.ivy
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: incubator/easyant/plugins/trunk/ivy-provisioning/module.ivy
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/easyant/plugins/trunk/ivy-provisioning/src/main/resources/ivy-provisioning.ant
URL: http://svn.apache.org/viewvc/incubator/easyant/plugins/trunk/ivy-provisioning/src/main/resources/ivy-provisioning.ant?rev=1071697&view=auto
==============================================================================
--- incubator/easyant/plugins/trunk/ivy-provisioning/src/main/resources/ivy-provisioning.ant (added)
+++ incubator/easyant/plugins/trunk/ivy-provisioning/src/main/resources/ivy-provisioning.ant Thu Feb 17 17:01:07 2011
@@ -0,0 +1,139 @@
+<!--
+	Copyright 2008-2010 the EasyAnt project
+	
+	See the NOTICE file distributed with this work for additional information 
+	regarding copyright ownership.
+	
+	Licensed 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="org.apache.easyant.plugins#ivy-provisioning" 
+	xmlns:ivy="antlib:org.apache.ivy.ant" 
+	xmlns:ac="antlib:net.sf.antcontrib"
+	xmlns:ea="antlib:org.apache.easyant">
+
+	<ea:core-version requiredrevision="[0.8,+]" />
+
+	<target name=":init" phase="validate">
+		<ea:parameter phase="validate" />
+		<ea:parameter phase="provision" />
+		<ea:parameter property="lib.main" default="${basedir}/lib/main" description="directory where main libraries are picked up" />
+		<ea:parameter property="lib.test" default="${basedir}/lib/test" description="directory where test libraries are picked up" />
+		<ea:parameter property="lib.provided" default="${basedir}/lib/provided" description="directory where provided libraries are picked up" />
+		<ea:parameter property="main.confs" default="default" description="confs used for main librairies" />
+		<ea:parameter property="test.confs" default="test" description="confs used for test librairies" />
+		<ea:parameter property="provided.confs" default="provided" description="confs used for provided librairies" />
+		<ea:parameter property="project.ivy.instance" default="project.ivy.instance" description="the ivy instance name for your project" />
+		<ea:parameter property="project.ivy.file" required="true" description="the name of the file containing dependencies of your project" />
+		<ea:parameter property="retrieve.dependencies" default="false" description="defines if dependencies should be retrieve dependencies in the lib directory"/>
+	
+		<ea:parameter property="retrieve.pattern.lib.main" default="${lib.main}/[artifact]-[revision].[ext]" description="retrieve pattern for main artifacts" />
+		<ea:parameter property="retrieve.pattern.lib.test" default="${lib.test}/[artifact]-[revision].[ext]" description="retrieve pattern for test artifacts" />
+		<ea:parameter property="retrieve.pattern.lib.provided" default="${lib.provided}/[artifact]-[revision].[ext]" description="retrieve pattern for provided artifacts" />
+			
+		<ea:parameter property="sync.lib.dir" default="true" description="a boolean that define if lib dir should be synchronized or not"/>
+
+		<!-- is project ivy settings configured ? -->
+		<ea:parameter property="project.ivy.settings.file" description="the ivysettings file used by your project" />
+		<ea:parameter property="project.ivy.settings.url" description="the ivysettings url used by your project" />
+		
+		<condition property="is.project.ivy.settings.configured">
+			<isreference refid="${project.ivy.instance}"/>
+		</condition>
+		<fail unless="is.project.ivy.settings.configured" message="project ivy instance is not configured, at least one of the following property must be set : project.ivy.settings.file, project.ivy.settings.url"/>
+		<!-- define empty *.lib.fileset that will be override by configuration classpath -->
+		<fileset id="lib.main.fileset" dir="${lib.main}" erroronmissingdir="false"/>
+		<fileset id="lib.test.fileset" dir="${lib.test}" erroronmissingdir="false"/>
+		<fileset id="lib.provided.fileset" dir="${lib.provided}" erroronmissingdir="false"/>
+		
+		<path id="project.lib.main.classpath"/>
+		<path id="project.lib.test.classpath"/>
+		<path id="project.lib.provided.classpath"/>
+	</target>
+
+	<!-- ================================= 
+	          target: resolve              
+	         ================================= -->
+	<target name="-resolve" depends="validate">
+		<ivy:resolve file="${project.ivy.file}" settingsRef="${project.ivy.instance}" />
+		<condition property="project.contains.main.confs">
+			<matches string="${ivy.configurations}" pattern="${main.confs}"/>
+		</condition>
+		<condition property="project.contains.test.confs">
+			<matches string="${ivy.configurations}" pattern="${test.confs}"/>
+		</condition>
+		<condition property="project.contains.provided.confs">
+			<matches string="${ivy.configurations}" pattern="${provided.confs}"/>
+		</condition>
+	</target>
+	
+	<target name=":resolve" depends="-resolve,-resolve-main-confs,-resolve-test-confs,-resolve-provided-confs" description="resolve and retrieve dependencies with ivy" unless="skip.resolve" phase="provision"/>
+			
+			
+	<target name="-resolve-main-confs" if="project.contains.main.confs">
+		<ivy:cachepath pathid="cache.main.classpath" conf="${main.confs}" settingsRef="${project.ivy.instance}"/>
+		<ea:path pathid="compile.main.classpath" overwrite="append-if-not-exist">
+					<path refid="cache.main.classpath"/>
+		</ea:path>
+		<ac:if>
+			<istrue value="${retrieve.dependencies}"/>
+			<ac:then>
+				<mkdir dir="${lib.main}" />
+				<ivy:retrieve pattern="${retrieve.pattern.lib.main}" settingsRef="${project.ivy.instance}" conf="${main.confs}" sync="${sync.lib.dir}"/>
+				<ea:path pathid="project.lib.main.classpath" overwrite="append">
+					<fileset dir="${lib.main}" includes="*.jar" erroronmissingdir="false"/>
+				</ea:path>
+			</ac:then>
+		</ac:if>
+	</target>
+
+	<target name="-resolve-test-confs" if="project.contains.test.confs">
+		<ivy:cachepath pathid="cache.test.classpath" conf="${test.confs}" settingsRef="${project.ivy.instance}"/>
+		<ea:path pathid="compile.test.classpath" overwrite="append-if-not-exist">
+					<path refid="cache.test.classpath"/>
+		</ea:path>
+		<ac:if>
+			<istrue value="${retrieve.dependencies}"/>
+			<ac:then>
+				<mkdir dir="${lib.test}"/>
+				<!-- resolve test dependencies -->
+				<ivy:retrieve pattern="${retrieve.pattern.lib.test}" settingsRef="${project.ivy.instance}" conf="${test.confs}" sync="${sync.lib.dir}"/>
+				<ea:path pathid="project.lib.test.classpath" overwrite="append">
+                	<fileset dir="${lib.test}" includes="*.jar" erroronmissingdir="false"/>
+                </ea:path>
+			</ac:then>
+		</ac:if>
+	</target>
+	
+	<target name="-resolve-provided-confs" if="project.contains.provided.confs">
+		<ivy:cachepath pathid="cache.provided.classpath" conf="${provided.confs}" settingsRef="${project.ivy.instance}"/>
+		<ea:path pathid="compile.main.classpath" overwrite="append-if-not-exist">
+			<path refid="cache.provided.classpath"/>
+		</ea:path>
+
+
+		<ac:if>
+			<istrue value="${retrieve.dependencies}"/>
+			<ac:then>
+				<mkdir dir="${lib.provided}"/>
+				<!-- resolve provided dependencies -->
+				<ivy:retrieve pattern="${retrieve.pattern.lib.provided}" settingsRef="${project.ivy.instance}" conf="${provided.confs}" sync="${sync.lib.dir}"/>
+				<ea:path pathid="project.lib.provided.classpath" overwrite="append">
+                	<fileset dir="${lib.provided}" includes="*.jar" erroronmissingdir="false"/>
+                </ea:path>
+			</ac:then>
+		</ac:if>
+	</target>
+		
+
+
+</project>

Propchange: incubator/easyant/plugins/trunk/ivy-provisioning/src/main/resources/ivy-provisioning.ant
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/easyant/plugins/trunk/ivy-provisioning/src/main/resources/ivy-provisioning.ant
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: incubator/easyant/plugins/trunk/ivy-provisioning/src/main/resources/ivy-provisioning.ant
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/easyant/plugins/trunk/ivy-publication/module.ivy
URL: http://svn.apache.org/viewvc/incubator/easyant/plugins/trunk/ivy-publication/module.ivy?rev=1071697&view=auto
==============================================================================
--- incubator/easyant/plugins/trunk/ivy-publication/module.ivy (added)
+++ incubator/easyant/plugins/trunk/ivy-publication/module.ivy Thu Feb 17 17:01:07 2011
@@ -0,0 +1,32 @@
+<!--
+	Copyright 2008-2010 the EasyAnt project
+	
+	See the NOTICE file distributed with this work for additional information 
+	regarding copyright ownership.
+	
+	Licensed 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.  
+-->
+<ivy-module version="2.0" xmlns:ea="http://www.easyant.org"> 
+	<info organisation="org.apache.easyant.plugins" module="ivy-publication" revision="0.1">
+	       <description>This module publication features (to share projects with your team).</description>
+	       <ea:build organisation="org.apache.easyant.buildtypes" module="build-std-ant-plugin" revision="0.1"/>
+        </info>
+        <configurations>
+                <conf name="default" description="runtime dependencies artifact can be used with this conf"/>
+                <conf name="test" description="this scope indicates that the dependency is not required for normal use of the application, and is only available for the test compilation and execution phases."/>
+                <conf name="provided" description="this is much like compile, but indicates you expect the JDK or a container to provide it. It is only available on the compilation classpath, and is not transitive."/>
+        </configurations>
+	<publications>
+		<artifact type="ant"/>
+	</publications>
+</ivy-module>

Propchange: incubator/easyant/plugins/trunk/ivy-publication/module.ivy
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/easyant/plugins/trunk/ivy-publication/module.ivy
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: incubator/easyant/plugins/trunk/ivy-publication/module.ivy
------------------------------------------------------------------------------
    svn:mime-type = text/xml