Apache Sling Jackrabbit JSR-283 Access Control Manager Support
Copyright 2008-2010 The Apache Software Foundation

Apache Sling is based on source code originally developed 
by Day Software (http://www.day.com/).

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
