public void initWorkspace(Workspace workspace, JcrSession workspaceSession) { JcrNode root = (JcrNode) workspaceSession.getItem(brix.getRootPath()); JcrNode pluginRoot = null; if (root.hasNode(getRootNodeName())) { pluginRoot = root.getNode(getRootNodeName()); } else { pluginRoot = root.addNode(getRootNodeName(), SimpleFolderNode.JCR_PRIMARY_TYPE); } if (pluginRoot != null) { if (!pluginRoot.isNodeType(BrixNode.JCR_TYPE_BRIX_NODE)) { pluginRoot.addMixin(BrixNode.JCR_TYPE_BRIX_NODE); } } }
/** * Resolves uri path to a {@link BrixNode}. By default this method uses {@link * BrixConfig#getMapper()} to map the uri to a node path. * * @param uriPath uri path * @return node that maps to the <code>uriPath</code> or <code>null</code> if none */ public BrixNode getNodeForUriPath(final Path uriPath) { BrixNode node = null; // create desired nodepath final Path nodePath = brix.getConfig().getMapper().getNodePathForUriPath(uriPath.toAbsolute(), brix); if (nodePath != null) { // allow site plugin to translate the node path into an actual jcr // path final String jcrPath = SitePlugin.get().toRealWebNodePath(nodePath.toString()); // retrieve jcr session final String workspace = getWorkspace(); final JcrSession session = brix.getCurrentSession(workspace); if (session.itemExists(jcrPath)) { // node exists, return it node = (BrixNode) session.getItem(jcrPath); } } return node; }
public BrixNode getRootNode(String workspaceID) { JcrSession workspaceSession = getBrix().getCurrentSession(workspaceID); return (BrixNode) workspaceSession.getItem(getRootNodePath()); }