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"));
}
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"));
}
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();
}
}
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();
}
}
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();
}
Aggregations