Свойства из аспектов, не установленных в CMIS 1.1 - PullRequest
0 голосов
/ 04 марта 2020

У нас проблема с объектом Folder и пользовательскими аспектами:

...
properties.put(PropertyIds.OBJECT_TYPE_ID, "F:sd:folderDocument,P:sd:info");
properties.put("sd:cause", "asdfg");
Folder stDocument = folder.createFolder(properties);
...

Содержимое sd: причина - это "ничто" в CMIS 1.1, но в CMIS 1.0 работает нормально.

НЕ WORK!

params.put (SessionParameter.ATOMPUB_URL, "http://localhost: 8084 / alfresco / api / -default- / public / cmis / версии / 1.1 / atom ");

РАБОТА!

params.put (SessionParameter.ATOMPUB_URL, "http://localhost: 8084 / alfresco / api / -default- / public / cmis / версии / 1.0 / atom");

Нужна работа в версии 1.1

Ответы [ 2 ]

0 голосов
/ 06 марта 2020

Модульный тест с cmis: primaryObjectTypeIds:

    @Test
    public void createStDocumentWithCMIS11() {
        String folderId = "workspace://SpacesStore/03de40f1-e80d-4e0d-8b67-67e93f6e30a1";

        // Connection and session to CMIS 1.1
        HashMap<String, String> params = new HashMap<>();
        params.put(SessionParameter.ATOMPUB_URL, "http://localhost:8084/alfresco/api/-default-/cmis/versions/1.1/atom");
        params.put(SessionParameter.USER, "admin");
        params.put(SessionParameter.PASSWORD, "admin");
        params.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
        params.put(SessionParameter.OBJECT_FACTORY_CLASS, "org.alfresco.cmis.client.impl.AlfrescoObjectFactoryImpl");

        SessionFactory factory = SessionFactoryImpl.newInstance();
        Session session = factory.getRepositories(params).get(0).createSession();

        // Find root folder
        Folder folder = (Folder) session.getObject(folderId);
        assertNotNull(folder);

        // Properties for type
        Map<String, Object> properties = new HashMap<>();
        properties.put(PropertyIds.NAME, "Test CMIS folder type stDocument");
        properties.put(PropertyIds.OBJECT_TYPE_ID, "F:sd:structDocument");
        properties.put("sd:situation", "situation");

        // Create folder
        Folder stDocument = folder.createFolder(properties);
        assertNotNull(stDocument);

        // Add secondary objects (Aspects)
        List<Object> aspects = stDocument.getProperty("cmis:secondaryObjectTypeIds").getValues();
        aspects.add("P:sd:additionalInfo");
        HashMap<String, Object> props = new HashMap<>();
        props.put("cmis:secondaryObjectTypeIds", aspects);
        stDocument.updateProperties(props);

        // Add aspect's property
        HashMap<String, Object> propsAspects = new HashMap<>();
        propsAspects.put("sd:cause", "test");
        stDocument.updateProperties(propsAspects);

        assertEquals("test", stDocument.getProperty("sd:cause").getValueAsString());
    }

Но не работает ...: (*

Error in JUnit

Field is empty

0 голосов
/ 05 марта 2020

В CMIS 1.1 вы добавляете аспект, добавляя идентификатор типа аспекта в свойство cmis: primaryObjectTypeIds. Вот пример: https://gist.github.com/jpotts/7242070

Убедитесь, что вы НЕ используете фабрику объектов под открытым небом из проекта расширений CMIS при использовании CMIS 1.1.

...