Adobe CQ 5.5 – Platform Architecture Refurbish

CQ 5.5 logo
This year I got an early Christmas gift: a beta version of the upcoming Day CQ 5.5 – the newest incarnation of the Adobe Digital Enterprise Platform. The previous version was released soon after Adobe acquired the product and had but subtle touches made to it. This one seems more like the first stage in a major review of the whole architecture. Let’s see what changed and how it affects migration and future work on the platform.

Everything is running in OSGi

This has been rumoured about for quite a while and came more as a relief than a surprise. CQ 5.5 is finally a 100% OSGi application. Now, what does that really mean?

For as long as I remember (and that dates back to the days of Communiqué 4), CQ has been a set of two webapps running in a standalone servlet engine (by default: CQSE). The first application was CRX, and the second WCM – in CQ5 called “Launchpad”. Launchpad is an OSGi application with Sling, WCM, DAM and the rest of the family. In the two-webapp setup, Sling is accessing CRX using JNDI via an in-memory service provider. Well, it works, but feels awkward – we’ve got OSGi and yet, we use it only for a part of the application. Of course, one could argue that it is a sound failover – even when your OSGi goes wahoomi, you still have access to CRX over HTTP (so e.g. data backup is still an option), but I’ve always asked myself – is it really worth it?

It seems that it wasn’t – in CQ 5.5 everything lives inside OSGi. CQSE is an OSGi bundle (provides org.osgi.service.http and javax.servlet) and so is CRX that provides the repository as an OSGi service. RMI / JNDI are still available, but don’t seem to be used in the stack (client repository configuration is gone).

What does it mean migration-wise? Not much, really. All my applications are already working in OSGi, accessing CRX via Sling and not depending on JNDI, and even if yours did depend on JNDI – it’s still there as an option. The only scenario where something would have to be rewritten is when one had another webapp on CQSE – but I can’t imagine why would anyone want to do that. I’m not sure, though, what happens with deployments on different servlet engines (Tomcat, Weblogic, etc.). Maybe CQ5.5 will be available as a webapp too – I think we’ll have to wait for the official release notes and supported platforms to answer that.

Consoles clean-up

Another change that it brought is clean-up in consoles. /admin is now gone – CQSE is configured in Felix Configuration Manager. If you are looking for /crx, it is now /crx/explorer, and some CRX tools are exposed as separate OSGi servlets or are integrated into Felix Web Console. A very good side-effect is that now we can change instance’s admin password in a single place – CRX.

Package manager also got unified – there’s only one, and it’s the CRX one: /crx/packmgr (the WCM one – /etc/packages.list.html – is no more). Functionally nothing changed, but I’ll have to update one of my Maven plugins that was relying on the old console to deploy CQ packages.

Next steps

That’s more or less all I’ve figured out by now. Unfortunately, I didn’t get the updated documentation yet, so some areas leave me with more questions than answers. In the next few days I’ll be hunting API changes and testing feature compatibility to estimate the effort of upgrading our customers when this version is out. I’ll post my findings here as I go. Just bear in mind that it’s still beta, and everything is subject to change. Some features may not even make it into the final release. Having said that – I can’t imagine big changes like putting OSGi on the bottom of the stack being reverted. After all, it’s too good to throw it away.

  • Anonymous

    Great post.

    For a while I have looked for the improvements of CQ5.5, your blog helped me test the new version of CQ5.5.

    Regards,

    • Pavankumar

      Hi enrique,
      Can u provide me with the new CQ 5.5 installation jar ? Is there any other way out to get it ?

      • JEM

        Good question. For over a week I’ve been trying to get a demo jar to test drive.

  • Ravindareddy

    cheer to CQ 5.5 and OSGI

  • yogesh

    nice post.. just wondering , where do I update RMI config in CQ 5.5?

    • Pavankumar

      Hi Yogesh,
      Can u provide me with the new CQ 5.5 installation jar ? Is there any other way out to get it ?

      • Upadhyay Yogesh

        @Pavan,

        Do you have license for CQ ? You can open daycare ticket to get jar file or use licensing site to download one for your self.

    • Upadhyay Yogesh

      There is no simple way to use RMI in CQ5.5. Any way RMI is deprecated and replaced by WebDav API.

      Another Yogesh :)

      • Seer

        The documentation for WebDav API says the libraries are available at crx-quickstart/opt/examples/davex-client/lib. But i was not able to find this under opt folder. Is there a list of libraries that need to be added for the web dav call to work.

        / WebDAV remoting access to a CRX server
        JcrUtils.getRepository(“http://localhost:7402/crx/server”);

        // RMI remoting access to a CRX server (with RMI enabled)
        JcrUtils.getRepository(“rmi://localhost:1099/crx”);

        Any help in the regard would be greatly appreciated.

  • Rush_pawan

    How about writing servlet because i have created servlet using “SlingAllMethodsServlet”
    (which is not exposed in build path, provided manually in build path) but at runtime the custom servlet is not available getting 404 error. Do we have any other option to create sling servlet now?

  • Pit

    In CQ 5.5 there is no more Servlet Engine Administration Console under /admin/webapps
    Is not possible any more ti deploy a third party web apps into CQ SE?

    • Jan Kuźniak

      Yes, with the servlet engine being moved into OSGi, the only way to deploy a new webapp is to do OSGi-fy your war and deploy it as a bundle. There are some other OSGi web containers that allow you to deploy a standard jar – if you need that, you may consider replacing CQSE with one of those.