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