A better way to manage Maven dependencies in Adobe CQ5

    Sunday, January 27, 2013

    When starting a new CQ5 project, setting up a Maven POM with project dependencies can be an unnecessarily time-consuming task.  Dependencies specified in the POM file must match those provided by the CQ5 OSGi container to prevent deployment and runtime issues, and the process of manually extracting Maven metadata from OSGi bundles in the Felix console is tedious and error-prone.  We can do better, and fortunately, Adobe has provided the Maven Archiva Servlet to streamline this process.

    posted by Mark Daugherty

    CQ5 Groovy Console 2.0.0 Released!

    Thursday, September 13, 2012

    It's been over a year since the initial release of the CQ5 Groovy Console, and we've since added a significant number of new features and enhancements to improve the usability of the tool. Version 2.0.0 was released this week; some highlights are listed below:

    posted by Mark Daugherty

    Complex validation of CQ5 dialog fields using a custom Sling servlet

    Monday, April 16, 2012

    Dialog fields in CQ5 occasionally require validation that cannot be handled with static constraints or regular expressions. However, this type of validation can be easily accomplished by delegating the validation function to a custom servlet. The implementation details and code samples below describe a viable solution for most validation scenarios.

    posted by Mark Daugherty

    Groovy in session at Über Conf 2011

    Friday, July 22, 2011

    Denver, CO July 12-15, 2011 The best possible outcome for a developer attending a software conference is to leave feeling inspired and invigorated — anxious to explore new tools & technologies while gaining no more than 10 pounds in cookie-weight. NFJS had assembled an impressive variety of sessions, but I opted to focus on those related to the Groovy ecosystem, plus a few Scala and NoSQL sessions to escape my comfort zone. I’ll further limit my observations below to three Groovy-based tools in particular — Spock, Geb, and Gradle.

    posted by Mark Daugherty

    Groovy web console for Adobe CQ5 and JCR

    Monday, June 20, 2011

    I’ve been using Groovy as much as possible on CQ5 projects, mainly for building supplementary tools and running scripts against the content repository (JCR). The underlying Sling framework provides built-in Groovy support, so it’s a simple matter of uploading the latest Groovy jar to your local server (via the Felix console) to tap into the dynamic, functionally-styled, syntactically-sugary goodness of Groovy on your CQ5 instance.

    posted by Mark Daugherty

    A SpringOne2GX Chrestomathy

    Tuesday, October 26, 2010

    As a largely developer-oriented software conference, I didn’t really know what to expect from last week’s SpringOne2GX in Chicago. Honestly, I was prepared to sit through several bone-dry, monotonous technical dissertations. But, as Tim Berglund launched into his excellent “Grails in the Real World” session, my concerns faded quickly. This was the first time I’d seen Tim in action, and his blend of high-energy charisma and impressive Grails expertise was an easy highlight of the conference.

    posted by Mark Daugherty

    Groovy + JSON, in an OSGi container?

    Saturday, October 23, 2010

    Very specific usage, yes, but I needed it for a custom script in a Day CQ5 project. The popular JSON-lib library has integrated Groovy support, but devolves into dependency hell when attempting to load into an OSGi container. Rather than plunge myself into a minor nightmare, I instead opted for the Jackson JSON Processor, which contains the necessary bundle metadata, but no built-in Groovy support. HOWEVER, their ObjectMapper class can bind a JSON string to a Map, which allows me to harness the beauty of Groovy map navigation. Behold.

    posted by Mark Daugherty

    Grails ate my Spring persistence layer

    Friday, May 7, 2010

    The time-saving aspects of using Grails for web application development have been well-documented. Take, for example, an ordinary Spring/JPA application. I did a quick analysis of such an application as a concrete example of just how much code and development effort could have been saved by using the GORM features of Grails alone.

    posted by Mark Daugherty

    Making a mockery of CQ5 with JMockit

    Monday, February 8, 2010

    Java mocking tools are notorious for their limitations. Ideally, one would not have to compromise design and code integrity for testability, but the reality is that the restrictions of popular testing frameworks such as jMock, Mockito, and EasyMock cause headaches for many developers. Does this look familiar?

    posted by Mark Daugherty

    Deadliest Cache?

    Monday, October 26, 2009

    I recently looked into third-party caching solutions for use in a CMS application. For a few previous projects, I’d written a simple map-backed cache to hold objects such as search results and expensive lookups. This was simple enough to implement, but once I started eating up hours adding timeouts, changing map implementations, and adding multiple caches, I decided I should stop trying to reinvent the wheel and instead go with the time-honored tradition of using someone else’s.

    posted by Mark Daugherty
Top