SLING-8311 - Investigate creating a Sling CLI tool for development task automation

Enable class data sharing. This yields a small (~120ms) startup time improvement
in local testing.
diff --git a/Dockerfile b/Dockerfile
index 1338fcb..c29cd1e 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -12,6 +12,10 @@
 
 FROM openjdk:8-jre-alpine
 MAINTAINER dev@sling.apache.org
+
+# Generate class data sharing
+RUN java -Xshare:dump
+
 # escaping required to properly handle arguments with spaces
 ENTRYPOINT ["/usr/share/sling-cli/bin/launcher.sh"]
 
@@ -27,4 +31,4 @@
 ADD target/artifacts /usr/share/sling-cli/artifacts
 # Add the service itself
 ARG FEATURE_FILE
-ADD ${FEATURE_FILE} /usr/share/sling-cli/sling-cli.feature
\ No newline at end of file
+ADD ${FEATURE_FILE} /usr/share/sling-cli/sling-cli.feature
diff --git a/src/main/resources/scripts/launcher.sh b/src/main/resources/scripts/launcher.sh
index 6f0bcfb..7b306ba 100755
--- a/src/main/resources/scripts/launcher.sh
+++ b/src/main/resources/scripts/launcher.sh
@@ -19,6 +19,7 @@
 
 # Use exec to become pid 1, see https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
 exec /usr/bin/java \
+     -Xshare:on \
 	 -Dorg.slf4j.simpleLogger.logFile=/dev/null \
 	 -Dlogback.configurationFile=file:/usr/share/sling-cli/conf/logback-default.xml \
 	 -jar /usr/share/sling-cli/launcher/org.apache.sling.feature.launcher.jar \
@@ -26,4 +27,4 @@
 	 -c /usr/share/sling-cli/artifacts \
 	 -D "$ARGS_PROP" \
 	 -V "asf.username=${ASF_USERNAME}" \
-	 -V "asf.password=${ASF_PASSWORD}"
\ No newline at end of file
+	 -V "asf.password=${ASF_PASSWORD}"