accumulo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mmil...@apache.org
Subject [accumulo-website] branch asf-site updated: Jekyll build from master:aefbfd7
Date Thu, 07 Nov 2019 18:29:15 GMT
This is an automated email from the ASF dual-hosted git repository.

mmiller pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/accumulo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 0b1e9b2  Jekyll build from master:aefbfd7
0b1e9b2 is described below

commit 0b1e9b2c9305b44b63c4c05cd355c1a8687bc1ee
Author: Mike Miller <mmiller@apache.org>
AuthorDate: Thu Nov 7 13:26:54 2019 -0500

    Jekyll build from master:aefbfd7
    
    Checkstyle import control blog post. Fixes #149 (#206)
---
 api/index.html                                     |   2 +
 .../2019/11/04/checkstyle-import-control.html      | 116 +++++++++++++-----
 feed.xml                                           | 130 +++++++++++++++------
 index.html                                         |  14 +--
 news/index.html                                    |   7 ++
 redirects.json                                     |   2 +-
 search_data.json                                   |   8 ++
 7 files changed, 207 insertions(+), 72 deletions(-)

diff --git a/api/index.html b/api/index.html
index 23c687b..b06e035 100644
--- a/api/index.html
+++ b/api/index.html
@@ -178,6 +178,8 @@ for public API were relocated, and also altered to include the new MapReduce
mod
 <pre><code class="language-regex">import\s+org\.apache\.accumulo\.(?!(core\.(client|data|security)|minicluster|hadoop)\.).*
 </code></pre>
 
+<p>See the <a href="/blog/2019/11/04/checkstyle-import-control.html">blog post</a>
about using the checkstyle plugin for more explicit non-API detection.</p>
+
 
         </div>
 
diff --git a/api/index.html b/blog/2019/11/04/checkstyle-import-control.html
similarity index 51%
copy from api/index.html
copy to blog/2019/11/04/checkstyle-import-control.html
index 23c687b..718297f 100644
--- a/api/index.html
+++ b/blog/2019/11/04/checkstyle-import-control.html
@@ -25,7 +25,7 @@
 <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/bs/jq-2.2.3/dt-1.10.12/datatables.min.css">
 <link href="/css/accumulo.css" rel="stylesheet" type="text/css">
 
-<title>Public API Definition</title>
+<title>Checking API use</title>
 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44="
crossorigin="anonymous"></script>
 <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
crossorigin="anonymous"></script>
@@ -138,46 +138,100 @@
         </div>
         <div id="content">
           
-          <h1 class="title">Public API Definition</h1>
+          <h1 class="title">Checking API use</h1>
           
-          <p>Accumulo’s public API is composed of all public types in the following
-packages and their sub-packages excluding those named <em>impl</em>, <em>thrift</em>,
or
-<em>crypto</em>.</p>
+          <p>
 
-<ul>
-  <li><a href="https://static.javadoc.io/org.apache.accumulo/accumulo-core/2.0.0/org/apache/accumulo/core/client/package-summary.html">org.apache.accumulo.core.client</a></li>
-  <li><a href="https://static.javadoc.io/org.apache.accumulo/accumulo-core/2.0.0/org/apache/accumulo/core/data/package-summary.html">org.apache.accumulo.core.data</a></li>
-  <li><a href="https://static.javadoc.io/org.apache.accumulo/accumulo-core/2.0.0/org/apache/accumulo/core/security/package-summary.html">org.apache.accumulo.core.security</a></li>
-  <li><a href="https://static.javadoc.io/org.apache.accumulo/accumulo-minicluster/2.0.0/org/apache/accumulo/minicluster/package-summary.html">org.apache.accumulo.minicluster</a></li>
-  <li><a href="https://static.javadoc.io/org.apache.accumulo/accumulo-hadoop/2.0.0/org/apache/accumulo/hadoop/package-summary.html">org.apache.accumulo.hadoop</a>
(since 2.0.0)</li>
-</ul>
+<b>Date: </b>&nbsp;&nbsp;04 Nov 2019<br>
 
-<p>A type is a class, interface, or enum. Anything with public or protected
-access in an API type is in the API. This includes, but is not limited to:
-methods, members classes, interfaces, and enums. Package-private types in the
-above packages are <em>not</em> considered public API.</p>
+</p>
 
-<p>The Accumulo project maintains binary compatibility across this API within a
-major release, as defined in the Java Language Specification 3rd ed. Starting
-with Accumulo 1.6.2 and 1.7.0 all API changes follow <a href="http://semver.org/spec/v2.0.0">semver
2.0</a>.
-Accumulo code outside of the defined API does not follow semver and may change
-in incompatible ways at any release.</p>
+<p>Accumulo follows <a href="https://semver.org/">SemVer</a> across versions
with the declaration of a public API.  Code not in the public API should be
+considered unstable, at risk of changing between versions.  The public API packages are <a
href="/api/">listed on the website</a>
+but may not be considered when an Accumulo user writes code.  This blog post explains how
to make Maven
+automatically detect usage of Accumulo code outside the public API.</p>
 
-<p>The following regex matches imports that are <em>not</em> Accumulo public
API. This
-regex can be used with <a href="http://checkstyle.sourceforge.net/config_regexp.html">RegexpSingleline</a>
to automatically find suspicious
-imports in a project using Accumulo.</p>
+<p>The techniques described in this blog post only work for Accumulo 2.0 and later.
 Do not use with 1.X versions.</p>
 
-<p>For 1.9 and earlier:</p>
+<h2 id="checkstyle-plugin">Checkstyle Plugin</h2>
 
-<pre><code class="language-regex">import\s+org\.apache\.accumulo\.(.*\.(impl|thrift|crypto)\..*|(?!(core\.(client|data|security)|minicluster)\.).*)
-</code></pre>
+<p>First add the checkstyle Maven plugin to your pom.</p>
 
-<p>For 2.0 and later, this can be simplified, because sub-packages not intended
-for public API were relocated, and also altered to include the new MapReduce module:</p>
+<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span
class="nt">&lt;plugin&gt;</span>
+    <span class="c">&lt;!-- This was added to ensure project only uses Accumulo's
public API --&gt;</span>
+    <span class="nt">&lt;groupId&gt;</span>org.apache.maven.plugins<span
class="nt">&lt;/groupId&gt;</span>
+    <span class="nt">&lt;artifactId&gt;</span>maven-checkstyle-plugin<span
class="nt">&lt;/artifactId&gt;</span>
+    <span class="nt">&lt;version&gt;</span>3.1.0<span class="nt">&lt;/version&gt;</span>
+    <span class="nt">&lt;executions&gt;</span>
+      <span class="nt">&lt;execution&gt;</span>
+        <span class="nt">&lt;id&gt;</span>check-style<span class="nt">&lt;/id&gt;</span>
+        <span class="nt">&lt;goals&gt;</span>
+          <span class="nt">&lt;goal&gt;</span>check<span class="nt">&lt;/goal&gt;</span>
+        <span class="nt">&lt;/goals&gt;</span>
+        <span class="nt">&lt;configuration&gt;</span>
+          <span class="nt">&lt;configLocation&gt;</span>checkstyle.xml<span
class="nt">&lt;/configLocation&gt;</span>
+        <span class="nt">&lt;/configuration&gt;</span>
+      <span class="nt">&lt;/execution&gt;</span>
+    <span class="nt">&lt;/executions&gt;</span>
+  <span class="nt">&lt;/plugin&gt;</span>
+</code></pre></div></div>
+<p>The plugin version is the latest at the time of this post.  For more information
see the website for
+the <a href="https://maven.apache.org/plugins/maven-checkstyle-plugin/">Apache Maven
Checkstyle Plugin</a>.  The configuration above adds the plugin to <code class="highlighter-rouge">check</code>
execution goal
+so it will always run with your build.</p>
 
-<pre><code class="language-regex">import\s+org\.apache\.accumulo\.(?!(core\.(client|data|security)|minicluster|hadoop)\.).*
-</code></pre>
+<p>Create the configuration file specified above: <code class="highlighter-rouge">checkstyle.xml</code></p>
 
+<h3 id="checkstylexml">checkstyle.xml</h3>
+
+<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span
class="cp">&lt;!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd"&gt;</span>
+<span class="nt">&lt;module</span> <span class="na">name=</span><span
class="s">"Checker"</span><span class="nt">&gt;</span>
+  <span class="nt">&lt;property</span> <span class="na">name=</span><span
class="s">"charset"</span> <span class="na">value=</span><span class="s">"UTF-8"</span><span
class="nt">/&gt;</span>
+  <span class="nt">&lt;module</span> <span class="na">name=</span><span
class="s">"TreeWalker"</span><span class="nt">&gt;</span>
+    <span class="c">&lt;!--check that only Accumulo public APIs are imported--&gt;</span>
+    <span class="nt">&lt;module</span> <span class="na">name=</span><span
class="s">"ImportControl"</span><span class="nt">&gt;</span>
+      <span class="nt">&lt;property</span> <span class="na">name=</span><span
class="s">"file"</span> <span class="na">value=</span><span class="s">"import-control.xml"</span><span
class="nt">/&gt;</span>
+    <span class="nt">&lt;/module&gt;</span>
+  <span class="nt">&lt;/module&gt;</span>
+<span class="nt">&lt;/module&gt;</span>
+</code></pre></div></div>
+<p>This file sets up the ImportControl module.</p>
+
+<h2 id="import-control-configuration">Import Control Configuration</h2>
+
+<p>Create the second file specified above, <code class="highlighter-rouge">import-control.xml</code>
and copy the configuration below.  Make sure to replace
+“insert-your-package-name” with the package name of your project.</p>
+<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span
class="cp">&lt;!DOCTYPE import-control PUBLIC
+    "-//Checkstyle//DTD ImportControl Configuration 1.4//EN"
+    "https://checkstyle.org/dtds/import_control_1_4.dtd"&gt;</span>
+
+<span class="c">&lt;!-- This checkstyle rule is configured to ensure only use of
Accumulo API --&gt;</span>
+<span class="nt">&lt;import-control</span> <span class="na">pkg=</span><span
class="s">"insert-your-package-name"</span> <span class="na">strategyOnMismatch=</span><span
class="s">"allowed"</span><span class="nt">&gt;</span>
+    <span class="c">&lt;!-- API packages --&gt;</span>
+    <span class="nt">&lt;allow</span> <span class="na">pkg=</span><span
class="s">"org.apache.accumulo.core.client"</span><span class="nt">/&gt;</span>
+    <span class="nt">&lt;allow</span> <span class="na">pkg=</span><span
class="s">"org.apache.accumulo.core.data"</span><span class="nt">/&gt;</span>
+    <span class="nt">&lt;allow</span> <span class="na">pkg=</span><span
class="s">"org.apache.accumulo.core.security"</span><span class="nt">/&gt;</span>
+    <span class="nt">&lt;allow</span> <span class="na">pkg=</span><span
class="s">"org.apache.accumulo.core.iterators"</span><span class="nt">/&gt;</span>
+    <span class="nt">&lt;allow</span> <span class="na">pkg=</span><span
class="s">"org.apache.accumulo.minicluster"</span><span class="nt">/&gt;</span>
+    <span class="nt">&lt;allow</span> <span class="na">pkg=</span><span
class="s">"org.apache.accumulo.hadoop.mapreduce"</span><span class="nt">/&gt;</span>
+
+    <span class="c">&lt;!-- disallow everything else coming from accumulo --&gt;</span>
+    <span class="nt">&lt;disallow</span> <span class="na">pkg=</span><span
class="s">"org.apache.accumulo"</span><span class="nt">/&gt;</span>
+<span class="nt">&lt;/import-control&gt;</span>
+</code></pre></div></div>
+<p>This file configures the ImportControl module to only allow packages that are declared
public API.</p>
+
+<h2 id="hold-the-line">Hold the line</h2>
+
+<p>Adding this to an existing project may expose usage of non public Accumulo API’s.
It may take more time than is available
+to fix those at first, but do not let this discourage adding this plugin. One possible way
to proceed is to allow the
+currently used non-public APIs in a commented section of import-control.xml noting these
are temporarily allowed until
+they can be removed. This strategy prevents new usages of non-public APIs while allowing
time to work on fixing the current
+ usages of non public APIs.  Also, if you don’t want your project failing to build because
of this, you can add <code class="highlighter-rouge">&lt;failOnViolation&gt;false&lt;/failOnViolation&gt;</code>
+to the maven-checkstyle-plugin configuration.</p>
+
+
+
+<p><strong>View all posts in the <a href="/news">news archive</a></strong></p>
 
         </div>
 
diff --git a/feed.xml b/feed.xml
index f714b74..2ce1521 100644
--- a/feed.xml
+++ b/feed.xml
@@ -6,12 +6,107 @@
 </description>
     <link>https://accumulo.apache.org/</link>
     <atom:link href="https://accumulo.apache.org/feed.xml" rel="self" type="application/rss+xml"/>
-    <pubDate>Mon, 04 Nov 2019 13:41:25 -0500</pubDate>
-    <lastBuildDate>Mon, 04 Nov 2019 13:41:25 -0500</lastBuildDate>
+    <pubDate>Thu, 07 Nov 2019 13:26:50 -0500</pubDate>
+    <lastBuildDate>Thu, 07 Nov 2019 13:26:50 -0500</lastBuildDate>
     <generator>Jekyll v4.0.0</generator>
     
     
       <item>
+        <title>Checking API use</title>
+        <description>&lt;p&gt;Accumulo follows &lt;a href=&quot;https://semver.org/&quot;&gt;SemVer&lt;/a&gt;
across versions with the declaration of a public API.  Code not in the public API should be
+considered unstable, at risk of changing between versions.  The public API packages are &lt;a
href=&quot;/api/&quot;&gt;listed on the website&lt;/a&gt;
+but may not be considered when an Accumulo user writes code.  This blog post explains how
to make Maven
+automatically detect usage of Accumulo code outside the public API.&lt;/p&gt;
+
+&lt;p&gt;The techniques described in this blog post only work for Accumulo 2.0 and
later.  Do not use with 1.X versions.&lt;/p&gt;
+
+&lt;h2 id=&quot;checkstyle-plugin&quot;&gt;Checkstyle Plugin&lt;/h2&gt;
+
+&lt;p&gt;First add the checkstyle Maven plugin to your pom.&lt;/p&gt;
+
+&lt;div class=&quot;language-xml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre
class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;plugin&amp;gt;&lt;/span&gt;
+    &lt;span class=&quot;c&quot;&gt;&amp;lt;!-- This was added to ensure
project only uses Accumulo's public API --&amp;gt;&lt;/span&gt;
+    &lt;span class=&quot;nt&quot;&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.apache.maven.plugins&lt;span
class=&quot;nt&quot;&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
+    &lt;span class=&quot;nt&quot;&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;maven-checkstyle-plugin&lt;span
class=&quot;nt&quot;&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
+    &lt;span class=&quot;nt&quot;&gt;&amp;lt;version&amp;gt;&lt;/span&gt;3.1.0&lt;span
class=&quot;nt&quot;&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
+    &lt;span class=&quot;nt&quot;&gt;&amp;lt;executions&amp;gt;&lt;/span&gt;
+      &lt;span class=&quot;nt&quot;&gt;&amp;lt;execution&amp;gt;&lt;/span&gt;
+        &lt;span class=&quot;nt&quot;&gt;&amp;lt;id&amp;gt;&lt;/span&gt;check-style&lt;span
class=&quot;nt&quot;&gt;&amp;lt;/id&amp;gt;&lt;/span&gt;
+        &lt;span class=&quot;nt&quot;&gt;&amp;lt;goals&amp;gt;&lt;/span&gt;
+          &lt;span class=&quot;nt&quot;&gt;&amp;lt;goal&amp;gt;&lt;/span&gt;check&lt;span
class=&quot;nt&quot;&gt;&amp;lt;/goal&amp;gt;&lt;/span&gt;
+        &lt;span class=&quot;nt&quot;&gt;&amp;lt;/goals&amp;gt;&lt;/span&gt;
+        &lt;span class=&quot;nt&quot;&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;
+          &lt;span class=&quot;nt&quot;&gt;&amp;lt;configLocation&amp;gt;&lt;/span&gt;checkstyle.xml&lt;span
class=&quot;nt&quot;&gt;&amp;lt;/configLocation&amp;gt;&lt;/span&gt;
+        &lt;span class=&quot;nt&quot;&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;
+      &lt;span class=&quot;nt&quot;&gt;&amp;lt;/execution&amp;gt;&lt;/span&gt;
+    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/executions&amp;gt;&lt;/span&gt;
+  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/plugin&amp;gt;&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
+&lt;p&gt;The plugin version is the latest at the time of this post.  For more information
see the website for
+the &lt;a href=&quot;https://maven.apache.org/plugins/maven-checkstyle-plugin/&quot;&gt;Apache
Maven Checkstyle Plugin&lt;/a&gt;.  The configuration above adds the plugin to &lt;code
class=&quot;highlighter-rouge&quot;&gt;check&lt;/code&gt; execution goal
+so it will always run with your build.&lt;/p&gt;
+
+&lt;p&gt;Create the configuration file specified above: &lt;code class=&quot;highlighter-rouge&quot;&gt;checkstyle.xml&lt;/code&gt;&lt;/p&gt;
+
+&lt;h3 id=&quot;checkstylexml&quot;&gt;checkstyle.xml&lt;/h3&gt;
+
+&lt;div class=&quot;language-xml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre
class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;&amp;lt;!DOCTYPE
module PUBLIC &quot;-//Puppy Crawl//DTD Check Configuration 1.3//EN&quot; &quot;http://www.puppycrawl.com/dtds/configuration_1_3.dtd&quot;&amp;gt;&lt;/span&gt;
+&lt;span class=&quot;nt&quot;&gt;&amp;lt;module&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Checker&quot;&lt;/span&gt;&lt;span
class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
+  &lt;span class=&quot;nt&quot;&gt;&amp;lt;property&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;charset&quot;&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;value=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt;&lt;span
class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
+  &lt;span class=&quot;nt&quot;&gt;&amp;lt;module&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;TreeWalker&quot;&lt;/span&gt;&lt;span
class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
+    &lt;span class=&quot;c&quot;&gt;&amp;lt;!--check that only Accumulo
public APIs are imported--&amp;gt;&lt;/span&gt;
+    &lt;span class=&quot;nt&quot;&gt;&amp;lt;module&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;ImportControl&quot;&lt;/span&gt;&lt;span
class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
+      &lt;span class=&quot;nt&quot;&gt;&amp;lt;property&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;file&quot;&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;value=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;import-control.xml&quot;&lt;/span&gt;&lt;span
class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
+    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/module&amp;gt;&lt;/span&gt;
+  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/module&amp;gt;&lt;/span&gt;
+&lt;span class=&quot;nt&quot;&gt;&amp;lt;/module&amp;gt;&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
+&lt;p&gt;This file sets up the ImportControl module.&lt;/p&gt;
+
+&lt;h2 id=&quot;import-control-configuration&quot;&gt;Import Control Configuration&lt;/h2&gt;
+
+&lt;p&gt;Create the second file specified above, &lt;code class=&quot;highlighter-rouge&quot;&gt;import-control.xml&lt;/code&gt;
and copy the configuration below.  Make sure to replace
+“insert-your-package-name” with the package name of your project.&lt;/p&gt;
+&lt;div class=&quot;language-xml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre
class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;&amp;lt;!DOCTYPE
import-control PUBLIC
+    &quot;-//Checkstyle//DTD ImportControl Configuration 1.4//EN&quot;
+    &quot;https://checkstyle.org/dtds/import_control_1_4.dtd&quot;&amp;gt;&lt;/span&gt;
+
+&lt;span class=&quot;c&quot;&gt;&amp;lt;!-- This checkstyle rule is configured
to ensure only use of Accumulo API --&amp;gt;&lt;/span&gt;
+&lt;span class=&quot;nt&quot;&gt;&amp;lt;import-control&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;pkg=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;insert-your-package-name&quot;&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;strategyOnMismatch=&lt;/span&gt;&lt;span
class=&quot;s&quot;&gt;&quot;allowed&quot;&lt;/span&gt;&lt;span
class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
+    &lt;span class=&quot;c&quot;&gt;&amp;lt;!-- API packages --&amp;gt;&lt;/span&gt;
+    &lt;span class=&quot;nt&quot;&gt;&amp;lt;allow&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;pkg=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;org.apache.accumulo.core.client&quot;&lt;/span&gt;&lt;span
class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
+    &lt;span class=&quot;nt&quot;&gt;&amp;lt;allow&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;pkg=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;org.apache.accumulo.core.data&quot;&lt;/span&gt;&lt;span
class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
+    &lt;span class=&quot;nt&quot;&gt;&amp;lt;allow&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;pkg=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;org.apache.accumulo.core.security&quot;&lt;/span&gt;&lt;span
class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
+    &lt;span class=&quot;nt&quot;&gt;&amp;lt;allow&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;pkg=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;org.apache.accumulo.core.iterators&quot;&lt;/span&gt;&lt;span
class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
+    &lt;span class=&quot;nt&quot;&gt;&amp;lt;allow&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;pkg=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;org.apache.accumulo.minicluster&quot;&lt;/span&gt;&lt;span
class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
+    &lt;span class=&quot;nt&quot;&gt;&amp;lt;allow&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;pkg=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;org.apache.accumulo.hadoop.mapreduce&quot;&lt;/span&gt;&lt;span
class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
+
+    &lt;span class=&quot;c&quot;&gt;&amp;lt;!-- disallow everything else
coming from accumulo --&amp;gt;&lt;/span&gt;
+    &lt;span class=&quot;nt&quot;&gt;&amp;lt;disallow&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;pkg=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;org.apache.accumulo&quot;&lt;/span&gt;&lt;span
class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
+&lt;span class=&quot;nt&quot;&gt;&amp;lt;/import-control&amp;gt;&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
+&lt;p&gt;This file configures the ImportControl module to only allow packages that
are declared public API.&lt;/p&gt;
+
+&lt;h2 id=&quot;hold-the-line&quot;&gt;Hold the line&lt;/h2&gt;
+
+&lt;p&gt;Adding this to an existing project may expose usage of non public Accumulo
API’s. It may take more time than is available
+to fix those at first, but do not let this discourage adding this plugin. One possible way
to proceed is to allow the
+currently used non-public APIs in a commented section of import-control.xml noting these
are temporarily allowed until
+they can be removed. This strategy prevents new usages of non-public APIs while allowing
time to work on fixing the current
+ usages of non public APIs.  Also, if you don’t want your project failing to build because
of this, you can add &lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;failOnViolation&amp;gt;false&amp;lt;/failOnViolation&amp;gt;&lt;/code&gt;
+to the maven-checkstyle-plugin configuration.&lt;/p&gt;
+
+</description>
+        <pubDate>Mon, 04 Nov 2019 00:00:00 -0500</pubDate>
+        <link>https://accumulo.apache.org/blog/2019/11/04/checkstyle-import-control.html</link>
+        <guid isPermaLink="true">https://accumulo.apache.org/blog/2019/11/04/checkstyle-import-control.html</guid>
+        
+        
+        <category>blog</category>
+        
+      </item>
+    
+      <item>
         <title>Using Azure Data Lake Gen2 storage as a data store for Accumulo</title>
         <description>&lt;p&gt;Accumulo can store its files in &lt;a href=&quot;https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-introduction&quot;&gt;Azure
Data Lake Storage Gen2&lt;/a&gt;
 using the &lt;a href=&quot;https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-abfs-driver&quot;&gt;ABFS
(Azure Blob File System)&lt;/a&gt; driver.
@@ -1226,36 +1321,5 @@ complete in this alpha release.&lt;/li&gt;
         
       </item>
     
-      <item>
-        <title>Apache Accumulo 2.0.0-alpha-1</title>
-        <description>&lt;p&gt;Apache Accumulo 2.0.0-alpha-1 contains numerous
changes since the 1.9. This
-alpha release is a preview of features coming in 2.0.0. It is being made
-available for preview, testing, and evaluation of those upcoming features, but
-is &lt;em&gt;not yet suitable for production use&lt;/em&gt;. API, packaging,
and other changes may
-still occur before a final 2.0.0 release.&lt;/p&gt;
-
-&lt;ul&gt;
-  &lt;li&gt;&lt;a href=&quot;/docs/2.x/&quot;&gt;User Manual&lt;/a&gt;
- In-depth developer and administrator documentation&lt;/li&gt;
-  &lt;li&gt;&lt;a href=&quot;/docs/2.x/apidocs/&quot;&gt;Javadocs&lt;/a&gt;
- Accumulo 2.0 API (subject to change)&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;h2 id=&quot;notable-changes&quot;&gt;Notable Changes&lt;/h2&gt;
-
-&lt;ul&gt;
-  &lt;li&gt;Please see the &lt;a href=&quot;/release/accumulo-2.0.0&quot;&gt;draft
release notes for 2.0.0&lt;/a&gt; for a list of the
-changes coming in 2.0.0, many of which are either complete, or nearly
-complete in this alpha release.&lt;/li&gt;
-&lt;/ul&gt;
-
-</description>
-        <pubDate>Sun, 14 Oct 2018 00:00:00 -0400</pubDate>
-        <link>https://accumulo.apache.org/release/accumulo-2.0.0-alpha-1/</link>
-        <guid isPermaLink="true">https://accumulo.apache.org/release/accumulo-2.0.0-alpha-1/</guid>
-        
-        
-        <category>release</category>
-        
-      </item>
-    
   </channel>
 </rss>
diff --git a/index.html b/index.html
index 756ac21..d2d6818 100644
--- a/index.html
+++ b/index.html
@@ -179,6 +179,13 @@
         
         <div class="row latest-news-item">
           <div class="col-sm-12" style="margin-bottom: 5px">
+           <span style="font-size: 12px; margin-right: 5px;">Nov 2019</span>
+           <a href="/blog/2019/11/04/checkstyle-import-control.html">Checking API use</a>
+          </div>
+        </div>
+        
+        <div class="row latest-news-item">
+          <div class="col-sm-12" style="margin-bottom: 5px">
            <span style="font-size: 12px; margin-right: 5px;">Oct 2019</span>
            <a href="/blog/2019/10/15/accumulo-adlsgen2-notes.html">Using Azure Data
Lake Gen2 storage as a data store for Accumulo</a>
           </div>
@@ -205,13 +212,6 @@
           </div>
         </div>
         
-        <div class="row latest-news-item">
-          <div class="col-sm-12" style="margin-bottom: 5px">
-           <span style="font-size: 12px; margin-right: 5px;">Aug 2019</span>
-           <a href="/release/accumulo-2.0.0/">Apache Accumulo 2.0.0</a>
-          </div>
-        </div>
-        
         <div id="news-archive-link">
          <p>View all posts in the <a href="/news">news archive</a></p>
         </div>
diff --git a/news/index.html b/news/index.html
index c304dea..a548889 100644
--- a/news/index.html
+++ b/news/index.html
@@ -148,6 +148,13 @@
   
   
   <div class="row" style="margin-top: 15px">
+    <div class="col-md-1">Nov 04</div>
+    <div class="col-md-10"><a href="/blog/2019/11/04/checkstyle-import-control.html">Checking
API use</a></div>
+  </div>
+
+  
+  
+  <div class="row" style="margin-top: 15px">
     <div class="col-md-1">Oct 15</div>
     <div class="col-md-10"><a href="/blog/2019/10/15/accumulo-adlsgen2-notes.html">Using
Azure Data Lake Gen2 storage as a data store for Accumulo</a></div>
   </div>
diff --git a/redirects.json b/redirects.json
index 4bda3a4..6e10199 100644
--- a/redirects.json
+++ b/redirects.json
@@ -1 +1 @@
-{"/release_notes/1.5.1.html":"https://accumulo.apache.org/release/accumulo-1.5.1/","/release_notes/1.6.0.html":"https://accumulo.apache.org/release/accumulo-1.6.0/","/release_notes/1.6.1.html":"https://accumulo.apache.org/release/accumulo-1.6.1/","/release_notes/1.6.2.html":"https://accumulo.apache.org/release/accumulo-1.6.2/","/release_notes/1.7.0.html":"https://accumulo.apache.org/release/accumulo-1.7.0/","/release_notes/1.5.3.html":"https://accumulo.apache.org/release/accumulo-1.5.3/"
[...]
\ No newline at end of file
+{"/release_notes/1.5.1.html":"https://accumulo.apache.org/release/accumulo-1.5.1/","/release_notes/1.6.0.html":"https://accumulo.apache.org/release/accumulo-1.6.0/","/release_notes/1.6.1.html":"https://accumulo.apache.org/release/accumulo-1.6.1/","/release_notes/1.6.2.html":"https://accumulo.apache.org/release/accumulo-1.6.2/","/release_notes/1.7.0.html":"https://accumulo.apache.org/release/accumulo-1.7.0/","/release_notes/1.5.3.html":"https://accumulo.apache.org/release/accumulo-1.5.3/"
[...]
\ No newline at end of file
diff --git a/search_data.json b/search_data.json
index 72bed5e..7f4e9e4 100644
--- a/search_data.json
+++ b/search_data.json
@@ -295,6 +295,14 @@
     },
   
   
+    "blog-2019-11-04-checkstyle-import-control-html": {
+      "title": "Checking API use",
+      "content"	 : "Accumulo follows SemVer across versions with the declaration of a public
API.  Code not in the public API should beconsidered unstable, at risk of changing between
versions.  The public API packages are listed on the websitebut may not be considered when
an Accumulo user writes code.  This blog post explains how to make Mavenautomatically detect
usage of Accumulo code outside the public API.The techniques described in this blog post only
work for Accumulo 2.0 and late [...]
+      "url": " /blog/2019/11/04/checkstyle-import-control.html",
+      "categories": "blog"
+    }
+    ,
+  
     "blog-2019-10-15-accumulo-adlsgen2-notes-html": {
       "title": "Using Azure Data Lake Gen2 storage as a data store for Accumulo",
       "content"	 : "Accumulo can store its files in Azure Data Lake Storage Gen2using the
ABFS (Azure Blob File System) driver.Similar to S3 blog, the write ahead logs &amp;amp;
Accumulo metadata can be stored in HDFS and everything else on Gen2 storageusing the volume
chooser feature introduced in Accumulo 2.0. The configurations referred on this blogare specific
to Accumulo 2.0 and Hadoop 3.2.0.Hadoop setupFor ABFS client to talk to Gen2 storage, it requires
one of the Authentication m [...]


Mime
View raw message