helidon icon indicating copy to clipboard operation
helidon copied to clipboard

4.x: Fix Micronaut integration

Open jbescos opened this issue 1 year ago • 8 comments

Description

Using Micronaut 4.x in Helidon 4.x: https://github.com/helidon-io/helidon/issues/7206

Documentation

N/A

A couple of comments:

  1. I had to remove helidon/integrations/micronaut/cdi-processor/src/main/java/module-info.java because there was one issue with Micronaut modules having same packages. I opened an issue: https://github.com/micronaut-projects/micronaut-core/issues/10299 . Anyway, as we use this module for annotation processing there is no real need to have a module-info.
  2. helidon/integrations/micronaut/cdi/src/test/java/io/helidon/integrations/micronaut/cdi/TestBothBean.java is implementing one intrface with default methods and inherited annotations. I had to override the methods and add again the annotations. It seems a bug in Micronaut.

jbescos avatar Jan 12 '24 14:01 jbescos

There is one issue with validation: https://github.com/micronaut-projects/micronaut-core/issues/10370

jbescos avatar Jan 15 '24 09:01 jbescos

There are some unrelated tests failing under helidon/webserver/tests/webserver:

Error: 1,823 [ERROR] Errors: 
Error: 1,823 [ERROR]   OutputStreamAndContentLengthTest.testOutputStreamChunked:81->lambda$testOutputStreamChunked$0:83 » NegativeArraySize -131060
Error: 1,824 [ERROR]   OutputStreamAndContentLengthTest.testOutputStreamOutOfOrder:111->lambda$testOutputStreamOutOfOrder$2:113 » NegativeArraySize -131060
Error: 1,824 [ERROR]   OutputStreamAndContentLengthTest.testOutputStreamWithContentLength:96->lambda$testOutputStreamWithContentLength$1:98 » NegativeArraySize -131060

I don't see Micronaut dependencies:

[INFO] --- dependency:3.6.0:tree (default-cli) @ helidon-weserver-tests-webserver ---
[INFO] io.helidon.webserver.tests:helidon-weserver-tests-webserver:jar:4.0.0-SNAPSHOT
[INFO] +- io.helidon.webserver:helidon-webserver:jar:4.0.0-SNAPSHOT:compile
[INFO] |  +- io.helidon.http:helidon-http:jar:4.0.0-SNAPSHOT:compile
[INFO] |  |  +- io.helidon.common:helidon-common:jar:4.0.0-SNAPSHOT:compile
[INFO] |  |  +- io.helidon.common:helidon-common-configurable:jar:4.0.0-SNAPSHOT:compile
[INFO] |  |  +- io.helidon.common:helidon-common-buffers:jar:4.0.0-SNAPSHOT:compile
[INFO] |  |  +- io.helidon.common:helidon-common-mapper:jar:4.0.0-SNAPSHOT:compile
[INFO] |  |  +- io.helidon.common:helidon-common-media-type:jar:4.0.0-SNAPSHOT:compile
[INFO] |  |  \- io.helidon.common:helidon-common-uri:jar:4.0.0-SNAPSHOT:compile
[INFO] |  |     \- io.helidon.common:helidon-common-parameters:jar:4.0.0-SNAPSHOT:compile
[INFO] |  +- io.helidon.common:helidon-common-socket:jar:4.0.0-SNAPSHOT:compile
[INFO] |  |  +- io.helidon.common:helidon-common-config:jar:4.0.0-SNAPSHOT:compile
[INFO] |  |  \- io.helidon.builder:helidon-builder-api:jar:4.0.0-SNAPSHOT:compile
[INFO] |  +- io.helidon.common:helidon-common-context:jar:4.0.0-SNAPSHOT:compile
[INFO] |  +- io.helidon.common:helidon-common-key-util:jar:4.0.0-SNAPSHOT:compile
[INFO] |  +- io.helidon.common:helidon-common-security:jar:4.0.0-SNAPSHOT:compile
[INFO] |  +- io.helidon.common:helidon-common-task:jar:4.0.0-SNAPSHOT:compile
[INFO] |  +- io.helidon.common:helidon-common-tls:jar:4.0.0-SNAPSHOT:compile
[INFO] |  |  \- io.helidon.config:helidon-config:jar:4.0.0-SNAPSHOT:compile
[INFO] |  |     \- io.helidon.inject:helidon-inject-api:jar:4.0.0-SNAPSHOT:compile
[INFO] |  |        +- io.helidon.common:helidon-common-types:jar:4.0.0-SNAPSHOT:compile
[INFO] |  |        +- io.helidon.logging:helidon-logging-common:jar:4.0.0-SNAPSHOT:compile
[INFO] |  |        \- jakarta.inject:jakarta.inject-api:jar:2.0.1:compile
[INFO] |  +- io.helidon.http.media:helidon-http-media:jar:4.0.0-SNAPSHOT:compile
[INFO] |  +- io.helidon.http.encoding:helidon-http-encoding:jar:4.0.0-SNAPSHOT:compile
[INFO] |  \- io.helidon.common.features:helidon-common-features:jar:4.0.0-SNAPSHOT:compile
[INFO] |     \- io.helidon.common.features:helidon-common-features-api:jar:4.0.0-SNAPSHOT:compile
[INFO] +- io.helidon.webserver.testing.junit5:helidon-webserver-testing-junit5:jar:4.0.0-SNAPSHOT:test
[INFO] |  +- io.helidon.webclient:helidon-webclient:jar:4.0.0-SNAPSHOT:test
[INFO] |  |  +- io.helidon.webclient:helidon-webclient-api:jar:4.0.0-SNAPSHOT:test
[INFO] |  |  \- io.helidon.webclient:helidon-webclient-http1:jar:4.0.0-SNAPSHOT:test
[INFO] |  +- io.helidon.common.testing:helidon-common-testing-http-junit5:jar:4.0.0-SNAPSHOT:test
[INFO] |  |  \- io.helidon.common.testing:helidon-common-testing-junit5:jar:4.0.0-SNAPSHOT:test
[INFO] |  \- io.helidon.config:helidon-config-yaml:jar:4.0.0-SNAPSHOT:test
[INFO] |     \- org.yaml:snakeyaml:jar:2.0:test
[INFO] +- org.junit.jupiter:junit-jupiter-api:jar:5.9.3:test
[INFO] |  +- org.opentest4j:opentest4j:jar:1.2.0:test
[INFO] |  +- org.junit.platform:junit-platform-commons:jar:1.9.3:test
[INFO] |  \- org.apiguardian:apiguardian-api:jar:1.1.2:test
[INFO] +- org.junit.jupiter:junit-jupiter-params:jar:5.9.3:test
[INFO] \- org.hamcrest:hamcrest-all:jar:1.3:test

jbescos avatar Jan 19 '24 05:01 jbescos

@tomas-langer do we still need this change?. I think you said that when we have JPA changes integrated in Helidon we will not require this Micronaut upgrade. I guess we will remove Micronaut integration.

jbescos avatar Apr 29 '24 07:04 jbescos

Hi @jbescos, @tomas-langer , @romain-grecourt I would like to upgrade Helidon from 2.x to 4.x and will need to decide whether need to continue using the Micronaut dependency.

Anyone here can confirm will this fix be release in Helidon 4.x ? Please do let us know hence i can plan accordingly the migration.

ASoftwareProgramer avatar Jul 30 '24 01:07 ASoftwareProgramer

I am solving conflicts so reviewers can move it forward.

jbescos avatar Jul 30 '24 04:07 jbescos

Examples fails as expected. It requires a new PR there

jbescos avatar Aug 07 '24 17:08 jbescos

@romain-grecourt @tomas-langer could you take a look to this PR please?

jbescos avatar Aug 09 '24 15:08 jbescos