• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Alfresco: What every developer should know

Alfresco: What every developer should know



If you and I were having coffee and you asked what you should know about Alfresco before starting your project, this is what I'd tell you.

If you and I were having coffee and you asked what you should know about Alfresco before starting your project, this is what I'd tell you.



Total Views
Views on SlideShare
Embed Views



1 Embed 29

https://twitter.com 29



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment
  • This is not an exhaustive or very detailed list. This is basically what I’d tell someone just getting started with Alfresco if we had just enough time for a coffeePHOTO CREDIT: Coffee Shop by bunchofpants, cc by-nc-sa, http://www.flickr.com/photos/bunchofpants/100442520/
  • Look for model management tools on http://addons.alfresco.comAt a bare minimum, you need a model-context.xml and a model.xml file. Most people will also have a UI config file for Share. See http://ecmarchitect.com for a tutorial.
  • See http://ecmarchitect.com for a rule actions tutorial.
  • See http://ecmarchitect.com for a web scripts tutorial.
  • Emphasize the different set of objects point. This trips up a lot of people.A side-note, somewhat related is that JavaScript exists in both tiers and in the browser. So when you are debugging JavaScript or asking someone a question, it usually saves time if you clarify exactly where your JavaScript is running.
  • See CMIS & Apache Chemistry in Action, by Florian Mueller, Jay Brown, and Jeff Potts, Manning (2013)
  • Ruby, Perl, C++ libraries available elsewhere, not in Apache Chemistry (yet)
  • Use a standard extension mechanism instead.

Alfresco: What every developer should know Alfresco: What every developer should know Presentation Transcript

  • What Every New Developer Should Know About Alfresco Jeff Potts Chief Community Officer
  • CoffeeShopbyBbunchofpants
  • Content Models The rough equivalent to Data Definition Language in Alfresco
  • Everything is a node, nodes are typed Content Model is expressed in XML • Defines types, aspects, properties, associations, const raints • Cold-deploy most common, hot deploy possible Hierarchical • Types inherit from super types Extend the out-of-the-box model with your own
  • Forms Forms are modeled in XML • Explorer: web-client-config-custom.xml • 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
  • Rules You can automate a lot of content processing using rules that trigger rule actions
  • Rules save time Defined in the UI by end-users If 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
  • Web Scripts Roll your own REST API using this MVC framework or leverage the out- of-the-box URLs
  • Roll your own REST API Web Script Framework used to 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
  • Out-of-the-box URLs Web script console lists all web scripts • 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
  • Web Scripts run in both tiers Web scripts exist in both tiers They access different sets of objects They communicate over HTTP/S Code running in the browser can invoke web scripts in either tier (not shown) XML/JSON over HTTP/S Apache Tomcat Spring Surf Web Script Framework alfresco.war Spring Surf Web Script Framework share.war
  • CMIS CMIS is the preferred API for integrating with Alfresco
  • The Beauty of CMIS My Custom Application Third-Party Systems CMIS API Standard integration Standard integration
  • Use CMIS for CRUD functions Important ECM industry specification managed 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
  • Extensions Avoid changing files included with the Alfresco distribution
  • Use AMPs to package extensions An AMP is a ZIP 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_An d_Deploying_Extensions
  • Debugging Use the source, turn up logging verbosity, leverage one of many consoles
  • Developer, heal thyself Configure Eclipse for remote debugging Turn up 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 if you are doing Share custs
  • Asking for Help Help the Alfresco community help you
  • Help us help you The community welcomes everyone Invest some sweat equity • Read the docs • Search the web • Try a few things before asking for help Be specific Be polite Pay it forward
  • Resources Alfresco Forums http://forums.alfresco.com Alfresco Wiki http://wiki.alfresco.com Alfresco Blogs http://blogs.alfresco.com CMIS Resources http://cmis.alfresco.com ECM Architect Blog http://ecmarchitect.com Documentation http://docs.alfresco.com Freenode IRC #alfresco Code Examples http://code.google.com/p/share -extras https://code.google.com/p/alfre sco-api-java-examples/ https://github.com/jpotts/alfresc o-developer-series Full list at: http://www.alfresco.com/resources/doc umentation/getting-started
  • Thank You! Jeff Potts @jeffpotts01 http://ecmarchitect.com