You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shiro.apache.org by bd...@apache.org on 2016/10/19 14:24:55 UTC

[65/67] shiro-site git commit: Replaced latest version with variable

http://git-wip-us.apache.org/repos/asf/shiro-site/blob/07b38e48/download.html.vtl
----------------------------------------------------------------------
diff --git a/download.html.vtl b/download.html.vtl
new file mode 100644
index 0000000..94a9733
--- /dev/null
+++ b/download.html.vtl
@@ -0,0 +1,1088 @@
+#parse("templates/includes.vtl")
+
+<h1><a name="Download-DownloadApacheShiro"></a>Download Apache Shiro</h1>
+
+<table align="right" width="275" style="margin-left: 20px; margin-bottom: 20px; border-style: solid; border-width: 2px; border-color: navy" cellpadding="10px">
+
+<tr>
+<td>
+<div id="border">
+  <h2>Related Content</h2>
+	
+  <h3><a href="get-started.html">Getting Started</a></h3>
+  <p>Resources, guides and tutorials for new Shiro users. </br><span style="font-size:11"><a href="get-started.html">Read More &gt;&gt;</a></span></p>	
+	
+	<h3><a href="10-minute-tutorial.html">10-Minute Shiro Tutorial</a></h3>
+  <p>Try Apache Shiro for yourself in under 10 minutes. </br><span style="font-size:11"><a href="10-minute-tutorial.html">Read More &gt;&gt;</a></span></p>
+	
+  <h3><a href="webapp-tutorial.html">Web App Tutorial</a></h3>
+  <p>Step-by-step tutorial for securing a web application with Shiro. </br><span style="font-size:11"><a href="webapp-tutorial.html">Read More &gt;&gt;</a></span></p>
+	
+  <h3><a href="java-authentication-guide.html">Java Authentication Guide</a></h3>
+  <p>Learn how Authentication in Java is performed in Shiro. </br><span style="font-size:11"><a href="java-authentication-guide.html">Read More &gt;&gt;</a></span></p>	
+	
+  <h3><a href="java-authorization-guide.html">Java Authorization Guide</a></h3>
+  <p>Learn how Shiro handles access control in Java. </br><span style="font-size:11"><a href="java-authorization-guide.html">Read More &gt;&gt;</a></span></p>	
+
+</div>
+</td>
+</tr>
+</table>
+
+<p>Apache Shiro ${latestRelease} is the current stable release (Java 1.6+ JVM).</p>
+
+<p>To download Shiro please follow the instructions below.</p>
+
+<h3>Code Signatures</h3>
+
+<p>You may <a class="external-link" href="http://www.apache.org/dev/release-signing.html#verifying-signature">verify the
+    authenticity</a> of all artifacts below by using the PGP <a class="external-link"
+                                                                href="http://www.apache.org/dist/shiro/KEYS">KEYS</a>
+    file. </p>
+
+<h3>Releases</h3>
+
+<div>
+    <ul>
+        <li>
+            <a href="#latest">Latest Stable Release (${latestRelease})</a>
+            <ul>
+                <li><a href="#latestBinary">${latestRelease} Binary Distribution</a></li>
+                <li><a href="#latestSource">${latestRelease} Source Code Distribution</a></li>
+                <li><a href="#latestGit">${latestRelease} Git Source repository</a></li>
+            </ul>
+        </li>
+        <li><a href="#previous">Previous Releases</a>
+            <ul>
+                <li><a href="#1.2.xBinary">1.2.6</a></li>
+                <ul>
+                    <li><a href="#1.2.xBinary">1.2.6 Binary Distribution</a></li>
+                    <li><a href="#1.2.xSource">1.2.6 Source Code Distribution</a></li>
+                    <li><a href="#1.2.xGit">1.2.6 Git Source repository</a></li>
+                </ul>
+            </ul>
+            <ul>
+                <li><a href="#1.1.0Binary">1.1.0</a></li>
+                <ul>
+                    <li><a href="#1.1.0Binary">1.1.0 Binary Distribution</a></li>
+                    <li><a href="#1.1.0Source">1.1.0 Source Code Distribution</a></li>
+                    <li><a href="#1.1.0Git">1.1.0 Git Source repository</a></li>
+                </ul>
+            </ul>
+        </li>
+    </ul>
+</div>
+
+
+<h2><a name="latest"></a>Latest Stable Release (${latestRelease})</h2>
+
+<h3><a name="latestBinary"></a>${latestRelease} Binary Distribution</h3>
+
+<p>Associated documentation can be found <a href="documentation.html" title="Documentation">here</a></p>
+
+<p>To download the files directly as one .jar file just click the link in the "Artifact" column. If you would like
+    acquire Shiro through Maven, then please use the markup listed under "Maven Usage"</p>
+
+<p>
+</p>
+<div class="table-wrap">
+
+    <table class="confluenceTable" id="table-latest">
+        <tbody>
+            <tr>
+                <th colspan="1" rowspan="1" class="confluenceTh"> Artifact</th>
+                <th colspan="1" rowspan="1" class="confluenceTh"> Maven Usage</th>
+                <th colspan="1" rowspan="1" class="confluenceTh"> Notes</th>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-all/${latestRelease}/shiro-all-${latestRelease}.jar">shiro-all</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd"><b>Not Recommended</b></td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Includes all binary functionality for Shiro (without
+                    dependencies), useful in certain build environments (e.g. Ant). However, this is <b>NOT</b>
+                    recommended in Maven builds as it does not retain correct dependency metadata, which can lead to
+                    Maven working incorrectly. For Maven builds, it is <b>highly</b> recommended to specify individual
+                    modules listed below as you require them.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-core/${latestRelease}/shiro-core-${latestRelease}.jar">shiro-core</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-core&lt;/artifactId&gt;
+  &lt;version&gt;${latestRelease}&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Required in all environments. <a class="external-link"
+                                                                                                   href="http://slf4j.org/">Slf4j</a>'s
+                    <tt>slf4j-api</tt> jar and one of its binding jars is required. <tt>commons-beanutils</tt> is
+                    required only if using INI config.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-web/${latestRelease}/shiro-web-${latestRelease}.jar">shiro-web</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-web&lt;/artifactId&gt;
+  &lt;version&gt;${latestRelease}&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Enables support for web-based applications.</td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-aspectj/${latestRelease}/shiro-aspectj-${latestRelease}.jar">shiro-aspectj</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-aspectj&lt;/artifactId&gt;
+  &lt;version&gt;${latestRelease}&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Enables <a class="external-link"
+                                                                             href="http://www.eclipse.org/aspectj/">AspectJ</a> support for
+                    Shiro AOP and Annotations.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-cas/${latestRelease}/shiro-cas-${latestRelease}.jar">shiro-cas</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-cas&lt;/artifactId&gt;
+  &lt;version&gt;${latestRelease}&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Enables Jasig <a class="external-link"
+                                                                                   href="http://www.jasig.org/cas">CAS</a> support.
+                    <div class="warning">
+                        <span>NOTE:</span>
+                        Shiro-CAS support is deprecated, support has been moved to the Apache Shiro based <a href="https://github.com/bujiio/buji-pac4j">buji-pac4j</a> project.
+                    </div>
+                </td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-ehcache/${latestRelease}/shiro-ehcache-${latestRelease}.jar">shiro-ehcache</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-ehcache&lt;/artifactId&gt;
+  &lt;version&gt;${latestRelease}&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Enables <a class="external-link"
+                                                                             href="http://ehcache.org">Ehcache</a>-based
+                    famework caching.
+                </td>
+            </tr>
+            
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-hazelcast/${latestRelease}/shiro-hazelcast-${latestRelease}.jar">shiro-hazelcast</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-hazelcast&lt;/artifactId&gt;
+  &lt;version&gt;${latestRelease}&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Enables <a class="external-link"
+                                                                             href="http://hazelcast.org">Hazelcast</a>-based
+                    famework caching.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-features/${latestRelease}/shiro-features-${latestRelease}-features.xml">shiro-features</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-features&lt;/artifactId&gt;
+  &lt;version&gt;${latestRelease}&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> OSGi / <a class="external-link"
+                                                                            href="http://karaf.apache.org/">Apache
+                    Karaf</a> integration.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-guice/${latestRelease}/shiro-guice-${latestRelease}.jar">shiro-guice</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-guice&lt;/artifactId&gt;
+  &lt;version&gt;${latestRelease}&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Enables <a class="external-link"
+                                                                             href="http://code.google.com/p/google-guice/">Google Guice</a>
+                    integration.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-quartz/${latestRelease}/shiro-quartz-${latestRelease}.jar">shiro-quartz</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-quartz&lt;/artifactId&gt;
+  &lt;version&gt;${latestRelease}&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Enables <a class="external-link"
+                                                                             href="http://www.quartz-scheduler.org/">Quartz</a>-based scheduling
+                    for Shiro native session validation.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-spring/${latestRelease}/shiro-spring-${latestRelease}.jar">shiro-spring</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-spring&lt;/artifactId&gt;
+  &lt;version&gt;${latestRelease}&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Enables <a class="external-link"
+                                                                             href="http://www.springsource.org/about">Spring Framework</a>
+                    integration.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/tools/shiro-tools-hasher/${latestRelease}/shiro-tools-hasher-${latestRelease}-cli.jar">shiro-tools-hasher-cli</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd"><b>Not Relevant</b></td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> A command-line program to perform hashing (MD5, SHA,
+                    etc) for files, streams and passwords. Note that this is a command line program and not intended to
+                    be <br clear="none">
+                    used as a Maven/program dependency. It is intended to be downloaded and executed:
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">
+java -jar shiro-tools-hasher-${latestRelease}-cli.jar
+</pre>
+                        </div>
+                    </div>
+                </td>
+            </tr>
+        </tbody>
+    </table>
+</div>
+
+
+<h3><a name="latestSource"></a>${latestRelease} Source Code Distribution</h3>
+
+<p>The source bundle requires JDK 1.6 and Maven 3.0.3+ to build:</p>
+
+<p><a class="external-link" href="http://www.apache.org/dyn/closer.cgi/shiro/${latestRelease}/shiro-root-${latestRelease}-source-release.zip">zip</a>
+    (<a class="external-link"
+        href="http://www.apache.org/dyn/closer.cgi/shiro/${latestRelease}/shiro-root-${latestRelease}-source-release.zip.asc">pgp</a>, <a
+            class="external-link"
+            href="http://www.apache.org/dyn/closer.cgi/shiro/${latestRelease}/shiro-root-${latestRelease}-source-release.zip.md5">md5</a>, <a
+            class="external-link"
+            href="http://www.apache.org/dyn/closer.cgi/shiro/${latestRelease}/shiro-root-${latestRelease}-source-release.zip.sha1">sha1</a>)
+</p>
+
+<h3><a name="latestGit"></a>${latestRelease} Git Source repository</h3>
+
+<p>The source can be cloned anonymously from Git with this command:</p>
+<div class="code panel" style="border-width: 1px;">
+    <div class="codeContent panelContent">
+<pre class="code-java">
+git clone https:<span class="code-comment">//github.com/apache/shiro.git</span>
+git checkout shiro-root-${latestRelease} -b shiro-root-${latestRelease}
+</pre>
+    </div>
+</div>
+
+<h2><a name="previous"></a>Previous Releases</h2>
+
+
+<h3><a name="1.2.xBinary"></a>1.2.6 Binary Distribution</h3>
+
+<p>Associated documentation can be found <a href="documentation.html" title="Documentation">here</a></p>
+
+<p>To download the files directly as one .jar file just click the link in the "Artifact" column. If you would like
+    acquire Shiro through Maven, then please use the markup listed under "Maven Usage"</p>
+
+<p>
+</p>
+<div class="table-wrap">
+
+    <table class="confluenceTable" id="table-1.2.x">
+        <tbody>
+            <tr>
+                <th colspan="1" rowspan="1" class="confluenceTh"> Artifact</th>
+                <th colspan="1" rowspan="1" class="confluenceTh"> Maven Usage</th>
+                <th colspan="1" rowspan="1" class="confluenceTh"> Notes</th>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-all/1.2.6/shiro-all-1.2.6.jar">shiro-all</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd"><b>Not Recommended</b></td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Includes all binary functionality for Shiro (without
+                    dependencies), useful in certain build environments (e.g. Ant). However, this is <b>NOT</b>
+                    recommended in Maven builds as it does not retain correct dependency metadata, which can lead to
+                    Maven working incorrectly. For Maven builds, it is <b>highly</b> recommended to specify individual
+                    modules listed below as you require them.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-core/1.2.6/shiro-core-1.2.6.jar">shiro-core</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-core&lt;/artifactId&gt;
+  &lt;version&gt;1.2.6&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Required in all environments. <a class="external-link"
+                                                                                                   href="http://slf4j.org/">Slf4j</a>'s
+                    <tt>slf4j-api</tt> jar and one of its binding jars is required. <tt>commons-beanutils</tt> is
+                    required only if using INI config.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-web/1.2.6/shiro-web-1.2.6.jar">shiro-web</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-web&lt;/artifactId&gt;
+  &lt;version&gt;1.2.6&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Enables support for web-based applications.</td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-aspectj/1.2.6/shiro-aspectj-1.2.6.jar">shiro-aspectj</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-aspectj&lt;/artifactId&gt;
+  &lt;version&gt;1.2.6&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Enables <a class="external-link"
+                                                                             href="http://www.eclipse.org/aspectj/">AspectJ</a> support for
+                    Shiro AOP and Annotations.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-cas/1.2.6/shiro-cas-1.2.6.jar">shiro-cas</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-cas&lt;/artifactId&gt;
+  &lt;version&gt;1.2.6&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Enables Jasig <a class="external-link"
+                                                                                   href="http://www.jasig.org/cas">CAS</a> support.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-ehcache/1.2.6/shiro-ehcache-1.2.6.jar">shiro-ehcache</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-ehcache&lt;/artifactId&gt;
+  &lt;version&gt;1.2.6&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Enables <a class="external-link"
+                                                                             href="http://ehcache.org">Ehcache</a>-based
+                    famework caching.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-features/1.2.6/shiro-features-1.2.6-features.xml">shiro-features</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-features&lt;/artifactId&gt;
+  &lt;version&gt;1.2.6&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> OSGi / <a class="external-link"
+                                                                            href="http://karaf.apache.org/">Apache
+                    Karaf</a> integration.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-guice/1.2.6/shiro-guice-1.2.6.jar">shiro-guice</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-guice&lt;/artifactId&gt;
+  &lt;version&gt;1.2.6&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Enables <a class="external-link"
+                                                                             href="http://code.google.com/p/google-guice/">Google Guice</a>
+                    integration.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-quartz/1.2.6/shiro-quartz-1.2.6.jar">shiro-quartz</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-quartz&lt;/artifactId&gt;
+  &lt;version&gt;1.2.6&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Enables <a class="external-link"
+                                                                             href="http://www.quartz-scheduler.org/">Quartz</a>-based scheduling
+                    for Shiro native session validation.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-spring/1.2.6/shiro-spring-1.2.6.jar">shiro-spring</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-spring&lt;/artifactId&gt;
+  &lt;version&gt;1.2.6&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Enables <a class="external-link"
+                                                                             href="http://www.springsource.org/about">Spring Framework</a>
+                    integration.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/tools/shiro-tools-hasher/1.2.6/shiro-tools-hasher-1.2.6-cli.jar">shiro-tools-hasher-cli</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd"><b>Not Relevant</b></td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> A command-line program to perform hashing (MD5, SHA,
+                    etc) for files, streams and passwords. Note that this is a command line program and not intended to
+                    be <br clear="none">
+                    used as a Maven/program dependency. It is intended to be downloaded and executed:
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">
+java -jar shiro-tools-hasher-1.2.6-cli.jar
+</pre>
+                        </div>
+                    </div>
+                </td>
+            </tr>
+        </tbody>
+    </table>
+</div>
+
+
+<h3><a name="1.2.xSource"></a>1.2.6 Source Code Distribution</h3>
+
+<p>The source bundle requires JDK 1.6 and Maven 3.0.3+ to build:</p>
+
+<p><a class="external-link" href="http://www.apache.org/dyn/closer.cgi/shiro/1.2.6/shiro-root-1.2.6-source-release.zip">zip</a>
+    (<a class="external-link"
+        href="http://www.apache.org/dyn/closer.cgi/shiro/1.2.6/shiro-root-1.2.6-source-release.zip.asc">pgp</a>, <a
+            class="external-link"
+            href="http://www.apache.org/dyn/closer.cgi/shiro/1.2.6/shiro-root-1.2.6-source-release.zip.md5">md5</a>, <a
+            class="external-link"
+            href="http://www.apache.org/dyn/closer.cgi/shiro/1.2.6/shiro-root-1.2.6-source-release.zip.sha1">sha1</a>)
+</p>
+
+<h3><a name="1.2.xGit"></a>1.2.6 Git Source repository</h3>
+
+<p>The source can be cloned anonymously from Git with this command:</p>
+<div class="code panel" style="border-width: 1px;">
+    <div class="codeContent panelContent">
+<pre class="code-java">
+git clone https:<span class="code-comment">//github.com/apache/shiro.git</span>
+git checkout shiro-root-1.2.6 -b shiro-root-1.2.6
+</pre>
+    </div>
+</div>
+
+
+<h3><a name="1.1.0"></a>1.1.0</h3>
+
+<h4><a name="1.1.0Binary"></a>1.1.0 Binary Distribution</h4>
+
+<p>Associated documentation can be found <a href="documentation.html" title="Documentation">here</a></p>
+
+<p>To download the files directly as one .jar file just click the link in the "Artifact" column. If you would like
+    acquire Shiro through Maven, then please use the markup listed under "Maven Usage"</p>
+
+<p>
+</p>
+<div class="table-wrap">
+
+    <table class="confluenceTable" id="table-1.1.0">
+        <tbody>
+            <tr>
+                <th colspan="1" rowspan="1" class="confluenceTh"> Artifact</th>
+                <th colspan="1" rowspan="1" class="confluenceTh"> Maven Usage</th>
+                <th colspan="1" rowspan="1" class="confluenceTh"> Notes</th>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-all/1.1.0/shiro-all-1.1.0.jar">shiro-all</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd"><b>Not Recommended</b></td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Includes all binary functionality for Shiro (without
+                    dependencies), useful in certain build environments (e.g. Ant). However, this is <b>NOT</b>
+                    recommended in Maven builds as it does not retain correct dependency metadata, which can lead to
+                    Maven working incorrectly. For Maven builds, it is <b>highly</b> recommended to specify individual
+                    modules listed below as you require them.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-core/1.1.0/shiro-core-1.1.0.jar">shiro-core</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-core&lt;/artifactId&gt;
+  &lt;version&gt;1.1.0&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Required in all environments. <a class="external-link"
+                                                                                                   href="http://slf4j.org/">Slf4j</a>'s
+                    <tt>slf4j-api</tt> jar and one of its binding jars is required. <tt>commons-beanutils</tt> is
+                    required only if using INI config.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-web/1.1.0/shiro-web-1.1.0.jar">shiro-web</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-web&lt;/artifactId&gt;
+  &lt;version&gt;1.1.0&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Enables support for web-based applications.</td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-aspectj/1.1.0/shiro-aspectj-1.1.0.jar">shiro-aspectj</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-aspectj&lt;/artifactId&gt;
+  &lt;version&gt;1.1.0&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Enables <a class="external-link"
+                                                                             href="http://www.eclipse.org/aspectj/">AspectJ</a> support for
+                    Shiro AOP and Annotations.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-ehcache/1.1.0/shiro-ehcache-1.1.0.jar">shiro-ehcache</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-ehcache&lt;/artifactId&gt;
+  &lt;version&gt;1.1.0&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Enables <a class="external-link"
+                                                                             href="http://ehcache.org">Ehcache</a>-based
+                    famework caching.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-quartz/1.1.0/shiro-quartz-1.1.0.jar">shiro-quartz</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-quartz&lt;/artifactId&gt;
+  &lt;version&gt;1.1.0&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Enables <a class="external-link"
+                                                                             href="http://www.quartz-scheduler.org/">Quartz</a>-based scheduling
+                    for Shiro native session validation.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link"
+                                                                    href="http://repo1.maven.org/maven2/org/apache/shiro/shiro-spring/1.1.0/shiro-spring-1.1.0.jar">shiro-spring</a></td>
+                <td colspan="1" rowspan="1" class="confluenceTd">
+                    <div class="code panel" style="border-width: 1px;">
+                        <div class="codeContent panelContent">
+<pre class="code-java">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.shiro&lt;/groupId&gt;
+  &lt;artifactId&gt;shiro-spring&lt;/artifactId&gt;
+  &lt;version&gt;1.1.0&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                        </div>
+                    </div>
+                </td>
+                <td colspan="1" rowspan="1" class="confluenceTd"> Enables <a class="external-link"
+                                                                             href="http://www.springsource.org/about">Spring Framework</a>
+                    integration.
+                </td>
+            </tr>
+        </tbody>
+    </table>
+</div>
+
+
+<h4><a name="1.1.0Source"></a>1.1.0 Source Code Distribution</h4>
+
+<p>The 1.1.0 source bundle requires JDK 1.5+ and Maven 2.2+ to build:</p>
+
+<p><a class="external-link"
+      href="http://archive.apache.org/dist/shiro/1.1.0/shiro-root-1.1.0-source-release.zip">zip</a> (<a
+        class="external-link" href="http://archive.apache.org/dist/shiro/1.1.0/shiro-root-1.1.0-source-release.zip.asc">pgp</a>,
+    <a class="external-link" href="http://archive.apache.org/dist/shiro/1.1.0/shiro-root-1.1.0-source-release.zip.md5">md5</a>,
+    <a class="external-link" href="http://archive.apache.org/dist/shiro/1.1.0/shiro-root-1.1.0-source-release.zip.sha1">sha1</a>)
+</p>
+
+<h4><a name="1.1.0Git"></a>1.1.0 Git Source repository</h4>
+
+<p>The source can be cloned anonymously from Git with this command:</p>
+<div class="code panel" style="border-width: 1px;">
+    <div class="codeContent panelContent">
+<pre class="code-java">
+git clone https:<span class="code-comment">//github.com/apache/shiro.git</span>
+git checkout shiro-root-1.1.0 -b shiro-root-1.1.0
+</pre>
+    </div>
+</div>
+
+
+<script type="text/javascript"> <!--
+//Copyright(c)2005,2010 Bob Swift and other contributors. All rights reserved. 
+function getElementInnerText(element) {
+    var str = "";
+    for (var i = 0; i < element.childNodes.length; i++) {
+        switch (element.childNodes.item(i).nodeType) {
+            case 1:
+                str += getElementInnerText(element.childNodes.item(i));
+                break;
+            case 3:
+                str += element.childNodes.item(i).nodeValue;
+                break;
+        }
+    }
+    return str;
+}
+function trimSafe(v) {
+    return((v == undefined) || (v == null)) ? "" : v.Trim();
+}
+String.prototype.Trim = new Function("return this.replace(/^\\s+|\\s+$/g,'')");
+function compareNumber(v1, v2) {
+    if (isNaN(v2)) {
+        if (isNaN(v1))return 0;
+        return-1;
+    }
+    if (v1 < v2)return-1;
+    if (v1 == v2)return 0;
+    return 1;
+}
+function compareSeparatedNumber(v1, v2) {
+    for (i = 0; (i < v1.length) && (i < v2.length); i++) {
+        var result = compareNumber(parseInt(v1[i]), parseInt(v2[i]));
+        if (result != 0)return result;
+    }
+    if (v1.length < v2.length)return-1;
+    if (v2.length < v1.length)return 1;
+    return 0;
+}
+function sortByCell(sortCell, firstDataRowIndex, footingCount) {
+    var compareFunction;
+    var valueParser;
+    compareFunction = compareNumber;
+    if (sortCell.columnType == "I") {
+        valueParser = function (value) {
+            return parseInt(getElementInnerText(value));
+        };
+    } else if (sortCell.columnType == "F") {
+        valueParser = function (value) {
+            return parseFloat(getElementInnerText(value));
+        };
+    } else if (sortCell.columnType == "C") {
+        valueParser = function (value) {
+            return parseFloat(getElementInnerText(value).replace(/[^\d\.\,\-]*([\d\.\,\-*]*).*/, '$1'));
+        };
+    } else if (sortCell.columnType.charAt(0) == 'D') {
+        if (Date.parseString) {
+            valueParser = function (value) {
+                var date = Date.parseString(trimSafe(getElementInnerText(value)), sortCell.columnType.substring(1));
+                return((date == null) ? NaN : date.getTime());
+            };
+        } else {
+            valueParser = function (value) {
+                return Date.parse(getElementInnerText(value));
+            };
+        }
+    } else if ((sortCell.columnType == "/") || (sortCell.columnType == ".") || (sortCell.columnType == "-") || (sortCell.columnType == ":")) {
+        compareFunction = compareSeparatedNumber;
+        valueParser = function (value) {
+            return getElementInnerText(value).split(sortCell.columnType);
+        };
+    } else if (sortCell.columnType == "A") {
+        valueParser = function (value) {
+            return 0;
+        };
+    } else {
+        compareFunction = function (v1, v2) {
+            if (v1 < v2)return-1;
+            if (v1 == v2)return 0;
+            return 1;
+        };
+        valueParser = function (value) {
+            return trimSafe(getElementInnerText(value)).toUpperCase();
+        };
+    }
+    var headRowCount = (sortCell.sortTable.tHead == null) ? 0 : sortCell.sortTable.tHead.rows.length;
+    firstDataRowIndex = firstDataRowIndex - headRowCount;
+    var table = sortCell.sortTable.tBodies[0];
+    var rowCount = table.rows.length - firstDataRowIndex - footingCount;
+    var map = Array(rowCount);
+    var values = Array(rowCount);
+    var compareTest = (sortCell.sortDescending ? -1 : 1);
+    sortCell.sortDescending = !sortCell.sortDescending;
+    var firstCell = (((sortCell.sortTable.tHead == null) || (sortCell.sortTable.tHead.rows.length == 0)) ? table.rows[0].cells[sortCell.columnIndex] : sortCell.sortTable.tHead.rows[0].cells[sortCell.columnIndex]);
+    if ((firstCell != null) && (firstCell.sortTable != null) && (firstCell.sortTable != undefined) && (firstCell.sortTable.sortImage != null) && (firstCell.sortTable.sortImage != undefined)) {
+        firstCell.sortTable.sortImage.setAttribute("src", firstCell.sortDescending ? firstCell.sortTable.sortAttributeDescending : firstCell.sortTable.sortAttributeAscending);
+        firstCell.appendChild(firstCell.sortTable.sortImage);
+    }
+    var i;
+    for (i = 0; i < rowCount; i++) {
+        map[i] = sortCell.sortFirstTime ? i : (rowCount - 1 - i);
+        var row = table.rows[i + firstDataRowIndex];
+        var cellValue = row.cells[sortCell.columnIndex];
+        values[i] = valueParser(cellValue);
+    }
+    sortCell.sortFirstTime = false;
+    var didSwap;
+    do {
+        didSwap = false;
+        for (i = 0; i < rowCount - 1; i++) {
+            if (compareFunction(values[map[i]], values[map[i + 1]]) == compareTest) {
+                saveIndex = map[i];
+                map[i] = map[i + 1];
+                map[i + 1] = saveIndex;
+                didSwap = true;
+            }
+        }
+    } while (didSwap);
+    var tableRows = new Array();
+    for (i = 0; i < rowCount + footingCount; i++) {
+        tableRows.push(table.rows[i + firstDataRowIndex]);
+    }
+    for (i = 0; i < rowCount + footingCount; i++) {
+        table.removeChild(tableRows[i]);
+    }
+    for (i = 0; i < rowCount; i++) {
+        var row = tableRows[map[i]];
+        table.appendChild(row);
+        if (row.autoNumber) {
+            row.cells[0].innerHTML = i + 1;
+        }
+    }
+    for (i = 0; i < footingCount; i++) {
+        table.appendChild(tableRows[i + rowCount]);
+    }
+}
+function enableSortOnCell(cell, columnIndex, table, columnTypes, customize) {
+    cell.style.cursor = "pointer";
+    cell.sortTable = table;
+    cell.sortFirstTime = true;
+    cell.sortDescending = false;
+    cell.columnIndex = (customize.autoNumber ? (columnIndex + 1) : columnIndex);
+    if (columnIndex == -1) {
+        cell.columnType = "I";
+    } else {
+        cell.columnType = (columnTypes && columnTypes[columnIndex]) ? columnTypes[columnIndex] : "S";
+    }
+    if (cell.columnType != "X") {
+        cell.onmouseover = function () {
+            this.saveTitle = this.getAttribute('title');
+            this.setAttribute('title', customize.sortTip + " " + ((this.saveTitle != null) && (this.saveTitle != undefined) ? this.saveTitle : ''));
+        };
+        cell.onmouseout = function () {
+            this.setAttribute('title', this.saveTitle);
+        };
+        cell.onclick = function () {
+            sortByCell(this, customize.firstDataRowIndex, customize.footingCount);
+        };
+    } else {
+        cell.columnType = cell.columnType.substring(1);
+    }
+}
+function sumColumn(table, index, firstDataRowIndex, columnType) {
+    var total = 0;
+    for (var i = firstDataRowIndex; i < table.rows.length; i++) {
+        var cell = table.rows[i].cells[index];
+        var value;
+        if (cell) {
+            if (columnType == 'C') {
+                value = parseFloat(getElementInnerText(cell).replace(/[^\d\.\,\-]*([\d\.\,\-*]*).*/, '$1'))
+            } else {
+                value = parseFloat(getElementInnerText(cell));
+            }
+            if (!isNaN(value)) {
+                total = total + value;
+            }
+        }
+    }
+    return total;
+}
+function appendTotalRow(table, columnTypes, firstDataRowIndex) {
+    var row = document.createElement('tr');
+    var table = table.tBodies[0];
+    var columnCount = (0 < table.rows.length) ? table.rows[table.rows.length - 1].cells.length : 0;
+    for (var columnIndex = 0; columnIndex < columnCount; columnIndex++) {
+        var column = document.createElement('th');
+        column.className = 'confluenceTh';
+        column.innerHTML = (columnIndex < columnTypes.length && ((columnTypes[columnIndex] == 'I') || (columnTypes[columnIndex] == 'F') || (columnTypes[columnIndex] == 'C'))) ? sumColumn(table, columnIndex, firstDataRowIndex, columnTypes[columnIndex]) : '';
+        row.appendChild(column);
+    }
+    table.appendChild(row);
+}
+function handleRow(table, row, rowIndex, customize) {
+    var columnCount = row.cells.length;
+    for (var i = 0; i < columnCount; i++) {
+        if (customize.enableSorting && (rowIndex <= customize.lastClickableRow)) {
+            enableSortOnCell(row.cells[i], i, table, customize.columnTypes, customize);
+        }
+        if ((rowIndex == 0) && (customize.sortColumn != '') && (customize.sortCell == null) && (((i + 1).toString() == customize.sortColumn) || (trimSafe(getElementInnerText(row.cells[i])) == customize.sortColumn) || (trimSafe(row.cells[i].getAttribute('title')) == customize.sortColumn))) {
+            customize.sortCell = row.cells[i];
+        }
+        if (customize.firstDataRowIndex <= rowIndex) {
+            if ((customize.columnTypes[i] == "I") || (customize.columnTypes[i] == "F") || (customize.columnTypes[i] == "C")) {
+                row.cells[i].style.textAlign = "right";
+            }
+        }
+        if (customize.columnTypes[i] == "H") {
+            row.cells[i].style.display = "none";
+        }
+        if (customize.enableHeadingAttributes || (customize.firstDataRowIndex <= rowIndex)) {
+            if (i < customize.attrList.length) {
+                for (var j = 0; j < customize.attrList[i].length; j++) {
+                    var attr = customize.attrList[i][j].Trim().split("=");
+                    if (1 < attr.length) {
+                        var aName = attr[0].Trim();
+                        var aValue = attr[1].Trim();
+                        if ((aName.toLowerCase() == "style") && (2 < aValue.length)) {
+                            if ((aValue.charAt(0) == '"')) {
+                                aValue = aValue.substring(1, aValue.length - 1);
+                            }
+                            row.cells[i].style.cssText = aValue;
+                        } else {
+                            row.cells[i].setAttribute(aName, aValue);
+                        }
+                    }
+                }
+            }
+        }
+    }
+    if (customize.autoNumber) {
+        var column = document.createElement(!customize.autoNumberSort || (rowIndex < customize.firstDataRowIndex) ? 'th' : 'td');
+        column.className = (!customize.autoNumberSort || (rowIndex < customize.firstDataRowIndex) ? 'confluenceTh' : 'confluenceTd');
+        column.innerHTML = ((rowIndex < customize.firstDataRowIndex) || (customize.totalRowCount - customize.firstDataRowIndex - customize.footingCount < rowIndex) ? '' : customize.dataRowCount++);
+        column.setAttribute('align', 'right');
+        row.autoNumber = !customize.autoNumberSort;
+        row.insertBefore(column, row.cells[0]);
+        if (customize.enableSorting && customize.autoNumberSort && (rowIndex <= customize.lastClickableRow)) {
+            enableSortOnCell(column, -1, table, null, customize);
+        }
+    }
+    if ((customize.highlightColor != "") && (customize.firstDataRowIndex <= rowIndex)) {
+        row.onmouseover = function () {
+            this.tableHighLightRowColor = this.bgColor;
+            this.bgColor = customize.highlightColor;
+        };
+        row.onmouseout = function () {
+            this.bgColor = this.tableHighLightRowColor;
+            this.tableHighLightRowColor = null;
+        };
+    }
+}
+function customizeMacroTable(tableId, columnTypes, firstDataRowIndex, highlightColor, enableSorting, sortTip, sortColumn, sortDescending, autoNumber, autoNumberSort, enableHeadingAttributes, footingCount, autoTotal, iconLocation) {
+    var customize = new Object;
+    customize.columnTypes = columnTypes;
+    customize.firstDataRowIndex = firstDataRowIndex;
+    customize.highlightColor = highlightColor;
+    customize.enableSorting = enableSorting;
+    customize.sortTip = sortTip;
+    customize.sortColumn = sortColumn;
+    customize.sortDescending = sortDescending;
+    customize.autoNumber = autoNumber;
+    customize.autoNumberSort = autoNumberSort;
+    customize.enableHeadingAttributes = enableHeadingAttributes;
+    customize.footingCount = footingCount;
+    customize.autoTotal = autoTotal;
+    customize.iconLocation = iconLocation;
+    var table = (typeof(tableId) == "string") ? document.getElementById(tableId) : null;
+    if (table) {
+        if (customize.autoTotal) {
+            appendTotalRow(table, customize.columnTypes, customize.firstDataRowIndex);
+            customize.footingCount++;
+        }
+        if (customize.iconLocation != "") {
+            table.sortAttributeAscending = contextPath + customize.iconLocation + "down.gif";
+            table.sortAttributeDescending = contextPath + customize.iconLocation + "up.gif";
+            table.sortImage = document.createElement("IMG");
+        }
+        customize.lastClickableRow = customize.firstDataRowIndex - 1;
+        if (customize.lastClickableRow < 0) {
+            customize.lastClickableRow = 0;
+        }
+        customize.sortCell = null;
+        customize.dataRowCount = 1;
+        var colAttrs = columnAttributes.split(",");
+        customize.attrList = Array(colAttrs.length);
+        for (var i = 0; i < colAttrs.length; i++) {
+            customize.attrList[i] = colAttrs[i].Trim().split(";;");
+        }
+        var rowIndex = 0;
+        var headRowCount = (table.tHead == null) ? 0 : table.tHead.rows.length;
+        var footRowCount = (table.tFoot == null) ? 0 : table.tFoot.rows.length;
+        var bodyRowCount = table.tBodies[0].rows.length;
+        customize.totalRowCount = headRowCount + footRowCount + bodyRowCount;
+        for (var i = 0; i < headRowCount; i++) {
+            var row = table.tHead.rows[i];
+            handleRow(table, row, rowIndex, customize);
+            rowIndex++;
+        }
+        for (var i = 0; i < bodyRowCount; i++) {
+            var row = table.tBodies[0].rows[i];
+            handleRow(table, row, rowIndex, customize);
+            rowIndex++;
+        }
+        for (var i = 0; i < footRowCount; i++) {
+            var row = table.tFoot.rows[i];
+            handleRow(table, row, rowIndex, customize);
+            rowIndex++;
+        }
+        if (customize.sortCell != null) {
+            customize.sortCell.sortDescending = customize.sortDescending;
+            sortByCell(customize.sortCell, customize.firstDataRowIndex, customize.footingCount);
+        }
+    }
+    return table;
+}
+
+var columnTypes = ['S'];
+var columnAttributes = 'style=&quot;white-space:nowrap;&quot;,,';
+customizeMacroTable('table-latest', columnTypes, 1, 'lightgoldenrodyellow', true, 'Click to sort', '', false, false, false, true, 0, false, '');
+customizeMacroTable('table-1.2.x', columnTypes, 1, 'lightgoldenrodyellow', true, 'Click to sort', '', false, false, false, true, 0, false, '');
+customizeMacroTable('table-1.1.0', columnTypes, 1, 'lightgoldenrodyellow', true, 'Click to sort', '', false, false, false, true, 0, false, '');
+//-->
+</script>

http://git-wip-us.apache.org/repos/asf/shiro-site/blob/07b38e48/templates/default.vtl
----------------------------------------------------------------------
diff --git a/templates/default.vtl b/templates/default.vtl
index 3651a92..fb5a781 100644
--- a/templates/default.vtl
+++ b/templates/default.vtl
@@ -16,7 +16,7 @@
 -->
 <html>
 
-#parse("templates/macros.vtl")
+#parse("templates/includes.vtl")
 
 <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

http://git-wip-us.apache.org/repos/asf/shiro-site/blob/07b38e48/templates/includes.vtl
----------------------------------------------------------------------
diff --git a/templates/includes.vtl b/templates/includes.vtl
new file mode 100644
index 0000000..359060a
--- /dev/null
+++ b/templates/includes.vtl
@@ -0,0 +1,8 @@
+#parse( "templates/macros/danger.vtl" )
+#parse( "templates/macros/info.vtl" )
+#parse( "templates/macros/tip.vtl" )
+#parse( "templates/macros/warning.vtl" )
+#parse( "templates/macros/lend-a-hand.vtl" )
+#parse( "templates/macros/redirect.vtl" )
+
+#parse( "templates/versions.vtl" )
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/shiro-site/blob/07b38e48/templates/macros.vtl
----------------------------------------------------------------------
diff --git a/templates/macros.vtl b/templates/macros.vtl
deleted file mode 100644
index 7d9b83e..0000000
--- a/templates/macros.vtl
+++ /dev/null
@@ -1,6 +0,0 @@
-#parse( "templates/macros/danger.vtl" )
-#parse( "templates/macros/info.vtl" )
-#parse( "templates/macros/tip.vtl" )
-#parse( "templates/macros/warning.vtl" )
-#parse( "templates/macros/lend-a-hand.vtl" )
-#parse( "templates/macros/redirect.vtl" )
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/shiro-site/blob/07b38e48/templates/versions.vtl
----------------------------------------------------------------------
diff --git a/templates/versions.vtl b/templates/versions.vtl
new file mode 100644
index 0000000..aa2f42b
--- /dev/null
+++ b/templates/versions.vtl
@@ -0,0 +1,2 @@
+#set( $latestRelease = "1.3.2" )
+#set( $versionInfo = {"1.3.2": { "releaseDate": "2016-09-12" } } )
\ No newline at end of file