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