Search in sources :

Example 16 with Mount

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();
}
Also used : Mount(org.apache.jackrabbit.oak.spi.mount.Mount)

Example 17 with Mount

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));
    }
}
Also used : Mount(org.apache.jackrabbit.oak.spi.mount.Mount)

Example 18 with Mount

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());
}
Also used : CompositeHook(org.apache.jackrabbit.oak.spi.commit.CompositeHook) IndexUpdateProvider(org.apache.jackrabbit.oak.plugins.index.IndexUpdateProvider) EmptyNodeState(org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState) NodeState(org.apache.jackrabbit.oak.spi.state.NodeState) EditorHook(org.apache.jackrabbit.oak.spi.commit.EditorHook) Mount(org.apache.jackrabbit.oak.spi.mount.Mount) CommitInfo(org.apache.jackrabbit.oak.spi.commit.CommitInfo) NodeBuilder(org.apache.jackrabbit.oak.spi.state.NodeBuilder) MountInfoProvider(org.apache.jackrabbit.oak.spi.mount.MountInfoProvider) ValidatorProvider(org.apache.jackrabbit.oak.spi.commit.ValidatorProvider) Test(org.junit.Test)

Example 19 with Mount

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");
}
Also used : Mount(org.apache.jackrabbit.oak.spi.mount.Mount) Tree(org.apache.jackrabbit.oak.api.Tree) Test(org.junit.Test)

Example 20 with Mount

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();
}
Also used : ImmutableList(com.google.common.collect.ImmutableList) Mount(org.apache.jackrabbit.oak.spi.mount.Mount)

Aggregations

Mount (org.apache.jackrabbit.oak.spi.mount.Mount)22 Test (org.junit.Test)9 MountInfoProvider (org.apache.jackrabbit.oak.spi.mount.MountInfoProvider)7 NodeBuilder (org.apache.jackrabbit.oak.spi.state.NodeBuilder)5 Map (java.util.Map)3 PropertyState (org.apache.jackrabbit.oak.api.PropertyState)3 NodeState (org.apache.jackrabbit.oak.spi.state.NodeState)3 HashMap (java.util.HashMap)2 HashSet (java.util.HashSet)2 Tree (org.apache.jackrabbit.oak.api.Tree)2 IndexUpdateProvider (org.apache.jackrabbit.oak.plugins.index.IndexUpdateProvider)2 EmptyNodeState (org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState)2 EditorHook (org.apache.jackrabbit.oak.spi.commit.EditorHook)2 Mounts.defaultMountInfoProvider (org.apache.jackrabbit.oak.spi.mount.Mounts.defaultMountInfoProvider)2 SimpleMountInfoProvider (org.apache.jackrabbit.oak.spi.mount.SimpleMountInfoProvider)2 ImmutableList (com.google.common.collect.ImmutableList)1 Maps.newHashMap (com.google.common.collect.Maps.newHashMap)1 Sets.newIdentityHashSet (com.google.common.collect.Sets.newIdentityHashSet)1 Principal (java.security.Principal)1 Collection (java.util.Collection)1