feat: scaffold initial loyalty-agent-service project with OpenAPI specifications and OAuth2-enabled API client configuration
This commit is contained in:
349
pom.xml
Normal file
349
pom.xml
Normal file
@@ -0,0 +1,349 @@
|
||||
<?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>
|
||||
Reference in New Issue
Block a user