Skip to content

Wire AndroidTypeResolverProvider and add ServiceLoader integration tests #83

Description

@MessiasLima

Description

Populate AndroidTypeResolverProvider.createResolvers() with every resolver added to :android in subsequent tickets, and add integration tests verifying ServiceLoader discovery and chain precedence. This ticket establishes the provider and test harness; each resolver ticket wires in its own resolver and extends the integration tests.

  • Scope and constraints

    • Register all resolvers from subsequent tickets in AndroidTypeResolverProvider.createResolvers() returning the full list.
    • Resolvers requiring a strategy receive strategyProvider as first constructor arg; others receive only random.
    • Use Kotlin import aliases to resolve name collisions between Android SDK and Compose resolver packages (e.g., import dev.appoutlet.some.android.resolver.compose.ColorResolver as ComposeColorResolver).
    • Add an integration test class that wires a complete someSetup {} with some-android on the test classpath.
    • Follows the same ServiceLoader discovery pattern documented in docs/custom-resolvers.md.
  • References

Scope

In scope: populating the provider list, integration tests for end-to-end ServiceLoader discovery.
Out of scope: modifying resolver implementations, additional resolvers.

Acceptance criteria

  • AndroidTypeResolverProvider compiles and is annotated with @AutoService(TypeResolverProvider::class)
  • Integration test class exists with a someSetup {} + ResolverChain wired against some-android on the test classpath
  • Integration test verifies some<String>() resolves through the chain (proves the provider is discovered and does not break the chain when returning an empty or partial resolver list)
  • Provider structure is ready for resolver tickets to register their resolvers and add their own integration test cases
  • Tests compile against android.jar with androidx.compose.ui:ui on classpath and run as JVM unit tests

Metadata

Metadata

Assignees

No one assigned

    Labels

    julesJules lives

    Projects

    Status
    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions