Search in sources :

Example 1 with Mount

use of org.apache.jackrabbit.oak.spi.mount.Mount in project jackrabbit-oak by apache.

the class SimpleMountInfoProviderTest method nonDefaultMounts.

@Test
public void nonDefaultMounts() throws Exception {
    MountInfoProvider mip = Mounts.newBuilder().mount("foo", "/a", "/b").mount("bar", "/x", "/y").build();
    Collection<Mount> mounts = mip.getNonDefaultMounts();
    assertEquals(2, mounts.size());
    assertFalse(mounts.contains(mip.getDefaultMount()));
    assertNotNull(mip.getMountByName("foo"));
    assertNotNull(mip.getMountByName("bar"));
    assertNull(mip.getMountByName("boom"));
}
Also used : Mount(org.apache.jackrabbit.oak.spi.mount.Mount) MountInfoProvider(org.apache.jackrabbit.oak.spi.mount.MountInfoProvider) SimpleMountInfoProvider(org.apache.jackrabbit.oak.spi.mount.SimpleMountInfoProvider) Test(org.junit.Test)

Example 2 with Mount

use of org.apache.jackrabbit.oak.spi.mount.Mount in project jackrabbit-oak by apache.

the class MountInfoProviderServiceTest method mountWithConfig_Paths.

@Test
public void mountWithConfig_Paths() throws Exception {
    MockOsgi.activate(service, context.bundleContext(), ImmutableMap.<String, Object>of("mountedPaths", new String[] { "/a", "/b" }));
    MountInfoProvider provider = context.getService(MountInfoProvider.class);
    assertEquals(1, provider.getNonDefaultMounts().size());
    Mount m = provider.getMountByName(MountInfoProviderService.PROP_MOUNT_NAME_DEFAULT);
    assertNotNull(m);
    Mount defMount = provider.getDefaultMount();
    assertNotNull(defMount);
    assertFalse(m.isReadOnly());
    assertEquals(m, provider.getMountByPath("/a"));
    assertEquals(defMount, provider.getMountByPath("/x"));
}
Also used : Mount(org.apache.jackrabbit.oak.spi.mount.Mount) MountInfoProvider(org.apache.jackrabbit.oak.spi.mount.MountInfoProvider) Mounts.defaultMountInfoProvider(org.apache.jackrabbit.oak.spi.mount.Mounts.defaultMountInfoProvider) Test(org.junit.Test)

Example 3 with Mount

use of org.apache.jackrabbit.oak.spi.mount.Mount in project jackrabbit-oak by apache.

the class NodeCounterEditor method leaveOld.

private void leaveOld(NodeState before, NodeState after) throws CommitFailedException {
    if (countOffsets.isEmpty()) {
        return;
    }
    boolean updated = false;
    for (Map.Entry<Mount, Integer> e : countOffsets.entrySet()) {
        long offset = ApproximateCounter.calculateOffset(e.getValue(), root.resolution);
        if (offset == 0) {
            continue;
        }
        // only read the value of the property if really needed
        NodeBuilder builder = getBuilder(e.getKey());
        PropertyState p = builder.getProperty(COUNT_PROPERTY_NAME);
        long count = p == null ? 0 : p.getValue(Type.LONG);
        offset = ApproximateCounter.adjustOffset(count, offset, root.resolution);
        if (offset == 0) {
            continue;
        }
        updated = true;
        count += offset;
        if (count == 0) {
            if (builder.getChildNodeCount(1) >= 0) {
                builder.removeProperty(COUNT_PROPERTY_NAME);
            } else {
                builder.remove();
            }
        } else {
            builder.setProperty(COUNT_PROPERTY_NAME, count);
        }
    }
    if (updated) {
        root.callback.indexUpdate();
    }
}
Also used : Mount(org.apache.jackrabbit.oak.spi.mount.Mount) NodeBuilder(org.apache.jackrabbit.oak.spi.state.NodeBuilder) HashMap(java.util.HashMap) Map(java.util.Map) PropertyState(org.apache.jackrabbit.oak.api.PropertyState)

Example 4 with Mount

use of org.apache.jackrabbit.oak.spi.mount.Mount in project jackrabbit-oak by apache.

the class MountPermissionProviderTest method multiplexingProvider.

@Test
public void multiplexingProvider() throws Exception {
    // check init
    Tree permStore = root.getTree(PERMISSIONS_STORE_PATH);
    String wsName = adminSession.getWorkspaceName();
    assertTrue(permStore.hasChild(wsName));
    for (Mount m : mountInfoProvider.getNonDefaultMounts()) {
        assertTrue(permStore.hasChild(MountPermissionProvider.getPermissionRootName(m, wsName)));
    }
    Tree rootNode = root.getTree("/");
    Tree test = TreeUtil.addChild(rootNode, testNode, JcrConstants.NT_UNSTRUCTURED);
    Tree content = TreeUtil.addChild(test, "content", JcrConstants.NT_UNSTRUCTURED);
    root.commit();
    Principal p = getTestUser().getPrincipal();
    setPrivileges(p, test.getPath(), true, JCR_READ);
    setPrivileges(p, content.getPath(), false, JCR_READ);
    permStore = root.getTree(PERMISSIONS_STORE_PATH);
    // no entries in the default store
    assertFalse(permStore.getChild(wsName).hasChild(p.getName()));
    for (Mount m : mountInfoProvider.getNonDefaultMounts()) {
        Tree mps = permStore.getChild(MountPermissionProvider.getPermissionRootName(m, wsName));
        assertTrue(mps.hasChild(p.getName()));
    }
    ContentSession testSession = createTestSession();
    try {
        Root r = testSession.getLatestRoot();
        assertFalse(r.getTree("/").exists());
        assertTrue(r.getTree(test.getPath()).exists());
        assertFalse(r.getTree(content.getPath()).exists());
    } finally {
        testSession.close();
    }
}
Also used : Root(org.apache.jackrabbit.oak.api.Root) Mount(org.apache.jackrabbit.oak.spi.mount.Mount) Tree(org.apache.jackrabbit.oak.api.Tree) ContentSession(org.apache.jackrabbit.oak.api.ContentSession) Principal(java.security.Principal) AbstractSecurityTest(org.apache.jackrabbit.oak.AbstractSecurityTest) Test(org.junit.Test)

Example 5 with Mount

use of org.apache.jackrabbit.oak.spi.mount.Mount in project jackrabbit-oak by apache.

the class CompositeNodeStore method checkpointDebugInfo.

private String checkpointDebugInfo() {
    StringBuilder builder = new StringBuilder();
    for (MountedNodeStore mns : ctx.getAllMountedNodeStores()) {
        Mount mount = mns.getMount();
        NodeStore nodeStore = mns.getNodeStore();
        builder.append("Mount: ").append(mount.isDefault() ? "[default]" : mount.getName()).append('\n');
        builder.append("Checkpoints:").append('\n');
        for (String checkpoint : nodeStore.checkpoints()) {
            builder.append(" - ").append(checkpoint).append(": ").append(nodeStore.checkpointInfo(checkpoint)).append('\n');
        }
        builder.append("/:async node: ");
        NodeState asyncNode = nodeStore.getRoot().getChildNode(":async");
        if (asyncNode.exists()) {
            builder.append("{");
            Iterator<? extends PropertyState> i = asyncNode.getProperties().iterator();
            while (i.hasNext()) {
                PropertyState p = i.next();
                if (p.isArray()) {
                    builder.append(p.getName()).append(": [...]");
                } else {
                    builder.append(p.toString());
                }
                if (i.hasNext()) {
                    builder.append(", ");
                }
            }
            builder.append("}");
        } else {
            builder.append("N/A");
        }
        builder.append('\n');
    }
    return builder.toString();
}
Also used : NodeStore(org.apache.jackrabbit.oak.spi.state.NodeStore) NodeState(org.apache.jackrabbit.oak.spi.state.NodeState) Mount(org.apache.jackrabbit.oak.spi.mount.Mount) PropertyState(org.apache.jackrabbit.oak.api.PropertyState)

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