@Test public void shouldAllowSessionToCreateManyChildrenWithSameNameAndThenSave() { check(cache).noNode("/childB/newChild"); print(false); MutableCachedNode nodeB = check(session1).mutableNode("/childB"); Stopwatch create = new Stopwatch(); Stopwatch total = new Stopwatch(); Stopwatch save = new Stopwatch(); total.start(); for (int i = 0; i != 1000; ++i) { create.start(); NodeKey newKey = session1.createNodeKey(); nodeB.createChild(session(), newKey, name("newChild"), property("p1a", 344), property("p2", false)); create.stop(); } save.start(); session1.save(); save.stop(); total.stop(); nodeB = check(session1).mutableNode("/childB"); print(true); print("Number of children: " + nodeB.getChildReferences(session1).size()); print("Time (create): " + create.getSimpleStatistics()); print("Time (save): " + save.getSimpleStatistics()); print("Time (total): " + total.getTotalDuration()); session1.clear(); total.reset(); total.start(); nodeB.getChildReferences(session1).getChild(name("newChild"), 9450); total.stop(); print("Time (getchild#9450): " + total.getTotalDuration()); session1.clear(); total.reset(); total.start(); nodeB.getChildReferences(session1).getChild(name("newChild"), 10); total.stop(); print("Time (getchild#10): " + total.getTotalDuration()); }
@Override public void save() { save((PreSave)null); }
WritableSessionCache extends AbstractSessionCache { @Override public void save() { save((PreSave)null); } }
WritableSessionCache extends AbstractSessionCache { @Override public void save() { save((PreSave)null); } WritableSessionCache(ExecutionContext context,
                                WorkspaceCache workspaceCache,
                                TransactionalWorkspaceCaches txWorkspaceCaches,
                                RepositoryEnvironment repositoryEnvironment); }
WritableSessionCache extends AbstractSessionCache { @Override public void save() { save((PreSave)null); } WritableSessionCache(ExecutionContext context,
                                WorkspaceCache workspaceCache,
                                TransactionalWorkspaceCaches txWorkspaceCaches,
                                RepositoryEnvironment repositoryEnvironment); @Override CachedNode getNode( NodeKey key ); @Override SessionNode mutable( NodeKey key ); @Override boolean isReadOnly(); @Override Set<NodeKey> getChangedNodeKeys(); @Override Set<NodeKey> getChangedNodeKeysAtOrBelow( CachedNode srcNode ); @Override boolean hasChanges(); @Override void checkForTransaction(); @Override void save(); @Override void save( SessionCache other,
                      PreSave preSaveOperation ); @Override void save( Set<NodeKey> toBeSaved,
                      SessionCache other,
                      PreSave preSaveOperation ); @SuppressWarnings( "finally" ) @Override void destroy( NodeKey key ); @Override boolean isDestroyed( NodeKey key ); @Override String toString(); }
WritableSessionCache extends AbstractSessionCache { @Override public void save() { save((PreSave)null); } WritableSessionCache(ExecutionContext context,
                                WorkspaceCache workspaceCache,
                                TransactionalWorkspaceCaches txWorkspaceCaches,
                                RepositoryEnvironment repositoryEnvironment); @Override CachedNode getNode( NodeKey key ); @Override SessionNode mutable( NodeKey key ); @Override boolean isReadOnly(); @Override Set<NodeKey> getChangedNodeKeys(); @Override Set<NodeKey> getChangedNodeKeysAtOrBelow( CachedNode srcNode ); @Override boolean hasChanges(); @Override void checkForTransaction(); @Override void save(); @Override void save( SessionCache other,
                      PreSave preSaveOperation ); @Override void save( Set<NodeKey> toBeSaved,
                      SessionCache other,
                      PreSave preSaveOperation ); @SuppressWarnings( "finally" ) @Override void destroy( NodeKey key ); @Override boolean isDestroyed( NodeKey key ); @Override String toString();  }