<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
    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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.apache.sling</groupId>
        <artifactId>sling</artifactId>
        <version>39</version>
        <relativePath/>
    </parent>

    <artifactId>org.apache.sling.starter</artifactId>
    <version>12-SNAPSHOT</version>

    <name>Apache Sling Starter Application</name>
    <description>
        The Sling Starter demo application.
    </description>

    <scm>
        <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-starter.git</connection>
        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-starter.git</developerConnection>
        <url>https://gitbox.apache.org/repos/asf?p=sling-org-apache-sling-starter.git</url>
        <tag>HEAD</tag>
    </scm>

    <properties>
        <sling.java.version>8</sling.java.version>
        <starter.min.bundles.count>126</starter.min.bundles.count>

        <!-- versions to be replaced in the feature files -->
        <asm.version>9.2</asm.version>
        <jackrabbit.version>2.21.8</jackrabbit.version>
        <oak.version>1.40.0</oak.version>
        <slf4j.version>1.7.30</slf4j.version>
        <composum.nodes.version>2.6.1</composum.nodes.version>
        <jackson.version>2.13.0</jackson.version>
        <groovy.version>3.0.9</groovy.version>
        <!-- skip index generation for all builds except for CI and release -->
        <bnd.index.generation.skip>true</bnd.index.generation.skip>
        <docker.skip>true</docker.skip>
        <mongo.container.image>mongo:4.4.6</mongo.container.image>
    </properties>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <target if="${docker.skip}">
                                <echo>WARNING: docker.skip is ${docker.skip}, Docker-based tests will not be executed.</echo>
                            </target>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>ianal-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>verify-legal-files</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-clean-plugin</artifactId>
                <configuration>
                    <filesets>
                        <fileset>
                            <directory>${basedir}</directory>
                            <includes>
                                <include>sling/**</include>
                                <include>coverage.ec</include>
                                <include>launcher/**</include>
                            </includes>
                        </fileset>
                    </filesets>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.sling</groupId>
                <artifactId>slingfeature-maven-plugin</artifactId>
                <version>1.5.16</version>
                <extensions>true</extensions>
                <configuration>
                    <replacePropertyVariables>asm.version,jackrabbit.version,groovy.version,oak.version,slf4j.version,composum.nodes.version,jackson.version</replacePropertyVariables>
                    <aggregates>
                        <aggregate>
                            <classifier>oak_tar</classifier>
                            <filesInclude>*.json</filesInclude>
                            <filesInclude>oak/*.json</filesInclude>
                            <filesInclude>oak/persistence/oak_persistence_sns.json</filesInclude>
                            <filesInclude>app/*.json</filesInclude>
                            <title>Sling With Oak Segment NS Persistence</title>
                        </aggregate>
                        <aggregate>
                            <classifier>oak_mongo</classifier>
                            <filesInclude>*.json</filesInclude>
                            <filesInclude>oak/*.json</filesInclude>
                            <filesInclude>oak/persistence/oak_persistence_mongods.json</filesInclude>
                            <filesInclude>app/*.json</filesInclude>
                            <title>Sling With Oak Document NS Mongo Persistence</title>
                        </aggregate>
                        <aggregate>
                            <classifier>nosample_base</classifier>
                            <filesInclude>*.json</filesInclude>
                            <filesInclude>oak/*.json</filesInclude>
                            <title>Sling With No Samples and No Persistence</title>
                        </aggregate>
                    </aggregates>
                    <scans>
                        <scan>
                            <includeClassifier>oak_tar</includeClassifier>
                            <includeClassifier>oak_mongo</includeClassifier>
                            <includeClassifier>nosample_base</includeClassifier>
                        </scan>
                    </scans>
                    <archives>
                        <archive>
                            <classifier>oak_tar_far</classifier>
                            <includeClassifier>oak_tar</includeClassifier>
                        </archive>
                        <archive>
                            <classifier>oak_mongo_far</classifier>
                            <includeClassifier>oak_mongo</includeClassifier>
                        </archive>
                    </archives>                 
                </configuration>
                <executions>
                    <execution>
                        <id>aggregate-features</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>aggregate-features</goal>
                            <goal>analyse-features</goal>
                            <goal>attach-features</goal>
                            <goal>attach-featurearchives</goal>
                        </goals>
                    </execution>
               </executions>
            </plugin>
            <plugin>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>prepare-feature-launcher</id>
                        <goals>
                            <goal>get</goal>
                            <goal>copy</goal>
                        </goals>
                        <phase>package</phase>
                        <configuration>
                            <artifact>org.apache.sling:org.apache.sling.feature.launcher:1.1.6</artifact>
                            <stripVersion>true</stripVersion>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!-- generate bnd OSGi index (https://github.com/bndtools/bnd/tree/master/maven/bnd-indexer-maven-plugin) -->
            <plugin>
                <groupId>biz.aQute.bnd</groupId>
                <artifactId>bnd-indexer-maven-plugin</artifactId>
                <version>5.2.0</version>
                <executions>
                    <execution>
                        <id>index</id>
                        <goals>
                            <goal>index</goal>
                        </goals>
                        <configuration>
                            <scopes>provided</scopes>
                            <skip>${bnd.index.generation.skip}</skip>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!-- reserve network ports for the integration tests -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>reserve-network-port</id>
                        <goals>
                            <goal>reserve-network-port</goal>
                        </goals>
                        <phase>pre-integration-test</phase>
                        <configuration>
                            <portNames>
                                <portName>http.port</portName>
                                <portName>http.port.mongo</portName>
                                <portName>mongo.port</portName>
                            </portNames>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!--
                Start a MongoDB container for the corresponding tests.
                Must be declared before the feature-launcher-maven-plugin
                so that the container is up before the corresponding Sling
                instance starts.
            -->
            <plugin>
                <groupId>io.fabric8</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.19.1</version>
                <configuration>
                    <skip>${docker.skip}</skip>
                    <images>
                        <image>
                            <alias>mongo</alias>
                            <name>${mongo.container.image}</name>
                            <run>
                                <ports>
                                    <port>${mongo.port}:27017</port>
                                </ports>
                                <wait>
                                    <log>CONTROL</log>
                                    <time>60000</time>
                                </wait>
                            </run>
                        </image>
                    </images>
                    <stopMode>kill</stopMode>
                </configuration>
                <executions>
                    <execution>
                        <id>start-mongo</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>start</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>stop-mongo</id>
                        <phase>post-integration-test</phase>
                        <goals>
                            <goal>stop</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- launch the Sling instances to test -->
            <plugin>
                <groupId>org.apache.sling</groupId>
                <artifactId>feature-launcher-maven-plugin</artifactId>
                <version>0.1.1-SNAPSHOT</version>
                <configuration>
                    <launches>
                        <launch>
                            <id>sling-12-oak-tar</id>
                            <feature>
                                <groupId>${project.groupId}</groupId>
                                <artifactId>${project.artifactId}</artifactId>
                                <version>${project.version}</version>
                                <classifier>oak_tar</classifier>
                                <type>slingosgifeature</type>
                            </feature>
                            <launcherArguments>
                                <frameworkProperties>
                                    <org.osgi.service.http.port>${http.port}</org.osgi.service.http.port>
                                </frameworkProperties>
                            </launcherArguments>
                        </launch>
                        <launch>
                            <id>sling-12-oak-mongo</id>
                            <skip>${docker.skip}</skip>
                            <feature>
                                <groupId>${project.groupId}</groupId>
                                <artifactId>${project.artifactId}</artifactId>
                                <version>${project.version}</version>
                                <classifier>oak_mongo</classifier>
                                <type>slingosgifeature</type>
                            </feature>
                            <launcherArguments>
                                <frameworkProperties>
                                    <org.osgi.service.http.port>${http.port.mongo}</org.osgi.service.http.port>
                                </frameworkProperties>
                                <variables>
                                    <mongo.port>${mongo.port}</mongo.port>
                                </variables>
                            </launcherArguments>
                        </launch>
                    </launches>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>start</goal>
                            <goal>stop</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- run the ITs -->
            <plugin>
               <artifactId>maven-failsafe-plugin</artifactId>
               <executions>
                   <execution>
                       <goals>
                           <goal>integration-test</goal>
                           <goal>verify</goal>
                       </goals>
                   </execution>
               </executions>
               <configuration>
                   <systemPropertyVariables>
                       <starter.http.test.ports>false:${http.port},${docker.skip}:${http.port.mongo}</starter.http.test.ports>
                       <starter.min.bundles.count>${starter.min.bundles.count}</starter.min.bundles.count>
                       <!-- Comma-separated list of paths to check for 200 status (added for SLING-10402) -->
                       <starter.check.paths>
                            /slingshot/users/slingshot1/travel/home/images/home.jpg,
                            /slingshot/resources/images/background.jpg,
                            /slingshot/users/slingshot2/places/landing/images/landing.jpg,
                            /starter.html,
                            /bin/browser.html,
                            /system/console/bundles,
                        </starter.check.paths>
                   </systemPropertyVariables>
               </configuration>
            </plugin>
        </plugins>

        <pluginManagement>
            <plugins>
                <plugin>
                    <!-- Extend RAT configuration from parent pom -->
                    <groupId>org.apache.rat</groupId>
                    <artifactId>apache-rat-plugin</artifactId>
                    <configuration>
                        <excludes combine.children="append">
                            <!-- Exclude sling instance -->
                            <exclude>sling/**</exclude>
                            <exclude>launcher/**</exclude>
                        </excludes>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
    
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.13</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.felix</groupId>
            <artifactId>org.apache.felix.utils</artifactId>
            <version>1.11.8</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    
    <profiles>
        <profile>
            <!-- enabled during release builds -->
            <id>apache-release</id>
            <properties>
               <bnd.index.generation.skip>false</bnd.index.generation.skip>
            </properties>
        </profile>
        <profile>
            <id>ci</id>
            <!-- enabled during ci builds -->
            <activation>
                <property>
                    <name>ci</name>
                </property>
            </activation>
            <properties>
               <bnd.index.generation.skip>false</bnd.index.generation.skip>
               <docker.skip>false</docker.skip>
            </properties>
        </profile>
    </profiles>
</project>
