This is an automated email from the ASF dual-hosted git repository.
ishan pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/solr-mcp.git
discard 8b46936 Initial commit: Adding the license
new dbd5d48 Initial commit
new fcce032 "Initialize Solr MCP Server project with Spring Boot, Solr,
and Docker Compose setup."
new 67d0aea "Enhance `SearchService` to return results as a structured
map, add films data handling in Solr initialization, and remove unused
dependency in `SolrConfig`."
new c0dbb70 "Replace `record` with a mutable `class` for
`SolrConfigurationProperties`, update property accessors in `SolrConfig`, and
support environment variable substitution in configuration. Add `films.json`
data for Solr initialization."
new aa0f094 "Refactor `SearchService` to return a typed `SearchResponse`
record, update associated tests for streamlined access to search results and
facets."
new 7e0edf2 "Clean up unused constants and intermediate map in
`SearchService`, simplify facet and document handling for clarity and
efficiency."
new 5dcd75a "Introduce `IndexingService` and `CollectionService` for Solr
operations, add tests for `CollectionService`, refactor `SearchService` for
modularity, and update `application.properties` for consistency."
new 6fba8c6 fix: failing tests
new fa62f83 "Remove `JavaConferencesIntegrationTest`, unused test
resources, and redundant code from service and test classes for cleanup."
new f35e2b7 "Add pagination support to `SearchService`, refactor facet
and document extraction methods, and enhance test coverage for nested
structures and special cases."
new a89657a "Expand test coverage for `IndexingService` and
`SearchService`, including JSON input handling, error scenarios, field
sanitization, indexing edge cases, and search facet behavior."
new 2717275 "Add `SchemaService` for schema operations, update `Main` to
include `SchemaService` in tool callbacks."
new bc8469a "Add health check and stats methods to `CollectionService`,
integrate `ObjectMapper`, and introduce `SolrHealthStatus` model for health
reporting."
new 94521fb "Refactor `CollectionService` to enhance collection stats
retrieval, introduce utility methods in `Utils`, and update DTOs for metric and
stats representation. Add comprehensive test cases for `CollectionService` and
collection stats."
new acf257c "Remove unused helper methods `getString` and `getDouble`
from `Utils` for cleanup and improved maintainability."
new 705f831 "Add javadoc comments for utility methods in `Utils` and
services, enhance documentation for `SearchService`, and expand
`CollectionServiceTest` with health check tests. Include project overview in
`README`."
new f75a049 Add extensive Javadoc documentation covering key classes,
services, methods, and utility enhancements to improve code clarity and
maintainability.
new ed87339 Remove unused `Logger` from `CollectionService` for cleanup
and improved readability.
new e5d9a9d Remove unused `Logger` from `CollectionService` for cleanup
and improved readability.
new 48a5294 Add `spring.ai.mcp.server.stdio` property to
application.properties for configuration clarity.
new 5f3f4f2 Integrate SonarQube and JaCoCo for code quality and test
coverage analysis.
new 4013a69 Merge pull request #1 from adityamparikh/jacoco
new 864946c Add SonarQube plugin and configure task dependencies for
quality analysis
new 82173a7 Merge pull request #2 from adityamparikh/jacoco
new 124ed74 Configure SonarQube project key in `build.gradle.kts` for
project identification.
new db3c61f Merge pull request #3 from adityamparikh/jacoco
new 1ab3af2 Configure SonarQube project key in `build.gradle.kts` for
project identification.
new f733cac Merge pull request #4 from adityamparikh/jacoco
new 0903dde Claude PR Assistant workflow
new 7d64da9 Claude Code Review workflow
new 5ed0668 Merge pull request #5 from
adityamparikh/add-claude-github-actions-1751856476168
new cc661f4 Add GitHub Actions workflow for SonarQube analysis and
upgrade SonarQube plugin version to `6.2.0.5505`.
new a1fba66 Refactor and simplify GitHub Actions workflows for Claude
integration, including renaming jobs and streamlining prompts.
new 6ea7428 Add GitHub Actions workflow for SonarQube analysis and
upgrade SonarQube plugin version to `6.2.0.5505`.
new aae88e9 Merge remote-tracking branch 'origin/jacoco' into jacoco
new 8e394ac Merge pull request #6 from adityamparikh/jacoco
new c85d34a Refactor codebase: remove debug statements, streamline
constants, and improve method reusability across services and tests.
new c2d1c6b fix sonar violation - increase test coverage
new 7786998 Merge pull request #8 from adityamparikh/jacoco
new 988d41a fix: sonar violation
new b9171d4 Merge pull request #9 from adityamparikh/jacoco
new 6906e5e Use Jetty HttpClient instead of Apache HttpClient
new c3cf7b4 Merge pull request #10 from dsmiley/UseJettyHttpClient
new 093c22e Refactor `indexDocuments` to `indexJsonDocuments`, add
support for CSV indexing, and update related tests and docs.
new 5772718 Merge pull request #13 from adityamparikh/index-csv
new b61cf7c feat: add IndexingDocumentCreator service for schema-less
document creation from JSON and CSV
new 6ae93ed feat: add XML indexing support to IndexingService with
schema-less document creation and comprehensive test coverage
new 1be5c45 feat: improve SolrCloud initialization with ZooKeeper
readiness checks and resilient collection creation
new cbbdbd7 feat: enhance XML indexing with increased security,
validation, and improved error handling
new f9adf2f refactor: replace `SortClause` with map-based configuration
for sorting in `SearchService`
new f98974d feat: implement schema-less document creation for CSV, JSON,
and XML formats with dedicated processing utilities
new 61f21f7 feat: enhance XML document processing to support flexible
structure handling and multiple child elements as separate documents
new c58e5bb refactor: reorganize packages for improved structure and
modularity
new dae452a feat: enhance field name sanitization in CSV and XML document
creators to handle leading/trailing and multiple underscores
new ff8148f feat: introduce FieldNameSanitizer utility for consistent
field name sanitization across document creators
new 3436373 feat: introduce FieldNameSanitizer utility for consistent
field name sanitization across document creators
new 6980391 feat: add input size validation for CSV and JSON document
creators
new fd5b537 feat: update document creators to throw
DocumentProcessingException for error handling and input validation
new 142e6d7 feat: introduce DocumentProcessingException for improved
error handling in document creators
new 3e7eb2d feat: change DocumentProcessingException to extend
RuntimeException and update tests accordingly
new ecd68fc feat: integrate JSpecify Error Prone and NullAway for
enhanced null safety analysis
new 370a7ab feat: remove default field name handling in sanitizeFieldName
method
new a55ce2c feat: add integration tests for CollectionService and enhance
unit tests
new 1c9eb53 feat: add ClientStdio and SampleClient for MCP server
interaction and validation
new 375465b feat: add ClientStdio and SampleClient for MCP server
interaction and validation
new 2be559f Merge pull request #16 from adityamparikh/indexing-formats
new dffabea feat: refactor build.gradle.kts to use version catalog for
dependency management
new 1ef2b80 docs: update README.md to specify Gradle version and enhance
build instructions
new fe1a9e1 Merge pull request #17 from adityamparikh/version-catalogs
new cb4d165 feat: add script enhancements for films collection setup in
Solr
new fdbae79 Merge pull request #18 from adityamparikh/films
new 99aa36f feat: update author and version information in Java files
new b701a46 feat: update author and version information in Java files
new e774a00 Merge pull request #19 from adityamparikh/author
new 4aaf4aa refactor: remove unused SolrConfigurationProperties from
services and tests
new 11a042f refactor: clean up import statements in service and test
classes
new 5e8c786 Merge pull request #22 from adityamparikh/web
new 7ece3d5 feat: add support for STDIO and SSE transport modes in Solr
MCP server
new 30586d1 Merge pull request #23 from adityamparikh/web
new 441d6d0 test: fix tests. Use TestcontainersConfiguration. Use
constants
new b3a41fb test: fix tests. Use TestcontainersConfiguration. Use
constants
new f51b360 feat: remove lombok and refactor DTOs to use Java records for
improved immutability
new 0bdc6c1 test: expand CollectionServiceTest coverage with additional
health, cache, handler, and collection tests
new 5a28f26 Merge pull request #25 from
adityamparikh/testcontainers-testconfig
new 75c40bd feat: upgrade Java toolchain to 25, Gradle to 8.14.3
new fe6a200 feat: upgrade spring-ai to 1.1.0-M3
new 33e6ebc feat: upgrade spring-ai to 1.1.0-M3
new bd4932e feat: update Gradle wrapper to 9.1.0 and Java requirement to
25
new a4b6317 feat: http mode upgrade
new 4f361b3 Merge pull request #26 from adityamparikh/spring-ai-upgrade
new 5705037 docs: update README to replace SSE with HTTP mode and
highlight relevant security measures
new f698bd6 docs: update README to replace SSE with HTTP mode and
highlight relevant security measures
new 66a4ed9 Merge pull request #27 from adityamparikh/spring-ai-upgrade
new acb36a9 feat: add Apache License 2.0 header to multiple Java files
new 1fdf7da feat: remove SonarQube plugin and related configurations from
build files
new b9b89ab Merge pull request #29 from adityamparikh/license
new c6714c4 feat: update Solr dependency to version 9.9.0 and remove
SonarQube plugin
new cda37f2 Merge pull request #30 from adityamparikh/initial
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (8b46936)
\
N -- N -- N refs/heads/main (cda37f2)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 98 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.editorconfig | 11 +
.gitattributes | 3 +
.github/workflows/build.yml | 36 +
.github/workflows/claude-code-review.yml | 38 +
.github/workflows/claude.yml | 36 +
.gitignore | 37 +
.run/SolrMcpServerHttp.run.xml | 11 +
.run/SolrMcpServerStdio.run.xml | 11 +
LICENSE.txt | 226 -
README.md | 455 +
build.gradle.kts | 80 +
compose.yaml | 28 +
gradle/libs.versions.toml | 82 +
gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43764 bytes
gradle/wrapper/gradle-wrapper.properties | 7 +
gradlew | 251 +
gradlew.bat | 94 +
images/claude-stdio.png | Bin 0 -> 121955 bytes
images/mcp-inspector-http.png | Bin 0 -> 140994 bytes
images/mcp-inspector-stdio.png | Bin 0 -> 231878 bytes
init-solr.sh | 103 +
mydata/books.csv | 11 +
mydata/books.xml | 116 +
mydata/films.json | 29030 +++++++++++++++++++
settings.gradle.kts | 1 +
sonar-project.properties | 12 +
src/main/java/org/apache/solr/mcp/server/Main.java | 121 +
.../apache/solr/mcp/server/config/SolrConfig.java | 156 +
.../server/config/SolrConfigurationProperties.java | 95 +
.../solr/mcp/server/indexing/IndexingService.java | 352 +
.../documentcreator/CsvDocumentCreator.java | 121 +
.../DocumentProcessingException.java | 68 +
.../documentcreator/FieldNameSanitizer.java | 102 +
.../documentcreator/IndexingDocumentCreator.java | 120 +
.../documentcreator/JsonDocumentCreator.java | 207 +
.../documentcreator/SolrDocumentCreator.java | 92 +
.../documentcreator/XmlDocumentCreator.java | 292 +
.../mcp/server/metadata/CollectionService.java | 919 +
.../solr/mcp/server/metadata/CollectionUtils.java | 199 +
.../org/apache/solr/mcp/server/metadata/Dtos.java | 405 +
.../solr/mcp/server/metadata/SchemaService.java | 172 +
.../org/apache/solr/mcp/server/package-info.java | 20 +
.../solr/mcp/server/search/SearchResponse.java | 114 +
.../solr/mcp/server/search/SearchService.java | 272 +
src/main/resources/application-http.properties | 5 +
src/main/resources/application-stdio.properties | 7 +
src/main/resources/application.properties | 7 +
.../org/apache/solr/mcp/server/ClientHttp.java | 30 +
.../org/apache/solr/mcp/server/ClientStdio.java | 43 +
.../java/org/apache/solr/mcp/server/MainTest.java | 54 +
.../solr/mcp/server/McpToolRegistrationTest.java | 227 +
.../org/apache/solr/mcp/server/SampleClient.java | 202 +
.../mcp/server/TestcontainersConfiguration.java | 39 +
.../solr/mcp/server/config/SolrConfigTest.java | 171 +
.../solr/mcp/server/indexing/CsvIndexingTest.java | 150 +
.../server/indexing/IndexingServiceDirectTest.java | 213 +
.../mcp/server/indexing/IndexingServiceTest.java | 1038 +
.../solr/mcp/server/indexing/XmlIndexingTest.java | 495 +
.../metadata/CollectionServiceIntegrationTest.java | 254 +
.../mcp/server/metadata/CollectionServiceTest.java | 907 +
.../mcp/server/metadata/CollectionUtilsTest.java | 312 +
.../metadata/SchemaServiceIntegrationTest.java | 174 +
.../mcp/server/metadata/SchemaServiceTest.java | 146 +
.../mcp/server/search/SearchServiceDirectTest.java | 291 +
.../solr/mcp/server/search/SearchServiceTest.java | 717 +
src/test/resources/sample-data/books.csv | 11 +
66 files changed, 39773 insertions(+), 226 deletions(-)
create mode 100644 .editorconfig
create mode 100644 .gitattributes
create mode 100644 .github/workflows/build.yml
create mode 100644 .github/workflows/claude-code-review.yml
create mode 100644 .github/workflows/claude.yml
create mode 100644 .gitignore
create mode 100644 .run/SolrMcpServerHttp.run.xml
create mode 100644 .run/SolrMcpServerStdio.run.xml
delete mode 100644 LICENSE.txt
create mode 100644 README.md
create mode 100644 build.gradle.kts
create mode 100644 compose.yaml
create mode 100644 gradle/libs.versions.toml
create mode 100644 gradle/wrapper/gradle-wrapper.jar
create mode 100644 gradle/wrapper/gradle-wrapper.properties
create mode 100755 gradlew
create mode 100644 gradlew.bat
create mode 100644 images/claude-stdio.png
create mode 100644 images/mcp-inspector-http.png
create mode 100644 images/mcp-inspector-stdio.png
create mode 100755 init-solr.sh
create mode 100644 mydata/books.csv
create mode 100644 mydata/books.xml
create mode 100644 mydata/films.json
create mode 100644 settings.gradle.kts
create mode 100644 sonar-project.properties
create mode 100644 src/main/java/org/apache/solr/mcp/server/Main.java
create mode 100644
src/main/java/org/apache/solr/mcp/server/config/SolrConfig.java
create mode 100644
src/main/java/org/apache/solr/mcp/server/config/SolrConfigurationProperties.java
create mode 100644
src/main/java/org/apache/solr/mcp/server/indexing/IndexingService.java
create mode 100644
src/main/java/org/apache/solr/mcp/server/indexing/documentcreator/CsvDocumentCreator.java
create mode 100644
src/main/java/org/apache/solr/mcp/server/indexing/documentcreator/DocumentProcessingException.java
create mode 100644
src/main/java/org/apache/solr/mcp/server/indexing/documentcreator/FieldNameSanitizer.java
create mode 100644
src/main/java/org/apache/solr/mcp/server/indexing/documentcreator/IndexingDocumentCreator.java
create mode 100644
src/main/java/org/apache/solr/mcp/server/indexing/documentcreator/JsonDocumentCreator.java
create mode 100644
src/main/java/org/apache/solr/mcp/server/indexing/documentcreator/SolrDocumentCreator.java
create mode 100644
src/main/java/org/apache/solr/mcp/server/indexing/documentcreator/XmlDocumentCreator.java
create mode 100644
src/main/java/org/apache/solr/mcp/server/metadata/CollectionService.java
create mode 100644
src/main/java/org/apache/solr/mcp/server/metadata/CollectionUtils.java
create mode 100644 src/main/java/org/apache/solr/mcp/server/metadata/Dtos.java
create mode 100644
src/main/java/org/apache/solr/mcp/server/metadata/SchemaService.java
create mode 100644 src/main/java/org/apache/solr/mcp/server/package-info.java
create mode 100644
src/main/java/org/apache/solr/mcp/server/search/SearchResponse.java
create mode 100644
src/main/java/org/apache/solr/mcp/server/search/SearchService.java
create mode 100644 src/main/resources/application-http.properties
create mode 100644 src/main/resources/application-stdio.properties
create mode 100644 src/main/resources/application.properties
create mode 100644 src/test/java/org/apache/solr/mcp/server/ClientHttp.java
create mode 100644 src/test/java/org/apache/solr/mcp/server/ClientStdio.java
create mode 100644 src/test/java/org/apache/solr/mcp/server/MainTest.java
create mode 100644
src/test/java/org/apache/solr/mcp/server/McpToolRegistrationTest.java
create mode 100644 src/test/java/org/apache/solr/mcp/server/SampleClient.java
create mode 100644
src/test/java/org/apache/solr/mcp/server/TestcontainersConfiguration.java
create mode 100644
src/test/java/org/apache/solr/mcp/server/config/SolrConfigTest.java
create mode 100644
src/test/java/org/apache/solr/mcp/server/indexing/CsvIndexingTest.java
create mode 100644
src/test/java/org/apache/solr/mcp/server/indexing/IndexingServiceDirectTest.java
create mode 100644
src/test/java/org/apache/solr/mcp/server/indexing/IndexingServiceTest.java
create mode 100644
src/test/java/org/apache/solr/mcp/server/indexing/XmlIndexingTest.java
create mode 100644
src/test/java/org/apache/solr/mcp/server/metadata/CollectionServiceIntegrationTest.java
create mode 100644
src/test/java/org/apache/solr/mcp/server/metadata/CollectionServiceTest.java
create mode 100644
src/test/java/org/apache/solr/mcp/server/metadata/CollectionUtilsTest.java
create mode 100644
src/test/java/org/apache/solr/mcp/server/metadata/SchemaServiceIntegrationTest.java
create mode 100644
src/test/java/org/apache/solr/mcp/server/metadata/SchemaServiceTest.java
create mode 100644
src/test/java/org/apache/solr/mcp/server/search/SearchServiceDirectTest.java
create mode 100644
src/test/java/org/apache/solr/mcp/server/search/SearchServiceTest.java
create mode 100644 src/test/resources/sample-data/books.csv