expressed in XML • Defines types, aspects, properties, associations, constraints • Cold-deploy most common, hot deploy possible Hierarchical • Types inherit from super types Extend the out-of-the-box model with your own
Share: share-config-custom.xml Form Service • Processes and persists form data • Filters for intercepting form data before and after form submit • RESTful API for retrieving form model as JSON
this (criteria) then that (action) Associated with a folder • Can optionally be applied to sub-folders Can easily add your own custom actions to the list
declare a URL, bind it to logic, provide views • Model-View-Controller pattern • Controller implemented in server-side JavaScript or Java • Views implemented in FreeMarker Deployed to the repository or the classpath Can also have web scripts on the Share tier
http://localhost:8080/alfresco/service/index • http://localhost:8080/share/service/index Pay attention to the lifecycle • Lifecycle “internal” may change without warning Use CMIS or public API whenever possible
by OASIS Alfresco uses OpenCMIS, the de facto standard implementation of the spec • Available at http://chemistry.apache.org All you need is a service URL • http://localhost:8080/alfresco/cmisatom (4.x) For Java, Python, .NET, PHP, Objective-C, Android libraries see Apache Chemistry
with a special folder structure, a manifest, and a funny name The MMT is used to deploy (merge) your AMPs with alfresco.war and share.war Use AMPs even when you do not intend to publicly distribute your customizations https://wiki.alfresco.com/wiki/ Packaging_And_Deploying_Extensions
logging in log4j.properties Turn on the server-side JavaScript debugger Use a client-side JavaScript debugger Use Florian Maul’s JavaScript Console Use the Node Browser Use the OpenCMIS Workbench Use SurfBug