<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright 2023-2024 the original author or authors.
  ~
  ~ Licensed 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
  ~
  ~      https://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:xsi="http://www.w3.org/2001/XMLSchema-instance"
		 xmlns="http://maven.apache.org/POM/4.0.0"
		 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.ai</groupId>
		<artifactId>spring-ai-parent</artifactId>
		<version>1.0.0-SNAPSHOT</version>
	</parent>
	<artifactId>spring-ai-spring-boot-testcontainers</artifactId>
	<packaging>jar</packaging>
	<name>Spring AI Testcontainers</name>
	<description>Spring AI Testcontainers</description>
	<url>https://github.com/spring-projects/spring-ai</url>

	<scm>
		<url>https://github.com/spring-projects/spring-ai</url>
		<connection>git://github.com/spring-projects/spring-ai.git</connection>
		<developerConnection>git@github.com:spring-projects/spring-ai.git</developerConnection>
	</scm>

	<properties>
		<spring-ai-testcontainers.skipITs>false</spring-ai-testcontainers.skipITs>
	</properties>

	<dependencies>

		<!-- TODO: Once all the per module autoconfigurations are updated, the following autoconfiguration should be removed -->

		<dependency>
			<groupId>org.springframework.ai</groupId>
			<artifactId>spring-ai-autoconfigure-model-ollama</artifactId>
			<version>${project.parent.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.ai</groupId>
			<artifactId>spring-ai-autoconfigure-vector-store-opensearch</artifactId>
			<version>${project.parent.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.ai</groupId>
			<artifactId>spring-ai-autoconfigure-vector-store-chroma</artifactId>
			<version>${project.parent.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.ai</groupId>
			<artifactId>spring-ai-autoconfigure-vector-store-mongodb-atlas</artifactId>
			<version>${project.parent.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.ai</groupId>
			<artifactId>spring-ai-autoconfigure-vector-store-milvus</artifactId>
			<version>${project.parent.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.ai</groupId>
			<artifactId>spring-ai-autoconfigure-vector-store-qdrant</artifactId>
			<version>${project.parent.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.ai</groupId>
			<artifactId>spring-ai-autoconfigure-vector-store-weaviate</artifactId>
			<version>${project.parent.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework.ai</groupId>
			<artifactId>spring-ai-autoconfigure-vector-store-typesense</artifactId>
			<version>${project.parent.version}</version>
		</dependency>

		<dependency>
			<groupId>com.google.protobuf</groupId>
			<artifactId>protobuf-java</artifactId>
			<version>${protobuf-java.version}</version>
		</dependency>

		<!-- production dependencies -->

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-testcontainers</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.ai</groupId>
			<artifactId>spring-ai-openai</artifactId>
			<version>${project.parent.version}</version>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.springframework.ai</groupId>
			<artifactId>spring-ai-ollama</artifactId>
			<version>${project.parent.version}</version>
			<optional>true</optional>
		</dependency>

		<!-- Transformers Embedding Model -->
		<dependency>
			<groupId>org.springframework.ai</groupId>
			<artifactId>spring-ai-transformers</artifactId>
			<version>${project.parent.version}</version>
			<optional>true</optional>
		</dependency>

		<!-- Milvus Vector Store -->
		<dependency>
			<groupId>org.springframework.ai</groupId>
			<artifactId>spring-ai-milvus-store</artifactId>
			<version>${project.parent.version}</version>
			<optional>true</optional>
		</dependency>

		<!-- Chroma Vector Store -->
		<dependency>
			<groupId>org.springframework.ai</groupId>
			<artifactId>spring-ai-chroma-store</artifactId>
			<version>${project.parent.version}</version>
			<optional>true</optional>
		</dependency>

		<!-- Weaviate Vector Store -->
		<dependency>
			<groupId>org.springframework.ai</groupId>
			<artifactId>spring-ai-weaviate-store</artifactId>
			<version>${project.parent.version}</version>
			<optional>true</optional>
		</dependency>

		<!-- Redis Vector Store-->
		<dependency>
			<groupId>org.springframework.ai</groupId>
			<artifactId>spring-ai-redis-store</artifactId>
			<version>${project.parent.version}</version>
			<optional>true</optional>
		</dependency>

		<!-- Override Jedis version -->
		<dependency>
			<groupId>redis.clients</groupId>
			<artifactId>jedis</artifactId>
			<version>5.1.0</version>
			<scope>test</scope>
		</dependency>

		<!-- Qdrant Vector Store-->
		<dependency>
			<groupId>org.springframework.ai</groupId>
			<artifactId>spring-ai-qdrant-store</artifactId>
			<version>${project.parent.version}</version>
			<optional>true</optional>
		</dependency>

		<!-- Typesense Vector Store-->
		<dependency>
			<groupId>org.springframework.ai</groupId>
			<artifactId>spring-ai-typesense-store</artifactId>
			<version>${project.parent.version}</version>
			<optional>true</optional>
		</dependency>

		<!-- OpenSearch Vector Store-->
		<dependency>
			<groupId>org.springframework.ai</groupId>
			<artifactId>spring-ai-opensearch-store</artifactId>
			<version>${project.parent.version}</version>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.springframework.ai</groupId>
			<artifactId>spring-ai-mongodb-atlas-store</artifactId>
			<version>${project.parent.version}</version>
			<optional>true</optional>
		</dependency>

		<!-- test dependencies -->

		<dependency>
			<groupId>org.springframework.ai</groupId>
			<artifactId>spring-ai-test</artifactId>
			<version>${project.parent.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.skyscreamer</groupId>
					<artifactId>jsonassert</artifactId>
				</exclusion>
			</exclusions>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.postgresql</groupId>
			<artifactId>postgresql</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.testcontainers</groupId>
			<artifactId>testcontainers</artifactId>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.testcontainers</groupId>
			<artifactId>junit-jupiter</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>com.vaadin.external.google</groupId>
					<artifactId>android-json</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>com.redis</groupId>
			<artifactId>testcontainers-redis</artifactId>
			<version>2.2.0</version>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.awaitility</groupId>
			<artifactId>awaitility</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>software.amazon.awssdk</groupId>
			<artifactId>apache-client</artifactId>
			<version>${awssdk.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>software.amazon.awssdk</groupId>
			<artifactId>auth</artifactId>
			<version>${awssdk.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>software.amazon.awssdk</groupId>
			<artifactId>regions</artifactId>
			<version>${awssdk.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.testcontainers</groupId>
			<artifactId>qdrant</artifactId>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.testcontainers</groupId>
			<artifactId>weaviate</artifactId>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.testcontainers</groupId>
			<artifactId>chromadb</artifactId>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.testcontainers</groupId>
			<artifactId>localstack</artifactId>
			<optional>true</optional>
		</dependency>
		
		<dependency>
			<groupId>org.testcontainers</groupId>
			<artifactId>milvus</artifactId>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.testcontainers</groupId>
			<artifactId>mongodb</artifactId>
			<version>1.20.2</version>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.testcontainers</groupId>
			<artifactId>ollama</artifactId>
			<optional>true</optional>
		</dependency>
		
		<dependency>
			<groupId>org.testcontainers</groupId>
			<artifactId>typesense</artifactId>
			<version>1.20.4</version>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.opensearch</groupId>
			<artifactId>opensearch-testcontainers</artifactId>
			<version>2.0.1</version>
			<optional>true</optional>
		</dependency>

	</dependencies>

</project>
