<?xml version="1.0" encoding="UTF-8"?>
<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">

    <!--

        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.
    -->

    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.apache.karaf.itests</groupId>
        <artifactId>itests</artifactId>
        <version>4.4.11</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <groupId>org.apache.karaf.itests</groupId>
    <artifactId>tests</artifactId>
    <packaging>jar</packaging>
    <name>Apache Karaf :: Integration Tests :: Tests</name>

    <properties>
        <appendedResourcesDirectory>${basedir}/../etc/appended-resources</appendedResourcesDirectory>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.apache.karaf</groupId>
                <artifactId>karaf-bom</artifactId>
                <version>${project.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.apache.karaf.itests</groupId>
            <artifactId>common</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
            <version>${javax.annotation.version}</version>
        </dependency>

        <dependency>
            <groupId>org.ops4j.pax.exam</groupId>
            <artifactId>pax-exam-container-karaf</artifactId>
            <scope>compile</scope>
            <optional>true</optional>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>org.apache.felix.configadmin</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.framework</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.karaf</groupId>
            <artifactId>apache-karaf</artifactId>
            <scope>test</scope>
            <type>tar.gz</type>
            <exclusions>
                <exclusion>
                    <artifactId>*</artifactId>
                    <groupId>*</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.karaf</groupId>
            <artifactId>apache-karaf-minimal</artifactId>
            <scope>test</scope>
            <type>tar.gz</type>
            <exclusions>
                <exclusion>
                    <artifactId>*</artifactId>
                    <groupId>*</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-karaf</artifactId>
            <version>${activemq.version}</version>
            <type>xml</type>
            <classifier>features</classifier>
            <exclusions>
                <exclusion>
                    <artifactId>*</artifactId>
                    <groupId>*</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        
        <dependency>
            <groupId>org.ops4j.pax.cdi</groupId>
            <artifactId>pax-cdi-features</artifactId>
            <version>${pax.cdi.version}</version>
            <type>xml</type>
            <classifier>features</classifier>
        </dependency>

        <dependency>
            <groupId>org.apache.felix</groupId>
            <artifactId>org.apache.felix.gogo.runtime</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-jms_1.1_spec</artifactId>
            <scope>test</scope>
        </dependency>
        
        <dependency>
            <groupId>org.awaitility</groupId>
            <artifactId>awaitility</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.servicemix.bundles</groupId>
            <artifactId>org.apache.servicemix.bundles.hamcrest</artifactId>
            <version>1.3_1</version>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.felix</groupId>
            <artifactId>org.apache.felix.fileinstall</artifactId>
        </dependency>

        <!-- for JmsTest -->
        <dependency>
            <groupId>org.apache.karaf.shell</groupId>
            <artifactId>org.apache.karaf.shell.ssh</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- for JndiTest -->
        <dependency>
            <groupId>org.apache.karaf.jndi</groupId>
            <artifactId>org.apache.karaf.jndi.core</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.karaf.package</groupId>
            <artifactId>org.apache.karaf.package.core</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.karaf.bundle</groupId>
            <artifactId>org.apache.karaf.bundle.core</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.felix</groupId>
            <artifactId>org.apache.felix.framework.security</artifactId>
        </dependency>

        <dependency>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcprov-jdk18on</artifactId>
            <scope>test</scope>
            <version>${bouncycastle.version}</version>
        </dependency>
        <dependency>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcpkix-jdk18on</artifactId>
            <scope>test</scope>
            <version>${bouncycastle.version}</version>
        </dependency>

        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>${guava.version}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.eclipse.jetty.websocket</groupId>
            <artifactId>websocket-client</artifactId>
            <version>9.4.58.v20250814</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
            <version>9.4.52.v20230823</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- examples -->
        <dependency>
            <groupId>org.apache.karaf.examples</groupId>
            <artifactId>karaf-bundle-example-common</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.karaf.examples</groupId>
            <artifactId>karaf-bundle-example-client</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.karaf.examples</groupId>
            <artifactId>karaf-blueprint-example-common</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.karaf.examples</groupId>
            <artifactId>karaf-blueprint-example-client</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.karaf.examples</groupId>
            <artifactId>karaf-command-example-api</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.karaf.diagnostic</groupId>
            <artifactId>org.apache.karaf.diagnostic.boot</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.karaf.examples</groupId>
            <artifactId>karaf-jdbc-example-api</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.karaf.examples</groupId>
            <artifactId>karaf-jpa-example-provider-api</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.karaf.examples</groupId>
            <artifactId>karaf-rest-example-client-http</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.karaf.examples</groupId>
            <artifactId>karaf-websocket-example</artifactId>
            <version>${project.version}</version>
        </dependency>
    </dependencies>

    <build>
        <testResources>
            <testResource>
                <directory>${project.basedir}/src/test/resources</directory>
                <filtering>false</filtering>
                <includes>
                    <include>**/*</include>
                </includes>
            </testResource>
            <testResource>
                <directory>${project.basedir}/src/test/filtered-resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>**/*</include>
                </includes>
            </testResource>
        </testResources>
        <plugins>
            <plugin>
                <groupId>org.apache.servicemix.tooling</groupId>
                <artifactId>depends-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>generate-depends-file</id>
                        <goals>
                            <goal>generate-depends-file</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <forkCount>1</forkCount>
                    <reuseForks>false</reuseForks>
                    <systemPropertyVariables>
                        <org.ops4j.pax.logging.DefaultServiceLog.level>INFO</org.ops4j.pax.logging.DefaultServiceLog.level>
                        <spring31.version>${spring31.version}</spring31.version>
                        <spring43.version>${spring43.version}</spring43.version>
                        <spring52.version>${spring52.version}</spring52.version>
                        <spring53.version>${spring53.version}</spring53.version>
                        <spring60.version>${spring60.version}</spring60.version>
                        <spring61.version>${spring61.version}</spring61.version>
                        <spring.security31.version>${spring.security31.version}</spring.security31.version>
                        <spring.security42.version>${spring.security42.version}</spring.security42.version>
                        <spring.security53.version>${spring.security53.version}</spring.security53.version>
                        <spring.security54.version>${spring.security54.version}</spring.security54.version>
                        <spring.security55.version>${spring.security55.version}</spring.security55.version>
                        <spring.security56.version>${spring.security56.version}</spring.security56.version>
                        <spring.security57.version>${spring.security57.version}</spring.security57.version>
                        <spring.security62.version>${spring.security62.version}</spring.security62.version>
                        <activemq.version>${activemq.version}</activemq.version>
                        <karaf.version>${project.version}</karaf.version>
                        <pax.exam.configuration>file:src/test/resources/controlled-exam.properties</pax.exam.configuration>
                    </systemPropertyVariables>
                    <excludes>
                        <exclude>MavenTest</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <useDefaultDelimiters>false</useDefaultDelimiters>
                    <delimiters>
                        <delimiter>${*}</delimiter>
                        <delimiter>@@</delimiter>
                    </delimiters>
                </configuration>
                <executions>
                    <execution>
                        <id>filter</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>resources</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    
    <profiles>
        <profile>
            <id>ci-build-profile</id>
            <activation>
                <property>
                    <name>maven.repo.local</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <configuration>
                            <excludes>
                                <exclude>MavenTest</exclude>
                            </excludes>
                            <systemPropertyVariables>
                                <org.ops4j.pax.url.mvn.localRepository>${maven.repo.local}</org.ops4j.pax.url.mvn.localRepository>
                                <org.ops4j.pax.logging.DefaultServiceLog.level>INFO</org.ops4j.pax.logging.DefaultServiceLog.level>
                                <karaf.version>${project.version}</karaf.version>
                                <spring31.version>${spring31.version}</spring31.version>
                                <spring43.version>${spring43.version}</spring43.version>
                                <spring52.version>${spring52.version}</spring52.version>
                                <spring53.version>${spring53.version}</spring53.version>
                                <spring60.version>${spring60.version}</spring60.version>
                                <spring61.version>${spring61.version}</spring61.version>
                                <spring.security31.version>${spring.security31.version}</spring.security31.version>
                                <spring.security42.version>${spring.security42.version}</spring.security42.version>
                                <spring.security53.version>${spring.security53.version}</spring.security53.version>
                                <spring.security54.version>${spring.security54.version}</spring.security54.version>
                                <spring.security55.version>${spring.security55.version}</spring.security55.version>
                                <spring.security56.version>${spring.security56.version}</spring.security56.version>
                                <spring.security57.version>${spring.security57.version}</spring.security57.version>
                                <spring.security62.version>${spring.security62.version}</spring.security62.version>
                                <activemq.version>${activemq.version}</activemq.version>
                    		</systemPropertyVariables>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

</project>
