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 - 2020 Adobe. All Rights Reserved