Refine search
/** * Tests if restore on simple versioning creates a new version that is * in the correct linear order. */ public void testLinearVersionsJcr2() throws Exception { // first get all linear versions VersionIterator iter = versionManager.getVersionHistory(versionableNode.getPath()).getAllLinearVersions(); StringBuffer expected = new StringBuffer(); while (iter.hasNext()) { expected.append(iter.nextVersion().getName()).append(","); } // restore version versionManager.restore(version, true); // append new base version expected.append(versionManager.getBaseVersion(versionableNode.getPath()).getName()).append(","); // get the version names again iter = versionManager.getVersionHistory(versionableNode.getPath()).getAllLinearVersions(); StringBuffer actual = new StringBuffer(); while (iter.hasNext()) { actual.append(iter.nextVersion().getName()).append(","); } assertEquals("Node.restore() on simple versioning must create a new version.", expected.toString(), actual.toString()); }
/** * Returns size for all versions from all workspaces, unlike {@link #getSize()} that returns filtered results by workspace. */ public long getUnfilteredSize() { return versionIterator.getSize(); }
@Override public void skip( long skipNum ) { versions.skip(skipNum); } }
VersionIterator iterator = ocm.getAllVersions(path); while (iterator.hasNext()) { Version version = (Version)iterator.next(); //Here you go: MarketingZone m1 = (MarketingZone) version.getFrozenNode(); System.out.println(m1.getName()); }
protected Version lookupVersion(Node variant, Calendar historic) throws RepositoryException { VersionHistory versionHistory = variant.getVersionHistory(); for (VersionIterator iter = versionHistory.getAllVersions(); iter.hasNext(); ) { Version version = iter.nextVersion(); if (version.getCreated().equals(historic)) { return version; } } return null; } }
VersionHistory history = session.getWorkspace().getVersionManager().getVersionHistory("/my/node/path"); // To iterate over all versions VersionIterator versions = history.getAllVersions(); while (versions.hasNext()) { Version version = versions.nextVersion(); } // Obtain version per name Version mySpecificVersion = history.getVersion("myVersion"); //Obtain version per label Version labelisedVersion = history.getVersionByLabel("myLabel"); String myVersionPropertyValue = labelisedVersion.getFrozenNode().getProperty("myProperty").getString();
final String nodePath = node.getPath(); final Session session = node.getSession(); final String workspaceName = session.getWorkspace().getName(); log.debug("removing {} from {}", nodePath, workspaceName); VersionHistory versionHistory = getVersionHistory(node); if (versionHistory != null) { VersionIterator versionIterator = versionHistory.getAllVersions(); long filteredSize = versionIterator.getSize(); long unfilteredSize = ((MgnlVersionSessionDecorator.MgnlVersionSessionVersionIteratorWrapper) versionIterator).getUnfilteredSize(); if (filteredSize == unfilteredSize) { Node versioned = getVersionedNode(node); versioned.remove(); versioned.getSession().save(); } else { versionIterator.nextVersion(); // skip root version while (versionIterator.hasNext()) { Version version = versionIterator.nextVersion(); if (version.getName().equals(JcrConstants.JCR_ROOTVERSION)) { continue; versionHistory.removeVersion(version.getName());
when( nodeToRemove.getPath() ).thenReturn( "nodePath" ); when( nodeToRemove.isNodeType( pentahoJcrConstants.getNT_FROZENNODE() ) ).thenReturn( true ); when( nodeToRemove.isNodeType( pentahoJcrConstants.getPHO_MIX_VERSIONABLE() ) ).thenReturn( true ); NodeType nt = mock( NodeType.class ); when( nt.getName() ).thenReturn( NameConstants.MIX_VERSIONABLE.getLocalName() ); when( versionManager.getVersionHistory( "nodePath" ) ).thenReturn( history ); when( history.getAllVersions() ).thenReturn( versions ); when( versions.hasNext() ).thenReturn( true, false ); Version version = mock( Version.class ); when( versions.next() ).thenReturn( version ); String value = "Omega Man"; when( version.getName() ).thenReturn( value ); try { defaultDeleteHelper.permanentlyDeleteFile( session, pentahoJcrConstants, fileID ); verify( versionManager ).getVersionHistory( nodeToRemove.getPath() ); verify( nodeToRemove ).remove(); verify( history ).removeVersion( value ); } catch ( Exception e ) { e.printStackTrace();
path = processPath(path); Node rootNode=getRootNode(); if (!rootNode.hasNode(path)) { throw new RuleException("File [" + path + "] not exist."); Node fileNode = rootNode.getNode(path); VersionHistory versionHistory = versionManager.getVersionHistory(fileNode.getPath()); VersionIterator iterator = versionHistory.getAllVersions(); while (iterator.hasNext()) { Version version = iterator.nextVersion(); String versionName = version.getName(); if (versionName.startsWith("jcr:")) { continue; // skip root version Node fnode = version.getFrozenNode(); VersionFile file = new VersionFile(); file.setName(version.getName()); file.setPath(fileNode.getPath()); Property prop = fnode.getProperty(CRATE_USER);
Node originalNode = node.addNode("originalNode", NodeType.NT_FILE); originalNode.addMixin(NodeType.MIX_VERSIONABLE); originalNode.addMixin(NodeType.MIX_TITLE); Node contentNode = originalNode.addNode(JcrConstants.JCR_CONTENT, JcrConstants.NT_RESOURCE); contentNode.setProperty(JcrConstants.JCR_DATA, session.save(); versionManager.checkout(originalNode.getPath()); originalNode.setProperty(Property.JCR_TITLE, "originalNode"); session.save(); versionManager.checkin(originalNode.getPath()); VersionHistory originalHistory = versionManager.getVersionHistory(originalNode.getPath()); Version originalBaseVersion = versionManager.getBaseVersion(originalNode.getPath()); VersionIterator it = originalHistory.getAllVersions(); while (it.hasNext()) { Version version = it.nextVersion(); originalHistory.removeVersion(version.getName()); it = copiedHistory.getAllVersions(); while (it.hasNext()) { Version version = it.nextVersion(); copiedHistory.removeVersion(version.getName());
VersionHistory history = versionManager.getVersionHistory(path); if (print) System.out.println("Before: \n" + history); assertThat(history, is(notNullValue())); assertThat(history.getAllLinearVersions().getSize(), is(6L)); VersionIterator iter = history.getAllLinearVersions(); Version v1 = iter.nextVersion(); Version v2 = iter.nextVersion(); Version v3 = iter.nextVersion(); Version v4 = iter.nextVersion(); Version v5 = iter.nextVersion(); Version v6 = iter.nextVersion(); assertThat(iter.hasNext(), is(false)); String versionName = v3.getName(); assertThat(v1, is(notNullValue())); assertThat(v2, is(notNullValue())); assertThat(history.getAllLinearVersions().getSize(), is(5L)); Version v1a = iter.nextVersion(); Version v2a = iter.nextVersion(); Version v4a = iter.nextVersion(); Version v5a = iter.nextVersion(); Version v6a = iter.nextVersion(); assertThat(iter.hasNext(), is(false)); assertThat(v1a.getName(), is(v1.getName())); assertThat(history.getAllLinearVersions().getSize(), is(5L));
public static List<Version> getVersions(Node node) { String nodeName = null; if (! isVersionable(node)) { return null; } try { nodeName = node.getName(); List<Version> versions = new ArrayList<>(); VersionHistory history = JcrVersionUtil.getVersionManager(node.getSession()).getVersionHistory(node.getPath()); VersionIterator itr = history.getAllVersions(); while (itr.hasNext()) { Version version = itr.nextVersion(); versions.add(version); } return versions; } catch (RepositoryException e) { throw new MetadataRepositoryException("Unable to find Version History for " + nodeName, e); } }
VersionManager vm = versionableNode.getSession().getWorkspace().getVersionManager(); String path = versionableNode.getPath(); int cnt = 2; vm.checkpoint(path); for (VersionIterator it = vm.getVersionHistory(path).getAllVersions(); it.hasNext(); ) { Version v = it.nextVersion(); frozenIds.add(v.getFrozenNode().getIdentifier()); for (NodeIterator it = vHistory.getAllFrozenNodes(); it.hasNext(); ) { Node n = it.nextNode(); assertTrue("Node " + n.getPath() + " must be of type frozen node",
Node innerNode = outerNode.addNode("innerFolder"); Node fileNode = innerNode.addNode("testFile.dat"); fileNode.setProperty("jcr:mimeType", "text/plain"); fileNode.setProperty("jcr:data", "Original content"); session.save(); VersionHistory history = versionManager.getVersionHistory(path); if (print) System.out.println("Before: \n" + history); assertThat(history, is(notNullValue())); assertThat(history.getAllLinearVersions().getSize(), is(6L)); VersionIterator iter = history.getAllLinearVersions(); Version v1 = iter.nextVersion(); Version v2 = iter.nextVersion(); Version v3 = iter.nextVersion(); Version v4 = iter.nextVersion(); Version v5 = iter.nextVersion(); Version v6 = iter.nextVersion(); assertThat(iter.hasNext(), is(false)); assertThat(v1, is(notNullValue())); assertThat(v2, is(notNullValue())); v3.remove(); fail("Should not allow removing a protected node"); } catch (ConstraintViolationException e) {
Node root = session.getRootNode(); Node firstPage = root.addNode("firstPage", NodeTypes.Page.NAME); rule.addAllowType(NodeTypes.Resource.NAME); firstPage.setProperty("title", "v1title"); firstPage.addNode("v1child", "mgnl:area"); firstPage.save(); Version v1 = versionManager.addVersion(firstPage, rule); assertEquals(versionManager.getAllVersions(firstPage).getSize(), 2); Node versionedNode = versionManager.getVersion(firstPage, v1.getName()); assertEquals("v1title", versionedNode.getProperty("title").getString()); assertTrue(versionedNode.hasNode("v1child")); firstPage.save(); Version v2 = versionManager.addVersion(firstPage, rule); versionedNode = versionManager.getVersion(firstPage, v2.getName()); assertEquals(versionManager.getAllVersions(firstPage).getSize(), 3); assertEquals("v2title", versionedNode.getProperty("title").getString()); assertTrue(versionedNode.hasNode("v2child")); firstPage.save(); Version v3 = versionManager.addVersion(firstPage, rule); versionedNode = versionManager.getVersion(firstPage, v3.getName()); assertEquals(versionManager.getAllVersions(firstPage).getSize(), 4); assertEquals("v3title", versionedNode.getProperty("title").getString()); assertTrue(versionedNode.hasNode("v3child"));
Node n = testRootNode.addNode(nodeName1); n.addMixin(mixVersionable); superuser.save(); String path = n.getPath(); mgr.checkpoint(path); // v1.0 mgr.checkpoint(path); // v1.1 mgr.checkpoint(path); // v1.2 VersionHistory vh = mgr.getVersionHistory(path); String id = vh.getIdentifier(); VersionIterator vit = vh.getAllVersions(); while (vit.hasNext()) { Version v = vit.nextVersion(); if (!v.getName().equals("jcr:rootVersion")) { names.add(v.getName()); vh.removeVersion(name);
private void purgeHistory( Node fileNode, Session session, PentahoJcrConstants pentahoJcrConstants ) throws RepositoryException { // Delete all previous versions of this node VersionManager versionManager = session.getWorkspace().getVersionManager(); if ( JcrRepositoryFileUtils.isPentahoFolder( pentahoJcrConstants, fileNode ) ) { // go down to children NodeIterator nodes = fileNode.getNodes(); while ( nodes.hasNext() ) { Node next = (Node) nodes.next(); purgeHistory( next, session, pentahoJcrConstants ); } } else if ( JcrRepositoryFileUtils.isPentahoFile( pentahoJcrConstants, fileNode ) && fileNode.isNodeType( pentahoJcrConstants.getPHO_MIX_VERSIONABLE() ) ) { VersionHistory versionHistory = versionManager.getVersionHistory( fileNode.getPath() ); VersionIterator allVersions = versionHistory.getAllVersions(); while ( allVersions.hasNext() ) { Version next = (Version) allVersions.next(); String name = next.getName(); // Root version cannot be deleted, the remove below will take care of that. if ( !JCR_ROOT_VERSION.equals( name ) ) { versionHistory.removeVersion( name ); } } } }
@Test public void checkVersionCreatedBeforeRestore() throws Exception { // GIVEN versionManager.addVersion(node); // change test node before restore node.setProperty("mgnl:template", "section"); node.getNode("areaSubNode").remove(); node.getSession().save(); assertEquals(2, versionManager.getAllVersions(node).getSize()); MockRestoreVersionAction restoreVersionAction = new MockRestoreVersionAction(definition, null, null, uiContext, formDialogPresenter, new JcrNodeAdapter(node), i18n, versionManager, eventBus, versionConfig, contentConnector); restoreVersionAction.execute(); // WHEN restoreVersionAction.getEditorCallback().onSuccess(""); // THEN assertEquals(3, versionManager.getAllVersions(node).getSize()); Version version = versionManager.getVersion(node, "1.1"); assertEquals(CREATED_VERSION_BEFORE_RESTORE, NodeTypes.Versionable.getComment(version)); assertEquals("section", version.getProperty("mgnl:template").getString()); assertFalse(version.hasNode("areaSubNode")); }
@Test public void doNotCreateVersionBeforeRestoreIfNotAllowed() throws Exception { // GIVEN versionManager.addVersion(node); // change test node before restore node.setProperty("mgnl:template", "section"); node.getNode("areaSubNode").remove(); node.getSession().save(); assertEquals(2, versionManager.getAllVersions(node).getSize()); definition.setCreateVersionBeforeRestore(false); MockRestoreVersionAction restoreVersionAction = new MockRestoreVersionAction(definition, null, null, uiContext, formDialogPresenter, new JcrNodeAdapter(node), i18n, versionManager, eventBus, versionConfig, contentConnector); restoreVersionAction.execute(); // WHEN restoreVersionAction.getEditorCallback().onSuccess(""); // THEN assertEquals(2, versionManager.getAllVersions(node).getSize()); }
protected List<T> getVersionList(Node node, NodeFilter nodeFilter) { try { List<T> versionList = new ArrayList<T>(); //VersionHistory versionHistory = node.getVersionHistory(); VersionHistory versionHistory = JcrUtils.getVersionManager(node.getSession()).getVersionHistory(node.getPath()); VersionIterator versionIterator = versionHistory.getAllVersions(); versionIterator.skip(1); while (versionIterator.hasNext()) { Version version = versionIterator.nextVersion(); NodeIterator nodeIterator = version.getNodes(); while (nodeIterator.hasNext()) { T entityVersion = getJcrom().fromNode(getEntityClass(), nodeIterator.nextNode(), nodeFilter); //Version baseVersion = node.getBaseVersion(); Version baseVersion = JcrUtils.getVersionManager(node.getSession()).getBaseVersion(node.getPath()); getJcrom().setBaseVersionInfo(entityVersion, baseVersion.getName(), baseVersion.getCreated()); versionList.add(entityVersion); } } return versionList; } catch (RepositoryException e) { throw new JcrMappingException("Could not get version list", e); } }