Projet esup-ecm

Recherche

Sommaire

Pages enfant
  • Accès nuxeo via CMIS

Vous regardez une version antérieure (v. /wiki/spaces/PROJESUPECM/pages/84803718/Acc%C3%A8s+nuxeo+via+CMIS) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 4) afficher la version suivante »

Introduction

Nuxeo propose(ra) une interface CMIS a partir de la version 5.3.1

En attendant la disponibilité de cette version une pré-version est disponible via http://cmis.demo.nuxeo.org/nuxeo/

Le gros avantage de CMIS est que c'est un standard et devrait permettre le développement de nombreuses solution interopérables.

Utilisation de Chemistry

A ce jour il existe peu d'implémentation JAVA de CMIS. Nuxeo est fortement impliqué dans le projet apache Chemistry qui proposent des implémentations client et serveur.

Pour construire ce projet et mettre les jar dans votre dépôt maven il faut faire :

Mise en place du projet

  1. mvn archetype:create -DgroupId=fr.univrennes1.testCMIS -DartifactId=testCMIS -DpackageName=fr.univrennes1.testCMIS
  2. modification su pom.xml pour ajouter les dépendances requises :
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<groupId>fr.univrennes1.testCMIS</groupId>
    	<artifactId>testCMIS</artifactId>
    	<packaging>jar</packaging>
    	<version>1.0-SNAPSHOT</version>
    	<name>testCMIS</name>
    	<url>http://maven.apache.org</url>
    	<dependencies>
    		<dependency>
    			<groupId>junit</groupId>
    			<artifactId>junit</artifactId>
    			<version>3.8.1</version>
    			<scope>test</scope>
    		</dependency>
    		<dependency>
    			<groupId>org.apache.chemistry</groupId>
    			<artifactId>chemistry-api</artifactId>
    			<version>0.5-SNAPSHOT</version>
    		</dependency>
    		<dependency>
    			<groupId>org.apache.chemistry</groupId>
    			<artifactId>chemistry-commons</artifactId>
    			<version>0.5-SNAPSHOT</version>
    		</dependency>
    		<dependency>
    			<groupId>org.apache.chemistry</groupId>
    			<artifactId>chemistry-atompub</artifactId>
    			<version>0.5-SNAPSHOT</version>
    		</dependency>
    		<dependency>
    			<groupId>org.apache.chemistry</groupId>
    			<artifactId>chemistry-atompub-client</artifactId>
    			<version>0.5-SNAPSHOT</version>
    		</dependency>
    	</dependencies>
    </project>
    
  3. Création du projet eclipse : mvn eclipse:eclipse

Code

package fr.univrennes1.testCMIS;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.chemistry.CMISObject;
import org.apache.chemistry.Connection;
import org.apache.chemistry.ContentStream;
import org.apache.chemistry.Document;
import org.apache.chemistry.Folder;
import org.apache.chemistry.NameConstraintViolationException;
import org.apache.chemistry.Repository;
import org.apache.chemistry.RepositoryInfo;
import org.apache.chemistry.UpdateConflictException;
import org.apache.chemistry.atompub.client.APPContentManager;
import org.apache.chemistry.impl.simple.SimpleContentStream;

public class Cmis
{
    public static void main( String[] args ) throws NameConstraintViolationException, UpdateConflictException, IOException
    {
    	//************* diverses initialisations *************
    	String url = "http://cmis.demo.nuxeo.org/nuxeo/site/cmis/repository";
        String username = "Administrator";
        String password = "Administrator";
        String path = "/default-domain/workspaces/demo-workspace/testrb";
        String DOSSIER1 = "dossier1";
        String FICHIER1 = "fichier1";
        //Application
		APPContentManager cm = new APPContentManager(url);
		cm.login(username, password);
		//repository
        Repository repository = cm.getRepository("default");
        RepositoryInfo info = repository.getInfo();
        System.out.println("Description : " + info.getDescription());
        System.out.println(info.getVendorName() + ", " + info.getProductName() + ", " + info.getProductVersion());
        //connexion
        Connection connection = repository.getConnection(null);
        //racine de travail
		Folder root = connection.getFolder(path);
        System.out.println("folder = " + root.getName() + ", date création =" + root.getCreationDate());

    	//************* Suppression de Dossier1 *************
        Folder dossier1 = connection.getFolder(path + "/" + DOSSIER1);
        if (dossier1 != null) {
        	for (CMISObject object : dossier1.getChildren()) {
        		object.delete();
			}
            dossier1.delete();
            System.out.println("Dossier supprimé");
		}

        //************* création du dossier "Dossier1" *************
        Folder newFolder = root.newFolder("cmis:folder");
        newFolder.setName(DOSSIER1);
        newFolder.save();
        System.out.println("Dossier créé");

		//************* création du fichier "Fichier1" *************
        Document newDocument = newFolder.newDocument("cmis:document");
        newDocument.setName(FICHIER1);
        newDocument.save();
        System.out.println("Fichier créé");

		//************* upload du contenu *************
        String fic = "metro.pdf";
        FileInputStream in = new FileInputStream("/A_GARDER_UN_PEU/nuxeo-dev/workspace/testCMIS/src/main/resources/" + fic);
        ContentStream stream = new SimpleContentStream(in, "application/pdf", fic);
        newDocument.setContentStream(stream);
        newDocument.save();
        System.out.println("Fichier chargé");

        connection.close();
        cm.logout();
    }
}

Remarques

  • Aucune étiquette