@Version(value="0.3.0")
See: Description
| Interface | Description |
|---|---|
| CompositeNodeStoreMonitor | |
| CompositeNodeStoreStatsMBean |
| Class | Description |
|---|---|
| CompositeCheckpointMBean | |
| CompositeNodeStore | |
| CompositeNodeStore.Builder | |
| CompositeNodeStoreService | |
| CompositeNodeStoreStats | |
| CrossMountReferenceValidator | |
| CrossMountReferenceValidatorProvider |
Validator which detects references crossing the mount boundaries |
| InitialContentMigrator | |
| ModifiedPathDiff | |
| MountedNodeStore | |
| MountInfoProviderService | |
| NodeMap<T> | |
| PrivateStoreValidatorProvider |
Validator which detects change commits to the read only mounts. |
| StringCache |
This class caches the path strings used in the CompositeNodeState to avoid
keeping too many strings in the memory.
|
This package contains support classes for implementing a composite persistence at the NodeStore level.
The main entry point is the CompositeNodeStore,
which wraps one or more NodeStore instances. Also of interest are the CompositeNodeState and CompositeNodeBuilder.
These classes maintain internal mappings of the 'native' objects. For instance, if the composite NodeStore holds two MemoryNodeStore instances, then a call to NodeStore.getRoot() will return a composite NodeState backed by two MemoryNodeState instances. Similarly, a call to NodeState.builder() will return a composite NodeBuilder backed by two MemoryNodeState instances.
Using this approach allows us to always keep related NodeStore, NodeState and NodeBuilder instances isolated from other instances.
1. Brute-force support for oak:mount nodes.
The Mount.getPathFragmentName() method defines
a name pattern that can be used by mounted stores to contribute to a patch which is not
owned by them. For instance, a mount named apps which owns /libs,/apps
can own another subtree anywhere in the repository given that a node named :oak-mount-apps
is found.
The current implementation naively queries all stores whenever the child node list is prepared.
This is obviously correct but may be slow.
CompositionContext.getContributingStores(java.lang.String, java.util.function.Function)
Copyright © 2010 - 2023 Adobe. All Rights Reserved