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

Manfred Baedke edited comment on OAK-10635 at 1/31/24 10:23 AM:
----------------------------------------------------------------

trunk (1.62.0): 
[0cde8533|https://github.com/apache/jackrabbit-oak/commit/0cde85333b1f3e40ffe6f1a4dd6f52f721da827a]


was (Author: baedke):
trunk (1.0.62): 
[0cde8533|https://github.com/apache/jackrabbit-oak/commit/0cde85333b1f3e40ffe6f1a4dd6f52f721da827a]

> BundledTypeRegistry replace guava collection refs with facade
> -------------------------------------------------------------
>
>                 Key: OAK-10635
>                 URL: https://issues.apache.org/jira/browse/OAK-10635
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: commons
>    Affects Versions: 1.62.0
>            Reporter: Mark Adamcin
>            Priority: Minor
>
> The oak-shaded-guava bundle exports shaded guava packages with a version that 
> is defined by google to match the version of the upstream artifact. While it 
> is a semantic versioning scheme, it follows the API contract of the entire 
> artifact, and does not distinguish API changes in included packages like 
> .base and .collect at a granular level, which can result in otherwise 
> avoidable OSGi wiring errors when references to guava types leak outside of 
> the greater Oak API boundary, such as when classes are embedded or when guava 
> types are explicitly referenced in signatures outside of oak-shaded-guava.
> oak-commons should endeavor to provide a stable facade API for the simpler 
> parts of the guava library that are referenced at runtime by other oak 
> bundles, such as newHashMap(), ImmutableList.copyOf(), Preconditions.check*, 
> and perhaps Closer. 
> One example I know of that could where I could benefit from this approach 
> almost immediately is a project where I am embedding 
> BundlingConfigInitializer and BundledTypesRegistry from oak-store-document in 
> a customized repository configuration. When BundledTypesRegistry is embedded, 
> it brings with it imports of ImmutableMap, Maps, and Sets from 
> org.apache.jackrabbit.guava.common.collect. With the recent guava upgrade to 
> 33.0.0 in OAK-10605 in 1.61-SNAPSHOT, the custom repository bundle fails to 
> activate because the previous import-package bounds no longer match: 
> {{org.apache.jackrabbit.guava.common.collect;version=[32.1.3,33).}}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to