[jira] [Commented] (OAK-10684) update maven-shade-plugin version to 3.5.2

2024-03-01 Thread Julian Reschke (Jira)


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

Julian Reschke commented on OAK-10684:
--

trunk: 
[4e92b7d870|https://github.com/apache/jackrabbit-oak-/commit/4e92b7d8703be8a46754710971012af8b2f8a6bb]

> update maven-shade-plugin version to 3.5.2
> --
>
> Key: OAK-10684
> URL: https://issues.apache.org/jira/browse/OAK-10684
> Project: Jackrabbit Oak
>  Issue Type: Task
>  Components: parent
>Reporter: Julian Reschke
>Assignee: Julian Reschke
>Priority: Minor
> Fix For: 1.62.0
>
>
> (previously defaulted)



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


[jira] [Resolved] (OAK-10684) update maven-shade-plugin version to 3.5.2

2024-03-01 Thread Julian Reschke (Jira)


 [ 
https://issues.apache.org/jira/browse/OAK-10684?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke resolved OAK-10684.
--
Fix Version/s: 1.62.0
   Resolution: Fixed

> update maven-shade-plugin version to 3.5.2
> --
>
> Key: OAK-10684
> URL: https://issues.apache.org/jira/browse/OAK-10684
> Project: Jackrabbit Oak
>  Issue Type: Task
>  Components: parent
>Reporter: Julian Reschke
>Assignee: Julian Reschke
>Priority: Minor
> Fix For: 1.62.0
>
>
> (previously defaulted)



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


[jira] [Updated] (OAK-10686) parent: add project.build.outputTimestamp property for Reproducable Builds

2024-03-01 Thread Julian Reschke (Jira)


 [ 
https://issues.apache.org/jira/browse/OAK-10686?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-10686:
-
Labels: candidate_oak_1_22  (was: )

> parent: add project.build.outputTimestamp property for Reproducable Builds
> --
>
> Key: OAK-10686
> URL: https://issues.apache.org/jira/browse/OAK-10686
> Project: Jackrabbit Oak
>  Issue Type: Task
>  Components: parent
>Reporter: Julian Reschke
>Assignee: Julian Reschke
>Priority: Minor
>  Labels: candidate_oak_1_22
>




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


[jira] [Created] (OAK-10686) parent: add project.build.outputTimestamp property for Reproducable Builds

2024-03-01 Thread Julian Reschke (Jira)
Julian Reschke created OAK-10686:


 Summary: parent: add project.build.outputTimestamp property for 
Reproducable Builds
 Key: OAK-10686
 URL: https://issues.apache.org/jira/browse/OAK-10686
 Project: Jackrabbit Oak
  Issue Type: Task
  Components: parent
Reporter: Julian Reschke
Assignee: Julian Reschke






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


[jira] [Commented] (OAK-10662) improve Reproducible Builds

2024-03-01 Thread Julian Reschke (Jira)


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

Julian Reschke commented on OAK-10662:
--

[~hboutemy] - I'm confused about the role of the scm/tag element. Yes, it's 
clearly incorrect, but then, it doesn't seem to matter? Maybe we could just 
remove it?

In any case, the current value was set by the release plugin:

  
https://github.com/apache/jackrabbit-oak/blame/ba989d762e8bdd242cd5d25d20390361f8a18365/oak-parent/pom.xml#L1344

Do we have a bug here?

> improve Reproducible Builds
> ---
>
> Key: OAK-10662
> URL: https://issues.apache.org/jira/browse/OAK-10662
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>Affects Versions: 1.60.0
>Reporter: Herve Boutemy
>Priority: Major
> Fix For: 1.62.0
>
>
> release 1.60.0 is quite good: 143 ok, 11 ko
> there are some easy fixes
> and probably harder ones later
> see
> https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/org/apache/jackrabbit/oak/README.md



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


[jira] [Resolved] (OAK-10655) Improve warning emitted for Unexpected changes performed on a non-default mount

2024-03-01 Thread Konrad Windszus (Jira)


 [ 
https://issues.apache.org/jira/browse/OAK-10655?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Konrad Windszus resolved OAK-10655.
---
Fix Version/s: 1.62.0
   Resolution: Fixed

Fixed in 
https://github.com/apache/jackrabbit-oak/commit/ba989d762e8bdd242cd5d25d20390361f8a18365.

> Improve warning emitted for Unexpected changes performed on a non-default 
> mount
> ---
>
> Key: OAK-10655
> URL: https://issues.apache.org/jira/browse/OAK-10655
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: composite
>Reporter: Konrad Windszus
>Assignee: Konrad Windszus
>Priority: Major
> Fix For: 1.62.0
>
>
> Currently the feature provided in OAK-9208 emits WARNs like the following
> {code}
> 5.02.2024 11:46:49.748 *WARN* [ResourceResolverFactory registration] 
> org.apache.jackrabbit.oak.composite.impl.NonDefaultMountWriteReportingObserver$ChangeReporter
>  Unexpected changes (38) performed on a non-default mount. Printing at most 
> 50_- /apps : Changed_- 
> java.lang.RuntimeException: null
>   at 
> org.apache.jackrabbit.oak.composite.impl.NonDefaultMountWriteReportingObserver$CountingDiff.report(NonDefaultMountWriteReportingObserver.java:106)
>   at 
> org.apache.jackrabbit.oak.composite.impl.NonDefaultMountWriteReportingObserver.contentChanged(NonDefaultMountWriteReportingObserver.java:88)
>   at 
> org.apache.jackrabbit.oak.spi.commit.CompositeObserver.contentChanged(CompositeObserver.java:51)
>   at 
> org.apache.jackrabbit.oak.spi.commit.ChangeDispatcher.contentChanged(ChangeDispatcher.java:79)
>   at 
> org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler$ObservableLockBasedScheduler.contentChanged(LockBasedScheduler.java:394)
>   at 
> org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.execute(LockBasedScheduler.java:303)
>   at 
> org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.schedule(LockBasedScheduler.java:270)
>   at 
> org.apache.jackrabbit.oak.segment.SegmentNodeStore.merge(SegmentNodeStore.java:211)
>   at 
> org.apache.jackrabbit.oak.core.MutableRoot.commit(MutableRoot.java:262)
>   at 
> org.apache.jackrabbit.oak.jcr.delegate.WorkspaceDelegate$WorkspaceCopy.perform(WorkspaceDelegate.java:130)
>   at 
> org.apache.jackrabbit.oak.jcr.delegate.WorkspaceDelegate.copy(WorkspaceDelegate.java:99)
>   at 
> org.apache.jackrabbit.oak.jcr.session.WorkspaceImpl$2.performVoid(WorkspaceImpl.java:163)
>   at 
> org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:299)
>   at 
> org.apache.jackrabbit.oak.jcr.session.WorkspaceImpl.copy(WorkspaceImpl.java:150)
>   at 
> org.apache.jackrabbit.oak.jcr.session.WorkspaceImpl.copy(WorkspaceImpl.java:132)
>   at 
> .
> {code}
> It would be useful to add a dedicated exception message to the throwable (or 
> prevent logging it) and indicate that this only indicates where the JCR 
> session has been committed.



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


[jira] [Commented] (OAK-10683) Update spring-boot dependency to version 2.7.18

2024-03-01 Thread Julian Reschke (Jira)


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

Julian Reschke commented on OAK-10683:
--

trunk: 
[8db0691ac4|https://github.com/apache/jackrabbit-oak-/commit/8db0691ac42e0b8d09ed76cf5273521acb5ac2c1]

> Update spring-boot dependency to version 2.7.18
> ---
>
> Key: OAK-10683
> URL: https://issues.apache.org/jira/browse/OAK-10683
> Project: Jackrabbit Oak
>  Issue Type: Task
>  Components: standalone
>Reporter: Manfred Baedke
>Assignee: Julian Reschke
>Priority: Minor
>  Labels: candidate_oak_1_22
> Fix For: 1.62.0
>
>




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


[jira] [Updated] (OAK-10683) Update spring-boot dependency to version 2.7.18

2024-03-01 Thread Julian Reschke (Jira)


 [ 
https://issues.apache.org/jira/browse/OAK-10683?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-10683:
-
Labels: candidate_oak_1_22  (was: )

> Update spring-boot dependency to version 2.7.18
> ---
>
> Key: OAK-10683
> URL: https://issues.apache.org/jira/browse/OAK-10683
> Project: Jackrabbit Oak
>  Issue Type: Task
>  Components: standalone
>Reporter: Manfred Baedke
>Assignee: Julian Reschke
>Priority: Minor
>  Labels: candidate_oak_1_22
> Fix For: 1.62.0
>
>




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


[jira] [Resolved] (OAK-10683) Update spring-boot dependency to version 2.7.18

2024-03-01 Thread Julian Reschke (Jira)


 [ 
https://issues.apache.org/jira/browse/OAK-10683?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke resolved OAK-10683.
--
Fix Version/s: 1.62.0
   Resolution: Fixed

> Update spring-boot dependency to version 2.7.18
> ---
>
> Key: OAK-10683
> URL: https://issues.apache.org/jira/browse/OAK-10683
> Project: Jackrabbit Oak
>  Issue Type: Task
>  Components: standalone
>Reporter: Manfred Baedke
>Assignee: Julian Reschke
>Priority: Minor
> Fix For: 1.62.0
>
>




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


[jira] [Updated] (OAK-10685) reduce overall usage of (shaded) Guava

2024-03-01 Thread Julian Reschke (Jira)


 [ 
https://issues.apache.org/jira/browse/OAK-10685?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-10685:
-
Description: 
{noformat}
for i in oak*/src/main ; do ( cd $i ; grep -h "import.*guava.*;"  -R $(find . 
-name "*.java")) ; done | sort | uniq -c | sort -n
{noformat}

currently yields

{noformat}
  1 import org.apache.jackrabbit.guava.common.base.CaseFormat;
  1 import org.apache.jackrabbit.guava.common.base.CharMatcher;
  1 import org.apache.jackrabbit.guava.common.collect.ClassToInstanceMap;
  1 import org.apache.jackrabbit.guava.common.collect.HashBiMap;
  1 import org.apache.jackrabbit.guava.common.collect.ImmutableListMultimap;
  1 import 
org.apache.jackrabbit.guava.common.collect.MutableClassToInstanceMap;
  1 import org.apache.jackrabbit.guava.common.escape.Escapers;
  1 import org.apache.jackrabbit.guava.common.graph.SuccessorsFunction;
  1 import org.apache.jackrabbit.guava.common.graph.Traverser;
  1 import org.apache.jackrabbit.guava.common.hash.Funnel;
  1 import org.apache.jackrabbit.guava.common.hash.Funnels;
  1 import org.apache.jackrabbit.guava.common.hash.HashCode;
  1 import org.apache.jackrabbit.guava.common.hash.PrimitiveSink;
  1 import org.apache.jackrabbit.guava.common.primitives.Chars;
  1 import org.apache.jackrabbit.guava.common.primitives.UnsignedBytes;
  1 import 
org.apache.jackrabbit.guava.common.util.concurrent.AbstractListeningExecutorService;
  1 import 
org.apache.jackrabbit.guava.common.util.concurrent.FutureCallback;
  1 import static 
org.apache.jackrabbit.guava.common.base.Preconditions.checkPositionIndex;
  1 import static 
org.apache.jackrabbit.guava.common.base.Predicates.alwaysTrue;
  1 import static org.apache.jackrabbit.guava.common.base.Predicates.isNull;
  1 import static 
org.apache.jackrabbit.guava.common.base.StandardSystemProperty.JAVA_IO_TMPDIR;
  1 import static 
org.apache.jackrabbit.guava.common.base.Strings.nullToEmpty;
  1 import static org.apache.jackrabbit.guava.common.base.Strings.repeat;
  1 import static 
org.apache.jackrabbit.guava.common.base.Throwables.getStackTraceAsString;
  1 import static 
org.apache.jackrabbit.guava.common.cache.CacheBuilder.newBuilder;
  1 import static 
org.apache.jackrabbit.guava.common.cache.RemovalCause.COLLECTED;
  1 import static 
org.apache.jackrabbit.guava.common.cache.RemovalCause.EXPIRED;
  1 import static 
org.apache.jackrabbit.guava.common.cache.RemovalCause.SIZE;
  1 import static 
org.apache.jackrabbit.guava.common.collect.Collections2.transform;
  1 import static 
org.apache.jackrabbit.guava.common.collect.ImmutableMap.copyOf;
  1 import static org.apache.jackrabbit.guava.common.collect.Iterables.all;
  1 import static 
org.apache.jackrabbit.guava.common.collect.Iterables.cycle;
  1 import static 
org.apache.jackrabbit.guava.common.collect.Iterables.elementsEqual;
  1 import static 
org.apache.jackrabbit.guava.common.collect.Iterables.limit;
  1 import static 
org.apache.jackrabbit.guava.common.collect.Iterables.mergeSorted;
  1 import static 
org.apache.jackrabbit.guava.common.collect.Iterators.partition;
  1 import static 
org.apache.jackrabbit.guava.common.collect.Iterators.peekingIterator;
  1 import static org.apache.jackrabbit.guava.common.collect.Iterators.size;
  1 import static 
org.apache.jackrabbit.guava.common.collect.Lists.newArrayListWithExpectedSize;
  1 import static 
org.apache.jackrabbit.guava.common.collect.Lists.newCopyOnWriteArrayList;
  1 import static 
org.apache.jackrabbit.guava.common.collect.Queues.newArrayBlockingQueue;
  1 import static 
org.apache.jackrabbit.guava.common.collect.Queues.newArrayDeque;
  1 import static org.apache.jackrabbit.guava.common.collect.Sets.filter;
  1 import static 
org.apache.jackrabbit.guava.common.collect.Sets.intersection;
  1 import static 
org.apache.jackrabbit.guava.common.escape.Escapers.builder;
  1 import static org.apache.jackrabbit.guava.common.io.ByteStreams.read;
  1 import static 
org.apache.jackrabbit.guava.common.io.FileWriteMode.APPEND;
  1 import static org.apache.jackrabbit.guava.common.io.Files.asByteSink;
  1 import static 
org.apache.jackrabbit.guava.common.math.DoubleMath.fuzzyCompare;
  1 import static 
org.apache.jackrabbit.guava.common.math.DoubleMath.fuzzyEquals;
  1 import static 
org.apache.jackrabbit.guava.common.util.concurrent.Atomics.newReference;
  2 import org.apache.jackrabbit.guava.common.annotations.VisibleForTesting;
  2 import org.apache.jackrabbit.guava.common.base.Throwables;
  2 import org.apache.jackrabbit.guava.common.cache.AbstractCache;
  2 import org.apache.jackrabbit.guava.common.collect.HashMultimap;
  2 import org.apache.jackrabbit.guava.common.collect.LinkedListMultimap;
  2 

[jira] [Updated] (OAK-10685) reduce overall usage of (shaded) Guava

2024-03-01 Thread Julian Reschke (Jira)


 [ 
https://issues.apache.org/jira/browse/OAK-10685?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-10685:
-
Description: 
{noformat}
for i in oak*/src/main ; do ( cd $i ; grep -h "import.*guava.*;"  -R $(find . 
-name "*.java")) ; done | sort | uniq -c | sort -n
{noformat}

currently yields

{noformat}
 40 import org.apache.jackrabbit.guava.common.base.CaseFormat;
 40 import org.apache.jackrabbit.guava.common.base.CharMatcher;
 40 import org.apache.jackrabbit.guava.common.collect.BiMap;
 40 import org.apache.jackrabbit.guava.common.collect.ClassToInstanceMap;
 40 import org.apache.jackrabbit.guava.common.collect.ContiguousSet;
 40 import org.apache.jackrabbit.guava.common.collect.DiscreteDomain;
 40 import org.apache.jackrabbit.guava.common.collect.ImmutableListMultimap;
 40 import 
org.apache.jackrabbit.guava.common.collect.MutableClassToInstanceMap;
 40 import org.apache.jackrabbit.guava.common.collect.Range;
 40 import org.apache.jackrabbit.guava.common.escape.Escapers;
 40 import org.apache.jackrabbit.guava.common.graph.SuccessorsFunction;
 40 import org.apache.jackrabbit.guava.common.graph.Traverser;
 40 import org.apache.jackrabbit.guava.common.hash.Funnel;
 40 import org.apache.jackrabbit.guava.common.hash.Funnels;
 40 import org.apache.jackrabbit.guava.common.hash.HashCode;
 40 import org.apache.jackrabbit.guava.common.hash.PrimitiveSink;
 40 import org.apache.jackrabbit.guava.common.primitives.Chars;
 40 import org.apache.jackrabbit.guava.common.primitives.UnsignedBytes;
 40 import org.apache.jackrabbit.guava.common.util.concurrent.Atomics;
 40 import 
org.apache.jackrabbit.guava.common.util.concurrent.ForwardingListenableFuture;
 40 import 
org.apache.jackrabbit.guava.common.util.concurrent.ForwardingListeningExecutorService;
 40 import static org.apache.jackrabbit.guava.common.base.Functions.compose;
 40 import static 
org.apache.jackrabbit.guava.common.base.Functions.constant;
 40 import static 
org.apache.jackrabbit.guava.common.base.Preconditions.checkNotNull;
 40 import static 
org.apache.jackrabbit.guava.common.base.Preconditions.checkPositionIndex;
 40 import static 
org.apache.jackrabbit.guava.common.base.Predicates.alwaysTrue;
 40 import static 
org.apache.jackrabbit.guava.common.base.Predicates.compose;
 40 import static org.apache.jackrabbit.guava.common.base.Predicates.isNull;
 40 import static 
org.apache.jackrabbit.guava.common.base.StandardSystemProperty.OS_NAME;
 40 import static 
org.apache.jackrabbit.guava.common.base.Strings.nullToEmpty;
 40 import static 
org.apache.jackrabbit.guava.common.base.Throwables.getStackTraceAsString;
 40 import static 
org.apache.jackrabbit.guava.common.cache.CacheBuilder.newBuilder;
 40 import static 
org.apache.jackrabbit.guava.common.cache.RemovalCause.COLLECTED;
 40 import static 
org.apache.jackrabbit.guava.common.cache.RemovalCause.EXPIRED;
 40 import static 
org.apache.jackrabbit.guava.common.cache.RemovalCause.SIZE;
 40 import static 
org.apache.jackrabbit.guava.common.collect.Collections2.transform;
 40 import static 
org.apache.jackrabbit.guava.common.collect.ImmutableMap.copyOf;
 40 import static org.apache.jackrabbit.guava.common.collect.Iterables.*;
 40 import static 
org.apache.jackrabbit.guava.common.collect.Iterables.mergeSorted;
 40 import static 
org.apache.jackrabbit.guava.common.collect.Iterators.partition;
 40 import static 
org.apache.jackrabbit.guava.common.collect.Iterators.peekingIterator;
 40 import static org.apache.jackrabbit.guava.common.collect.Iterators.size;
 40 import static org.apache.jackrabbit.guava.common.collect.Lists.asList;
 40 import static 
org.apache.jackrabbit.guava.common.collect.Lists.newArrayList;
 40 import static 
org.apache.jackrabbit.guava.common.collect.Lists.newArrayListWithExpectedSize;
 40 import static 
org.apache.jackrabbit.guava.common.collect.Lists.newCopyOnWriteArrayList;
 40 import static 
org.apache.jackrabbit.guava.common.collect.Lists.transform;
 40 import static 
org.apache.jackrabbit.guava.common.collect.Queues.newArrayBlockingQueue;
 40 import static 
org.apache.jackrabbit.guava.common.collect.Queues.newArrayDeque;
 40 import static org.apache.jackrabbit.guava.common.collect.Sets.filter;
 40 import static 
org.apache.jackrabbit.guava.common.collect.Sets.symmetricDifference;
 40 import static 
org.apache.jackrabbit.guava.common.escape.Escapers.builder;
 40 import static org.apache.jackrabbit.guava.common.io.ByteStreams.read;
 40 import static 
org.apache.jackrabbit.guava.common.io.FileWriteMode.APPEND;
 40 import static org.apache.jackrabbit.guava.common.io.Files.asByteSink;
 40 import static 
org.apache.jackrabbit.guava.common.math.DoubleMath.fuzzyCompare;
 40 import 

[jira] [Created] (OAK-10685) reduce overall usage of (shaded) Guava

2024-03-01 Thread Julian Reschke (Jira)
Julian Reschke created OAK-10685:


 Summary: reduce overall usage of (shaded) Guava
 Key: OAK-10685
 URL: https://issues.apache.org/jira/browse/OAK-10685
 Project: Jackrabbit Oak
  Issue Type: Task
Reporter: Julian Reschke


{noformat}
for i in oak*/src/main ; do grep -h "import.*guava.*"  -R $(find . -name 
"*.java") ; done | sort | uniq -c | sort -n
{noformat}

currently yields

{noformat}
 40 import org.apache.jackrabbit.guava.common.base.CaseFormat;
 40 import org.apache.jackrabbit.guava.common.base.CharMatcher;
 40 import org.apache.jackrabbit.guava.common.collect.BiMap;
 40 import org.apache.jackrabbit.guava.common.collect.ClassToInstanceMap;
 40 import org.apache.jackrabbit.guava.common.collect.ContiguousSet;
 40 import org.apache.jackrabbit.guava.common.collect.DiscreteDomain;
 40 import org.apache.jackrabbit.guava.common.collect.ImmutableListMultimap;
 40 import 
org.apache.jackrabbit.guava.common.collect.MutableClassToInstanceMap;
 40 import org.apache.jackrabbit.guava.common.collect.Range;
 40 import org.apache.jackrabbit.guava.common.escape.Escapers;
 40 import org.apache.jackrabbit.guava.common.graph.SuccessorsFunction;
 40 import org.apache.jackrabbit.guava.common.graph.Traverser;
 40 import org.apache.jackrabbit.guava.common.hash.Funnel;
 40 import org.apache.jackrabbit.guava.common.hash.Funnels;
 40 import org.apache.jackrabbit.guava.common.hash.HashCode;
 40 import org.apache.jackrabbit.guava.common.hash.PrimitiveSink;
 40 import org.apache.jackrabbit.guava.common.primitives.Chars;
 40 import org.apache.jackrabbit.guava.common.primitives.UnsignedBytes;
 40 import org.apache.jackrabbit.guava.common.util.concurrent.Atomics;
 40 import 
org.apache.jackrabbit.guava.common.util.concurrent.ForwardingListenableFuture;
 40 import 
org.apache.jackrabbit.guava.common.util.concurrent.ForwardingListeningExecutorService;
 40 import static org.apache.jackrabbit.guava.common.base.Functions.compose;
 40 import static 
org.apache.jackrabbit.guava.common.base.Functions.constant;
 40 import static 
org.apache.jackrabbit.guava.common.base.Preconditions.checkNotNull;
 40 import static 
org.apache.jackrabbit.guava.common.base.Preconditions.checkPositionIndex;
 40 import static 
org.apache.jackrabbit.guava.common.base.Predicates.alwaysTrue;
 40 import static 
org.apache.jackrabbit.guava.common.base.Predicates.compose;
 40 import static org.apache.jackrabbit.guava.common.base.Predicates.isNull;
 40 import static 
org.apache.jackrabbit.guava.common.base.StandardSystemProperty.OS_NAME;
 40 import static 
org.apache.jackrabbit.guava.common.base.Strings.nullToEmpty;
 40 import static 
org.apache.jackrabbit.guava.common.base.Throwables.getStackTraceAsString;
 40 import static 
org.apache.jackrabbit.guava.common.cache.CacheBuilder.newBuilder;
 40 import static 
org.apache.jackrabbit.guava.common.cache.RemovalCause.COLLECTED;
 40 import static 
org.apache.jackrabbit.guava.common.cache.RemovalCause.EXPIRED;
 40 import static 
org.apache.jackrabbit.guava.common.cache.RemovalCause.SIZE;
 40 import static 
org.apache.jackrabbit.guava.common.collect.Collections2.transform;
 40 import static 
org.apache.jackrabbit.guava.common.collect.ImmutableMap.copyOf;
 40 import static org.apache.jackrabbit.guava.common.collect.Iterables.*;
 40 import static 
org.apache.jackrabbit.guava.common.collect.Iterables.mergeSorted;
 40 import static 
org.apache.jackrabbit.guava.common.collect.Iterators.partition;
 40 import static 
org.apache.jackrabbit.guava.common.collect.Iterators.peekingIterator;
 40 import static org.apache.jackrabbit.guava.common.collect.Iterators.size;
 40 import static org.apache.jackrabbit.guava.common.collect.Lists.asList;
 40 import static 
org.apache.jackrabbit.guava.common.collect.Lists.newArrayList;
 40 import static 
org.apache.jackrabbit.guava.common.collect.Lists.newArrayListWithExpectedSize;
 40 import static 
org.apache.jackrabbit.guava.common.collect.Lists.newCopyOnWriteArrayList;
 40 import static 
org.apache.jackrabbit.guava.common.collect.Lists.transform;
 40 import static 
org.apache.jackrabbit.guava.common.collect.Queues.newArrayBlockingQueue;
 40 import static 
org.apache.jackrabbit.guava.common.collect.Queues.newArrayDeque;
 40 import static org.apache.jackrabbit.guava.common.collect.Sets.filter;
 40 import static 
org.apache.jackrabbit.guava.common.collect.Sets.symmetricDifference;
 40 import static 
org.apache.jackrabbit.guava.common.escape.Escapers.builder;
 40 import static org.apache.jackrabbit.guava.common.io.ByteStreams.read;
 40 import static 
org.apache.jackrabbit.guava.common.io.FileWriteMode.APPEND;
 40 import static 

[jira] [Commented] (OAK-10674) DocumentStore: verify that we could use Oak's Bloom filter

2024-03-01 Thread Julian Reschke (Jira)


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

Julian Reschke commented on OAK-10674:
--

Sounds good.

We should minimize the effort required to switch away from Guava...


> DocumentStore: verify that we could use Oak's Bloom filter
> --
>
> Key: OAK-10674
> URL: https://issues.apache.org/jira/browse/OAK-10674
> Project: Jackrabbit Oak
>  Issue Type: Task
>  Components: documentmk
>Reporter: Julian Reschke
>Priority: Major
>
> Test that we can use 
> oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/utils/BloomFilter.java
>  (for now, by copying it over).
> Then decide about where to move it, and whether API changes are desired.



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


[jira] [Comment Edited] (OAK-10674) DocumentStore: verify that we could use Oak's Bloom filter

2024-03-01 Thread Thomas Mueller (Jira)


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

Thomas Mueller edited comment on OAK-10674 at 3/1/24 1:44 PM:
--

[~reschke] best would be to move over 
org.apache.jackrabbit.oak.index.indexer.document.flatfile.analysis.utils.Hash 
as well. And then we can add a convenience methods:

{noformat}
/**
 * Add an entry. This internally uses the hashCode() method to derive a
 * high-quality hash code.
 *
 * @param obj the object (must not be null)
 */
public void add(@NotNull Object obj) {
add(Hash.hash64(obj.hashCode()));
}

/**
 * Whether the entry may be in the set. This internally uses the hashCode()
 * method to derive a high-quality hash code.
 * 
 * @param obj the object (must not be null)
 * @return true if the entry was added, or, with a certain false positive
 * probability, even if it was not added
 */
public boolean mayContain(@NotNull Object obj) {
return mayContain(Hash.hash64(obj.hashCode()));
}
{noformat}




was (Author: tmueller):
[~reschke] best would be to move over 
org.apache.jackrabbit.oak.index.indexer.document.flatfile.analysis.utils.Hash 
as well. And then we can add a convenience methods:

{noformat}
/**
 * Add an entry. This internally uses the hashCode() method to derive a
 * high-quality hash code.
 *
 * @param obj the object (must not be null)
 */
public void add(@NotNull Object obj) {
add(Hash.hash64(obj.hashCode()));
}

/**
 * Whether the entry may be in the set.
 * 
 * @param hash the hash value (need to be a high quality hash code, with all
 * bits having high entropy)
 * @return true if the entry was added, or, with a certain false positive
 * probability, even if it was not added
 */
public boolean mayContain(@NotNull Object obj) {
return mayContain(Hash.hash64(obj.hashCode()));
}
{noformat}



> DocumentStore: verify that we could use Oak's Bloom filter
> --
>
> Key: OAK-10674
> URL: https://issues.apache.org/jira/browse/OAK-10674
> Project: Jackrabbit Oak
>  Issue Type: Task
>  Components: documentmk
>Reporter: Julian Reschke
>Priority: Major
>
> Test that we can use 
> oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/utils/BloomFilter.java
>  (for now, by copying it over).
> Then decide about where to move it, and whether API changes are desired.



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


[jira] [Comment Edited] (OAK-10674) DocumentStore: verify that we could use Oak's Bloom filter

2024-03-01 Thread Thomas Mueller (Jira)


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

Thomas Mueller edited comment on OAK-10674 at 3/1/24 1:44 PM:
--

[~reschke] best would be to move over 
org.apache.jackrabbit.oak.index.indexer.document.flatfile.analysis.utils.Hash 
as well. And then we can add a convenience methods:

{noformat}
/**
 * Add an entry. This internally uses the hashCode() method to derive a
 * high-quality hash code.
 *
 * @param obj the object (must not be null)
 */
public void add(@NotNull Object obj) {
add(Hash.hash64(obj.hashCode()));
}

/**
 * Whether the entry may be in the set. This internally uses the hashCode()
 * method to derive a high-quality hash code.
 * 
 * @param obj the object (must not be null)
 * @return true if the entry was added, or, with a certain false positive
 * probability, even if it was not added
 */
public boolean mayContain(@NotNull Object obj) {
return mayContain(Hash.hash64(obj.hashCode()));
}
{noformat}

I can work on this, no issue. We need to also move over some tests.




was (Author: tmueller):
[~reschke] best would be to move over 
org.apache.jackrabbit.oak.index.indexer.document.flatfile.analysis.utils.Hash 
as well. And then we can add a convenience methods:

{noformat}
/**
 * Add an entry. This internally uses the hashCode() method to derive a
 * high-quality hash code.
 *
 * @param obj the object (must not be null)
 */
public void add(@NotNull Object obj) {
add(Hash.hash64(obj.hashCode()));
}

/**
 * Whether the entry may be in the set. This internally uses the hashCode()
 * method to derive a high-quality hash code.
 * 
 * @param obj the object (must not be null)
 * @return true if the entry was added, or, with a certain false positive
 * probability, even if it was not added
 */
public boolean mayContain(@NotNull Object obj) {
return mayContain(Hash.hash64(obj.hashCode()));
}
{noformat}



> DocumentStore: verify that we could use Oak's Bloom filter
> --
>
> Key: OAK-10674
> URL: https://issues.apache.org/jira/browse/OAK-10674
> Project: Jackrabbit Oak
>  Issue Type: Task
>  Components: documentmk
>Reporter: Julian Reschke
>Priority: Major
>
> Test that we can use 
> oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/utils/BloomFilter.java
>  (for now, by copying it over).
> Then decide about where to move it, and whether API changes are desired.



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


[jira] [Comment Edited] (OAK-10674) DocumentStore: verify that we could use Oak's Bloom filter

2024-03-01 Thread Thomas Mueller (Jira)


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

Thomas Mueller edited comment on OAK-10674 at 3/1/24 1:43 PM:
--

[~reschke] best would be to move over 
org.apache.jackrabbit.oak.index.indexer.document.flatfile.analysis.utils.Hash 
as well. And then we can add a convenience methods:

{noformat}
/**
 * Add an entry. This internally uses the hashCode() method to derive a
 * high-quality hash code.
 *
 * @param obj the object (must not be null)
 */
public void add(@NotNull Object obj) {
add(Hash.hash64(obj.hashCode()));
}

/**
 * Whether the entry may be in the set.
 * 
 * @param hash the hash value (need to be a high quality hash code, with all
 * bits having high entropy)
 * @return true if the entry was added, or, with a certain false positive
 * probability, even if it was not added
 */
public boolean mayContain(@NotNull Object obj) {
return mayContain(Hash.hash64(obj.hashCode()));
}
{noformat}




was (Author: tmueller):
[~reschke] best would be to move over 
org.apache.jackrabbit.oak.index.indexer.document.flatfile.analysis.utils.Hash 
as well. And then we can add a convenience methods:

{noformat}
/**
 * Add an entry. This internally uses the hashCode() method to derive a
 * high-quality hash code.
 *
 * @param obj the object (must not be null)
 */
public void add(@NotNull Object obj) {
add(Hash.hash64(obj.hashCode()));
}

/**
 * Whether the entry may be in the set.
 * 
 * @param hash the hash value (need to be a high quality hash code, with all
 * bits having high entropy)
 * @return true if the entry was added, or, with a certain false positive
 * probability, even if it was not added
 */
public boolean mayContain(@NotNull Object obj) {
return mayContain(obj.hashCode());
}
{noformat}



> DocumentStore: verify that we could use Oak's Bloom filter
> --
>
> Key: OAK-10674
> URL: https://issues.apache.org/jira/browse/OAK-10674
> Project: Jackrabbit Oak
>  Issue Type: Task
>  Components: documentmk
>Reporter: Julian Reschke
>Priority: Major
>
> Test that we can use 
> oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/utils/BloomFilter.java
>  (for now, by copying it over).
> Then decide about where to move it, and whether API changes are desired.



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


[jira] [Commented] (OAK-10674) DocumentStore: verify that we could use Oak's Bloom filter

2024-03-01 Thread Thomas Mueller (Jira)


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

Thomas Mueller commented on OAK-10674:
--

[~reschke] best would be to move over 
org.apache.jackrabbit.oak.index.indexer.document.flatfile.analysis.utils.Hash 
as well. And then we can add a convenience methods:

{noformat}
/**
 * Add an entry. This internally uses the hashCode() method to derive a
 * high-quality hash code.
 *
 * @param obj the object (must not be null)
 */
public void add(@NotNull Object obj) {
add(Hash.hash64(obj.hashCode()));
}

/**
 * Whether the entry may be in the set.
 * 
 * @param hash the hash value (need to be a high quality hash code, with all
 * bits having high entropy)
 * @return true if the entry was added, or, with a certain false positive
 * probability, even if it was not added
 */
public boolean mayContain(@NotNull Object obj) {
return mayContain(obj.hashCode());
}
{noformat}



> DocumentStore: verify that we could use Oak's Bloom filter
> --
>
> Key: OAK-10674
> URL: https://issues.apache.org/jira/browse/OAK-10674
> Project: Jackrabbit Oak
>  Issue Type: Task
>  Components: documentmk
>Reporter: Julian Reschke
>Priority: Major
>
> Test that we can use 
> oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/utils/BloomFilter.java
>  (for now, by copying it over).
> Then decide about where to move it, and whether API changes are desired.



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


[jira] [Assigned] (OAK-10684) update maven-shade-plugin version to 3.5.2

2024-03-01 Thread Julian Reschke (Jira)


 [ 
https://issues.apache.org/jira/browse/OAK-10684?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke reassigned OAK-10684:


Assignee: Julian Reschke

> update maven-shade-plugin version to 3.5.2
> --
>
> Key: OAK-10684
> URL: https://issues.apache.org/jira/browse/OAK-10684
> Project: Jackrabbit Oak
>  Issue Type: Task
>  Components: parent
>Reporter: Julian Reschke
>Assignee: Julian Reschke
>Priority: Minor
>
> (previously defaulted)



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


[jira] [Created] (OAK-10684) update maven-shade-plugin version to 3.5.2

2024-03-01 Thread Julian Reschke (Jira)
Julian Reschke created OAK-10684:


 Summary: update maven-shade-plugin version to 3.5.2
 Key: OAK-10684
 URL: https://issues.apache.org/jira/browse/OAK-10684
 Project: Jackrabbit Oak
  Issue Type: Task
  Components: parent
Reporter: Julian Reschke


(previously defaulted)



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


[jira] [Commented] (OAK-10680) tests failures with com.arakelian/docker-junit-rule

2024-03-01 Thread Manfred Baedke (Jira)


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

Manfred Baedke commented on OAK-10680:
--

PR#1336 moves to Testcontainers

> tests failures with com.arakelian/docker-junit-rule
> ---
>
> Key: OAK-10680
> URL: https://issues.apache.org/jira/browse/OAK-10680
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: documentmk, segment-azure
>Affects Versions: 1.22.18
>Reporter: Julian Reschke
>Assignee: Manfred Baedke
>Priority: Major
>
> Tests have started to fail, probably because the ancient version of 
> com.arakelian/docker-junit-rule does not work properly with recent Docker 
> versions.
> A potential fix would be to backport OAK-10464 to the maintenance branch.



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


[jira] [Created] (OAK-10683) Update spring-boot dependency to version 2.7.18

2024-03-01 Thread Julian Reschke (Jira)
Julian Reschke created OAK-10683:


 Summary: Update spring-boot dependency to version 2.7.18
 Key: OAK-10683
 URL: https://issues.apache.org/jira/browse/OAK-10683
 Project: Jackrabbit Oak
  Issue Type: Task
  Components: standalone
Reporter: Manfred Baedke
Assignee: Manfred Baedke
 Fix For: 1.54.0






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


[jira] [Assigned] (OAK-10683) Update spring-boot dependency to version 2.7.18

2024-03-01 Thread Julian Reschke (Jira)


 [ 
https://issues.apache.org/jira/browse/OAK-10683?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke reassigned OAK-10683:


Assignee: Julian Reschke  (was: Manfred Baedke)

> Update spring-boot dependency to version 2.7.18
> ---
>
> Key: OAK-10683
> URL: https://issues.apache.org/jira/browse/OAK-10683
> Project: Jackrabbit Oak
>  Issue Type: Task
>  Components: standalone
>Reporter: Manfred Baedke
>Assignee: Julian Reschke
>Priority: Minor
> Fix For: 1.54.0
>
>




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


[jira] [Updated] (OAK-10683) Update spring-boot dependency to version 2.7.18

2024-03-01 Thread Julian Reschke (Jira)


 [ 
https://issues.apache.org/jira/browse/OAK-10683?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-10683:
-
Fix Version/s: (was: 1.54.0)

> Update spring-boot dependency to version 2.7.18
> ---
>
> Key: OAK-10683
> URL: https://issues.apache.org/jira/browse/OAK-10683
> Project: Jackrabbit Oak
>  Issue Type: Task
>  Components: standalone
>Reporter: Manfred Baedke
>Assignee: Julian Reschke
>Priority: Minor
>




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


[jira] [Created] (OAK-10682) [Indexing job] Improve Mongo regex filter to only use positive conditions (no negations)

2024-03-01 Thread Nuno Santos (Jira)
Nuno Santos created OAK-10682:
-

 Summary: [Indexing job] Improve Mongo regex filter to only use 
positive conditions (no negations)
 Key: OAK-10682
 URL: https://issues.apache.org/jira/browse/OAK-10682
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: indexing
 Environment: The current implementation of filtering excluded paths 
and custom regex is using a condition like
{noformat}
{ _id:  { $nin: [ /^[0-9]{1,3}:\/content\/dam\/.*$/ ]} {noformat}
Mongo cannot evaluate this condition without retrieving the full document, 
because a value of {{_null}} would also match this condition and the index does 
not contain {{null}} values. Therefore, when the index contains excluded paths, 
the download will be much slower because Mongo has to retrieve every single 
document to evaluate the condition.

As a workaround, we can transform the regex on an equivalent one that matches 
the complement of the original regex using [negative 
lookahead|https://stackoverflow.com/questions/1240275/how-to-negate-specific-word-in-regex].
 This allows rewriting the filter condition using only positive conditions, 
which can be evaluated using only the index.
Reporter: Nuno Santos






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


[jira] [Created] (OAK-10681) [indexing job] Support custom filters of paths on Mongo

2024-03-01 Thread Nuno Santos (Jira)
Nuno Santos created OAK-10681:
-

 Summary: [indexing job] Support custom filters of paths on Mongo
 Key: OAK-10681
 URL: https://issues.apache.org/jira/browse/OAK-10681
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: indexing
Reporter: Nuno Santos


The indexing job often has to download parts of the Oak tree that are not 
needed for the indexes being indexed. The index definitions can define 
included/excludedPaths to control which parts of the tree to index and the 
indexing job uses this to filter on Mongo the documents that should be sent. 
But often there are subtrees in Oak that are not needed for indexing but are 
not excluded by the index definitions, for instance, subtrees with hidden 
binary data.

This task is to add a configuration option to Oak to specify a list of subtrees 
that should not be downloaded in any case, for instance:
{noformat}
customExcludedPaths = "/foo;/tmp/bar" {noformat}
 



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


[jira] [Assigned] (OAK-10464) Use Testcontainers instead of com.arakelian:docker-junit-rule

2024-03-01 Thread Manfred Baedke (Jira)


 [ 
https://issues.apache.org/jira/browse/OAK-10464?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Manfred Baedke reassigned OAK-10464:


Assignee: (was: Manfred Baedke)

> Use Testcontainers instead of com.arakelian:docker-junit-rule
> -
>
> Key: OAK-10464
> URL: https://issues.apache.org/jira/browse/OAK-10464
> Project: Jackrabbit Oak
>  Issue Type: Task
>  Components: test
>Reporter: Miroslav Smiljanic
>Priority: Major
>  Labels: candidate_oak_1_22
> Fix For: 1.60.0
>
>
> com.arakelian:docker-junit-rule embeds Spotify docker client, and that one 
> has an issue running on Apple silicon
> [https://github.com/spotify/dockerfile-maven/issues/394]
> We should switch to Testcontainers.
> [https://github.com/apache/jackrabbit-oak/blob/jackrabbit-oak-1.56.0/oak-blob-cloud-azure/src/test/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzuriteDockerRule.java]
>  
> [https://github.com/apache/jackrabbit-oak/blob/jackrabbit-oak-1.56.0/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDockerRule.java]
>  
>  



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


[jira] [Assigned] (OAK-10464) Use Testcontainers instead of com.arakelian:docker-junit-rule

2024-03-01 Thread Manfred Baedke (Jira)


 [ 
https://issues.apache.org/jira/browse/OAK-10464?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Manfred Baedke reassigned OAK-10464:


Assignee: Manfred Baedke

> Use Testcontainers instead of com.arakelian:docker-junit-rule
> -
>
> Key: OAK-10464
> URL: https://issues.apache.org/jira/browse/OAK-10464
> Project: Jackrabbit Oak
>  Issue Type: Task
>  Components: test
>Reporter: Miroslav Smiljanic
>Assignee: Manfred Baedke
>Priority: Major
>  Labels: candidate_oak_1_22
> Fix For: 1.60.0
>
>
> com.arakelian:docker-junit-rule embeds Spotify docker client, and that one 
> has an issue running on Apple silicon
> [https://github.com/spotify/dockerfile-maven/issues/394]
> We should switch to Testcontainers.
> [https://github.com/apache/jackrabbit-oak/blob/jackrabbit-oak-1.56.0/oak-blob-cloud-azure/src/test/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzuriteDockerRule.java]
>  
> [https://github.com/apache/jackrabbit-oak/blob/jackrabbit-oak-1.56.0/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDockerRule.java]
>  
>  



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