<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.11.1 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.4.2:issue-management at 2023-01-28

 | Rendered using Apache Maven Default Skin
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
    <title>Apache Whisker::Velocity &#x2013; Issue Management</title>
    <link rel="stylesheet" href="./css/maven-base.css" />
    <link rel="stylesheet" href="./css/maven-theme.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />
<link href="https://fonts.googleapis.com/css?family=Mate+SC" type="text/css" rel="stylesheet" />
  </head>
  <body class="composite">
    <div id="banner">
<div id="bannerLeft">Apache Whisker::Output(velocity)
</div>
<a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide.jpg"  alt="The Apache Software Foundation" title="The Apache Software Foundation"/></a>      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
      <div class="xleft">
        <span id="publishDate">Last Published: 2023-01-28</span>
           | <span id="projectVersion">Version: 0.2-SNAPSHOT</span>
          | <a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a> &gt;
<a href="https://creadur.apache.org/" class="externalLink" title="Creadur">Creadur</a> &gt;
<a href="https://creadur.apache.org/whisker/" class="externalLink" title="Whisker">Whisker</a> &gt;
<a href="index.html" title="Apache Whisker::Velocity">Apache Whisker::Velocity</a> &gt;
Issue Management
      </div>
      <div class="xright">      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
       <h5>Overview</h5>
    <ul>
     <li class="none"><a href="index.html" title="Introduction">Introduction</a></li>
    </ul>
       <h5>Parent Project</h5>
    <ul>
     <li class="none"><a href="../index.html" title="Apache Whisker">Apache Whisker</a></li>
    </ul>
       <h5>Project Documentation</h5>
    <ul>
     <li class="expanded"><a href="project-info.html" title="Project Information">Project Information</a>
      <ul>
       <li class="none"><a href="ci-management.html" title="CI Management">CI Management</a></li>
       <li class="none"><a href="dependencies.html" title="Dependencies">Dependencies</a></li>
       <li class="none"><a href="dependency-info.html" title="Dependency Information">Dependency Information</a></li>
       <li class="none"><a href="dependency-management.html" title="Dependency Management">Dependency Management</a></li>
       <li class="none"><a href="distribution-management.html" title="Distribution Management">Distribution Management</a></li>
       <li class="none"><a href="index.html" title="About">About</a></li>
       <li class="none"><strong>Issue Management</strong></li>
       <li class="none"><a href="licenses.html" title="Licenses">Licenses</a></li>
       <li class="none"><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
       <li class="none"><a href="plugin-management.html" title="Plugin Management">Plugin Management</a></li>
       <li class="none"><a href="plugins.html" title="Plugins">Plugins</a></li>
       <li class="none"><a href="scm.html" title="Source Code Management">Source Code Management</a></li>
       <li class="none"><a href="summary.html" title="Summary">Summary</a></li>
      </ul></li>
     <li class="collapsed"><a href="project-reports.html" title="Project Reports">Project Reports</a></li>
    </ul>
       <h5>Apache Whisker&trade;</h5>
    <ul>
     <li class="none"><a href="../index.html" title="Introducing Whisker">Introducing Whisker</a></li>
     <li class="none"><a href="../meta-data.html" title="Meta Data">Meta Data</a></li>
     <li class="none"><a href="../apache-whisker-maven-plugin/index.html" title="Maven Plugin">Maven Plugin</a></li>
     <li class="none"><a href="../apache-whisker-cli/index.html" title="Command Line">Command Line</a></li>
     <li class="none"><a href="../apidocs/index.html" title="Javadocs">Javadocs</a></li>
     <li class="none"><a href="../xref/index.html" title="Source Cross-ref">Source Cross-ref</a></li>
     <li class="none"><a href="../faq.html" title="FAQ">FAQ</a></li>
    </ul>
       <h5>Apache Creadur &trade;</h5>
    <ul>
     <li class="none"><a href="https://creadur.apache.org" class="externalLink" title="Creadur Project Home">Creadur Project Home</a></li>
     <li class="none"><a href="https://creadur.apache.org/rat" class="externalLink" title="Apache Rat">Apache Rat</a></li>
     <li class="none"><a href="https://creadur.apache.org/tentacles" class="externalLink" title="Apache Tentacles">Apache Tentacles</a></li>
     <li class="none"><a href="https://www.apache.org/security/" class="externalLink" title="Security">Security</a></li>
     <li class="none"><a href="https://www.apache.org/licenses/" class="externalLink" title="License">License</a></li>
     <li class="none"><a href="https://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">Sponsorship</a></li>
     <li class="none"><a href="https://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">Thanks</a></li>
    </ul>
       <h5>The Apache Software Foundation</h5>
    <ul>
     <li class="none"><a href="https://www.apache.org/foundation" class="externalLink" title="About the Foundation">About the Foundation</a></li>
     <li class="none"><a href="https://projects.apache.org" class="externalLink" title="The projects">The projects</a></li>
     <li class="none"><a href="https://people.apache.org" class="externalLink" title="The people">The people</a></li>
     <li class="none"><a href="https://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How we work">How we work</a></li>
     <li class="none"><a href="https://www.apache.org/foundation/how-it-works.html#history" class="externalLink" title="Our history">Our history</a></li>
     <li class="none"><a href="https://blogs.apache.org/foundation/" class="externalLink" title="News">News</a></li>
    </ul>
       <h5>Contribute</h5>
    <ul>
     <li class="none"><a href="https://www.apache.org/foundation/getinvolved.html" class="externalLink" title="Get Involved">Get Involved</a></li>
    </ul>
       <h5>Committer Info</h5>
    <ul>
     <li class="none"><a href="https://www.apache.org/dev/committers.html" class="externalLink" title="Committers' FAQ">Committers' FAQ</a></li>
     <li class="none"><a href="https://www.apache.org/dev/new-committers-guide.html" class="externalLink" title="New Committers Guide">New Committers Guide</a></li>
     <li class="none"><a href="https://planet.apache.org/committers/" class="externalLink" title="Planet Apache">Planet Apache</a></li>
     <li class="none"><a href="https://community.apache.org/" class="externalLink" title="Community">Community</a></li>
     <li class="none"><a href="https://www.apache.org/legal/" class="externalLink" title="Legal">Legal</a></li>
     <li class="none"><a href="https://www.apache.org/foundation/marks/" class="externalLink" title="Branding">Branding</a></li>
     <li class="none"><a href="https://www.apache.org/press/" class="externalLink" title="Media Relations">Media Relations</a></li>
    </ul>
      <a href="https://maven.apache.org/" title="Maven" class="poweredBy">
        <img class="poweredBy"  alt="Maven" src="https://maven.apache.org/images/logos/maven-feather.png"     />
      </a>
      </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
<section>
<h2><a name="Overview"></a>Overview</h2><a name="Overview"></a>
<p>This project uses <a class="externalLink" href="http://www.atlassian.com/software/jira">JIRA</a>.</p></section><section>
<h2><a name="Issue_Management"></a>Issue Management</h2><a name="Issue_Management"></a>
<p>Issues, bugs, and feature requests should be submitted to the following issue management system for this project.</p>
<div>
<pre><a class="externalLink" href="https://issues.apache.org/jira/browse/WHISKER">https://issues.apache.org/jira/browse/WHISKER</a></pre></div></section>
      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">
        Copyright © 2012-2023 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
      Apache Creadur, Creadur, Apache Rat, Apache Tentacles, Apache Whisker, Apache and the Apache feather logo are trademarks
      of The Apache Software Foundation.
      All other marks mentioned may be trademarks or registered trademarks of their respective owners.
      This is user documentation, not legal advice.
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
