CMIS and Database Migration

When I was at the European Symposium, I was surprised how many people said to me "Gosh I wish Liferay could do ABC," in which I responded, "But it has -- ever since version X.YZ!"  But I guess part of that is my fault since I don't blog that much about my work.

In any case, I just wanted to highlight two features coming out with 5.3 that some people may be interested in.

1. Content Management Interoperability Services (CMIS)

This is a new standard that's been brewing to allow for different CMS systems to interchange information.  It is basically another JSR-170 with two important differences: (1) it is not Java-specific and (2) it is document-manangement-centric.  So, our PHP friends, for example, can make a CMIS repository that can be accessed by Liferay or any other CMIS consumer.  For us, we interoperate with a several different types of repositories (e.g., JCR, S3), so I basically just built a hook for CMIS.

If you were interested in enabling this feature, you need to have a CMIS producer setup, and in your portal.properties configure the following:

    dl.hook.impl=com.liferay.documentlibrary.util.CMISHook
    cmis.credentials.username=none
    cmis.credentials.password=none

Also, depending on your CMIS producer, you may have to change the repository URL.  That's about it!  Just one note... CMIS is currently not finalised so it is still at version 0.61.  I'm following the changes in the standard so when it gets to 1.0, we should be able to support that without much trouble.

2. Database Migration

Have you ever setup an entire project, then wonder why you were using the default demo DB Hypersonic and wanted to move to something else?  Or for some reason, just enjoyed changing DBMS every other week?  Well, if you do, I've got news for you -- you can now migrate the data from your existing database to a new one.

All you have to do, is create a new schema in your new database, go to the "Data Migration" tab under the "Server Management" control panel, fill in the JDBC information, and voila!  Data is moved.  After everything is done, your server will be shutdown.  Remember to change your portal.properties to point to the new database, and startup your server again.

Okay, that's it for now.  Next time I'll try to come out with updating more frequently.

Blogs
Hi Alexander. Nice feature - CMIS Hook.

One question, can move Hooks (JCR, FileSystem, CMIS, S3) from portal-impl into portal-service so plugins could use them?

Thanks

Jonas Yuan
Hi Alex, Thank you.

The feature Database Migration is very cool! Can Data Migration cover two parts: database migration and repository migration?

Migrating data from different hooks: FileSystem, JCR, CMIS, S3, should be very useful, too.
@Jonas My plate is pretty full right now, so I am checking into the possibility of somebody else getting Minhchau's repository migration tool moved into trunk.

@Mark It will only be able to access repositories built by Liferay. Part of the reason is the standard is so open that it makes certain features optional (e.g., versioning) whereas for Liferay, it is mandatory (so we have use a custom algorithm to version those files). The main advantage of CMIS (and JCR, S3, etc.) is giving you options for scalability, technology know-how, etc.
Hi Alexander,
very nice feature, of a great interest.
I'm just a little bit puzzled looking at versioning information.
Portal 6.0 is indicated, and it is somewhere stated in the comments that it should be 5.something, which a version not yet released.
End of January 2009, what is finally the status and the release to consider?
I also would like to know if CMIS integration can be done as well with tomcat bundle than other bundles based on EJB application server such as Glassfish of JBOSS.
Thanks by advance.

Nicolas
I'm not only puzzled but also not awake. It is of course January 2010 and not 2009 ;)
@Nicolas 5.3 = 6.0. The upcoming release was renumbered recently due to a list of factors. In any case, the CMIS integration exists regardless of app server.

Additionally, early in January, I committed 1.0 of the draft. So the CMIS integration will support any server that handles 1.0 as well.
Hi Alexander,
The Database Migration feature is just what I'm looking for, great job!
Is there any way to use this feature on a Liferay 5.2.3 Database? I’m using PostgreSQL.8.3 and would like to migrate to Oracle XE.

Regards
/Per Boman
@Per Boman Unfortunately, the code that implemented the change required some significant changes in the service builder and generated code. Hence, this would not be something that can easily be backported to 5.2.3. Sorry about that.
This seems very interesting, however I only get the message: "No data migration processes are available".

I'm using: Liferay Portal Standard Edition 5.2.3 (Augustine / Build 5203 / May 20, 2009)
Any idea how to migrate data from 4.2.2 to 6.0.6? To be concrete... I would only like to migrate users and their personal data. I will setup roles, groups, layouts, pages etc from scratch.

I'm pretty much aware that this will have to be done by hands. But I would be very grateful for any tips on necessary steps or maybe even which tables to pay attention to.