Latest Posts

Archives [+]

Categories [+]

Authors [+]

Entries filed under 'cq5'

    Posted by Florian Schaulin AUG 09, 2010

    Posted in announcements and cq5 Comment 1

    I am pleased to announce the availablility of a Cumulative Feature Pack for Performance Improvements for CQ5.3. The Performance Pack is a Roll-up of 61 Performance related Hotfixes and Featurepacks, optimizing the CQ5 administration and usage on various aspects. The Knowledge Base contains an article listing all fixes (customer login required). Please verify if the individual features are related to your implementation before installing it. The Performance Pack is available on Day's Package Share.

    In case you want to receive automated notifications on news like this: there is an RSS feed for product updates.

    We have put together some slides on the Pack. In case you have a question please contact customengineering@day.com

    Posted by Jean-Michel Pittet FEB 01, 2010

    Posted in announcements, cq5, crx, day and jsr-283 Comments 3

    I'm very excited to see CQ 5.3 generally available. Existing CQ customers can download their copy of CQ 5.3 on Daycare. If you are not an existing customer get in touch to get an evaluation copy.

    This release is a combination of over 125 new features and 1250 enhancements. I'm very thankful for the collaboration with many of our customers and the great feedback we have received.

    CQ 5.3 includes a release of CRX 2.0 - our implementation of the JCR 2.0 standard (JSR-283). The next release CRX 2.1 will be available as a stand-alone version.

    David talked about the highlights of the release in his presentations (embedded below). To get a glimps of more of the features please take a look at our release notes on our documentation site. And stay tuned to this blog and www.day.com where we will be presenting more indepth information and some updated screencasts.

    Posted by Michael Marth JAN 20, 2010

    Posted in announcements and cq5 Comments 2

    It is a pleasure to announce that the dev.day.com blog has been migrated onto CQ5.3. Along the way, we have brought the visual design up to date and added the portal page.

    Thanks a lot to the (small) team that made it happen!

    Posted by Michael Marth DEC 28, 2009

    Posted in cq5, iks-project and tutorial Comment 1

    As part of the IKS project each CMS vendor completes a couple of benchmarks in order to establish a baseline against which future semantic improvements can be measured. For benchmark 3 "Workflow Service" Bertrand and I chose to implement the task "Create a multi-channel (email, SMS, instant messaging, Twitter,...) notification service for workflow transitions". We have created an automated workflow step that can be inserted into a custom workflow and either send an e-mail, send a direct message on Twitter or send a chat message on GTalk/Jabber. The corresponding message's payload is the path to the content node in the workflow plus an optional custom text.

    Below follows a description how this functionality was implemented in CQ5. The complete code is attached to this post as a CQ5 package. I will outline of some of the considerations and gotchas regarding this particular feature, but some issues apply to CQ5 development in general as well. The environment I used for development was CRXDE Lite (the web-based IDE available at /crxde of your CQ5 installation) and a beta version of the upcoming CQ5 release 5.3. It is probably helpful to install the package (see setup section below) and read the code alongside with this post.

    OSGi services

    A good way to hook up external services like Twitter etc. is to create a custom OSGi service that exposes only the business functionality and hides the internal classes. Moreover, it is good practice to provide a Java interface and the separate the implementation of the service (allowing the replacement of the implementation without affecting relying parties). The services will show up in the Sling configuration console at /system/console/configMgr. This allows the administrator to configure the service's private parameters at deployment time (in our case Twitter account credentials and Jabber user credentials). The config is consumed by the service like e.g.:

    /** @scr.property */
    public static final String GTALK_USER = "gtalk.service.user"; 
    /** @scr.property */
    public static final String GTALK_PASSWORD = "gtalk.service.password";   
    
    protected void activate(ComponentContext context) {
        Dictionary config = context.getProperties();
        user = (String) config.get(GTALK_USER);
        password = (String) config.get(GTALK_PASSWORD);
    }

    3rd party libraries

    In order to use Twitter and Jabber I utilized the open source libraries Twitter4J and Smack, respectively. With CRXDE (Lite) it is very simple to include such 3rd party jars in a custom OSGi bundle: just drop them in the bundle's /libs folder. When building the bundle CRXDE will embed them. Compilation and deployment is done by executing "Build Bundle" (right-click on the .bnd file in the bundle root).

    A note on 3rd party jar's dependencies

    It might well be that the bundle compiles and deploys, but does not start. Check the OSGi console at /system/console/bundles to find out if your bundle's state is "Active" (good) or just "Installed" (not good). The latter happens e.g. when the embedded jar has dependencies on other jars that are not embedded. In such a case check the bundle's details page in the Sling console to find out which dependencies are missing and either add them to /libs as well or take them out of the OSGi imports. That is achieved by editing the .bnd file's import directive, e.g.

    Import-Package: !com.sun.syndication.*, !dalvik.system, *
    

    Workflow action

    The last needed piece is a workflow step that can be added into a custom workflow. For that purpose one simply needs to create a class that implements the Interface JavaProcessExt. The method execute will receive the workflow's payload - from there is is trivial to obtain the services described above and pass them the content. CQ Workflow Actions can be customized for each particular workflow they are used in. I use this feature to customize the accounts to which a message shall be sent (the custom format is explained in the setup section below). The customization string is passed to the execute method as well: comma-separated values will arrive as a String[] array.

    Setting up the package

    To get this up and running download the attached CQ5 package and install it throught the package manager. In the Sling console configure the the services com.day.cq.mailer.impl.MailerService, com.day.iks.service.impl.TwitterServiceImpl and com.day.iks.service.impl.GtalkServiceImpl. For Twitter and Gtalk you need to supply the credentials of the (technical) user that shall send the DMs or chat messages, respectively. In the case of e-mail you need to configure your mail server.

    Next, create a custom workflow in the CQ5 workflow section and add the workflow action (name). The configuration options are:

    • for sending an e-mail: email,user@mydomain.com,some_message
    • for sending a direct message on Twitter: dm,twitter_user,some_message
    • for sending a chat message on Gtalk: gtalk,user@gmail.com,some_message

    The (optional) message will be appended with the content item's path.

    Here is an example for GTalk:

    In the cases of Twitter DM and GTalk make sure that the recipient has opted-in to receive messages from the technical user you have configured as a sender.

    Posted by David Nuescheler DEC 02, 2009

    Posted in cms and cq5 Comment 1

    Here is a short presentation with my personal top ten features in our upcoming release. Of course, this would ideally be accompanied by short fast paced demos, so if you are interested in getting personalized demo or a video, please reach out to us.