Skip to content

feat(collection): add alias management tools (list, create, delete) - #214

Merged
epugh merged 10 commits into
apache:mainfrom
adityamparikh:sync/alias-management
Oct 6, 2026
Merged

epugh merged 10 commits into
apache:mainfrom
adityamparikh:sync/alias-management

Conversation

@adityamparikh

Copy link
Copy Markdown
Contributor

Rebases #159 onto current main to resolve its merge conflict. All alias-management work here is @y-luis-rojo's — this PR only carries their branch forward past main's drift since they opened it, so it can actually merge.

What changed vs. #159

Only the one conflict, in SolrNativeHints.java: main's #164 renamed MCP_RESPONSE_RECORDS to MCP_TOOL_RECORDS after #159 branched off. Resolved by keeping main's name and adding AliasResult to the (now renamed) list, matching what #159 already registered under the old name. No other files conflicted — AliasResult, AliasService, and their tests are untouched from #159.

Original PR description (#159)

feat(collection): add alias management tools (list, create, delete)

Verification

  • ./gradlew build (JDK 25): 438/438 tests pass, 0 skipped, 0 failures
  • AliasServiceTest, AliasServiceIntegrationTest, SolrNativeHintsTest all green

Closes nothing automatically — leaving #159 open for @y-luis-rojo and @epugh to decide which to merge; happy to close this in favor of #159 once it's rebased, or to close #159 in favor of this one, whichever is easier.

🤖 Generated with Claude Code

Luis Rojo and others added 10 commits June 22, 2026 12:17
create-alias destructive and idempotent.
Added tests.
Updated documentation.
- Derive success from response.getStatus() instead of hardcoding true
- Add @jsonformat to AliasResult timestamp for ISO 8601 consistency
- Use separate TEST_COLLECTION_2 in integration test update scenario
The Build job runs './gradlew classes testClasses spotlessCheck' as a
fail-fast gate, and spotlessJavaCheck rejected the new alias files for
indentation (spaces where the project's format expects tabs). Because
Unit Tests and Integration Tests are gated behind Build, this single
formatting miss blocked the entire pipeline.

No functional change - output of './gradlew spotlessApply'.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: adityamparikh <aditya.m.parikh@gmail.com>
createAlias_multipleAliasesCanExist (@order(5)) asserted that TEST_ALIAS
still pointed at TEST_COLLECTION, but createAlias_updatesExistingAlias
(@order(4)) had already repointed it to TEST_COLLECTION_2 - and asserts
that it did. The expectation therefore contradicted the preceding test
and failed deterministically:

    AliasServiceIntegrationTest > createAlias_multipleAliasesCanExist()
    FAILED java.lang.AssertionError at AliasServiceIntegrationTest.java:119

AliasService itself is correct; only the test expectation was stale.

Rather than just correcting the expected value, this makes the test
assert solely on aliases it creates itself, so it no longer depends on
what an earlier test left TEST_ALIAS pointing at. TEST_ALIAS_2 is still
left in place for the deletion tests that follow; TEST_ALIAS_3 is this
test's own fixture and is cleaned up in the test.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: adityamparikh <aditya.m.parikh@gmail.com>
fix(alias): resolve CI failures on apache#159 (spotless + stale test expectation)
Resolves the merge conflict from apache#164's rename of MCP_RESPONSE_RECORDS
to MCP_TOOL_RECORDS in SolrNativeHints.java: keeps upstream's renamed
list and adds AliasResult to it. No other conflicts.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: Aditya Parikh <aditya.m.parikh@gmail.com>
@epugh
epugh merged commit 77e9688 into apache:main Oct 6, 2026
1 check passed
adityamparikh added a commit to adityamparikh/solr-mcp that referenced this pull request Oct 6, 2026
Brings in apache#195 apache#200 apache#207 apache#212 apache#214 apache#215 apache#221 apache#230 apache#231 apache#233 apache#234 apache#235
apache#238 apache#239 apache#242 apache#243 apache#244 apache#247 and apache#191 apache#192, keeping the Spring Boot 4.1 /
Spring AI 2.0 / Jackson 3 / Boot OTel starter line.

Resolutions beyond the textual conflicts:

- libs.versions.toml: keep sb4's plugin versions, add main's
  changelog-plugin.
- build.gradle.kts (nativeTest args): keep sb4's removal of the manual
  org.junit.platform.* build-time init (GraalVM plugin >= 0.11 does it),
  take main's -H:IncludeResources=shows-markdown\.md.
- buildSrc: cyclonedx-core-java 10.2.1 -> 13.1.0, the version the
  cyclonedx 3.4.1 plugin uses. apache#247 pinned it to match plugin 2.4.1; the
  older model on buildSrc's classpath shadowed the plugin's and failed
  cyclonedxDirectBom (no Version.VERSION_17).
- AliasService (apache#214): MCP annotations from org.springframework.ai.mcp.
- ShowsSampleDataTest (apache#207): Jackson 3 JsonMapper.
- Tests from apache#195/apache#207/apache#212: add the explicit Assertions static imports
  sb4 uses in place of main's wildcard.
- docs/observability.md: rewrite apache#230's Boot 3 text (gRPC 4317, one
  shared endpoint, OTel-semconv metric names, /actuator/prometheus,
  kebab-case span names) for OTLP/HTTP per-signal URLs, Micrometer
  metrics in milliseconds and ClassName#method spans.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: Aditya Parikh <aditya.m.parikh@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants