<?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>40</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</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.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>4.3.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-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-security</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 -->
            <!--
            <feature>sling-cms</feature>
            <feature>sling-cms-login</feature>
            <feature>sling-cms-reference</feature>
            -->
            <!-- 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>wrap</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>1.8</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.3.0</version>
      <type>kar</type>
    </dependency>
    <dependency>
      <groupId>org.apache.karaf.features</groupId>
      <artifactId>standard</artifactId>
      <version>4.3.0</version>
      <classifier>features</classifier>
      <type>xml</type>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.karaf.features</groupId>
      <artifactId>enterprise</artifactId>
      <version>4.3.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.1.1-SNAPSHOT</version>
      <classifier>features</classifier>
      <type>xml</type>
      <scope>runtime</scope>
    </dependency>
  </dependencies>

</project>
