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

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);			
    }
}