<?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>47</version>
    <relativePath/>
  </parent>

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

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

  <properties>
    <project.build.outputTimestamp>1970-01-01T00:00:00Z</project.build.outputTimestamp>
  </properties>

  <scm>
    <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-karaf-distribution.git</connection>
    <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 -->

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.karaf.tooling</groupId>
        <artifactId>karaf-maven-plugin</artifactId>
        <version>4.4.0</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 (default) -->
            <feature>wrapper</feature>
            <!-- Apache Karaf (additional for Sling)-->
            <feature>felix-http</feature>
            <feature>scr</feature>
            <feature>webconsole</feature>
            <!-- Apache Sling -->
            <feature>sling</feature>
            <feature>sling-configs</feature>
            <!-- Apache Sling Auth -->
            <feature>sling-auth-form</feature>
            <!-- Apache Sling Commons -->
            <feature>sling-commons-compiler</feature>
            <feature>sling-commons-clam</feature>
            <feature>sling-commons-classloader</feature>
            <feature>sling-commons-crypto</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-osgi</feature>
            <feature>sling-commons-scheduler</feature>
            <feature>sling-commons-threads</feature>
            <!-- Apache Sling Extensions -->
            <feature>sling-adapter</feature>
            <feature>sling-bundleresource</feature>
            <feature>sling-caconfig</feature>
            <feature>sling-clam</feature>
            <feature>sling-discovery</feature>
            <feature>sling-discovery-oak</feature>
            <feature>sling-discovery-standalone</feature>
            <feature>sling-distribution</feature>
            <feature>sling-event</feature>
            <feature>sling-extensions-webconsolesecurityprovider</feature>
            <feature>sling-featureflags</feature>
            <feature>sling-fsresource</feature>
            <feature>sling-healthcheck</feature>
            <feature>sling-i18n</feature>
            <feature>sling-jmx-provider</feature>
            <feature>sling-models</feature>
            <feature>sling-models-jacksonexporter</feature>
            <feature>sling-pipes</feature>
            <feature>sling-query</feature>
            <feature>sling-resource-inventory</feature>
            <feature>sling-resource-presence</feature>
            <feature>sling-resourcemerger</feature>
            <feature>sling-rewriter</feature>
            <feature>sling-security</feature>
            <feature>sling-urlrewriter</feature>
            <feature>sling-validation</feature>
            <feature>sling-xss</feature>
            <!-- Apache Sling Installer -->
            <feature>sling-installer</feature>
            <feature>sling-installer-factory-configuration</feature>
            <feature>sling-installer-factory-packages</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-accessmanager</feature>
            <feature>sling-jcr-jackrabbit-usermanager</feature>
            <feature>sling-jcr-repoinit</feature>
            <!-- Apache Sling Quickstart -->
            <feature>sling-quickstart-oak</feature>
            <feature>sling-quickstart-oak-mongo</feature>
            <feature>sling-quickstart-oak-tar</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-htl</feature>
            <feature>sling-scripting-thymeleaf</feature>
            <!-- Apache Sling Servlets -->
            <feature>sling-servlets</feature>
            <!-- Apache Sling Starter -->
            <feature>sling-starter-content</feature>
            <!-- Apache Felix Healthcheck -->
            <feature>felix-healthcheck</feature>
            <!-- Apache HttpComponents Client -->
            <feature>httpcomponents-client</feature>
            <!-- Apache Jackrabbit -->
            <feature>jackrabbit</feature>
            <feature>jackrabbit-oak</feature>
            <feature>jackrabbit-vault</feature>
            <!-- Apache Tika -->
            <feature>tika</feature>
            <!-- Apache Sling Applications and Samples -->
            <!-- Composum -->
            <feature>composum-nodes</feature>
            <!-- Thymeleaf -->
            <feature>thymeleaf</feature>
            <!-- asm -->
            <feature>asm</feature>
            <!-- spifly -->
            <feature>spifly</feature>
          </installedFeatures>
          <startupFeatures>
            <feature>eventadmin</feature>
          </startupFeatures>
          <bootFeatures>
            <feature>pax-url-wrap</feature>
            <feature>pax-url-classpath</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>feature</feature>
            <feature>instance</feature>
            <feature>kar</feature>
            <feature>log</feature>
            <feature>package</feature>
            <feature>service</feature>
            <feature>system</feature>
          </bootFeatures>
          <libraries>
          </libraries>
          <javase>11</javase>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <phase>prepare-package</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <!-- see maven-remote-resources-plugin in Sling parent -->
                <move file="${project.build.directory}/assembly/META-INF/LICENSE" tofile="${project.build.directory}/assembly/LICENSE"/>
                <move file="${project.build.directory}/assembly/META-INF/NOTICE" tofile="${project.build.directory}/assembly/NOTICE"/>
                <delete dir="${project.build.directory}/assembly/META-INF"/>
              </target>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>org.apache.karaf.features</groupId>
      <artifactId>framework</artifactId>
      <version>4.4.0</version>
      <type>kar</type>
    </dependency>
    <dependency>
      <groupId>org.apache.karaf.features</groupId>
      <artifactId>standard</artifactId>
      <version>4.4.0</version>
      <classifier>features</classifier>
      <type>xml</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.karaf.features</groupId>
      <artifactId>enterprise</artifactId>
      <version>4.4.0</version>
      <classifier>features</classifier>
      <type>xml</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.karaf.features</groupId>
      <artifactId>specs</artifactId>
      <version>4.4.0</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>0.2.0-SNAPSHOT</version>
      <classifier>features</classifier>
      <type>xml</type>
      <scope>runtime</scope>
    </dependency>
  </dependencies>

</project>
