<?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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.sling</groupId>
    <artifactId>sling</artifactId>
    <version>32</version>
    <relativePath/>
  </parent>

  <artifactId>org.apache.sling.karaf-distribution</artifactId>
  <version>0.1.1-SNAPSHOT</version>
  <packaging>karaf-assembly</packaging>

  <name>Apache Sling - Karaf Distribution</name>
  <description>Apache Sling Karaf Distribution</description>

  <scm>
    <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-karaf-distribution.git</conncetion>
    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-karaf-distribution.git</developerConnection>
    <url>https://gitbox.apache.org/repos/asf?p=sling-org-apache-sling-karaf-distribution.git</url>
  </scm>

  <!-- https://github.com/apache/karaf/blob/master/assemblies/apache-karaf/pom.xml -->

  <properties>
    <org.apache.karaf.version>4.1.2</org.apache.karaf.version>
    <jna.version>4.3.0</jna.version>
    <servicemix.specs.version>2.8.0</servicemix.specs.version>
    <xerces.version>2.11.0_1</xerces.version>
    <xalan.bundle.version>2.7.2_3</xalan.bundle.version>
    <xalan-serializer.bundle.version>2.7.2_1</xalan-serializer.bundle.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.apache.karaf.features</groupId>
      <artifactId>framework</artifactId>
      <version>${org.apache.karaf.version}</version>
      <type>kar</type>
    </dependency>
    <dependency>
      <groupId>org.apache.karaf.features</groupId>
      <artifactId>standard</artifactId>
      <version>${org.apache.karaf.version}</version>
      <classifier>features</classifier>
      <type>xml</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-features</artifactId>
      <version>${project.version}</version>
      <classifier>features</classifier>
      <type>xml</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.felix.jaas.Configuration.factory-GuestLoginModule</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.felix.jaas.Configuration.factory-LoginModuleImpl</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.felix.jaas.Configuration.factory-TokenLoginModule</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.felix.jaas.ConfigurationSpi</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProviderService</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.jackrabbit.oak.segment.SegmentNodeStoreService</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.jackrabbit.oak.security.authentication.AuthenticationConfigurationImpl</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.jackrabbit.oak.security.user.UserConfigurationImpl</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.jackrabbit.oak.spi.security.user.action.DefaultAuthorizableActionProvider</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment-composum</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment-sling</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_discovery</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_event</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_i18n</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_installer_jcr</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_scripting</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_validation</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.jcr.repoinit.RepositoryInitializer-sling_xss</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.nosql.couchbase.client.CouchbaseClient.factory.config-default</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.nosql.couchbase.resourceprovider.CouchbaseNoSqlResourceProviderFactory.factory.config-default</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.nosql.mongodb.resourceprovider.MongoDBNoSqlResourceProviderFactory.factory.config-default</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-discovery</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-event</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-i18n</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-installer_jcr</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-jcr_resource</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-resourceresolver</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-scripting_sightly</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-scripting_thymeleaf</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-scripting</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-servlets</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-validation</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.karaf-configs</artifactId>
      <version>${project.version}</version>
      <classifier>org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-xss</classifier>
      <type>config</type>
      <scope>runtime</scope>
    </dependency>
  </dependencies>

  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>ianal-maven-plugin</artifactId>
        <configuration>
          <skip>true</skip>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.karaf.tooling</groupId>
        <artifactId>karaf-maven-plugin</artifactId>
        <version>${org.apache.karaf.version}</version>
        <extensions>true</extensions>
        <executions>
          <execution>
            <id>process-resources</id>
            <phase>process-resources</phase>
            <goals>
              <goal>assembly</goal>
            </goals>
          </execution>
          <execution>
            <id>package</id>
            <goals>
              <goal>archive</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <installedFeatures>
            <!-- Apache Karaf -->
            <feature>wrapper</feature>
            <feature>wrap</feature>
            <feature>aries-blueprint</feature>
            <feature>shell-compat</feature>
            <feature>kar</feature>
            <!-- Apache Sling -->
            <feature>sling</feature>
            <!-- Apache Sling Auth -->
            <feature>sling-auth-form</feature>
            <feature>sling-auth-openid</feature>
            <feature>sling-auth-selector</feature>
            <!-- Apache Sling Commons -->
            <feature>sling-commons-compiler</feature>
            <feature>sling-commons-classloader</feature>
            <feature>sling-commons-fsclassloader</feature>
            <feature>sling-commons-html</feature>
            <feature>sling-commons-messaging</feature>
            <feature>sling-commons-messaging-mail</feature>
            <feature>sling-commons-metrics</feature>
            <feature>sling-commons-scheduler</feature>
            <feature>sling-commons-threads</feature>
            <!-- Apache Sling Extensions -->
            <feature>sling-extension-adapter</feature>
            <feature>sling-extension-bundleresource</feature>
            <feature>sling-extension-discovery</feature>
            <feature>sling-extension-discovery-impl</feature>
            <feature>sling-extension-discovery-oak</feature>
            <feature>sling-extension-discovery-standalone</feature>
            <feature>sling-extension-distribution</feature>
            <feature>sling-extension-event</feature>
            <feature>sling-extension-explorer</feature>
            <feature>sling-extension-featureflags</feature>
            <feature>sling-extension-fsresource</feature>
            <feature>sling-extension-healthcheck</feature>
            <feature>sling-extension-i18n</feature>
            <feature>sling-extension-jmx-provider</feature>
            <feature>sling-extension-models</feature>
            <feature>sling-extension-models-jacksonexporter</feature>
            <feature>sling-extension-pipes</feature>
            <feature>sling-extension-query</feature>
            <feature>sling-extension-resource-inventory</feature>
            <feature>sling-extension-resource-presence</feature>
            <feature>sling-extension-resourcemerger</feature>
            <feature>sling-extension-rewriter</feature>
            <feature>sling-extension-security</feature>
            <feature>sling-extension-threaddump</feature>
            <feature>sling-extension-urlrewriter</feature>
            <feature>sling-extension-validation</feature>
            <feature>sling-extension-xss</feature>
            <!-- Apache Sling Installer -->
            <feature>sling-installer</feature>
            <feature>sling-installer-healthcheck</feature>
            <feature>sling-installer-provider-file</feature>
            <feature>sling-installer-provider-jcr</feature>
            <!-- Apache Sling JCR -->
            <feature>sling-jcr</feature>
            <feature>sling-jcr-compiler</feature>
            <feature>sling-jcr-jackrabbit-security</feature>
            <feature>sling-jcr-repoinit</feature>
            <!-- Apache Sling Launchpad -->
            <feature>sling-launchpad-content</feature>
            <feature>sling-launchpad-nosql-couchbase</feature>
            <feature>sling-launchpad-nosql-mongodb</feature>
            <feature>sling-launchpad-oak</feature>
            <feature>sling-launchpad-oak-mongo</feature>
            <feature>sling-launchpad-oak-tar</feature>
            <!-- Apache Sling NoSQL -->
            <feature>sling-nosql-couchbase</feature>
            <feature>sling-nosql-generic</feature>
            <feature>sling-nosql-mongodb</feature>
            <!-- Apache Sling Scripting -->
            <feature>sling-scripting</feature>
            <feature>sling-scripting-freemarker</feature>
            <feature>sling-scripting-groovy</feature>
            <feature>sling-scripting-java</feature>
            <feature>sling-scripting-javascript</feature>
            <feature>sling-scripting-jsp</feature>
            <feature>sling-scripting-sightly</feature>
            <feature>sling-scripting-thymeleaf</feature>
            <!-- Apache Sling Servlets -->
            <feature>sling-servlets</feature>
            <!-- Apache Jackrabbit -->
            <feature>jackrabbit-sling</feature>
            <feature>jackrabbit-oak-sling</feature>
            <!-- Apache Tika -->
            <feature>tika-sling</feature>
            <!-- Apache Sling Samples -->
            <feature>sling-samples-fling</feature>
            <!-- Composum -->
            <feature>composum-sling</feature>
          </installedFeatures>
          <startupFeatures>
            <!-- <feature>eventadmin</feature> -->
          </startupFeatures>
          <bootFeatures>
            <feature>eventadmin</feature>
            <feature>shell</feature>
            <feature>feature</feature>
            <feature>jaas</feature>
            <feature>ssh</feature>
            <feature>management</feature>
            <feature>bundle</feature>
            <feature>config</feature>
            <feature>deployer</feature>
            <feature>diagnostic</feature>
            <feature>instance</feature>
            <feature>log</feature>
            <feature>package</feature>
            <feature>service</feature>
            <feature>system</feature>
            <!-- TODO -->
            <feature>scr</feature>
            <feature>http</feature>
            <feature>http-whiteboard</feature>
            <feature>webconsole</feature>
          </bootFeatures>
          <libraries>
            <library>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xerces/${xerces.version};type:=endorsed;export:=true;delegate:=true</library>
            <library>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxp-api-1.4/${servicemix.specs.version};type:=endorsed;export:=true</library>
            <library>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxb-api-2.2/${servicemix.specs.version};type:=endorsed;export:=true</library>
            <library>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxws-api-2.2/${servicemix.specs.version};type:=endorsed;export:=true</library>
            <library>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.saaj-api-1.3/${servicemix.specs.version};type:=endorsed;export:=true</library>
            <library>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.1/${servicemix.specs.version};type:=endorsed;export:=true</library>
            <library>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.2/${servicemix.specs.version};type:=endorsed;export:=true</library>
            <library>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xalan/${xalan.bundle.version};type:=endorsed;export:=true</library>
            <library>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xalan-serializer/${xalan-serializer.bundle.version};type:=endorsed;export:=true</library>
            <library>mvn:javax.annotation/javax.annotation-api/1.2;type:=endorsed;export:=true</library>

            <library>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.activator/${servicemix.specs.version};type:=default;export:=true</library>
            <library>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.locator/${servicemix.specs.version};type:=default;export:=true</library>

            <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>
          </libraries>
          <javase>1.8</javase>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>
