[ 
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)

Reply via email to