Professional Documents
Culture Documents
First Steps With Cmis
First Steps With Cmis
Alfresco
Jeff Potts
@jeffpotts01
http://ecmarchitect.com
#SummitNo
w
#SummitNo
#SummitNo
w w
#SummitNo
#SummitNo
w w
#SummitNo
#SummitNo
w w
Why CMIS?
Preferred API for working with Alfresco
Open standard, managed by OASIS
Many vendors support it
Plenty of examples
Client libraries for many languages
Java, Python, .NET, PHP, Objective-C,
Android
#SummitNo
#SummitNo
w w
http://chemistry.apache.org
#SummitNo
#SummitNo
w w
#SummitNo
#SummitNo
w w
#SummitNo
#SummitNo
w w
#SummitNo
#SummitNo
w w
Testing queries
Inspecting the data dictionary
Including whether or not a property
is read/write or queryable
Can I do _____________ with CMIS?
#SummitNo
#SummitNo
w w
3.2r2 3.4
http://localhost:8080/alfresco/service/cmis (ATOM)
http://localhost:8080/alfresco/cmis (SOAP)
4.0
http://localhost:8080/alfresco/cmisatom
http://localhost:8080/alfresco/cmis (SOAP)
4.2.d/4.2
http://localhost:8080/alfresco/api/-default-/cmis/versions/1.0/
Enterprise atom
http://localhost:8080/alfresco/api/-default-/cmis/versions/1.1/
atom
http://localhost:8080/alfresco/api/-default-/cmis/versions/1.1/
browser
http://localhost:8080/alfresco/cmis (SOAP)
#SummitNo
#SummitNo
w w
#SummitNo
#SummitNo
w w
#SummitNo
#SummitNo
w w
https://code.google.com/p/alfresco-api-java
#SummitNo
#SummitNo
w w
#SummitNo
#SummitNo
w w
#SummitNo
#SummitNo
w w
Best not to
even look at
one!
#SummitNo
#SummitNo
w w
Queries
CMIS queries are read-only
Do you really need everything?
select * from cmis:document
Do you really need all rows?
Use OperationContext to limit
#SummitNo
#SummitNo
w w
if (!doc.hasAspect("P:cm:geographic")) {
doc.addAspect("P:cm:geographic");
System.out.println("Added aspect");
} else {
System.out.println("Doc already had aspect");
}
HashMap<String, Object> props = new HashMap<String,
Object>();
props.put("cm:latitude", 52.513871);
props.put("cm:longitude", 13.391106);
#SummitNo
doc.updateProperties(props);
#SummitNo
w
#SummitNo
#SummitNo
w w
#SummitNo
#SummitNo
w w
#SummitNo
#SummitNo
w w
Other Limitations
Can only access objects that are
descendants of cm:content or
cm:folder
Cannot create users/groups
Cannot create or change types through
the API (yet)
Cannot work with categories or tags
#SummitNo
#SummitNo
w w
A Word About
Interoperability
#SummitNo
#SummitNo
w w
#SummitNo
#SummitNo
w w
#SummitNo
#SummitNo
w w
#SummitNo
w