<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>
    <groupId>com.hardisgroup.reflexplatform.core.api</groupId>
    <artifactId>core-apis</artifactId>
    <version>1.13.2</version>
    <name>Reflex Platform Core APIs</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <google.common.proto.version>2.64.1</google.common.proto.version>
        <google.common.guava.version>32.1.2-android</google.common.guava.version>
<!--        <pgv.version>1.11.0</pgv.version>-->
         <!-- jacoco-->
        <jacoco.version>0.8.6</jacoco.version>
        <!-- Sonar -->
        <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
        <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>

        <!-- Must be equal or greater than the version used for generation (install_dep.sh) -->
        <grpc.netty.shaded.version>1.78.0</grpc.netty.shaded.version>
        <grpc.protobuf.version>1.78.0</grpc.protobuf.version>
        <grpc.stub.version>1.78.0</grpc.stub.version>
        <google.protobuf.java.version>4.33.4</google.protobuf.java.version>
    </properties>

    <build>
        <extensions>
            <extension>
                <groupId>kr.motd.maven</groupId>
                <artifactId>os-maven-plugin</artifactId>
                <version>1.6.2</version>
            </extension>
            <extension>
                <groupId>com.google.cloud.artifactregistry</groupId>
                <artifactId>artifactregistry-maven-wagon</artifactId>
                <version>2.1.1</version>
            </extension>
        </extensions>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <!--release>11</release -->
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
             <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>${jacoco.version}</version>
                <executions>
                    <execution>
                        <id>prepare-agent</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>report</id>
                        <phase>test</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
	 		<plugin>
	 			<groupId>org.cyclonedx</groupId>
				<artifactId>cyclonedx-maven-plugin</artifactId>
				<version>2.9.0</version>
				<configuration>
					<projectType>library</projectType>
					<schemaVersion>1.6</schemaVersion>
					<includeBomSerialNumber>true</includeBomSerialNumber>
					<includeCompileScope>true</includeCompileScope>
					<includeProvidedScope>true</includeProvidedScope>
					<includeRuntimeScope>true</includeRuntimeScope>
					<includeSystemScope>true</includeSystemScope>
					<includeTestScope>false</includeTestScope>
					<includeLicenseText>false</includeLicenseText>
					<outputReactorProjects>true</outputReactorProjects>
					<outputFormat>xml</outputFormat>
					<outputName>bom</outputName>
					<skipAttach>true</skipAttach>
				</configuration>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>makeAggregateBom</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<!--plugin>
				<groupId>io.github.pmckeown</groupId>
				<artifactId>dependency-track-maven-plugin</artifactId>
				<version>0.8.8</version>
				<configuration>
					<dependencyTrackBaseUrl>${DEP_TRACK_ADDR}</dependencyTrackBaseUrl>
					<apiKey>${DEP_TRACK_APIKEY}</apiKey>
					<bomLocation>target/bom.xml</bomLocation>
                    <projectName>${project.groupId}:${project.artifactId}</projectName>
                    <projectVersion>${project.version}</projectVersion>
				</configuration>
				<executions>
					<execution>
						<phase>install</phase>
						<goals>
							<goal>upload-bom</goal>
						</goals>
					</execution>
				</executions>
			</plugin-->
		</plugins>
	</build>
    <dependencies>
        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-netty-shaded</artifactId>
            <version>${grpc.netty.shaded.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>com.google.guava</groupId>
                    <artifactId>guava</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-protobuf</artifactId>
            <version>${grpc.protobuf.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>com.google.guava</groupId>
                    <artifactId>guava</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-stub</artifactId>
            <version>${grpc.stub.version}</version>
        </dependency>
<!--        <dependency>-->
<!--            <groupId>com.hardisgroup.n1.protoc-gen-validate</groupId>-->
<!--            <artifactId>pgv-java-stub</artifactId>-->
<!--            <version>${pgv.version}</version>-->
<!--        </dependency>-->
        <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>${google.common.guava.version}</version>
        </dependency>
        <dependency>
            <groupId>com.google.api.grpc</groupId>
            <artifactId>proto-google-common-protos</artifactId>
            <version>${google.common.proto.version}</version>
        </dependency>
        <dependency>
            <groupId>com.google.protobuf</groupId>
            <artifactId>protobuf-java</artifactId>
            <version>${google.protobuf.java.version}</version>
        </dependency>
        <dependency>
            <groupId>com.google.protobuf</groupId>
            <artifactId>protobuf-java-util</artifactId>
            <version>${google.protobuf.java.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.36</version>
        </dependency>
    </dependencies>
    
    <repositories>
        <repository>
            <id>gitea</id>
            <url>https://git.reflex-platform.com/api/packages/reflex-platform/maven</url>
        </repository>
    </repositories>
    
    <distributionManagement>
        <repository>
            <id>gitea</id>
            <url>https://git.reflex-platform.com/api/packages/reflex-platform/maven</url>
        </repository>
        <snapshotRepository>
            <id>gitea</id>
            <url>https://git.reflex-platform.com/api/packages/reflex-platform/maven</url>
        </snapshotRepository>
    </distributionManagement>

</project>
