Sign in using Google or Yahoo! id.  

CMIS Alfresco Example

 Comments Share:   Twitter   Reddit   HackerNews   Facebook 
package opencmistest;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.chemistry.opencmis.client.api.*;
import org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl;
import org.apache.chemistry.opencmis.commons.SessionParameter;
import org.apache.chemistry.opencmis.commons.data.PropertyData;
import org.apache.chemistry.opencmis.commons.enums.BindingType;

/**
 *
 * @author subwiz
 */
public class Main {
    
    private static String getType(ObjectType o) {
        if(o instanceof FolderType) {
            return "Folder";
        }
        else if(o instanceof DocumentType) {
            return "Document";
        }
        return o.toString();
    }
    
    public static void main(String[] arg) throws Exception {
        Map<String, String> parameter = new HashMap<String, String>();

        // Set the user credentials
        parameter.put(SessionParameter.USER, "admin");
        parameter.put(SessionParameter.PASSWORD, "admin");

        // Specify the connection settings
        parameter.put(SessionParameter.ATOMPUB_URL, "http://localhost:8080/alfresco/cmisatom");
        parameter.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());

        // Set the alfresco object factory
        parameter.put(SessionParameter.OBJECT_FACTORY_CLASS, "org.alfresco.cmis.client.impl.AlfrescoObjectFactoryImpl");

        // Create a session
        SessionFactory factory = SessionFactoryImpl.newInstance();
        List<Repository> repositories = factory.getRepositories(parameter);
        for(Repository r: repositories) {
            System.out.println("Id: " + r.getId());
            System.out.println("Name: " + r.getName());
            System.out.println("Description: " + r.getDescription());
        }
        System.out.println();
        Session session = repositories.get(0).createSession();
        
        // Folder browsing example:
        Folder folder = session.getRootFolder();
        for(CmisObject obj: folder.getChildren()) {
            System.out.println("Name: " + obj.getName());
            System.out.println("Id: " + obj.getId());
            System.out.println("Type: " + getType(obj.getType()));
            System.out.println();
        }
        
        // Query example:
        for(QueryResult result: session.query("SELECT cmis:name, cmis:objectId AS MyId from cmis:document where cmis:name =  'myfile.ext'", false)) {
            System.out.println(result.getProperties());
            for(PropertyData data: result.getProperties()) {
                System.out.println(data.getQueryName());
                System.out.println(data.getValues());
            }
        }
    }
}

Posted on May 03, 2012 05:15 PM by Subhash Chandran
alfresco chemistry cmis opencmis
blog comments powered by Disqus