- Andrew Kos
- Bill Burlein
- Bryan Williams
- Christian Vozar
- Jeff Brown
- John Kraus
- Joseph Mak
- Mark Daugherty
- Matt Van Bergen
- Melissa Geoffrion
- Michael Kang
- Michael Chan
- Michael Hodgdon
- Mike Motherway
- Molly McDaniel
- Nadia Maciulis
- Pat McLoughlin
- Paul Michelotti
- Puru Hemnani
- Rohit Srinath
- Ryan Lunka
- Tom Kelly
All Blogs
CITYTECH Blogroll:
Archive for 2008
JBoss DNA, Hello.
December 31, 2008 7:16 PM
I suprised I didn’t come across this earlier. JBoss has a released a new federated repository system: DNA. http://www.jboss.org/dna I’ve caught up with the getting started document and the reference guide, and I quite like what I see. First things first, DNA is itself not a JCR implementation (yet). Rather, it unifies one or more repositories and provides a single point of access via the JCR API. The repositories themselves may be JCR compliant, but do not have to be. DNA comes with a variety of connectors such as the JCR, JDBC, and SVN connectors.
Tutorial: Jackrabbit OCM & Spring Modules JCR
December 20, 2008 3:15 AM
Introduction Here is a brief tutorial on how to setup and object content mapping with Jackrabbit (1.5) and Spring. First things first, download this zip and import the source into your project. As mentioned in this post support for Jackrabbit OCM in Spring still hasn’t found a home. Thus you have to download the zip from the JIRA.
Spring, JAX-RS, Freemarker, & MVC
December 16, 2008 5:57 AM
I’ve realized that JAX-RS can be used to build a web applications based on the MVC pattern just like any other framework (Wicket, Stripes, etc). Typically I use JAX-RS to build services that return XML and/or JSON, but there is no reason I can’t return HTML as well. I feel that the hierarchal nature of RESTful services makes them perfect for delivering website pages too. The only thing that was missing for me was an HTML provider. I’m used to using the JAXB and JSON providers, and I didn’t see a built in one for rendering HTML. So, I decided to build a custom JAX-RS Freemarker provider.
Ubuntu, OpenSolaris, or PC-BSD
November 25, 2008 8:32 PM
Its that time again. Every so often I feel the need to try out a new OS. For the last year I have been running Hardy Heron on my trusty ThinkPad T61p. It was my first ThinkPad, and now I’m thinking it won’t be my last. After all, they have quad core ThinkPads now. Although, I’ve seen more and more colleagues becoming infected and turning in to Mac zombies. I wonder how long I can avoid infection.
JC-Rest & Enunciate
November 13, 2008 5:44 AM
Introduction A couple of weeks ago one of our clients asked me to prepare some documentation on the CQ/JCR RESTful services I had created for them. I had previously came across this post on TSS about the latest release of enunciate. Unfortunately, I quickly forgot. Then Bill reminded me about it a couple days ago. He is working on a REST/Flex project and he too came across it. Its all coming together now.
Day Communique (CQ), Amazon S3, & Mule - Together, at last.
October 30, 2008 2:46 PM
This week I integrated CQ with Amazon S3 via the JCR observation API and Mule. First, the business need. The client was making extensive use of the CQ media library, and that is just fine. As media library assets are requested, they are cached on the web server(s). The issue at hand is file size and bandwidth. The client wanted to push the larger files to S3 to save on bandwidth, they also wanted to continue using the CQ authoring interface to manage media assets. Absolutely nothing wrong with that.
CMIS Specification (Highlights)
October 23, 2008 4:32 PM
Introduction I read part I of the specification the other day. This part covers the services and the data model. This is just a brief summary of my notes. I suspect I’ll be reading over and over the next few days, so I plan to make updates to this post. Anyways, here are my notes…
JC-Rest: JCR Browser - Updated
October 17, 2008 2:17 PM
I’ve updated JC-Rest to include a few new services and have updated a few others. In addition to be able to return properties for a node, the nodes services can now return attributes (is locked, is checked out, etc) too. I’ve also added a few services for creating nodes, properties, and what not. Finally, I added a service to return the repository attributes.
Web Content Management: Tips & Advice
October 13, 2008 8:05 PM
I can’t begin to stress how important it is to get it right the first time around. Once you begin building an web content managed site, you don’t have the privilege of refactoring. Here are a few things that I find important when architecting a web content managed site.
JC-Rest: RESTful JCR Services & Repository Browser
October 9, 2008 8:57 PM
I’m happy to announce the initial release of JC-Rest. This is an application that provides a set of RESTful services for accessing content in a JCR repository. These services can return XML, JSON, ATOM, or even HTML via custom FreeMarker templates.
Alfresco Surf: I like it.
September 30, 2008 2:36 AM
Alfresco Surf I spent a couple days last week evaluating the Alfresco Surf framework. It is one part web framework, and one part site construction framework. I think that there is a difference here. I think that web frameworks such as Wicket and Stripes are more about page rendering and not so much about site construction. Typically, site construction is a feature provided by web content management (WCM) systems such as Day Communique (CQ). What Alfresco was able to do was abstract the site construction framework away from the WCM system itself. As a result it can be used to build applications outside of Alfresco. As a side note, Alfresco’s next generation WCM system is built on top of the Surf framework.
JCR Search: SQL or XPath?
September 16, 2008 9:28 PM
So, I’ve been working on a RESTful application to expose content in CRX added by authors in CQ to other applications. I’ve been using the SQL syntax. I suppose this is because my background includes data architecture and modeling. Yes, I have a black belt SQL Kung Fu. Now we are considering using the XPath syntax instead. I noticed that the JCR specification suggests that database backed repositories are limited in the number of efficient XPath queries they can support. The key word there for me was ‘efficient’. It also notes that, for database backed repositories, XPath queries are translated to SQL queries. So that got me thinking. Should I continue to use the SQL syntax and database backed repositories, or not? Actually, for maintenance purposes, I’ve already suggested that we move to the Tar persistence manager. I suppose I’ll switch to the XPath syntax then.
Critique: CQ, CRX, & the JCR API
September 10, 2008 5:50 PM
I’ve been working with CQ for the last few years. I’ve been working directly with JCR API for the last several months. Finally, I decided to read the JCR specification. I was surprised (well maybe not too much) to see that CQ discards quite a few JCR features in favor of implementing them within the application logic. Personally, I’m not too happy about that. If a feature is supported by the repository, why reinvent the wheel in your application?
Web Content Management - Architectural Approaches
July 23, 2008 4:36 PM
I’m often asked what is the best way to go about building a WCM enabled application. I’ve learned over the past few years that there is actually a large number of options here. I’m not just talking about products, but rather architectural approaches.
Flex, JCR OCM (Spring), & CQ5
June 10, 2008 4:12 AM
InfoQ posted another article that caught my interest today. In short, it is a case study on the NASDAQ Market Replay application. It is built using Adobe AIR/Flex and Amazon S3. This happens to be very similar to the direction I’ve been wanting to take. I wanted to bring myself up to speed with Flex and I was currently working with a Day Communique (CQ) web site. So, I decided to build a small Flex front end to this web site. In this case, I did choose to add a few new selectors to existing templates and back them up with Servlets to expose the content as XML. I didn’t go with anything fancy here. It was just plain XML over HTTP. While I discussed using a separate Spring/JCR based application to do this for low level integration previously, I do think this is a fine approach if you just want to extend your web front end. I like Flex because of its native XML support. It is simply top notch. However, in this case my content was retrieved from CQ as opposed to S3. As a side note, I am currently working on a project that will use the Spring/JCR approach with Mule to copy content from the CQ media library to Amazon S3. To top it off, we’ll use a custom LinkChecker (com.day.cq.delivery.linkchecker) to rewrite the URLs that point to media library assets now in S3.
CRX, Spring, JCR API, & JAX-RS
June 5, 2008 9:58 PM
I have known for some time that the Spring Modules project has support for JCR integration. As it so happens, InfoQ has a nice introductory article on this very module. I have recommended to clients that future integration with CQ should revolve around direct communication with the repository itself. Well, I finally came across an opportunity to practice what I preach.
WCM: Truth be Told - Part 1
May 2, 2008 5:21 AM
I have spent the last couple of years working with WCM enabled applications. I have worked with both open source and commercial products. However, I have noticed that a successful implementation requires a slightly different mindset.
TSSJS / Day JCR Cup 2008
March 30, 2008 6:37 PM
TSSJS I returned from TSSJS this weekend, and it was quite an experience. In addition to speaking, I also attended some great sessions. I was particularly impressed with John Davies presentation ‘Extreme Transaction Processing’. Not only did I enjoy his session, but it rekindled my interest in GigaSpaces. I also enjoyed David Nuescheler’s presentation ‘Kickstarting JCR’. I have been working with Day Communique for a few years now (and as an extension CRX), but I always felt that a simpler approach was missing. Well, this new CRX/Sling application might be exactly what I was looking for. While some clients may require a full featured web content management system, I believe that not all will. Some may suffice with a rather lightweight application.
Day Communique - ClassLoaders, ClassCastExceptions, & Properties Files
March 7, 2008 8:05 PM
Intro A little while back we encountered two distinct issues that just so happened to be symptoms of the same problem. One was that we were getting ClassCastExceptions when trying to cast beans pulled from the session in JSP scriptlets. The other was that our properties files were not being found. It turns out that there is actually a quick fix for this problem. So, we’ll look at the symptoms, define the problem, and provide the solution.
Upcoming Posts
February 18, 2008 7:27 PM
I have a few drafts in progress for upcoming posts. Here is a preview of what is to come. Alfresco - Custom Regex Metadata Extractor Alfresco - Custom Association Extractor Alfresco - Custom XSL Transformer
Day Communique - Alternate to Request Filters
February 18, 2008 7:17 PM
For those of you who work with CQ, you will know that you aren’t building and deploying your own WAR. Instead, you can only add artifacts (classes, JARs, etc) to the repository. Continuing with that notion, you aren’t supposed to modify the author/publish WAR files at all. This means you can’t, for example, add a servlet filter via the web.xml file. However, I find the use of filters to be indispensable, especially for things like single sign on. There is a CQ alternative though. (more…)
Coming soon…
January 17, 2008 6:08 AM
Well, I suppose I need to start participating in the whole blog scene now. I am pleased to say that I was invited to speak at this year’s TheServerSide Java Symposium. It is a wonderful opportunity and I’m looking forward to it with great enthusiasm. While I plan to share some insights on my presentation soon, you can view the abstract here. I have a few drafts prepared on topics revolving around Alfresco and Day Communique, and I will be publishing them over the next week or so.
Shane Johnson
Recent Posts
- Invisible requirements within Business requirements
- Building a better Options Predicate
- Javascript, This, and You.
- Extensionless URLs with Adobe Experience Manager
- The Life of a Tester in Adobe CQ World!
- Limitations of the CQ Parsys Model and the Implementation of a Nested Paragraph System
- Google Analytics and AEM: No JavaScript? No Problem.
- Using Apache FOP to generate a PDF document based on a form submission data
- Configuring SAML in AEM 5.6
- Why You Should Get the WCM Experts Involved Early