Skip to content

Conversation

@osoykan
Copy link
Collaborator

@osoykan osoykan commented Nov 21, 2025

Copilot AI review requested due to automatic review settings November 21, 2025 14:21
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR converts the kediatR project from a JVM-only library to a Kotlin Multiplatform library, enabling support for JVM, JS, and Native platforms. The conversion involves:

  • Migrating core modules to Kotlin Multiplatform with platform-specific implementations
  • Converting Java reflection to Kotlin reflection with platform-specific adapters
  • Updating dependency injection integrations (Koin, Spring, Quarkus) to use KClass instead of Java Class
  • Creating a new kediatr-testing module to replace test fixtures
  • Implementing platform-specific concurrency and dispatcher utilities

Key Changes

  • Core library now supports JVM, JS (IR), iOS, macOS, Linux, and Windows (mingw) platforms
  • Platform-specific implementations for reflection, concurrency, and coroutine dispatchers
  • API changes from Class<T> to KClass<T> across all dependency providers
  • Test infrastructure migrated from JUnit to kotlin.test for multiplatform compatibility

Reviewed changes

Copilot reviewed 47 out of 58 changed files in this pull request and generated no comments.

Show a summary per file
File Description
build.gradle.kts Added KMP configuration with platform-specific setup for core and koin-starter modules
settings.gradle.kts Added kediatr-testing module inclusion
projects/kediatr-core/build.gradle.kts Converted to KMP with multiple target platforms defined
projects/kediatr-core/src/commonMain/kotlin/* Core library interfaces and implementations migrated to common code
projects/kediatr-core/src/jvmMain/kotlin/* JVM-specific reflection and platform implementations
projects/kediatr-core/src/jsMain/kotlin/* JS-specific reflection stubs (limited functionality)
projects/kediatr-core/src/nativeMain/kotlin/* Native-specific reflection stubs and concurrency adapters
projects/kediatr-testing/* New testing module with multiplatform test utilities
projects/kediatr-koin-starter/* Migrated to KMP with updated API using KClass
projects/kediatr-spring-boot--starter/ Updated to use KClass API with Java interop
projects/kediatr-quarkus-starter/* Updated to use KClass API with Java interop
kotlin-js-store/yarn.lock Auto-generated JS dependency lockfile

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@osoykan osoykan marked this pull request as draft November 21, 2025 14:51
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.

2 participants