Yet Another Alfresco-Liferay Integration

If you look around the market and communities which goes about Alfresco & Liferay you see a lots of posts & contributions regard integration. Yes, yes you might think what the hell is so impressive to have available on liferay-site a document-library of an ECM-System and on the other site you have an ECM-System which helds the data of content.

When we read about integration on newspapers, magazines, articles you probably come to conclusion that may Alfresco or Liferay is being handled as the “only-one-decision-and-devide” where the main controls goes about it. Is Liferay the leading-system which triggers permissions and other Stuff into Alfresco or Liferay? Call yourself!

Well mostly the easist (and mostly the unsilliest) decision is that Alfresco is the right System for all of this Stuff. The only thing you might want to reach is that a subset of that is being available in Liferay for management and collaboration. If you want to pull the trigger in Liferay regards Liferay-Permissions on Alfresco Documents / Folders you may get in  realy big trouble as Liferay does not realy know about the context-sensitive and transaction-handled data in Alfresco. Please put off you fingers of thoughts like on how to get the REALY BEST of both worlds.

To be honest with you - the most way on using a realy smart integration regarding Alfresco & Liferay is using the Lead-System and turning the most and impressive (user-)functionality into Liferay-Potential. The most impressive thing in Alfresco is DM AND Alfresco Share. Surely there exist more of features like this but you have to mention yourself honestly about the biggest matter right there.

So if we go back to the main topic you might wondering why we talking about that whole stuff here. Well in one of my projects on customer-side there comes a new need about Document-Management. At customers-site, the main efford-we have done until this point was to enable and implement a new strategy regarding portals & intranet so we´ve been introduced Liferay over months. The main-customer (new-) needs was to have a the best open source ECM-System on board and to harnessing the power of Liferay & Alfresco together. I´ve been comfortable with my recommendation to replace the existing document-library portlet in Liferay with Alfresco. But you have think twice about that integration-aproach as for example in Liferay  you can use the WCM-Editor to paste a Document (Link) via Liferay-Controls into the content using a document-browser. Futhermore this shall be true for ALL functionalities in Liferay which using document-management features of the standard document-library portlet.

Thats not trivial at all! Please think about the last sentences.

We have following (realy smart) requirements:

The only efficent way can be to reroute Liferay-Services to our own custom services which call Alfresco remotelly to catch documents and to perform operations on the content-store.

Web-Preview of Alfresco available under Lifray with that integration
Web-Preview of Alfresco available under Lifray with that integration

We´ve been done following approach to complete our task:

- Adding a Hook which overrides Document-Library Core-Service actions to our custom implementation class
- Adding Implementation class which performans queries using RivetLogic API towards Alfresco
- Adding custom Authentication to get rid of possible NTLM/LDAP (Password, Challanging, etc.) problematics
- Adding Webpreviewer in Liferay to enhance User-Expierience (you see the document before you have been download it)
- Adding some Business Rules on Alfresco Side to add custom Liferay data on each node

You might asking yourself why we using RivetLogic API instead of using CMIS? Well we´ve done that implementation a year ago. At this time there was no “stable” cmis available (0.7 …). We want to use a stable and fast-learning API to get the turnaround right here.

Yesterday we´ve brought to a new customer our newest release of the integration. The customer is using

It is possible to arrange an backport/forport-process for other versions.

Comments

Leave a Reply




Security Code: