accumulo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher <>
Subject Re: Technical discussion on MockShell being in public API for 1.7.0
Date Wed, 15 Apr 2015 20:21:33 GMT
I've been in favor of deprecating mock entirely. I certainly don't
like it being considered public API, since it mainly was built to
enable testing (where heavy flexibility is needed to test various
scenarios... much more flexibility than a stable public API can easily
provide). I also don't like the idea of Shell's Java API being
included in the public API (it's intended as a command line utility,
not a programmatic interface to Accumulo).

Given all that, along with the inherent difficulty of preserving
MockShell in the public API, I'm thinking this might be one of those
"ask for forgiveness" cases, and make a note about it in the release
notes. I'm just speculating here, but I think this is probably low
risk and won't affect too many people.

As we think about API stabilization issues moving forward, it's
probably inevitable we're going to run into this occassional case.
What's important is that they become fewer and farther between, and
that we document clearly when it happens.

Christopher L Tubbs II

On Wed, Apr 15, 2015 at 3:02 PM, Josh Elser <> wrote:
> In case others don't see it in JIRA notifications, here's some broad
> visibility.
> I noticed, through japi reports, that MockShell was technically public API
> and was removed from it due to the addition of the shell maven module. If
> you have opinions, please raise them on ACCUMULO-3726. If we need to expand
> it out to a standalone conversation, we can start a new discussion here.
> -------- Original Message --------
> Subject: [jira] [Commented] (ACCUMULO-3726) Restore MockShell in public API
> Date: Wed, 15 Apr 2015 18:59:59 +0000 (UTC)
> From: Josh Elser (JIRA) <>
> Reply-To:
> To:
>     [
> ]
> Josh Elser commented on ACCUMULO-3726:
> --------------------------------------
> _curse_
> I was worried about that. This seems like
> yet-another-public-api-shouldnt-be-public-api issue. MockShell came from
> o.a.a.c.client.mock.MockShell and went to Shell
> came from o.a.a.core.util.Shell and went to It makes 0
> sense to assume MockShell is public API but Shell is not (and also causes
> more problems as it leaks Shell into the public API).
> Given that, I would be in favor of breaking our rules on compatibility.
> 1. MockShell should never have been in public API (as Shell was never public
> API)
> 2. It is not easily restored and deprecated.
> 3. It is likely very low risk that someone was using themselves (we
> ourselves only reference it in a single test case).
> cc/ [~busbey] since you have been very adamant in the past on topics of this
> matter.
>> Restore MockShell in public API
>> -------------------------------
>>                 Key: ACCUMULO-3726
>>                 URL:
>>             Project: Accumulo
>>          Issue Type: Sub-task
>>          Components: client
>>            Reporter: Josh Elser
>>            Assignee: Josh Elser
>>            Priority: Blocker
>>             Fix For: 1.7.0
>> MockShell was moved from o.a.a.core.client.mock. to which
>> is a violation of our public API statement.
>> It needs to be restored and deprecated with a proper cycle.
> --
> This message was sent by Atlassian JIRA
> (v6.3.4#6332)

View raw message