<?xml version="1.0" encoding="UTF-8"?>
<!--
    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.
-->
<features name="sling-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.5.0">
  <!-- Apache Sling -->
  <feature name="sling" version="${project.version}">
    <config external="true" name="org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_resourceresolver">classpath:org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_resourceresolver.config</config>
    <bundle>mvn:org.apache.sling/org.apache.sling.api/2.23.0</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.auth.core/1.5.0</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.engine/2.7.2</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.resourceresolver/1.7.0</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.serviceusermapper/1.4.6</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.settings/1.4.2</bundle>
    <!-- Apache Sling Commons -->
    <bundle>mvn:org.apache.sling/org.apache.sling.commons.johnzon/1.2.6</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.commons.mime/2.2.2</bundle>
    <!-- dependencies -->
    <feature>config</feature>
    <feature>eventadmin</feature>
    <feature>scr</feature>
    <feature>management</feature>
    <feature prerequisite="true">pax-url-classpath</feature>
    <feature version="${project.version}">sling-commons-fsclassloader</feature>
    <feature version="${project.version}">sling-commons-osgi</feature>
    <feature version="${project.version}">sling-commons-scheduler</feature>
    <feature version="${project.version}">sling-commons-threads</feature>
    <bundle dependency="true">mvn:commons-codec/commons-codec/1.15</bundle>
    <bundle dependency="true">mvn:commons-collections/commons-collections/3.2.2</bundle>
    <bundle dependency="true">mvn:commons-fileupload/commons-fileupload/1.4</bundle>
    <bundle dependency="true">mvn:commons-io/commons-io/2.8.0</bundle>
    <bundle dependency="true">mvn:commons-lang/commons-lang/2.6</bundle>
    <bundle dependency="true">mvn:org.apache.commons/commons-collections4/4.4</bundle>
    <bundle dependency="true">mvn:org.apache.commons/commons-lang3/3.11</bundle>
    <bundle dependency="true">mvn:org.apache.commons/commons-math/2.2</bundle>
    <bundle dependency="true">mvn:org.apache.felix/org.apache.felix.converter/1.0.14</bundle>
    <capability>
      osgi.service;objectClass=org.apache.sling.engine.SlingRequestProcessor, <!-- provided by engine -->
      osgi.service;objectClass=javax.servlet.ServletContext
    </capability>
  </feature>
  <feature name="sling-configs" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.karaf-configs/0.1.1-SNAPSHOT</bundle>
  </feature>
  <!-- Apache Sling Auth -->
  <feature name="sling-auth-form" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.auth.form/1.0.20</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">jackrabbit-oak</feature>
  </feature>
  <!-- Apache Sling Commons -->
  <feature name="sling-commons-clam" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.commons.clam/2.0.0</bundle>
    <!-- dependencies -->
    <feature>scr</feature>
    <bundle dependency="true">mvn:commons-io/commons-io/2.8.0</bundle>
  </feature>
  <feature name="sling-commons-compiler" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.commons.compiler/2.4.0</bundle>
    <!-- dependencies -->
    <feature>scr</feature>
    <feature version="${project.version}">sling-commons-classloader</feature>
  </feature>
  <feature name="sling-commons-classloader" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.commons.classloader/1.4.4</bundle>
  </feature>
  <feature name="sling-commons-crypto" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.commons.crypto/1.0.0</bundle>
    <!-- dependencies -->
    <feature>scr</feature>
    <bundle dependency="true">mvn:org.apache.commons/commons-lang3/3.11</bundle>
    <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jasypt/1.9.3_1</bundle>
  </feature>
  <feature name="sling-commons-fsclassloader" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.commons.fsclassloader/1.0.14</bundle>
    <!-- dependencies -->
    <feature>scr</feature>
    <feature>webconsole</feature>
    <feature version="${project.version}">sling-commons-classloader</feature>
    <feature version="${project.version}">sling-commons-osgi</feature>
    <bundle dependency="true">mvn:commons-io/commons-io/2.8.0</bundle>
    <bundle dependency="true">mvn:org.apache.commons/commons-lang3/3.11</bundle>
  </feature>
  <feature name="sling-commons-html" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.commons.html/1.1.0</bundle>
    <!-- dependencies -->
    <feature>scr</feature>
    <feature version="${project.version}">sling-commons-osgi</feature>
  </feature>
  <feature name="sling-commons-messaging" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.commons.messaging/1.0.0</bundle>
  </feature>
  <feature name="sling-commons-messaging-mail" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.commons.messaging.mail/1.0.0</bundle>
    <!-- dependencies -->
    <feature>scr</feature>
    <feature version="${project.version}">sling-commons-crypto</feature>
    <feature version="${project.version}">sling-commons-messaging</feature>
    <feature version="${project.version}">sling-commons-threads</feature>
    <bundle dependency="true">mvn:com.sun.mail/jakarta.mail/1.6.5</bundle>
    <bundle dependency="true">mvn:jakarta.mail/jakarta.mail-api/1.6.5</bundle>
    <bundle dependency="true">mvn:org.apache.commons/commons-lang3/3.11</bundle>
    <bundle dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.1/2.9.0</bundle>
  </feature>
  <feature name="sling-commons-metrics" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.commons.metrics/1.2.8</bundle>
    <!-- dependencies -->
    <feature>scr</feature>
    <bundle dependency="true">mvn:io.dropwizard.metrics/metrics-core/3.2.6</bundle>
  </feature>
  <feature name="sling-commons-osgi" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.commons.osgi/2.4.2</bundle>
    <feature>eventadmin</feature>
  </feature>
  <feature name="sling-commons-scheduler" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.commons.scheduler/2.7.12</bundle>
    <!-- dependencies -->
    <feature>scr</feature>
    <feature version="${project.version}">sling-commons-metrics</feature>
    <feature version="${project.version}">sling-commons-threads</feature>
    <bundle dependency="true">mvn:javax.servlet/javax.servlet-api/3.1.0</bundle>
    <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1</bundle>
  </feature>
  <feature name="sling-commons-threads" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.commons.threads/3.2.20</bundle>
    <!-- dependencies -->
    <feature>config</feature>
    <feature version="${project.version}">sling-commons-metrics</feature>
  </feature>
  <!-- Apache Sling Extensions -->
  <feature name="sling-adapter" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.adapter/2.1.10</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
  </feature>
  <feature name="sling-bundleresource" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.bundleresource.impl/2.3.2</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
  </feature>
  <feature name="sling-caconfig" version="${project.version}">
    <config external="true" name="org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_caconfig">classpath:org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_caconfig.config</config>
    <config external="true" name="org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_caconfig">classpath:org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_caconfig.config</config>
    <bundle>mvn:org.apache.sling/org.apache.sling.caconfig.api/1.2.0</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.caconfig.impl/1.5.0</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.caconfig.spi/1.3.4</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">sling-scripting</feature>
    <feature version="${project.version}">sling-xss</feature>
    <feature>webconsole</feature>
  </feature>
  <feature name="sling-clam" version="${project.version}">
    <config external="true" name="org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_clam">classpath:org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_clam.config</config>
    <config external="true" name="org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_clam">classpath:org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_clam.config</config>
    <bundle>mvn:org.apache.sling/org.apache.sling.clam/1.1.0</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">sling-commons-clam</feature>
    <feature version="${project.version}">sling-event</feature>
    <feature version="${project.version}">sling-jcr</feature>
  </feature>
  <feature name="sling-discovery" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.discovery.api/1.0.4</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
  </feature>
  <feature name="sling-discovery-oak" version="${project.version}">
    <config external="true" name="org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment~sling_discovery">classpath:org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment~sling_discovery.config</config>
    <config external="true" name="org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_discovery">classpath:org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_discovery.config</config>
    <config external="true" name="org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_discovery">classpath:org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_discovery.config</config>
    <bundle>mvn:org.apache.sling/org.apache.sling.discovery.base/2.0.8</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.discovery.commons/1.0.20</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.discovery.oak/1.2.30</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.discovery.support/1.0.6</bundle>
    <!-- dependencies -->
    <feature>webconsole</feature>
    <feature version="${project.version}">sling-discovery</feature>
    <feature version="${project.version}">sling-healthcheck</feature>
    <feature version="${project.version}">httpcomponents-client</feature>
    <bundle dependency="true">mvn:javax.jcr/jcr/2.0</bundle>
  </feature>
  <feature name="sling-discovery-standalone" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.discovery.standalone/1.0.2</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling-discovery</feature>
  </feature>
  <feature name="sling-distribution" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.distribution.api/0.4.0</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.distribution.core/0.4.2</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">sling-jcr</feature>
    <feature version="${project.version}">sling-event</feature>
    <feature version="${project.version}">sling-healthcheck</feature>
    <feature version="${project.version}">httpcomponents-client</feature>
    <feature version="${project.version}">jackrabbit-vault</feature>
  </feature>
  <feature name="sling-event" version="${project.version}">
    <config external="true" name="org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_event">classpath:org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_event.config</config>
    <config external="true" name="org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_event">classpath:org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_event.config</config>
    <bundle>mvn:org.apache.sling/org.apache.sling.event/4.2.12</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.event.dea/1.1.4</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">sling-discovery</feature>
    <bundle dependency="true">mvn:org.apache.felix/org.apache.felix.inventory/1.0.6</bundle>
  </feature>
  <feature name="sling-featureflags" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.featureflags/1.2.2</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
  </feature>
  <feature name="sling-fsresource" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.fsresource/2.1.16</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">jackrabbit-vault</feature>
    <bundle dependency="true">mvn:javax.jcr/jcr/2.0</bundle>
    <bundle dependency="true">mvn:com.google.guava/guava/15.0</bundle>
    <bundle dependency="true">mvn:org.apache.jackrabbit/oak-jackrabbit-api/1.36</bundle>
    <bundle dependency="true">mvn:org.apache.jackrabbit/jackrabbit-jcr-commons/2.20.2</bundle>
  </feature>
  <feature name="sling-healthcheck" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.hc.api/1.0.4</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.hc.support/1.0.6</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">felix-healthcheck</feature>
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">sling-jcr</feature>
    <feature version="${project.version}">sling-scripting</feature>
  </feature>
  <feature name="sling-i18n" version="${project.version}">
    <config external="true" name="org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_i18n">classpath:org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_i18n.config</config>
    <bundle>mvn:org.apache.sling/org.apache.sling.i18n/2.5.14</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
  </feature>
  <feature name="sling-jmx-provider" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.jmx.provider/1.0.2</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
  </feature>
  <feature name="sling-models" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.models.api/1.3.8</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.models.impl/1.4.16</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">sling-adapter</feature>
    <feature version="${project.version}">sling-scripting</feature>
    <bundle dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.annotation-api-1.3/1.3_3</bundle>
  </feature>
  <feature name="sling-models-jacksonexporter" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.models.jacksonexporter/1.0.8</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling-models</feature>
    <bundle dependency="true">mvn:com.fasterxml.jackson.core/jackson-annotations/2.12.0</bundle>
    <bundle dependency="true">mvn:com.fasterxml.jackson.core/jackson-core/2.12.0</bundle>
    <bundle dependency="true">mvn:com.fasterxml.jackson.core/jackson-databind/2.12.0</bundle>
  </feature>
  <feature name="sling-pipes" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.pipes/4.0.0</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">jackrabbit</feature>
    <feature version="${project.version}">jackrabbit-vault</feature>
    <feature version="${project.version}">sling-event</feature>
    <feature version="${project.version}">sling-models</feature>
    <feature version="${project.version}">sling-query</feature>
    <bundle dependency="true">mvn:org.apache.geronimo.bundles/commons-httpclient/3.1_2</bundle>
  </feature>
  <feature name="sling-query" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.query/4.0.2</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <bundle dependency="true">mvn:javax.jcr/jcr/2.0</bundle>
  </feature>
  <feature name="sling-resource-inventory" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.resource.inventory/1.0.8</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <bundle dependency="true">mvn:org.apache.felix/org.apache.felix.inventory/1.0.6</bundle>
  </feature>
  <feature name="sling-resource-presence" version="${project.version}">
    <config external="true" name="org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_resource_presence">classpath:org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_resource_presence.config</config>
    <bundle>mvn:org.apache.sling/org.apache.sling.resource.presence/0.0.2</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
  </feature>
  <feature name="sling-resourcemerger" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.resourcemerger/1.3.10</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
  </feature>
  <feature name="sling-rewriter" version="${project.version}">
    <config external="true" name="org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_rewriter">classpath:org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_rewriter.config</config>
    <bundle>mvn:org.apache.sling/org.apache.sling.rewriter/1.2.2</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">sling-commons-html</feature>
  </feature>
  <feature name="sling-security" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.security/1.1.20</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
  </feature>
  <feature name="sling-urlrewriter" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.urlrewriter/0.0.2</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.urlrewritefilter/4.0.4_1</bundle>
  </feature>
  <feature name="sling-validation" version="${project.version}">
    <config external="true" name="org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_validation">classpath:org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_validation.config</config>
    <config external="true" name="org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_validation">classpath:org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_validation.config</config>
    <bundle>mvn:org.apache.sling/org.apache.sling.validation.api/1.0.0</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.validation.core/1.0.4</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">sling-i18n</feature>
    <feature version="${project.version}">sling-servlets</feature>
  </feature>
  <feature name="sling-xss" version="${project.version}">
    <config external="true" name="org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_xss">classpath:org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_xss.config</config>
    <config external="true" name="org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_xss">classpath:org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_xss.config</config>
    <bundle>mvn:org.apache.sling/org.apache.sling.xss/2.2.8</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">httpcomponents-client</feature>
  </feature>
  <!-- Apache Sling Installer -->
  <feature name="sling-installer" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.installer.console/1.1.0</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.installer.core/3.11.4</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <bundle dependency="true">mvn:org.apache.felix/org.apache.felix.cm.json/1.0.2</bundle>
  </feature>
  <feature name="sling-installer-factory-configuration" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.installer.factory.configuration/1.3.2</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling-installer</feature>
  </feature>
  <feature name="sling-installer-factory-packages" version="${project.version}">
    <config external="true" name="org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_installer_factory_packages">classpath:org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_installer_factory_packages.config</config>
    <config external="true" name="org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_installer_factory_packages">classpath:org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_installer_factory_packages.config</config>
    <bundle>mvn:org.apache.sling/org.apache.sling.installer.factory.packages/1.0.4</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling-installer</feature>
    <feature version="${project.version}">sling-jcr</feature>
    <feature version="${project.version}">jackrabbit-vault</feature>
  </feature>
  <feature name="sling-installer-healthcheck" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.installer.hc/2.0.2</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling-installer</feature>
    <feature version="${project.version}">sling-healthcheck</feature>
  </feature>
  <feature name="sling-installer-provider-file" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.installer.provider.file/1.3.0</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling-installer</feature>
  </feature>
  <feature name="sling-installer-provider-jcr" version="${project.version}">
    <config external="true" name="org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_installer_provider_jcr">classpath:org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_installer_provider_jcr.config</config>
    <config external="true" name="org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_installer_provider_jcr">classpath:org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_installer_provider_jcr.config</config>
    <bundle>mvn:org.apache.sling/org.apache.sling.installer.provider.jcr/3.3.0</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling-installer</feature>
    <feature version="${project.version}">sling-jcr</feature>
  </feature>
  <!-- Apache Sling JCR -->
  <feature name="sling-jcr" version="${project.version}">
    <config external="true" name="org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment~sling_jcr">classpath:org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment~sling_jcr.config</config>
    <config external="true" name="org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_jcr_contentloader">classpath:org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_jcr_contentloader.config</config>
    <config external="true" name="org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_jcr_resource">classpath:org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_jcr_resource.config</config>
    <config external="true" name="org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_jcr_contentloader">classpath:org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_jcr_contentloader.config</config>
    <bundle>mvn:org.apache.sling/org.apache.sling.jcr.api/2.4.0</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.jcr.base/3.1.6</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.jcr.contentloader/2.4.0</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.jcr.davex/1.3.10</bundle>
    <!-- (not using org.apache.sling.jcr.jcr-wrapper) -->
    <bundle>mvn:org.apache.sling/org.apache.sling.jcr.resource/3.0.22</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.jcr.webconsole/1.0.2</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.jcr.webdav/2.3.8</bundle>
    <!-- dependencies -->
    <feature>webconsole</feature>
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">jackrabbit</feature>
    <feature version="${project.version}">jackrabbit-oak</feature>
    <feature version="${project.version}">tika</feature>
  </feature>
  <feature name="sling-jcr-compiler" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.jcr.compiler/2.1.0</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">sling-jcr</feature>
    <feature version="${project.version}">sling-commons-compiler</feature>
  </feature>
  <feature name="sling-jcr-jackrabbit-security" version="${project.version}">
    <config external="true" name="org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_jcr_jackrabbit_usermanager">classpath:org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_jcr_jackrabbit_usermanager.config</config>
    <config external="true" name="org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_jcr_jackrabbit_usermanager">classpath:org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_jcr_jackrabbit_usermanager.config</config>
    <bundle>mvn:org.apache.sling/org.apache.sling.jcr.jackrabbit.accessmanager/3.0.8</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.jcr.jackrabbit.usermanager/2.2.12</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling-jcr</feature>
    <feature version="${project.version}">sling-servlets</feature>
  </feature>
  <feature name="sling-jcr-repoinit" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.jcr.repoinit/1.1.26</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">sling-jcr</feature>
    <feature version="${project.version}">sling-jcr-jackrabbit-security</feature>
    <bundle dependency="true">mvn:org.apache.sling/org.apache.sling.repoinit.parser/1.6.2</bundle>
    <bundle dependency="true">mvn:org.apache.sling/org.apache.sling.provisioning.model/1.8.6</bundle>
  </feature>
  <!-- Apache Sling Quickstart -->
  <feature name="sling-quickstart-oak" version="${project.version}"><!-- hidden="true" -->
    <!-- Sling with Oak Repository and Felix Web Console -->
    <!-- http://jackrabbit.apache.org/oak/docs/osgi_config.html -->
    <config external="true" name="org.apache.felix.jaas.Configuration.factory~GuestLoginModule">classpath:org.apache.felix.jaas.Configuration.factory~GuestLoginModule.config</config>
    <config external="true" name="org.apache.felix.jaas.Configuration.factory~LoginModuleImpl">classpath:org.apache.felix.jaas.Configuration.factory~LoginModuleImpl.config</config>
    <config external="true" name="org.apache.felix.jaas.Configuration.factory~TokenLoginModule">classpath:org.apache.felix.jaas.Configuration.factory~TokenLoginModule.config</config>
    <config external="true" name="org.apache.felix.jaas.ConfigurationSpi">classpath:org.apache.felix.jaas.ConfigurationSpi.config</config>
    <config external="true" name="org.apache.jackrabbit.oak.security.authentication.AuthenticationConfigurationImpl">classpath:org.apache.jackrabbit.oak.security.authentication.AuthenticationConfigurationImpl.config</config>
    <config external="true" name="org.apache.jackrabbit.oak.security.authorization.AuthorizationConfigurationImpl">classpath:org.apache.jackrabbit.oak.security.authorization.AuthorizationConfigurationImpl.config</config>
    <config external="true" name="org.apache.jackrabbit.oak.security.internal.SecurityProviderRegistration">classpath:org.apache.jackrabbit.oak.security.internal.SecurityProviderRegistration.config</config>
    <config external="true" name="org.apache.jackrabbit.oak.security.user.UserConfigurationImpl">classpath:org.apache.jackrabbit.oak.security.user.UserConfigurationImpl.config</config>
    <config external="true" name="org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName">classpath:org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName.config</config>
    <config external="true" name="org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.FilterProviderImpl">classpath:org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.FilterProviderImpl.config</config>
    <config external="true" name="org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedAuthorizationConfiguration">classpath:org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedAuthorizationConfiguration.config</config>
    <config external="true" name="org.apache.jackrabbit.oak.spi.security.user.action.DefaultAuthorizableActionProvider">classpath:org.apache.jackrabbit.oak.spi.security.user.action.DefaultAuthorizableActionProvider.config</config>
    <config external="true" name="org.apache.sling.jcr.repoinit.RepositoryInitializer~sling">classpath:org.apache.sling.jcr.repoinit.RepositoryInitializer~sling.config</config>
    <config external="true" name="org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_mapping">classpath:org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_mapping.config</config>
    <config external="true" name="org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_readall">classpath:org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_readall.config</config>
    <!-- dependencies -->
    <feature>webconsole</feature>
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">sling-servlets</feature>
    <!-- ... -->
    <feature version="${project.version}">sling-jcr</feature>
    <feature version="${project.version}">sling-jcr-repoinit</feature>
    <feature version="${project.version}">sling-adapter</feature>
    <feature version="${project.version}">sling-bundleresource</feature>
    <feature version="${project.version}">sling-discovery-standalone</feature>
    <feature version="${project.version}">sling-healthcheck</feature>
    <bundle dependency="true">mvn:org.apache.felix/org.apache.felix.prefs/1.1.0</bundle>
    <bundle>mvn:org.apache.felix/org.apache.felix.webconsole.plugins.memoryusage/1.0.10</bundle>
    <bundle>mvn:org.apache.felix/org.apache.felix.webconsole.plugins.packageadmin/1.0.4</bundle>
  </feature>
  <feature name="sling-quickstart-oak-tar" version="${project.version}">
    <config external="true" name="org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProviderService">classpath:org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProviderService.config</config>
    <config external="true" name="org.apache.jackrabbit.oak.segment.SegmentNodeStoreService">classpath:org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.config</config>
    <feature version="${project.version}">sling-quickstart-oak</feature>
    <bundle>mvn:org.apache.jackrabbit/oak-lucene/1.36</bundle>
    <bundle>mvn:org.apache.jackrabbit/oak-segment-tar/1.36</bundle>
    <!-- OAK-7263 oak-lucene should not depend on oak-store-document -->
    <bundle>mvn:org.apache.jackrabbit/oak-store-document/1.36</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.jcr.oak.server/1.2.10</bundle>
    <!-- capabilities -->
    <!-- OAK-7380 Add missing OSGi capabilities -->
    <capability>
      osgi.service;objectClass=org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore,
      osgi.service;objectClass=org.apache.jackrabbit.oak.segment.SegmentNodeStoreStatsMBean,
      osgi.service;objectClass=org.apache.jackrabbit.oak.segment.SegmentStoreProvider,
      osgi.service;objectClass=org.apache.jackrabbit.oak.spi.blob.BlobStore
    </capability>
  </feature>
  <feature name="sling-quickstart-oak-mongo" version="${project.version}">
    <config external="true" name="org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProviderService">classpath:org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProviderService.config</config>
    <config external="true" name="org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService">classpath:org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config</config>
    <feature version="${project.version}">sling-quickstart-oak</feature>
    <bundle>mvn:org.apache.jackrabbit/oak-lucene/1.36</bundle>
    <bundle>mvn:org.apache.jackrabbit/oak-store-document/1.36</bundle>
    <bundle>mvn:com.h2database/h2-mvstore/1.4.200</bundle>
    <bundle>mvn:org.mongodb/mongo-java-driver/3.12.7</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.jcr.oak.server/1.2.10</bundle>
    <!-- capabilities -->
    <!-- OAK-7380 Add missing OSGi capabilities -->
    <capability>
      osgi.service;objectClass=org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore,
      osgi.service;objectClass=org.apache.jackrabbit.oak.spi.blob.BlobStore
    </capability>
  </feature>
  <!-- Apache Sling Scripting -->
  <feature name="sling-scripting" version="${project.version}">
    <config external="true" name="org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_scripting">classpath:org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_scripting.config</config>
    <config external="true" name="org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_scripting">classpath:org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_scripting.config</config>
    <bundle>mvn:org.apache.sling/org.apache.sling.scripting.api/2.2.0</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.scripting.core/2.2.0</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">sling-commons-compiler</feature>
    <feature>webconsole</feature>
  </feature>
  <feature name="sling-scripting-freemarker" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.scripting.freemarker/1.0.4</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">sling-adapter</feature>
    <feature version="${project.version}">sling-scripting</feature>
    <bundle dependency="true">mvn:org.freemarker/freemarker/2.3.30</bundle>
  </feature>
  <feature name="sling-scripting-groovy" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.scripting.groovy/1.2.0</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">sling-scripting</feature>
    <feature version="${project.version}">spifly</feature>
    <bundle dependency="true">mvn:org.codehaus.groovy/groovy/3.0.1</bundle>
    <bundle dependency="true">mvn:org.codehaus.groovy/groovy-json/3.0.1</bundle>
    <bundle dependency="true">mvn:org.codehaus.groovy/groovy-templates/3.0.1</bundle>
  </feature>
  <feature name="sling-scripting-java" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.scripting.java/2.1.2</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">sling-scripting</feature>
    <feature version="${project.version}">sling-commons-compiler</feature>
  </feature>
  <feature name="sling-scripting-javascript" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.scripting.javascript/3.1.4</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling-scripting</feature>
    <bundle dependency="true">mvn:javax.jcr/jcr/2.0</bundle>
    <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.rhino/1.7.13_1</bundle>
  </feature>
  <feature name="sling-scripting-jsp" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.scripting.jsp/2.4.2</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.scripting.jsp.taglib/2.4.0</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.scripting.el-api/1.0.4</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.scripting.jsp-api/1.0.2</bundle>
    <bundle>mvn:org.apache.geronimo.bundles/jstl/1.2_1</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling-scripting</feature>
    <feature version="${project.version}">sling-commons-compiler</feature>
    <feature version="${project.version}">sling-caconfig</feature>
  </feature>
  <feature name="sling-scripting-htl" version="${project.version}">
    <config external="true" name="org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_scripting_htl">classpath:org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_scripting_htl.config</config>
    <bundle>mvn:org.apache.sling/org.apache.sling.scripting.sightly/1.3.2-1.4.0</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.scripting.sightly.compiler/1.2.6-1.4.0</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.scripting.sightly.compiler.java/1.2.0-1.4.0</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.scripting.sightly.js.provider/1.2.6</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.scripting.sightly.runtime/1.2.2-1.4.0</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">sling-jcr</feature>
    <feature version="${project.version}">sling-scripting</feature>
    <feature version="${project.version}">sling-scripting-javascript</feature>
    <feature version="${project.version}">sling-i18n</feature>
    <feature version="${project.version}">sling-models</feature>
    <feature version="${project.version}">sling-xss</feature>
    <feature version="${project.version}">sling-commons-compiler</feature>
    <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.rhino/1.7.13_1</bundle>
    <bundle dependency="true">mvn:org.antlr/antlr4-runtime/4.9</bundle>
  </feature>
  <feature name="sling-scripting-thymeleaf" version="${project.version}">
    <config external="true" name="org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_scripting_thymeleaf">classpath:org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_scripting_thymeleaf.config</config>
    <bundle>mvn:org.apache.sling/org.apache.sling.scripting.thymeleaf/2.0.2</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">thymeleaf</feature>
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">sling-scripting</feature>
    <feature version="${project.version}">sling-i18n</feature>
  </feature>
  <!-- Apache Sling Servlets -->
  <feature name="sling-servlets" version="${project.version}">
    <config external="true" name="org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment~sling_servlets">classpath:org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment~sling_servlets.config</config>
    <config external="true" name="org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_servlets">classpath:org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_servlets.config</config>
    <bundle>mvn:org.apache.sling/org.apache.sling.servlets.get/2.1.40</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.servlets.post/2.3.36</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.servlets.resolver/2.6.4</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">sling-scripting</feature>
    <feature version="${project.version}">sling-xss</feature>
  </feature>
  <!-- Apache Sling Starter -->
  <feature name="sling-starter-content" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.starter.content/1.0.8</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">sling-auth-form</feature>
    <feature version="${project.version}">sling-scripting-javascript</feature>
    <feature version="${project.version}">composum-nodes</feature>
  </feature>
  <!-- Apache Felix Healthcheck -->
  <feature name="felix-healthcheck" version="${project.version}">
    <bundle>mvn:org.apache.felix/org.apache.felix.healthcheck.api/2.0.4</bundle>
    <bundle>mvn:org.apache.felix/org.apache.felix.healthcheck.core/2.0.8</bundle>
    <bundle>mvn:org.apache.felix/org.apache.felix.healthcheck.generalchecks/2.0.6</bundle>
    <bundle>mvn:org.apache.felix/org.apache.felix.healthcheck.webconsoleplugin/2.0.2</bundle>
    <!-- dependencies -->
    <feature>eventadmin</feature>
    <feature>scr</feature>
    <feature>webconsole</feature>
    <bundle dependency="true">mvn:org.apache.commons/commons-lang3/3.11</bundle>
  </feature>
  <!-- Apache HttpComponents Client -->
  <feature name="httpcomponents-client" version="${project.version}">
    <bundle>mvn:org.apache.httpcomponents/httpclient-osgi/4.5.13</bundle>
    <!-- dependencies -->
    <feature>config</feature>
    <bundle dependency="true">mvn:org.apache.httpcomponents/httpcore-osgi/4.4.14</bundle>
  </feature>
  <!-- Apache Jackrabbit -->
  <feature name="jackrabbit" version="${project.version}">
    <bundle>mvn:org.apache.jackrabbit/oak-jackrabbit-api/1.36</bundle>
    <bundle>mvn:org.apache.jackrabbit/jackrabbit-data/2.20.2</bundle>
    <bundle>mvn:org.apache.jackrabbit/jackrabbit-jcr-commons/2.20.2</bundle>
    <bundle>mvn:org.apache.jackrabbit/jackrabbit-jcr-rmi/2.20.2</bundle>
    <bundle>mvn:org.apache.jackrabbit/jackrabbit-spi/2.20.2</bundle>
    <bundle>mvn:org.apache.jackrabbit/jackrabbit-spi-commons/2.20.2</bundle>
    <bundle>mvn:org.apache.jackrabbit/jackrabbit-webdav/2.20.2</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">httpcomponents-client</feature>
    <bundle dependency="true">mvn:javax.jcr/jcr/2.0</bundle>
    <bundle dependency="true">mvn:javax.servlet/javax.servlet-api/3.1.0</bundle>
    <bundle dependency="true">mvn:commons-codec/commons-codec/1.15</bundle>
    <bundle dependency="true">mvn:commons-collections/commons-collections/3.2.2</bundle>
    <bundle dependency="true">mvn:commons-fileupload/commons-fileupload/1.4</bundle>
    <bundle dependency="true">mvn:commons-io/commons-io/2.8.0</bundle>
    <bundle dependency="true">mvn:commons-lang/commons-lang/2.6</bundle>
    <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-atinject_1.0_spec/1.2</bundle>
    <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-el_2.2_spec/1.1</bundle>
    <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-interceptor_1.1_spec/1.0</bundle>
    <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jcdi_1.0_spec/1.1</bundle>
    <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1</bundle>
  </feature>
  <feature name="jackrabbit-oak" version="${project.version}">
    <bundle>mvn:org.apache.jackrabbit/oak-api/1.36</bundle>
    <bundle>mvn:org.apache.jackrabbit/oak-authorization-principalbased/1.36</bundle>
    <bundle>mvn:org.apache.jackrabbit/oak-blob/1.36</bundle>
    <bundle>mvn:org.apache.jackrabbit/oak-blob-plugins/1.36</bundle>
    <bundle>mvn:org.apache.jackrabbit/oak-commons/1.36</bundle>
    <bundle>mvn:org.apache.jackrabbit/oak-core/1.36</bundle>
    <bundle>mvn:org.apache.jackrabbit/oak-core-spi/1.36</bundle>
    <bundle>mvn:org.apache.jackrabbit/oak-jcr/1.36</bundle>
    <bundle>mvn:org.apache.jackrabbit/oak-query-spi/1.36</bundle>
    <bundle>mvn:org.apache.jackrabbit/oak-security-spi/1.36</bundle>
    <bundle>mvn:org.apache.jackrabbit/oak-store-composite/1.36</bundle>
    <bundle>mvn:org.apache.jackrabbit/oak-store-spi/1.36</bundle>
    <!-- dependencies -->
    <feature>scr</feature>
    <feature version="${project.version}">sling-commons-metrics</feature>
    <feature version="${project.version}">sling-commons-threads</feature>
    <feature version="${project.version}">jackrabbit</feature>
    <feature version="${project.version}">tika</feature>
    <bundle dependency="true">mvn:com.google.guava/guava/15.0</bundle>
    <bundle>mvn:org.apache.felix/org.apache.felix.jaas/1.0.2</bundle>
    <!-- capabilities -->
    <!-- OAK-7380 Add missing OSGi capabilities -->
    <capability>
      osgi.service;objectClass=org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean,
      osgi.service;objectClass=org.apache.jackrabbit.oak.api.jmx.QueryEngineSettingsMBean,
      osgi.service;objectClass=org.apache.jackrabbit.oak.api.jmx.RepositoryManagementMBean,
      osgi.service;objectClass=org.apache.jackrabbit.oak.spi.mount.MountInfoProvider,
      osgi.service;objectClass=org.apache.jackrabbit.oak.spi.security.SecurityProvider,
      osgi.service;objectClass=org.apache.jackrabbit.oak.spi.state.NodeStore,
      osgi.service;objectClass=org.apache.jackrabbit.oak.spi.state.NodeStoreProvider,
      osgi.service;objectClass=org.apache.jackrabbit.oak.stats.StatisticsProvider
    </capability>
  </feature>
  <feature name="jackrabbit-vault" version="${project.version}">
    <bundle>mvn:org.apache.jackrabbit.vault/org.apache.jackrabbit.vault/3.4.6</bundle>
    <!-- dependencies -->
    <feature>scr</feature>
    <feature version="${project.version}">jackrabbit</feature>
  </feature>
  <!-- Apache Tika -->
  <feature name="tika" version="${project.version}">
    <bundle>mvn:org.apache.tika/tika-core/1.25</bundle>
    <bundle>mvn:org.apache.tika/tika-parsers/1.25</bundle>
    <bundle>mvn:org.apache.pdfbox/pdfbox/2.0.21</bundle>
    <bundle>mvn:org.apache.pdfbox/fontbox/2.0.21</bundle>
    <bundle>mvn:org.apache.pdfbox/jempbox/1.8.16</bundle>
  </feature>
  <!-- Apache Sling Applications and Samples -->
  <feature name="sling-cms" version="${project.version}">
    <config external="true" name="org.apache.sling.cms.core.internal.repository.RevisionCleanupScheduler">classpath:cms/org.apache.sling.cms.core.internal.repository.RevisionCleanupScheduler.config</config>
    <config external="true" name="org.apache.sling.cms.core.internal.ResourceEditorAssociation~auth">classpath:cms/org.apache.sling.cms.core.internal.ResourceEditorAssociation~auth.config</config>
    <config external="true" name="org.apache.sling.cms.core.internal.ResourceEditorAssociation-confbucket">classpath:cms/org.apache.sling.cms.core.internal.ResourceEditorAssociation-confbucket.json</config>
    <config external="true" name="org.apache.sling.cms.core.internal.ResourceEditorAssociation-confbuckets">classpath:cms/org.apache.sling.cms.core.internal.ResourceEditorAssociation-confbuckets.json</config>
    <config external="true" name="org.apache.sling.cms.core.internal.ResourceEditorAssociation-confedit">classpath:cms/org.apache.sling.cms.core.internal.ResourceEditorAssociation-confedit.json</config>
    <config external="true" name="org.apache.sling.cms.core.internal.ResourceEditorAssociation~confroot">classpath:cms/org.apache.sling.cms.core.internal.ResourceEditorAssociation~confroot.config</config>
    <config external="true" name="org.apache.sling.cms.core.internal.ResourceEditorAssociation~site">classpath:cms/org.apache.sling.cms.core.internal.ResourceEditorAssociation~site.config</config>
    <config external="true" name="org.apache.sling.cms.core.internal.ResourceEditorAssociation~sitecontent">classpath:cms/org.apache.sling.cms.core.internal.ResourceEditorAssociation~sitecontent.config</config>
    <config external="true" name="org.apache.sling.cms.core.internal.ResourceEditorAssociation~sites">classpath:cms/org.apache.sling.cms.core.internal.ResourceEditorAssociation~sites.config</config>
    <config external="true" name="org.apache.sling.cms.core.internal.ResourceEditorAssociation~static">classpath:cms/org.apache.sling.cms.core.internal.ResourceEditorAssociation~static.config</config>
    <config external="true" name="org.apache.sling.cms.core.internal.ResourceEditorAssociation~taxonomy">classpath:cms/org.apache.sling.cms.core.internal.ResourceEditorAssociation~taxonomy.config</config>
    <config external="true" name="org.apache.sling.cms.core.internal.ResourceEditorAssociation~ugc">classpath:cms/org.apache.sling.cms.core.internal.ResourceEditorAssociation~ugc.config</config>
    <!-- <config external="true" name="org.apache.sling.engine.impl.auth.SlingAuthenticator">classpath:cms/org.apache.sling.engine.impl.auth.SlingAuthenticator.config</config> -->
    <config external="true" name="org.apache.sling.event.jobs.QueueConfiguration~sling_cms">classpath:cms/org.apache.sling.event.jobs.QueueConfiguration~sling_cms.config</config>
    <config external="true" name="org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment~serviceuser-webconsole">classpath:cms/org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment~serviceuser_webconsole.config</config>
    <config external="true" name="org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_cms">classpath:cms/org.apache.sling.jcr.repoinit.RepositoryInitializer~sling_cms.config</config>
    <!-- move to Sling JCR? -->
    <config external="true" name="org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl">classpath:cms/org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl.config</config>
    <config external="true" name="org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_cms">classpath:cms/org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling_cms.config</config>
    <bundle>mvn:org.apache.sling/org.apache.sling.cms.api/0.16.3-SNAPSHOT</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.cms.core/0.16.3-SNAPSHOT</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.cms.transformer/0.16.3-SNAPSHOT</bundle>
    <bundle>mvn:org.apache.sling/org.apache.sling.cms.ui/0.16.3-SNAPSHOT</bundle>
    <!-- dependencies -->
    <feature>webconsole</feature>
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">sling-caconfig</feature>
    <feature version="${project.version}">sling-commons-messaging-mail</feature>
    <feature version="${project.version}">sling-distribution</feature>
    <feature version="${project.version}">sling-event</feature>
    <feature version="${project.version}">sling-i18n</feature>
    <feature version="${project.version}">sling-jcr</feature>
    <feature version="${project.version}">sling-models</feature>
    <feature version="${project.version}">sling-resourcemerger</feature>
    <feature version="${project.version}">sling-rewriter</feature>
    <feature version="${project.version}">sling-scripting-jsp</feature>
    <feature version="${project.version}">sling-servlets</feature>
    <feature version="${project.version}">jackrabbit-oak</feature>
    <bundle dependency="true">mvn:com.google.guava/guava/30.0-jre</bundle>
    <bundle dependency="true">mvn:org.apache.commons/commons-compress/1.20</bundle>
    <bundle dependency="true">mvn:org.apache.commons/commons-math3/3.6.1</bundle>
    <bundle dependency="true">mvn:org.apache.commons/commons-text/1.9</bundle>
    <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.poi/4.1.2_2</bundle>
    <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlbeans/3.1.0_2</bundle>
    <bundle dependency="true">mvn:org.jsoup/jsoup/1.13.1</bundle>
    <!-- ... -->
    <bundle>mvn:org.apache.sling/org.apache.sling.fileoptim/0.9.4</bundle>
  </feature>
  <feature name="sling-cms-login" version="${project.version}">
    <bundle>mvn:org.apache.sling/org.apache.sling.cms.login/0.16.3-SNAPSHOT</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling-auth-form</feature>
  </feature>
  <feature name="sling-cms-reference" version="${project.version}">
    <config external="true" name="org.apache.sling.cms.core.internal.rewriter.ReferenceMappingTransformerFactory">classpath:cms/reference/org.apache.sling.cms.core.internal.rewriter.ReferenceMappingTransformerFactory.config</config>
    <bundle>mvn:org.apache.sling/org.apache.sling.cms.reference/0.16.3-SNAPSHOT</bundle>
    <feature version="${project.version}">sling-cms</feature>
  </feature>
  <feature name="sling-cms-author" version="${project.version}">
    <config external="true" name="org.apache.sling.cms.core.publication.ForwardAgentEndpointSynchronization">classpath:cms/author/org.apache.sling.cms.core.publication.ForwardAgentEndpointSynchronization.config</config>
    <config external="true" name="org.apache.sling.cms.core.publication.PublicationManagerFactoryImpl">classpath:cms/author/org.apache.sling.cms.core.publication.PublicationManagerFactoryImpl.config</config>
    <config external="true" name="org.apache.sling.distribution.serialization.impl.vlt.VaultDistributionPackageBuilderFactory~default">classpath:cms/author/org.apache.sling.distribution.serialization.impl.vlt.VaultDistributionPackageBuilderFactory~default.config</config>
    <!-- dependencies -->
    <feature version="${project.version}">sling-cms</feature>
  </feature>
  <feature name="sling-cms-renderer" version="${project.version}">
    <config external="true" name="org.apache.sling.cms.core.publication.PublicationManagerFactoryImpl">classpath:cms/renderer/org.apache.sling.cms.core.publication.PublicationManagerFactoryImpl.config</config>
    <config external="true" name="org.apache.sling.cms.core.publication.PublicationPropertyProvider">classpath:cms/renderer/org.apache.sling.cms.core.publication.PublicationPropertyProvider.config</config>
    <config external="true" name="org.apache.sling.distribution.packaging.impl.importer.LocalDistributionPackageImporterFactory~default">classpath:cms/renderer/org.apache.sling.distribution.packaging.impl.importer.LocalDistributionPackageImporterFactory~default.config</config>
    <config external="true" name="org.apache.sling.distribution.serialization.impl.vlt.VaultDistributionPackageBuilderFactory~default">classpath:cms/renderer/org.apache.sling.distribution.serialization.impl.vlt.VaultDistributionPackageBuilderFactory~default.config</config>
    <!-- dependencies -->
    <feature version="${project.version}">sling-cms</feature>
  </feature>
  <feature name="sling-cms-standalone" version="${project.version}">
    <config external="true" name="org.apache.sling.cms.core.internal.filters.CMSSecurityConfigInstance">classpath:cms/standalone/org.apache.sling.cms.core.internal.filters.CMSSecurityConfigInstance.config</config>
    <config external="true" name="org.apache.sling.cms.core.publication.PublicationManagerFactoryImpl">classpath:cms/standalone/org.apache.sling.cms.core.publication.PublicationManagerFactoryImpl.config</config>
    <!-- dependencies -->
    <feature version="${project.version}">sling-cms</feature>
  </feature>
  <!-- Composum -->
  <feature name="composum-nodes" version="${project.version}">
    <config external="true" name="org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment~composum_nodes">classpath:org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment~composum_nodes.config</config>
    <bundle>mvn:com.composum.nodes/composum-nodes-commons/2.1.1</bundle>
    <bundle>mvn:com.composum.nodes/composum-nodes-console/2.1.1</bundle>
    <bundle>mvn:com.composum.nodes/composum-nodes-jslibs/2.1.1</bundle>
    <bundle>mvn:com.composum.nodes/composum-nodes-pckgmgr/2.1.1</bundle>
    <bundle>mvn:com.composum.nodes/composum-nodes-usermgr/2.1.1</bundle>
    <!-- dependencies -->
    <feature version="${project.version}">sling</feature>
    <feature version="${project.version}">sling-i18n</feature>
    <feature version="${project.version}">sling-jcr</feature>
    <feature version="${project.version}">sling-scripting-jsp</feature>
    <feature version="${project.version}">sling-servlets</feature>
    <feature version="${project.version}">sling-event</feature>
    <feature version="${project.version}">jackrabbit-vault</feature>
  </feature>
  <!-- Thymeleaf -->
  <feature name="thymeleaf" version="${project.version}">
    <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.thymeleaf/3.0.11.RELEASE_1</bundle>
    <bundle dependency="true">mvn:org.attoparser/attoparser/2.0.5.RELEASE</bundle>
    <bundle dependency="true">mvn:org.unbescape/unbescape/1.1.6.RELEASE</bundle>
    <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ognl/3.2.1_1</bundle>
    <bundle dependency="true">mvn:org.javassist/javassist/3.27.0-GA</bundle>
  </feature>
  <!-- asm (KARAF-6905) -->
  <feature name="asm" version="${project.version}">
    <bundle>mvn:org.ow2.asm/asm/9.0</bundle>
    <bundle>mvn:org.ow2.asm/asm-analysis/9.0</bundle>
    <bundle>mvn:org.ow2.asm/asm-commons/9.0</bundle>
    <bundle>mvn:org.ow2.asm/asm-util/9.0</bundle>
    <bundle>mvn:org.ow2.asm/asm-tree/9.0</bundle>
  </feature>
  <!-- spifly (KARAF-6905) -->
  <feature name="spifly" version="${project.version}">
    <bundle>mvn:org.apache.aries.spifly/org.apache.aries.spifly.dynamic.bundle/1.3.2</bundle>
    <!-- dependencies -->
    <bundle dependency="true">mvn:org.apache.aries/org.apache.aries.util/1.1.3</bundle>
    <feature version="${project.version}">asm</feature>
  </feature>
  <!-- Pax URL Classpath (KARAF-6904) -->
  <feature name="pax-url-classpath" version="${project.version}">
    <bundle>mvn:org.ops4j.pax.url/pax-url-classpath/2.6.3</bundle>
  </feature>
</features>
