JSR-303 Bean Validation and Spring MVC in a Sling OSGi container

After reading Having “fun” with JSR-303 Beans Validation and OSGi + Spring DM, I thought I would attempt to bootstrap JSR-303 Beans Validation in Spring in a Sling OSGi container.  Unfortunately, a few changes have been made to the Hibernate API since Magnus' articles, so a few updates to his version are required.  Additionally, I want to enable JSR-303 Beans Validation in the Sling/Spring MVC environment I previously wrote about.  This presented a few additional challenges, so I'll also walk through the steps to enable JSR-303 Beans Validation in a Spring MVC application context running within a Sling OSGi container so that you can use JSR-303 Beans Validation as described in the Spring documentation.

Running Spring MVC in Sling

It is sometimes desirable to run Spring MVC within a Sling container. However, since Sling is a web application, you may not be able to utilize the features within Spring Dynamic Modules and drop a WAR file within the container. In this case, you need to create an application which will bootstrap the Spring Web container within the Sling context.

Build OSGi version of AspectJ Tools that doesn't conflict

An OSGi version of AspectJ Tools is already available from the Spring Bundle Repository. Unfortunately, some of the exports of that bundle may conflict with your OSGi container, such as Apache Felix. In this case, you may need to re-wrap the bundle with the conflicting exports disabled. Additionally, versions newer than v1.6.6 contain a change that can cause an error when attempting to load certain types of Aspects with Spring annotations in an OSGi environment.

Welcome

Welcome!

Subscribe to jasonday.net RSS