jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Konrad Windszus (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (OAK-3842) Adjust package export declarations
Date Sat, 09 Jan 2016 11:26:39 GMT

    [ https://issues.apache.org/jira/browse/OAK-3842?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15090565#comment-15090565
] 

Konrad Windszus commented on OAK-3842:
--------------------------------------

Sling depends on {{org/apache/jackrabbit/oak/plugins/observation.Node}} as well as on several
classes in {{org.apache.jackrabbit.oak.spi.commit}} in https://github.com/apache/sling/blob/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/OakResourceListener.java
for supporting a better observation mechanism (SLING-3279 and OAK-1120). Would you consider
those classes part of the Oak API as well? The major increase in the versioning leads to the
fact already that the Sling JCR Resource bundle is no longer compatible with Oak 1.2 and below
(http://www.mail-archive.com/dev%40sling.apache.org/msg49385.html).
Since I guess the improved observation is interesting for other consumers as well, I would
suggest to make that part of the official API if possible.

> Adjust package export declarations 
> -----------------------------------
>
>                 Key: OAK-3842
>                 URL: https://issues.apache.org/jira/browse/OAK-3842
>             Project: Jackrabbit Oak
>          Issue Type: Task
>            Reporter: Michael Dürig
>            Assignee: Michael Dürig
>            Priority: Critical
>              Labels: api, modularization, technical_debt
>             Fix For: 1.4
>
>
> We need to adjust the package export declarations such that they become manageable with
our branch / release model. 
> See http://markmail.org/thread/5g3viq5pwtdryapr for discussion.
> I propose to remove package export declarations from all packages that we don't consider
public API / SPI beyond Oak itself. This would allow us to evolve Oak internal stuff (e.g.
things used across Oak modules) freely without having to worry about merges to branches messing
up semantic versioning. OTOH it would force us to keep externally facing public API / SPI
reasonably stable also across the branches. Furthermore such an approach would send the right
signal to Oak API / SPI consumers regarding the stability assumptions they can make. 
> An external API / SPI having a (transitive) dependency on internals might be troublesome.
In doubt I would remove the export version here until we can make reasonable guarantees (either
through decoupling the code or stabilising the dependencies). 
> I would start digging through the export version and prepare an initial proposal for
further discussion. 
> /cc [~frm], [~chetanm], [~mmarth]



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

Mime
View raw message