/** * Get version store session. */ public static String getVersionWorkspaceForNode(RepositoryManager repositoryManager, Node node) throws RepositoryException { String workspaceName = node.getSession().getWorkspace().getName(); String repositoryId = repositoryManager.getRepositoryNameForWorkspace(workspaceName); return repositoryId + "-" + RepositoryConstants.VERSION_STORE; }
private Session getSystemSession(String workspace) throws RepositoryException { String repositoryId = repositoryManager.getRepositoryNameForWorkspace(workspace); return getSession(String.format("%s-%s", repositoryId, RepositoryConstants.SYSTEM)); }
private Node getRootLockOrNull(Node node) throws RepositoryException { if (node != null && "/".equals(node.getPath())) { String repositoryId = repositoryManager.getRepositoryNameForWorkspace(node.getSession().getWorkspace().getName()); return NodeUtil.createPath(getSystemSession(repositoryId + "-" + RepositoryConstants.SYSTEM).getRootNode(), node.getSession().getWorkspace().getName() + "-" + ROOT_LOCK_NAME, NodeTypes.Content.NAME, true); } return null; }
private Content getRootLockOrNull(Content content) throws ExchangeException { try { if (content != null && "/".equals(content.getHandle())) { String repositoryId = repositoryManager.getRepositoryNameForWorkspace(content.getWorkspace().getName()); return ContentUtil.getOrCreateContent(getBackupHierarchyManager(repositoryId + "-" + RepositoryConstants.SYSTEM).getRoot(), content.getHierarchyManager().getName() + "-" + ROOT_LOCK_NAME, ItemType.CONTENT, true); } } catch (RepositoryException e) { throw new ExchangeException("Failed to obtain root lock.", e); } return null; }
getSession(destWorkspaceName).getNodeByIdentifier(property.getString()); } catch (ItemNotFoundException e) { String repositoryId = repositoryManager.getRepositoryNameForWorkspace(destWorkspaceName); if (!StringUtils.equalsIgnoreCase(destWorkspaceName, repositoryId + "-" + RepositoryConstants.VERSION_STORE)) { throw e;
final String handle = existingContent.getHandle(); String repositoryId = repositoryManager.getRepositoryNameForWorkspace(existingContent.getWorkspace().getName()); final HierarchyManager systemHM = HierarchyManagerUtil.asHierarchyManager(MgnlContext.getSystemContext().getJCRSession(repositoryId + "-" + RepositoryConstants.SYSTEM)); try {
@Test public void testAddMixin() throws Exception { final Node content = getTestNode(); final String workspaceName = content.getSession().getWorkspace().getName(); final String mixDeleted = "mgnl:deleted"; RepositoryManager repositoryManager = Components.getComponent(RepositoryManager.class); String repoName = repositoryManager.getRepositoryNameForWorkspace(workspaceName); final Provider repoProvider = repositoryManager.getRepositoryProvider(repoName); final String mgnlMixDeleted = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<nodeTypes" + " xmlns:rep=\"internal\"" + " xmlns:nt=\"http://www.jcp.org/jcr/nt/1.0\"" + " xmlns:mix=\"http://www.jcp.org/jcr/mix/1.0\"" + " xmlns:mgnl=\"http://www.magnolia.info/jcr/mgnl\"" + " xmlns:jcr=\"http://www.jcp.org/jcr/1.0\">" + "<nodeType name=\"" + mixDeleted + "\" isMixin=\"true\" hasOrderableChildNodes=\"true\" primaryItemName=\"\">" + "<supertypes>" + "<supertype>nt:base</supertype>" + "</supertypes>" + "</nodeType>" + "</nodeTypes>"; try { repoProvider.registerNodeTypes(new ByteArrayInputStream(mgnlMixDeleted.getBytes())); } catch (RepositoryException e) { // ignore, either it's already registered and test will pass, or type can't be registered and test should fail } assertTrue(content.canAddMixin(mixDeleted)); content.addMixin(mixDeleted); }