Create object samples

Using CMIS the user can only create Folders and Documents into OpenKM. 

Relationships, Policies and Items are not supported in this version. 

This is a list with a bunch of examples about how to create objects in OpenKM using CMIS.  For a full specification of CMIS services please visit CMIS documentation

If your repository is in File Plan Mode you could create Record and Email objects in OpenKM through CMIS services. 

Record will be managed using Folder object just adding custom properties.

Email will be managed using Document object with custom properties.

Create folder

Sample for creating a folder in OpenKM using CMIS.

// default factory implementation
SessionFactory factory = SessionFactoryImpl.newInstance();
Map<String, String> parameters = new HashMap<String, String>();

// user credentials
parameters.put(SessionParameter.USER, "okmAdmin");
parameters.put(SessionParameter.PASSWORD, "admin");

// connection settings
parameters.put(SessionParameter.BROWSER_URL, "http://localhost:8080/openkm/cmis/browser");
parameters.put(SessionParameter.BINDING_TYPE, BindingType.BROWSER.value());		

// create session
List<Repository> list= factory.getRepositories(parameters);

// List every repository found
for (Repository repository: list) {
    System.out.println("New repository found: " + repository.getId());
    System.out.println("Capabilities: ");
    System.out.println(repository.getCapabilities());	
    // Create session
    Session session = repository.createSession();
    
    // Get the folder
    Folder folder = session.getRootFolder();
                

    // Set properties
    Map<String, Object> properties = new HashMap<String, Object>();
    properties.put(PropertyIds.NAME, "my_folder");
    properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:folder");

    // Create folder
    Folder newFolder = folder.createFolder(properties);
}

Create document

Sample for creating a document using CMIS.

// default factory implementation
SessionFactory factory = SessionFactoryImpl.newInstance();
Map<String, String> parameters = new HashMap<String, String>();

// user credentials
parameters.put(SessionParameter.USER, "okmAdmin");
parameters.put(SessionParameter.PASSWORD, "admin");

// connection settings
parameters.put(SessionParameter.BROWSER_URL, "http://localhost:8080/openkm/cmis/browser");
parameters.put(SessionParameter.BINDING_TYPE, BindingType.BROWSER.value());		

// create session
List<Repository> list= factory.getRepositories(parameters);

// List every repository found
for (Repository repository: list) {
    System.out.println("New repository found: " + repository.getId());
    System.out.println("Capabilities: ");
    System.out.println(repository.getCapabilities());	
    // Create session
    Session session = repository.createSession();
    
    // Get the folder
    Folder folder = session.getRootFolder();
                
    // Create a txt file
    String content = "Hello World!";
    String filename = "hello_world.txt";
    String mimetype = "text/plain; charset=UTF-8";
    byte[] contentBytes = content.getBytes("UTF-8");
    ByteArrayInputStream stream = new ByteArrayInputStream(contentBytes);

    // Create content stream
    ContentStream contentStream = session.getObjectFactory().createContentStream(filename, contentBytes.length, mimetype, stream);

    // Create properties object
    Map<String, Object> properties = new HashMap<String, Object>();
    properties.put(PropertyIds.NAME, filename);
    properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document");
    // Create document
    Document newDocument = folder.createDocument(properties, contentStream, VersioningState.NONE);
}

 Copy a document to a folder

Sample for copying an existing OpenKM document into a OpenKM folder.

The "3864027b-f181-4291-8e63-d602ee850a8f" is the unique id - uuid - of the document into OpenKM.

// default factory implementation
SessionFactory factory = SessionFactoryImpl.newInstance();
Map<String, String> parameters = new HashMap<String, String>();

// user credentials
parameters.put(SessionParameter.USER, "okmAdmin");
parameters.put(SessionParameter.PASSWORD, "admin");

// connection settings
parameters.put(SessionParameter.BROWSER_URL, "http://localhost:8080/openkm/cmis/browser");
parameters.put(SessionParameter.BINDING_TYPE, BindingType.BROWSER.value());		

// create session
List<Repository> list= factory.getRepositories(parameters);

// List every repository found
for (Repository repository: list) {
    System.out.println("New repository found: " + repository.getId());
    System.out.println("Capabilities: ");
    System.out.println(repository.getCapabilities());	
    // Create session
    Session session = repository.createSession();
    
    // Get the folder
    Folder folder = session.getRootFolder();
                
    // Get the document
    CmisObject cmisObject = session.getObject("3864027b-f181-4291-8e63-d602ee850a8f");

    // Copy the document to the folder
    if (cmisObject instanceof Document) {
    	Document document = (Document) cmisObject;
    	document.copy(folder);			
    }
}