accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Keith Turner (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (ACCUMULO-3657) API Specification is incomplete
Date Fri, 10 Apr 2015 17:01:12 GMT

     [ https://issues.apache.org/jira/browse/ACCUMULO-3657?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Keith Turner updated ACCUMULO-3657:
-----------------------------------
    Attachment: apilyzer-1.txt
                pom-1.xml

I attached two files.  A pom that can be used to run APILyzer against 1.7.0-SNAPSHOT and the
output of running APILyzer against 1.7.0-SNAPSHOT built from 9c8dcaf.  Take a look at the
pom to see what I defined as the Accumulo API.   The end of the report shows access to types
not in the Public API by public API members.   The pom defines a very permissive set of external
types that are allow in the public API.  There may be some issues with external types used
in Accumulo's API, but I would like to defer responding to that for now.   Would like to clean
up Accumulo API members refering to Accumulo non API types 1st.

The definition of the public API in the attached pom adds some classes that are not currently
defined as public API in Accumulo's README.  These are classes that are critical for using
Accumulo.  I added 5 classes from {{org.apache.accumulo.core.security}} that are not in the
README.  I added {{ByteSequence}}, {{PartialKey}}, and {{Column}} from {{org.apache.accumulo.core.data}}.
  I am thinking I should also add {{ColumnUpdate}} and {{ArrayByteSequence}}.

I am going to take a crach at formulating a plan and post that.   In the meantime if people
have time to look at the problems in the report and think about solutions, I would love to
hear them.  Would also like feedback on the types I proposed adding to the API definition.






> API Specification is incomplete
> -------------------------------
>
>                 Key: ACCUMULO-3657
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-3657
>             Project: Accumulo
>          Issue Type: Bug
>    Affects Versions: 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.6.1, 1.6.2
>            Reporter: Keith Turner
>            Assignee: Keith Turner
>            Priority: Blocker
>             Fix For: 1.5.3, 1.7.0, 1.6.3
>
>         Attachments: apilyzer-1.txt, pom-1.xml
>
>
> While working on [fluo-365|https://github.com/fluo-io/fluo/issues/365] and trying to
create an [example Accumulo API checkstyle rule|https://gist.github.com/keith-turner/ee0deafe88fa9f5bc43f]
I discovered that API specification in the README is incomplete.   The API specification does
not include the following classes (which are referenced by classes that are declared to be
in public API).
>  * o.a.a.core.security.ColumnVisibility (used by public methods in Mutation)
>  * o.a.a.core.security.Authorizations (used by public methods in Connector)
>  * o.a.a.core.data.ByteSequence (used by public methods in Key)
>  * o.a.a.core.data.PartialKey (used by public methods in Key)
>  * o.a.a.core.data.ColumnUpdate (used by public methods in Mutation)
> This list is not exhausitive, I did not analyze all methods in public API.  These are
just the issue I ran into while trying to apply a checkstyle rule to Fluo.
> After correcting the README and website, it would be nice to add a recommended checkstyle
rule to the web site.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message