[
https://issues.apache.org/jira/browse/SLING-12452?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17890467#comment-17890467
]
Robert Munteanu commented on SLING-12452:
-----------------------------------------
I went down the rabbit hole of surgically embedding the oak-lucene dependencies
that we need but gave up as I already have a large import list and still get
errors. I think that using {{Private-Package}} is also not the right approach
because we'll pull in a large number of imports
{noformat}
diff --git a/bnd.bnd b/bnd.bnd
index 846902f..86a349f 100644
--- a/bnd.bnd
+++ b/bnd.bnd
@@ -8,11 +8,27 @@ Import-Package:\
org.apache.jackrabbit.oak.spi.security.principal;version="[1.5,3)",\
org.apache.jackrabbit.test;resolution:=optional,\
org.apache.jackrabbit.oak.spi.query;version="[1.7,4)", \
+ !org.checkerframework.checker.nullness.qual,\
+ !org.apache.jackrabbit.guava.errorprone.annotations,\
+ !org.apache.jackrabbit.guava.errorprone.annotations.concurrent,\
*
Provide-Capability:\
osgi.service;objectClass:List<String>="java.util.concurrent.Executor,org.apache.sling.commons.threads.ThreadPool"
+ -includeresource:\
+
@oak-lucene-*.jar!/org/apache/jackrabbit/oak/plugins/index/lucene/util/LuceneIndexHelper.*,\
+
@oak-search-*.jar!/org/apache/jackrabbit/oak/plugins/index/search/util/IndexHelper.*,\
+
@oak-shaded-guava-*.jar!/org/apache/jackrabbit/guava/common/base/Preconditions.*,\
+
@oak-shaded-guava-*.jar!/org/apache/jackrabbit/guava/common/base/Function.*,\
+
@oak-shaded-guava-*.jar!/org/apache/jackrabbit/guava/common/base/Converter.*,\
+
@oak-shaded-guava-*.jar!/org/apache/jackrabbit/guava/common/collect/*Immutable*,\
+
@oak-shaded-guava-*.jar!/org/apache/jackrabbit/guava/common/collect/Hashing.*,\
+ @oak-shaded-guava-*.jar!/org/apache/jackrabbit/guava/common/collect/Sets*,\
+ @oak-shaded-guava-*.jar!/org/apache/jackrabbit/guava/common/collect/Map*,\
+ @oak-shaded-guava-*.jar!/org/apache/jackrabbit/guava/common/collect/BiMap*,\
+
@oak-shaded-guava-*.jar!/org/apache/jackrabbit/guava/common/collect/UnmodifiableIterator.*
+
-removeheaders:\
Include-Resource,\
Private-Package
diff --git
a/src/test/java/org/apache/sling/jcr/oak/server/it/OakServerTestSupport.java
b/src/test/java/org/apache/sling/jcr/oak/server/it/OakServerTestSupport.java
index 8206641..d6b4eff 100644
--- a/src/test/java/org/apache/sling/jcr/oak/server/it/OakServerTestSupport.java
+++ b/src/test/java/org/apache/sling/jcr/oak/server/it/OakServerTestSupport.java
@@ -177,8 +177,6 @@ public abstract class OakServerTestSupport extends
TestSupport {
return new Option[]{
baseConfiguration(),
quickstart(),
- mavenBundle("org.apache.jackrabbit", "oak-lucene", "1.56.0"), //
needed for LuceneIndexHelper
- mavenBundle("org.apache.jackrabbit", "oak-store-document",
"1.56.0"), // needed by oak-lucene
// Sling JCR Oak Server
testBundle("bundle.filename"),
};
{noformat}
> Investigate removing embeding of Oak classes
> --------------------------------------------
>
> Key: SLING-12452
> URL: https://issues.apache.org/jira/browse/SLING-12452
> Project: Sling
> Issue Type: Improvement
> Components: Oak
> Reporter: Robert Munteanu
> Assignee: Robert Munteanu
> Priority: Major
> Fix For: JCR Oak Server 1.4.2
>
> Attachments: oak-server-bnd-report.txt
>
>
> The current version of the oak-server bundle currently embeds two oak classes
> {noformat}$ jar tf target/org.apache.sling.jcr.oak.server-1.4.1-SNAPSHOT.jar
> | grep -E 'jackrabbit.*class'
> org/apache/jackrabbit/oak/plugins/index/lucene/util/LuceneIndexHelper.class
> org/apache/jackrabbit/oak/plugins/index/search/util/IndexHelper.class
> {noformat}
> These classes seem to be responsible for pulling in the shaded Guava imports
> which make upgrading to new Oak version harder.
> Using {{bnd print --full
> target/org.apache.sling.jcr.oak.server-1.4.1-SNAPSHOT.jar}} I noticed the
> following usage report
> {noformat}[USEDBY]
> (...)
> org.apache.jackrabbit.guava.common.base
> org.apache.jackrabbit.oak.plugins.index.lucene.util
>
> org.apache.jackrabbit.oak.plugins.index.search.util
> org.apache.jackrabbit.guava.common.collect
> org.apache.jackrabbit.oak.plugins.index.search.util
> {noformat}
> If we could stop embedding the Oak classes the Guava imports should no longer
> be required.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)