use of org.apache.jackrabbit.oak.spi.mount.Mount in project jackrabbit-oak by apache.
the class NodeMap method get.
public T get(MountedNodeStore nodeStore) {
if (!suppliers.containsKey(nodeStore)) {
Mount mount = nodeStore.getMount();
String mountName = mount.isDefault() ? "[default]" : mount.getName();
throw new IllegalStateException("Node is not available for the node store " + mountName);
}
return suppliers.get(nodeStore).get();
}
use of org.apache.jackrabbit.oak.spi.mount.Mount in project jackrabbit-oak by apache.
the class NodeStoreChecksService method visit.
private <T> void visit(Tree tree, MountedNodeStore mountedStore, ErrorHolder errorHolder, T context, MountedNodeStoreChecker<T> c) {
// a mounted NodeStore may contain more paths than what it owns, but since these are not accessible
// through the CompositeNodeStore skip them
Mount mount = mountedStore.getMount();
boolean under = mount.isUnder(tree.getPath());
boolean mounted = mount.isMounted(tree.getPath());
boolean keepGoing = true;
if (mounted) {
keepGoing = c.check(mountedStore, tree, errorHolder, context);
}
if ((mounted || under) && keepGoing) {
tree.getChildren().forEach(child -> visit(child, mountedStore, errorHolder, context, c));
}
}
use of org.apache.jackrabbit.oak.spi.mount.Mount in project jackrabbit-oak by apache.
the class PropertyIndexTest method mountWithCommitInWritableMount.
@Test
public void mountWithCommitInWritableMount() throws Exception {
NodeState root = INITIAL_CONTENT;
// Add index definition
NodeBuilder builder = root.builder();
NodeBuilder index = createIndexDefinition(builder.child(INDEX_DEFINITIONS_NAME), "foo", true, false, ImmutableSet.of("foo"), null);
index.setProperty("entryCount", -1);
NodeState before = builder.getNodeState();
// Add some content and process it through the property index hook
builder.child("content").setProperty("foo", "abc");
NodeState after = builder.getNodeState();
MountInfoProvider mip = Mounts.newBuilder().readOnlyMount("foo", "/readOnly").build();
CompositeHook hook = new CompositeHook(new EditorHook(new IndexUpdateProvider(new PropertyIndexEditorProvider().with(mip))), new EditorHook(new ValidatorProvider() {
protected Validator getRootValidator(NodeState before, NodeState after, CommitInfo info) {
return new PrivateStoreValidator("/", mip);
}
}));
NodeState indexed = hook.processCommit(before, after, CommitInfo.EMPTY);
Mount defMount = mip.getDefaultMount();
assertTrue(getNode(indexed, pathInIndex(defMount, "/oak:index/foo", "/content", "abc")).exists());
}
use of org.apache.jackrabbit.oak.spi.mount.Mount in project jackrabbit-oak by apache.
the class MountsNodeCounterTest method testMultipleMounts.
@Test
public void testMultipleMounts() throws CommitFailedException {
root.getTree("/oak:index/counter").setProperty("resolution", 1);
root.commit();
Tree rootTree = root.getTree("/");
Tree apps = rootTree.addChild("apps");
Tree libs = rootTree.addChild("libs");
Tree content = rootTree.addChild("content");
Tree nested = rootTree.addChild("nested");
Tree nestedMount = nested.addChild("mount");
Tree fragments = rootTree.addChild("var").addChild("fragments").addChild("oak:mount-libs");
addChildren(apps, 100);
addChildren(libs, 200);
addChildren(content, 400);
addChildren(nested, 800);
addChildren(nestedMount, 1600);
addChildren(fragments, 3200);
root.commit();
runAsyncIndex();
// leaves:
Mount defaultMount = mip.getDefaultMount();
Mount libsMount = mip.getMountByName("libs");
assertCountEquals(100, libsMount, "apps");
assertCountEquals(200, libsMount, "libs");
assertCountEquals(400, defaultMount, "content");
assertCountEquals(800, defaultMount, "nested");
assertCountEquals(1600, libsMount, "nested/mount");
assertCountEquals(3200, libsMount, "var");
assertCountEquals(3200, libsMount, "var/fragments");
assertCountEquals(3200, libsMount, "var/fragments/oak:mount-libs");
assertCountEquals(0, defaultMount, "var");
assertCountEquals(0, defaultMount, "var/fragments");
assertCountEquals(100 + 200 + 1600 + 3200, libsMount, "");
assertCountEquals(1600, libsMount, "nested");
}
use of org.apache.jackrabbit.oak.spi.mount.Mount in project jackrabbit-oak by apache.
the class DefaultIndexReaderFactory method createMountedReaders.
private List<LuceneIndexReader> createMountedReaders(IndexDefinition definition, NodeState defnState, String indexPath) throws IOException {
ImmutableList.Builder<LuceneIndexReader> readers = ImmutableList.builder();
LuceneIndexReader reader = createReader(mountInfoProvider.getDefaultMount(), definition, defnState, indexPath);
// support multiple readers
if (reader != null) {
readers.add(reader);
}
for (Mount m : mountInfoProvider.getNonDefaultMounts()) {
reader = createReader(m, definition, defnState, indexPath);
if (reader != null) {
readers.add(reader);
}
}
return readers.build();
}
Aggregations