<!DOCTYPE html>


<!--
 | Generated by Apache Maven Doxia Site Renderer 1.11.1 from org.apache.maven.plugins:maven-changes-plugin:2.10:jira-report at 2022-10-20
 | Rendered using Apache Maven Fluido Skin 1.11.1
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
    <title>apache-tentacles &#x2013; JIRA Report</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.11.1.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />
    <script src="./js/apache-maven-fluido-1.11.1.min.js"></script>
  </head>
  <body class="topBarEnabled">
    <header id="topbar" class="navbar navbar-fixed-top ">
      <div class="navbar-inner">
        <div class="container-fluid">
        <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </a>
            <ul class="nav">
      <li class="dropdown">
        <a class="dropdown-toggle" data-toggle="dropdown">The Apache Software Foundation <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="http://www.apache.org/foundation" title="About the Foundation">About the Foundation</a></li>
            <li><a href="http://projects.apache.org" title="The projects">The projects</a></li>
            <li><a href="http://people.apache.org" title="The people">The people</a></li>
            <li><a href="http://www.apache.org/foundation/how-it-works.html" title="How we work">How we work</a></li>
            <li><a href="http://www.apache.org/foundation/how-it-works.html#history" title="Our history">Our history</a></li>
            <li><a href="http://blogs.apache.org/foundation/" title="News">News</a></li>
        </ul>
      </li>
      <li class="dropdown">
        <a class="dropdown-toggle" data-toggle="dropdown">Contribute <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="http://www.apache.org/foundation/getinvolved.html" title="Get Involved">Get Involved</a></li>
        </ul>
      </li>
      <li class="dropdown">
        <a class="dropdown-toggle" data-toggle="dropdown">Committer Info <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="site-publish.html" title="Publish this site">Publish this site</a></li>
            <li><a href="http://www.apache.org/dev/committers.html" title="Committers' FAQ">Committers' FAQ</a></li>
            <li><a href="http://www.apache.org/dev/new-committers-guide.html" title="New Committers Guide">New Committers Guide</a></li>
            <li><a href="http://planet.apache.org/committers/" title="Plant Apache">Plant Apache</a></li>
            <li><a href="http://community.apache.org/" title="Community">Community</a></li>
            <li><a href="http://www.apache.org/legal/" title="Legal">Legal</a></li>
            <li><a href="http://www.apache.org/foundation/marks/" title="Branding">Branding</a></li>
            <li><a href="http://www.apache.org/press/" title="Media Relations">Media Relations</a></li>
        </ul>
      </li>
      <li class="dropdown">
        <a class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li class="dropdown-submenu">
<a href="project-info.html" title="Project Information">Project Information</a>
              <ul class="dropdown-menu">
                  <li><a href="index.html" title="About">About</a></li>
                  <li><a href="plugin-management.html" title="Plugin Management">Plugin Management</a></li>
                  <li><a href="distribution-management.html" title="Distribution Management">Distribution Management</a></li>
                  <li><a href="dependency-info.html" title="Dependency Information">Dependency Information</a></li>
                  <li><a href="source-repository.html" title="Source Repository">Source Repository</a></li>
                  <li><a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a></li>
                  <li><a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a></li>
                  <li><a href="integration.html" title="Continuous Integration">Continuous Integration</a></li>
                  <li><a href="plugins.html" title="Project Plugins">Project Plugins</a></li>
                  <li><a href="license.html" title="Project License">Project License</a></li>
                  <li><a href="dependency-management.html" title="Dependency Management">Dependency Management</a></li>
                  <li><a href="team-list.html" title="Project Team">Project Team</a></li>
                  <li><a href="project-summary.html" title="Project Summary">Project Summary</a></li>
                  <li><a href="dependencies.html" title="Dependencies">Dependencies</a></li>
              </ul>
            </li>
            <li class="dropdown-submenu">
<a href="project-reports.html" title="Project Reports">Project Reports</a>
              <ul class="dropdown-menu">
                  <li><a href="checkstyle.html" title="Checkstyle">Checkstyle</a></li>
                  <li><a href="apidocs/index.html" title="JavaDocs">JavaDocs</a></li>
                  <li><a href="testapidocs/index.html" title="Test JavaDocs">Test JavaDocs</a></li>
                  <li><a href="xref-test/index.html" title="Test Source Xref">Test Source Xref</a></li>
                  <li><a href="xref/index.html" title="Source Xref">Source Xref</a></li>
                  <li><a href="surefire-report.html" title="Surefire Report">Surefire Report</a></li>
                  <li><a href="pmd.html" title="PMD">PMD</a></li>
                  <li><a href="cpd.html" title="CPD">CPD</a></li>
                  <li><a href="changes-report.html" title="Changes Report">Changes Report</a></li>
                  <li><a title="JIRA Report">JIRA Report</a></li>
                  <li><a href="jdepend-report.html" title="JDepend">JDepend</a></li>
                  <li><a href="taglist.html" title="Tag List">Tag List</a></li>
                  <li><a href="rat-report.html" title="Rat Report">Rat Report</a></li>
              </ul>
            </li>
        </ul>
      </li>
            </ul>
        </div>
      </div>
    </header>
    <div class="container-fluid">
      <header>
        <div id="banner">
          <div class="pull-left"><div id="bannerLeft"><h1>Apache Tentacles</h1>
</div>
</div>
          <div class="pull-right"></div>
          <div class="clear"><hr/></div>
        </div>

        <div id="breadcrumbs">
          <ul class="breadcrumb">
        <li id="publishDate">Last Published: 2022-10-20<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 0.1-SNAPSHOT</li>
          </ul>
        </div>
      </header>
      <div class="row-fluid">
        <header id="leftColumn" class="span2">
          <nav class="well sidebar-nav">
  <ul class="nav nav-list">
   <li class="nav-header">The Apache Software Foundation</li>
    <li><a href="http://www.apache.org/foundation" class="externalLink" title="About the Foundation"><span class="none"></span>About the Foundation</a></li>
    <li><a href="http://projects.apache.org" class="externalLink" title="The projects"><span class="none"></span>The projects</a></li>
    <li><a href="http://people.apache.org" class="externalLink" title="The people"><span class="none"></span>The people</a></li>
    <li><a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How we work"><span class="none"></span>How we work</a></li>
    <li><a href="http://www.apache.org/foundation/how-it-works.html#history" class="externalLink" title="Our history"><span class="none"></span>Our history</a></li>
    <li><a href="http://blogs.apache.org/foundation/" class="externalLink" title="News"><span class="none"></span>News</a></li>
   <li class="nav-header">Contribute</li>
    <li><a href="http://www.apache.org/foundation/getinvolved.html" class="externalLink" title="Get Involved"><span class="none"></span>Get Involved</a></li>
   <li class="nav-header">Committer Info</li>
    <li><a href="site-publish.html" title="Publish this site"><span class="none"></span>Publish this site</a></li>
    <li><a href="http://www.apache.org/dev/committers.html" class="externalLink" title="Committers' FAQ"><span class="none"></span>Committers' FAQ</a></li>
    <li><a href="http://www.apache.org/dev/new-committers-guide.html" class="externalLink" title="New Committers Guide"><span class="none"></span>New Committers Guide</a></li>
    <li><a href="http://planet.apache.org/committers/" class="externalLink" title="Plant Apache"><span class="none"></span>Plant Apache</a></li>
    <li><a href="http://community.apache.org/" class="externalLink" title="Community"><span class="none"></span>Community</a></li>
    <li><a href="http://www.apache.org/legal/" class="externalLink" title="Legal"><span class="none"></span>Legal</a></li>
    <li><a href="http://www.apache.org/foundation/marks/" class="externalLink" title="Branding"><span class="none"></span>Branding</a></li>
    <li><a href="http://www.apache.org/press/" class="externalLink" title="Media Relations"><span class="none"></span>Media Relations</a></li>
   <li class="nav-header">Project Documentation</li>
    <li><a href="project-info.html" title="Project Information"><span class="icon-chevron-right"></span>Project Information</a></li>
    <li><a href="project-reports.html" title="Project Reports"><span class="icon-chevron-down"></span>Project Reports</a>
     <ul class="nav nav-list">
      <li><a href="checkstyle.html" title="Checkstyle"><span class="none"></span>Checkstyle</a></li>
      <li><a href="apidocs/index.html" title="JavaDocs"><span class="none"></span>JavaDocs</a></li>
      <li><a href="testapidocs/index.html" title="Test JavaDocs"><span class="none"></span>Test JavaDocs</a></li>
      <li><a href="xref-test/index.html" title="Test Source Xref"><span class="none"></span>Test Source Xref</a></li>
      <li><a href="xref/index.html" title="Source Xref"><span class="none"></span>Source Xref</a></li>
      <li><a href="surefire-report.html" title="Surefire Report"><span class="none"></span>Surefire Report</a></li>
      <li><a href="pmd.html" title="PMD"><span class="none"></span>PMD</a></li>
      <li><a href="cpd.html" title="CPD"><span class="none"></span>CPD</a></li>
      <li><a href="changes-report.html" title="Changes Report"><span class="none"></span>Changes Report</a></li>
      <li class="active"><a><span class="none"></span>JIRA Report</a></li>
      <li><a href="jdepend-report.html" title="JDepend"><span class="none"></span>JDepend</a></li>
      <li><a href="taglist.html" title="Tag List"><span class="none"></span>Tag List</a></li>
      <li><a href="rat-report.html" title="Rat Report"><span class="none"></span>Rat Report</a></li>
     </ul></li>
  </ul>
          </nav>
          <div class="well sidebar-nav">
<form id="search-form" action="https://www.google.com/search" method="get" >
  <input value="$sitesearchValue" name="sitesearch" type="hidden"/>
  <input class="search-query" name="q" id="query" type="text" placeholder="Search with Google..." />
</form>
            <div id="poweredBy">
              <div class="clear"></div>
              <div class="clear"></div>
              <div class="clear"></div>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
            </div>
          </div>
        </header>
        <main id="bodyColumn"  class="span10" >
<section>
<h2><a name="JIRA_Report"></a>JIRA Report</h2><a name="JIRA_Report"></a>
<table border="0" class="table table-striped">
<tr class="a">
<th>Key</th>
<th>Summary</th>
<th>Status</th>
<th>Resolution</th>
<th>By</th></tr>
<tr class="b">
<td><a class="externalLink" href="https://issues.apache.org/jira/browse/TENTACLES-12">TENTACLES-12</a></td>
<td>Upgrade to log4j2 and update dependency and build stack as needed</td>
<td>Closed</td>
<td>Fixed</td>
<td>Philipp Ottlinger</td></tr>
<tr class="a">
<td><a class="externalLink" href="https://issues.apache.org/jira/browse/TENTACLES-11">TENTACLES-11</a></td>
<td>Upgrade RAT version to 0.12</td>
<td>Closed</td>
<td>Fixed</td>
<td>Brian E Fox</td></tr></table></section>
        </main>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
Copyright © 2014 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.
      Oracle and Java are registered trademarks of Oracle and/or its affiliates.
      All other marks mentioned may be trademarks or registered trademarks of their respective owners.
        </div>
      </div>
    </footer>
<script>
	if(anchors) {
	  anchors.add();
	}
</script>
  </body>
</html>
