Author Archive

How to Revert a Non-Versioned CRX Instance

Monday, March 7th, 2011

There’s one really big drawback to the CQ/CRX package manager…

Imagine you have a application code package with a filter of “/apps/myApp”, which has been built from a recently updated SVN working copy. You want to update your local CRX repository, but you also have current development under way which will be overwritten by the package. Well, in most cases you can remember to make a backup package singling out only your local changes, build that package, install the full code refresh from SVN, and then install your backup package immediately afterward, effectively overlaying your changes/additions on top of an updated code-base. This works, but what if for some reason you forget to back up your local changes in this manner? Once a full package has been installed, there’s no way to go back, right?


OSGi Bundles, Apache Felix and Versioning

Thursday, March 3rd, 2011

I recently had an experience while working with a customer that has prompted me once again to post about what it taught me. The requirement that drove this experience was the necessity for a Maven/AntHill build and deploy automation for CQ package and OSGi bundle deployments. In order to make sure that all our code (bundles, jsp and design) was deployed simultaneously, we decided to take advantage of the “install” directory that can be located as a child of an “/apps/myApp” directory in CQ. This “install” directory is treated as a watched directory by the OSGi installer, and so any jars in that directory will be auto-installed upon installation of the package…or so we thought…


JQuery and Form Validation

Monday, September 27th, 2010

Today I ran into an interesting issue with the combination of the jquery.uniform plug-in in combination with the jquery.validate plug-in. The issue arose because a client had delivered me a very nicely styled contact form, skinned with the Uniform plug-in for JQuery, but the validation they had used on the previous iteration of their site was a somewhat clunky Javascript function with only a standard browser alert box if any required fields weren’t filled in properly.


Solr Search, Stop Words and DisMax Search Handler

Thursday, July 1st, 2010

Yesterday I ran across an interesting issue while troubleshooting a Solr (Lucene-based search server) issue for a client. Basically, the client has a CQ 5.3 implementation, but for various reasons they decided to use Solr for search on their site as opposed to using the built-in JCR search. No biggie, but they eventually noticed the following issue: say a page is named “The Black Cat was Crossing the Street”, if a user enters “the black cat was crossing the street” they would get no results. However, if they entered “black cat crossing street” they would get the expected page OR if they entered “the black cat was crossing the street” as a phrase-search (with actual double quotes surrounding it), they would also get the expected result.


Blog Trickery Using XML-RPC

Monday, June 28th, 2010

I was recently asked by a client to explore a proof of concept to create a servlet within the CQ system that could receive requests via XML-RPC from a mobile or desktop based WordPress blogging application and basically trick it into thinking it was communicating with a WordPress blog. The idea was to let the authors of their blog pages have the flexibility to use pre-existing blogging applications without having to limit the pages themselves to rely on pre-fabricated blogging solutions such as Blogger, WordPress, or Movable Type.


HTC Droid Incredible – Part II

Friday, June 11th, 2010

I recently realized that it has been almost a month since my last blog post, and much longer than that since I was anticipating the delivery of my new HTC Droid Incredible. Clearly I’ve had a lot of time to use the phone since then, and so I’ve decided to follow up with a minor review of the product.


HTML5 After a Glance

Tuesday, May 18th, 2010

It’s been a little while since my last post, the reason for this being that I’m settling into a pretty rigorous schedule with my new contract, and have not had a chance to do much experimenting. After my last post, which was a response to Steve Jobs’ “Thoughts on Flash” article, I decided that my next little programming experiment should be to explore (at least preliminarily) HTML5 and start to formulate an idea for myself of the pros and cons of this new markup language.


Re: Steve Jobs’ “Thoughts on Flash”

Thursday, April 29th, 2010

Steve Jobs recently posted the following article on Apple’s website, presumably to speak to the masses of people asking why the company is refusing to entertain support for Adobe’s Flash plug-in on their mobile devices. You can read the article here:, and then feel free to come back and read my thoughts…on his thoughts.


HTC Droid Incredible

Tuesday, April 27th, 2010

In a couple days, I’ll return home to LA from a 4 day Seattle work-week and waiting for me at home will be a brand new HTC Droid Incredible. There are two main reasons why I finally decided to give up my featureless, but reliable Blackberry for this particular smartphone:


OSGi Bundles…creating reference to BundleContext

Wednesday, April 21st, 2010

This week I was tasked with a relatively complex task by a client, which is requiring me to create an OSGi component that directly interacts with other OSGi services within the repository. My experience with OSGi being relatively minimal, I ran into a little snag: how to reference other OSGi services (a service can be an Interface or a Component) in the repository from MY OSGi component.