Skip to content

Remove the deprecated DoclingServeApiBuilderFactory SPI and related types #697

Description

@edeandrea

#696 replaced the DoclingServeApiBuilderFactory SPI with DoclingServeApiProvider and deprecated the old types for removal in 0.7.0, keeping a fallback so existing implementations keep working. This issue tracks removing them.

Before removing

  • At least one minor release has shipped with the deprecation, so no earlier than 0.8.0.
  • Known third-party implementations, such as the Quarkus integration, have moved to DoclingServeApiProvider.

docling-serve-api

  • Delete ai.docling.serve.api.spi.DoclingServeApiBuilderFactory, and its uses clause in module-info.java.
  • Delete DoclingServeApi.DoclingApiBuilder and DoclingServeApi.toBuilder().
  • Delete LegacyProviderAdapter and LegacyProviderAdapterTests.
  • DoclingServeApiProviders: remove the legacy fallback, the warning logged when both SPIs are present, and the "(or of the deprecated …)" part of the no-provider message. Update DoclingServeApiProvidersTests and DoclingServeApiTests.
  • Update the Javadoc of DoclingServeApi.builder(), which describes the fallback.
  • TestApis.StubDoclingServeApi: remove its toBuilder() override.

docling-serve-client

  • Delete DoclingServeClientBuilderFactory and DoclingServeClientBuilderFactoryTests. The Jackson detection lives in DoclingServeClient.builder().
  • DoclingServeClientBuilder: drop implements DoclingApiBuilder<C, B> and the @Override annotations of its setters. The setters themselves stay.
  • Keep DoclingServeJackson2Client.toBuilder() and DoclingServeJackson3Client.toBuilder(), which return the concrete builder and aren't deprecated, but drop their @Override.
  • Tests calling DoclingServeApi.toBuilder() (DoclingServeJackson2ClientTests, DoclingServeJackson3ClientTests, AbstractDoclingServeClientAsyncExecutorTests, which show [removal] warnings today) should use config().toBuilder() or the concrete client type.
  • AbstractDoclingServeClientConfigTests.toBuilderKeepsEverySetting and toBuilderKeepsFollowingRedirects call toBuilder() on a DoclingServeClient, which resolves to the deprecated DoclingServeApi.toBuilder() (warnings suppressed). They test the copy constructor, so they must call toBuilder() on the concrete client type, not config().toBuilder().

Both modules

  • Remove every @SuppressWarnings("removal") that only existed for these types, in main and test code.

Docs

  • serve-api-provider-migration.md: remove the Compatibility section on the fallback, or retire the page if it's no longer useful.
  • serve-api.md: remove the "Migrating from DoclingServeApiBuilderFactory" subsection.
  • CLAUDE.md: remove the mention of the fallback.
  • whats-new.md: add a "Breaking" entry for the removal.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions