350 lines
16 KiB
XML
350 lines
16 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<parent>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-parent</artifactId>
|
|
<version>4.1.0</version>
|
|
<relativePath/> <!-- lookup parent from repository -->
|
|
</parent>
|
|
|
|
<groupId>dev.sonpx.loyalty</groupId>
|
|
<artifactId>loyalty-agent-service</artifactId>
|
|
<version>0.0.1-SNAPSHOT</version>
|
|
<name>loyalty-agent-service</name>
|
|
<description>AI Agent Service to orchestrate Loyalty core system</description>
|
|
|
|
<properties>
|
|
<java.version>25</java.version>
|
|
<spring-ai.version>2.0.0</spring-ai.version>
|
|
</properties>
|
|
|
|
<dependencies>
|
|
<!-- Spring Boot Web -->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-web</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Spring AI Ollama -->
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-starter-model-ollama</artifactId>
|
|
</dependency>
|
|
|
|
<!-- WebClient (needed for generated API client if library is webclient) -->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-webflux</artifactId>
|
|
</dependency>
|
|
|
|
<!-- OAuth2 Client -->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-oauth2-client</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Lombok -->
|
|
<dependency>
|
|
<groupId>org.projectlombok</groupId>
|
|
<artifactId>lombok</artifactId>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- Springdoc OpenAPI -->
|
|
<dependency>
|
|
<groupId>org.springdoc</groupId>
|
|
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
|
|
<version>2.7.0</version>
|
|
</dependency>
|
|
|
|
<!-- Dependencies for generated OpenAPI clients -->
|
|
<dependency>
|
|
<groupId>org.openapitools</groupId>
|
|
<artifactId>jackson-databind-nullable</artifactId>
|
|
<version>0.2.6</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>jakarta.annotation</groupId>
|
|
<artifactId>jakarta.annotation-api</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-validation</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.httpcomponents</groupId>
|
|
<artifactId>httpclient</artifactId>
|
|
<version>4.5.14</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.httpcomponents</groupId>
|
|
<artifactId>httpmime</artifactId>
|
|
<version>4.5.14</version>
|
|
</dependency>
|
|
|
|
<!-- Testing -->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-test</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<dependencyManagement>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.springframework.ai</groupId>
|
|
<artifactId>spring-ai-bom</artifactId>
|
|
<version>${spring-ai.version}</version>
|
|
<type>pom</type>
|
|
<scope>import</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
</dependencyManagement>
|
|
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
|
<configuration>
|
|
<excludes>
|
|
<exclude>
|
|
<groupId>org.projectlombok</groupId>
|
|
<artifactId>lombok</artifactId>
|
|
</exclude>
|
|
</excludes>
|
|
</configuration>
|
|
</plugin>
|
|
<!-- Add generated sources to compile path even when not running gen profile -->
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>build-helper-maven-plugin</artifactId>
|
|
<version>3.5.0</version>
|
|
<executions>
|
|
<execution>
|
|
<id>add-source</id>
|
|
<phase>generate-sources</phase>
|
|
<goals>
|
|
<goal>add-source</goal>
|
|
</goals>
|
|
<configuration>
|
|
<sources>
|
|
<source>${project.build.directory}/generated-sources/openapi/src/main/java</source>
|
|
</sources>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
|
|
<profiles>
|
|
<profile>
|
|
<id>gen</id>
|
|
<build>
|
|
<plugins>
|
|
|
|
<!-- OpenAPI Generator Plugin -->
|
|
<plugin>
|
|
<groupId>org.openapitools</groupId>
|
|
<artifactId>openapi-generator-maven-plugin</artifactId>
|
|
<version>7.23.0</version>
|
|
<configuration>
|
|
<skipValidateSpec>true</skipValidateSpec>
|
|
<typeMappings>
|
|
<MultiValueMapStringString>org.springframework.util.MultiValueMap</MultiValueMapStringString>
|
|
</typeMappings>
|
|
<importMappings>
|
|
<MultiValueMapStringString>org.springframework.util.MultiValueMap</MultiValueMapStringString>
|
|
</importMappings>
|
|
<nameMappings>user_name=user_name_raw,setAttributeId=set_attribute_id_val</nameMappings>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>generate-attribute</id>
|
|
<goals><goal>generate</goal></goals>
|
|
<configuration>
|
|
<inputSpec>${project.basedir}/src/main/resources/specs/attribute.json</inputSpec>
|
|
<generatorName>java</generatorName>
|
|
<library>native</library>
|
|
<apiPackage>dev.sonpx.loyalty.agent.client.api.attribute</apiPackage>
|
|
<modelPackage>dev.sonpx.loyalty.agent.client.model.attribute</modelPackage>
|
|
<generateApiTests>false</generateApiTests>
|
|
<generateModelTests>false</generateModelTests>
|
|
<configOptions>
|
|
<useJakartaEe>true</useJakartaEe>
|
|
<useSpringBoot3>true</useSpringBoot3>
|
|
</configOptions>
|
|
</configuration>
|
|
</execution>
|
|
|
|
<execution>
|
|
<id>generate-catalogue</id>
|
|
<goals><goal>generate</goal></goals>
|
|
<configuration>
|
|
<inputSpec>${project.basedir}/src/main/resources/specs/catalogue.json</inputSpec>
|
|
<generatorName>java</generatorName>
|
|
<library>native</library>
|
|
<apiPackage>dev.sonpx.loyalty.agent.client.api.catalogue</apiPackage>
|
|
<modelPackage>dev.sonpx.loyalty.agent.client.model.catalogue</modelPackage>
|
|
<generateApiTests>false</generateApiTests>
|
|
<generateModelTests>false</generateModelTests>
|
|
<configOptions>
|
|
<useJakartaEe>true</useJakartaEe>
|
|
<useSpringBoot3>true</useSpringBoot3>
|
|
</configOptions>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>generate-customer</id>
|
|
<goals><goal>generate</goal></goals>
|
|
<configuration>
|
|
<inputSpec>${project.basedir}/src/main/resources/specs/customer.json</inputSpec>
|
|
<generatorName>java</generatorName>
|
|
<library>native</library>
|
|
<apiPackage>dev.sonpx.loyalty.agent.client.api.customer</apiPackage>
|
|
<modelPackage>dev.sonpx.loyalty.agent.client.model.customer</modelPackage>
|
|
<generateApiTests>false</generateApiTests>
|
|
<generateModelTests>false</generateModelTests>
|
|
<configOptions>
|
|
<useJakartaEe>true</useJakartaEe>
|
|
<useSpringBoot3>true</useSpringBoot3>
|
|
</configOptions>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>generate-identity</id>
|
|
<goals><goal>generate</goal></goals>
|
|
<configuration>
|
|
<inputSpec>${project.basedir}/src/main/resources/specs/identity.json</inputSpec>
|
|
<generatorName>java</generatorName>
|
|
<library>native</library>
|
|
<apiPackage>dev.sonpx.loyalty.agent.client.api.identity</apiPackage>
|
|
<modelPackage>dev.sonpx.loyalty.agent.client.model.identity</modelPackage>
|
|
<generateApiTests>false</generateApiTests>
|
|
<generateModelTests>false</generateModelTests>
|
|
<configOptions>
|
|
<useJakartaEe>true</useJakartaEe>
|
|
<useSpringBoot3>true</useSpringBoot3>
|
|
</configOptions>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>generate-marketing</id>
|
|
<goals><goal>generate</goal></goals>
|
|
<configuration>
|
|
<inputSpec>${project.basedir}/src/main/resources/specs/marketing.json</inputSpec>
|
|
<generatorName>java</generatorName>
|
|
<library>native</library>
|
|
<apiPackage>dev.sonpx.loyalty.agent.client.api.marketing</apiPackage>
|
|
<modelPackage>dev.sonpx.loyalty.agent.client.model.marketing</modelPackage>
|
|
<generateApiTests>false</generateApiTests>
|
|
<generateModelTests>false</generateModelTests>
|
|
<configOptions>
|
|
<useJakartaEe>true</useJakartaEe>
|
|
<useSpringBoot3>true</useSpringBoot3>
|
|
</configOptions>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>generate-master</id>
|
|
<goals><goal>generate</goal></goals>
|
|
<configuration>
|
|
<inputSpec>${project.basedir}/src/main/resources/specs/master.json</inputSpec>
|
|
<generatorName>java</generatorName>
|
|
<library>native</library>
|
|
<apiPackage>dev.sonpx.loyalty.agent.client.api.master</apiPackage>
|
|
<modelPackage>dev.sonpx.loyalty.agent.client.model.master</modelPackage>
|
|
<generateApiTests>false</generateApiTests>
|
|
<generateModelTests>false</generateModelTests>
|
|
<configOptions>
|
|
<useJakartaEe>true</useJakartaEe>
|
|
<useSpringBoot3>true</useSpringBoot3>
|
|
</configOptions>
|
|
</configuration>
|
|
</execution>
|
|
|
|
<execution>
|
|
<id>generate-reward</id>
|
|
<goals><goal>generate</goal></goals>
|
|
<configuration>
|
|
<inputSpec>${project.basedir}/src/main/resources/specs/reward.json</inputSpec>
|
|
<generatorName>java</generatorName>
|
|
<library>native</library>
|
|
<apiPackage>dev.sonpx.loyalty.agent.client.api.reward</apiPackage>
|
|
<modelPackage>dev.sonpx.loyalty.agent.client.model.reward</modelPackage>
|
|
<generateApiTests>false</generateApiTests>
|
|
<generateModelTests>false</generateModelTests>
|
|
<configOptions>
|
|
<useJakartaEe>true</useJakartaEe>
|
|
<useSpringBoot3>true</useSpringBoot3>
|
|
</configOptions>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>generate-transaction</id>
|
|
<goals><goal>generate</goal></goals>
|
|
<configuration>
|
|
<inputSpec>${project.basedir}/src/main/resources/specs/transaction.json</inputSpec>
|
|
<generatorName>java</generatorName>
|
|
<library>native</library>
|
|
<apiPackage>dev.sonpx.loyalty.agent.client.api.transaction</apiPackage>
|
|
<modelPackage>dev.sonpx.loyalty.agent.client.model.transaction</modelPackage>
|
|
<generateApiTests>false</generateApiTests>
|
|
<generateModelTests>false</generateModelTests>
|
|
<configOptions>
|
|
<useJakartaEe>true</useJakartaEe>
|
|
<useSpringBoot3>true</useSpringBoot3>
|
|
</configOptions>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<!-- Replacer plugin to fix missing import of MultiValueMapStringString in openapi generated code -->
|
|
<plugin>
|
|
<groupId>com.google.code.maven-replacer-plugin</groupId>
|
|
<artifactId>replacer</artifactId>
|
|
<version>1.5.3</version>
|
|
<executions>
|
|
<execution>
|
|
<phase>process-sources</phase>
|
|
<goals>
|
|
<goal>replace</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
<configuration>
|
|
<includes>
|
|
<include>${project.basedir}/target/generated-sources/openapi/src/main/java/**/*Api.java</include>
|
|
</includes>
|
|
<replacements>
|
|
<replacement>
|
|
<token>(?<!\.)MultiValueMapStringString</token>
|
|
<value>dev.sonpx.loyalty.agent.client.model.transaction.MultiValueMapStringString</value>
|
|
</replacement>
|
|
</replacements>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
</profiles>
|
|
|
|
<repositories>
|
|
<repository>
|
|
<id>spring-milestones</id>
|
|
<name>Spring Milestones</name>
|
|
<url>https://repo.spring.io/milestone</url>
|
|
<snapshots>
|
|
<enabled>false</enabled>
|
|
</snapshots>
|
|
</repository>
|
|
</repositories>
|
|
</project>
|