[
https://issues.apache.org/jira/browse/OAK-3842?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15089153#comment-15089153
]
Michael Dürig commented on OAK-3842:
------------------------------------
Below my initial findings going through the currently exported packages. I
adopted an aggressive approach removing a package export declaration when in
doubt. This way having an export declaration really means this package is
sufficiently stable such that consumers can rely on it.
Keep as exported:
{code}
org.apache.jackrabbit.oak.api.jmx
org.apache.jackrabbit.oak.api
{code}
Remove package export declaration:
{code}
org.apache.jackrabbit.oak.commons.benchmark
org.apache.jackrabbit.oak.commons.cache
org.apache.jackrabbit.oak.commons.concurrent
org.apache.jackrabbit.oak.commons.io
org.apache.jackrabbit.oak.commons.jmx
org.apache.jackrabbit.oak.commons.json
org.apache.jackrabbit.oak.commons
org.apache.jackrabbit.oak.commons.sort
org.apache.jackrabbit.oak.json
org.apache.jackrabbit.oak.management
org.apache.jackrabbit.oak.namepath
org.apache.jackrabbit.oak.osgi
org.apache.jackrabbit.oak
org.apache.jackrabbit.oak.plugins.atomic
org.apache.jackrabbit.oak.plugins.backup
org.apache.jackrabbit.oak.plugins.commit
org.apache.jackrabbit.oak.plugins.identifier
org.apache.jackrabbit.oak.plugins.itemsave
org.apache.jackrabbit.oak.plugins.memory
org.apache.jackrabbit.oak.plugins.name
org.apache.jackrabbit.oak.plugins.nodetype
org.apache.jackrabbit.oak.plugins.nodetype.write
org.apache.jackrabbit.oak.plugins.observation.filter
org.apache.jackrabbit.oak.plugins.observation
org.apache.jackrabbit.oak.plugins.segment.file
org.apache.jackrabbit.oak.plugins.segment.http
org.apache.jackrabbit.oak.plugins.segment
org.apache.jackrabbit.oak.plugins.value
org.apache.jackrabbit.oak.plugins.version
org.apache.jackrabbit.oak.query.fulltext
org.apache.jackrabbit.oak.query
org.apache.jackrabbit.oak.spi.commit
org.apache.jackrabbit.oak.spi.gc
org.apache.jackrabbit.oak.spi.lifecycle
org.apache.jackrabbit.oak.spi.query
org.apache.jackrabbit.oak.spi.state
org.apache.jackrabbit.oak.spi.whiteboard
org.apache.jackrabbit.oak.spi.xml
org.apache.jackrabbit.oak.stats
org.apache.jackrabbit.oak.util
org.apache.jackrabbit.oak.jcr
{code}
The following packages need further review:
{code}
org.apache.jackrabbit.oak.plugins.lock
{code}
This one is sufficiently stable so we could export it. The question is whether
we want
to export it. [~anchela] WDYT?
{code}
org.apache.jackrabbit.oak.spi.security.authentication.external.basic
org.apache.jackrabbit.oak.spi.security.authentication.external
org.apache.jackrabbit.oak.security.authentication.ldap
org.apache.jackrabbit.oak.spi.security.authorization.cug
org.apache.jackrabbit.oak.security
org.apache.jackrabbit.oak.spi.security.authentication.callback
org.apache.jackrabbit.oak.spi.security.authentication
org.apache.jackrabbit.oak.spi.security.authentication.token
org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol
org.apache.jackrabbit.oak.spi.security.authorization
org.apache.jackrabbit.oak.spi.security.authorization.permission
org.apache.jackrabbit.oak.spi.security.authorization.restriction
org.apache.jackrabbit.oak.spi.security
org.apache.jackrabbit.oak.spi.security.principal
org.apache.jackrabbit.oak.spi.security.privilege
org.apache.jackrabbit.oak.spi.security.user.action
org.apache.jackrabbit.oak.spi.security.user
org.apache.jackrabbit.oak.spi.security.user.util
{code}
[~anchela], could you do the analysis for the security related packages as you
are the one who know their ways around best in this area.
{code}
org.apache.jackrabbit.oak.plugins.tree
{code}
[~anchela], do we want /need to export this? I think it is sufficiently stable.
{code}
org.apache.jackrabbit.oak.spi.blob
org.apache.jackrabbit.oak.spi.blob.stats
{code}
[~amitjain], could you do the analysis for the blob packages?
{code}
org.apache.jackrabbit.oak.plugins.index.aggregate
org.apache.jackrabbit.oak.plugins.index.counter.jmx
org.apache.jackrabbit.oak.plugins.index.counter
org.apache.jackrabbit.oak.plugins.index.fulltext
org.apache.jackrabbit.oak.plugins.index.nodetype
org.apache.jackrabbit.oak.plugins.index
org.apache.jackrabbit.oak.plugins.index.property.jmx
org.apache.jackrabbit.oak.plugins.index.property
org.apache.jackrabbit.oak.plugins.index.reference
{code}
[~chetanm], could you do the analysis for the index packages?
{code}
org.apache.jackrabbit.oak.plugins.index.lucene
org.apache.jackrabbit.oak.plugins.index.lucene.score
org.apache.jackrabbit.oak.plugins.index.lucene.spi
org.apache.jackrabbit.oak.plugins.index.lucene.util
org.apache.jackrabbit.oak.plugins.index.solr.configuration
org.apache.jackrabbit.oak.plugins.index.solr.index
org.apache.jackrabbit.oak.plugins.index.solr.query
org.apache.jackrabbit.oak.plugins.index.solr.server
org.apache.jackrabbit.oak.plugins.index.solr.util
{code}
[~teofili], could you do the analysis for the lucene/solr packages?
> 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
> 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)