blob: 5695c5be569f3e883f04f0d27c0a3e4f3f0135f1 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>Avatica Releases</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="Jekyll v3.7.3">
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
<link rel="stylesheet" href="/avatica/css/screen.css">
<link rel="icon" type="image/x-icon" href="/avatica/favicon.ico">
<!--[if lt IE 9]>
<script src="/js/html5shiv.min.js"></script>
<script src="/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="wrap">
<header role="banner">
<nav class="mobile-nav show-on-mobiles">
<ul>
<li class="">
<a href="/avatica/">Home</a>
</li>
<li class="">
<a href="/avatica/downloads/">Download</a>
</li>
<li class="">
<a href="/avatica/community/">Community</a>
</li>
<li class="">
<a href="/avatica/develop/">Develop</a>
</li>
<li class="current">
<a href="/avatica/news/">News</a>
</li>
<li class="">
<a href="/avatica/docs/">Docs</a>
</li>
</ul>
</nav>
<div class="grid">
<div class="unit one-third center-on-mobiles">
<h1>
<a href="/avatica/">
<span class="sr-only">Apache Calcite Avatica</span>
<img src="/avatica/img/logo.png" width="226" height="140" alt="Calcite Logo">
</a>
</h1>
</div>
<nav class="main-nav unit two-thirds hide-on-mobiles">
<ul>
<li class="">
<a href="/avatica/">Home</a>
</li>
<li class="">
<a href="/avatica/downloads/">Download</a>
</li>
<li class="">
<a href="/avatica/community/">Community</a>
</li>
<li class="">
<a href="/avatica/develop/">Develop</a>
</li>
<li class="current">
<a href="/avatica/news/">News</a>
</li>
<li class="">
<a href="/avatica/docs/">Docs</a>
</li>
</ul>
</nav>
</div>
</header>
<section class="news">
<div class="grid">
<div class="docs-nav-mobile unit whole show-on-mobiles">
<select onchange="if (this.value) window.location.href=this.value">
<option value="">Navigate the blog…</option>
<option value="/avatica/news/">Home</option>
<optgroup label="v1.x">
<option value="/news/2019/12/19/release-1.16.0/">Release 1.16.0</option>
<option value="/news/2019/05/16/release-avatica-go-4.0.0/">Release Avatica Go 4.0.0</option>
<option value="/news/2019/05/13/release-1.15.0/">Release 1.15.0</option>
<option value="/news/2019/04/29/release-1.14.0/">Release 1.14.0</option>
<option value="/news/2018/12/04/release-1.13.0/">Release 1.13.0</option>
<option value="/news/2018/09/18/release-avatica-go-3.2.0/">Release Avatica Go 3.2.0</option>
<option value="/news/2018/09/10/release-avatica-go-3.1.0/">Release Avatica Go 3.1.0</option>
<option value="/news/2018/06/24/release-1.12.0/">Release 1.12.0</option>
<option value="/news/2018/04/27/release-avatica-go-3.0.0/">Release Avatica Go 3.0.0</option>
<option value="/news/2018/03/09/release-1.11.0/">Release 1.11.0</option>
<option value="/news/2017/05/30/release-1.10.0/">Release 1.10.0</option>
<option value="/news/2017/03/31/new-avatica-repository/">New Avatica Repository</option>
<option value="/news/2016/11/01/release-1.9.0/">Release 1.9.0</option>
<option value="/news/2016/06/04/release-1.8.0/">Release 1.8.0</option>
<option value="/news/2016/03/18/release-1.7.1/">Release 1.7.1</option>
<option value="/news/2016/03/03/separate-project/">Splitting Avatica from Calcite</option>
</optgroup>
</select>
</div>
<div class="unit four-fifths">
<!--
-->
<article>
<h2>
<a href="/avatica/news/2019/12/19/release-1.16.0/">
Release 1.16.0
</a>
</h2>
<span class="post-category">
<span class="label">
release
</span>
</span>
<div class="post-meta">
<span class="post-date">
19 Dec 2019
</span>
<a href="http://github.com/F21" class="post-author">
<img src="http://github.com/F21.png"
class="avatar" alt="francischuang avatar"
width="24" height="24">
francischuang
</a>
</div>
<div class="post-content">
<!--
-->
<p>Apache Calcite Avatica 1.16.0 replaces the maven with gradle. This release
adds support for Kerberos authentication using SPNEGO over HTTPS. In addition,
there were also a few dependency updates and bug fixes. Github Actions was also
enabled in the repository for running tests. See the list of
<a href="/avatica/docs/history.html#v1-16-0">bug fixes and new features</a>
for more information.</p>
<p>See the <a href="/avatica/docs/history.html#v1-16-0">release notes</a>;
<a href="/avatica/downloads/avatica.html#source-releases">download</a> the release.</p>
</div>
</article>
<article>
<h2>
<a href="/avatica/news/2019/05/13/release-1.15.0/">
Release 1.15.0
</a>
</h2>
<span class="post-category">
<span class="label">
release
</span>
</span>
<div class="post-meta">
<span class="post-date">
13 May 2019
</span>
<a href="http://github.com/F21" class="post-author">
<img src="http://github.com/F21.png"
class="avatar" alt="francischuang avatar"
width="24" height="24">
francischuang
</a>
</div>
<div class="post-content">
<!--
-->
<p>Apache Calcite Avatica 1.15.0 is a small release that fixes a regression causing
error messages to not be propagated to clients. There is also a minor update to the
docker release script to automate the upload of release artifacts and build promotion.
See the list of <a href="/avatica/docs/history.html#v1-15-0">bug fixes and new features</a>
for more information.</p>
<p>Consumers of Avatica are encouraged to skip the 1.14.0 release and upgrade directly to
1.15.0 due to the aforementioned regression.</p>
<p>See the <a href="/avatica/docs/history.html#v1-15-0">release notes</a>;
<a href="/avatica/downloads/avatica.html#source-releases">download</a> the release.</p>
</div>
</article>
<article>
<h2>
<a href="/avatica/news/2019/04/29/release-1.14.0/">
Release 1.14.0
</a>
</h2>
<span class="post-category">
<span class="label">
release
</span>
</span>
<div class="post-meta">
<span class="post-date">
29 Apr 2019
</span>
<a href="http://github.com/F21" class="post-author">
<img src="http://github.com/F21.png"
class="avatar" alt="francischuang avatar"
width="24" height="24">
francischuang
</a>
</div>
<div class="post-content">
<!--
-->
<p>Apache Calcite Avatica 1.14.0 includes around 13
<a href="/avatica/docs/history.html#v1-14-0">bug fixes and new features</a>.</p>
<p>A number of dependencies were upgraded for this release, with Jetty being
a noteworthy upgrade due to the old version having a medium severity vulnerability.
Avatica users are encouraged to upgrade to 1.14.0 where practical.</p>
<p>See the <a href="/avatica/docs/history.html#v1-14-0">release notes</a>;
<a href="/avatica/downloads/avatica.html#source-releases">download</a> the release.</p>
</div>
</article>
<article>
<h2>
<a href="/avatica/news/2018/12/04/release-1.13.0/">
Release 1.13.0
</a>
</h2>
<span class="post-category">
<span class="label">
release
</span>
</span>
<div class="post-meta">
<span class="post-date">
04 Dec 2018
</span>
<a href="http://github.com/F21" class="post-author">
<img src="http://github.com/F21.png"
class="avatar" alt="francischuang avatar"
width="24" height="24">
francischuang
</a>
</div>
<div class="post-content">
<!--
-->
<p>Apache Calcite Avatica 1.13.0 includes more than 30
<a href="/avatica/docs/history.html#v1-13-0">bug fixes and new features</a>.</p>
<p>See the <a href="/avatica/docs/history.html#v1-13-0">release notes</a>;
<a href="/avatica/downloads/avatica.html#source-releases">download</a> the release.</p>
</div>
</article>
<article>
<h2>
<a href="/avatica/news/2018/06/24/release-1.12.0/">
Release 1.12.0
</a>
</h2>
<span class="post-category">
<span class="label">
release
</span>
</span>
<div class="post-meta">
<span class="post-date">
24 Jun 2018
</span>
<a href="http://github.com/F21" class="post-author">
<img src="http://github.com/F21.png"
class="avatar" alt="francischuang avatar"
width="24" height="24">
francischuang
</a>
</div>
<div class="post-content">
<!--
-->
<p>Apache Calcite Avatica 1.12.0 includes more than 20
<a href="/avatica/docs/history.html#v1-12-0">bug fixes and new features</a>.
ZIP archives will no longer be produced from this release onwards.</p>
<p>See the <a href="/avatica/docs/history.html#v1-12-0">release notes</a>;
<a href="/avatica/downloads/avatica.html#source-releases">download</a> the release.</p>
</div>
</article>
<article>
<h2>
<a href="/avatica/news/2018/03/09/release-1.11.0/">
Release 1.11.0
</a>
</h2>
<span class="post-category">
<span class="label">
release
</span>
</span>
<div class="post-meta">
<span class="post-date">
09 Mar 2018
</span>
<a href="http://people.apache.org/~jhyde" class="post-author">
<img src="http://github.com/julianhyde.png"
class="avatar" alt="jhyde avatar"
width="24" height="24">
jhyde
</a>
</div>
<div class="post-content">
<!--
-->
<p>Apache Calcite Avatica 1.11.0 adds support for JDK 10 and drops
support for JDK 7. There are more than 20
<a href="/avatica/docs/history.html#v1-11-0">bug fixes and new features</a>.</p>
<p>See the <a href="/avatica/docs/history.html#v1-11-0">release notes</a>;
<a href="/avatica/downloads/avatica.html#source-releases">download</a> the release.</p>
</div>
</article>
<article>
<h2>
<a href="/avatica/news/2017/05/30/release-1.10.0/">
Release 1.10.0
</a>
</h2>
<span class="post-category">
<span class="label">
release
</span>
</span>
<div class="post-meta">
<span class="post-date">
30 May 2017
</span>
<a href="http://people.apache.org/~jhyde" class="post-author">
<img src="http://github.com/julianhyde.png"
class="avatar" alt="jhyde avatar"
width="24" height="24">
jhyde
</a>
</div>
<div class="post-content">
<!--
-->
<p>Apache Calcite Avatica 1.10.0 adds support for JDBC Array data,
Docker, and JDK 9.</p>
<p>From this release onwards, Docker images for Avatica Server are
published to <a href="https://hub.docker.com/r/apache/calcite-avatica">Docker Hub</a>. These
make Avatica <a href="/avatica/docs/docker">easier than ever to run</a>.</p>
<p>As the Calcite and Avatica projects become
<a href="/avatica/news/2016/03/03/separate-project">more separate</a>,
it is the first release since Avatica’s git repository
<a href="/avatica/news/2017/03/31/new-avatica-repository">separated from Calcite’s repository</a>.</p>
<p>Avatica now runs on JDK 9 (and continues to run on JDK 7 and 8).</p>
<p>Clients may now send and receive Array data via the JDBC API.
There are improvements to date/time support in
<a href="/avatica/javadocAggregate/org/apache/calcite/avatica/util/DateTimeUtils.html">DateTimeUtils</a>,
and over 20 <a href="/avatica/docs/history.html#v1-10-0">other new features and bug fixes</a>.</p>
<p>See the <a href="/avatica/docs/history.html#v1-10-0">release notes</a>;
<a href="/avatica/downloads/avatica.html#source-releases">download</a> the release.</p>
</div>
</article>
<article>
<h2>
<a href="/avatica/news/2016/11/01/release-1.9.0/">
Release 1.9.0
</a>
</h2>
<span class="post-category">
<span class="label">
release
</span>
</span>
<div class="post-meta">
<span class="post-date">
01 Nov 2016
</span>
<a href="http://people.apache.org/~jhyde" class="post-author">
<img src="http://github.com/julianhyde.png"
class="avatar" alt="jhyde avatar"
width="24" height="24">
jhyde
</a>
</div>
<div class="post-content">
<!--
-->
<p>Apache Calcite Avatica 1.9.0 includes various improvements to make it
more robust and secure, while maintaining API and protocol
compatibility with previous versions.</p>
<p>We now <a href="https://issues.apache.org/jira/browse/CALCITE-1224">include non-shaded and shaded artifacts</a>,
to make it easier to embed Avatica in your application.</p>
<p>There are improvements to the JDBC API, adding support for
<a href="https://issues.apache.org/jira/browse/CALCITE-1301">canceling statements</a>,
and improving
<a href="https://issues.apache.org/jira/browse/CALCITE-1408">type conversions</a>
and
<a href="https://issues.apache.org/jira/browse/CALCITE-1410">metadata</a>.</p>
<p>The transport is upgraded to use
<a href="https://issues.apache.org/jira/browse/CALCITE-1355">protobuf-3.1.0</a>
(previously 3.0 beta); we have also
<a href="https://issues.apache.org/jira/browse/CALCITE-1464">upgraded Jetty</a>.</p>
<p>See the <a href="/avatica/docs/history.html#v1-9-0">release notes</a>;
<a href="/avatica/downloads/avatica.html#source-releases">download</a> the release.</p>
</div>
</article>
<article>
<h2>
<a href="/avatica/news/2016/06/04/release-1.8.0/">
Release 1.8.0
</a>
</h2>
<span class="post-category">
<span class="label">
release
</span>
</span>
<div class="post-meta">
<span class="post-date">
04 Jun 2016
</span>
<a href="http://github.com/joshelser" class="post-author">
<img src="http://github.com/joshelser.png"
class="avatar" alt="elserj avatar"
width="24" height="24">
elserj
</a>
</div>
<div class="post-content">
<!--
-->
<p>Apache Calcite Avatica 1.8.0 continues the focus on compatibility with previous
versions while also adding support for authentication between Avatica client and server.
Performance, notably on the write-path, is also major area of improvement
in this release, increasing as much as two to three times over previous versions
with the addition of new API support. The documentation for both users and developers
continues to receive improvements.</p>
<p>Authentication is a major theme of this release, providing multiple layers of
additional authentication mechanisms over previous versions. In these earlier
versions, the only authentication provided by Avatica was achieved via the JDBC URL’s
standard user and password options. These have always been passed directly into
the backend database’s authentication system, but not all databases provide username
and password based authentication systems. <a href="https://issues.apache.org/jira/browse/CALCITE-1173">CALCITE-1173</a>
adds Avatica-level authentication over <a href="https://en.wikipedia.org/wiki/Basic_access_authentication">HTTP Basic</a>
and <a href="https://en.wikipedia.org/wiki/Digest_access_authentication">HTTP Digest</a>
authentication mechanisms. These are provided specifically for the case when
Avatica is used with a database that <em>does not already</em> provide its own authentication
implementation.</p>
<p>Some systems rely on <a href="http://web.mit.edu/kerberos/">Kerberos</a> for strong, centrally-
managed authentication. <a href="https://issues.apache.org/jira/browse/CALCITE-1159">CALCITE-1159</a>
introduces Kerberos-based authentication for clients via <a href="https://en.wikipedia.org/wiki/SPNEGO">SPNEGO</a>.
The Avatica server can be configured to only allow clients with a valid Kerberos ticket,
optionally, also passing this information to the backend database to implement
basic “impersonation” (where the Avatica server issues requests on behalf of the end user).</p>
<p>Building on top of the work done in Avatica-1.7.0 in <a href="https://issues.apache.org/jira/browse/CALCITE-1091">CALCITE-1091</a>,
this release also contains <a href="https://issues.apache.org/jira/browse/CALCITE-1128">CALCITE-1128</a> which
implements the batch-oriented JDBC APIs on <code class="highlighter-rouge">Statement</code>. Through careful inspection, it
was observed that the overall performance of Avatica clients in 100% write workloads was
dominated by the cost of the HTTP calls. By leveraging the <code class="highlighter-rouge">Statement#addBatch()</code>
and <code class="highlighter-rouge">Statement#executeBatch()</code> API calls, clients can efficiently batch multiple updates
in a single HTTP call. In testing this over the previous single HTTP call per update with
<a href="https://phoenix.apache.org">Apache Phoenix</a>, it was observed that performance increased by
two to three times, bringing Avatica’s performance on par with the Phoenix “native” driver.</p>
<p>Returning back to compatibility, a new component appears in this release which is designed to
test versions of Avatica against each other. <a href="https://issues.apache.org/jira/browse/CALCITE-1190">CALCITE-1190</a>
introduces a “Technology Compatibility Kit” (TCK) which automates the testing of one version
of Avatica against other versions. To further ease this testing, a runnable JAR to launch
an HSQLDB instance and an Avatica server also makes it debut with these changes. This TCK
makes it much easier to run tests of newer clients against older servers and vice versa.
Validating the backwards compatibility that is being built is extremely important to be
confident in the guarantees being provided to users.</p>
<p>Finally, a number of bugs are also fixed in the Protocol Buffer wire API. Some of these
include <a href="https://issues.apache.org/jira/browse/CALCITE-1113">CALCITE-1113</a> and
<a href="https://issues.apache.org/jira/browse/CALCITE-1103">CALCITE-1103</a> which fix how certain
numbers are serialized, <a href="https://issues.apache.org/jira/browse/CALCITE-1243">CALITE-1243</a>
which corrects some fields in Protocol Buffer messages which were incorrectly marked
as unsigned integers instead of signed integers, and <a href="https://issues.apache.org/jira/browse/CALCITE-1209">CALCITE-1209</a>
which removes incorrect parsing of binary fields as Base64-encoded strings. All of
these issues are fixed in a backwards-compatible manner and should have no additional negative
impact on older clients (older clients will not break, but they may continue to return
incorrect data for certain numbers).</p>
<p>For users of the Avatica driver, a new <a href="/avatica/docs/client_reference.html">client reference page</a>
is added which details the options that are available in the Avatica JDBC Driver’s URL.
The wire API documentation for Protocol Buffers continues to receive updates as the API continues to evolve.</p>
<p>See the <a href="/avatica/docs/history.html#v1-8-0">release notes</a>;
<a href="/avatica/downloads/avatica.html#source-releases">download</a> the release.</p>
</div>
</article>
<article>
<h2>
<a href="/avatica/news/2016/03/18/release-1.7.1/">
Release 1.7.1
</a>
</h2>
<span class="post-category">
<span class="label">
release
</span>
</span>
<div class="post-meta">
<span class="post-date">
18 Mar 2016
</span>
<a href="http://github.com/joshelser" class="post-author">
<img src="http://github.com/joshelser.png"
class="avatar" alt="elserj avatar"
width="24" height="24">
elserj
</a>
</div>
<div class="post-content">
<!--
-->
<p>Apache Calcite’s PMC has just released Avatica 1.7.1, the first
release of <a href="http://calcite.apache.org/avatica/">Avatica</a> as an
independent project. We’re excited because it makes Avatica easier to
use, and allows us to be more agile in our release schedule.</p>
<p>(Avatica was previously released as part of Calcite. Avatica is still
governed by Apache Calcite’s PMC, and stored in the same git
repository as Calcite, but releases are no longer synchronized, and
Avatica does not depend on any Calcite modules.)</p>
<p>A significant portion of the work of this release was “Maven work” to
separate the build and release processes, but there were several
important bug fixes, including a security fix for Jetty (see below).</p>
<p>Performance, specifically on the write path, was a big focus in this
release.
[<a href="https://issues.apache.org/jira/browse/CALCITE-1091">CALCITE-1091</a>]
contained a number of important changes. Some of these changes (e.g.
[<a href="https://issues.apache.org/jira/browse/CALCITE-1092">CALCITE-1092</a>]
and
[<a href="https://issues.apache.org/jira/browse/CALCITE-1093">CALCITE-1093</a>])
were related to heap usage in the Avatica server, while
[<a href="https://issues.apache.org/jira/browse/CALCITE-1094">CALCITE-1094</a>]
and
[<a href="https://issues.apache.org/jira/browse/CALCITE-1117">CALCITE-1117</a>]
were strictly performance-related.</p>
<p>The latter improved performance the most. Switching to the
<a href="http://hc.apache.org/">Apache Commons HttpComponents Client</a>
library instead of using the Java platform’s built-in
<a href="https://docs.oracle.com/javase/7/docs/api/java/net/HttpURLConnection.html">HttpURLConnection</a>,
we noticed a 15% improvement in pure write workloads.</p>
<p>Three dependent library upgrades:</p>
<ul>
<li>We completely removed
<a href="https://commons.apache.org/proper/commons-logging/">Commons Logging</a>
in favor of <a href="http://slf4j.org/">SLF4J</a> in
[<a href="https://issues.apache.org/jira/browse/CALCITE-669">CALCITE-669</a>].
This logging framework update will allow downstream integrators to
use the logging implementation of their choice instead of being
forced to inherit Commons Logging.</li>
<li>We upgraded Jackson from 2.1.1 to 2.6.3 in
[<a href="https://issues.apache.org/jira/browse/CALCITE-1021">CALCITE-1021</a>].</li>
<li>We upgraded Jetty from 9.2.7.v20150116 to 9.2.15.v20160210 in
[<a href="https://issues.apache.org/jira/browse/CALCITE-1156">CALCITE-1156</a>]
to fix a
<a href="https://blog.gdssecurity.com/labs/2015/2/25/jetleak-vulnerability-remote-leakage-of-shared-buffers-in-je.html">security issue</a>.</li>
</ul>
<p>Note that Avatica’s Maven coordinates have changed. The <code class="highlighter-rouge">groupId</code> is
now “org.apache.calcite.avatica” (previously “org.apache.calcite”),
and <code class="highlighter-rouge">artifactId</code>s are
“avatica”,
“avatica-metrics”,
“avatica-metrics-dropwizardmetrics3”,
“avatica-noop-driver”,
“avatica-server”
(previously “calcite-avatica”, etc.). Make sure to update these when
upgrading to this version.</p>
<p>See the <a href="/avatica/docs/history.html#v1-7-1">release notes</a>;
<a href="/avatica/downloads/avatica.html#source-releases">download</a> the release.</p>
</div>
</article>
</div>
<div class="unit one-fifth hide-on-mobiles">
<aside>
<ul>
<li class="">
<a href="/avatica/news/">All News</a>
</li>
<li class="current">
<a href="/avatica/news/avatica-releases/">Avatica Releases</a>
</li>
<li class="">
<a href="/avatica/news/avatica-go-releases/">Avatica Go Releases</a>
</li>
</ul>
<h4>Recent Releases</h4>
<ul>
<li class="">
<a href="/avatica/news/2019/12/19/release-1.16.0/">avatica 1.16.0</a>
</li>
<li class="">
<a href="/avatica/news/2019/05/16/release-avatica-go-4.0.0/">avatica-go 4.0.0</a>
</li>
<li class="">
<a href="/avatica/news/2019/05/13/release-1.15.0/">avatica 1.15.0</a>
</li>
<li class="">
<a href="/avatica/news/2019/04/29/release-1.14.0/">avatica 1.14.0</a>
</li>
<li class="">
<a href="/avatica/news/2018/12/04/release-1.13.0/">avatica 1.13.0</a>
</li>
</ul>
<h4>Other News</h4>
<ul>
<li class="">
<a href="/avatica/news/2017/03/31/new-avatica-repository/">New Avatica Repository</a>
</li>
<li class="">
<a href="/avatica/news/2016/03/03/separate-project/">Splitting Avatica from Calcite</a>
</li>
</ul>
</aside>
</div>
<div class="clear"></div>
</div>
</section>
<footer role="contentinfo">
<div id="poweredby">
<a href="http://www.apache.org/">
<span class="sr-only">Apache</span>
<img src="/avatica/img/feather.png" width="190" height="77" alt="Apache Logo"></a>
</div>
<div id="copyright">
<p>The contents of this website are &copy;&nbsp;2019
<a href="https://www.apache.org/">Apache Software Foundation</a>
under the terms of
the <a href="https://www.apache.org/licenses/LICENSE-2.0.html">
Apache&nbsp;License&nbsp;v2</a>. Apache Calcite and its logo are
trademarks of the Apache Software Foundation.</p>
</div>
</footer>
<script>
var anchorForId = function (id) {
var anchor = document.createElement("a");
anchor.className = "header-link";
anchor.href = "#" + id;
anchor.innerHTML = "<span class=\"sr-only\">Permalink</span><i class=\"fa fa-link\"></i>";
anchor.title = "Permalink";
return anchor;
};
var linkifyAnchors = function (level, containingElement) {
var headers = containingElement.getElementsByTagName("h" + level);
for (var h = 0; h < headers.length; h++) {
var header = headers[h];
if (typeof header.id !== "undefined" && header.id !== "") {
header.appendChild(anchorForId(header.id));
}
}
};
document.onreadystatechange = function () {
if (this.readyState === "complete") {
var contentBlock = document.getElementsByClassName("docs")[0] || document.getElementsByClassName("news")[0];
if (!contentBlock) {
return;
}
for (var level = 1; level <= 6; level++) {
linkifyAnchors(level, contentBlock);
}
}
};
</script>
</body>
</html>