Java Code Examples for org.alfresco.repo.dictionary.M2Model#createNamespace()
The following examples show how to use
org.alfresco.repo.dictionary.M2Model#createNamespace() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: RuleServiceCoverageTest.java From alfresco-repository with GNU Lesser General Public License v3.0 | 5 votes |
/** * Create the categories used in the tests */ private void createTestCategories() { // Create the test model M2Model model = M2Model.createModel("test:rulecategory"); model.createNamespace(TEST_NAMESPACE, "test"); model.createImport(NamespaceService.DICTIONARY_MODEL_1_0_URI, "d"); model.createImport(NamespaceService.CONTENT_MODEL_1_0_URI, NamespaceService.CONTENT_MODEL_PREFIX); // Create the region category regionCategorisationQName = QName.createQName(TEST_NAMESPACE, "region"); M2Aspect generalCategorisation = model.createAspect("test:" + regionCategorisationQName.getLocalName()); generalCategorisation.setParentName("cm:" + ContentModel.ASPECT_CLASSIFIABLE.getLocalName()); M2Property genCatProp = generalCategorisation.createProperty("test:region"); genCatProp.setIndexed(true); genCatProp.setIndexedAtomically(true); genCatProp.setMandatory(true); genCatProp.setMultiValued(true); genCatProp.setStoredInIndex(true); genCatProp.setIndexTokenisationMode(IndexTokenisationMode.TRUE); genCatProp.setType("d:" + DataTypeDefinition.CATEGORY.getLocalName()); // Save the mode dictionaryDAO.putModel(model); // Create the category value container and root catContainer = nodeService.createNode(rootNodeRef, ContentModel.ASSOC_CHILDREN, QName.createQName(TEST_NAMESPACE, "categoryContainer"), ContentModel.TYPE_CONTAINER).getChildRef(); catRoot = nodeService.createNode(catContainer, ContentModel.ASSOC_CHILDREN, QName.createQName(TEST_NAMESPACE, "categoryRoot"), ContentModel.TYPE_CATEGORYROOT).getChildRef(); // Create the category values catRBase = nodeService.createNode(catRoot, ContentModel.ASSOC_CATEGORIES, QName.createQName(TEST_NAMESPACE, "region"), ContentModel.TYPE_CATEGORY).getChildRef(); catROne = nodeService.createNode(catRBase, ContentModel.ASSOC_SUBCATEGORIES, QName.createQName(TEST_NAMESPACE, "Europe"), ContentModel.TYPE_CATEGORY).getChildRef(); catRTwo = nodeService.createNode(catRBase, ContentModel.ASSOC_SUBCATEGORIES, QName.createQName(TEST_NAMESPACE, "RestOfWorld"), ContentModel.TYPE_CATEGORY).getChildRef(); catRThree = nodeService.createNode(catRTwo, ContentModel.ASSOC_SUBCATEGORIES, QName.createQName(TEST_NAMESPACE, "US"), ContentModel.TYPE_CATEGORY).getChildRef(); }
Example 2
Source File: ComparePropertyValueEvaluatorTest.java From alfresco-repository with GNU Lesser General Public License v3.0 | 5 votes |
private void createTestModel() { M2Model model = M2Model.createModel("test:comparepropertyvalueevaluatortest"); model.createNamespace(TEST_TYPE_NAMESPACE, "test"); model.createImport(NamespaceService.DICTIONARY_MODEL_1_0_URI, NamespaceService.DICTIONARY_MODEL_PREFIX); model.createImport(NamespaceService.SYSTEM_MODEL_1_0_URI, NamespaceService.SYSTEM_MODEL_PREFIX); model.createImport(NamespaceService.CONTENT_MODEL_1_0_URI, NamespaceService.CONTENT_MODEL_PREFIX); M2Type testType = model.createType("test:" + TEST_TYPE_QNAME.getLocalName()); testType.setParentName("cm:" + ContentModel.TYPE_CONTENT.getLocalName()); M2Property prop1 = testType.createProperty("test:" + PROP_TEXT.getLocalName()); prop1.setMandatory(false); prop1.setType("d:" + DataTypeDefinition.TEXT.getLocalName()); prop1.setMultiValued(false); M2Property prop2 = testType.createProperty("test:" + PROP_INT.getLocalName()); prop2.setMandatory(false); prop2.setType("d:" + DataTypeDefinition.INT.getLocalName()); prop2.setMultiValued(false); M2Property prop3 = testType.createProperty("test:" + PROP_DATETIME.getLocalName()); prop3.setMandatory(false); prop3.setType("d:" + DataTypeDefinition.DATETIME.getLocalName()); prop3.setMultiValued(false); M2Property prop4 = testType.createProperty("test:" + PROP_NODEREF.getLocalName()); prop4.setMandatory(false); prop4.setType("d:" + DataTypeDefinition.NODE_REF.getLocalName()); prop4.setMultiValued(false); M2Property prop5 = testType.createProperty("test:" + PROP_MULTI_VALUE.getLocalName()); prop5.setMandatory(false); prop5.setType("d:" + DataTypeDefinition.TEXT.getLocalName()); prop5.setMultiValued(true); dictionaryDAO.putModel(model); }
Example 3
Source File: ModelTrackerIT.java From SearchServices with GNU Lesser General Public License v3.0 | 5 votes |
@SuppressWarnings("unchecked") private String setUpTestTrackModels() throws AuthenticationException, IOException, JSONException { QName modelName = QName.createQName("qname"); TYPE type = TYPE.CHANGED; Long oldChecksum = new Long(0); Long newChecksum = new Long(1); AlfrescoModelDiff diff = new AlfrescoModelDiff(modelName, type, oldChecksum, newChecksum); List<AlfrescoModelDiff> modelDiffs = new ArrayList<>(); modelDiffs.add(diff); when(this.repositoryClient.getModelsDiff(any(String.class),any(List.class))).thenReturn(modelDiffs); final String name = "a model name"; M2Model model = M2Model.createModel(name); M2Model spiedModel = spy(model); model.createNamespace("uri", "prefix"); AlfrescoModel alfrescoModel = new AlfrescoModel(spiedModel, newChecksum); when(this.repositoryClient.getModel(any(String.class),eq(modelName))).thenReturn(alfrescoModel); NamespaceDAO namespaceDao = mock(NamespaceDAO.class); Collection<String> values = new ArrayList<>(); values.add("prefix"); when(namespaceDao.getPrefixes(anyString())).thenReturn(values); when(this.srv.getNamespaceDAO()).thenReturn(namespaceDao); when(this.srv.getM2Model(modelName)).thenReturn(spiedModel); when(this.srv.putModel(spiedModel)).thenReturn(true); return name; }
Example 4
Source File: CustomModelImportTest.java From alfresco-remote-api with GNU Lesser General Public License v3.0 | 5 votes |
public void testUploadModel_Invalid() throws Exception { long timestamp = System.currentTimeMillis(); final String modelName = getClass().getSimpleName() + timestamp; final String prefix = "prefix" + timestamp; final String uri = "uriNamespace" + timestamp; M2Model model = M2Model.createModel(prefix + QName.NAMESPACE_PREFIX + modelName); model.setAuthor("Admin"); model.setDescription("Desc"); ByteArrayOutputStream xml = new ByteArrayOutputStream(); model.toXML(xml); ZipEntryContext context = new ZipEntryContext(modelName + ".xml", xml.toByteArray()); File zipFile = createZip(context); PostRequest postRequest = buildMultipartPostRequest(zipFile); sendRequest(postRequest, 409); // no namespace has been defined // Create two namespaces model.createNamespace(uri, prefix); model.createNamespace(uri + "anotherUri", prefix + "anotherPrefix"); xml = new ByteArrayOutputStream(); model.toXML(xml); context = new ZipEntryContext(modelName + ".xml", xml.toByteArray()); zipFile = createZip(context); postRequest = buildMultipartPostRequest(zipFile); sendRequest(postRequest, 409); // custom model can only have one namespace }
Example 5
Source File: UpdateRepoEventIT.java From alfresco-repository with GNU Lesser General Public License v3.0 | 4 votes |
@Test public void testUpdateNodeTypeWithCustomType() { String modelName = "testModel" + System.currentTimeMillis(); String modelDescription = "testModel description"; Pair<String, String> namespacePair = getNamespacePair(); M2Model model = M2Model.createModel(namespacePair.getSecond() + QName.NAMESPACE_PREFIX + modelName); model.createNamespace(namespacePair.getFirst(), namespacePair.getSecond()); model.setDescription(modelDescription); String typeName = "testType"; M2Type m2Type = model.createType(namespacePair.getSecond() + QName.NAMESPACE_PREFIX + typeName); m2Type.setTitle("Test type title"); // Create active model CustomModelDefinition modelDefinition = retryingTransactionHelper.doInTransaction(() -> customModelService.createCustomModel(model, true)); assertNotNull(modelDefinition); assertEquals(modelName, modelDefinition.getName().getLocalName()); assertEquals(modelDescription, modelDefinition.getDescription()); // List all of the model's types Collection<TypeDefinition> types = modelDefinition.getTypeDefinitions(); assertEquals(1, types.size()); // node.Created event should be generated for the model RepoEvent<EventData<NodeResource>> resultRepoEvent = getRepoEvent(1); assertEquals("Wrong repo event type.", EventType.NODE_CREATED.getType(), resultRepoEvent.getType()); NodeResource nodeResource = getNodeResource(resultRepoEvent); assertEquals("Incorrect node type was found", "cm:dictionaryModel", nodeResource.getNodeType()); final NodeRef nodeRef = createNode(ContentModel.TYPE_CONTENT); // old node's type assertEquals(ContentModel.TYPE_CONTENT, nodeService.getType(nodeRef)); // node.Created event should be generated resultRepoEvent = getRepoEvent(2); assertEquals("Wrong repo event type.", EventType.NODE_CREATED.getType(), resultRepoEvent.getType()); nodeResource = getNodeResource(resultRepoEvent); assertEquals("cm:content node type was not found", "cm:content", nodeResource.getNodeType()); QName typeQName = QName.createQName("{" + namespacePair.getFirst()+ "}" + typeName); retryingTransactionHelper.doInTransaction(() -> { nodeService.setType(nodeRef, typeQName); // new node's type assertEquals(typeQName, nodeService.getType(nodeRef)); return null; }); // we should have 3 events, node.Created for the model, node.Created for the node and node.Updated checkNumOfEvents(3); resultRepoEvent = getRepoEvent(3); assertEquals("Wrong repo event type.", EventType.NODE_UPDATED.getType(), resultRepoEvent.getType()); nodeResource = getNodeResource(resultRepoEvent); assertEquals("Incorrect node type was found", namespacePair.getSecond() + QName.NAMESPACE_PREFIX + typeName, nodeResource.getNodeType()); NodeResource resourceBefore = getNodeResourceBefore(3); assertEquals("Incorrect node type was found", "cm:content", resourceBefore.getNodeType()); assertNull(resourceBefore.getId()); assertNull(resourceBefore.getContent()); assertNull(resourceBefore.isFile()); assertNull(resourceBefore.isFolder()); assertNull(resourceBefore.getModifiedByUser()); assertNull(resourceBefore.getCreatedAt()); assertNull(resourceBefore.getCreatedByUser()); assertNull(resourceBefore.getProperties()); assertNull(resourceBefore.getAspectNames()); assertNull(resourceBefore.getPrimaryHierarchy()); }
Example 6
Source File: CopyServiceImplTest.java From alfresco-repository with GNU Lesser General Public License v3.0 | 4 votes |
/** * Creates the test model used by the tests */ private void createTestModel() { M2Model model = M2Model.createModel("test:nodeoperations"); model.createNamespace(TEST_TYPE_NAMESPACE, "test"); model.createImport(NamespaceService.DICTIONARY_MODEL_1_0_URI, NamespaceService.DICTIONARY_MODEL_PREFIX); model.createImport(NamespaceService.SYSTEM_MODEL_1_0_URI, NamespaceService.SYSTEM_MODEL_PREFIX); model.createImport(NamespaceService.CONTENT_MODEL_1_0_URI, NamespaceService.CONTENT_MODEL_PREFIX); M2Type testType = model.createType("test:" + TEST_TYPE_QNAME.getLocalName()); testType.setParentName("cm:" + ContentModel.TYPE_CONTENT.getLocalName()); M2Property prop1 = testType.createProperty("test:" + PROP1_QNAME_MANDATORY.getLocalName()); prop1.setMandatory(true); prop1.setType("d:" + DataTypeDefinition.TEXT.getLocalName()); prop1.setMultiValued(false); M2Property prop2 = testType.createProperty("test:" + PROP2_QNAME_OPTIONAL.getLocalName()); prop2.setMandatory(false); prop2.setType("d:" + DataTypeDefinition.TEXT.getLocalName()); prop2.setMandatory(false); M2Property propNodeRef = testType.createProperty("test:" + PROP_QNAME_MY_NODE_REF.getLocalName()); propNodeRef.setMandatory(false); propNodeRef.setType("d:" + DataTypeDefinition.NODE_REF.getLocalName()); propNodeRef.setMandatory(false); M2Property propAnyNodeRef = testType.createProperty("test:" + PROP_QNAME_MY_ANY.getLocalName()); propAnyNodeRef.setMandatory(false); propAnyNodeRef.setType("d:" + DataTypeDefinition.ANY.getLocalName()); propAnyNodeRef.setMandatory(false); M2ChildAssociation childAssoc = testType.createChildAssociation("test:" + TEST_CHILD_ASSOC_TYPE_QNAME.getLocalName()); childAssoc.setTargetClassName("sys:base"); childAssoc.setTargetMandatory(false); M2Association assoc = testType.createAssociation("test:" + TEST_ASSOC_TYPE_QNAME.getLocalName()); assoc.setTargetClassName("sys:base"); assoc.setTargetMandatory(false); M2Aspect testAspect = model.createAspect("test:" + TEST_ASPECT_QNAME.getLocalName()); M2Property prop3 = testAspect.createProperty("test:" + PROP3_QNAME_MANDATORY.getLocalName()); prop3.setMandatory(true); prop3.setType("d:" + DataTypeDefinition.TEXT.getLocalName()); prop3.setMultiValued(false); M2Property prop4 = testAspect.createProperty("test:" + PROP4_QNAME_OPTIONAL.getLocalName()); prop4.setMandatory(false); prop4.setType("d:" + DataTypeDefinition.TEXT.getLocalName()); prop4.setMultiValued(false); M2Aspect testMandatoryAspect = model.createAspect("test:" + TEST_MANDATORY_ASPECT_QNAME.getLocalName()); M2Property prop5 = testMandatoryAspect.createProperty("test:" + PROP5_QNAME_MANDATORY.getLocalName()); prop5.setType("d:" + DataTypeDefinition.TEXT.getLocalName()); prop5.setMandatory(true); testType.addMandatoryAspect("test:" + TEST_MANDATORY_ASPECT_QNAME.getLocalName()); dictionaryDAO.putModel(model); }
Example 7
Source File: CustomModelsImpl.java From alfresco-remote-api with GNU Lesser General Public License v3.0 | 4 votes |
/** * Converts the given {@code org.alfresco.rest.api.model.CustomModel} * object, a collection of {@code org.alfresco.rest.api.model.CustomType} * objects, a collection of * {@code org.alfresco.rest.api.model.CustomAspect} objects, and a collection of * {@code org.alfresco.rest.api.model.CustomModelConstraint} objects into a {@link M2Model} object * * @param customModel the custom model * @param types the custom types * @param aspects the custom aspects * @param constraints the custom constraints * @return {@link M2Model} object */ private M2Model convertToM2Model(CustomModel customModel, Collection<CustomType> types, Collection<CustomAspect> aspects, Collection<CustomModelConstraint> constraints) { validateBasicModelInput(customModel); Set<Pair<String, String>> namespacesToImport = new LinkedHashSet<>(); final String namespacePrefix = customModel.getNamespacePrefix(); final String namespaceURI = customModel.getNamespaceUri(); // Construct the model name final String name = constructName(customModel.getName(), namespacePrefix); M2Model model = M2Model.createModel(name); model.createNamespace(namespaceURI, namespacePrefix); model.setDescription(customModel.getDescription()); String author = customModel.getAuthor(); if (author == null) { author = getCurrentUserFullName(); } model.setAuthor(author); // Types if(types != null) { for(CustomType type : types) { validateName(type.getName(), TYPE_NAME_NULL_ERR); M2Type m2Type = model.createType(constructName(type.getName(), namespacePrefix)); m2Type.setDescription(type.getDescription()); m2Type.setTitle(type.getTitle()); setParentName(m2Type, type.getParentName(), namespacesToImport, namespacePrefix); setM2Properties(m2Type, type.getProperties(), namespacePrefix, namespacesToImport); } } // Aspects if(aspects != null) { for(CustomAspect aspect : aspects) { validateName(aspect.getName(), ASPECT_NAME_NULL_ERR); M2Aspect m2Aspect = model.createAspect(constructName(aspect.getName(), namespacePrefix)); m2Aspect.setDescription(aspect.getDescription()); m2Aspect.setTitle(aspect.getTitle()); setParentName(m2Aspect, aspect.getParentName(), namespacesToImport, namespacePrefix); setM2Properties(m2Aspect, aspect.getProperties(), namespacePrefix, namespacesToImport); } } // Constraints if(constraints != null) { for (CustomModelConstraint constraint : constraints) { validateName(constraint.getName(), CONSTRAINT_NAME_NULL_ERR); final String constraintName = constructName(constraint.getName(), namespacePrefix); M2Constraint m2Constraint = model.createConstraint(constraintName, constraint.getType()); // Set title, desc and parameters setConstraintOtherData(constraint, m2Constraint, null); } } // Add imports for (Pair<String, String> uriPrefix : namespacesToImport) { // Don't import the already defined namespace if (!namespaceURI.equals(uriPrefix.getFirst())) { model.createImport(uriPrefix.getFirst(), uriPrefix.getSecond()); } } return model; }
Example 8
Source File: CustomModelImportTest.java From alfresco-remote-api with GNU Lesser General Public License v3.0 | 4 votes |
public void testUploadModel_UnsupportedModelElements() throws Exception { // Note: here we only test a couple of not-supported model elements to check for the correct status code. // This test should be removed when we implement the required support long timestamp = System.currentTimeMillis(); final String modelName = getClass().getSimpleName() + timestamp; final String prefix = "prefix"+timestamp; final String uri = "uriNamespace"+timestamp; final String aspectName = prefix + QName.NAMESPACE_PREFIX + "testAspec"; final String typeName = prefix + QName.NAMESPACE_PREFIX + "testType"; final String associationName = prefix + QName.NAMESPACE_PREFIX + "testAssociation"; M2Model model = M2Model.createModel(prefix + QName.NAMESPACE_PREFIX + modelName); model.createNamespace(uri, prefix); model.setAuthor("John Doe"); model.createAspect(aspectName); model.createImport(NamespaceService.CONTENT_MODEL_1_0_URI, NamespaceService.CONTENT_MODEL_PREFIX); M2Type type = model.createType(typeName); // Add 'association' not supported yet. M2Association association = type.createAssociation(associationName); association.setSourceMandatory(false); association.setSourceMany(false); association.setTargetMandatory(false); association.setTargetClassName("cm:content"); ByteArrayOutputStream xml = new ByteArrayOutputStream(); model.toXML(xml); ZipEntryContext context = new ZipEntryContext(modelName + ".xml", xml.toByteArray()); File zipFile = createZip(context); PostRequest postRequest = buildMultipartPostRequest(zipFile); sendRequest(postRequest, 409); // <associations> element is not supported yet type.removeAssociation(associationName); // Add 'mandatory-aspect' not supported yet. type.addMandatoryAspect(aspectName); xml = new ByteArrayOutputStream(); model.toXML(xml); context = new ZipEntryContext(modelName + ".xml", xml.toByteArray()); zipFile = createZip(context); postRequest = buildMultipartPostRequest(zipFile); sendRequest(postRequest, 409); // <mandatory-aspects> element is not supported yet }
Example 9
Source File: CustomModelImportTest.java From alfresco-remote-api with GNU Lesser General Public License v3.0 | 4 votes |
public void testInvalidNumberOfZipEntries() throws Exception { long timestamp = System.currentTimeMillis(); String modelName = getClass().getSimpleName() + timestamp; String prefix = "prefix" + timestamp; String uri = "uriNamespace" + timestamp; // Model one M2Model modelOne = M2Model.createModel(prefix + QName.NAMESPACE_PREFIX + modelName); modelOne.createNamespace(uri, prefix); modelOne.setDescription("Model 1"); ByteArrayOutputStream xml = new ByteArrayOutputStream(); modelOne.toXML(xml); ZipEntryContext contextOne = new ZipEntryContext(modelName + ".xml", xml.toByteArray()); // Model two modelName += "two"; prefix += "two"; uri += "two"; M2Model modelTwo = M2Model.createModel(prefix + QName.NAMESPACE_PREFIX + modelName); modelTwo.createNamespace(uri, prefix); modelTwo.setDescription("Model 2"); xml = new ByteArrayOutputStream(); modelTwo.toXML(xml); ZipEntryContext contextTwo = new ZipEntryContext(modelName + ".xml", xml.toByteArray()); // Model three modelName += "three"; prefix += "three"; uri += "three"; M2Model modelThree = M2Model.createModel(prefix + QName.NAMESPACE_PREFIX + modelName); modelThree.createNamespace(uri, prefix); modelThree.setDescription("Model 3"); xml = new ByteArrayOutputStream(); modelThree.toXML(xml); ZipEntryContext contextThree = new ZipEntryContext(modelName + ".xml", xml.toByteArray()); File zipFile = createZip(contextOne, contextTwo, contextThree); PostRequest postRequest = buildMultipartPostRequest(zipFile); sendRequest(postRequest, 400); // more than two zip entries }