micronaut-projects/micronaut-core

Verify that modules work properly with Micronaut 3.0

ilopmar opened this issue · 2 comments

We need to upgrade all modules to Micronaut 3.0 and release new major versions of them.

To do the upgrade:

  • Upgrade Micronaut version in the module to Micronaut 3.0.0-M2 (or any release after it)
  • Use Micronaut nullability annotations
  • Switch to Jakarta annotations.
  • Change javax.inject.Provider to io.micronaut.context.BeanProvider
  • If the module has an RxJava dependency add a dependency on implementation 'io.projectreactor:reactor-core' and switch to it (look for RxJava2 - Reactor equivalences in #5583). Public interfaces should not expose reactor types but Publisher.
  • Upgrade to Gradle 7
  • Upgrade to the latest version on the build plugins (currently 4.0.0) and docs (2.0.0.RC1)
  • Review the annotations in this PR #5643 and modify the module accordingly
  • Review @Introspected classes. If the annotation is there for GraalVM, then replace it with @ReflectiveAccess. If not, just add @ReflectiveAccess/@TypeHint.
  • Release a new major Milestone version of the module that targets Micronaut 3.0.x branch in core.
  • When Micronaut 3.0 is released we need to upgrade the module with 3.0.0 (instead of the M or RC version) and release a new patch version targeting next Micronaut 3 patch release (theoretically 3.0.1)

Legend:

Symbol Status
Upgraded to Micronaut 3
✳️ Upgrade to Micronaut 3 in progress, waiting on some dependency
Doesn't work with Micronaut 3
Hasn't been tested with Micronaut 3
☑️ Not Applicable

The upgrade PRs are mostly to see the changes required for the upgrade, so that when they want to move ahead, don't need to start from scratch. PRs that are failing are marked as draft to prevent merges.

Micronaut version in the following tables is the current Micronaut version used in master branch

Data Access

Module Micronaut version Status Upgrade PR Issues Additional comments
Data 3.0.0-M5 3.0.0-RC1
MongoDB 3.0.0-M4 4.0.0-M2
Neo4j Configuration 3.0.0-M4 5.0.0-RC1
Redis 3.0.0-M4 5.0.0-M1
SQL / JDBC 2.5.8 micronaut-projects/micronaut-sql#469 4.0.0-RC4
Cassandra 3.0.0-M4
R2DBC 2.5.9 micronaut-projects/micronaut-r2dbc#139 2.0.0-RC2

Database Migration

Module Micronaut version Status Upgrade PR Issues Additional comments
Flyway 2.5.9 Released 4.0.0
Liquibase 2.5.9 Released 4.0.0

Analytics

Module Micronaut version Status Upgrade PR Issues Additional comments
ElasticSearch 3.0.0-M4 3.0.0-M1
JMX 3.0.0-M2 3.0.0-RC2
Micrometer 3.0.0-M4 4.0.0-RC2

Views

Module Micronaut version Status Upgrade PR Issues Additional comments
RSS Configuration 3.0.0-M4 3.0.0-M1
Views 3.0.0-M4 ✳️ ❗️#251

Languages

Module Micronaut version Status Upgrade PR Issues Additional comments
Groovy 3.0.0-RC1 3.0.0
Kotlin 3.0.0-M4 https://youtrack.jetbrains.com/issue/KT-47444 3.0.0-RC1

Reactive

Module Micronaut version Status Upgrade PR Issues Additional comments
Reactor 3.0.0-M4 2.0.0-M1
RxJava 2 3.0.0-M4 New module targeting Micronaut 3.0 for users that want to keep using RxJava2 with Micronaut 3.x. 1.0.0-M1
RxJava 3 3.0.0-M4 2.0.0-M1

Misc

Module Micronaut version Status Upgrade PR Issues Additional comments
Cache 3.0.0-M3 3.0.0-RC2
Hibernate Validator 2.4.4
Picocli 3.0.0-M4 4.0.0-RC1
Security 3.0.0-M4 3.0.0-M2
Test 3.0.0-M4 3.0.0-RC2
ACME 2.5.8 3.0.0-RC1

Messaging

Module Micronaut version Status Upgrade PR Issues Additional comments
Kafka 3.0.0-M4 4.0.0-RC2
RabbitMQ 3.0.0-M4 3.0.0-RC2
NATS 3.0.0-M4 3.0.0-M2
MQTT 3.0.0-M4 2.0.0-RC1
JMS 3.0.0-M4 2.0.0-M1

Cloud

Module Micronaut version Status Upgrade PR Issues Additional comments
AWS 3.0.0-M4 ✳️ ❗️Failing Test #1138)
GCP 3.0.0-M4 4.0.0-RC1
Azure 3.0.0-M4 3.0.0-M1
Oracle Cloud 3.0.0-M4 2.0.0-RC1
Discovery Client 3.0.0-M4 3.0.0-M2
Kubernetes 3.0.0-M5

API

Module Micronaut version Status Upgrade PR Issues Additional comments
Servlet 3.0.0-M4 3.0.0-RC1
GRPC 2.5.7 3.0.0-RC2
GraphQL 3.0.0-M4 3.0.0-M1
JAX-RS 3.0.0-M4 3.0.0-M1
Jackson XML 3.0.0-M4 3.0.0-M1
Open API 2.5.9 3.0.0
Spring 3.0.0-M4 4.0.0-RC2
Multitenancy 2.5.8 4.0.0-M1
Problem JSON 3.0.0-M4 2.0.0-M2

Community & WIP

Module Micronaut version Status Upgrade PR Issues Additional comments
Ignite 2.0.1
Pulsar 2.4.4
Camel 2.0.2
Coherence 2.5.0
Couchbase 2.0.2

@micronaut-projects/core-developers after upgrading all the modules to Micronaut 3.0.0-RC1, the following still fail:

I've also upgraded Micrometer but not 100% if that was the proper fix: micronaut-projects/micronaut-micrometer#284

@ilopmar micronaut-coherence seems to be using micronautVersion = '3.0.1' already along with
Gradle 7.1, and build plugin 4.1.1