Apache Sling Samples In-Place Integration Test

Provide a sample bundle demonstrating the use of the Maven Launchpad Plugin's ability
to do in-place integration testing.

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

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

If you have Maven 2 installed, you can run the sample integration tests
using the following command:

    mvn verify

See the Maven 2 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 http://svn.apache.org/repos/asf/sling/trunk/samples/inplace-integration-test

See the Subversion documentation for other source control features.

