<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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://www.apache.org/xsd/maven-4.0.0.xsd">

	<modelVersion>4.0.0</modelVersion>
	<groupId>io.github.mulesoft-ai-chain-project</groupId>
	<artifactId>mule4-vectors-connector</artifactId>
    <version>0.6.20</version>
	<packaging>mule-extension</packaging>
	<name>MuleSoft Vectors Connector - Mule 4</name>
	<description>MuleSoft Vectors Connector provides access to a broad number of external Vector Stores.</description>
	<url>https://mac-project.ai/docs/ms-vectors/connector-overview</url>
	<scm>
		<connection>scm:git:git://github.com/MuleSoft-AI-Chain-Project/mule-vectors-connector.git</connection>
		<developerConnection>scm:git:ssh://github.com:MuleSoft-AI-Chain-Project/mule-vectors-connector.git</developerConnection>
		<url>https://github.com/MuleSoft-AI-Chain-Project/mule-vectors-connector/tree/master</url>
	</scm>

	<licenses>
		<license>
			<name>The Apache Software License, Version 2.0</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
		</license>
	</licenses>

	<developers>
		<developer>
			<name>Amir Khan</name>
			<email>amir.khan@salesforce.com</email>
			<organization>Salesforce</organization>
			<organizationUrl>https://www.salesforce.com</organizationUrl>
		</developer>
		<developer>
			<name>Tommaso Bolis</name>
			<email>tbolis-at-salesforce-dot-com</email>
			<organization>Salesforce</organization>
			<organizationUrl>https://www.salesforce.com</organizationUrl>
		</developer>
		<developer>
			<name>Laura de Paz</name>
			<email>laura.depaz@salesforce.com</email>
			<organization>Salesforce</organization>
			<organizationUrl>https://www.salesforce.com</organizationUrl>
		</developer>
		<developer>
			<name>Alick Wong</name>
			<email>alick.wong@salesforce.com</email>
			<organization>Salesforce</organization>
			<organizationUrl>https://www.salesforce.com</organizationUrl>
		</developer>
		<developer>
			<name>Yogesh Mudaliar</name>
			<email>ymudaliar@salesforce.com</email>
			<organization>Salesforce</organization>
			<organizationUrl>https://www.salesforce.com</organizationUrl>
		</developer>
		<developer>
			<name>Ryan Hoegg</name>
			<email>ryan@hoegg.software</email>
			<organization>Hoegg Software, Co.</organization>
			<organizationUrl>https://hoegg.software</organizationUrl>
		</developer>
		<developer>
			<name>Suraj Kamal</name>
		</developer>
		<developer>
			<name>Anush Shetty</name>
		</developer>
	</developers>

	<parent>
		<groupId>org.mule.extensions</groupId>
		<artifactId>mule-modules-parent</artifactId>
		<version>1.9.4</version>
	</parent>

    <properties>
		<runtimeProduct>MULE_EE</runtimeProduct>
		<formatterConfigPath>formatter.xml</formatterConfigPath>
		<javaFormatter.plugin.version>2.0.1</javaFormatter.plugin.version>
		<formatterGoal>validate</formatterGoal>	
		<langchain4jBomVersion>1.0.1</langchain4jBomVersion>
		<langchain4jCommunityVersion>1.0.1-beta6</langchain4jCommunityVersion>
		<mule.sdk.api.version>0.11.4</mule.sdk.api.version>
		<munit.input.directory>src/test/munit</munit.input.directory>
		<munit.output.directory>${basedir}/target/test-mule/munit</munit.output.directory>
		<munit.extensions.maven.plugin.version>1.5.0</munit.extensions.maven.plugin.version>
		<munit.version>3.4.0</munit.version>
		<mtf.tools.version>1.2.0</mtf.tools.version>
		<jacoco.version>0.8.12</jacoco.version>
		<maven.surefire.version>2.22.2</maven.surefire.version>
		<skip.unit.tests>false</skip.unit.tests>
    </properties>

	<build>
		<plugins>
			<plugin>
				<groupId>com.mulesoft.munit</groupId>
				<artifactId>munit-extensions-maven-plugin</artifactId>
				<version>${munit.extensions.maven.plugin.version}</version>
				<extensions>true</extensions>
				<executions>
					<execution>
						<phase>integration-test</phase>
						<goals>
							<goal>test</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<sharedLibraries>
						<!-- LangChain Dependencies -->
						<sharedLibrary>
							<groupId>dev.langchain4j</groupId>
							<artifactId>langchain4j-core</artifactId>
						</sharedLibrary>
						<sharedLibrary>
							<groupId>dev.langchain4j</groupId>
							<artifactId>langchain4j</artifactId>
						</sharedLibrary>
						<sharedLibrary>
							<groupId>dev.langchain4j</groupId>
							<artifactId>langchain4j-document-parser-apache-tika</artifactId>
						</sharedLibrary>
						<sharedLibrary>
							<groupId>dev.langchain4j</groupId>
							<artifactId>langchain4j-document-transformer-jsoup</artifactId>
						</sharedLibrary>
						<!-- Storage Services Dependencies -->
						<sharedLibrary>
							<groupId>software.amazon.awssdk</groupId>
							<artifactId>s3</artifactId>
						</sharedLibrary>
						<sharedLibrary>
							<groupId>com.azure</groupId>
							<artifactId>azure-storage-blob</artifactId>
						</sharedLibrary>
						<sharedLibrary>
							<groupId>com.google.cloud</groupId>
							<artifactId>google-cloud-storage</artifactId>
						</sharedLibrary>
						<!-- Vector Stores Dependencies -->
						<sharedLibrary>
							<groupId>dev.langchain4j</groupId>
							<artifactId>langchain4j-chroma</artifactId>
						</sharedLibrary>
						<sharedLibrary>
							<groupId>dev.langchain4j</groupId>
							<artifactId>langchain4j-milvus</artifactId>
						</sharedLibrary>
						<sharedLibrary>
							<groupId>dev.langchain4j</groupId>
							<artifactId>langchain4j-elasticsearch</artifactId>
						</sharedLibrary>
						<sharedLibrary>
							<groupId>dev.langchain4j</groupId>
							<artifactId>langchain4j-opensearch</artifactId>
						</sharedLibrary>
						<sharedLibrary>
							<groupId>dev.langchain4j</groupId>
							<artifactId>langchain4j-pgvector</artifactId>
						</sharedLibrary>
						<sharedLibrary>
							<groupId>dev.langchain4j</groupId>
							<artifactId>langchain4j-pinecone</artifactId>
						</sharedLibrary>
						<sharedLibrary>
							<groupId>dev.langchain4j</groupId>
							<artifactId>langchain4j-qdrant</artifactId>
						</sharedLibrary>
						<sharedLibrary>
							<groupId>dev.langchain4j</groupId>
							<artifactId>langchain4j-azure-ai-search</artifactId>
						</sharedLibrary>
						<sharedLibrary>
							<groupId>dev.langchain4j</groupId>
							<artifactId>langchain4j-mongodb-atlas</artifactId>
						</sharedLibrary>
						<sharedLibrary>
							<groupId>dev.langchain4j</groupId>
							<artifactId>langchain4j-weaviate</artifactId>
						</sharedLibrary>
						<sharedLibrary>
							<groupId>dev.langchain4j</groupId>
							<artifactId>langchain4j-community-alloydb-pg</artifactId>
						</sharedLibrary>
					</sharedLibraries>
				</configuration>
				<dependencies>
					<dependency>
						<groupId>com.mulesoft.munit</groupId>
						<artifactId>munit-runner</artifactId>
						<version>${munit.version}</version>
						<classifier>mule-plugin</classifier>
					</dependency>
					<dependency>
						<groupId>com.mulesoft.munit</groupId>
						<artifactId>munit-tools</artifactId>
						<version>${munit.version}</version>
						<classifier>mule-plugin</classifier>
					</dependency>
					<dependency>
						<groupId>com.mulesoft.munit</groupId>
						<artifactId>mtf-tools</artifactId>
						<version>${mtf.tools.version}</version>
						<classifier>mule-plugin</classifier>
					</dependency>
				</dependencies>
			</plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>3.2.1</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-gpg-plugin</artifactId>
                <version>1.5</version>
                <executions>
                    <execution>
                        <id>sign-artifacts</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>sign</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.sonatype.central</groupId>
                <artifactId>central-publishing-maven-plugin</artifactId>
                <version>0.6.0</version>
                <extensions>true</extensions>
                <configuration>
                    <publishingServerId>central</publishingServerId>
                    <checksums>all</checksums>
                    <deploymentName>MuleSoft Vectors Connector Mule 4 Deployment</deploymentName>
                </configuration>
            </plugin>
		</plugins>
	</build>

    <dependencyManagement>
        <dependencies>
			<dependency>
				<groupId>dev.langchain4j</groupId>
				<artifactId>langchain4j-bom</artifactId>
				<version>${langchain4jBomVersion}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
    </dependencyManagement>

    <dependencies>

		<!-- Mule Required Dependencies -->

		<dependency>
			<groupId>org.mule.sdk</groupId>
			<artifactId>mule-sdk-api</artifactId>
			<version>${mule.sdk.api.version}</version>
		</dependency>

		<!-- Other Libraries Required Dependencies -->

		<dependency>
			<groupId>org.jsoup</groupId>
			<artifactId>jsoup</artifactId>
			<version>1.18.3</version>
		</dependency>

		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>2.0.9</version>
		</dependency>

		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-slf4j-impl</artifactId>
			<version>2.20.0</version>
		</dependency>

		<dependency>
			<groupId>org.json</groupId>
			<artifactId>json</artifactId>
			<version>20240303</version>
		</dependency>

		<dependency>
			<groupId>io.reactivex.rxjava2</groupId>
			<artifactId>rxjava</artifactId>
			<version>2.2.21</version>
		</dependency>

		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.16.1</version>
		</dependency>

		<!-- Imgscalr for resizing images (scaling) -->
		<dependency>
			<groupId>org.imgscalr</groupId>
			<artifactId>imgscalr-lib</artifactId>
			<version>4.2</version>
		</dependency>

		<!-- TwelveMonkeys ImageIO for enhanced image compression and format support -->
		<dependency>
			<groupId>com.twelvemonkeys.imageio</groupId>
			<artifactId>imageio-core</artifactId>
			<version>3.9.4</version>
		</dependency>
		<dependency>
			<groupId>com.twelvemonkeys.imageio</groupId>
			<artifactId>imageio-jpeg</artifactId>
			<version>3.9.4</version>
		</dependency>

		<!-- LangChain Dependencies -->

		<dependency>
			<groupId>dev.langchain4j</groupId>
			<artifactId>langchain4j-core</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>dev.langchain4j</groupId>
			<artifactId>langchain4j</artifactId>
			<exclusions>
				<exclusion>
					<artifactId>jsoup</artifactId>
					<groupId>org.jsoup</groupId>
				</exclusion>
			</exclusions>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>dev.langchain4j</groupId>
			<artifactId>langchain4j-document-parser-apache-tika</artifactId>
			<exclusions>
				<exclusion>
					<artifactId>log4j-api</artifactId>
					<groupId>org.apache.logging.log4j</groupId>
				</exclusion>
			</exclusions>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>dev.langchain4j</groupId>
			<artifactId>langchain4j-document-transformer-jsoup</artifactId>
			<scope>provided</scope>
		</dependency>

		<!-- Storage Dependencies (Optionals) -->
		<dependency>
			<groupId>com.azure</groupId>
			<artifactId>azure-storage-blob</artifactId>
			<version>12.30.0</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>software.amazon.awssdk</groupId>
			<artifactId>s3</artifactId>
			<version>2.31.6</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>com.google.cloud</groupId>
			<artifactId>google-cloud-storage</artifactId>
			<version>2.43.0</version>
			<scope>provided</scope>
		</dependency>

		<!-- Vector Store Dependencies (Optionals) -->
		<dependency>
			<groupId>dev.langchain4j</groupId>
			<artifactId>langchain4j-chroma</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>dev.langchain4j</groupId>
			<artifactId>langchain4j-milvus</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>dev.langchain4j</groupId>
			<artifactId>langchain4j-elasticsearch</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>dev.langchain4j</groupId>
			<artifactId>langchain4j-opensearch</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>dev.langchain4j</groupId>
			<artifactId>langchain4j-pgvector</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>dev.langchain4j</groupId>
			<artifactId>langchain4j-pinecone</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>dev.langchain4j</groupId>
			<artifactId>langchain4j-qdrant</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>dev.langchain4j</groupId>
			<artifactId>langchain4j-azure-ai-search</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>dev.langchain4j</groupId>
			<artifactId>langchain4j-mongodb-atlas</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>dev.langchain4j</groupId>
			<artifactId>langchain4j-weaviate</artifactId>
			<scope>provided</scope>
		</dependency>

		<!-- LangChain4J Community Modules (not included in BOM) -->
		<dependency>
			<groupId>dev.langchain4j</groupId>
			<artifactId>langchain4j-community-alloydb-pg</artifactId>
			<version>${langchain4jCommunityVersion}</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.mule.connectors</groupId>
			<artifactId>mule-file-connector</artifactId>
			<version>1.5.3</version>
			<classifier>mule-plugin</classifier>
			<scope>test</scope>
		</dependency>

	</dependencies>

	<repositories>
		<repository>
			<id>mule-releases</id>
			<name>Nexus Public Releases</name>
			<url>https://repository-master.mulesoft.org/nexus/content/repositories/releases/</url>
		</repository>
		<repository>
			<id>mulesoft-releases</id>
			<name>MuleSoft Releases Repository</name>
			<url>https://repository.mulesoft.org/releases/</url>
			<layout>default</layout>
		</repository>
        <repository>
            <id>central</id>
            <url>https://repo.maven.apache.org/maven2</url>
        </repository>
	</repositories>

	<pluginRepositories>
		<pluginRepository>
			<id>mulesoft-releases</id>
			<name>mulesoft release repository</name>
			<layout>default</layout>
			<url>https://repository.mulesoft.org/releases/</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</pluginRepository>
	</pluginRepositories>

</project>
