You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by "Kenneth Knowles (JIRA)" <ji...@apache.org> on 2016/11/02 16:04:58 UTC
[jira] [Updated] (BEAM-878) Allow usage of ApiSurfaceTest providing
nothing but a whitelist
[ https://issues.apache.org/jira/browse/BEAM-878?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kenneth Knowles updated BEAM-878:
---------------------------------
Summary: Allow usage of ApiSurfaceTest providing nothing but a whitelist (was: ApiSurfaceTest improvements and reusability)
> Allow usage of ApiSurfaceTest providing nothing but a whitelist
> ---------------------------------------------------------------
>
> Key: BEAM-878
> URL: https://issues.apache.org/jira/browse/BEAM-878
> Project: Beam
> Issue Type: Improvement
> Components: testing
> Affects Versions: Not applicable
> Reporter: Daniel Halperin
> Fix For: Not applicable
>
>
> {{ApiSurfaceTest}} in the {{sdks/java/core}} is the class responsible for protecting our public API surface.
> This test walks the public signatures of all modules and explicitly verifies that everything is on a whitelist. This is how we control what dependencies we expose to our users, so that Beam can keep a tight, stable API surface.
> We should improve this functionality to be reusable across modules.
> Some desiderata for reuse:
> * test automatically infers the module on which it should seed the API search.
> * only 2 things in the file -- a whitelist and a ~1-line test that passes the whitelist as a parameter to some helper.
> * test fails if there are things in the whitelist that are not exposed.
> Any other cool things that are similar to what Maven enforcer does?
> As an example of what you have to do without this functionality, see https://github.com/apache/incubator-beam/pull/1183
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)