<?xml version="1.0" encoding="utf-8"?>
<!--
  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.
-->

<!--+
    | $Id$
    |
    | Simple stylesheet to verify that files defined in lib/jars.xml
    | actually appear in the lib/ directory, and vice-versa, that files
    | that appear in the lib/ directory have an entry with a
    | description in the lib/jars.xml file.
    |
    | Author: Ovidiu Predescu "ovidiu@cup.hp.com"
    | Date: May 22, 2002
    |
    +-->

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:output indent="yes" method="xml" doctype-public="-//APACHE//DTD Documentation V1.0//EN" doctype-system="../dtd/document-v10.dtd" />

  <xsl:strip-space elements="*" />

  <xsl:param name="stylesheet-path" select="''"/>
  <xsl:param name="current-jars-path" select="''"/>
  <xsl:param name="current-jars-file" select="''"/>

  <xsl:variable name="current-jars">
    <xsl:choose>
      <xsl:when test="starts-with($current-jars-path, '/')">
        <!-- absolute current-jars-path => simply use it -->
        <xsl:value-of select="concat($current-jars-path, '/', $current-jars-file)"/>
      </xsl:when>
      <xsl:otherwise>
        <!-- relative current-jars-path -->
        <xsl:choose>
          <xsl:when test="starts-with($stylesheet-path, '/')">
            <!-- absolute stylesheet path outside of COCOON_HOME, no way until now to find the path back -->
            <xsl:message terminate="yes">
              <xsl:text>Absolute stylesheet path makes it impossible to find the current-jars.xml. </xsl:text>
              <xsl:text>If you need this feature, you have to pass the COCOON_HOME directory as </xsl:text>
              <xsl:text>param to the stylesheet.</xsl:text>
            </xsl:message>
          </xsl:when>
          <xsl:otherwise>
            <!-- relative stylesheet-path => build the path to current-jars-path -->
            <xsl:call-template name="relativize-path">
              <xsl:with-param name="current-directory" select="$stylesheet-path"/>
            </xsl:call-template>
            <xsl:value-of select="concat($current-jars-path, '/', $current-jars-file)"/>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>

  <xsl:variable name="current-jars.xml" select="document($current-jars)"/>

  <xsl:variable name="jars.xml" select="/"/>

  <xsl:template match="/">
    <!-- Validate lib/jars.xml prior to checking files -->

    <!-- Verify that all the entries in lib/jars.xml have appropriate tags -->
    <xsl:apply-templates select="//file" mode="no-tag"/>

    <!-- Verify that all the file entries are unique -->
    <xsl:for-each select="$jars.xml/jars/file/lib">
      <xsl:variable name="this" select="normalize-space(text())"/>
      <xsl:if test="count($jars.xml/jars/file/lib[normalize-space(text()) = $this]) > 1">
        <xsl:message terminate="yes">
  [ERROR] Duplicate entry for file <xsl:value-of select="$this"/>

        </xsl:message>
      </xsl:if>
      <!-- ensure a decent filename -->
      <xsl:if test="not(contains(translate($this, '0123456789', '9999999999'), '9'))">
        <xsl:message terminate="no">
  [WARN] Poor filename for file <xsl:value-of select="$this"/>
  Please add version number or datestamp.
        </xsl:message>
      </xsl:if>
    </xsl:for-each>

    <!-- Verify if files declared in jars.xml appear in the lib/ directory -->
    <xsl:apply-templates select="jars/file/lib" mode="declared-but-doesnt-appear"/>

    <!-- Verify that files that appear in lib/ are declared in jars.xml -->
    <xsl:apply-templates select="$current-jars.xml/jars" mode="appears-but-not-declared"/>

    <!-- create the documentation -->
    <document>
     <header>
      <title>Cocoon JARs</title>
      <authors>
       <person name="Cocoon Developers" email="dev@cocoon.apache.org"/>
      </authors>
     </header>
     <body>
     <s1 title="What, why and when...">
      <p>This is a list of the available jars, what they are, where they come from,
       and what they do.</p>
      <table>
       <tr>
         <th>Title</th>
         <th>Jar (type/name)</th>
         <th>Description</th>
         <th>Used by</th>
       </tr>
       <xsl:apply-templates select="jars/file" mode="documentation"/>
      </table>
     </s1>
    </body>
   </document>
  </xsl:template>

  <!-- Template to verify if files declared in jars.xml appear in the
       lib/ directory
  -->
  <xsl:template match="lib" mode="declared-but-doesnt-appear">
    <xsl:variable name="this" select="normalize-space(text())"/>
    <xsl:if test="count($current-jars.xml/jars/jar[normalize-space(text()) = $this]) = 0">
      <xsl:message terminate="yes">
  [ERROR] File <xsl:value-of select="$this"/> is declared in lib/jars.xml,
  but doesn't appear in the lib/ directory.

  If this file was removed, please update the lib/jars.xml file to remove
  this file entry.
      </xsl:message>
    </xsl:if>
  </xsl:template>

  <!-- Template to verify that files that appear in lib/ are declared
       in jars.xml
  -->
  <xsl:template match="jar" mode="appears-but-not-declared">
    <xsl:variable name="this" select="normalize-space(text())"/>
    <xsl:if test="count($jars.xml/jars/file/lib[normalize-space(text()) = $this]) = 0">
      <xsl:choose>
        <xsl:when test="starts-with($this, 'local/')">
          <xsl:message>
  [WARN] Using local library <xsl:value-of select="$this"/> : ensure it
  doesn't conflict with any other library.
          </xsl:message>
        </xsl:when>
        <xsl:otherwise>
          <xsl:message terminate="yes">
  [ERROR] File <xsl:value-of select="$this"/> appears in the lib/ directory,
  but is not declared in lib/jars.xml.

  Please update the lib/jars.xml file to include the <xsl:value-of select="$this"/>
  file together with a description.
          </xsl:message>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:if>
  </xsl:template>

  <!-- Verify if a file element has a "title" tag -->
  <xsl:template match="file[not(title)]" mode="no-tag">
    <xsl:message terminate="yes">
  [ERROR] Entry for file <xsl:value-of select="normalize-space(lib/text())"/>
  in the lib/jars.xml does not have a "title" tag.

  Please add a title tag before continuing.
    </xsl:message>
  </xsl:template>

  <!-- Verify if a file element has a "description" tag -->
  <xsl:template match="file[not(description)]" mode="no-tag">
    <xsl:message terminate="yes">
  [ERROR] Entry for file <xsl:value-of select="normalize-space(lib/text())"/>
  in the lib/jars.xml does not have a "description" tag.

  Please add a description tag before continuing.
    </xsl:message>
  </xsl:template>

  <!-- Verify if a file element has an "used-by" tag -->
  <xsl:template match="file[not(used-by)]" mode="no-tag">
    <xsl:message terminate="yes">
  [ERROR] Entry for file <xsl:value-of select="normalize-space(lib/text())"/>
  in the lib/jars.xml does not have a "used-by" tag.

  Please add a used-by tag before continuing.
    </xsl:message>
  </xsl:template>

  <!-- Verify if a file element has an "lib" tag -->
  <xsl:template match="file[not(lib)]" mode="no-tag">
    <xsl:message terminate="yes">
  [ERROR] Entry for file <xsl:value-of select="normalize-space(title/text())"/>
  in the lib/jars.xml does not have a "lib" tag.

  Please add a lib tag before continuing.
    </xsl:message>
  </xsl:template>

  <!-- Verify if a file element has an "url" tag -->
  <xsl:template match="file[not(homepage)]" mode="no-tag">
    <xsl:message terminate="yes">
  [ERROR] Entry for file <xsl:value-of select="normalize-space(lib/text())"/>
  in the lib/jars.xml does not have a "homepage" tag.

  Please add a homepage tag before continuing.
    </xsl:message>
  </xsl:template>

  <!-- Format for documentation -->
  <xsl:template match="file" mode="documentation">
    <tr>
      <td><link href="{homepage}"><xsl:value-of select="title"/></link></td>
      <td><xsl:value-of select="lib"/></td>
      <td><xsl:value-of select="description"/></td>
      <td><xsl:value-of select="used-by"/></td>
    </tr>
  </xsl:template>

  <xsl:template name="relativize-path">
    <xsl:param name="current-directory" select="''"/>
    <xsl:if test="string($current-directory)">
      <xsl:text>../</xsl:text>
      <xsl:call-template name="relativize-path">
        <xsl:with-param name="current-directory" select="substring-after($current-directory, '/')"/>
      </xsl:call-template>
    </xsl:if>
  </xsl:template>

  <xsl:template match="file" mode="no-tag" priority="-1"/>
  <xsl:template match="file" mode="declared-but-doesnt-appear" priority="-1"/>
  <xsl:template match="file" mode="appears-but-not-declared" priority="-1"/>    

</xsl:stylesheet>
