diff --git a/src/main/java/org/apache/solr/mcp/server/collection/CollectionService.java b/src/main/java/org/apache/solr/mcp/server/collection/CollectionService.java index aac8d277..438839dd 100644 --- a/src/main/java/org/apache/solr/mcp/server/collection/CollectionService.java +++ b/src/main/java/org/apache/solr/mcp/server/collection/CollectionService.java @@ -56,7 +56,7 @@ import org.springframework.ai.mcp.annotation.McpToolParam; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Service; -import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.json.JsonMapper; /** * Spring Service providing comprehensive Solr collection management and monitoring capabilities for @@ -265,7 +265,7 @@ public class CollectionService { /** SolrJ client for communicating with Solr server */ private final SolrClient solrClient; - private final ObjectMapper objectMapper; + private final JsonMapper objectMapper; /** * Constructs a new CollectionService with the required dependencies. @@ -274,11 +274,11 @@ public class CollectionService { * application startup. * * @param solrClient the SolrJ client instance for communicating with Solr - * @param objectMapper the Jackson ObjectMapper for JSON serialization + * @param objectMapper the Jackson JsonMapper for JSON serialization * @see SolrClient * @see SolrConfigurationProperties */ - public CollectionService(SolrClient solrClient, ObjectMapper objectMapper) { + public CollectionService(SolrClient solrClient, JsonMapper objectMapper) { this.solrClient = solrClient; this.objectMapper = objectMapper; } diff --git a/src/main/java/org/apache/solr/mcp/server/config/JsonResponseParser.java b/src/main/java/org/apache/solr/mcp/server/config/JsonResponseParser.java index 79c440c4..09d27051 100644 --- a/src/main/java/org/apache/solr/mcp/server/config/JsonResponseParser.java +++ b/src/main/java/org/apache/solr/mcp/server/config/JsonResponseParser.java @@ -30,7 +30,7 @@ import org.springframework.http.MediaType; import tools.jackson.core.JacksonException; import tools.jackson.databind.JsonNode; -import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.json.JsonMapper; /** * SolrJ {@link ResponseParser} that requests JSON wire format ({@code wt=json}) and converts the @@ -64,9 +64,9 @@ */ class JsonResponseParser extends ResponseParser { - private final ObjectMapper mapper; + private final JsonMapper mapper; - JsonResponseParser(ObjectMapper mapper) { + JsonResponseParser(JsonMapper mapper) { this.mapper = mapper; } diff --git a/src/main/java/org/apache/solr/mcp/server/config/SolrConfig.java b/src/main/java/org/apache/solr/mcp/server/config/SolrConfig.java index 45737c77..48df20e6 100644 --- a/src/main/java/org/apache/solr/mcp/server/config/SolrConfig.java +++ b/src/main/java/org/apache/solr/mcp/server/config/SolrConfig.java @@ -25,7 +25,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.util.StringUtils; -import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.json.JsonMapper; /** * Spring Configuration class for Apache Solr client setup and connection management. @@ -158,7 +158,7 @@ SolrClient solrClient( * @return the JSON response parser */ @Bean - JsonResponseParser jsonResponseParser(ObjectMapper objectMapper) { + JsonResponseParser jsonResponseParser(JsonMapper objectMapper) { return new JsonResponseParser(objectMapper); } diff --git a/src/main/java/org/apache/solr/mcp/server/indexing/documentcreator/JsonDocumentCreator.java b/src/main/java/org/apache/solr/mcp/server/indexing/documentcreator/JsonDocumentCreator.java index 62080b8c..c48145d4 100644 --- a/src/main/java/org/apache/solr/mcp/server/indexing/documentcreator/JsonDocumentCreator.java +++ b/src/main/java/org/apache/solr/mcp/server/indexing/documentcreator/JsonDocumentCreator.java @@ -24,7 +24,7 @@ import org.springframework.stereotype.Component; import tools.jackson.core.JacksonException; import tools.jackson.databind.JsonNode; -import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.json.JsonMapper; /** * Utility class for processing JSON documents and converting them to SolrInputDocument objects. @@ -35,14 +35,14 @@ @Component public class JsonDocumentCreator implements SolrDocumentCreator { - private final ObjectMapper objectMapper; + private final JsonMapper objectMapper; /** - * Constructs the creator with the Jackson {@link ObjectMapper} used to parse incoming JSON. + * Constructs the creator with the Jackson {@link JsonMapper} used to parse incoming JSON. * * @param objectMapper the JSON parser injected by Spring */ - public JsonDocumentCreator(ObjectMapper objectMapper) { + public JsonDocumentCreator(JsonMapper objectMapper) { this.objectMapper = objectMapper; } diff --git a/src/main/java/org/apache/solr/mcp/server/indexing/documentcreator/SolrDocumentCreator.java b/src/main/java/org/apache/solr/mcp/server/indexing/documentcreator/SolrDocumentCreator.java index dd4e4de7..9e6479f1 100644 --- a/src/main/java/org/apache/solr/mcp/server/indexing/documentcreator/SolrDocumentCreator.java +++ b/src/main/java/org/apache/solr/mcp/server/indexing/documentcreator/SolrDocumentCreator.java @@ -46,7 +46,7 @@ *

Usage Example: * *

{@code
- * SolrDocumentCreator creator = new JsonDocumentCreator(new ObjectMapper());
+ * SolrDocumentCreator creator = new JsonDocumentCreator(JsonMapper.builder().build());
  * String jsonData = "[{\"title\":\"Document 1\",\"content\":\"Content here\"}]";
  * List documents = creator.create(jsonData);
  * }
diff --git a/src/main/java/org/apache/solr/mcp/server/schema/SchemaService.java b/src/main/java/org/apache/solr/mcp/server/schema/SchemaService.java index cda33227..c7bb39d8 100644 --- a/src/main/java/org/apache/solr/mcp/server/schema/SchemaService.java +++ b/src/main/java/org/apache/solr/mcp/server/schema/SchemaService.java @@ -42,7 +42,7 @@ import org.springframework.ai.mcp.annotation.McpToolParam; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Service; -import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.json.JsonMapper; /** * Spring Service providing schema introspection and management capabilities for Apache Solr @@ -122,7 +122,7 @@ public class SchemaService { /** SolrJ client for communicating with Solr server */ private final SolrClient solrClient; - private final ObjectMapper objectMapper; + private final JsonMapper objectMapper; /** * Constructs a new SchemaService with the required dependencies. @@ -132,10 +132,10 @@ public class SchemaService { * operations. * * @param solrClient the SolrJ client instance for communicating with Solr - * @param objectMapper the Jackson ObjectMapper for JSON serialization + * @param objectMapper the Jackson JsonMapper for JSON serialization * @see SolrClient */ - public SchemaService(SolrClient solrClient, ObjectMapper objectMapper) { + public SchemaService(SolrClient solrClient, JsonMapper objectMapper) { this.solrClient = solrClient; this.objectMapper = objectMapper; } diff --git a/src/test/java/org/apache/solr/mcp/server/McpClientIntegrationTestBase.java b/src/test/java/org/apache/solr/mcp/server/McpClientIntegrationTestBase.java index bacd8506..7d153d2a 100644 --- a/src/test/java/org/apache/solr/mcp/server/McpClientIntegrationTestBase.java +++ b/src/test/java/org/apache/solr/mcp/server/McpClientIntegrationTestBase.java @@ -47,7 +47,6 @@ import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.TestMethodOrder; import tools.jackson.core.type.TypeReference; -import tools.jackson.databind.ObjectMapper; import tools.jackson.databind.json.JsonMapper; /** @@ -69,7 +68,7 @@ public abstract class McpClientIntegrationTestBase { */ protected static final int SHOWS_DOC_COUNT = 61; - protected static final ObjectMapper OBJECT_MAPPER = JsonMapper.builder().build(); + protected static final JsonMapper OBJECT_MAPPER = JsonMapper.builder().build(); @AutoClose @SuppressWarnings("NotNullFieldNotInitialized") // set by beforeAll() diff --git a/src/test/java/org/apache/solr/mcp/server/TestDocuments.java b/src/test/java/org/apache/solr/mcp/server/TestDocuments.java index 9bec38e8..d0c22def 100644 --- a/src/test/java/org/apache/solr/mcp/server/TestDocuments.java +++ b/src/test/java/org/apache/solr/mcp/server/TestDocuments.java @@ -20,7 +20,6 @@ import java.util.Map; import tools.jackson.core.JacksonException; import tools.jackson.core.type.TypeReference; -import tools.jackson.databind.ObjectMapper; import tools.jackson.databind.json.JsonMapper; /** @@ -30,7 +29,7 @@ */ public final class TestDocuments { - private static final ObjectMapper OBJECT_MAPPER = JsonMapper.builder().build(); + private static final JsonMapper OBJECT_MAPPER = JsonMapper.builder().build(); private static final TypeReference>> DOCUMENTS = new TypeReference<>() {}; diff --git a/src/test/java/org/apache/solr/mcp/server/config/SolrConfigAuthTest.java b/src/test/java/org/apache/solr/mcp/server/config/SolrConfigAuthTest.java index 2efa4036..e4624628 100644 --- a/src/test/java/org/apache/solr/mcp/server/config/SolrConfigAuthTest.java +++ b/src/test/java/org/apache/solr/mcp/server/config/SolrConfigAuthTest.java @@ -33,7 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.json.JsonTest; import org.springframework.util.ReflectionUtils; -import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.json.JsonMapper; /** * Unit tests for the optional HTTP Basic Authentication wiring performed by {@link SolrConfig}. @@ -49,7 +49,7 @@ @DisabledInNativeImage class SolrConfigAuthTest { - @Autowired private ObjectMapper objectMapper; + @Autowired private JsonMapper objectMapper; @Test void noCredentialsWhenBothMissing() throws Exception { diff --git a/src/test/java/org/apache/solr/mcp/server/indexing/documentcreator/JsonDocumentCreatorTest.java b/src/test/java/org/apache/solr/mcp/server/indexing/documentcreator/JsonDocumentCreatorTest.java index bcd3024f..ff7e968a 100644 --- a/src/test/java/org/apache/solr/mcp/server/indexing/documentcreator/JsonDocumentCreatorTest.java +++ b/src/test/java/org/apache/solr/mcp/server/indexing/documentcreator/JsonDocumentCreatorTest.java @@ -26,7 +26,6 @@ import java.util.TreeMap; import org.apache.solr.common.SolrInputDocument; import org.junit.jupiter.api.Test; -import tools.jackson.databind.ObjectMapper; import tools.jackson.databind.json.JsonMapper; /** @@ -37,7 +36,7 @@ */ class JsonDocumentCreatorTest { - private final ObjectMapper objectMapper = JsonMapper.builder().build(); + private final JsonMapper objectMapper = JsonMapper.builder().build(); private final JsonDocumentCreator creator = new JsonDocumentCreator(objectMapper); diff --git a/src/test/java/org/apache/solr/mcp/server/observability/LgtmAssertions.java b/src/test/java/org/apache/solr/mcp/server/observability/LgtmAssertions.java index 6559b386..c2039ef7 100644 --- a/src/test/java/org/apache/solr/mcp/server/observability/LgtmAssertions.java +++ b/src/test/java/org/apache/solr/mcp/server/observability/LgtmAssertions.java @@ -24,7 +24,7 @@ import org.springframework.web.client.RestClient; import org.testcontainers.grafana.LgtmStackContainer; import tools.jackson.databind.JsonNode; -import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.json.JsonMapper; /** * Helper class to query LGTM stack backends (Tempo, Prometheus, Loki). @@ -53,11 +53,11 @@ public class LgtmAssertions { private final LgtmStackContainer lgtm; - private final ObjectMapper objectMapper; + private final JsonMapper objectMapper; private final RestClient restClient; - public LgtmAssertions(LgtmStackContainer lgtm, ObjectMapper objectMapper) { + public LgtmAssertions(LgtmStackContainer lgtm, JsonMapper objectMapper) { this.lgtm = lgtm; this.objectMapper = objectMapper; this.restClient = RestClient.create(); diff --git a/src/test/java/org/apache/solr/mcp/server/observability/OtlpExportIntegrationTest.java b/src/test/java/org/apache/solr/mcp/server/observability/OtlpExportIntegrationTest.java index b7491544..13da7172 100644 --- a/src/test/java/org/apache/solr/mcp/server/observability/OtlpExportIntegrationTest.java +++ b/src/test/java/org/apache/solr/mcp/server/observability/OtlpExportIntegrationTest.java @@ -42,7 +42,7 @@ import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import tools.jackson.databind.JsonNode; -import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.json.JsonMapper; /** * Integration test verifying that observability signals (traces, metrics, logs) are exported via @@ -100,7 +100,7 @@ class OtlpExportIntegrationTest { @Autowired private SolrClient solrClient; - @Autowired private ObjectMapper objectMapper; + @Autowired private JsonMapper objectMapper; @BeforeAll static void setUpCollection(@Autowired SolrClient solrClient) throws Exception { diff --git a/src/test/java/org/apache/solr/mcp/server/schema/SchemaServiceTest.java b/src/test/java/org/apache/solr/mcp/server/schema/SchemaServiceTest.java index d36670ef..a4b5ba3e 100644 --- a/src/test/java/org/apache/solr/mcp/server/schema/SchemaServiceTest.java +++ b/src/test/java/org/apache/solr/mcp/server/schema/SchemaServiceTest.java @@ -38,7 +38,7 @@ import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.json.JsonMapper; /** * Comprehensive test suite for the SchemaService class. Tests schema retrieval functionality with @@ -50,7 +50,7 @@ class SchemaServiceTest { @Mock private SolrClient solrClient; - @Mock private ObjectMapper objectMapper; + @Mock private JsonMapper objectMapper; private SchemaService schemaService; @@ -213,8 +213,8 @@ void addFieldTypes_emptyList_throws() { @Test void addFieldTypes_happyPathWithAnalyzer_buildsCorrectFieldTypeDefinition() throws Exception { - // Use a real ObjectMapper so convertValue actually works - ObjectMapper realMapper = new ObjectMapper(); + // Use a real JsonMapper so convertValue actually works + JsonMapper realMapper = JsonMapper.builder().build(); SchemaService service = new SchemaService(solrClient, realMapper); List> types = @@ -244,7 +244,7 @@ void addFieldTypes_happyPathWithAnalyzer_buildsCorrectFieldTypeDefinition() thro @Test void addFieldTypes_separateAnalyzers_buildsCorrectFieldTypeDefinition() throws Exception { - ObjectMapper realMapper = new ObjectMapper(); + JsonMapper realMapper = JsonMapper.builder().build(); SchemaService service = new SchemaService(solrClient, realMapper); List> types = @@ -284,7 +284,7 @@ void addFieldTypes_separateAnalyzers_buildsCorrectFieldTypeDefinition() throws E @Test void addFieldTypes_denseVectorField_noAnalyzer() throws Exception { - ObjectMapper realMapper = new ObjectMapper(); + JsonMapper realMapper = JsonMapper.builder().build(); SchemaService service = new SchemaService(solrClient, realMapper); List> types = @@ -310,7 +310,7 @@ void addFieldTypes_denseVectorField_noAnalyzer() throws Exception { @Test void addFieldTypes_solrThrows_propagates() throws Exception { - ObjectMapper realMapper = new ObjectMapper(); + JsonMapper realMapper = JsonMapper.builder().build(); SchemaService service = new SchemaService(solrClient, realMapper); when(solrClient.request(any(SolrRequest.class), eq("col"))) @@ -331,7 +331,7 @@ void addFieldTypes_solrThrows_propagates() throws Exception { */ @Test void addFieldTypes_analyzerWithOnlyClassKey_preservesClassInWireFormat() throws Exception { - ObjectMapper realMapper = new ObjectMapper(); + JsonMapper realMapper = JsonMapper.builder().build(); SchemaService service = new SchemaService(solrClient, realMapper); List> types =