@NotNull @Override public NodeBuilder builder() { NodeBuilder builder = new DocumentRootBuilder(base, store, branch); modified.compareAgainstBaseState(base, new ApplyDiff(builder)); return builder; }
@Override public boolean childNodeDeleted(String name, NodeState before) { String path = asDocumentState(before, name).getPath(); if (ctx.pathFilter.filter(path) != PathFilter.Result.EXCLUDE) { return super.childNodeDeleted(name, before); } return true; }
@NotNull @Override public NodeBuilder builder() { NodeBuilder builder = new DocumentRootBuilder(base, store, branch); modified.compareAgainstBaseState(base, new ApplyDiff(builder)); return builder; }
@Override public boolean childNodeDeleted(String name, NodeState before) { String path = asDocumentState(before, name).getPath(); if (ctx.pathFilter.filter(path) != PathFilter.Result.EXCLUDE) { return super.childNodeDeleted(name, before); } return true; }
@Override public boolean childNodeChanged( String name, NodeState before, NodeState after) { return after.compareAgainstBaseState( before, new ApplyDiff(builder.getChildNode(name))); }
@Override public boolean childNodeChanged( String name, NodeState before, NodeState after) { return after.compareAgainstBaseState( before, new ApplyDiff(builder.getChildNode(name))); }
private NodeState copyDiffToTarget(NodeState before, NodeState after, NodeState targetRoot) throws CommitFailedException { NodeBuilder targetBuilder = targetRoot.builder(); NodeState currentRoot = wrapNodeState(after, true); NodeState baseRoot = wrapNodeState(before, false); currentRoot.compareAgainstBaseState(baseRoot, new ApplyDiff(targetBuilder)); return targetNodeStore.merge(targetBuilder, EmptyHook.INSTANCE, CommitInfo.EMPTY); }
private NodeState copyDiffToTarget(NodeState before, NodeState after, NodeState targetRoot, boolean tracePaths, boolean showDiff) throws IOException, CommitFailedException { NodeBuilder targetBuilder = targetRoot.builder(); if (targetFileStore == null) { NodeState currentRoot = wrapNodeState(after, tracePaths, true); NodeState baseRoot = wrapNodeState(before, false, true); currentRoot.compareAgainstBaseState(baseRoot, new ApplyDiff(targetBuilder)); } else { NodeState currentRoot = wrapNodeState(after, false, true); NodeState baseRoot = wrapNodeState(before, false, true); SegmentNodeState state = PersistingDiff.applyDiffOnNodeState(targetFileStore, baseRoot, currentRoot, targetRoot); state.compareAgainstBaseState(targetRoot, new ApplyDiff(targetBuilder)); } return target.merge(targetBuilder, EmptyHook.INSTANCE, CommitInfo.EMPTY); }
private NodeState copyDiffToTarget(NodeState before, NodeState after, NodeState targetRoot, boolean tracePaths, boolean showDiff) throws IOException, CommitFailedException { NodeBuilder targetBuilder = targetRoot.builder(); if (targetFileStore == null) { NodeState currentRoot = wrapNodeState(after, tracePaths, true); NodeState baseRoot = wrapNodeState(before, false, true); currentRoot.compareAgainstBaseState(baseRoot, new ApplyDiff(targetBuilder)); } else { NodeState currentRoot = wrapNodeState(after, false, true); NodeState baseRoot = wrapNodeState(before, false, true); SegmentNodeState state = PersistingDiff.applyDiffOnNodeState(targetFileStore, baseRoot, currentRoot, targetRoot); state.compareAgainstBaseState(targetRoot, new ApplyDiff(targetBuilder)); } return target.merge(targetBuilder, EmptyHook.INSTANCE, CommitInfo.EMPTY); }
@NotNull @Override public RepositoryInitializer getRepositoryInitializer() { return builder -> { NodeState base = builder.getNodeState(); NodeStore store = new MemoryNodeStore(base); Root root = getRootProvider().createSystemRoot(store, null); if (registerCugNodeTypes(root)) { NodeState target = store.getRoot(); target.compareAgainstBaseState(base, new ApplyDiff(builder)); } }; }
@NotNull @Override public RepositoryInitializer getRepositoryInitializer() { return builder -> { NodeState base = builder.getNodeState(); NodeStore store = new MemoryNodeStore(base); Root root = getRootProvider().createSystemRoot(store, null); if (registerCugNodeTypes(root)) { NodeState target = store.getRoot(); target.compareAgainstBaseState(base, new ApplyDiff(builder)); } }; }
@Override public void initialize(@NotNull NodeBuilder builder) { if (!builder.hasChildNode(JcrConstants.JCR_SYSTEM)) { throw new IllegalStateException("Missing " + JcrConstants.JCR_SYSTEM + " node, NodeStore not initialized."); } NodeBuilder system = builder.getChildNode(JcrConstants.JCR_SYSTEM); if (!system.hasChildNode(REP_PRIVILEGES)) { NodeBuilder privileges = system.child(REP_PRIVILEGES); privileges.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_PRIVILEGES, Type.NAME); // squeeze node state before it is passed to store (OAK-2411) NodeState base = squeeze(builder.getNodeState()); NodeStore store = new MemoryNodeStore(base); try { Root systemRoot = rootProvider.createSystemRoot(store, null); new PrivilegeDefinitionWriter(systemRoot).writeBuiltInDefinitions(); } catch (RepositoryException e) { log.error("Failed to register built-in privileges", e); throw new RuntimeException(e); } NodeState target = store.getRoot(); target.compareAgainstBaseState(base, new ApplyDiff(builder)); } } }
@Override public void initialize(@NotNull NodeBuilder builder) { if (!builder.hasChildNode(JcrConstants.JCR_SYSTEM)) { throw new IllegalStateException("Missing " + JcrConstants.JCR_SYSTEM + " node, NodeStore not initialized."); } NodeBuilder system = builder.getChildNode(JcrConstants.JCR_SYSTEM); if (!system.hasChildNode(REP_PRIVILEGES)) { NodeBuilder privileges = system.child(REP_PRIVILEGES); privileges.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_PRIVILEGES, Type.NAME); // squeeze node state before it is passed to store (OAK-2411) NodeState base = squeeze(builder.getNodeState()); NodeStore store = new MemoryNodeStore(base); try { Root systemRoot = rootProvider.createSystemRoot(store, null); new PrivilegeDefinitionWriter(systemRoot).writeBuiltInDefinitions(); } catch (RepositoryException e) { log.error("Failed to register built-in privileges", e); throw new RuntimeException(e); } NodeState target = store.getRoot(); target.compareAgainstBaseState(base, new ApplyDiff(builder)); } } }
@Override public void initialize(@Nonnull NodeBuilder builder) { NodeBuilder system = builder.child(JcrConstants.JCR_SYSTEM); system.setProperty(JcrConstants.JCR_PRIMARYTYPE, NodeTypeConstants.NT_REP_SYSTEM, Type.NAME); if (!system.hasChildNode(REP_PRIVILEGES)) { NodeBuilder privileges = system.child(REP_PRIVILEGES); privileges.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_PRIVILEGES, Type.NAME); // squeeze node state before it is passed to store (OAK-2411) NodeState base = squeeze(builder.getNodeState()); NodeStore store = new MemoryNodeStore(base); try { Root systemRoot = rootProvider.createSystemRoot(store, null); new PrivilegeDefinitionWriter(systemRoot).writeBuiltInDefinitions(); } catch (RepositoryException e) { log.error("Failed to register built-in privileges", e); throw new RuntimeException(e); } NodeState target = store.getRoot(); target.compareAgainstBaseState(base, new ApplyDiff(builder)); } } }
@NotNull @Override public RepositoryInitializer getRepositoryInitializer() { String cnd = "<rep='internal'>\n" + "["+MIX_REP_THREE_ROLES_POLICY+"] \n mixin\n " + " +"+REP_3_ROLES_POLICY+" ("+NT_REP_THREE_ROLES_POLICY+") protected IGNORE\n\n" + "["+NT_REP_THREE_ROLES_POLICY+"] > "+ AccessControlConstants.NT_REP_POLICY+"\n" + " - "+REP_READERS +" (STRING) multiple protected IGNORE\n" + " - "+REP_EDITORS+" (STRING) multiple protected IGNORE\n" + " - "+REP_OWNERS+" (STRING) multiple protected IGNORE"; System.out.println(cnd); return builder -> { NodeState base = builder.getNodeState(); NodeStore store = new MemoryNodeStore(base); Root root = getRootProvider().createSystemRoot(store, new EditorHook(new CompositeEditorProvider(new NamespaceEditorProvider(), new TypeEditorProvider()))); try { if (!ReadOnlyNodeTypeManager.getInstance(root, NamePathMapper.DEFAULT).hasNodeType(MIX_REP_THREE_ROLES_POLICY)) { NodeTypeRegistry.register(root, new ByteArrayInputStream(cnd.getBytes()), "oak exercise"); NodeState target = store.getRoot(); target.compareAgainstBaseState(base, new ApplyDiff(builder)); } } catch (RepositoryException e) { log.error(e.getMessage()); } }; }
@Override public void initialize(@NotNull NodeBuilder builder) { super.initialize(builder); // registering additional node types for wider testing InputStream stream = null; try { stream = LuceneIndexAggregation2Test.class .getResourceAsStream("test_nodetypes.cnd"); NodeState base = builder.getNodeState(); NodeStore store = new MemoryNodeStore(base); Root root = RootFactory.createSystemRoot(store, new EditorHook( new CompositeEditorProvider(new NamespaceEditorProvider(), new TypeEditorProvider())), null, null, null); NodeTypeRegistry.register(root, stream, "testing node types"); NodeState target = store.getRoot(); target.compareAgainstBaseState(base, new ApplyDiff(builder)); } catch (Exception e) { LOG.error("Error while registering required node types. Failing here", e); fail("Error while registering required node types"); } finally { printNodeTypes(builder); if (stream != null) { try { stream.close(); } catch (IOException e) { LOG.debug("Ignoring exception on stream closing.", e); } } } }
target.compareAgainstBaseState(base, new ApplyDiff(builder));
target.compareAgainstBaseState(base, new ApplyDiff(builder));