json-io-spring-ai-toon
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>com.cedarsoftware</groupId>
<artifactId>json-io-spring-ai-toon</artifactId>
<version>4.110.0</version>
</dependency><?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.cedarsoftware</groupId>
<artifactId>json-io-parent</artifactId>
<version>4.110.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>json-io-spring-ai-toon</artifactId>
<packaging>jar</packaging>
<name>json-io-spring-ai-toon</name>
<description>Spring AI TOON integration for json-io - provides ToolCallResultConverter and StructuredOutputConverter using TOON format for LLM-optimized serialization</description>
<!--
Compiled against the FLOOR (Spring Boot 3.4 / Spring 6.2, Spring AI 1.1); Spring and Spring AI are
PROVIDED so the host application supplies them at ITS version — json-io forces no version onto
consumers. Spring Boot versions come from the spring-boot-dependencies BOM (${spring-boot.bom},
default = floor); Spring AI is not in that BOM, so spring-ai-model is pinned to its own floor.
This module's auto-config uses only stable Boot APIs (@AutoConfiguration, @ConditionalOn*,
@ConfigurationProperties — no web auto-config), so a single artifact runs on both Spring Boot 3.x
AND 4.x: `mvn test` (floor 3.4), `-Pspring-ceiling` (3.5.x), `-Pspring-boot4` (4.1 / Spring 7).
-->
<properties>
<spring-boot.floor>3.4.13</spring-boot.floor> <!-- Spring 6.2 -->
<spring-boot.ceiling>3.5.14</spring-boot.ceiling> <!-- latest Boot 3.5.x, still Spring 6.2 (via -Pspring-ceiling) -->
<spring-boot.boot4>4.1.0</spring-boot.boot4> <!-- Spring Boot 4 / Spring 7 runtime check (via -Pspring-boot4) -->
<spring-boot.bom>${spring-boot.floor}</spring-boot.bom>
<spring-ai.floor>1.1.7</spring-ai.floor>
<spring-ai.ceiling>1.1.7</spring-ai.ceiling>
<spring-ai.version>${spring-ai.floor}</spring-ai.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.bom}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- json-io core -->
<dependency>
<groupId>com.cedarsoftware</groupId>
<artifactId>json-io</artifactId>
<version>${project.version}</version>
</dependency>
<!-- Spring Boot — PROVIDED, BOM-managed to the floor -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<!-- Spring AI Model — PROVIDED: the host application supplies this at its version -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-model</artifactId>
<version>${spring-ai.version}</version>
<scope>provided</scope>
</dependency>
<!-- Test dependencies (BOM-managed to the floor) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${version.maven-compiler-plugin}</version>
<configuration>
<release>17</release>
<testRelease>17</testRelease>
<encoding>${project.build.sourceEncoding}</encoding>
<parameters>true</parameters>
</configuration>
</plugin>
<!-- Required for Maven Central deployment -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<profiles>
<!-- Forward-compatibility test run: build + test against the CEILING (latest Spring Boot 3.5.x)
instead of the floor. Usage: mvn test -Pspring-ceiling -->
<profile>
<id>spring-ceiling</id>
<properties>
<spring-boot.bom>${spring-boot.ceiling}</spring-boot.bom>
<spring-ai.version>${spring-ai.ceiling}</spring-ai.version>
</properties>
</profile>
<!-- Spring Boot 4 / Spring 7 RUNTIME check. This module has no web auto-config and its tests use
ApplicationContextRunner (no Boot test slices), so the full suite runs against Boot 4 with no
exclusions. Usage: mvn clean test -Pspring-boot4 (JDK 17+). -->
<profile>
<id>spring-boot4</id>
<properties>
<spring-boot.bom>${spring-boot.boot4}</spring-boot.bom>
</properties>
</profile>
</profiles>
</project>