Skip to content
Other versions

Loading…

Create object samples

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

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

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

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

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