This is an automated email from the ASF dual-hosted git repository.

epugh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr-mcp.git


The following commit(s) were added to refs/heads/main by this push:
     new 48966a2  fix(indexing): inject Spring ObjectMapper in 
JsonDocumentCreator (#101)
48966a2 is described below

commit 48966a2dd9c3d0ac2bef921a1a8c5fab832ed6a9
Author: Aditya Parikh <[email protected]>
AuthorDate: Fri May 8 17:00:36 2026 -0400

    fix(indexing): inject Spring ObjectMapper in JsonDocumentCreator (#101)
    
    Replace per-call `new ObjectMapper()` allocation in
    JsonDocumentCreator.create() with a Spring-injected instance.
    ObjectMapper is expensive to create and thread-safe, so reusing the
    Spring-managed singleton improves performance and ensures consistent
    Jackson configuration across the application.
    
    Signed-off-by: adityamparikh <[email protected]>
    Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
---
 .../mcp/server/indexing/documentcreator/JsonDocumentCreator.java | 9 +++++++--
 .../mcp/server/indexing/documentcreator/SolrDocumentCreator.java | 2 +-
 .../solr/mcp/server/indexing/IndexingServiceIntegrationTest.java | 3 ++-
 3 files changed, 10 insertions(+), 4 deletions(-)

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 1a8a149..e21a356 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
@@ -41,6 +41,12 @@ public class JsonDocumentCreator implements 
SolrDocumentCreator {
 
        private static final int MAX_INPUT_SIZE_BYTES = 10 * 1024 * 1024;
 
+       private final ObjectMapper objectMapper;
+
+       public JsonDocumentCreator(ObjectMapper objectMapper) {
+               this.objectMapper = objectMapper;
+       }
+
        /**
         * Creates a list of schema-less SolrInputDocument objects from a JSON 
string.
         *
@@ -111,8 +117,7 @@ public class JsonDocumentCreator implements 
SolrDocumentCreator {
                List<SolrInputDocument> documents = new ArrayList<>();
 
                try {
-                       ObjectMapper mapper = new ObjectMapper();
-                       JsonNode rootNode = mapper.readTree(json);
+                       JsonNode rootNode = this.objectMapper.readTree(json);
 
                        if (rootNode.isArray()) {
                                for (JsonNode item : rootNode) {
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 2e24077..5761fed 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
@@ -56,7 +56,7 @@ import org.apache.solr.common.SolrInputDocument;
  * <strong>Usage Example:</strong>
  *
  * <pre>{@code
- * SolrDocumentCreator creator = new JsonDocumentCreator();
+ * SolrDocumentCreator creator = new JsonDocumentCreator(new ObjectMapper());
  * String jsonData = "[{\"title\":\"Document 1\",\"content\":\"Content 
here\"}]";
  * List<SolrInputDocument> documents = creator.create(jsonData);
  * }</pre>
diff --git 
a/src/test/java/org/apache/solr/mcp/server/indexing/IndexingServiceIntegrationTest.java
 
b/src/test/java/org/apache/solr/mcp/server/indexing/IndexingServiceIntegrationTest.java
index 93a5b98..933e668 100644
--- 
a/src/test/java/org/apache/solr/mcp/server/indexing/IndexingServiceIntegrationTest.java
+++ 
b/src/test/java/org/apache/solr/mcp/server/indexing/IndexingServiceIntegrationTest.java
@@ -70,7 +70,8 @@ class IndexingServiceIntegrationTest {
                // Boot test
                XmlDocumentCreator xmlDocumentCreator = new 
XmlDocumentCreator();
                CsvDocumentCreator csvDocumentCreator = new 
CsvDocumentCreator();
-               JsonDocumentCreator jsonDocumentCreator = new 
JsonDocumentCreator();
+               JsonDocumentCreator jsonDocumentCreator = new 
JsonDocumentCreator(
+                               new 
com.fasterxml.jackson.databind.ObjectMapper());
 
                indexingDocumentCreator = new 
IndexingDocumentCreator(xmlDocumentCreator, csvDocumentCreator,
                                jsonDocumentCreator);

Reply via email to