/** * {@inheritDoc} */ public void externalRegistered(Collection<QNodeTypeDefinition> ntDefs) throws RepositoryException, InvalidNodeTypeDefException { registerNodeTypes(ntDefs, true); }
/** * {@inheritDoc} */ public void externalRegistered(Collection<QNodeTypeDefinition> ntDefs) throws RepositoryException, InvalidNodeTypeDefException { registerNodeTypes(ntDefs, true); }
/** * Same as <code>{@link #registerNodeType(QNodeTypeDefinition)}</code> except * that a collection of <code>NodeTypeDef</code>s is registered instead of * just one. * <p> * This method can be used to register a set of node types that have * dependencies on each other. * * @param ntDefs a collection of <code>QNodeTypeDefinition</code> objects * @throws InvalidNodeTypeDefException if the given node type definition is invalid. * @throws RepositoryException if a repository error occurs. */ public void registerNodeTypes(Collection<QNodeTypeDefinition> ntDefs) throws InvalidNodeTypeDefException, RepositoryException { registerNodeTypes(ntDefs, false); }
/** * Same as <code>{@link #registerNodeType(QNodeTypeDefinition)}</code> except * that a collection of <code>NodeTypeDef</code>s is registered instead of * just one. * <p> * This method can be used to register a set of node types that have * dependencies on each other. * * @param ntDefs a collection of <code>QNodeTypeDefinition</code> objects * @throws InvalidNodeTypeDefException if the given node type definition is invalid. * @throws RepositoryException if a repository error occurs. */ public void registerNodeTypes(Collection<QNodeTypeDefinition> ntDefs) throws InvalidNodeTypeDefException, RepositoryException { registerNodeTypes(ntDefs, false); }
/** * Internal helper method for registering a list of node type definitions. * Returns a collection containing the registered node types. * * @param defs a collection of <code>QNodeTypeDefinition<code> objects * @return registered node types * @throws InvalidNodeTypeDefException if a nodetype is invalid * @throws RepositoryException if an error occurs */ private Collection<NodeType> registerNodeTypes(List<QNodeTypeDefinition> defs) throws InvalidNodeTypeDefException, RepositoryException { context.getNodeTypeRegistry().registerNodeTypes(defs); Set<NodeType> types = new HashSet<NodeType>(); for (QNodeTypeDefinition def : defs) { try { types.add(getNodeType(def.getName())); } catch (NoSuchNodeTypeException e) { // ignore } } return types; }
/** * Internal helper method for registering a list of node type definitions. * Returns a collection containing the registered node types. * * @param defs a collection of <code>QNodeTypeDefinition<code> objects * @return registered node types * @throws InvalidNodeTypeDefException if a nodetype is invalid * @throws RepositoryException if an error occurs */ private Collection<NodeType> registerNodeTypes(List<QNodeTypeDefinition> defs) throws InvalidNodeTypeDefException, RepositoryException { context.getNodeTypeRegistry().registerNodeTypes(defs); Set<NodeType> types = new HashSet<NodeType>(); for (QNodeTypeDefinition def : defs) { try { types.add(getNodeType(def.getName())); } catch (NoSuchNodeTypeException e) { // ignore } } return types; }
private void copyNodeTypes() throws RepositoryException { NodeTypeRegistry sourceRegistry = source.getNodeTypeRegistry(); NodeTypeRegistry targetRegistry = target.getNodeTypeRegistry(); logger.info("Copying registered node types"); Collection<Name> existing = Arrays.asList(targetRegistry.getRegisteredNodeTypes()); Collection<QNodeTypeDefinition> register = new ArrayList<QNodeTypeDefinition>(); for (Name name : sourceRegistry.getRegisteredNodeTypes()) { // TODO: what about modified node types? if (!existing.contains(name)) { register.add(sourceRegistry.getNodeTypeDef(name)); } } try { targetRegistry.registerNodeTypes(register); } catch (InvalidNodeTypeDefException e) { throw new RepositoryException("Unable to copy node types", e); } }
private void copyNodeTypes() throws RepositoryException { NodeTypeRegistry sourceRegistry = source.getNodeTypeRegistry(); NodeTypeRegistry targetRegistry = target.getNodeTypeRegistry(); logger.info("Copying registered node types"); Collection<Name> existing = Arrays.asList(targetRegistry.getRegisteredNodeTypes()); Collection<QNodeTypeDefinition> register = new ArrayList<QNodeTypeDefinition>(); for (Name name : sourceRegistry.getRegisteredNodeTypes()) { // TODO: what about modified node types? if (!existing.contains(name)) { register.add(sourceRegistry.getNodeTypeDef(name)); } } try { targetRegistry.registerNodeTypes(register); } catch (InvalidNodeTypeDefException e) { throw new RepositoryException("Unable to copy node types", e); } }
protected void setUp() throws Exception { isReadOnly = true; super.setUp(); InputStream xml = getClass().getClassLoader().getResourceAsStream(TEST_NODETYPES); QNodeTypeDefinition[] ntDefs = NodeTypeReader.read(xml); NodeTypeRegistry ntReg = ((SessionImpl) superuser).getNodeTypeManager().getNodeTypeRegistry(); if (!ntReg.isRegistered(ntDefs[0].getName())) { ntReg.registerNodeTypes(Arrays.asList(ntDefs)); } }
private void importTestNodeTypes() throws IOException, InvalidNodeTypeDefException, RepositoryException { // import some test node types that contain a node def with sameNameSiblings="false" InputStream xml = getClass().getClassLoader().getResourceAsStream(TEST_NODETYPES); QNodeTypeDefinition[] ntDefs = NodeTypeReader.read(xml); NodeTypeRegistry ntReg = ((SessionImpl) superuser).getNodeTypeManager().getNodeTypeRegistry(); if (!ntReg.isRegistered(ntDefs[0].getName())) { ntReg.registerNodeTypes(Arrays.asList(ntDefs)); } // make sure the node def is there as required for our test NodeTypeManager ntm = superuser.getWorkspace().getNodeTypeManager(); NodeType nodeType = ntm.getNodeType("test:childNodeType"); NodeDefinition[] childNodeDefinitions = nodeType.getChildNodeDefinitions(); boolean foundRequiredDef = false; for (NodeDefinition nodeDefinition : childNodeDefinitions) { String nodeDefName = nodeDefinition.getName(); if (nodeDefName.equals("test:defaultTypeNode") && !nodeDefinition.allowsSameNameSiblings()) { foundRequiredDef = true; break; } } assertTrue(TEST_NODETYPES + " has changed? Expected child node def 'test:defaultTypeNode' with sameNameSiblings=false", foundRequiredDef); } }
/** * A simple check, if a missing node type is found */ public void testRegisterSimpleMissingNodeTypes() { /** * Constructs node types with the following structure: * [foo] * + myNTInFoo (I_am_an_invalid_required_primary_type) * */ final QNodeTypeDefinitionBuilder foo = new QNodeTypeDefinitionBuilder(); foo.setName(nameFactory.create("", "foo")); foo.setSupertypes(new Name[]{NameConstants.NT_BASE}); QNodeDefinitionBuilder myBarInFoo = new QNodeDefinitionBuilder(); myBarInFoo.setRequiredPrimaryTypes(new Name[]{nameFactory.create("", "I_am_an_invalid_required_primary_type")}); myBarInFoo.setName(nameFactory.create("", "myNTInFoo")); myBarInFoo.setDeclaringNodeType(foo.getName()); foo.setChildNodeDefs(new QNodeDefinition[]{myBarInFoo.build()}); ntDefCollection = new LinkedList<QNodeTypeDefinition>(); ntDefCollection.add(foo.build()); try { ntreg.registerNodeTypes(ntDefCollection); assertFalse("Missing node type not found", true); } catch (InvalidNodeTypeDefException e) { assertTrue(true); } catch (RepositoryException e) { assertFalse("Wrong Exception thrown on missing node type.", true); e.printStackTrace(); } }
ntreg.registerNodeTypes(ntDefCollection); } catch (InvalidNodeTypeDefException e) { assertFalse(e.getMessage(), true);
ntreg.registerNodeTypes(ntDefCollection); } catch (InvalidNodeTypeDefException e) { assertFalse(e.getMessage(), true);