CMIS. Создание папок/файлов.

Сегодня хотел бы рассказать про добавления папок/файлов из сторонних приложений.

Мы будем использовать технологию CMIS.
CMIS - предлагаемый ведущими производителями пакет стандартов, состоящий из набора веб-сервисов для совместного использования информации, хранимой в несвязанных между собой хранилищах контента.(wiki)


Рассмотрим пример на языке Java.

1) Создадим Maven проект.  

2) Добавляем в pom.xml библиотеки:
<dependencies>
...
   <dependency>
	<groupId>org.apache.chemistry.opencmis</groupId>
	<artifactId>chemistry-opencmis-commons-api</artifactId>
	<version>0.12.0</version>
	</dependency>
	<dependency>
        	<groupId>org.apache.chemistry.opencmis</groupId>
		<artifactId>chemistry-opencmis-client-impl</artifactId>
		<version>0.12.0</version>
	</dependency>
</dependencies>
3) Создаем класс CMISTest, с кодом:
public class Main {
 
public void test(){
//Создаем фабрику и параметры
SessionFactory factory = SessionFactoryImpl.newInstance();
Map<String, String> parameter = new HashMap<String, String>();
 //Пользовательские настройки (логин и пароль)
parameter.put(SessionParameter.USER, "admin");
parameter.put(SessionParameter.PASSWORD, "admin");
 //Тип и метод подключения 
parameter.put(SessionParameter.ATOMPUB_URL, "http://localhost:8080/alfresco/api/-default-/cmis/versions/1.1/atom");
parameter.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
parameter.put(SessionParameter.REPOSITORY_ID, "-default-");
 //Создание сессии
Session session = factory.createSession(parameter);
 
//Переходим в папку, с указанным путь (путь должен быть относительно репозитория)
String path = "/Сайты/orders";
CmisObject object = session.getObjectByPath(path);
Folder rootFolder = (Folder)object;
//Создание папки внутри сайта
Map<String, Object> properties = new HashMap<String, Object>();
properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:folder");
properties.put(PropertyIds.NAME, "Наша новая папка");
Folder parent = rootFolder.createFolder(properties);
// Создание файла
Map<String, Object> propertiesd = new HashMap<String, Object>();
propertiesd.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document");
propertiesd.put(PropertyIds.NAME, "Наше название файла");
// контент файла
byte[] content = "Это контент".getBytes();
InputStream stream = new ByteArrayInputStream(content);
ContentStream contentStream = new ContentStreamImpl("Наше название файла", BigInteger.valueOf(content.length), "application/pdf", stream);
Document newDoc = parent.createDocument(propertiesd, contentStream, VersioningState.MAJOR);
 
public static void main(String[] args) throws Exception {	
   Main main = new Main();
   main.test();
}
 
}  Ну вот собственно и все, больше информации можно просомтреть на официальном сайте CMIS:chemistry.apache.org/java/opencmis.html
1603