protected String findNextSiblingPath(Node node) { try { Node parentNode = node.getParent(); for (NodeIterator siblings = parentNode.getNodes(); siblings.hasNext(); ) { if (siblings.nextNode().isSame(node)) { return siblings.hasNext() ? siblings.nextNode().getPath() : null; } } } catch (RepositoryException e) { log.error(e.getMessage(), e); } return null; }
public static Node getHippoNamespaceNode(final Session session, final String prefix) throws RepositoryException { if (StringUtils.isBlank(prefix)) { throw new RepositoryException("Unable to fetch namespace for empty prefix"); } final Node namespaces = session.getRootNode().getNode(HippoNodeType.NAMESPACES_PATH); if (namespaces.hasNode(prefix)) { return namespaces.getNode(prefix); } log.info("Namespace node '{}' not available", prefix); return null; }
private void addNodesMatchingOnSubstring(String relPath, Collection<String> result) { String subPath = relPath.substring(0, relPath.lastIndexOf('/') + 1); String remainingQuery = relPath.substring(subPath.length()); try { NodeIterator nodes = getNodesFromRelativePath(subPath); while (nodes.hasNext()) { final Node node = nodes.nextNode(); if (node.getName().startsWith(remainingQuery)) { result.add(node.getPath()); } } } catch (RepositoryException e) { e.printStackTrace(); } }
public boolean checkin(final Resource rsrc) throws PersistenceException { final Node node = rsrc.adaptTo(Node.class); if (node != null) { try { if (node.isCheckedOut() && isVersionable(node)) { node.getSession().getWorkspace().getVersionManager().checkin(node.getPath()); return true; } } catch ( final RepositoryException re) { throw new PersistenceException(re.getMessage(), re, rsrc.getPath(), null); } } return false; }
/** * @see <a href="https://issues.apache.org/jira/browse/OAK-2488">OAK-2488</a> */ public void testGetPrimaryTypeFromNewNode() throws Exception { deny(path, privilegesFromName(PrivilegeConstants.REP_READ_PROPERTIES)); testSession.getNode(path).remove(); Node newNode = testSession.getNode(testRoot).addNode(Text.getName(path)); if (newNode.hasProperty(JcrConstants.JCR_PRIMARYTYPE)) { NodeType primaryType = newNode.getPrimaryNodeType(); assertEquals(newNode.getProperty(JcrConstants.JCR_PRIMARYTYPE).getString(), primaryType.getName()); } else { try { newNode.getPrimaryNodeType(); fail("Cannot read primary type from transient new node if access to property is not readable."); } catch (RepositoryException e) { assertTrue(e.getMessage().startsWith("Unable to retrieve primary type for Node")); } } }
protected void setUp() throws Exception { super.setUp(); versionManager = versionableNode.getSession().getWorkspace().getVersionManager(); String path = versionableNode.getPath(); propertyValue1 = getProperty("propertyValue1"); propertyValue2 = getProperty("propertyValue2"); versionableNode.setProperty(propertyName1, propertyValue1); versionableNode.getSession().save(); version = versionManager.checkin(path); versionManager.checkout(path); versionableNode.setProperty(propertyName1, propertyValue2); versionableNode.getSession().save(); version2 = versionManager.checkin(path); versionManager.checkout(path); rootVersion = versionManager.getVersionHistory(path).getRootVersion(); // build a second versionable node below the testroot try { versionableNode2 = createVersionableNode(testRootNode, nodeName2, versionableNodeType); } catch (RepositoryException e) { fail("Failed to create a second versionable node: " + e.getMessage()); } }
private void loadConfiguration() { UserSession userSession = (UserSession) org.apache.wicket.Session.get(); Session session = userSession.getJcrSession(); try { Node node = session.getNode(CONFIG_NODE_PATH); this.tableId = node.getProperty("hippogoogleanalytics:tableId").getString(); this.username = node.getProperty("hippogoogleanalytics:username").getString(); this.password = node.getProperty("hippogoogleanalytics:password").getString(); } catch (RepositoryException e) { log.error("Failed to load google analytics configuration: " + e.toString()); } }
@Override public void execute(InstallContext installContext) throws TaskExecutionException { try { Session config = installContext.getJCRSession(RepositoryConstants.CONFIG); String fetcherClass = config.getNode(RSSAggregator.RSS_CONFIG_PATH + "/fetcher").getProperty("class").getString(); config.getNode(RSSAggregator.RSS_CONFIG_PATH).setProperty("fetcherClass", fetcherClass); } catch (RepositoryException e) { throw new TaskExecutionException(e.getMessage(), e); } } }
protected void setDefaultHideInNavValueIfNotExisting() { try { if (!content.hasProperty(HIDE_IN_NAV_PROPERTY_NAME)) { content.setProperty(HIDE_IN_NAV_PROPERTY_NAME, HIDE_IN_NAV_DEFAULT_VALUE); content.getSession().save(); } } catch (RepositoryException e) { log.error("Unable to create property 'hideInNav' with value '{}' on node {}", new Object[]{HIDE_IN_NAV_DEFAULT_VALUE, JcrUtils.toString(content)}); log.error(e.getMessage(), e); } }
private Node getNode(int index) { try { NodeIterator iter = getNode().getNodes(); int idx = 0; while (iter.hasNext()) { Node iterNode = iter.nextNode(); if (idx == index) { return iterNode; } idx++; } } catch (RepositoryException ex) { log.error(ex.getMessage()); } return null; }
private Node sysCopy(Node src, Node dstParent, String dstName) throws RepositoryException { try { ContentHandler handler = dstParent.getSession().getImportContentHandler(dstParent.getPath(), ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW); src.getSession().exportSystemView(src.getPath(), handler, true, false); return dstParent.getNode(dstName); } catch (SAXException e) { throw new RepositoryException("Unable to perform sysview copy", e); } }
public void run() { try { for (int i = 0; i < 10; i++) { stuff.setProperty("binary", new BufferedInputStream(new FileInputStream(tmp))); s.save(); stuff.getProperty("binary").remove(); s.save(); } } catch (RepositoryException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } finally { s.logout(); tmp.delete(); } } });
@Override protected boolean nodeMatches(Node node) { try { return node.hasProperty("icon") && node.getProperty("icon").getString().startsWith("/.resources/file-icons/"); } catch (RepositoryException e) { log.error(e.getMessage(), e); return false; } }
public String getDocument() { try { Node node = getNode(); if (node.hasProperty("hippolog:eventDocument")) { return node.getProperty("hippolog:eventDocument").getValue().getString(); } } catch (RepositoryException e) { log.error(e.getMessage()); } return null; }
@Override public List<ArtifactMetadata> getArtifacts( String repositoryId ) throws MetadataRepositoryException { List<ArtifactMetadata> artifacts; String q = getArtifactQuery( repositoryId ); try { Query query = getJcrSession().getWorkspace().getQueryManager().createQuery( q, Query.JCR_SQL2 ); QueryResult result = query.execute(); artifacts = new ArrayList<>(); for ( Node n : JcrUtils.getNodes( result ) ) { if ( n.isNodeType( ARTIFACT_NODE_TYPE ) ) { artifacts.add( getArtifactFromNode( repositoryId, n ) ); } } } catch ( RepositoryException e ) { throw new MetadataRepositoryException( e.getMessage(), e ); } return artifacts; }
public Node storeAsNode(String absPath, String type) throws ItemExistsException, PathNotFoundException, VersionException, ConstraintViolationException, LockException, UnsupportedRepositoryOperationException, RepositoryException { if(!absPath.startsWith("/")) { throw new RepositoryException(absPath + " is not an absolute path"); } Node queryNode = session.getRootNode().addNode(absPath.substring(1), type); queryNode.setProperty("jcr:language", getLanguage()); queryNode.setProperty("jcr:statement", getStatement()); return factory.getNodeDecorator(session, queryNode); }
private void checkDeprecatedTypeNotInUse(final String nodeType) throws RepositoryException { final Query query = qm.createQuery("//element(*, " + nodeType + ")", Query.XPATH); final QueryResult queryResult = query.execute(); if (queryResult.getNodes().hasNext()) { final Node node = queryResult.getNodes().nextNode(); throw new RepositoryException(String.format( "Deprecated node type %s still in use at '%s'. Remove all usage of this node type before upgrading to v12", nodeType, node.getPath())); } }
@Override protected boolean nodeMatches(Node node) { try { return NodeTypes.User.NAME.equals(node.getPrimaryNodeType().getName()) && !excludedUserNames.contains(node.getName()); } catch (RepositoryException e) { log.error(e.getMessage(), e); return false; } }
private boolean getBoolean(String path, boolean defaultValue) { try { if (getNode().hasProperty(path)) { return getNode().getProperty(path).getBoolean(); } } catch (RepositoryException ex) { log.error(ex.getMessage()); } return defaultValue; }
private Node doImport(Node source) throws RepositoryException { try { this.importNode(getVersionSessionFor(source).getRootNode(), source); } catch (IOException ioe) { throw new RepositoryException("Failed to import node in magnolia version store : " + ioe.getMessage(), ioe); } Node root = getVersionSessionFor(source).getNodeByIdentifier(source.getIdentifier()); // save parent node since this node is newly created saveSessionWithoutPropertySessionWrapper(root.getSession()); return root; }