<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.dizitart</groupId>
        <artifactId>nitrite-java</artifactId>
        <version>4.3.0</version>
    </parent>

    <artifactId>nitrite</artifactId>
    <packaging>jar</packaging>

    <name>Nitrite</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

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

    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jasypt</groupId>
            <artifactId>jasypt</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>uk.co.jemos.podam</groupId>
            <artifactId>podam</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.github.javafaker</groupId>
            <artifactId>javafaker</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j2-impl</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.awaitility</groupId>
            <artifactId>awaitility</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.meanbean</groupId>
            <artifactId>meanbean</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.yaml</groupId>
            <artifactId>snakeyaml</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>jakarta.xml.bind</groupId>
            <artifactId>jakarta.xml.bind-api</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>


    <build>
        <plugins>
            <plugin>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>**/index/fulltext/languages/*</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <configuration>
                    <excludePackageNames>
                        org.dizitart.no2.collection.operation,
                        org.dizitart.no2.common.concurrent,
                        org.dizitart.no2.common.event,
                        org.dizitart.no2.common.streams,
                        org.dizitart.no2.common.util,
                        org.dizitart.no2.index.fulltext.languages,
                        org.dizitart.no2.migration.commands,
                        org.dizitart.no2.store.memory,
                    </excludePackageNames>
                    <sourceFileExcludes>
                        <exclude>**/*Factory.java</exclude>
                        <exclude>**/*DefaultNitriteCollection.java</exclude>
                        <exclude>**/*SnowflakeIdGenerator.java</exclude>
                        <exclude>**/*AttributesAware.java</exclude>
                        <exclude>**/*PluginManager.java</exclude>
                        <exclude>**/*ProcessorChain.java</exclude>
                        <exclude>**/*Constants.java</exclude>
                        <exclude>**/*DBNull.java</exclude>
                        <exclude>**/*DBValue.java</exclude>
                        <exclude>**/*UnknownType.java</exclude>
                        <exclude>**/*AndFilter.java</exclude>
                        <exclude>**/*OrFilter.java</exclude>
                        <exclude>**/*BetweenFilter.java</exclude>
                        <exclude>**/*ComparableArrayFilter.java</exclude>
                        <exclude>**/*ElementMatchFilter.java</exclude>
                        <exclude>**/*EqualsFilter.java</exclude>
                        <exclude>**/*TextFilter.java</exclude>
                        <exclude>**/*ComparableIndexer.java</exclude>
                        <exclude>**/*CompoundIndex.java</exclude>
                        <exclude>**/*IndexMap.java</exclude>
                        <exclude>**/*IndexMeta.java</exclude>
                        <exclude>**/*IndexScanner.java</exclude>
                        <exclude>**/*NitriteTextIndexer.java</exclude>
                        <exclude>**/*NonUniqueIndexer.java</exclude>
                        <exclude>**/*SingleFieldIndex.java</exclude>
                        <exclude>**/*TextIndex.java</exclude>
                        <exclude>**/*UniqueIndexer.java</exclude>
                        <exclude>**/*MigrationManager.java</exclude>
                        <exclude>**/*EntityDecoratorScanner.java</exclude>
                        <exclude>**/*IndexValidator.java</exclude>
                        <exclude>**/*ObjectCursor.java</exclude>
                        <exclude>**/*RepositoryOperations.java</exclude>
                        <exclude>**/*EventBus.java</exclude>
                        <exclude>**/*MetaData.java</exclude>
                        <exclude>**/*UserAuthenticationService.java</exclude>
                        <exclude>**/*UserCredential.java</exclude>
                    </sourceFileExcludes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-gpg-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>animal-sniffer-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>nexus-staging-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive combine.children="append">
                        <manifestEntries>
                            <Automatic-Module-Name>org.dizitart.no2</Automatic-Module-Name>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>sonatype-nexus-snapshots</id>
            <name>Sonatype Nexus Snapshots</name>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
            <releases><enabled>false</enabled></releases>
            <snapshots><enabled>true</enabled></snapshots>
        </repository>
    </repositories>
</project>
