﻿<?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>ai.platon.pulsar</groupId>
        <artifactId>pulsar</artifactId>
        <version>4.9.3</version>
        <relativePath>../../pom.xml</relativePath>
    </parent>

    <artifactId>pulsar-persist</artifactId>
    <name>Pulsar Persist</name>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>ai.platon.gora</groupId>
            <artifactId>gora-core</artifactId>
            <version>${platon-gora.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.logging.log4j</groupId>
                    <artifactId>log4j-slf4j2-impl</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sparkutils</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.spark</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.flink</groupId>
                    <artifactId>flink-clients</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.flink</groupId>
                    <artifactId>flink-hadoop-compatibility</artifactId>
                </exclusion>
                <!-- Remove all flink dependency, will test more to be sure -->
                <exclusion>
                    <groupId>org.apache.flink</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>ai.platon.pulsar</groupId>
            <artifactId>pulsar-common</artifactId>
        </dependency>
        <dependency>
            <groupId>ai.platon.pulsar</groupId>
            <artifactId>pulsar-jsoup</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-properties</artifactId>
        </dependency>
        <!-- Support Java 8 date/time type -->
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jsr310</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.module</groupId>
            <artifactId>jackson-module-kotlin</artifactId>
        </dependency>

<!--        &lt;!&ndash; gora-core:1.0.1-slim has a wildcard exclusion on hadoop-common that strips ALL-->
<!--             transitive dependencies (Woodstox, shaded-guava, etc.). Declare hadoop-common-->
<!--             directly here with targeted exclusions to keep essential runtime deps while-->
<!--             avoiding the heavy Jetty/Jersey/servlet bloat. &ndash;&gt;-->
<!--        <dependency>-->
<!--            <groupId>org.apache.hadoop</groupId>-->
<!--            <artifactId>hadoop-common</artifactId>-->
<!--            <version>3.4.2</version>-->
<!--            <exclusions>-->
<!--                &lt;!&ndash; Exclude web/servlet stack (not needed for Configuration) &ndash;&gt;-->
<!--                <exclusion>-->
<!--                    <groupId>org.eclipse.jetty</groupId>-->
<!--                    <artifactId>*</artifactId>-->
<!--                </exclusion>-->
<!--                <exclusion>-->
<!--                    <groupId>org.eclipse.jetty.ee10</groupId>-->
<!--                    <artifactId>*</artifactId>-->
<!--                </exclusion>-->
<!--                <exclusion>-->
<!--                    <groupId>jakarta.servlet</groupId>-->
<!--                    <artifactId>*</artifactId>-->
<!--                </exclusion>-->
<!--                <exclusion>-->
<!--                    <groupId>jakarta.servlet.jsp</groupId>-->
<!--                    <artifactId>*</artifactId>-->
<!--                </exclusion>-->
<!--                &lt;!&ndash; Exclude Jersey REST stack &ndash;&gt;-->
<!--                <exclusion>-->
<!--                    <groupId>com.sun.jersey</groupId>-->
<!--                    <artifactId>*</artifactId>-->
<!--                </exclusion>-->
<!--                <exclusion>-->
<!--                    <groupId>org.glassfish.jersey</groupId>-->
<!--                    <artifactId>*</artifactId>-->
<!--                </exclusion>-->
<!--                &lt;!&ndash; Exclude old HTTP client (we use httpclient5) &ndash;&gt;-->
<!--                <exclusion>-->
<!--                    <groupId>commons-httpclient</groupId>-->
<!--                    <artifactId>*</artifactId>-->
<!--                </exclusion>-->
<!--            </exclusions>-->
<!--        </dependency>-->

        <!-- Test -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>ai.platon.pulsar</groupId>
            <artifactId>pulsar-tests-common</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <properties>
        <platon-gora.version>1.0.2-slim</platon-gora.version>
    </properties>

</project>
