private Node createNodeForModelId(ModelId id) throws RepositoryException {
    StringBuilder pathBuilder = new StringBuilder();
    Iterator<String> modelIdIterator = id.iterator();
    Node rootNode = session.getRootNode();
    while (modelIdIterator.hasNext()) {
      String nextPathFragment = modelIdIterator.next();
      pathBuilder.append(nextPathFragment).append("/");
      try {
        rootNode.getNode(pathBuilder.toString());
      } catch (PathNotFoundException pathNotFound) {
        Node addedNode = rootNode.addNode(pathBuilder.toString(), "nt:folder");
        addedNode.setPrimaryType("nt:folder");
      }
    }

    return rootNode.getNode(id.getFullPath().substring(1));
  }
Example #2
0
  @Test
  @FixFor("MODE-1663")
  public void shouldMakeReferenceableNodesUsingCustomTypes() throws Exception {
    Node cars = session.getNode("/Cars");
    cars.addNode("referenceableCar1", "car:referenceableCar");
    Node refCar = cars.addNode("referenceableCar2");
    refCar.setPrimaryType("car:referenceableCar");

    session.save();

    Node referenceableCar1 = session.getNode("/Cars/referenceableCar1");
    String uuid = referenceableCar1.getProperty(JcrLexicon.UUID.getString()).getString();
    assertEquals(referenceableCar1.getIdentifier(), uuid);

    Node referenceableCar2 = session.getNode("/Cars/referenceableCar2");
    uuid = referenceableCar2.getProperty(JcrLexicon.UUID.getString()).getString();
    assertEquals(referenceableCar2.getIdentifier(), uuid);
  }