summaryrefslogtreecommitdiffstats
path: root/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc
diff options
context:
space:
mode:
Diffstat (limited to 'test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc')
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/all.policy22
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/config.properties269
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/custom.properties30
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/distribution.info26
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/equinox-debug.properties111
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/host.key28
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/java.util.logging.properties23
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jetty.xml119
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.cfg75
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.java.lang.Memory.cfg27
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.org.apache.karaf.bundle.cfg40
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.org.apache.karaf.config.cfg54
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.org.apache.karaf.security.jmx.cfg29
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.osgi.compendium.cm.cfg55
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jre.properties727
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/keys.properties36
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.felix.eventadmin.impl.EventAdmin.cfg23
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.felix.fileinstall-deploy.cfg25
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.bundle.cfg46
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.config.cfg46
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.feature.cfg29
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.jaas.cfg25
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.kar.cfg29
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.scope_bundle.cfg33
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.shell.cfg28
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.system.cfg29
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.features.cfg95
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.features.repos.cfg61
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.jaas.cfg63
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.kar.cfg35
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.log.cfg44
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.management.cfg124
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.shell.cfg127
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.ops4j.pax.logging.cfg105
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.ops4j.pax.url.mvn.cfg146
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.ops4j.pax.web.cfg6
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/profile.cfg38
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/scripts/shell.completion.script271
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/shell.init.script66
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/startup.properties13
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/system.properties156
-rw-r--r--test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/users.properties33
42 files changed, 3367 insertions, 0 deletions
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/all.policy b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/all.policy
new file mode 100644
index 0000000000..7585f22b66
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/all.policy
@@ -0,0 +1,22 @@
+//===========================================================================
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//===========================================================================
+
+grant {
+ permission java.security.AllPermission;
+};
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/config.properties b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/config.properties
new file mode 100644
index 0000000000..7856b13083
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/config.properties
@@ -0,0 +1,269 @@
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# This file lists Karaf default settings for this particular version of Karaf.
+# For easier maintenance when upgrading Karaf and to better document which
+# default values have changed, it is recommended to place any changes to
+# these values in a custom.properties file in the same folder as this file.
+# Each value specified in custom.properties will override the default value
+# here.
+#
+
+#
+# Properties file inclusions (as a space separated list of relative paths)
+# Included files will override the values specified in this file
+# NB: ${includes} properties files are mandatory, it means that Karaf will not start
+# if the include file is not found
+#
+${includes} = jre.properties custom.properties
+
+#
+# Properties file inclusions (as a space separated list of relative paths)
+# Included files will override the values specified in this file
+# NB: ${optionals} properties files are optionals, it means that Karaf will just
+# display a warning message but the bootstrap will be performed
+#
+# ${optionals} = my.properties
+
+#
+# Framework selection properties
+#
+karaf.framework=felix
+
+#
+# Location of the OSGi frameworks
+#
+karaf.framework.equinox=mvn\:org.eclipse.platform/org.eclipse.osgi/3.12.100
+karaf.framework.felix=mvn\:org.apache.felix/org.apache.felix.framework/5.6.10
+
+#
+# Framework config properties.
+#
+org.osgi.framework.system.packages= \
+ org.osgi.dto;version="1.0",\
+ org.osgi.resource;version="1.0",\
+ org.osgi.resource.dto;version="1.0";uses:="org.osgi.dto",\
+ org.osgi.framework;version="1.8",\
+ org.osgi.framework.dto;version="1.8";uses:="org.osgi.dto",\
+ org.osgi.framework.hooks.bundle;version="1.1";uses:="org.osgi.framework",\
+ org.osgi.framework.hooks.resolver;version="1.0";uses:="org.osgi.framework.wiring",\
+ org.osgi.framework.hooks.service;version="1.1";uses:="org.osgi.framework",\
+ org.osgi.framework.hooks.weaving;version="1.1";uses:="org.osgi.framework.wiring",\
+ org.osgi.framework.launch;version="1.2";uses:="org.osgi.framework",\
+ org.osgi.framework.namespace;version="1.1";uses:="org.osgi.resource",\
+ org.osgi.framework.startlevel;version="1.0";uses:="org.osgi.framework",\
+ org.osgi.framework.startlevel.dto;version="1.0";uses:="org.osgi.dto",\
+ org.osgi.framework.wiring;version="1.2";uses:="org.osgi.framework,org.osgi.resource",\
+ org.osgi.framework.wiring.dto;version="1.2";uses:="org.osgi.dto,org.osgi.resource.dto",\
+ org.osgi.service.condpermadmin;version="1.1.1";uses:="org.osgi.framework,org.osgi.service.permissionadmin",\
+ org.osgi.service.packageadmin;version="1.2";uses:="org.osgi.framework",org.osgi.service.permissionadmin;version="1.2",\
+ org.osgi.service.resolver;version="1.0";uses:="org.osgi.resource",\
+ org.osgi.service.startlevel;version="1.1";uses:="org.osgi.framework",\
+ org.osgi.service.url;version="1.0",\
+ org.osgi.util.tracker;version="1.5.1";uses:="org.osgi.framework",\
+ org.apache.karaf.version;version="4.2.1",\
+ org.apache.karaf.jaas.boot.principal;uses:=javax.security.auth;version="4.2.1",\
+ org.apache.karaf.jaas.boot;uses:="javax.security.auth,javax.security.auth.callback,javax.security.auth.login,javax.security.auth.spi,org.osgi.framework";version="4.2.1",\
+ ${jre-${java.specification.version}}
+
+#
+# Extra packages appended after standard packages
+#
+org.osgi.framework.system.packages.extra = \
+ org.apache.karaf.branding, \
+ sun.misc, \
+ org.apache.karaf.diagnostic.core;uses:=org.osgi.framework;version=4.2.1, \
+ org.apache.karaf.diagnostic.core.common;uses:=org.apache.karaf.diagnostic.core;version=4.2.1, \
+ org.apache.karaf.jaas.boot;uses:=\"javax.security.auth,javax.security.auth.callback,javax.security.auth.login,javax.security.auth.spi,org.osgi.framework\";version=4.2.1, \
+ org.apache.karaf.jaas.boot.principal;uses:=javax.security.auth;version=4.2.1
+
+org.osgi.framework.system.capabilities= \
+ ${eecap-${java.specification.version}}, \
+ ${${karaf.framework}-capabilities}, \
+ ${karaf-capabilities}
+
+karaf-capabilities= \
+ osgi.service;objectClass:List<String>=org.apache.karaf.info.ServerInfo
+
+felix-capabilities= \
+ osgi.service;objectClass:List<String>=org.osgi.service.packageadmin.PackageAdmin, \
+ osgi.service;objectClass:List<String>=org.osgi.service.resolver.Resolver, \
+ osgi.service;objectClass:List<String>=org.osgi.service.startlevel.StartLevel
+
+equinox-capabilities= \
+ osgi.service;objectClass:List<String>=java.lang.ClassLoader;equinox.classloader.type=contextClassLoader, \
+ osgi.service;objectClass:List<String>=javax.xml.parsers.DocumentBuilderFactory, \
+ osgi.service;objectClass:List<String>=javax.xml.parsers.SAXParserFactory, \
+ osgi.service;objectClass:List<String>=org.eclipse.osgi.framework.log.FrameworkLog, \
+ osgi.service;objectClass:List<String>=org.eclipse.osgi.framework.log.FrameworkLog;performance=true, \
+ osgi.service;objectClass:List<String>=org.eclipse.osgi.service.datalocation.Location;type=eclipse.home.location, \
+ osgi.service;objectClass:List<String>=org.eclipse.osgi.service.datalocation.Location;type=osgi.configuration.area, \
+ osgi.service;objectClass:List<String>=org.eclipse.osgi.service.datalocation.Location;type=osgi.install.area, \
+ osgi.service;objectClass:List<String>=org.eclipse.osgi.service.datalocation.Location;type=osgi.instance.area, \
+ osgi.service;objectClass:List<String>=org.eclipse.osgi.service.datalocation.Location;type=osgi.user.area, \
+ osgi.service;objectClass:List<String>=org.eclipse.osgi.service.debug.DebugOptions, \
+ osgi.service;objectClass:List<String>=org.eclipse.osgi.service.environment.EnvironmentInfo, \
+ osgi.service;objectClass:List<String>=org.eclipse.osgi.service.localization.BundleLocalization, \
+ osgi.service;objectClass:List<String>="org.osgi.service.log.LogReaderService,org.eclipse.equinox.log.ExtendedLogReaderService", \
+ osgi.service;objectClass:List<String>="org.osgi.service.log.LogService,org.eclipse.equinox.log.ExtendedLogService", \
+ osgi.service;objectClass:List<String>=org.eclipse.osgi.service.security.TrustEngine;osgi.signedcontent.trust.engine=org.eclipse.osgi, \
+ osgi.service;objectClass:List<String>=org.eclipse.osgi.service.urlconversion.URLConverter;protocol:List<String>="bundleentry,bundleresource"
+
+eecap-11= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
+ osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9.0,10.0,11.0", \
+ osgi.ee; osgi.ee="JRE"; version:List<Version>="1.0,1.1", \
+ osgi.ee; osgi.ee="JavaSE/compact1"; version:List<Version>="1.8,9.0,10.0,11.0", \
+ osgi.ee; osgi.ee="JavaSE/compact2"; version:List<Version>="1.8,9.0,10.0,11.0", \
+ osgi.ee; osgi.ee="JavaSE/compact3"; version:List<Version>="1.8,9.0,10.0,11.0"
+eecap-10= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
+ osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9.0,10.0", \
+ osgi.ee; osgi.ee="JRE"; version:List<Version>="1.0,1.1", \
+ osgi.ee; osgi.ee="JavaSE/compact1"; version:List<Version>="1.8,9.0,10.0", \
+ osgi.ee; osgi.ee="JavaSE/compact2"; version:List<Version>="1.8,9.0,10.0", \
+ osgi.ee; osgi.ee="JavaSE/compact3"; version:List<Version>="1.8,9.0,10.0"
+eecap-9= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
+ osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9.0", \
+ osgi.ee; osgi.ee="JRE"; version:List<Version>="1.0,1.1", \
+ osgi.ee; osgi.ee="JavaSE/compact1"; version:List<Version>="1.8,9.0", \
+ osgi.ee; osgi.ee="JavaSE/compact2"; version:List<Version>="1.8,9.0", \
+ osgi.ee; osgi.ee="JavaSE/compact3"; version:List<Version>="1.8,9.0"
+eecap-1.8= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
+ osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8", \
+ osgi.ee; osgi.ee="JRE"; version:List<Version>="1.0,1.1", \
+ osgi.ee; osgi.ee="JavaSE/compact1"; version:List<Version>="1.8", \
+ osgi.ee; osgi.ee="JavaSE/compact2"; version:List<Version>="1.8", \
+ osgi.ee; osgi.ee="JavaSE/compact3"; version:List<Version>="1.8"
+
+#
+# javax.transaction is needed to avoid class loader constraint violation when using javax.sql
+#
+org.osgi.framework.bootdelegation = \
+ com.sun.*, \
+ javax.transaction, \
+ javax.transaction.*, \
+ javax.xml.crypto, \
+ javax.xml.crypto.*, \
+ jdk.nashorn.*, \
+ sun.*, \
+ jdk.internal.reflect, \
+ jdk.internal.reflect.*, \
+ org.apache.karaf.jaas.boot, \
+ org.apache.karaf.jaas.boot.principal
+
+# jVisualVM support
+# in order to use Karaf with jvisualvm, the org.osgi.framework.bootdelegation property has to contain the org.netbeans.lib.profiler.server package
+# and, so, it should look like:
+#
+# org.osgi.framework.bootdelegation=org.apache.karaf.jaas.boot,org.apache.karaf.jaas.boot.principal,sun.*,com.sun.*,javax.transaction,javax.transaction.*,javax.xml.crypto,javax.xml.crypto.*,org.apache.xerces.jaxp.datatype,org.apache.xerces.stax,org.apache.xerces.parsers,org.apache.xerces.jaxp,org.apache.xerces.jaxp.validation,org.apache.xerces.dom,org.netbeans.lib.profiler.server
+#
+# YourKit support
+# in order to use Karaf with YourKit, the org.osgi.framework.bootdelegation property has to contain the com.yourkit.* packages
+# and, so, it should look like:
+#
+# org.osgi.framework.bootdelegation=org.apache.karaf.jaas.boot,org.apache.karaf.jaas.boot.principal,sun.*,com.sun.*,javax.transaction,javax.transaction.*,javax.xml.crypto,javax.xml.crypto.*,org.apache.xerces.jaxp.datatype,org.apache.xerces.stax,org.apache.xerces.parsers,org.apache.xerces.jaxp,org.apache.xerces.jaxp.validation,org.apache.xerces.dom,com.yourkit.*
+#
+
+#
+# Set the parent classloader for the bundle to the classloader that loads the Framework (i.e. everything in lib/*.jar)
+#
+org.osgi.framework.bundle.parent=framework
+
+#
+# Definition of the default bundle start level
+#
+org.osgi.framework.startlevel.beginning=100
+karaf.startlevel.bundle=80
+
+#
+# The location of the Karaf shutdown port file used to stop instance
+#
+karaf.shutdown.port.file=${karaf.data}/port
+
+#
+# The location of the Karaf pid file
+#
+karaf.pid.file=${karaf.base}/karaf.pid
+
+#
+# Configuration FileMonitor properties
+#
+felix.fileinstall.enableConfigSave = true
+felix.fileinstall.dir = ${karaf.etc}
+felix.fileinstall.filter = .*\\.(cfg|config)
+felix.fileinstall.poll = 1000
+felix.fileinstall.noInitialDelay = true
+felix.fileinstall.log.level = 3
+felix.fileinstall.log.default = jul
+
+# Use cached urls for bundle CodeSource to avoid
+# problems with JCE cached informations, see KARAF-3974
+felix.bundlecodesource.usecachedurls = true
+
+#
+# Delay for writing the framework state to disk in equinox
+# must be >= 1000 and <= 1800000
+#
+eclipse.stateSaveDelayInterval = 1000
+
+#
+# OBR Repository list
+# This property will be modified by the obr:addUrl and obr:removeUrl commands.
+#
+obr.repository.url =
+
+#
+# Start blueprint bundles synchronously when possible
+#
+org.apache.aries.blueprint.synchronous=true
+
+#
+# Do not weave all any classes by default
+#
+org.apache.aries.proxy.weaving.enabled=
+
+#
+# mvn url handler requires config instance configuration
+#
+org.ops4j.pax.url.mvn.requireConfigAdminConfig=true
+
+#
+# Don't delay the console startup. Set to true if you want the console to start after all other bundles
+#
+karaf.delay.console=false
+
+#
+# Generated command shutdown
+#
+karaf.shutdown.command = 54dc7c4e-a508-4cc3-be8b-4bda39d0c3ff
+
+#
+# Enable native Karaf support for systemd's watchdog.
+#
+# In addition to setting the flag to true, the JNA library needs to be made
+# available to the main classloader by adding the two following libraries
+# to the lib/boot directory
+# mvn:net.java.dev.jna/jna/${jna.version}
+# mvn:net.java.dev.jna/jna-platform/${jna.version}
+# or by building a custom distribution and adding the following lines for the
+# karaf maven plugin configuration:
+# <library>mvn:net.java.dev.jna/jna/${jna.version};type:=boot;export:=false</library>
+# <library>mvn:net.java.dev.jna/jna-platform/${jna.version};type:=boot;export:=false</library>
+#
+#karaf.systemd.enabled=true
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/custom.properties b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/custom.properties
new file mode 100644
index 0000000000..fbdb62ad31
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/custom.properties
@@ -0,0 +1,30 @@
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# All the values specified here will override the default values given
+# in config.properties.
+#
+
+karaf.systemBundlesStartLevel=50
+
+#
+# You can place any customized configuration here.
+#
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/distribution.info b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/distribution.info
new file mode 100644
index 0000000000..c987a93b19
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/distribution.info
@@ -0,0 +1,26 @@
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# This file contains the general platform information required by the itests to find out
+# about the current versions.
+#
+karafVersion=4.2.1
+name=Apache Karaf
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/equinox-debug.properties b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/equinox-debug.properties
new file mode 100644
index 0000000000..01be178056
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/equinox-debug.properties
@@ -0,0 +1,111 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+
+# http://www.apache.org/licenses/LICENSE-2.0
+
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+#### Debugging options for org.eclipse.bundles
+
+# Turn on general debugging for org.eclipse.bundles
+org.eclipse.osgi/debug = false
+# Prints out class loading debug information
+org.eclipse.osgi/debug/loader = false
+# Prints out event (FrameworkEvent/BundleEvent/ServiceEvent) and listener debug information
+org.eclipse.osgi/debug/events = false
+# Prints out OSGi service debug information (registration/getting/ungetting etc.)
+org.eclipse.osgi/debug/services = false
+# Prints out bundle manifest parsing debug information
+org.eclipse.osgi/debug/manifest = false
+# Prints out LDAP filter debug information
+org.eclipse.osgi/debug/filter = false
+# Prints out security (PermissionAdmin service) debug information
+org.eclipse.osgi/debug/security = false
+# Prints out start level service debug information
+org.eclipse.osgi/debug/startlevel = false
+# Prints out package instance service debug information
+org.eclipse.osgi/debug/packageadmin = false
+# Prints out timing information for bundle activation
+org.eclipse.osgi/debug/bundleTime = false
+# Debug the loading of message bundles
+org.eclipse.osgi/debug/messageBundles = false
+
+# Eclipse adaptor options
+org.eclipse.osgi/eclipseadaptor/debug = false
+org.eclipse.osgi/eclipseadaptor/debug/location = false
+org.eclipse.osgi/eclipseadaptor/debug/platformadmin = false
+org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver = false
+org.eclipse.osgi/eclipseadaptor/converter/debug = false
+
+### OSGi resolver options
+# Turns on debugging for the resolver
+org.eclipse.osgi/resolver/debug = false
+# Prints out wiring information after the resolver has completed the resolve process
+org.eclipse.osgi/resolver/wiring = false
+# Prints out Import-Package information
+org.eclipse.osgi/resolver/imports = false
+# Prints out Require-Bundle information
+org.eclipse.osgi/resolver/requires = false
+# Prints out package grouping information form the "uses" clause
+org.eclipse.osgi/resolver/grouping = false
+# Prints out cycle information
+org.eclipse.osgi/resolver/cycles = false
+# Prints out Eclipse-GenericRequire information
+org.eclipse.osgi/resolver/generics = false
+
+#### Profile settings
+org.eclipse.osgi/profile/startup = false
+org.eclipse.osgi/profile/benchmark = false
+org.eclipse.osgi/profile/debug = false
+
+# Override the default implemenation
+org.eclipse.osgi/profile/impl = org.eclipse.osgi.internal.profile.DefaultProfileLogger
+
+# Append all profile messages to the filename specified
+org.eclipse.osgi/defaultprofile/logfilename =
+
+# Output all profile log messages synchronously to the jvm console.
+# By default, all log messages are cached until the log buffer is
+# requested.
+org.eclipse.osgi/defaultprofile/logsynchronously = false
+
+# Specify the size of the default profile implementation log buffer.
+org.eclipse.osgi/defaultprofile/buffersize = 256
+
+#### Monitoring settings
+# monitor class loading
+org.eclipse.osgi/monitor/classes = false
+
+# monitor bundle activation
+org.eclipse.osgi/monitor/activation = false
+
+# monitor resource bundle (*.properties) loading
+org.eclipse.osgi/monitor/resources = false
+
+
+#### Trace settings
+# trace class loading - snapshot the execution stack when a class is loaded
+org.eclipse.osgi/trace/classLoading = false
+
+# trace location - file in which execution traces are written
+org.eclipse.osgi/trace/filename = runtime.traces
+
+# trace filters - Java properties file defining which classes should
+# be traced (if trace/classLoading is true)
+# File format:
+# plugins=<comma separated list of plugins whose classes to trace>
+# packages=<comma separated list of package prefixes of classes to trace>
+# Note that there may be many 'plugins' and 'packages' lines in one file.
+org.eclipse.osgi/trace/filters = trace.properties
+
+# trace bundle activation - snapshot the execution stack when a bundle is activated
+org.eclipse.osgi/trace/activation = false
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/host.key b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/host.key
new file mode 100644
index 0000000000..f4200122e5
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/host.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCFLCWyB+bqffiF
+3bWfcKUopOfgHbSJCw+oYKUsP8Dlu8NrurRR8brBJLpIjyT75vLL2x6Vep2ljkPr
+RwiivppGI8N+C5D+rTRPLvhZ+koGu3tS8LSeR5gDwH4yB+83doaJIwj296uxbBAe
+cJJ+vefLOkX2TY42z37UOZLdVvpK+dnZETF6U96vJUnhhYbttPTgmeEE9sfqTnzA
+0zVGejWrochtQLduFUxoczgI5aYefnoA3SZuBcTu0pdCaWZ/gyLISWdIJ755lDOV
+N99CFUWU40SzccvVKfdvARFMscbf2ED6OeRSTx7JwoRqF0CDHMGIctazvUyexbA7
+FXAVIKQ5AgMBAAECggEAenre9H1GCLbxApWlvE1K6TW5uSs45q3QqcixQSAllmT5
+V7RwsckEPS09UwysNC31cj5GQ65xHVnZ56L+M0ff9dBgtSWIJmNAb+9AJOkIemam
+BuMxCz3HdvPsXLFldvpAxBH/5bxmIZjEvmpEoeKhNA2VWPF9cbWm7SNCiuW674bC
+IK7FMwH97wTgWSL3mDXYaNq1lWyT1f3BzHcrEqXWtl96ya5Z1tJdsxV7+CMmMRWS
+SCLOvFmT4ruh5IV8qU9eq7AD0p8q/ssFPN6amClAsItNXnPU16s5VGzJZvOnk2Dc
+UkgSH8Bcmbv39AEbqa0eVf0UwMVClRl/54TCawRD8QKBgQDW7MAYSSzHWEyX9K9G
+sinoBDiAGzhgLL0Lu40yE8cv8h4uDKxxoaDbEBc3hVvCCUrt6S5Hh5nN1L65toGO
+mnnvtzs2EnfnQlCr5noAuaVMyR5CMwZmbMEsjjFEGCj1vIfWHyzg00kQPqQI1lvI
+3uC/wIdMrgESgtrSw6xMvv7h/QKBgQCen6R78/4BBj+G1CjKycrzc32zh27iQLkx
+Ih3KCj2obxtHQ1uc37+/ZfZe2q+6VPPtRzel6RVZ4K/uLYorqb6w4H+f0Rz7jQPD
+LYaI5uMk0a6EWAYG5aNEmI7PyMy6OWKN4bi1kb5F/GklRRQAbG1Xpn9A7cBS9CIx
+gGDCMggx7QKBgFYeP0p756loxCgPLzxQn2IMbudGAOzogEd3OzhZnHKlvVoOUfqm
+HOIqLGNe2EmDl7aEvLqEpyhGmrWnX3pYg4t+DAe6lrjfZZu7mh84Q/fkjm9QKrxX
+z3+e6jayx5bPmE4/56eegaQ0tV2lJtnyFHRBHPWos11LeYsCRMPrtA2xAoGBAIAF
+3N1l+ZWeE1uglCPHZhPDHKrvHeFh15X+MQjF5ymwMtX7WU9tjvbNNmEsIzRCKHVT
+S2iOjHrzy0pyWtgOsidTqe20+q1UDLtUXQbVQnKPAUkzOfoLERDmCC1PpVyPwCk/
+CrMQo/8cT0iTTidhW4aojIA840KQY6CMOovBkbepAoGAX4H6EAzVRWBRvt6NRZn4
+aAp42JnSsiigou9ZaFj4fijm6HEfrGVIYbmbZxbtxiW0vf+7wghA9Lgj2c3cI5ab
+COzJUIS8UoGuwggp42z+/8TGg19ioogYVCF6jkYYp15+O/WrFwGGJ7ip0/jdq8vq
+3xsnWl2tRfGsMopioCFaB9A=
+-----END PRIVATE KEY-----
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/java.util.logging.properties b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/java.util.logging.properties
new file mode 100644
index 0000000000..b7b50c5cfe
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/java.util.logging.properties
@@ -0,0 +1,23 @@
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+# Empty java.util.logging.properties to prevent the log to stderr, so that
+# all logs will be delegated to pax logging JUL handler only
+
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jetty.xml b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jetty.xml
new file mode 100644
index 0000000000..405a59e10e
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jetty.xml
@@ -0,0 +1,119 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
+
+<Configure id="Server" class="org.eclipse.jetty.server.Server">
+
+ <!-- =========================================================== -->
+ <!-- Set connectors -->
+ <!-- =========================================================== -->
+ <!-- One of each type! -->
+ <!-- =========================================================== -->
+
+ <!-- Use this connector for many frequently idle connections and for
+ threadless continuations. -->
+ <New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
+ <Set name="secureScheme">https</Set>
+ <Set name="securePort">
+ <Property name="jetty.secure.port" default="8443" />
+ </Set>
+ <Set name="outputBufferSize">32768</Set>
+ <Set name="requestHeaderSize">8192</Set>
+ <Set name="responseHeaderSize">8192</Set>
+ <Set name="sendServerVersion">true</Set>
+ <Set name="sendDateHeader">false</Set>
+ <Set name="headerCacheSize">512</Set>
+ </New>
+
+ <!-- =========================================================== -->
+ <!-- Special server connectors -->
+ <!-- =========================================================== -->
+ <!-- This is a sample for alternative connectors, enable if needed -->
+ <!-- =========================================================== -->
+ <!--
+ <Call name="addConnector">
+ <Arg>
+ <New class="org.eclipse.jetty.server.ServerConnector">
+ <Arg name="server">
+ <Ref refid="Server" />
+ </Arg>
+ <Arg name="factories">
+ <Array type="org.eclipse.jetty.server.ConnectionFactory">
+ <Item>
+ <New class="org.eclipse.jetty.server.HttpConnectionFactory">
+ <Arg name="config">
+ <Ref refid="httpConfig" />
+ </Arg>
+ </New>
+ </Item>
+ </Array>
+ </Arg>
+ <Set name="host">
+ <Property name="jetty.host" default="localhost" />
+ </Set>
+ <Set name="port">
+ <Property name="jetty.port" default="8282" />
+ </Set>
+ <Set name="idleTimeout">
+ <Property name="http.timeout" default="30000" />
+ </Set>
+ <Set name="name">jettyConn1</Set>
+ </New>
+ </Arg>
+ </Call>
+ -->
+
+ <!-- =========================================================== -->
+ <!-- Configure Authentication Realms -->
+ <!-- Realms may be configured for the entire server here, or -->
+ <!-- they can be configured for a specific web app in a context -->
+ <!-- configuration (see $(jetty.home)/contexts/test.xml for an -->
+ <!-- example). -->
+ <!-- =========================================================== -->
+ <Call name="addBean">
+ <Arg>
+ <New class="org.eclipse.jetty.jaas.JAASLoginService">
+ <Set name="name">karaf</Set>
+ <Set name="loginModuleName">karaf</Set>
+ <Set name="roleClassNames">
+ <Array type="java.lang.String">
+ <Item>org.apache.karaf.jaas.boot.principal.RolePrincipal
+ </Item>
+ </Array>
+ </Set>
+ </New>
+ </Arg>
+ </Call>
+ <Call name="addBean">
+ <Arg>
+ <New class="org.eclipse.jetty.jaas.JAASLoginService">
+ <Set name="name">default</Set>
+ <Set name="loginModuleName">karaf</Set>
+ <Set name="roleClassNames">
+ <Array type="java.lang.String">
+ <Item>org.apache.karaf.jaas.boot.principal.RolePrincipal
+ </Item>
+ </Array>
+ </Set>
+ </New>
+ </Arg>
+ </Call>
+
+</Configure>
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.cfg
new file mode 100644
index 0000000000..e6b5dbca37
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.cfg
@@ -0,0 +1,75 @@
+
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# Generic JMX ACL
+#
+# This file defines the roles required for MBean operations for MBeans that
+# do not have this defined explicitly.
+#
+# The definition of ACLs for JMX operations works as follows:
+#
+# The required roles for JMX operations are defined in configuration files
+# read via OSGi ConfigAdmin.
+#
+# JMX RBAC-related configuration is prefixed with jmx.acl and based on the
+# JMX ObjectName that it applies to. For example specific configuration for
+# an MBean with the following objectName: foo.bar:type=Test can be placed in
+# a configuration file called jmx.acl.foo.bar.Test.cfg. More generic
+# configuration can be placed in the domain (e.g. jmx.acl.foo.bar.cfg) or
+# at the top level (jmx.acl.cfg). A simple configuration file looks like
+# this:
+# test : admin
+# getVal : manager, viewer
+#
+# The system looks for required roles using the following process:
+# The most specific configuration file/pid is tried first. E.g. in the
+# above example the jmx.acl.foo.bar.Test.cfg is looked at first. In this
+# configuration, the system looks for a:
+# 1. Specific match for the current invocation, e.g. test(int)["17"] : role1
+# 2. Reg exp match for the current invocation, e.g. test(int)[/[0-9]/] : role2
+# In both cases the passed argument is converted to a String for the
+# comparison.
+# If any of the above match all the roles with matching definitions
+# are collected and allowed. If no matches are found the following is tried:
+# 3. Signature match for the invocation, e.g. test(int) : role3. If
+# matched the associated roles are used.
+# 4. Method name match for the invocation, e.g. test : role4. If matched
+# the associated roles are used.
+# 5. A method name wildcard match, e.g. te* : role5. For all the
+# wildcard matches found in the current configuration file, the roles
+# associated with the longest match are used. So if you have te* and * and
+# the method invoked is 'test', then the roles defined with te* are used,
+# not the ones defined with *.
+# If no matching definition is found in the current configuration file, a
+# more general configuration file is looked for. So jmx.acl.foo.bar.cfg is
+# tried next, this matches the domain of the MBean. If there is no match
+# found in the domain the most generic configuration file is consulted
+# (jmx.acl.cfg).
+# If a matching definition is found, this is used and the process will not
+# look for any other matching definitions. So the most specific definition
+# always takes precedence.
+#
+list* = viewer
+get* = viewer
+is* = viewer
+set* = admin
+* = admin
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.java.lang.Memory.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.java.lang.Memory.cfg
new file mode 100644
index 0000000000..4db8f5e620
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.java.lang.Memory.cfg
@@ -0,0 +1,27 @@
+
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# JMX ACL specific to the java.lang.Memory MBean
+#
+# For a description of the format of this file, see jmx.acl.cfg
+#
+gc = manager
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.org.apache.karaf.bundle.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.org.apache.karaf.bundle.cfg
new file mode 100644
index 0000000000..e1c9b1c974
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.org.apache.karaf.bundle.cfg
@@ -0,0 +1,40 @@
+
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# JMX ACL specific to the org.apache.karaf:type=bundle,name=* MBean which maps to the Karaf MBean
+# to control OSGi bundles.
+#
+install = manager
+refresh = manager
+resolve = manager
+restart = manager
+setStartLevel(java.lang.String, int)[/([1-4])?[0-9]/,/.*/] = admin
+setStartLevel = manager
+start(java.lang.String)[/([1-4])?[0-9]/] = admin
+start = manager
+stop(java.lang.String)[/([1-4])?[0-9]/] = admin
+stop = manager
+uninstall(java.lang.String)["0"] = #this is a comment, no roles can perform this operation
+uninstall = admin
+update(java.lang.String)[/([1-4])?[0-9]/] = admin
+update(java.lang.String,java.lang.String)[/([1-4])?[0-9]/,/.*/] = admin
+update = manager
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.org.apache.karaf.config.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.org.apache.karaf.config.cfg
new file mode 100644
index 0000000000..39fb1a4088
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.org.apache.karaf.config.cfg
@@ -0,0 +1,54 @@
+
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# JMX ACL specific to the org.apache.karaf:type=config,name=* MBean which maps to the Karaf MBean to interact with the
+# OSGi Config Admin service.
+#
+# For a description of the format of this file, see jmx.acl.cfg
+#
+# By default, only an admin can make changes to the JMX ACL and shell command rules, but managers can make
+# changes to other PIDs.
+#
+appendProperty(java.lang.String,java.lang.String,java.lang.String)[/jmx[.]acl.*/,/.*/,/.*/] = admin
+appendProperty(java.lang.String,java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/,/.*/,/.*/] = admin
+appendProperty(java.lang.String,java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/,/.*/,/.*/] = admin
+appendProperty(java.lang.String,java.lang.String,java.lang.String) = manager
+create(java.lang.String)[/jmx[.]acl.*/] = admin
+create(java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/] = admin
+create(java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/] = admin
+create(java.lang.String) = manager
+delete(java.lang.String)[/jmx[.]acl.*/] = admin
+delete(java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/] = admin
+delete(java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/] = admin
+delete(java.lang.String) = manager
+deleteProperty(java.lang.String,java.lang.String)[/jmx[.]acl.*/,/.*/] = admin
+deleteProperty(java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/,/.*/] = admin
+deleteProperty(java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/,/.*/] = admin
+deleteProperty(java.lang.String,java.lang.String) = manager
+setProperty(java.lang.String,java.lang.String,java.lang.String)[/jmx[.]acl.*/,/.*/,/.*/] = admin
+setProperty(java.lang.String,java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/,/.*/,/.*/] = admin
+setProperty(java.lang.String,java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/,/.*/,/.*/] = admin
+setProperty(java.lang.String,java.lang.String,java.lang.String) = manager
+update(java.lang.String,java.util.Map)[/jmx[.]acl.*/,/.*/] = admin
+update(java.lang.String,java.util.Map)[/org[.]apache[.]karaf[.]command[.]acl.+/,/.*/] = admin
+update(java.lang.String,java.util.Map)[/org[.]apache[.]karaf[.]service[.]acl.+/,/.*/] = admin
+update(java.lang.String,java.util.Map) = manager
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.org.apache.karaf.security.jmx.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.org.apache.karaf.security.jmx.cfg
new file mode 100644
index 0000000000..a8f4c6a81f
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.org.apache.karaf.security.jmx.cfg
@@ -0,0 +1,29 @@
+
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# JMX ACL specific to the org.apache.karaf:type=security,area=jmx MBean which
+# can be used to find out whether the currently logged in JMX user can invoke
+# the requested JMX operations.
+#
+# For a description of the format of this file, see jmx.acl.cfg
+#
+canInvoke = viewer
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.osgi.compendium.cm.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.osgi.compendium.cm.cfg
new file mode 100644
index 0000000000..e8f7a2b2d3
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jmx.acl.osgi.compendium.cm.cfg
@@ -0,0 +1,55 @@
+
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# JMX ACL specific to osgi.compendium.cm MBean
+#
+# For a description of the format of this file, see jmx.acl.cfg
+#
+# This configuration file configures the management of ConfigAdmin via the standard ConfigAdmin MBean
+# Such that only an admin can make changes to the JMX ACL rules, but managers can make
+# changes to other PIDs.
+#
+createFactoryConfiguration(java.lang.String)[/jmx[.]acl.*/] = admin
+createFactoryConfiguration(java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl[.].+/] = admin
+createFactoryConfiguration(java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl[.].+/] = admin
+createFactoryConfiguration(java.lang.String) = manager
+createFactoryConfigurationForLocation(java.lang.String,java.lang.String)[/jmx[.]acl.*/,/.*/] = admin
+createFactoryConfigurationForLocation(java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl[.].+/,/.*/] = admin
+createFactoryConfigurationForLocation(java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl[.].+/,/.*/] = admin
+createFactoryConfigurationForLocation(java.lang.String,java.lang.String) = manager
+delete(java.lang.String)[/jmx[.]acl.*/] = admin
+delete(java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl[.].+/] = admin
+delete(java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl[.].+/] = admin
+delete(java.lang.String) = manager
+deleteConfigurations = admin
+deleteForLocation(java.lang.String,java.lang.String)[/jmx[.]acl.*/,/.*/] = admin
+deleteForLocation(java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl[.].+/,/.*/] = admin
+deleteForLocation(java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl[.].+/,/.*/] = admin
+deleteForLocation(java.lang.String,java.lang.String) = manager
+update(java.lang.String,javax.management.openmbean.TabularData)[/jmx[.]acl.*/,/.*/] = admin
+update(java.lang.String,javax.management.openmbean.TabularData)[/org[.]apache[.]karaf[.]command[.]acl[.].+/,/.*/] = admin
+update(java.lang.String,javax.management.openmbean.TabularData)[/org[.]apache[.]karaf[.]service[.]acl[.].+/,/.*/] = admin
+update(java.lang.String,javax.management.openmbean.TabularData) = manager
+updateForLocation(java.lang.String,java.lang.String,javax.management.openmbean.TabularData)[/jmx[.]acl.*/,/.*/,/.*/] = admin
+updateForLocation(java.lang.String,java.lang.String,javax.management.openmbean.TabularData)[/org[.]apache[.]karaf[.]command[.]acl[.].+/,/.*/,/.*/] = admin
+updateForLocation(java.lang.String,java.lang.String,javax.management.openmbean.TabularData)[/org[.]apache[.]karaf[.]service[.]acl[.].+/,/.*/,/.*/] = admin
+updateForLocation(java.lang.String,java.lang.String,javax.management.openmbean.TabularData) = manager
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jre.properties b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jre.properties
new file mode 100644
index 0000000000..a7ac0c522a
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/jre.properties
@@ -0,0 +1,727 @@
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# Java platform package export properties.
+#
+
+# Standard package set. Note that:
+# - javax.transaction* is exported with a mandatory attribute
+jre-1.6= \
+ javax.accessibility, \
+ javax.activation;version="1.1", \
+ javax.activity, \
+ javax.annotation;version="1.0", \
+ javax.annotation.processing;version="1.0", \
+ javax.crypto, \
+ javax.crypto.interfaces, \
+ javax.crypto.spec, \
+ javax.imageio, \
+ javax.imageio.event, \
+ javax.imageio.metadata, \
+ javax.imageio.plugins.bmp, \
+ javax.imageio.plugins.jpeg, \
+ javax.imageio.spi, \
+ javax.imageio.stream, \
+ javax.jws, \
+ javax.jws.soap, \
+ javax.lang.model, \
+ javax.lang.model.element, \
+ javax.lang.model.type, \
+ javax.lang.model.util, \
+ javax.management, \
+ javax.management.loading, \
+ javax.management.modelmbean, \
+ javax.management.monitor, \
+ javax.management.openmbean, \
+ javax.management.relation, \
+ javax.management.remote, \
+ javax.management.remote.rmi, \
+ javax.management.timer, \
+ javax.naming, \
+ javax.naming.directory, \
+ javax.naming.event, \
+ javax.naming.ldap, \
+ javax.naming.spi, \
+ javax.net, \
+ javax.net.ssl, \
+ javax.print, \
+ javax.print.attribute, \
+ javax.print.attribute.standard, \
+ javax.print.event, \
+ javax.rmi, \
+ javax.rmi.CORBA, \
+ javax.rmi.ssl, \
+ javax.script, \
+ javax.security.auth, \
+ javax.security.auth.callback, \
+ javax.security.auth.kerberos, \
+ javax.security.auth.login, \
+ javax.security.auth.spi, \
+ javax.security.auth.x500, \
+ javax.security.cert, \
+ javax.security.sasl, \
+ javax.sound.midi, \
+ javax.sound.midi.spi, \
+ javax.sound.sampled, \
+ javax.sound.sampled.spi, \
+ javax.sql, \
+ javax.sql.rowset, \
+ javax.sql.rowset.serial, \
+ javax.sql.rowset.spi, \
+ javax.swing, \
+ javax.swing.border, \
+ javax.swing.colorchooser, \
+ javax.swing.event, \
+ javax.swing.filechooser, \
+ javax.swing.plaf, \
+ javax.swing.plaf.basic, \
+ javax.swing.plaf.metal, \
+ javax.swing.plaf.multi, \
+ javax.swing.plaf.synth, \
+ javax.swing.table, \
+ javax.swing.text, \
+ javax.swing.text.html, \
+ javax.swing.text.html.parser, \
+ javax.swing.text.rtf, \
+ javax.swing.tree, \
+ javax.swing.undo, \
+ javax.tools, \
+ javax.transaction; javax.transaction.xa; partial=true; mandatory:=partial, \
+ javax.xml, \
+ javax.xml.bind;version="2.2.1", \
+ javax.xml.bind.annotation;version="2.2.1", \
+ javax.xml.bind.annotation.adapters;version="2.2.1", \
+ javax.xml.bind.attachment;version="2.2.1", \
+ javax.xml.bind.helpers;version="2.2.1", \
+ javax.xml.bind.util;version="2.2.1", \
+ javax.xml.crypto, \
+ javax.xml.crypto.dom, \
+ javax.xml.crypto.dsig, \
+ javax.xml.crypto.dsig.dom, \
+ javax.xml.crypto.dsig.keyinfo, \
+ javax.xml.crypto.dsig.spec, \
+ javax.xml.datatype, \
+ javax.xml.namespace, \
+ javax.xml.parsers, \
+ javax.xml.soap;version="1.3", \
+ javax.xml.stream;version="1.2", \
+ javax.xml.stream.events;version="1.2", \
+ javax.xml.stream.util;version="1.2", \
+ javax.xml.transform, \
+ javax.xml.transform.dom, \
+ javax.xml.transform.sax, \
+ javax.xml.transform.stax, \
+ javax.xml.transform.stream, \
+ javax.xml.validation, \
+ javax.xml.ws;version="2.2", \
+ javax.xml.ws.handler;version="2.2", \
+ javax.xml.ws.handler.soap;version="2.2", \
+ javax.xml.ws.http;version="2.2", \
+ javax.xml.ws.soap;version="2.2", \
+ javax.xml.ws.spi;version="2.2", \
+ javax.xml.ws.wsaddressing;version="2.2", \
+ javax.xml.ws.spi.http;version="2.2", \
+ javax.xml.xpath, \
+ org.ietf.jgss, \
+ org.omg.CORBA, \
+ org.omg.CORBA_2_3, \
+ org.omg.CORBA_2_3.portable, \
+ org.omg.CORBA.DynAnyPackage, \
+ org.omg.CORBA.ORBPackage, \
+ org.omg.CORBA.portable, \
+ org.omg.CORBA.TypeCodePackage, \
+ org.omg.CosNaming, \
+ org.omg.CosNaming.NamingContextExtPackage, \
+ org.omg.CosNaming.NamingContextPackage, \
+ org.omg.Dynamic, \
+ org.omg.DynamicAny, \
+ org.omg.DynamicAny.DynAnyFactoryPackage, \
+ org.omg.DynamicAny.DynAnyPackage, \
+ org.omg.IOP, \
+ org.omg.IOP.CodecFactoryPackage, \
+ org.omg.IOP.CodecPackage, \
+ org.omg.Messaging, \
+ org.omg.PortableInterceptor, \
+ org.omg.PortableInterceptor.ORBInitInfoPackage, \
+ org.omg.PortableServer, \
+ org.omg.PortableServer.CurrentPackage, \
+ org.omg.PortableServer.POAManagerPackage, \
+ org.omg.PortableServer.POAPackage, \
+ org.omg.PortableServer.portable, \
+ org.omg.PortableServer.ServantLocatorPackage, \
+ org.omg.SendingContext, \
+ org.omg.stub.java.rmi, \
+ org.omg.stub.javax.management.remote.rmi, \
+ org.w3c.dom, \
+ org.w3c.dom.bootstrap, \
+ org.w3c.dom.css, \
+ org.w3c.dom.events, \
+ org.w3c.dom.html, \
+ org.w3c.dom.ls, \
+ org.w3c.dom.ranges, \
+ org.w3c.dom.stylesheets, \
+ org.w3c.dom.traversal, \
+ org.w3c.dom.views, \
+ org.w3c.dom.xpath, \
+ org.xml.sax, \
+ org.xml.sax.ext, \
+ org.xml.sax.helpers
+
+# Standard package set. Note that:
+# - javax.transaction* is exported with a mandatory attribute
+jre-1.7= \
+ javax.accessibility, \
+ javax.activation;version="1.1", \
+ javax.activity, \
+ javax.annotation;version="1.0", \
+ javax.annotation.processing;version="1.0", \
+ javax.crypto, \
+ javax.crypto.interfaces, \
+ javax.crypto.spec, \
+ javax.imageio, \
+ javax.imageio.event, \
+ javax.imageio.metadata, \
+ javax.imageio.plugins.bmp, \
+ javax.imageio.plugins.jpeg, \
+ javax.imageio.spi, \
+ javax.imageio.stream, \
+ javax.jws, \
+ javax.jws.soap, \
+ javax.lang.model, \
+ javax.lang.model.element, \
+ javax.lang.model.type, \
+ javax.lang.model.util, \
+ javax.management, \
+ javax.management.loading, \
+ javax.management.modelmbean, \
+ javax.management.monitor, \
+ javax.management.openmbean, \
+ javax.management.relation, \
+ javax.management.remote, \
+ javax.management.remote.rmi, \
+ javax.management.timer, \
+ javax.naming, \
+ javax.naming.directory, \
+ javax.naming.event, \
+ javax.naming.ldap, \
+ javax.naming.spi, \
+ javax.net, \
+ javax.net.ssl, \
+ javax.print, \
+ javax.print.attribute, \
+ javax.print.attribute.standard, \
+ javax.print.event, \
+ javax.rmi, \
+ javax.rmi.CORBA, \
+ javax.rmi.ssl, \
+ javax.script, \
+ javax.security.auth, \
+ javax.security.auth.callback, \
+ javax.security.auth.kerberos, \
+ javax.security.auth.login, \
+ javax.security.auth.spi, \
+ javax.security.auth.x500, \
+ javax.security.cert, \
+ javax.security.sasl, \
+ javax.sound.midi, \
+ javax.sound.midi.spi, \
+ javax.sound.sampled, \
+ javax.sound.sampled.spi, \
+ javax.sql, \
+ javax.sql.rowset, \
+ javax.sql.rowset.serial, \
+ javax.sql.rowset.spi, \
+ javax.swing, \
+ javax.swing.border, \
+ javax.swing.colorchooser, \
+ javax.swing.event, \
+ javax.swing.filechooser, \
+ javax.swing.plaf, \
+ javax.swing.plaf.basic, \
+ javax.swing.plaf.metal, \
+ javax.swing.plaf.multi, \
+ javax.swing.plaf.synth, \
+ javax.swing.table, \
+ javax.swing.text, \
+ javax.swing.text.html, \
+ javax.swing.text.html.parser, \
+ javax.swing.text.rtf, \
+ javax.swing.tree, \
+ javax.swing.undo, \
+ javax.tools, \
+ javax.transaction; javax.transaction.xa; partial=true; mandatory:=partial, \
+ javax.xml, \
+ javax.xml.bind;version="2.2.1", \
+ javax.xml.bind.annotation;version="2.2.1", \
+ javax.xml.bind.annotation.adapters;version="2.2.1", \
+ javax.xml.bind.attachment;version="2.2.1", \
+ javax.xml.bind.helpers;version="2.2.1", \
+ javax.xml.bind.util;version="2.2.1", \
+ javax.xml.crypto, \
+ javax.xml.crypto.dom, \
+ javax.xml.crypto.dsig, \
+ javax.xml.crypto.dsig.dom, \
+ javax.xml.crypto.dsig.keyinfo, \
+ javax.xml.crypto.dsig.spec, \
+ javax.xml.datatype, \
+ javax.xml.namespace, \
+ javax.xml.parsers, \
+ javax.xml.soap;version="1.3", \
+ javax.xml.stream;version="1.2", \
+ javax.xml.stream.events;version="1.2", \
+ javax.xml.stream.util;version="1.2", \
+ javax.xml.transform, \
+ javax.xml.transform.dom, \
+ javax.xml.transform.sax, \
+ javax.xml.transform.stax, \
+ javax.xml.transform.stream, \
+ javax.xml.validation, \
+ javax.xml.xpath, \
+ org.ietf.jgss, \
+ org.omg.CORBA, \
+ org.omg.CORBA_2_3, \
+ org.omg.CORBA_2_3.portable, \
+ org.omg.CORBA.DynAnyPackage, \
+ org.omg.CORBA.ORBPackage, \
+ org.omg.CORBA.portable, \
+ org.omg.CORBA.TypeCodePackage, \
+ org.omg.CosNaming, \
+ org.omg.CosNaming.NamingContextExtPackage, \
+ org.omg.CosNaming.NamingContextPackage, \
+ org.omg.Dynamic, \
+ org.omg.DynamicAny, \
+ org.omg.DynamicAny.DynAnyFactoryPackage, \
+ org.omg.DynamicAny.DynAnyPackage, \
+ org.omg.IOP, \
+ org.omg.IOP.CodecFactoryPackage, \
+ org.omg.IOP.CodecPackage, \
+ org.omg.Messaging, \
+ org.omg.PortableInterceptor, \
+ org.omg.PortableInterceptor.ORBInitInfoPackage, \
+ org.omg.PortableServer, \
+ org.omg.PortableServer.CurrentPackage, \
+ org.omg.PortableServer.POAManagerPackage, \
+ org.omg.PortableServer.POAPackage, \
+ org.omg.PortableServer.portable, \
+ org.omg.PortableServer.ServantLocatorPackage, \
+ org.omg.SendingContext, \
+ org.omg.stub.java.rmi, \
+ org.omg.stub.javax.management.remote.rmi, \
+ org.w3c.dom, \
+ org.w3c.dom.bootstrap, \
+ org.w3c.dom.css, \
+ org.w3c.dom.events, \
+ org.w3c.dom.html, \
+ org.w3c.dom.ls, \
+ org.w3c.dom.ranges, \
+ org.w3c.dom.stylesheets, \
+ org.w3c.dom.traversal, \
+ org.w3c.dom.views, \
+ org.w3c.dom.xpath, \
+ org.xml.sax, \
+ org.xml.sax.ext, \
+ org.xml.sax.helpers, \
+ com.sun.nio.sctp
+
+jre-1.8= \
+ javax.accessibility, \
+ javax.activation;version="1.1", \
+ javax.activity, \
+ javax.annotation;version="1.0", \
+ javax.annotation.processing;version="1.0", \
+ javax.crypto, \
+ javax.crypto.interfaces, \
+ javax.crypto.spec, \
+ javax.imageio, \
+ javax.imageio.event, \
+ javax.imageio.metadata, \
+ javax.imageio.plugins.bmp, \
+ javax.imageio.plugins.jpeg, \
+ javax.imageio.spi, \
+ javax.imageio.stream, \
+ javax.jws, \
+ javax.jws.soap, \
+ javax.lang.model, \
+ javax.lang.model.element, \
+ javax.lang.model.type, \
+ javax.lang.model.util, \
+ javax.management, \
+ javax.management.loading, \
+ javax.management.modelmbean, \
+ javax.management.monitor, \
+ javax.management.openmbean, \
+ javax.management.relation, \
+ javax.management.remote, \
+ javax.management.remote.rmi, \
+ javax.management.timer, \
+ javax.naming, \
+ javax.naming.directory, \
+ javax.naming.event, \
+ javax.naming.ldap, \
+ javax.naming.spi, \
+ javax.net, \
+ javax.net.ssl, \
+ javax.print, \
+ javax.print.attribute, \
+ javax.print.attribute.standard, \
+ javax.print.event, \
+ javax.rmi, \
+ javax.rmi.CORBA, \
+ javax.rmi.ssl, \
+ javax.script, \
+ javax.security.auth, \
+ javax.security.auth.callback, \
+ javax.security.auth.kerberos, \
+ javax.security.auth.login, \
+ javax.security.auth.spi, \
+ javax.security.auth.x500, \
+ javax.security.cert, \
+ javax.security.sasl, \
+ javax.sound.midi, \
+ javax.sound.midi.spi, \
+ javax.sound.sampled, \
+ javax.sound.sampled.spi, \
+ javax.sql, \
+ javax.sql.rowset, \
+ javax.sql.rowset.serial, \
+ javax.sql.rowset.spi, \
+ javax.swing, \
+ javax.swing.border, \
+ javax.swing.colorchooser, \
+ javax.swing.event, \
+ javax.swing.filechooser, \
+ javax.swing.plaf, \
+ javax.swing.plaf.basic, \
+ javax.swing.plaf.metal, \
+ javax.swing.plaf.multi, \
+ javax.swing.plaf.synth, \
+ javax.swing.table, \
+ javax.swing.text, \
+ javax.swing.text.html, \
+ javax.swing.text.html.parser, \
+ javax.swing.text.rtf, \
+ javax.swing.tree, \
+ javax.swing.undo, \
+ javax.tools, \
+ javax.transaction; javax.transaction.xa; partial=true; mandatory:=partial, \
+ javax.xml, \
+ javax.xml.bind;version="2.2.1", \
+ javax.xml.bind.annotation;version="2.2.1", \
+ javax.xml.bind.annotation.adapters;version="2.2.1", \
+ javax.xml.bind.attachment;version="2.2.1", \
+ javax.xml.bind.helpers;version="2.2.1", \
+ javax.xml.bind.util;version="2.2.1", \
+ javax.xml.crypto, \
+ javax.xml.crypto.dom, \
+ javax.xml.crypto.dsig, \
+ javax.xml.crypto.dsig.dom, \
+ javax.xml.crypto.dsig.keyinfo, \
+ javax.xml.crypto.dsig.spec, \
+ javax.xml.datatype, \
+ javax.xml.namespace, \
+ javax.xml.parsers, \
+ javax.xml.soap;version="1.3", \
+ javax.xml.stream;version="1.2", \
+ javax.xml.stream.events;version="1.2", \
+ javax.xml.stream.util;version="1.2", \
+ javax.xml.transform, \
+ javax.xml.transform.dom, \
+ javax.xml.transform.sax, \
+ javax.xml.transform.stax, \
+ javax.xml.transform.stream, \
+ javax.xml.validation, \
+ javax.xml.ws;version="2.2", \
+ javax.xml.ws.handler;version="2.2", \
+ javax.xml.ws.handler.soap;version="2.2", \
+ javax.xml.ws.http;version="2.2", \
+ javax.xml.ws.soap;version="2.2", \
+ javax.xml.ws.spi;version="2.2", \
+ javax.xml.ws.wsaddressing;version="2.2", \
+ javax.xml.ws.spi.http;version="2.2", \
+ javax.xml.xpath, \
+ javafx.animation, \
+ javafx.application, \
+ javafx.beans, \
+ javafx.beans.binding, \
+ javafx.beans.property, \
+ javafx.beans.property.adapter, \
+ javafx.beans.value, \
+ javafx.collections, \
+ javafx.collections.transform, \
+ javafx.concurrent, \
+ javafx.css, \
+ javafx.embed.swing, \
+ javafx.embed.swt, \
+ javafx.event, \
+ javafx.fxml, \
+ javafx.geometry, \
+ javafx.print, \
+ javafx.scene, \
+ javafx.scene.canvas, \
+ javafx.scene.chart, \
+ javafx.scene.control, \
+ javafx.scene.control.cell, \
+ javafx.scene.effect, \
+ javafx.scene.image, \
+ javafx.scene.input, \
+ javafx.scene.layout, \
+ javafx.scene.media, \
+ javafx.scene.paint, \
+ javafx.scene.shape, \
+ javafx.scene.text, \
+ javafx.scene.transform, \
+ javafx.scene.web, \
+ javafx.stage, \
+ javafx.util, \
+ javafx.util.converter, \
+ netscape.javascript, \
+ org.ietf.jgss, \
+ org.omg.CORBA, \
+ org.omg.CORBA_2_3, \
+ org.omg.CORBA_2_3.portable, \
+ org.omg.CORBA.DynAnyPackage, \
+ org.omg.CORBA.ORBPackage, \
+ org.omg.CORBA.portable, \
+ org.omg.CORBA.TypeCodePackage, \
+ org.omg.CosNaming, \
+ org.omg.CosNaming.NamingContextExtPackage, \
+ org.omg.CosNaming.NamingContextPackage, \
+ org.omg.Dynamic, \
+ org.omg.DynamicAny, \
+ org.omg.DynamicAny.DynAnyFactoryPackage, \
+ org.omg.DynamicAny.DynAnyPackage, \
+ org.omg.IOP, \
+ org.omg.IOP.CodecFactoryPackage, \
+ org.omg.IOP.CodecPackage, \
+ org.omg.Messaging, \
+ org.omg.PortableInterceptor, \
+ org.omg.PortableInterceptor.ORBInitInfoPackage, \
+ org.omg.PortableServer, \
+ org.omg.PortableServer.CurrentPackage, \
+ org.omg.PortableServer.POAManagerPackage, \
+ org.omg.PortableServer.POAPackage, \
+ org.omg.PortableServer.portable, \
+ org.omg.PortableServer.ServantLocatorPackage, \
+ org.omg.SendingContext, \
+ org.omg.stub.java.rmi, \
+ org.omg.stub.javax.management.remote.rmi, \
+ org.w3c.dom, \
+ org.w3c.dom.bootstrap, \
+ org.w3c.dom.css, \
+ org.w3c.dom.events, \
+ org.w3c.dom.html, \
+ org.w3c.dom.ls, \
+ org.w3c.dom.ranges, \
+ org.w3c.dom.stylesheets, \
+ org.w3c.dom.traversal, \
+ org.w3c.dom.views, \
+ org.w3c.dom.xpath, \
+ org.xml.sax, \
+ org.xml.sax.ext, \
+ org.xml.sax.helpers, \
+ com.sun.nio.sctp
+
+jre-9= \
+ javax.accessibility, \
+ javax.activation;version="1.1", \
+ javax.activity, \
+ javax.annotation.processing;version="1.0", \
+ javax.crypto, \
+ javax.crypto.interfaces, \
+ javax.crypto.spec, \
+ javax.imageio, \
+ javax.imageio.event, \
+ javax.imageio.metadata, \
+ javax.imageio.plugins.bmp, \
+ javax.imageio.plugins.jpeg, \
+ javax.imageio.spi, \
+ javax.imageio.stream, \
+ javax.lang.model, \
+ javax.lang.model.element, \
+ javax.lang.model.type, \
+ javax.lang.model.util, \
+ javax.management, \
+ javax.management.loading, \
+ javax.management.modelmbean, \
+ javax.management.monitor, \
+ javax.management.openmbean, \
+ javax.management.relation, \
+ javax.management.remote, \
+ javax.management.remote.rmi, \
+ javax.management.timer, \
+ javax.naming, \
+ javax.naming.directory, \
+ javax.naming.event, \
+ javax.naming.ldap, \
+ javax.naming.spi, \
+ javax.net, \
+ javax.net.ssl, \
+ javax.print, \
+ javax.print.attribute, \
+ javax.print.attribute.standard, \
+ javax.print.event, \
+ javax.rmi, \
+ javax.rmi.CORBA, \
+ javax.rmi.ssl, \
+ javax.script, \
+ javax.security.auth, \
+ javax.security.auth.callback, \
+ javax.security.auth.kerberos, \
+ javax.security.auth.login, \
+ javax.security.auth.spi, \
+ javax.security.auth.x500, \
+ javax.security.cert, \
+ javax.security.sasl, \
+ javax.sound.midi, \
+ javax.sound.midi.spi, \
+ javax.sound.sampled, \
+ javax.sound.sampled.spi, \
+ javax.sql, \
+ javax.sql.rowset, \
+ javax.sql.rowset.serial, \
+ javax.sql.rowset.spi, \
+ javax.swing, \
+ javax.swing.border, \
+ javax.swing.colorchooser, \
+ javax.swing.event, \
+ javax.swing.filechooser, \
+ javax.swing.plaf, \
+ javax.swing.plaf.basic, \
+ javax.swing.plaf.metal, \
+ javax.swing.plaf.multi, \
+ javax.swing.plaf.synth, \
+ javax.swing.table, \
+ javax.swing.text, \
+ javax.swing.text.html, \
+ javax.swing.text.html.parser, \
+ javax.swing.text.rtf, \
+ javax.swing.tree, \
+ javax.swing.undo, \
+ javax.tools, \
+ javax.transaction; javax.transaction.xa; partial=true; mandatory:=partial, \
+ javax.xml, \
+ javax.xml.bind;version="2.2.1", \
+ javax.xml.bind.annotation;version="2.2.1", \
+ javax.xml.bind.annotation.adapters;version="2.2.1", \
+ javax.xml.bind.attachment;version="2.2.1", \
+ javax.xml.bind.helpers;version="2.2.1", \
+ javax.xml.bind.util;version="2.2.1", \
+ javax.xml.crypto, \
+ javax.xml.crypto.dom, \
+ javax.xml.crypto.dsig, \
+ javax.xml.crypto.dsig.dom, \
+ javax.xml.crypto.dsig.keyinfo, \
+ javax.xml.crypto.dsig.spec, \
+ javax.xml.datatype, \
+ javax.xml.namespace, \
+ javax.xml.parsers, \
+ javax.xml.stream;version="1.2", \
+ javax.xml.stream.events;version="1.2", \
+ javax.xml.stream.util;version="1.2", \
+ javax.xml.transform, \
+ javax.xml.transform.dom, \
+ javax.xml.transform.sax, \
+ javax.xml.transform.stax, \
+ javax.xml.transform.stream, \
+ javax.xml.validation, \
+ javax.xml.xpath, \
+ javafx.animation, \
+ javafx.application, \
+ javafx.beans, \
+ javafx.beans.binding, \
+ javafx.beans.property, \
+ javafx.beans.property.adapter, \
+ javafx.beans.value, \
+ javafx.collections, \
+ javafx.collections.transformation, \
+ javafx.concurrent, \
+ javafx.css, \
+ javafx.embed.swing, \
+ javafx.embed.swt, \
+ javafx.event, \
+ javafx.fxml, \
+ javafx.geometry, \
+ javafx.print, \
+ javafx.scene, \
+ javafx.scene.canvas, \
+ javafx.scene.chart, \
+ javafx.scene.control, \
+ javafx.scene.control.cell, \
+ javafx.scene.effect, \
+ javafx.scene.image, \
+ javafx.scene.input, \
+ javafx.scene.layout, \
+ javafx.scene.media, \
+ javafx.scene.paint, \
+ javafx.scene.shape, \
+ javafx.scene.text, \
+ javafx.scene.transform, \
+ javafx.scene.web, \
+ javafx.stage, \
+ javafx.util, \
+ javafx.util.converter, \
+ netscape.javascript, \
+ org.ietf.jgss, \
+ org.omg.CORBA, \
+ org.omg.CORBA_2_3, \
+ org.omg.CORBA_2_3.portable, \
+ org.omg.CORBA.DynAnyPackage, \
+ org.omg.CORBA.ORBPackage, \
+ org.omg.CORBA.portable, \
+ org.omg.CORBA.TypeCodePackage, \
+ org.omg.CosNaming, \
+ org.omg.CosNaming.NamingContextExtPackage, \
+ org.omg.CosNaming.NamingContextPackage, \
+ org.omg.Dynamic, \
+ org.omg.DynamicAny, \
+ org.omg.DynamicAny.DynAnyFactoryPackage, \
+ org.omg.DynamicAny.DynAnyPackage, \
+ org.omg.IOP, \
+ org.omg.IOP.CodecFactoryPackage, \
+ org.omg.IOP.CodecPackage, \
+ org.omg.Messaging, \
+ org.omg.PortableInterceptor, \
+ org.omg.PortableInterceptor.ORBInitInfoPackage, \
+ org.omg.PortableServer, \
+ org.omg.PortableServer.CurrentPackage, \
+ org.omg.PortableServer.POAManagerPackage, \
+ org.omg.PortableServer.POAPackage, \
+ org.omg.PortableServer.portable, \
+ org.omg.PortableServer.ServantLocatorPackage, \
+ org.omg.SendingContext, \
+ org.omg.stub.java.rmi, \
+ org.omg.stub.javax.management.remote.rmi, \
+ org.w3c.dom, \
+ org.w3c.dom.bootstrap, \
+ org.w3c.dom.css, \
+ org.w3c.dom.events, \
+ org.w3c.dom.html, \
+ org.w3c.dom.ls, \
+ org.w3c.dom.ranges, \
+ org.w3c.dom.stylesheets, \
+ org.w3c.dom.traversal, \
+ org.w3c.dom.views, \
+ org.w3c.dom.xpath, \
+ org.xml.sax, \
+ org.xml.sax.ext, \
+ org.xml.sax.helpers
+
+jre-10 = ${jre-9}
+jre-11 = ${jre-10}
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/keys.properties b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/keys.properties
new file mode 100644
index 0000000000..5c19ea5450
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/keys.properties
@@ -0,0 +1,36 @@
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# This file contains the valid users who can log into Karaf. Each line have to be of
+# the format:
+#
+# USER=KEY,ROLE1,ROLE2,...
+#
+# All users and roles entered in this file are available after Karaf startup
+# and modifiable via the JAAS command group. These users reside in a JAAS domain
+# with the name "karaf"..
+#
+
+#
+# For security reason, the default auto-signed key is disabled.
+# The user guide describes how to generate/update the key.
+#
+#karaf=AAAAB3NzaC1kc3MAAACBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9EAMMeP4C2USZpRV1AIlH7WT2NWPq/xfW6MPbLm1Vs14E7gB00b/JmYLdrmVClpJ+f6AR7ECLCT7up1/63xhv4O1fnxqimFQ8E+4P208UewwI1VBNaFpEy9nXzrith1yrv8iIDGZ3RSAHHAAAAFQCXYFCPFSMLzLKSuYKi64QL8Fgc9QAAAIEA9+GghdabPd7LvKtcNrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFnEj6EwoFhO3zwkyjMim4TwWeotUfI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTxvqhRkImog9/hWuWfBpKLZl6Ae1UlZAFMO/7PSSoAAACBAKKSU2PFl/qOLxIwmBZPPIcJshVe7bVUpFvyl3BbJDow8rXfskl8wO63OzP/qLmcJM0+JbcRU/53JjTuyk31drV2qxhIOsLDC9dGCWj47Y7TyhPdXh/0dthTRBy6bqGtRPxGa7gJov1xm/UuYYXPIUR/3x9MAZvZ5xvE0kYXO+rx,_g_:admingroup
+_g_\:admingroup = group,admin,manager,viewer,systembundles
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.felix.eventadmin.impl.EventAdmin.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.felix.eventadmin.impl.EventAdmin.cfg
new file mode 100644
index 0000000000..bf63da2104
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.felix.eventadmin.impl.EventAdmin.cfg
@@ -0,0 +1,23 @@
+
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+org.apache.felix.eventadmin.AddTimestamp=true
+org.apache.felix.eventadmin.AddSubject=true
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.felix.fileinstall-deploy.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.felix.fileinstall-deploy.cfg
new file mode 100644
index 0000000000..7f9f0ca950
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.felix.fileinstall-deploy.cfg
@@ -0,0 +1,25 @@
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+felix.fileinstall.dir = ${karaf.base}/deploy
+felix.fileinstall.tmpdir = ${karaf.data}/generated-bundles
+felix.fileinstall.poll = 1000
+felix.fileinstall.start.level = 80
+felix.fileinstall.active.level = 80
+felix.fileinstall.log.level = 3
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.bundle.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.bundle.cfg
new file mode 100644
index 0000000000..688c289e49
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.bundle.cfg
@@ -0,0 +1,46 @@
+
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# This configuration file defines the ACLs for commands in the bundle subshell
+#
+# For an explanation of the syntax of this file, see the file:
+# org.apache.karaf.command.acl.system.cfg
+#
+# This configuration relies on the fact that 'system' bundles need to be managed
+# with the
+# -f (--force)
+# flag. Operations with -f need admin permission. Most of these operations without
+# the 'force' option can be done by a manager.
+install = admin
+refresh[/.*[-][f].*/] = admin
+refresh = manager
+restart[/.*[-][f].*/] = admin
+restart = manager
+start[/.*[-][f].*/] = admin
+start = manager
+stop[/.*[-][f].*/] = admin
+stop = manager
+uninstall[/.*[-][f].*/] = admin
+uninstall = manager
+update[/.*[-][f].*/] = admin
+update = manager
+watch = admin
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.config.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.config.cfg
new file mode 100644
index 0000000000..b802587fd0
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.config.cfg
@@ -0,0 +1,46 @@
+
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# This configuration file defines the ACLs for various commands in the config subshell
+#
+# For an explanation of the syntax of this file, see the file:
+# org.apache.karaf.command.acl.system.cfg
+#
+cancel = manager
+delete = admin
+edit = manager
+edit[/.*jmx[.]acl.*/] = admin
+edit[/.*org[.]apache[.]karaf[.]command[.]acl[.].+/] = admin
+edit[/.*org[.]apache[.]karaf[.]service[.]acl[.].+/] = admin
+property-append = manager
+property-append[/.*jmx[.]acl.*/] = admin
+property-append[/.*org[.]apache[.]karaf[.]command[.]acl[.].+/] = admin
+property-append[/.*org[.]apache[.]karaf[.]service[.]acl[.].+/] = admin
+property-delete = manager
+property-delete[/.*jmx[.]acl.*/] = admin
+property-delete[/.*org[.]apache[.]karaf[.]command[.]acl[.].+/] = admin
+property-delete[/.*org[.]apache[.]karaf[.]service[.]acl[.].+/] = admin
+property-set = manager
+property-set[/.*jmx[.]acl.*/] = admin
+property-set[/.*org[.]apache[.]karaf[.]command[.]acl[.].+/] = admin
+property-set[/.*org[.]apache[.]karaf[.]service[.]acl[.].+/] = admin
+update = manager
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.feature.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.feature.cfg
new file mode 100644
index 0000000000..004e008a65
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.feature.cfg
@@ -0,0 +1,29 @@
+
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# This configuration file defines the ACLs for commands in the feature subshell
+#
+install = admin
+uninstall = admin
+start = admin
+stop = admin
+update = admin
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.jaas.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.jaas.cfg
new file mode 100644
index 0000000000..9563625fa9
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.jaas.cfg
@@ -0,0 +1,25 @@
+
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# This configuration file defines the ACLs for commands in the jaas subshell
+# Jaas commands commands have no effect until update is called.
+update = admin
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.kar.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.kar.cfg
new file mode 100644
index 0000000000..d0730388bd
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.kar.cfg
@@ -0,0 +1,29 @@
+
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# This configuration file defines the ACLs for commands in the kar subshell
+#
+# For an explanation of the syntax of this file, see the file:
+# org.apache.karaf.command.acl.system.cfg
+#
+install = admin
+uninstall = admin
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.scope_bundle.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.scope_bundle.cfg
new file mode 100644
index 0000000000..ff316fa01a
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.scope_bundle.cfg
@@ -0,0 +1,33 @@
+
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# This configuration file defines the ACLs for scope bundles
+#
+features=org.apache.karaf.features.command
+jaas=org.apache.karaf.jaas.command
+admin=org.apache.karaf.admin.command
+osgi=org.apache.karaf.shell.osgi
+log=org.apache.karaf.shell.log
+packages=org.apache.karaf.shell.packages
+config=org.apache.karaf.shell.config
+ssh=org.apache.karaf.shell.ssh
+shell=org.apache.karaf.shell.commands
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.shell.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.shell.cfg
new file mode 100644
index 0000000000..4e5844d9c1
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.shell.cfg
@@ -0,0 +1,28 @@
+
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# This configuration file defines the ACLs for commands in the shell subshell
+#
+nano = admin
+exec = admin
+new = admin
+java = admin
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.system.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.system.cfg
new file mode 100644
index 0000000000..7ff033602d
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.command.acl.system.cfg
@@ -0,0 +1,29 @@
+
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# This configuration file defines the ACLs for commands in the system subshell
+#
+property = admin
+shutdown = admin
+start-level[/.*[1-9][0-9][0-9]+.*/] = manager # manager can set startlevels above 100
+start-level[/[^0-9]*/] = viewer # viewer can obtain the current start level
+start-level = admin # admin can set any start level, including < 100
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.features.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.features.cfg
new file mode 100644
index 0000000000..60851a009d
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.features.cfg
@@ -0,0 +1,95 @@
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# Comma separated list of features repositories to register by default
+#
+featuresRepositories = \
+ mvn:org.apache.karaf.features/enterprise/4.2.1/xml/features, \
+ mvn:org.apache.karaf.features/spring/4.2.1/xml/features, \
+ mvn:org.apache.karaf.features/standard/4.2.1/xml/features, \
+ mvn:org.apache.karaf.features/framework/4.2.1/xml/features
+
+#
+# Comma separated list of features to install at startup
+#
+featuresBoot = \
+ instance/4.2.1, \
+ package/4.2.1, \
+ log/4.2.1, \
+ ssh/4.2.1, \
+ framework/4.2.1, \
+ system/4.2.1, \
+ eventadmin/4.2.1, \
+ feature/4.2.1, \
+ shell/4.2.1, \
+ management/4.2.1, \
+ service/4.2.1, \
+ jaas/4.2.1, \
+ deployer/4.2.1, \
+ diagnostic/4.2.1, \
+ wrap/2.5.4, \
+ bundle/4.2.1, \
+ config/4.2.1, \
+ kar/4.2.1
+
+#
+# Resource repositories (OBR) that the features resolver can use
+# to resolve requirements/capabilities
+#
+# The format of the resourceRepositories is
+# resourceRepositories=[xml:url|json:url],...
+# for Instance:
+#
+#resourceRepositories=xml:http://host/path/to/index.xml
+# or
+#resourceRepositories=json:http://host/path/to/index.json
+#
+
+#
+# Defines if the boot features are started in asynchronous mode (in a dedicated thread)
+#
+featuresBootAsynchronous=false
+
+#
+# Service requirements enforcement
+#
+# By default, the feature resolver checks the service requirements/capabilities of
+# bundles for new features (xml schema >= 1.3.0) in order to automatically installs
+# the required bundles.
+# The following flag can have those values:
+# - disable: service requirements are completely ignored
+# - default: service requirements are ignored for old features
+# - enforce: service requirements are always verified
+#
+#serviceRequirements=default
+
+#
+# Store cfg file for config element in feature
+#
+#configCfgStore=true
+
+#
+# Configuration of features processing mechanism (overrides, blacklisting, modification of features)
+# XML file defines instructions related to features processing
+# versions.properties may declare properties to resolve placeholders in XML file
+# both files are relative to ${karaf.etc}
+#
+#featureProcessing=org.apache.karaf.features.xml
+#featureProcessingVersions=versions.properties
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.features.repos.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.features.repos.cfg
new file mode 100644
index 0000000000..3c8bf808d0
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.features.repos.cfg
@@ -0,0 +1,61 @@
+
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# This file describes the features repository URL
+# It could be directly installed using feature:repo-add command
+#
+enterprise=mvn:org.apache.karaf.features/enterprise/${karaf.version}/xml/features
+enterprise-legacy=mvn:org.apache.karaf.features/enterprise-legacy/${karaf.version}/xml/features
+spring=mvn:org.apache.karaf.features/spring/${karaf.version}/xml/features
+spring-legacy=mvn:org.apache.karaf.features/spring-legacy/${karaf.version}/xml/features
+cellar=mvn:org.apache.karaf.cellar/apache-karaf-cellar/RELEASE/xml/features
+cave=mvn:org.apache.karaf.cave/apache-karaf-cave/RELEASE/xml/features
+camel=mvn:org.apache.camel.karaf/apache-camel/RELEASE/xml/features
+camel-extras=mvn:org.apache-extras.camel-extra.karaf/camel-extra/RELEASE/xml/features
+cxf=mvn:org.apache.cxf.karaf/apache-cxf/RELEASE/xml/features
+cxf-dosgi=mvn:org.apache.cxf.dosgi/cxf-dosgi/RELEASE/xml/features
+cxf-dosgi-samples=mvn:org.apache.cxf.dosgi/cxf-dosgi-samples/RELEASE/xml/features
+cxf-xkms=mvn:org.apache.cxf.services.xkms/cxf-services-xkms-features/RELEASE/xml
+activemq=mvn:org.apache.activemq/activemq-karaf/RELEASE/xml/features
+jclouds=mvn:org.apache.jclouds.karaf/jclouds-karaf/RELEASE/xml/features
+openejb=mvn:org.apache.openejb/openejb-feature/RELEASE/xml/features
+wicket=mvn:org.ops4j.pax.wicket/features/RELEASE/xml/features
+hawtio=mvn:io.hawt/hawtio-karaf/RELEASE/xml/features
+pax-cdi=mvn:org.ops4j.pax.cdi/pax-cdi-features/RELEASE/xml/features
+pax-jdbc=mvn:org.ops4j.pax.jdbc/pax-jdbc-features/RELEASE/xml/features
+pax-jms=mvn:org.ops4j.pax.jms/pax-jms-features/RELEASE/xml/features
+pax-jpa=mvn:org.ops4j.pax.jpa/pax-jpa-features/RELEASE/xml/features
+pax-transx=mvn:org.ops4j.pax.transx/pax-transx-features/RELEASE/xml/features
+pax-keycloak=mvn:org.ops4j.pax.keycloak/pax-keycloak-features/RELEASE/xml/features
+pax-web=mvn:org.ops4j.pax.web/pax-web-features/RELEASE/xml/features
+pax-wicket=mvn:org.ops4j.pax.wicket/pax-wicket-features/RELEASE/xml/features
+ecf=http://download.eclipse.org/rt/ecf/RELEASE/site.p2/karaf-features.xml
+decanter=mvn:org.apache.karaf.decanter/apache-karaf-decanter/RELEASE/xml/features
+eclipsesource-jaxrs=mvn:com.eclipsesource.jaxrs/features/RELEASE/xml/features
+aries-jpa=mvn:org.apache.aries.jpa/jpa-features/RELEASE/xml/features
+aries-rsa=mvn:org.apache.aries.rsa/rsa-features/RELEASE/xml/features
+hibernate=mvn:org.hibernate/hibernate-osgi/RELEASE/xml/karaf
+ignite=mvn:org.apache.ignite/ignite-osgi-karaf/RELEASE/xml/features
+openjpa=mvn:org.apache.openjpa/openjpa-features/RELEASE/xml/features
+artemis=mvn:org.apache.activemq/artemis-features/RELEASE/xml/features
+brave=mvn:io.zipkin.brave.karaf/brave-features/RELEASE/xml/features
+sling=mvn:org.apache.sling/org.apache.sling.karaf-features/RELEASE/xml/features
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.jaas.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.jaas.cfg
new file mode 100644
index 0000000000..16e4e6841c
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.jaas.cfg
@@ -0,0 +1,63 @@
+
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# Boolean enabling / disabling encrypted passwords
+#
+encryption.enabled = false
+
+#
+# Encryption Service name
+# the default one is 'basic'
+# a more powerful one named 'jasypt' is available
+# when installing the encryption feature
+#
+encryption.name =
+
+#
+# Encryption prefix
+#
+encryption.prefix = {CRYPT}
+
+#
+# Encryption suffix
+#
+encryption.suffix = {CRYPT}
+
+#
+# Set the encryption algorithm to use in Karaf JAAS login module
+# Supported encryption algorithms follow:
+# MD2
+# MD5
+# SHA-1
+# SHA-256
+# SHA-384
+# SHA-512
+#
+encryption.algorithm = MD5
+
+#
+# Encoding of the encrypted password.
+# Can be:
+# hexadecimal
+# base64
+#
+encryption.encoding = hexadecimal
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.kar.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.kar.cfg
new file mode 100644
index 0000000000..3a3492066a
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.kar.cfg
@@ -0,0 +1,35 @@
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# Enable or disable the refresh of the bundles when installing
+# the features contained in a KAR file
+#
+noAutoRefreshBundles=false
+
+#
+# Enable or disable the automatic start of the bundles when installing
+# the features contained in a KAR file
+#
+noAutoStartBundles=false
+
+#
+# Directory where the kar are stored (when downloaded from Maven for instance)
+#
+#karStorage=${karaf.data}/kar
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.log.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.log.cfg
new file mode 100644
index 0000000000..67b35c93c0
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.log.cfg
@@ -0,0 +1,44 @@
+
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# This configuration file is used to configure the default values for the log:display
+# and log:exception-display commands.
+#
+
+#
+# The number of log statements to be displayed using log:display. It also defines the number
+# of lines searched for exceptions using log:exception-display. You can override this value
+# at runtime using -n in log:display.
+#
+size = "500"
+
+#
+# The pattern used to format the log statement when using log:display. This pattern is according
+# to the log4j layout. You can override this parameter at runtime using log:display with -p.
+#
+color.fatal = "bright red"
+color.error = "bright red"
+color.warn = "bright yellow"
+color.info = "bright green"
+color.debug = "cyan"
+color.trace = "cyan"
+pattern = "\u001b[90m%d{HH:mm:ss.SSS}\u001b[0m %h{%p}{FATAL=${color.fatal}, ERROR=${color.error}, WARN=${color.warn}, INFO=${color.info}, DEBUG=${color.debug}, TRACE=${color.trace}} \u001b[90m[%t]\u001b[0m %m%n"
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.management.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.management.cfg
new file mode 100644
index 0000000000..c4b1b757f4
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.management.cfg
@@ -0,0 +1,124 @@
+
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# The properties in this file define the configuration of Apache Karaf's JMX Management
+#
+
+#
+# Port number for RMI registry connection
+#
+rmiRegistryPort = 1099
+
+#
+# Host for RMI registry
+#
+rmiRegistryHost = 127.0.0.1
+
+#
+# Port number for RMI server connection
+#
+rmiServerPort = 44444
+
+#
+# Host for RMI server
+#
+rmiServerHost = 127.0.0.1
+
+#
+# Name of the JAAS realm used for authentication
+#
+jmxRealm = karaf
+
+#
+# The service URL for the JMXConnectorServer
+#
+serviceUrl = service:jmx:rmi://${rmiServerHost}:${rmiServerPort}/jndi/rmi://${rmiRegistryHost}:${rmiRegistryPort}/karaf-${karaf.name}
+
+#
+# Whether any threads started for the JMXConnectorServer should be started as daemon threads
+#
+daemon = true
+
+#
+# Whether the JMXConnectorServer should be started in a separate thread
+#
+threaded = true
+
+#
+# The ObjectName used to register the JMXConnectorServer
+#
+objectName = connector:name=rmi
+
+#
+# Timeout to lookup for the keystore in case of SSL authentication usage
+#
+#keyStoreAvailabilityTimeout = 5000
+
+#
+# The type of authentication
+#
+#authenticatorType = password
+
+#
+# Enable or not SSL/TLS
+#
+#secured = false
+
+#
+# Secure algorithm to use
+#
+#secureAlgorithm = default
+
+#
+# Secure protocol to use
+#
+#secureProtocol = TLS
+
+#
+# Keystore to use for secure mode
+#
+#keyStore = karaf.ks
+
+#
+# Alias of the key to use in the keystore
+#
+#keyAlias = karaf
+
+#
+# Truststore to use for secure mode
+#
+#trustStore = karaf.ts
+
+#
+# Create the JMX RMI registry
+#
+#createRmiRegistry = true
+
+#
+# Locate the JMX RMI registry
+#
+#locateRmiRegistry = true
+
+#
+# Locate an existing MBean server if possible (usefull when Karaf is embedded)
+#
+#locateExistingMBeanServerIfPossible = true
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.shell.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.shell.cfg
new file mode 100644
index 0000000000..68ed3314bc
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.apache.karaf.shell.cfg
@@ -0,0 +1,127 @@
+
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# These properties are used to configure Karaf's ssh shell.
+#
+
+#
+# Via sshPort and sshHost you define the address you can login into Karaf.
+#
+sshPort = 8101
+sshHost = 0.0.0.0
+
+#
+# The sshIdleTimeout defines the inactivity timeout to logout the SSH session.
+# The sshIdleTimeout is in milliseconds, and the default is set to 30 minutes.
+#
+sshIdleTimeout = 1800000
+
+#
+# sshRealm defines which JAAS domain to use for password authentication.
+#
+sshRealm = karaf
+
+#
+# sshRole defines the role required to access the console through ssh
+#
+sshRole = ssh
+
+#
+# Defines if the SFTP system is enabled or not in the SSH server
+#
+sftpEnabled=true
+
+#
+# The location of the hostKey file defines where the private/public key of the server
+# is located. If no file is at the defined location it will be ignored.
+#
+hostKey = ${karaf.etc}/host.key
+
+#
+# The format used for hostKey.
+# Possible values are simple (Karaf internal), or PEM (OpenSSH format)
+#
+hostKeyFormat = simple
+
+#
+# Self defined key size in 1024, 2048, 3072, or 4096
+# If not set, this defaults to 2048.
+#
+# keySize = 2048
+
+#
+# Specify host key algorithm, defaults to RSA
+#
+# algorithm = RSA
+
+#
+# Specify the client log level (default is WARN)
+# 0: ERROR
+# 1: WARN
+# 2: INFO
+# 3: DEBUG
+# 4: TRACE
+#
+#logLevel = 1
+
+#
+# Specify an additional welcome banner to be displayed when a user logs into the server.
+#
+# welcomeBanner =
+
+#
+# Defines the completion mode on the Karaf shell console. The possible values are:
+# - GLOBAL: it's the same behavior as in previous Karaf releases. The completion displays all commands and all aliases
+# ignoring if you are in a subshell or not.
+# - FIRST: the completion displays all commands and all aliases only when you are not in a subshell. When you are
+# in a subshell, the completion displays only the commands local to the subshell.
+# - SUBSHELL: the completion displays only the subshells on the root level. When you are in a subshell, the completion
+# displays only the commands local to the subshell.
+# This property define the default value when you use the Karaf shell console.
+# You can change the completion mode directly in the shell console, using shell:completion command.
+#
+completionMode = GLOBAL
+
+#
+# Override allowed SSH cipher algorithms.
+# Default: aes128-ctr,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc
+#
+# ciphers = aes128-ctr,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc
+
+#
+# Override allowed SSH HMAC algorithms.
+# Default: hmac-sha2-512,hmac-sha2-256,hmac-sha1
+#
+# macs = hmac-sha2-512,hmac-sha2-256,hmac-sha1
+
+#
+# Override allowed SSH key exchange algorithms.
+# Default: diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
+#
+# kexAlgorithms = diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
+
+#
+# Override moduli-url.
+# Default: moduli-url not specified to use the internal one from SSHD
+#
+# moduli-url = external moduli-url users wanna use
+
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.ops4j.pax.logging.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.ops4j.pax.logging.cfg
new file mode 100644
index 0000000000..ec0b7737fc
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.ops4j.pax.logging.cfg
@@ -0,0 +1,105 @@
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+# Colors for log level rendering
+color.fatal = bright red
+color.error = bright red
+color.warn = bright yellow
+color.info = bright green
+color.debug = cyan
+color.trace = cyan
+
+# Common pattern layout for appenders
+log4j2.pattern = %d{ISO8601} | %-5p | %-16t | %-32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
+log4j2.out.pattern = \u001b[90m%d{HH:mm:ss\.SSS}\u001b[0m %highlight{%-5level}{FATAL=${color.fatal}, ERROR=${color.error}, WARN=${color.warn}, INFO=${color.info}, DEBUG=${color.debug}, TRACE=${color.trace}} \u001b[90m[%t]\u001b[0m %msg%n%throwable
+
+
+# Root logger
+log4j2.rootLogger.level = INFO
+# uncomment to use asynchronous loggers, which require mvn:com.lmax/disruptor/3.3.2 library
+#log4j2.rootLogger.type = asyncRoot
+#log4j2.rootLogger.includeLocation = false
+log4j2.rootLogger.appenderRef.RollingFile.ref = RollingFile
+log4j2.rootLogger.appenderRef.PaxOsgi.ref = PaxOsgi
+log4j2.rootLogger.appenderRef.Console.ref = Console
+log4j2.rootLogger.appenderRef.Console.filter.threshold.type = ThresholdFilter
+log4j2.rootLogger.appenderRef.Console.filter.threshold.level = ${karaf.log.console:-OFF}
+
+# Loggers configuration
+
+# SSHD logger
+log4j2.logger.sshd.name = org.apache.sshd
+log4j2.logger.sshd.level = INFO
+
+# Spifly logger
+log4j2.logger.spifly.name = org.apache.aries.spifly
+log4j2.logger.spifly.level = WARN
+
+# Security audit logger
+log4j2.logger.audit.name = audit
+log4j2.logger.audit.level = TRACE
+log4j2.logger.audit.additivity = false
+log4j2.logger.audit.appenderRef.AuditRollingFile.ref = AuditRollingFile
+
+# Appenders configuration
+
+# Console appender not used by default (see log4j2.rootLogger.appenderRefs)
+log4j2.appender.console.type = Console
+log4j2.appender.console.name = Console
+log4j2.appender.console.layout.type = PatternLayout
+log4j2.appender.console.layout.pattern = ${log4j2.out.pattern}
+
+# Rolling file appender
+log4j2.appender.rolling.type = RollingRandomAccessFile
+log4j2.appender.rolling.name = RollingFile
+log4j2.appender.rolling.fileName = ${karaf.data}/log/karaf.log
+log4j2.appender.rolling.filePattern = ${karaf.data}/log/karaf.log.%i
+# uncomment to not force a disk flush
+#log4j2.appender.rolling.immediateFlush = false
+log4j2.appender.rolling.append = true
+log4j2.appender.rolling.layout.type = PatternLayout
+log4j2.appender.rolling.layout.pattern = ${log4j2.pattern}
+log4j2.appender.rolling.policies.type = Policies
+log4j2.appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
+log4j2.appender.rolling.policies.size.size = 16MB
+
+# Audit file appender
+log4j2.appender.audit.type = RollingRandomAccessFile
+log4j2.appender.audit.name = AuditRollingFile
+log4j2.appender.audit.fileName = ${karaf.data}/log/security.log
+log4j2.appender.audit.filePattern = ${karaf.data}/log/security-%i.log
+log4j2.appender.audit.append = true
+log4j2.appender.audit.layout.type = PatternLayout
+log4j2.appender.audit.layout.pattern = %m%n
+log4j2.appender.audit.policies.type = Policies
+log4j2.appender.audit.policies.size.type = SizeBasedTriggeringPolicy
+log4j2.appender.audit.policies.size.size = 8MB
+
+# OSGi appender
+log4j2.appender.osgi.type = PaxOsgi
+log4j2.appender.osgi.name = PaxOsgi
+log4j2.appender.osgi.filter = *
+
+# help with identification of maven-related problems with pax-url-aether
+#log4j2.logger.aether.name = shaded.org.eclipse.aether
+#log4j2.logger.aether.level = TRACE
+#log4j2.logger.http-headers.name = shaded.org.apache.http.headers
+#log4j2.logger.http-headers.level = DEBUG
+#log4j2.logger.maven.name = org.ops4j.pax.url.mvn
+#log4j2.logger.maven.level = TRACE
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.ops4j.pax.url.mvn.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.ops4j.pax.url.mvn.cfg
new file mode 100644
index 0000000000..8f8ddeb777
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.ops4j.pax.url.mvn.cfg
@@ -0,0 +1,146 @@
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# see: https://ops4j1.jira.com/wiki/display/paxurl/Aether+Configuration
+#
+
+# If set to true, the following property will not allow any certificate to be used
+# when accessing Maven repositories through SSL
+#
+org.ops4j.pax.url.mvn.certificateCheck=true
+
+#
+# Path to the local Maven settings file.
+# The repositories defined in this file will be automatically added to the list
+# of default repositories if the 'org.ops4j.pax.url.mvn.repositories' property
+# below is not set.
+# The following locations are checked for the existence of the settings.xml file
+# * 1. looks for the specified url
+# * 2. if not found looks for ${user.home}/.m2/settings.xml
+# * 3. if not found looks for ${maven.home}/conf/settings.xml
+# * 4. if not found looks for ${M2_HOME}/conf/settings.xml
+#
+# Properties prefixed with "org.ops4j.pax.url.mvn." have
+# higher priority except <proxies> element. HTTP proxies should be configured in
+# settings file
+#org.ops4j.pax.url.mvn.settings=
+
+#
+# Path to the local Maven repository which is used to avoid downloading
+# artifacts when they already exist locally.
+# The value of this property will be extracted from the settings.xml file
+# above, or defaulted to:
+# System.getProperty( "user.home" ) + "/.m2/repository"
+# leaving this option commented makes the system dependent on external
+# configuration, which is not always desired
+# "localRepository" is the target location for artifacts downloaded from
+# "remote repositories"
+#org.ops4j.pax.url.mvn.localRepository=
+
+#
+# Default this to false. It's just weird to use undocumented repos
+# "false" means that http://repo1.maven.org/maven2@id=central won't be
+# implicitly used as remote repository
+#
+org.ops4j.pax.url.mvn.useFallbackRepositories=false
+
+#
+# Comma separated list of repositories scanned when resolving an artifact.
+# list of repositories searched in the first place, should contain
+# ${runtime.home}/${karaf.default.repository}.
+# if "org.ops4j.pax.url.mvn.localRepository" is defined and it's not
+# ~/.m2/repository, it's recommended (at least for dev purposes) to add
+# ~/.m2/repository to defaultRepositories
+# each of these repositories is checked by aether as "local repository". if
+# artifact isn't found, "repositories" are searched next
+#
+# Those repositories will be checked before iterating through the
+# below list of repositories and even before the local repository
+# A repository url can be appended with zero or more of the following flags:
+# @snapshots : the repository contains snaphots
+# @noreleases : the repository does not contain any released artifacts
+#
+# The following property value will add the system folder as a repo.
+#
+org.ops4j.pax.url.mvn.defaultRepositories=\
+ ${karaf.home.uri}${karaf.default.repository}@id=system.repository@snapshots, \
+ ${karaf.data.uri}kar@id=kar.repository@multi@snapshots, \
+ ${karaf.base.uri}${karaf.default.repository}@id=child.system.repository@snapshots
+
+#
+# if "defaultLocalRepoAsRemote" is set to *any* value, localRepository will be
+# added to the list of remote repositories being searched for artifacts
+#
+#org.ops4j.pax.url.mvn.defaultLocalRepoAsRemote = true
+
+#
+# Comma separated list of repositories scanned when resolving an artifact.
+# list of repositories searched after resolution fails for "defaultRepositories"
+# These are true remote repositories accessed using maven/aether/wagon
+# mechanisms. If any repository contains required artifact, it is then written
+# to "localRepository"
+#
+# if this list is _prepended_ with '+' sign, all repositories from active
+# profiles defined in effective settings.xml file will be _appended_ to this
+# list
+# The default list includes the following repositories:
+# http://repo1.maven.org/maven2@id=central
+# http://repository.apache.org/content/groups/snapshots-group@id=apache@snapshots@noreleases
+# https://oss.sonatype.org/content/repositories/snapshots@id=sonatype.snapshots.deploy@snapshots@noreleases
+# https://oss.sonatype.org/content/repositories/ops4j-snapshots@id=ops4j.sonatype.snapshots.deploy@snapshots@noreleases
+# A repository url can be appended with zero or more of the following flags:
+# @snapshots : the repository contains snapshots
+# @noreleases : the repository does not contain any released artifacts
+# @id=repository.id : the id for the repository, just like in the
+# settings.xml this is optional but recommended
+#
+org.ops4j.pax.url.mvn.repositories= \
+ http://repo1.maven.org/maven2@id=central, \
+ http://repository.apache.org/content/groups/snapshots-group@id=apache@snapshots@noreleases, \
+ https://oss.sonatype.org/content/repositories/ops4j-snapshots@id=ops4j.sonatype.snapshots.deploy@snapshots@noreleases
+
+#
+# Global policies override repository-specific settings (@checksum=..., @update=..., @releasesUpdate=..., ...)
+#
+#org.ops4j.pax.url.mvn.globalUpdatePolicy = daily
+#org.ops4j.pax.url.mvn.globalChecksumPolicy = warn
+
+#
+# socket and connection configuration (pax-url-aether 2.5.0)
+#
+# default value for connection and read timeouts, when socket.readTimeout and socket.connectionTimeout
+# are not specified
+org.ops4j.pax.url.mvn.timeout = 5000
+# timeout in ms when establishing http connection during artifact resolution
+org.ops4j.pax.url.mvn.socket.connectionTimeout = 5000
+# timeout in ms when reading data after connecting to remote repository
+org.ops4j.pax.url.mvn.socket.readTimeout = 30000
+# SO_KEEPALIVE option for sockets, defaults to false
+org.ops4j.pax.url.mvn.socket.keepAlive = false
+# SO_LINGER option for sockets, defaults to -1
+org.ops4j.pax.url.mvn.socket.linger = -1
+# SO_REUSEADDR option for sockets, defaults to false
+org.ops4j.pax.url.mvn.socket.reuseAddress = false
+# TCP_NODELAY option for sockets, defaults to true
+org.ops4j.pax.url.mvn.socket.tcpNoDelay = true
+# Configure buffer size for HTTP connections (output and input buffers), defaults to 8192 bytes
+org.ops4j.pax.url.mvn.connection.bufferSize = 8192
+# Number of connection retries after failure is detected in http client. httpclient uses default value "3"
+org.ops4j.pax.url.mvn.connection.retryCount = 3
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.ops4j.pax.web.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.ops4j.pax.web.cfg
new file mode 100644
index 0000000000..8c78c5dbc3
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/org.ops4j.pax.web.cfg
@@ -0,0 +1,6 @@
+
+org.osgi.service.http.port=8181
+javax.servlet.context.tempdir=${karaf.data}/pax-web-jsp
+org.ops4j.pax.web.config.file=${karaf.etc}/jetty.xml
+org.apache.karaf.features.configKey = org.ops4j.pax.web
+
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/profile.cfg b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/profile.cfg
new file mode 100644
index 0000000000..9a94f1456f
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/profile.cfg
@@ -0,0 +1,38 @@
+#
+# Profile generated by Karaf Assembly Builder
+#
+
+# Parent profiles
+attribute.parents = generated-startup generated-boot generated-installed
+
+# Attributes
+attribute.overlay = true
+
+# Feature XML repositories
+repository.mvn\:org.apache.karaf.features/standard/4.2.1/xml/features = mvn:org.apache.karaf.features/standard/4.2.1/xml/features
+repository.mvn\:org.apache.karaf.features/framework/4.2.1/xml/features = mvn:org.apache.karaf.features/framework/4.2.1/xml/features
+repository.mvn\:org.apache.karaf.features/spring/4.2.1/xml/features = mvn:org.apache.karaf.features/spring/4.2.1/xml/features
+repository.mvn\:org.apache.karaf.features/enterprise/4.2.1/xml/features = mvn:org.apache.karaf.features/enterprise/4.2.1/xml/features
+
+# Features
+feature.framework = framework
+feature.eventadmin = eventadmin
+feature.wrap = wrap
+feature.shell = shell
+feature.feature = feature
+feature.jaas = jaas
+feature.ssh = ssh
+feature.management = management
+feature.bundle = bundle
+feature.config = config
+feature.deployer = deployer
+feature.diagnostic = diagnostic
+feature.instance = instance
+feature.kar = kar
+feature.log = log
+feature.package = package
+feature.service = service
+feature.system = system
+feature.wrapper = wrapper
+feature.aries-blueprint = aries-blueprint
+feature.shell-compat = shell-compat
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/scripts/shell.completion.script b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/scripts/shell.completion.script
new file mode 100644
index 0000000000..77856338b8
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/scripts/shell.completion.script
@@ -0,0 +1,271 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+// This script is run each time a shell is created.
+// You can define here closures or variables that will be available
+// in each session.
+//
+
+__option_not_present = {
+ res = true
+ opts = $argv
+ each $opts {
+ arg = $it
+ each ($.commandLine words) {
+ if { ($it toString) equals ($arg toString) } {
+ res = false
+ }
+ }
+ }
+ $res
+}
+
+__set_unset_arguments = {
+ is_setopt = (($.commandLine words) get 0) equals "setopt"
+ enums = ((__load_class 'org.jline.reader.LineReader$Option') enumConstants)
+ candidates = new ArrayList
+ each $enums {
+ name = ${(GL)it/_/-}
+ is_set = ($.reader isSet $it)
+ neg = %(( if(is_setopt, is_set, not(is_set)) ))
+ if { $neg } {
+ name = "no-${name}"
+ }
+ if { not { (($.commandLine words) subList 1 ($.commandLine wordIndex)) contains $name } } {
+ $candidates add (new org.jline.reader.Candidate $name $name (if { $neg } { "unset" } { "set" }) null null null true)
+ }
+ }
+ $candidates
+}
+
+jlineReader = $.reader
+if { %(jlineReader != null) } {
+
+ complete -c shell:complete -e
+ complete -c shell:complete -d "Edit command specific completions"
+ complete -c shell:complete -s c -l command --description "Command to add completion to" -n '__option_not_present -c --command' -a '$.commands'
+ complete -c shell:complete -s s -l short-option --description "Posix-style option to complete" -n '__option_not_present -s --short-option'
+ complete -c shell:complete -s l -l long-option --description "GNU-style option to complete" -n '__option_not_present -l --long-option'
+ complete -c shell:complete -s a -l arguments --description "A list of possible arguments" -n '__option_not_present -a --argument'
+ complete -c shell:complete -s d -l description --description "Description of this completions" -n '__option_not_present -d --description'
+ complete -c shell:complete -s h -l help --description "Display help and exit" -n '__option_not_present -h --help'
+ complete -c shell:complete -s n -l condition --description "The completion should only be used if the specified command has a zero exit status" -n '__option_not_present -n --condition'
+ complete -c shell:complete -s e -l erase --description "Remove completion" -n '__option_not_present -e --erase'
+
+ complete -c shell:history -e
+ complete -c shell:history -d "Show and manipulate command history"
+ complete -c shell:history -l clear --description "Clear history" -n '__option_not_present --clear'
+ complete -c shell:history -l save --description "Save history" -n '__option_not_present --save'
+
+ complete -c shell:setopt -e
+ complete -c shell:setopt -d "Set or view set shell options"
+ complete -c shell:setopt -a '__set_unset_arguments'
+
+ complete -c shell:unsetopt -e
+ complete -c shell:unsetopt -d "Unset or view unset shell options"
+ complete -c shell:unsetopt -a '__set_unset_arguments'
+
+ complete -c shell:cat -e
+ complete -c shell:cat -d "Concatenate and print files"
+ complete -c shell:cat -s n "Number the output lines, starting at 1"
+ complete -c shell:cat -a '__files'
+
+ complete -c shell:pwd -e
+ complete -c shell:pwd -d "Get current directory"
+
+ complete -c shell:ls -e
+ complete -c shell:ls -d "List files"
+
+ complete -c shell:cd -e
+ complete -c shell:cd -d "Change current directory"
+ complete -c shell:cd -a 'wi = ($.commandLine wordIndex); if { %(wi==1) } { __directories } { [ ] }'
+
+ complete -c shell:sleep -e
+ complete -c shell:sleep -d "Pause execution for the specified amount of time"
+
+ complete -c shell:echo -e
+ complete -c shell:echo -d "Write arguments to the standard output"
+ complete -c shell:echo -s n -d "No trailing new line"
+
+ complete -c shell:grep -e
+ complete -c shell:grep -d "File pattern searcher"
+ # TODO
+
+ complete -c shell:sort -e
+ complete -c shell:sort -d "Sort lines of text files"
+ # TODO
+
+ complete -c shell:gosh -e
+ complete -c shell:gosh -d "Execute script with arguments in a new session"
+ # TODO
+
+ complete -c shell:sh -e
+ complete -c shell:sh -d "Execute script with arguments in a new session"
+ # TODO
+
+ complete -c shell:source -e
+ complete -c shell:source -d "Execute script with arguments"
+ # TODO
+
+ # TODO: format getopt new set tac type addcommand removeCommand eval
+
+ complete -c shell:break -e
+ complete -c shell:break -d "Break from a loop"
+
+ complete -c shell:continue -e
+ complete -c shell:continue -d "Continue to next iteration in a loop"
+
+ complete -c shell:each -e
+ complete -c shell:each -d "Loop and execute script on the specified elements"
+
+ complete -c shell:if -e
+ complete -c shell:if -d "Conditionaly execute a script"
+
+ complete -c shell:new -e
+ complete -c shell:new -d "Creates new instance of the given java class"
+
+ complete -c shell:not -e
+ complete -c shell:not -d "Negates the result of a script"
+
+ complete -c shell:throw -e
+ complete -c shell:throw -d "Throws an exception"
+
+ complete -c shell:try -e
+ complete -c shell:try -d "Try executing a script and catch any exception"
+
+ complete -c shell:until -e
+ complete -c shell:until -d "Loop and execute script until a condition is satisfied"
+
+ complete -c shell:while -e
+ complete -c shell:while -d "Loop and execute script while a condition is satisfied"
+
+ complete -c shell:less -e
+ complete -c shell:less -d "File pager"
+ complete -c shell:less -s e -l quit-at-eof --description "Exit on second EOF"
+ complete -c shell:less -s E -l QUIT-AT-EOF --description "Exit on EOF"
+ complete -c shell:less -s q -l quiet -l silent --description "Silent mode"
+ complete -c shell:less -s Q -l QUIET -l SILENT --description "Completely silent"
+ complete -c shell:less -s S -l chop-long-lines --description "Do not fold long lines"
+ complete -c shell:less -s i -l ignore-case --description "Search ignores lowercase case"
+ complete -c shell:less -s I -l IGNORE-CASE --description "Search ignores all case"
+ complete -c shell:less -s x -l tabs --description "Set tab stops"
+ complete -c shell:less -s N -l LINE-NUMBERS --description "Display line number for each line"
+ complete -c shell:less -a '__files'
+
+ complete -c shell:nano -e
+ complete -c shell:nano -d "File editor"
+ complete -c shell:nano -a '__files'
+
+ complete -c shell:keymap -e
+ complete -c shell:keymap -d "Manipulate keymaps"
+ complete -c shell:keymap -s N --description "Create a new keymap" -n '__option_not_present -N -d -D -l -r -s -A'
+ complete -c shell:keymap -s d --description "Delete existing keymaps and reset to default state" -n '__option_not_present -N -d -D -l -r -s -A'
+ complete -c shell:keymap -s D --description "Delete named keymaps" -n '__option_not_present -N -d -D -l -r -s -A'
+ complete -c shell:keymap -s l --description "List existing keymap names" -n '__option_not_present -N -d -D -l -r -s -A'
+ complete -c shell:keymap -s r --description "Unbind specified in-strings" -n '__option_not_present -N -d -D -l -r -s -A'
+ complete -c shell:keymap -s s --description "Bind each in-string to each out-string" -n '__option_not_present -N -d -D -l -r -s -A'
+ complete -c shell:keymap -s A --description "Create alias to keymap" -n '__option_not_present -N -d -D -l -r -s -A'
+ complete -c shell:keymap -s e --description "Select emacs keymap and bind it to main" -n '__option_not_present -e -a -v -M'
+ complete -c shell:keymap -s v --description "Select viins keymap and bind it to main" -n '__option_not_present -e -a -v -M'
+ complete -c shell:keymap -s a --description "Select vicmd keymap" -n '__option_not_present -e -a -v -M'
+ complete -c shell:keymap -s M --description "Specify keymap to select" -n '__option_not_present -e -a -v -M' -a '(keymap -l | tac) split " "'
+ complete -c shell:keymap -s R --description "Interpret in-strings as ranges"
+ complete -c shell:keymap -s p --description "List bindings which have given key sequence as a a prefix"
+ complete -c shell:keymap -s L --description "Output in form of keymap commands"
+
+ complete -c shell:widget -e
+ complete -c shell:widget -d "Manipulate widgets"
+ complete -c shell:widget -s N --description "Create a new widget" -n '__option_not_present -N -A -D -U -l'
+ complete -c shell:widget -s A --description "Create alias to widget" -n '__option_not_present -N -A -D -U -l'
+ complete -c shell:widget -s D --description "Delete widgets" -n '__option_not_present -N -A -D -U -l'
+ complete -c shell:widget -s U --description "Push characters to the stack" -n '__option_not_present -N -A -D -U -l'
+ complete -c shell:widget -s l --description "List user-defined widgets" -n '__option_not_present -N -A -D -U -l'
+ complete -c shell:widget -s a --description "With -l, list all widgets" -n '__option_not_present -l'
+
+ complete -c shell:bg -e
+ complete -c shell:bg -d "Put job in background"
+
+ complete -c shell:fg -e
+ complete -c shell:fg -d "Put job in foreground"
+
+ complete -c shell:jobs -e
+ complete -c shell:jobs -d "List jobs"
+
+ complete -c shell:clear -e
+ complete -c shell:clear -d "Clear screen"
+
+ complete -c shell:head -e
+ complete -c shell:head -d "Displays first lines of file"
+ complete -c shell:head -s n -l lines --description "Print line counts"
+ complete -c shell:head -s c -l bytes --description "Print byte counts"
+ complete -c shell:head -a '__files'
+
+ complete -c shell:tail -e
+ complete -c shell:tail -d "Displays last lines of file"
+ complete -c shell:tail -s q -l quiet --description "Suppress headers when printing multiple sources"
+ complete -c shell:tail -s f -l follow --description "Do not stop at end of file"
+ complete -c shell:tail -s F -l FOLLOW --description "Follow and check for file renaming or rotation"
+ complete -c shell:tail -s n -l lines --description "Number of lines to print"
+ complete -c shell:tail -s c -l bytes --description "Number of bytes to print"
+ complete -c shell:tail -a '__files'
+
+ complete -c shell:date -e
+ complete -c shell:date -d "Display date and time"
+ complete -c shell:date -s u --description "Use UTC"
+ complete -c shell:date -s r --description "Print the date represented by 'seconds' since January 1, 1970"
+ complete -c shell:date -s v --description "Adjust date"
+ complete -c shell:date -s f --description "Use 'input_fmt' to parse 'new_date'"
+
+ complete -c shell:wc -e
+ complete -c shell:wc -d "Word, line, character, and byte count"
+ complete -c shell:wc -s n -l lines --description "Print line count"
+ complete -c shell:wc -s c -l bytes --description "Print byte count"
+ complete -c shell:wc -s m -l chars --description "Print character count"
+ complete -c shell:wc -s w -l words --description "Print word count"
+ complete -c shell:wc -a '__files'
+
+ __get_scr_components = {
+ list = [ ]
+ scrref = ($.context getServiceReference org.osgi.service.component.runtime.ServiceComponentRuntime)
+ scr = ($.context getService $scrref)
+ each ($scr getComponentDescriptionDTOs ($.context bundles)) {
+ $list add ((($it getClass) getField "name") get $it)
+ }
+ $.context ungetService $scrref
+ $list
+ }
+
+ complete -c scr:config -e
+ complete -c scr:config -d "Show the current SCR configuration"
+
+ complete -c scr:disable -e
+ complete -c scr:disable -d "Disable an enabled component"
+ complete -c scr:disable -a '__get_scr_components'
+
+ complete -c scr:enable -e
+ complete -c scr:enable -d "Enable an disabled component"
+ complete -c scr:enable -a '__get_scr_components'
+
+ complete -c scr:info -e
+ complete -c scr:info -d "Dump information of a component or component configuration"
+ complete -c scr:info -a '__get_scr_components'
+
+ complete -c scr:list -e
+ complete -c scr:list -d "List component configurations of a specific bundle"
+
+}
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/shell.init.script b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/shell.init.script
new file mode 100644
index 0000000000..2dff99c4ba
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/shell.init.script
@@ -0,0 +1,66 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+// This script is run each time a shell is created.
+// You can define here closures or variables that will be available
+// in each session.
+//
+ld = { log:display $args } ;
+lde = { log:exception-display $args } ;
+la = { bundle:list -t 0 $args } ;
+ls = { service:list $args } ;
+cl = { config:list "(service.pid=$args)" } ;
+halt = { system:shutdown -h -f $args } ;
+help = { *:help $args | more } ;
+man = { help $args } ;
+log:list = { log:get ALL } ;
+service:get = { $.context getService ($.context getServiceReference $args) };
+
+env = { shell:set $args }
+edit = { shell:nano $args }
+more = { shell:less -F $args }
+
+\#prompt = { "${USER}@${APPLICATION}(${SUBSHELL})> "?};
+
+__load_class = {
+ (($.reader class) classLoader) loadClass $1
+}
+
+// make sure that we catch exceptions
+// as they do occur if the session is headless / non-interactive
+jlineReader = $.reader
+if { %(jlineReader != null) } {
+
+ # On 256 colors terminal, add a right prompt
+ max_colors = ($.jline.terminal getNumericCapability max_colors)
+ if { %(max_colors >= 256) } {
+ __rprompt_formatter = (((__load_class java.text.SimpleDateFormat) getConstructor (__load_class java.lang.String)) newInstance \'$'\u001B\[90m'\'HH:mm:ss)
+ __date_class = (__load_class java.util.Date)
+// Do not use right prompt by default
+// \#rprompt = { $__rprompt_formatter format ($__date_class newInstance) }
+ }
+
+ setopt group
+ setopt auto-fresh-line
+ unsetopt insert-tab
+ keymap "^[OA" up-line-or-search
+ keymap "^[[A" up-line-or-search
+ keymap "^[OB" down-line-or-search
+ keymap "^[[B" down-line-or-search
+
+}
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/startup.properties b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/startup.properties
new file mode 100644
index 0000000000..2193137d66
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/startup.properties
@@ -0,0 +1,13 @@
+# Bundles to be started on startup, with startlevel
+mvn\:org.apache.karaf.features/org.apache.karaf.features.extension/4.2.1 = 1
+mvn\:org.apache.felix/org.apache.felix.metatype/1.2.0 = 5
+mvn\:org.apache.karaf.services/org.apache.karaf.services.eventadmin/4.2.1 = 5
+mvn\:org.ops4j.pax.url/pax-url-aether/2.5.4 = 5
+mvn\:org.fusesource.jansi/jansi/1.17.1 = 8
+mvn\:org.ops4j.pax.logging/pax-logging-api/1.10.1 = 8
+mvn\:org.ops4j.pax.logging/pax-logging-log4j2/1.10.1 = 8
+mvn\:org.apache.felix/org.apache.felix.coordinator/1.0.2 = 9
+mvn\:org.apache.felix/org.apache.felix.configadmin/1.9.4 = 10
+mvn\:org.apache.felix/org.apache.felix.fileinstall/3.6.4 = 11
+mvn\:org.apache.karaf.features/org.apache.karaf.features.core/4.2.1 = 15
+mvn\:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-impl/2.2.11_1 = 20
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/system.properties b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/system.properties
new file mode 100644
index 0000000000..24aae4bbe2
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/system.properties
@@ -0,0 +1,156 @@
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# The properties defined in this file will be made available through system
+# properties at the very beginning of the Karaf's boot process.
+#
+
+# Properties file inclusions (as a space separated list of relative paths)
+# Included files will override the values specified in this file
+${optionals} = custom.system.properties
+
+# Log level when the pax-logging service is not available
+# This level will only be used while the pax-logging service bundle
+# is not fully available.
+# To change log levels, please refer to the org.ops4j.pax.logging.cfg file
+# instead.
+org.ops4j.pax.logging.DefaultServiceLog.level = ERROR
+
+#
+# Name of this Karaf instance.
+#
+karaf.name = root
+
+#
+# Default repository where bundles will be loaded from before using
+# other Maven repositories. For the full Maven configuration, see
+# the org.ops4j.pax.url.mvn.cfg file.
+#
+karaf.default.repository = system
+
+#
+# Location of a shell script that will be run when starting a shell
+# session. This script can be used to create aliases and define
+# additional commands.
+#
+# NB: ${karaf.etc} is implicitly added to the path, don't use absolute path here
+#
+karaf.shell.init.script = shell.init.script,scripts/*.script
+
+#
+# Sets the maximum size of the shell command history. If not set,
+# defaults to 500 entries. Setting to 0 will disable history.
+#
+# karaf.shell.history.maxSize = 0
+
+#
+# Sets the maximum size of the local shell command history file. If not set,
+# defaults to 10000 entries.
+#
+# karaf.shell.history.file.maxSize = 10000
+
+#
+# Deletes the entire karaf.data directory at every start
+#
+karaf.clean.all = false
+
+#
+# Deletes the karaf.data/cache directory at every start
+#
+karaf.clean.cache = false
+
+#
+# User name for the Karaf local console
+#
+karaf.local.user = karaf
+
+#
+# Roles to use when for the default user in the local Karaf console.
+#
+# The syntax is the following:
+# [classname:]principal
+# where classname is the class name of the principal object
+# (defaults to org.apache.karaf.jaas.modules.RolePrincipal)
+# and principal is the name of the principal of that class
+# (defaults to instance).
+#
+karaf.local.roles = admin,manager,viewer,systembundles
+
+#
+# Set this empty property to avoid errors when validating xml documents.
+#
+xml.catalog.files =
+
+#
+# Specs options
+#
+org.apache.servicemix.specs.debug = false
+org.apache.servicemix.specs.timeout = 0
+org.apache.karaf.specs.debug = false
+org.apache.karaf.specs.timeout = 0
+
+#
+# Settings for the OSGi 4.3 Weaving
+# By default, we will not weave any classes. Change this setting to include classes
+# that you application needs to have woven.
+#
+org.apache.aries.proxy.weaving.enabled = none
+# Classes not to weave - Aries default + Xerces which is known to have issues.
+org.apache.aries.proxy.weaving.disabled = org.objectweb.asm.*,org.slf4j.*,org.apache.log4j.*,javax.*,org.apache.xerces.*
+
+#
+# By default, only Karaf shell commands are secured, but additional services can be
+# secured by expanding this filter
+#
+karaf.secured.services = (&(osgi.command.scope=*)(osgi.command.function=*))
+
+#
+# By default, if there's no ACL policy for a certain karaf command, this command is allowed to access
+# without the RBAC. We can change this behavior by enable the following property, which means
+# if a karaf command has no corresponding ACL then access it must have one of the karaf.secured.command.compulsory.roles
+#
+#karaf.secured.command.compulsory.roles=admin
+
+#
+# Security properties
+#
+# To enable OSGi security, uncomment the properties below,
+# install the framework-security feature and restart.
+#
+#java.security.policy=${karaf.etc}/all.policy
+#org.osgi.framework.security=osgi
+#org.osgi.framework.trust.repositories=${karaf.etc}/trustStore.ks
+
+#
+# HA/Lock configuration
+#
+# Karaf uses a lock mechanism to know which instance is the master (HA)
+# The lock can be on the filesystem (default) or on a database.
+#
+# See http://karaf.apache.org/manual/latest/users-guide/failover.html for details.
+#
+# Even using a single instance, Karaf creates the lock file
+# You can specify the location of the lock file using the
+# karaf.lock.dir=/path/to/the/directory/containing/the/lock
+#
+# By default, the slave instances start but are passive.
+# If you want to prevent the slave instances startup, you can use
+# the karaf.lock.slave.block property (false by default):
+# karaf.lock.slave.block=true
diff --git a/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/users.properties b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/users.properties
new file mode 100644
index 0000000000..ace22826cc
--- /dev/null
+++ b/test/servlet-containers/karaf/karaf-run/apache-karaf-4.2.1-minimal/etc/users.properties
@@ -0,0 +1,33 @@
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+################################################################################
+
+#
+# This file contains the users, groups, and roles.
+# Each line has to be of the format:
+#
+# USER=PASSWORD,ROLE1,ROLE2,...
+# USER=PASSWORD,_g_:GROUP,...
+# _g_\:GROUP=ROLE1,ROLE2,...
+#
+# All users, groups, and roles entered in this file are available after Karaf startup
+# and modifiable via the JAAS command group. These users reside in a JAAS domain
+# with the name "karaf".
+#
+karaf = karaf,_g_:admingroup
+_g_\:admingroup = group,admin,manager,viewer,systembundles,ssh