Apache Sling Context-Aware Configuration SPI


Getting Started
===============

This component uses a Maven 3 (http://maven.apache.org/) build
environment. It requires a Java 7 JDK (or higher) and Maven (http://maven.apache.org/)
3.3.9 or later. We recommend to use the latest Maven version.

If you have Maven 3 installed, you can compile and
package the jar using the following command:

    mvn package

See the Maven 3 documentation for other build features.

The latest source code for this component is available in the
Subversion (http://subversion.tigris.org/) source repository of
the Apache Software Foundation. If you have Subversion installed,
you can checkout the latest source using the following command:

    svn checkout https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/contextaware-config/spi

See the Subversion documentation for other source control features.
