<?xml version="1.0" encoding="UTF-8"?>

<!-- SPDX-License-Identifier: Apache-2.0 -->
<!-- Copyright Contributors to the ODPi Egeria project. -->

<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">
    <parent>
        <artifactId>egeria-connector-xtdb-module</artifactId>
        <groupId>org.odpi.egeria</groupId>
        <version>3.2</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>egeria-connector-xtdb</artifactId>
    <version>3.2</version>

    <name>Egeria Connector for XTDB</name>
    <description>
        An OCF OMRS Connector for a historical metadata back-end based on XTDB.
    </description>

    <dependencies>
        <dependency>
            <groupId>com.xtdb</groupId>
            <artifactId>xtdb-core</artifactId>
        </dependency>
        <dependency>
            <groupId>com.xtdb</groupId>
            <artifactId>xtdb-lucene</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.lucene</groupId>
            <artifactId>lucene-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.lucene</groupId>
            <artifactId>lucene-queryparser</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.lucene</groupId>
            <artifactId>lucene-analyzers-common</artifactId>
        </dependency>
        <dependency>
            <groupId>org.clojure</groupId>
            <artifactId>clojure</artifactId>
        </dependency>
        <dependency>
            <groupId>org.odpi.egeria</groupId>
            <artifactId>audit-log-framework</artifactId>
        </dependency>
        <dependency>
            <groupId>org.odpi.egeria</groupId>
            <artifactId>repository-services-apis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.odpi.egeria</groupId>
            <artifactId>open-connector-framework</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
        </dependency>
        <dependency>
            <groupId>org.odpi.egeria</groupId>
            <artifactId>repository-services-implementation</artifactId>
        </dependency>
        <dependency>
            <groupId>org.odpi.egeria</groupId>
            <artifactId>connector-configuration-factory</artifactId>
        </dependency>
        <dependency>
            <groupId>org.odpi.egeria</groupId>
            <artifactId>open-metadata-types</artifactId>
        </dependency>
        <!-- Configurable runtimes for the connector: included for completeness. -->
        <dependency>
            <groupId>com.xtdb</groupId>
            <artifactId>xtdb-rocksdb</artifactId>
        </dependency>
        <dependency>
            <groupId>com.xtdb</groupId>
            <artifactId>xtdb-lmdb</artifactId>
        </dependency>
        <dependency>
            <groupId>com.xtdb</groupId>
            <artifactId>xtdb-kafka</artifactId>
        </dependency>
        <dependency>
            <groupId>com.xtdb</groupId>
            <artifactId>xtdb-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>com.xtdb</groupId>
            <artifactId>xtdb-s3</artifactId>
        </dependency>
        <dependency>
            <groupId>com.xtdb</groupId>
            <artifactId>xtdb-metrics</artifactId>
        </dependency>
    </dependencies>

    <build>

        <plugins>

            <!-- Check no unnecessary or missing dependencies           -->
            <!-- Note test scope dependencies can't be reliably checked -->
            <plugin>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>analyze</id>
                        <goals>
                            <goal>analyze-only</goal>
                        </goals>
                        <configuration>
                            <failOnWarning>true</failOnWarning>
                            <outputXML>true</outputXML>
                            <ignoredUnusedDeclaredDependencies>
                                <!-- Test dependencies - should only be used in test scope. False positive from dependency check -->
                                <ignoredUnusedDeclaredDependency>org.testng:*</ignoredUnusedDeclaredDependency>
                                <ignoredUnusedDeclaredDependency>ch.qos.logback:logback-classic:*</ignoredUnusedDeclaredDependency>
                                <!-- This module is used both at runtime and as part of the tests, which the dependency-checker
                                     cannot determine: hence excluding from checking. -->
                                <ignoredUnusedDeclaredDependency>com.xtdb:xtdb-lucene:*</ignoredUnusedDeclaredDependency>
                                <ignoredUnusedDeclaredDependency>org.apache.lucene:lucene-core:*</ignoredUnusedDeclaredDependency>
                                <ignoredUnusedDeclaredDependency>org.apache.lucene:lucene-analyzers-common:*</ignoredUnusedDeclaredDependency>
                                <!-- These are runtime-configurable, so included in the jar for completeness -->
                                <ignoredUnusedDeclaredDependency>com.xtdb:xtdb-rocksdb:*</ignoredUnusedDeclaredDependency>
                                <ignoredUnusedDeclaredDependency>com.xtdb:xtdb-lmdb:*</ignoredUnusedDeclaredDependency>
                                <ignoredUnusedDeclaredDependency>com.xtdb:xtdb-kafka:*</ignoredUnusedDeclaredDependency>
                                <ignoredUnusedDeclaredDependency>com.xtdb:xtdb-jdbc:*</ignoredUnusedDeclaredDependency>
                                <ignoredUnusedDeclaredDependency>com.xtdb:xtdb-s3:*</ignoredUnusedDeclaredDependency>
                                <ignoredUnusedDeclaredDependency>com.xtdb:xtdb-metrics:*</ignoredUnusedDeclaredDependency>
                            </ignoredUnusedDeclaredDependencies>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!-- Packaging -->
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>single</goal>
                        </goals>
                        <phase>package</phase>
                    </execution>
                </executions>
            </plugin>
        </plugins>

    </build>

</project>
