Micronaut Application Framework

Overview

Micronaut

Build Status

Micronaut is a modern, JVM-based, full stack Java framework designed for building modular, easily testable JVM applications with support for Java, Kotlin and the Groovy language.

Micronaut is developed by the creators of the Grails framework and takes inspiration from lessons learnt over the years building real-world applications from monoliths to microservices using Spring, Spring Boot and Grails.

Micronaut aims to provide all the tools necessary to build JVM applications including:

  • Dependency Injection and Inversion of Control (IoC)
  • Aspect Oriented Programming (AOP)
  • Sensible Defaults and Auto-Configuration

With Micronaut you can build Message-Driven Applications, Command Line Applications, HTTP Servers and more whilst for Microservices in particular Micronaut also provides:

  • Distributed Configuration
  • Service Discovery
  • HTTP Routing
  • Client-Side Load Balancing

At the same time Micronaut aims to avoid the downsides of frameworks like Spring, Spring Boot and Grails by providing:

  • Fast startup time
  • Reduced memory footprint
  • Minimal use of reflection
  • Minimal use of proxies
  • No runtime bytecode generation
  • Easy Unit Testing

This is achieved by pre-computing the framework infrastructure at compilation time which reduces the logic required at runtime for the application to work.

For more information on using Micronaut see the documentation at micronaut.io

Example Applications

Example Micronaut applications can be found in the Examples repository

Building From Source

To build from source checkout the code and run:

./gradlew publishToMavenLocal

This will publish the current version to your local Maven cache. To get the CLI operational you can do:

export MICRONAUT_HOME=/path/to/checkout
export PATH="$PATH:$MICRONAUT_HOME/cli/build/bin"

You will also need to checkout the Micronaut Profiles and run ./gradlew publishToMavenLocal there too.

You should then be able to mn create-app hello-world.

To build the documentation run ./gradlew docs. The documentation is built to build/docs/index.html.

Contributing Code

If you wish to contribute to the development of Micronaut please read the CONTRIBUTING.md

Versioning

Micronaut is using Semantic Versioning 2.0.0. To understand what that means, please see the specification documentation. Exclusions to Micronaut's public API include any classes annotated with @Experimental or @Internal, which reside in the io.micronaut.core.annotation package.

CI

Github Actions are used to build Micronaut. If a build fails in master, check the test reports.

Comments
  • Micronaut 2: Http client read timeouts errors

    Micronaut 2: Http client read timeouts errors

    Not sure exactly what is going on but getting a lot of those when deployed. I saw there was some issue regarding HTTP2 but this the same code as in 1.3. I have tried different stuff but cannot reproduce locally.

    i.m.h.c.e.ReadTimeoutException: Read Timeout
    	at i.m.h.c.e.ReadTimeoutException.<clinit>(ReadTimeoutException.java:26)
    	at i.m.h.c.n.DefaultHttpClient.lambda$null$35(DefaultHttpClient.java:1152)
    	at i.r.i.o.f.FlowableOnErrorNext$OnErrorNextSubscriber.onError(FlowableOnErrorNext.java:103)
    	at i.m.r.r.RxInstrumentedSubscriber.onError(RxInstrumentedSubscriber.java:66)
    	at i.r.i.o.f.FlowableTimeoutTimed$TimeoutSubscriber.onTimeout(FlowableTimeoutTimed.java:139)
    	at i.r.i.o.f.FlowableTimeoutTimed$TimeoutTask.run(FlowableTimeoutTimed.java:170)
    	at i.r.i.s.ScheduledRunnable.run(ScheduledRunnable.java:66)
    	at i.r.i.s.ScheduledRunnable.call(ScheduledRunnable.java:57)
    	at j.u.c.FutureTask.run(FutureTask.java:264)
    	at j.u.c.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
    	at j.u.c.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    	at j.u.c.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    	at java.lang.Thread.run(Thread.java:834)
    
    status: pr submitted 
    opened by dstepanov 48
  • Add API to make it easier to write method interceptors and support Kotlin suspend functions

    Add API to make it easier to write method interceptors and support Kotlin suspend functions

    Added util classes to work with Kotlin's suspend functions in MethodInterceptors and implemented to use it with @Retryable.

    It should be possible to implement other interceptors like https://github.com/micronaut-projects/micronaut-cache/issues/183.

    Personally I'm not a Kotlin user just found it interesting.

    type: enhancement 
    opened by dstepanov 45
  • Integrating with Spring Cloud Config Server

    Integrating with Spring Cloud Config Server

    I want to migrate some of the applications I have written with Spring Boot but I would like to keep using the config servers I have. Looking at the documentation, I found this: "Alternatively one can register a PropertySourceLoader by creating a META-INF/services/io.micronaut.context.env.PropertySourceLoader containing a reference to the class name of the PropertySourceLoader".

    I am creating my own spring config server client for Micronaut to read the properties from the config server, should I just go with my own implementation of PropertySourceLoader or should I follow the same approach used for Eureka and Consul in the discovery-client module?

    help wanted status: pr submitted 
    opened by thiagolocatelli 45
  • Bean definition [io.micronaut.discovery.eureka.EurekaConfiguration] could not be loaded: Failed to inject value for parameter [embeddedServer] of class: io.micronaut.discovery.eureka.EurekaConfiguration$EurekaRegistrationConfiguration

    Bean definition [io.micronaut.discovery.eureka.EurekaConfiguration] could not be loaded: Failed to inject value for parameter [embeddedServer] of class: io.micronaut.discovery.eureka.EurekaConfiguration$EurekaRegistrationConfiguration

    After the suggestion given at #4276, I have upgraded the version of Micronaut to 2.1.0 which has fixed the issue. But now I am facing another issue.

    `Bean definition [io.micronaut.discovery.eureka.EurekaConfiguration] could not be loaded: Failed to inject value for parameter [embeddedServer] of class: io.micronaut.discovery.eureka.EurekaConfiguration$EurekaRegistrationConfiguration

    Message: No bean of type [io.micronaut.runtime.server.EmbeddedServer] exists. Make sure the bean is not disabled by bean requirements (enable trace logging for 'io.micronaut.context.condition' to check) and if the bean is enabled then ensure the class is declared a bean and annotation processing is enabled (for Java and Kotlin the 'micronaut-inject-java' dependency should be configured as an annotation processor). Path Taken: new EurekaConfiguration(EurekaConnectionPoolConfiguration eurekaConnectionPoolConfiguration,ApplicationConfiguration applicationConfiguration,[EurekaRegistrationConfiguration eurekaRegistrationConfiguration]) --> new EurekaRegistrationConfiguration([EmbeddedServer embeddedServer],ApplicationConfiguration applicationConfiguration,DataCenterInfo dataCenterInfo,String appName,String hostname,Integer port,String ipAddr,String instanceId,Boolean preferIpAddress): io.micronaut.context.exceptions.BeanInstantiationException io.micronaut.context.exceptions.BeanInstantiationException: Bean definition [io.micronaut.discovery.eureka.EurekaConfiguration] could not be loaded: Failed to inject value for parameter [embeddedServer] of class: io.micronaut.discovery.eureka.EurekaConfiguration$EurekaRegistrationConfiguration

    Message: No bean of type [io.micronaut.runtime.server.EmbeddedServer] exists. Make sure the bean is not disabled by bean requirements (enable trace logging for 'io.micronaut.context.condition' to check) and if the bean is enabled then ensure the class is declared a bean and annotation processing is enabled (for Java and Kotlin the 'micronaut-inject-java' dependency should be configured as an annotation processor). Path Taken: new EurekaConfiguration(EurekaConnectionPoolConfiguration eurekaConnectionPoolConfiguration,ApplicationConfiguration applicationConfiguration,[EurekaRegistrationConfiguration eurekaRegistrationConfiguration]) --> new EurekaRegistrationConfiguration([EmbeddedServer embeddedServer],ApplicationConfiguration applicationConfiguration,DataCenterInfo dataCenterInfo,String appName,String hostname,Integer port,String ipAddr,String instanceId,Boolean preferIpAddress) at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1549) at io.micronaut.context.DefaultApplicationContext.initializeContext(DefaultApplicationContext.java:220) at io.micronaut.context.DefaultBeanContext.readAllBeanDefinitionClasses(DefaultBeanContext.java:2780) at io.micronaut.context.DefaultBeanContext.start(DefaultBeanContext.java:233) at io.micronaut.context.DefaultApplicationContext.start(DefaultApplicationContext.java:166) at io.micronaut.function.executor.AbstractExecutor.startEnvironment(AbstractExecutor.java:125) at io.micronaut.function.executor.StreamFunctionExecutor.execute(StreamFunctionExecutor.java:80) at io.micronaut.function.aws.MicronautRequestStreamHandler.handleRequest(MicronautRequestStreamHandler.java:54) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) Caused by: io.micronaut.context.exceptions.DependencyInjectionException: Failed to inject value for parameter [embeddedServer] of class: io.micronaut.discovery.eureka.EurekaConfiguration$EurekaRegistrationConfiguration

    Message: No bean of type [io.micronaut.runtime.server.EmbeddedServer] exists. Make sure the bean is not disabled by bean requirements (enable trace logging for 'io.micronaut.context.condition' to check) and if the bean is enabled then ensure the class is declared a bean and annotation processing is enabled (for Java and Kotlin the 'micronaut-inject-java' dependency should be configured as an annotation processor). Path Taken: new EurekaConfiguration(EurekaConnectionPoolConfiguration eurekaConnectionPoolConfiguration,ApplicationConfiguration applicationConfiguration,[EurekaRegistrationConfiguration eurekaRegistrationConfiguration]) --> new EurekaRegistrationConfiguration([EmbeddedServer embeddedServer],ApplicationConfiguration applicationConfiguration,DataCenterInfo dataCenterInfo,String appName,String hostname,Integer port,String ipAddr,String instanceId,Boolean preferIpAddress) at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:1035) at io.micronaut.discovery.eureka.$EurekaConfiguration$EurekaRegistrationConfigurationDefinition.build(Unknown Source) at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1898) at io.micronaut.context.DefaultBeanContext.createAndRegisterSingletonInternal(DefaultBeanContext.java:2647) at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2633) at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2305) at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2279) at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1245) at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:1013) at io.micronaut.discovery.eureka.$EurekaConfigurationDefinition.build(Unknown Source) at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1898) at io.micronaut.context.DefaultBeanContext.createAndRegisterSingletonInternal(DefaultBeanContext.java:2647) at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2633) at io.micronaut.context.DefaultBeanContext.loadContextScopeBean(DefaultBeanContext.java:2172) at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1543) ... 11 more Caused by: io.micronaut.context.exceptions.NoSuchBeanException: No bean of type [io.micronaut.runtime.server.EmbeddedServer] exists. Make sure the bean is not disabled by bean requirements (enable trace logging for 'io.micronaut.context.condition' to check) and if the bean is enabled then ensure the class is declared a bean and annotation processing is enabled (for Java and Kotlin the 'micronaut-inject-java' dependency should be configured as an annotation processor). at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2290) at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1245) at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:1013) ... 25 more

    `

    status: example attached 
    opened by mutyasaisrikar 38
  • ByteBuf.release() was not called while doing a multipart upload

    ByteBuf.release() was not called while doing a multipart upload

    Task List

    • [x] Steps to reproduce provided
    • [x] Stacktrace (if present) provided
    • [x] Example that reproduces the problem uploaded to Github
    • [x] Full description of the issue provided (see below)

    Steps to Reproduce

    1. Clone https://github.com/gemvision/micronaut_image_test
    2. Set env var:
      • ACCESS_KEY_ID for aws s3
      • SECRET_KEY_ID for aws s3
      • S3_BUCKET
      • S3_REGION
    3. Run the micronaut_image_test project
    4. Try to upload a large number of video files, for example: for i in {0..300}; do curl --location --request POST 'http://localhost:8080/image/upload' --form 'file=@"/path/Videos/SampleVideo_1280x720_20mb.mp4"' -v & done

    Expected Behaviour

    All files should be uploaded to s3.

    Actual Behaviour

    Memory leak. Stacktrace:

    2021-01-21T16:58:40.680743+00:00 app[web.1]: 16:58:40.680 [default-nioEventLoopGroup-1-3] ERROR io.netty.util.ResourceLeakDetector - LEAK: ByteBuf.release() was not called before it's garbage-collected. See https://netty.io/wiki/reference-counted-objects.html for more information.
    2021-01-21T16:58:40.680755+00:00 app[web.1]: Recent access records:
    2021-01-21T16:58:40.680755+00:00 app[web.1]: Created at:
    2021-01-21T16:58:40.680756+00:00 app[web.1]: io.netty.buffer.PooledByteBufAllocator.newDirectBuffer(PooledByteBufAllocator.java:385)
    2021-01-21T16:58:40.680757+00:00 app[web.1]: io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:187)
    2021-01-21T16:58:40.680757+00:00 app[web.1]: io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:178)
    2021-01-21T16:58:40.680757+00:00 app[web.1]: io.netty.buffer.AbstractByteBufAllocator.buffer(AbstractByteBufAllocator.java:115)
    2021-01-21T16:58:40.680758+00:00 app[web.1]: io.netty.handler.codec.http.multipart.HttpPostMultipartRequestDecoder.offer(HttpPostMultipartRequestDecoder.java:338)
    2021-01-21T16:58:40.680759+00:00 app[web.1]: io.netty.handler.codec.http.multipart.HttpPostMultipartRequestDecoder.offer(HttpPostMultipartRequestDecoder.java:52)
    2021-01-21T16:58:40.680759+00:00 app[web.1]: io.netty.handler.codec.http.multipart.HttpPostRequestDecoder.offer(HttpPostRequestDecoder.java:223)
    2021-01-21T16:58:40.680760+00:00 app[web.1]: io.micronaut.http.server.netty.FormDataHttpContentProcessor.onData(FormDataHttpContentProcessor.java:113)
    2021-01-21T16:58:40.680760+00:00 app[web.1]: io.micronaut.http.server.netty.AbstractHttpContentProcessor.doOnNext(AbstractHttpContentProcessor.java:78)
    2021-01-21T16:58:40.680761+00:00 app[web.1]: io.micronaut.http.server.netty.AbstractHttpContentProcessor.doOnNext(AbstractHttpContentProcessor.java:36)
    2021-01-21T16:58:40.680761+00:00 app[web.1]: io.micronaut.core.async.subscriber.CompletionAwareSubscriber.onNext(CompletionAwareSubscriber.java:52)
    2021-01-21T16:58:40.680761+00:00 app[web.1]: io.micronaut.http.netty.reactive.HandlerPublisher.publishMessage(HandlerPublisher.java:378)
    2021-01-21T16:58:40.680762+00:00 app[web.1]: io.micronaut.http.netty.reactive.HandlerPublisher.channelRead(HandlerPublisher.java:334)
    2021-01-21T16:58:40.680762+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    2021-01-21T16:58:40.680762+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    2021-01-21T16:58:40.680763+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    2021-01-21T16:58:40.680763+00:00 app[web.1]: io.micronaut.http.netty.stream.HttpStreamsHandler.handleReadHttpContent(HttpStreamsHandler.java:292)
    2021-01-21T16:58:40.680764+00:00 app[web.1]: io.micronaut.http.netty.stream.HttpStreamsHandler.channelRead(HttpStreamsHandler.java:257)
    2021-01-21T16:58:40.680764+00:00 app[web.1]: io.micronaut.http.netty.stream.HttpStreamsServerHandler.channelRead(HttpStreamsServerHandler.java:121)
    2021-01-21T16:58:40.680764+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    2021-01-21T16:58:40.680764+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    2021-01-21T16:58:40.680765+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    2021-01-21T16:58:40.680765+00:00 app[web.1]: io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
    2021-01-21T16:58:40.680765+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    2021-01-21T16:58:40.680766+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    2021-01-21T16:58:40.680766+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    2021-01-21T16:58:40.680766+00:00 app[web.1]: io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
    2021-01-21T16:58:40.680767+00:00 app[web.1]: io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)
    2021-01-21T16:58:40.680767+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    2021-01-21T16:58:40.680768+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    2021-01-21T16:58:40.680788+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    2021-01-21T16:58:40.680789+00:00 app[web.1]: io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
    2021-01-21T16:58:40.680789+00:00 app[web.1]: io.netty.handler.codec.http.HttpServerKeepAliveHandler.channelRead(HttpServerKeepAliveHandler.java:64)
    2021-01-21T16:58:40.680789+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    2021-01-21T16:58:40.680789+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    2021-01-21T16:58:40.680790+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    2021-01-21T16:58:40.680791+00:00 app[web.1]: io.netty.handler.flow.FlowControlHandler.dequeue(FlowControlHandler.java:200)
    2021-01-21T16:58:40.680800+00:00 app[web.1]: io.netty.handler.flow.FlowControlHandler.channelRead(FlowControlHandler.java:162)
    2021-01-21T16:58:40.680800+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    2021-01-21T16:58:40.680801+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    2021-01-21T16:58:40.680801+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    2021-01-21T16:58:40.680802+00:00 app[web.1]: io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
    2021-01-21T16:58:40.680802+00:00 app[web.1]: io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324)
    2021-01-21T16:58:40.680803+00:00 app[web.1]: io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296)
    2021-01-21T16:58:40.680803+00:00 app[web.1]: io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
    2021-01-21T16:58:40.680803+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    2021-01-21T16:58:40.680803+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    2021-01-21T16:58:40.680804+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    2021-01-21T16:58:40.680804+00:00 app[web.1]: io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
    2021-01-21T16:58:40.680804+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    2021-01-21T16:58:40.680805+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    2021-01-21T16:58:40.680805+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    2021-01-21T16:58:40.680806+00:00 app[web.1]: io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
    2021-01-21T16:58:40.680806+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    2021-01-21T16:58:40.680806+00:00 app[web.1]: io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    2021-01-21T16:58:40.680807+00:00 app[web.1]: io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
    2021-01-21T16:58:40.680807+00:00 app[web.1]: io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
    2021-01-21T16:58:40.680807+00:00 app[web.1]: io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
    2021-01-21T16:58:40.680808+00:00 app[web.1]: io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
    2021-01-21T16:58:40.680808+00:00 app[web.1]: io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
    2021-01-21T16:58:40.680809+00:00 app[web.1]: io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
    2021-01-21T16:58:40.680809+00:00 app[web.1]: io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
    2021-01-21T16:58:40.680810+00:00 app[web.1]: io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    2021-01-21T16:58:40.680810+00:00 app[web.1]: io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    2021-01-21T16:58:40.680810+00:00 app[web.1]: java.base/java.lang.Thread.run(Thread.java:832)
    

    This error always happens after an OutOfMemory exception (when a lot concurrent files are being uploaded):

    2021-01-21T16:58:33.630658+00:00 app[web.1]: 16:58:33.630 [default-nioEventLoopGroup-1-4] ERROR i.m.h.s.netty.RoutingInBoundHandler - Unexpected error occurred: Cannot reserve 16777216 bytes of direct buffer memory (allocated: 419561975, limit: 429916160)
    2021-01-21T16:58:33.630661+00:00 app[web.1]: java.lang.OutOfMemoryError: Cannot reserve 16777216 bytes of direct buffer memory (allocated: 419561975, limit: 429916160)
    2021-01-21T16:58:33.630663+00:00 app[web.1]: at java.base/java.nio.Bits.reserveMemory(Bits.java:178)
    2021-01-21T16:58:33.630667+00:00 app[web.1]: at java.base/java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:120)
    2021-01-21T16:58:33.630667+00:00 app[web.1]: at java.base/java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:330)
    2021-01-21T16:58:33.630668+00:00 app[web.1]: at io.netty.buffer.PoolArena$DirectArena.allocateDirect(PoolArena.java:645)
    2021-01-21T16:58:33.630668+00:00 app[web.1]: at io.netty.buffer.PoolArena$DirectArena.newChunk(PoolArena.java:621)
    2021-01-21T16:58:33.630669+00:00 app[web.1]: at io.netty.buffer.PoolArena.allocateNormal(PoolArena.java:204)
    2021-01-21T16:58:33.630669+00:00 app[web.1]: at io.netty.buffer.PoolArena.tcacheAllocateNormal(PoolArena.java:188)
    2021-01-21T16:58:33.630669+00:00 app[web.1]: at io.netty.buffer.PoolArena.allocate(PoolArena.java:138)
    2021-01-21T16:58:33.630670+00:00 app[web.1]: at io.netty.buffer.PoolArena.reallocate(PoolArena.java:288)
    2021-01-21T16:58:33.630670+00:00 app[web.1]: at io.netty.buffer.PooledByteBuf.capacity(PooledByteBuf.java:118)
    2021-01-21T16:58:33.630675+00:00 app[web.1]: at io.netty.buffer.AbstractByteBuf.ensureWritable0(AbstractByteBuf.java:307)
    2021-01-21T16:58:33.630675+00:00 app[web.1]: at io.netty.buffer.AbstractByteBuf.ensureWritable(AbstractByteBuf.java:282)
    2021-01-21T16:58:33.630676+00:00 app[web.1]: at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1105)
    2021-01-21T16:58:33.630676+00:00 app[web.1]: at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1098)
    2021-01-21T16:58:33.630676+00:00 app[web.1]: at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1089)
    2021-01-21T16:58:33.630677+00:00 app[web.1]: at io.netty.handler.codec.http.multipart.HttpPostMultipartRequestDecoder.offer(HttpPostMultipartRequestDecoder.java:340)
    2021-01-21T16:58:33.630677+00:00 app[web.1]: at io.netty.handler.codec.http.multipart.HttpPostMultipartRequestDecoder.offer(HttpPostMultipartRequestDecoder.java:52)
    2021-01-21T16:58:33.630678+00:00 app[web.1]: at io.netty.handler.codec.http.multipart.HttpPostRequestDecoder.offer(HttpPostRequestDecoder.java:223)
    2021-01-21T16:58:33.630678+00:00 app[web.1]: at io.micronaut.http.server.netty.FormDataHttpContentProcessor.onData(FormDataHttpContentProcessor.java:113)
    2021-01-21T16:58:33.630679+00:00 app[web.1]: at io.micronaut.http.server.netty.AbstractHttpContentProcessor.doOnNext(AbstractHttpContentProcessor.java:78)
    2021-01-21T16:58:33.630679+00:00 app[web.1]: at io.micronaut.http.server.netty.AbstractHttpContentProcessor.doOnNext(AbstractHttpContentProcessor.java:36)
    2021-01-21T16:58:33.630680+00:00 app[web.1]: at io.micronaut.core.async.subscriber.CompletionAwareSubscriber.onNext(CompletionAwareSubscriber.java:52)
    2021-01-21T16:58:33.630680+00:00 app[web.1]: at io.micronaut.http.netty.reactive.HandlerPublisher.publishMessage(HandlerPublisher.java:378)
    2021-01-21T16:58:33.630681+00:00 app[web.1]: at io.micronaut.http.netty.reactive.HandlerPublisher.channelRead(HandlerPublisher.java:334)
    2021-01-21T16:58:33.630681+00:00 app[web.1]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    2021-01-21T16:58:33.630682+00:00 app[web.1]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    2021-01-21T16:58:33.630682+00:00 app[web.1]: at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    2021-01-21T16:58:33.630682+00:00 app[web.1]: at io.micronaut.http.netty.stream.HttpStreamsHandler.handleReadHttpContent(HttpStreamsHandler.java:292)
    2021-01-21T16:58:33.630683+00:00 app[web.1]: at io.micronaut.http.netty.stream.HttpStreamsHandler.channelRead(HttpStreamsHandler.java:257)
    2021-01-21T16:58:33.630683+00:00 app[web.1]: at io.micronaut.http.netty.stream.HttpStreamsServerHandler.channelRead(HttpStreamsServerHandler.java:121)
    2021-01-21T16:58:33.630684+00:00 app[web.1]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    2021-01-21T16:58:33.630684+00:00 app[web.1]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    2021-01-21T16:58:33.630684+00:00 app[web.1]: at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    2021-01-21T16:58:33.630685+00:00 app[web.1]: at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
    2021-01-21T16:58:33.630685+00:00 app[web.1]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    2021-01-21T16:58:33.630685+00:00 app[web.1]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    2021-01-21T16:58:33.630686+00:00 app[web.1]: at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    2021-01-21T16:58:33.630686+00:00 app[web.1]: at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
    2021-01-21T16:58:33.630687+00:00 app[web.1]: at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)
    2021-01-21T16:58:33.630687+00:00 app[web.1]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    2021-01-21T16:58:33.630696+00:00 app[web.1]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    2021-01-21T16:58:33.630697+00:00 app[web.1]: at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    2021-01-21T16:58:33.630698+00:00 app[web.1]: at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
    2021-01-21T16:58:33.630698+00:00 app[web.1]: at io.netty.handler.codec.http.HttpServerKeepAliveHandler.channelRead(HttpServerKeepAliveHandler.java:64)
    2021-01-21T16:58:33.630699+00:00 app[web.1]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    2021-01-21T16:58:33.630699+00:00 app[web.1]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    2021-01-21T16:58:33.630700+00:00 app[web.1]: at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    2021-01-21T16:58:33.630700+00:00 app[web.1]: at io.netty.handler.flow.FlowControlHandler.dequeue(FlowControlHandler.java:200)
    2021-01-21T16:58:33.630701+00:00 app[web.1]: at io.netty.handler.flow.FlowControlHandler.read(FlowControlHandler.java:139)
    2021-01-21T16:58:33.630701+00:00 app[web.1]: at io.netty.channel.AbstractChannelHandlerContext.invokeRead(AbstractChannelHandlerContext.java:686)
    2021-01-21T16:58:33.630701+00:00 app[web.1]: at io.netty.channel.AbstractChannelHandlerContext.read(AbstractChannelHandlerContext.java:671)
    2021-01-21T16:58:33.630702+00:00 app[web.1]: at io.micronaut.http.netty.reactive.HandlerPublisher.requestDemand(HandlerPublisher.java:163)
    2021-01-21T16:58:33.630702+00:00 app[web.1]: at io.micronaut.http.netty.stream.HttpStreamsHandler$2.requestDemand(HttpStreamsHandler.java:248)
    2021-01-21T16:58:33.630703+00:00 app[web.1]: at io.micronaut.http.netty.reactive.HandlerPublisher$ChannelSubscription.receivedDemand(HandlerPublisher.java:547)
    2021-01-21T16:58:33.630703+00:00 app[web.1]: at io.micronaut.http.netty.reactive.HandlerPublisher$ChannelSubscription.lambda$request$0(HandlerPublisher.java:474)
    2021-01-21T16:58:33.630704+00:00 app[web.1]: at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
    2021-01-21T16:58:33.630704+00:00 app[web.1]: at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
    2021-01-21T16:58:33.630705+00:00 app[web.1]: at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:497)
    2021-01-21T16:58:33.630705+00:00 app[web.1]: at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
    2021-01-21T16:58:33.630705+00:00 app[web.1]: at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    2021-01-21T16:58:33.630706+00:00 app[web.1]: at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    2021-01-21T16:58:33.630706+00:00 app[web.1]: at java.base/java.lang.Thread.run(Thread.java:832)
    

    Environment Information

    • Operating System: Alpine Linux
    • Micronaut Version: 2.2.0
    • JDK Version: 15

    Example Application

    micronaut image test

    opened by kindlychung 36
  • Using @ConfigurationProperties methods in @Requires annotation

    Using @ConfigurationProperties methods in @Requires annotation

    This is a possible solution to resolve #5350 I'd like someone to review this PR to find out whether this solution is ok, or some sort of fail fast validation is expected in case of mistyping the method name or providing method with wrong return type. Then I can proceed with the implementation of similar functionality in other annotations like @Scheduled etc

    type: enhancement 
    opened by GavrilovSV 34
  • Refactor instrumentation WIP

    Refactor instrumentation WIP

    Not finished.

    I tried to refactor instrumentation to reduce call stack described in https://github.com/micronaut-projects/micronaut-core/issues/2338

    There are a few problems:

    • I have created ExecutorServiceInstrumenter in runtime module and it looks like some tests want to inject ThreadPoolExecutor which is missing after instrumentation.
    • Haven't found a good way to set context request in ServerRequestContext
    • Some classes are deleted or removed, mostly internal. I don't know if it's a breaking change.

    I did some testing and it looks like the call stack is smaller a bit.

    @graemerocher Can you take a look and let me know if it makes sense or not?

    opened by dstepanov 32
  • Generate CLI app with correct main class name (was: CLI command stopped working when app is assembled)

    Generate CLI app with correct main class name (was: CLI command stopped working when app is assembled)

    I am currently playing around with the CLI profile (picocli) on latest snapshot. The app stopped working when assembled and called via java -jar …. Running the app as Application from my IntelliJ IDE still works.

    Steps to Reproduce

    • create an app with profile cli enabled
    • create a command
    • assemble app
    • call jar
    $ mn create-app my-cli-app --profile cli
    Generating Java project...
    | Application created at /tmp/my-cli-app
    $ cd my-cli-app/
    $ mn
    | Starting interactive mode...
    | Enter a command name to run. Use TAB for completion:
    mn> create-command test
    | Rendered template Command.java to destination src/main/java/my/cli/app/TestCommand.java
    | Rendered template CommandTest.java to destination src/test/java/my/cli/app/TestCommandTest.java
    
    Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
    See https://docs.gradle.org/4.8/userguide/command_line_interface.html#sec:command_line_warnings
    
    BUILD SUCCESSFUL in 4s
    11 actionable tasks: 10 executed, 1 up-to-date
    $ java -jar build/libs/my-cli-app-0.1-all.jar -v
    11:14:05.005 [main] INFO  io.micronaut.runtime.Micronaut - No embedded container found. Running as CLI application
    
    

    Expected Behaviour

    CLI command is called and shows Hi!

    Actual Behaviour

    CLI command is not invoked instead the message: INFO io.micronaut.runtime.Micronaut - No embedded container found. Running as CLI application shows up

    Environment Information

    • Operating System: Linux 4.17.11-200.fc28.x86_64
    • Micronaut Version: 1.0.0.BUILD-SNAPSHOT
    • JDK Version: 1.8.0_171

    Example Application

    n/a

    opened by sascha-frinken 32
  • Micrometer metrics configuration

    Micrometer metrics configuration

    Cleaning up the graphite library and adding the statsd configuration.

    I tried to create a management endpoint for metrics where the metrics registries were injected, but I didn't want to depend the management module on the metrics config. I will defer that to @graemerocher and team to present a solution if they want this in the management module. I didn't see any configurations that provided their own "management" endpoints, but that was the direction I wasn't leaning. Still learning how things are wired up and how that would be possible.

    opened by ctoestreich 31
  • Enabling Visitors to declare annotation processors options.

    Enabling Visitors to declare annotation processors options.

    • Needed to fix issue micronaut-projects/micronaut-openapi#108 By enabling annotation processors arguments, one can remove the need for ugly System properties on thirdy party visitors. E.g.: micronaut-openapi
    • Fixing http-server-netty integration test, according to HTTP spec regarding to Content-Type negotiation: See https://tools.ietf.org/html/rfc7231#section-3.1.1.5
    opened by miguelbaldi 30
  • Provide a way to read the request body in a filter when the route does not read it

    Provide a way to read the request body in a filter when the route does not read it

    This is a enhancement request

    I want to implement a custom HttpServerFilter, to get POST request and body (json format). But i have the issue when try to read body with method request.getBody it's always empty, to solve a have defined an action with @Post and @Body annotation into controller. But i don't want to create action for each api i need. regs

    I need a filter this a method like this:

    Publisher<HttpHttpResponse<T>> readBody(HttpRequest<?> pRequest, ServerFilterChain pChain, Class<T> type)

    type: enhancement status: future consideration 
    opened by claudiodegio 29
  • Multiple InterceptorRegistries when testing AOT module in micronaut-security

    Multiple InterceptorRegistries when testing AOT module in micronaut-security

    When we re-enable the AOT module for Micronaut Security (for Micronaut 4.0.0) and add the test back in, we get an error

    https://github.com/micronaut-projects/micronaut-security/pull/1193

    Distributed Test Run :security-aot:test > Partition 1 in session 1 on localhost-executor-1 > OpenIdProviderMetadataFetcherCodeGeneratorSpec verify OpenIdProviderMetadataFetcherCodeGenerator generates OpenIdProviderMetadataFetcher per openid client FAILED
    
      io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type  [io.micronaut.serde.support.DefaultSerdeIntrospections]
    
      Message: Multiple possible bean candidates found: [InterceptorRegistry, InterceptorRegistry]
    

    https://ge.micronaut.io/s/osvthaiic6lti/console-log?task=:security-aot:test

    I seem to recall this is caused by having two different versions of micronaut-aop on the test runtime classpath, however I cannot see that

    https://ge.micronaut.io/s/osvthaiic6lti/dependencies?dependencies=aop&expandAll&toggled=W1syLDNdLFsyLDJdLFsyLDFdLFsyLDBdLFsxXSxbMF0sWzNdLFs0XSxbNV0sWzZdLFs3XSxbOF0sWzldLFsxMF0sWzExXSxbMTJdLFsxM10sWzE0XSxbMTVdLFsxNl0sWzE3XV0

    Do you have any idea what's wrong?

    As an aside, a way of showing where beans were created in the case there are multiple in error would be awesome 😉

    type: bug 
    opened by timyates 0
  • @Import doesn't create bean definition for inner classes in package

    @Import doesn't create bean definition for inner classes in package

    Expected Behavior

    When using @Import(packages = "my.package") one would expect that a bean definition is created for all classes which match either the default annotations or a specified annotation.

    e.g.

    package to.be.imported;
    
    import jakarta.inject.Singleton;
    
    public class Outer {
      @Singleton
      public static class Inner {
      }
    }
    
    package using.imported.bean;
    
    import io.micronaut.context.annotation.Bean;
    import io.micronaut.context.annotation.Factory;
    import io.micronaut.context.annotation.Import;
    import jakarta.inject.Singleton;
    
    @Import(packages = "to.be.imported", annotated = "jakarta.inject.Singleton")
    @Factory
    public class Factory {
    
      @Bean @Singleton
      Object createUsingInner(Inner importedBean) {
       ...
      }
    }
    

    Actual Behaviour

    The bean definitions are only created for top level classes.

    Steps To Reproduce

    It looks like the cause of this issue is either in BeanImportVisitor.java or JavaVisitorContext.java, one of them should handle enclosed elements.

    Environment Information

    No response

    Example Application

    No response

    Version

    3.8.0

    opened by auke- 0
Releases(v3.8.0)
  • v3.8.0(Dec 28, 2022)

    What's Changed

    Bug Fixes 🐞

    • Still emit response if return type is Void by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/8367
    • fix: graal error for private @Property by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/8541 and https://github.com/micronaut-projects/micronaut-core/pull/8542

    Improvements ⭐

    • Support records for @RequestBean by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/8420
    • wrap original exception when the circuit breaker is opened by @aprietop in https://github.com/micronaut-projects/micronaut-core/pull/8222
    • Ensure Logback is refreshed before application starts by @driverpt in https://github.com/micronaut-projects/micronaut-core/pull/8238
    • Overload DELETE method for URI object by @wetted in https://github.com/micronaut-projects/micronaut-core/pull/8486
    • feat: Add HTTP Server TCK by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/8499

    Other Changes 💡

    • refactor: Extract http headers utils by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/8471
    • Update jackson-databind by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/8478
    • fix: 403 for localhost http host and cors any by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/8524
    • test: refactor CorsFilterSpec as a black box by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/8473
    • refactor: CorsFilter by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/8474
    • Backport fixes from 4.0.x and fix ConvertibleValuesDeserializer by @graemerocher in https://github.com/micronaut-projects/micronaut-core/pull/8489
    • Added lost slf4j and logback artifacts. Added log4j bom dependency to final micronaut bom. by @altro3 in https://github.com/micronaut-projects/micronaut-core/pull/8138
    • Fix isReaderName for fields started with _ or $ by @altro3 in https://github.com/micronaut-projects/micronaut-core/pull/8435
    • Deprecate JacksonConfig construtor for removal in 4.0.0 by @timyates in https://github.com/micronaut-projects/micronaut-core/pull/8185
    • Allow to query beans without any qualifier by @dstepanov in https://github.com/micronaut-projects/micronaut-core/pull/8177
    • Don't modify input map in UriTemplate by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/8364
    • implement JsonFormat for creator properties by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/8365
    • Fix index out of bounds when chain.proceed is called too often by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/8404
    • Forward early websocket client errors to client future, not the websocket bean by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/8300
    • Set service id for normal http client as well by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/8407
    • Exclude module descriptors from the shaded JAR by @alvarosanchez in https://github.com/micronaut-projects/micronaut-core/pull/8412

    Docs 📖

    • Update deployingApp.adoc to add jar version by @catalintrif in https://github.com/micronaut-projects/micronaut-core/pull/8423

    🐘 Build

    • Add Hibernate validator BOM by @timyates in https://github.com/micronaut-projects/micronaut-core/pull/8415
    • Add JMX BOM by @timyates in https://github.com/micronaut-projects/micronaut-core/pull/8322
    • Add Rabbit BOM by @timyates in https://github.com/micronaut-projects/micronaut-core/pull/8321

    Dependency updates 🚀

    • build: update GraalVM to 22.3.0 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/8230
    • Bump Micronaut Azure to 3.6.0 by @graemerocher in https://github.com/micronaut-projects/micronaut-core/pull/8356
    • upgrade Jackson to 2.14.0 by @graemerocher in https://github.com/micronaut-projects/micronaut-core/pull/8359
    • Bump Micronaut Oracle Cloud to 2.3.0 by @graemerocher in https://github.com/micronaut-projects/micronaut-core/pull/8389
    • Bump GraalVM Native Build Tools to 0.9.18 by @alvarosanchez in https://github.com/micronaut-projects/micronaut-core/pull/8399
    • Update Test Resources to 1.2.3 by @alvarosanchez in https://github.com/micronaut-projects/micronaut-core/pull/8497
    • build: bump native-maven-plugin to 0.9.19 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/8502
    • build: bump up Reactor to 3.5.0 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/8509
    • build: update netty from 4.1.84 to 4.1.86.Final by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/8519
    • build: Micronaut Problem JSON 2.6.0 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/8526
    • build: update crac, grpc, micrometer and liquibase by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/8528

    New Contributors

    • @aprietop made their first contribution in https://github.com/micronaut-projects/micronaut-core/pull/8222
    • @driverpt made their first contribution in https://github.com/micronaut-projects/micronaut-core/pull/8238
    • @catalintrif made their first contribution in https://github.com/micronaut-projects/micronaut-core/pull/8423

    Full Changelog: https://github.com/micronaut-projects/micronaut-core/compare/v3.7.5...v3.8.0

    Source code(tar.gz)
    Source code(zip)
  • v3.7.5(Dec 20, 2022)

    What's Changed

    Improvements ⭐

    • log: remove failed from healthStatus logging by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/8487

    Docs 📖

    • Update upgrade documentation by @anuragdeshpande in https://github.com/micronaut-projects/micronaut-core/pull/8482

    Other Changes 💡

    • Backport #8155 by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/8434
    • fix: TextStreamCodec requires bean of type ByteBufferFactory by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/8494

    Full Changelog: https://github.com/micronaut-projects/micronaut-core/compare/v3.7.4...v3.7.5

    Source code(tar.gz)
    Source code(zip)
  • v3.7.4(Nov 16, 2022)

    What's Changed

    Bug Fixes 🐞

    • Mark HateoasErrorResponseProcessorReplacement as Secondary by @timyates in https://github.com/micronaut-projects/micronaut-core/pull/8265
    • Fix TLS hostname verification by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/8339

    Improvements ⭐

    • Fix StringUtils.trimLeading by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/8335
    • Mask headers that match know credentials by @timyates in https://github.com/micronaut-projects/micronaut-core/pull/8336

    Docs 📖

    • doc: Documents Nullability annotations by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/8348

    Dependency updates 🚀

    • Bump micronaut-serialization to 1.3.3 (#8279)
    • Bump micronaut-security to 3.8.3 (https://github.com/micronaut-projects/micronaut-core/pull/8349)
    • Bump micronaut-aws to 3.9.3 (#8277)

    GraalVM 🏆

    • Add a test module to verify simple native execution by @timyates in https://github.com/micronaut-projects/micronaut-core/pull/8280

    Other Changes 💡

    Full Changelog: https://github.com/micronaut-projects/micronaut-core/compare/v3.7.3...v3.7.4

    Source code(tar.gz)
    Source code(zip)
  • v3.7.3(Oct 29, 2022)

    What's Changed

    Bug Fixes 🐞

    • Fix the Hateoas/Groovy/Serde error in a binary compatible way by @timyates in https://github.com/micronaut-projects/micronaut-core/pull/8189
    • Correct record constructor search algorithm. Fixes #8187 by @graemerocher in https://github.com/micronaut-projects/micronaut-core/pull/8216

    Docs 📖

    • fix: spelling mistake by @A-Maged in https://github.com/micronaut-projects/micronaut-core/pull/8201
    • doc: recommend not to use private fields with @Value by @debrutal in https://github.com/micronaut-projects/micronaut-core/pull/8239

    Dependency updates 🚀

    Other Changes 💡

    • Deprecate HttpStatus.UNORDERED_COLLECTION by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/8199

    New Contributors

    • @A-Maged made their first contribution in https://github.com/micronaut-projects/micronaut-core/pull/8201
    • @debrutal made their first contribution in https://github.com/micronaut-projects/micronaut-core/pull/8239

    Full Changelog: https://github.com/micronaut-projects/micronaut-core/compare/v3.7.2...v3.7.3

    Source code(tar.gz)
    Source code(zip)
  • v3.7.2(Oct 18, 2022)

    Bug fixes 🐛

    • fix: PropertySourcePropertyResolver.getAllProperties behaviour when StringConvention.RAW (#8178)
    • Do not log channel close exceptions when writing response (#8149)
    • Fix: @entity should not become a bean (#8098)

    Dependency Upgrade 🚀

    • build: Bump micronaut-data to 3.8.1 (#8141)
    • fix(deps): update dependency com.fasterxml.jackson.core:jackson-databind to v2.13.4.2 (#8168)
    • fix(deps): update junit5 monorepo to v5.9.1
    • fix(deps): update managed-testcontainers to v1.17.5
    • fix(deps): update managed-swagger to v2.2.3

    CI ⚙️

    chore(deps): update mikepenz/action-junit-report action to v3.5.2 (#8166)

    Build 🐘

    chore(deps): update dependency io.micronaut.build.internal:micronaut-gradle-plugins to v5.3.15 (#8165)

    Source code(tar.gz)
    Source code(zip)
  • v3.7.1(Sep 28, 2022)

    What's Changed

    Dependency updates 🚀

    • build: Micronaut Crac to 1.0.1 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/8060
    • Bump micronaut-sql to 4.7.2 (#8095)
    • Bump Micronaut Test Resources version to 1.1.2 by @melix in https://github.com/micronaut-projects/micronaut-core/pull/8070
    • fix(deps): update dependency org.apache.kafka:kafka_2.12 to v2.8.2 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7979

    Other Changes 💡

    • Exclude signature files from the uber-jar by @alvarosanchez in https://github.com/micronaut-projects/micronaut-core/pull/8076
    • Fix wrong declairingType in groovy properties when get genericReturnType. by @altro3 in https://github.com/micronaut-projects/micronaut-core/pull/8084

    Full Changelog: https://github.com/micronaut-projects/micronaut-core/compare/v3.7.0...v3.7.1

    Source code(tar.gz)
    Source code(zip)
  • v3.6.4(Sep 28, 2022)

    What's Changed

    Improvements ⭐

    • Make client ssl inner configuration properties bootstrap context compatible by @jameskleeh in https://github.com/micronaut-projects/micronaut-core/pull/8005
    • fix: UriBuilder queryParam and replaceQueryParam should ignore null values by @Crow-EH in https://github.com/micronaut-projects/micronaut-core/pull/7681

    Docs 📖

    • Resolve issues with Missing Local Resources Check for the docs task by @wetted in https://github.com/micronaut-projects/micronaut-core/pull/7977

    Dependency updates 🚀

    • fix(deps): update managed-jackson to v2.13.4 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7980
    • fix(deps): update dependency org.apache.kafka:kafka_2.12 to v2.8.2 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7979
    • Bump micronaut-sql to 4.6.6 (#8093)
    • build: Bump micronaut-hibernate-validator to 3.0.2 (#8007)

    CI ⚙️

    • chore(deps): update mikepenz/action-junit-report action to v3.5.0 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7981

    Full Changelog: https://github.com/micronaut-projects/micronaut-core/compare/v3.6.3...v3.6.4

    Source code(tar.gz)
    Source code(zip)
  • v3.7.0(Sep 21, 2022)

    What's Changed

    New Features 🎉

    • Allow static executable methods, support executing private fields + methods by @dstepanov in https://github.com/micronaut-projects/micronaut-core/pull/7963
    • add an option to completely disable default property source loading by @graemerocher in https://github.com/micronaut-projects/micronaut-core/pull/8016

    Bug Fixes 🐞

    • fix runtime beans using interfaces or abstract classes by @graemerocher in https://github.com/micronaut-projects/micronaut-core/pull/8020
    • Allow matching @Produces(ALL) for ambiguous routes by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/8039
    • Fix incorrect getPropertiesFromGettersAndSetters groovy visitor for interfaces by @altro3 in https://github.com/micronaut-projects/micronaut-core/pull/8028

    Improvements ⭐

    • Make client ssl inner configuration properties bootstrap context compatible by @jameskleeh in https://github.com/micronaut-projects/micronaut-core/pull/8005

    Docs 📖

    • Add Object Storage to the BOM and to the what's new section of the docs. by @alvarosanchez in https://github.com/micronaut-projects/micronaut-core/pull/7966
    • Resolve issues with Missing Local Resources Check for the docs task by @wetted in https://github.com/micronaut-projects/micronaut-core/pull/7977

    Other Changes 💡

    • fix: UriBuilder queryParam and replaceQueryParam should ignore null values by @Crow-EH in https://github.com/micronaut-projects/micronaut-core/pull/7681
    • feature: Allow stopping netty without stopping the application context by @timyates in https://github.com/micronaut-projects/micronaut-core/pull/7933
    • More java.time support for yaml and converters by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/7870
    • build: Add CRaC module to BOM by @timyates in https://github.com/micronaut-projects/micronaut-core/pull/7997
    • HTTP client refactor by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/7994
    • Make AttributeKeys in ConnectionManager non-static to avoid native-image initialization by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/8013
    • Register a binder for parts that returns unsatisfied by @jameskleeh in https://github.com/micronaut-projects/micronaut-core/pull/8004

    Dependency updates 🚀

    • fix(deps): update htmlunit to v2.63.0 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7854
    • fix(deps): update dependency org.apache.logging.log4j:log4j-core to v2.18.0 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7851
    • fix(deps): update dependency io.micronaut.neo4j:micronaut-neo4j-bolt to v5.2.0 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7847
    • fix(deps): update dependency io.methvin:directory-watcher to v0.16.1 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7845
    • fix(deps): update dependency io.smallrye:smallrye-fault-tolerance to v5.5.0 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7849
    • fix(deps): update dependency io.micronaut.discovery:micronaut-discovery-client to v3.2.0 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7846
    • fix(deps): update dependency net.java.dev.jna:jna to v5.12.1 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7850
    • fix(deps): update dependency org.grails:grails-datastore-gorm-hibernate5 to v7.3.0 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7853
    • fix(deps): update dependency io.micronaut.gcp:micronaut-gcp-bom to v4.5.0 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7904
    • fix(deps): update dependency io.micronaut.microstream:micronaut-microstream-bom to v1.1.0 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7985
    • fix(deps): update dependency io.micronaut.aws:micronaut-aws-bom to v3.8.0 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7982
    • chore(deps): update mikepenz/action-junit-report action to v3.5.0 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7981
    • fix(deps): update managed-jackson to v2.13.4 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7980
    • fix(deps): update dependency org.yaml:snakeyaml to v1.32 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7996
    • fix(deps): update dependency io.micronaut.azure:micronaut-azure-bom to v3.5.0 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7983
    • fix(deps): update netty monorepo to v4.1.82.final by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7999
    • build: bump up Micronaut AWS to 3.9.1 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/8015
    • fix(deps): update managed-micrometer to v1.9.4 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/8026
    • fix(deps): update dependency io.micronaut.mongodb:micronaut-mongo-bom to v4.5.0 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/8029
    • fix(deps): update dependency org.springframework:spring-core to v5.3.23 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/8025
    • fix(deps): update dependency io.projectreactor:reactor-core to v3.4.23 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/8022
    • fix(deps): update dependency io.micronaut.oraclecloud:micronaut-oraclecloud-bom to v2.2.1 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/8021
    • fix(deps): update dependency org.apache.logging.log4j:log4j-core to v2.19.0 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/8034
    • fix(deps): update groovy monorepo to v3.0.13 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/8032
    • fix(deps): update dependency io.micronaut.reactor:micronaut-reactor-bom to v2.4.1 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/8031
    • fix(deps): update dependency io.micronaut.problem:micronaut-problem-json-bom to v2.5.1 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/8030
    • build: bump up Micronaut Spring, SQL and Tracing by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/8045
    • build: Update BOM to latest releases by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/8008

    Full Changelog: https://github.com/micronaut-projects/micronaut-core/compare/v3.6.3...v3.7.0

    Source code(tar.gz)
    Source code(zip)
  • v3.6.3(Sep 9, 2022)

    What's Changed

    Bug Fixes 🐞

    • fix: kaptKoltin exception with micronaut-inject processor by @JaneWardSandy in https://github.com/micronaut-projects/micronaut-core/pull/7962
    • Move some netty converters to SPI (#7952)

    Other Changes 💡

    • Remove netty workaround introduced in #7730 by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/7969
    • Delete NOTICE by @graemerocher in https://github.com/micronaut-projects/micronaut-core/pull/7959

    ### Modules Patch Updates

    • build: Micronaut Email to 1.3.2 (#7964)
    • build: Bump micronaut-security to 3.6.5 (#7956)
    • Bump micronaut-spring to 4.2.2 (#7950)
    • Bump micronaut-tracing to 4.2.2 (#7953)
    • Bump micronaut-flyway to 5.4.1 (#7932)

    Dependency updates 🚀

    • fix(deps): update netty monorepo to v4.1.81.final by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7968
    • fix(deps): update dependency org.neo4j.test:neo4j-harness to v3.5.35 (#7901)
    • fix(deps): update htmlunit to v2.64.0 (#7907)
    • fix(deps): update dependency com.fasterxml.jackson.core:jackson-databind to v2.13.4 (#7946)

    New Contributors

    • @JaneWardSandy made their first contribution in https://github.com/micronaut-projects/micronaut-core/pull/7962

    Full Changelog: https://github.com/micronaut-projects/micronaut-core/compare/v3.6.2...v3.6.3

    Source code(tar.gz)
    Source code(zip)
  • v3.6.2(Sep 4, 2022)

    What's Changed

    Bug fixes 🐛

    • Fix: error message when connection is closed while websocket handshake is in progress (#7927)
    • fix: buffer leak on response encode error (#7936)

    Dependency Upgrades 🚀

    • micronaut-flyway from 5.4.0 to 5.4.1 (#7944)
    • micronaut-aws from 3.7.0 to 3.7.1 (#7923)
    • micronaut-serialization from 1.3.0 to 1.3.1..1.3.2 (#7930 and #7937)
    • micronaut-data from 3.7.2 to 3.7.3 (#7917)
    • problem-json from 2.4.0 to 2.4.1 (#7938)
    • managed-micrometer from 1.9.2 to 1.9.3 (#7902)
    • update snakeyaml from 1.30 to 1.31 (#7940). 1.31 addresses CVE-2022-25857
    • reactor-core to 3.4.21 to 3.4.22 (#7900)

    Full Changelog: https://github.com/micronaut-projects/micronaut-core/compare/v3.6.1...v3.6.2

    Source code(tar.gz)
    Source code(zip)
  • v3.5.5(Sep 4, 2022)

    What's Changed

    Bug Fixes 🐞

    • bug: Should continue when predestroy fails with an execption by @timyates in https://github.com/micronaut-projects/micronaut-core/pull/7829

    Docs 📖

    • doc: Update README.md by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7800

    Dependency updates 🚀

    • fix(deps): update managed-jackson to v2.13.3 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7782
    • fix(deps): update managed-micrometer to v1.9.2 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7783
    • fix(deps): update managed-testcontainers to v1.17.3 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7785
    • fix(deps): update spring core to v5.3.22 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7788
    • fix(deps): update dependency org.eclipse.jetty:jetty-alpn-openjdk8-client to v9.4.48.v20220622 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7781
    • fix(deps): update dependency org.yaml:snakeyaml to v1.31 (#7940) by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7942

    Full Changelog: https://github.com/micronaut-projects/micronaut-core/compare/v3.5.4...v3.5.5

    Source code(tar.gz)
    Source code(zip)
  • v3.6.1(Aug 19, 2022)

    What's Changed

    Docs 📖

    • Correcting KeyStore spelling in the documenation by @anuragdeshpande in https://github.com/micronaut-projects/micronaut-core/pull/7874

    Dependencies 🐘

    • build: bump micronaut-servlet to 3.3.1 (#7890)
    • build: bump micronaut-gcp to 4.4.1 (#7893)
    • build: bump micronaut-servlet to 3.3.1 (#7890)
    • Bump micronaut-security to 3.6.4 (#7891)

    Other Changes 💡

    • Issue #7861 - do expiry check on checkout of the connection by @dhofftgt in https://github.com/micronaut-projects/micronaut-core/pull/7862
    • Encode cookies added to NettyStreamedHttpResponse as server cookies by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/7885

    Dependency updates 🚀

    • chore(deps): update dependency gradle to v7.5.1 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7842
    • fix(deps): update dependency com.blazebit:blaze-persistence-core-impl to v1.6.7 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7843

    New Contributors

    • @dhofftgt made their first contribution in https://github.com/micronaut-projects/micronaut-core/pull/7862
    • @anuragdeshpande made their first contribution in https://github.com/micronaut-projects/micronaut-core/pull/7874

    Full Changelog: https://github.com/micronaut-projects/micronaut-core/compare/v3.6.0...v3.6.1

    Source code(tar.gz)
    Source code(zip)
  • v3.6.0(Aug 4, 2022)

    What's Changed

    New Features 🎉

    • Improve support for runtime bean registration by @graemerocher in https://github.com/micronaut-projects/micronaut-core/pull/7584
    • Add excludeServiceId to client filter definitions by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/7611
    • Support static factory methods and fields by @graemerocher in https://github.com/micronaut-projects/micronaut-core/pull/7769

    Bug Fixes 🐞

    • Fix producing beans from methods that return interfaces by @graemerocher in https://github.com/micronaut-projects/micronaut-core/pull/7750
    • Fix request scope leak by @dstepanov in https://github.com/micronaut-projects/micronaut-core/pull/7751
    • Close the NettyCompletedFileUpload release tracker when getInputStream is called by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/7815
    • bug: Should continue when predestroy fails with an execption by @timyates in https://github.com/micronaut-projects/micronaut-core/pull/7829

    Improvements ⭐

    • Add javadoc / groovydoc support to read any element documentation by @altro3 in https://github.com/micronaut-projects/micronaut-core/pull/7662
    • Added saving information about the annotations on enum by @altro3 in https://github.com/micronaut-projects/micronaut-core/pull/7580
    • Save service id alongside http client exceptions by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/7609

    Docs 📖

    • Clarify that endpoints.all.path configuration property needs to end with a '/' (it fails otherwise). by @wetted in https://github.com/micronaut-projects/micronaut-core/pull/7610
    • doc: Update README.md by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7800
    • javadoc: Fix Consumes Javadoc by @romannaglic in https://github.com/micronaut-projects/micronaut-core/pull/7803

    Dependency updates 🚀

    • build: micronaut mongo from 4.2.0 to 4.3.0 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7533
    • build: Micronaut GCP to 4.3.0 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7754
    • fix(deps): update dependency org.neo4j.driver:neo4j-java-driver to v4.4.9 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7447
    • fix(deps): update junit5 monorepo to v5.9.0 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7439
    • fix(deps): update dependency jakarta.annotation:jakarta.annotation-api to v2.1.1 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7436
    • fix(deps): update dependency io.micronaut.openapi:micronaut-openapi to v4.4.2 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7518
    • build: bump up managed-micronaut-data to 3.6.0 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7762
    • build: bump up managed-micronaut-aws to 3.6.1 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7760
    • build: managed-micronaut-reactor to 2.3.1 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7764
    • build: managed-micronaut-micrometer to 4.4.0 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7768
    • fix(deps): update managed-ignite to v2.13.0 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7454
    • build: managed-micronaut-data = "3.7.0" by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7771
    • fix(deps): update managed-jackson to v2.13.3 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7782
    • fix(deps): update managed-micrometer to v1.9.2 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7783
    • fix(deps): update managed-testcontainers to v1.17.3 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7785
    • fix(deps): update spring core to v5.3.22 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7788
    • fix(deps): update dependency org.eclipse.jetty:jetty-alpn-openjdk8-client to v9.4.48.v20220622 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7781
    • fix(deps): update asm to v9.3 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7789
    • fix(deps): update dependency com.fasterxml.jackson.core:jackson-databind to v2.13.3 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7778
    • build: managed-swagger to 2.2.2 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7801
    • fix(deps): update netty monorepo to v4.1.79.final by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7787
    • build: managed-micronaut-sql to 4.6.3 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7807
    • build: managed-micronaut-redis to 5.3.0 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7818
    • build: update module versions by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7833
    • build: MongoDB to 4.4.0 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7834
    • build: micronaut-groovy to 3.2.0 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7835

    Other Changes 💡

    • Add Test Resources version to the BOM by @alvarosanchez in https://github.com/micronaut-projects/micronaut-core/pull/7567
    • build: Use liquibase BOM by @timyates in https://github.com/micronaut-projects/micronaut-core/pull/7636
    • Use ServiceCollector for SoftServiceLoader.iterator by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/7608
    • Deduplicate TypeElementVisitors by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/7651
    • Deduplicate TypeElementVisitors (without an error) by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/7656
    • Reset shared ConversionService instance state on context restart by @dstepanov in https://github.com/micronaut-projects/micronaut-core/pull/7635
    • Contributing doc updates to reflect the latest state of Micronaut Framework development practices. by @wetted in https://github.com/micronaut-projects/micronaut-core/pull/7655
    • Update Native Build Tools to 0.9.13 by @alvarosanchez in https://github.com/micronaut-projects/micronaut-core/pull/7675
    • Update to Test Resources 1.0.0 and import its bom by @alvarosanchez in https://github.com/micronaut-projects/micronaut-core/pull/7676
    • Disable SETTINGS_ENABLE_PUSH server setting by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/7687
    • Convert TimeConverterRegistrar to be loaded using the service loader by @dstepanov in https://github.com/micronaut-projects/micronaut-core/pull/7673
    • Correct NettyHttpServer is starting ApplicationContext by @dstepanov in https://github.com/micronaut-projects/micronaut-core/pull/7679
    • Make buffer release mechanisms more resilient by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/7710
    • build: Update MicroStream version to v1.0.0 by @timyates in https://github.com/micronaut-projects/micronaut-core/pull/7709
    • Fix native image generation with GraalVM 22.2 by @alvarosanchez in https://github.com/micronaut-projects/micronaut-core/pull/7712
    • Correct boxing primitives after reflection call by @dstepanov in https://github.com/micronaut-projects/micronaut-core/pull/7708
    • Workaround for Netty MixedFileUpload bug by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/7730
    • Clean up request even when using a customizable invoker by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/7728
    • Bump test-resources to 1.0.1 by @alvarosanchez in https://github.com/micronaut-projects/micronaut-core/pull/7739
    • Add managed-spring dependency and springboot version back for 3.4 compat by @timyates in https://github.com/micronaut-projects/micronaut-core/pull/7729
    • build: bump GraalVM to 22.2.0 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7742
    • build: Add OpenAPI BOM by @timyates in https://github.com/micronaut-projects/micronaut-core/pull/7634
    • refactor: decouple version out from banner by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7745
    • New server channel customization API by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/7625
    • Fix ClientFilterSpec by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/7775
    • build: managed-micronaut-cassandra to 5.1.1 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7776
    • New client channel customization API by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/7773
    • Changed Random to SecureRandom. by @JoeBeeContrast in https://github.com/micronaut-projects/micronaut-core/pull/7577

    New Contributors

    • @altro3 made their first contribution in https://github.com/micronaut-projects/micronaut-core/pull/7662
    • @romannaglic made their first contribution in https://github.com/micronaut-projects/micronaut-core/pull/7803
    • @JoeBeeContrast made their first contribution in https://github.com/micronaut-projects/micronaut-core/pull/7577

    Full Changelog: https://github.com/micronaut-projects/micronaut-core/compare/v3.5.4...v3.6.0

    Source code(tar.gz)
    Source code(zip)
  • v3.5.4(Jul 29, 2022)

    What's Changed

    Bug Fixes 🐞

    • Fix IOUtils support for weird file names by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/7688
    • Mimic directories as jars in IOUtils.loadNestedJarUri by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/7705
    • fix: fix request scope leak by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7759
    • Correct boxing primitives after reflection call (3.5.x) by @kevin-wise in https://github.com/micronaut-projects/micronaut-core/pull/7715

    Test ✅

    • improve beanbuilder test for dynamic annotation by @graemerocher in https://github.com/micronaut-projects/micronaut-core/pull/7732

    Dependency updates 🚀

    • build: Micronaut GCP to 4.2.1 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7755
    • build: managed-micronaut-rxjava2 to 1.2.2 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7766
    • build: managed micronaut AWS 3.5.3 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7767
    • build: managed-micronaut-security to 3.6.3 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7772
    • chore(deps): update dependency io.projectreactor:reactor-core to v3.4.21 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7592
    • chore(deps): update dependency org.neo4j.test:neo4j-harness to v3.5.34 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7593
    • fix(deps): update dependency com.github.spotbugs:spotbugs-annotations to v4.7.1 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7629
    • fix(deps): update managed-gorm to v7.3.2 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7550
    • fix(deps): update dependency io.micronaut.mongodb:micronaut-mongo-bom to v4.3.0 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7517
    • fix(deps): update groovy monorepo to v3.0.12 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7549

    Other Changes 💡

    • Temporarially stop running japiCmp by @timyates in https://github.com/micronaut-projects/micronaut-core/pull/7690
    • build: update to Micronaut Build 5.3.11 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7689
    • build: Micronaut Framework Build to 5.3.14 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7744

    Full Changelog: https://github.com/micronaut-projects/micronaut-core/compare/v3.5.3...v3.5.4

    Source code(tar.gz)
    Source code(zip)
  • v3.5.3(Jul 12, 2022)

    v3.5.3 (2022-06-21)

    Full Changelog

    What's Changed

    Bug Fixes 🐞

    • bug: restarting netty in a named application throws error by @timyates in https://github.com/micronaut-projects/micronaut-core/pull/7602

    Docs 📖

    • doc: show 6 for V6 Engines in docs by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7600

    Dependency updates 🚀

    • chore(deps): update dependency io.micronaut.data:micronaut-data-bom to v3.4.3 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7614

    Other Changes 💡

    • Improve zip support for IOUtils by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/7653
    • Downgrade GraalVM SDK to 22.0.0.2 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7663
    • Fix buildStaticServiceDefinitions for IOUtils changes by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/7674
    Source code(tar.gz)
    Source code(zip)
  • v3.5.2(Jun 21, 2022)

    What's Changed

    Bug Fixes 🐞

    • Fix inability to apply AOP advice to BeanElementBuilder created beans by @graemerocher in https://github.com/micronaut-projects/micronaut-core/pull/7557
    • Fix sharing resolution context for bean providers by @dstepanov in https://github.com/micronaut-projects/micronaut-core/pull/7583
    • Fix producing beans as an array container by @dstepanov in https://github.com/micronaut-projects/micronaut-core/pull/7582
    • Fix full response body logging by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/7587
    • Fix leading inner class causing outer class methods to return incorrect owning and declared values by @dstepanov in https://github.com/micronaut-projects/micronaut-core/pull/7595
    • Correct Argument represented as ParameterizedType by @dstepanov in https://github.com/micronaut-projects/micronaut-core/pull/7598

    Improvements ⭐

    • Fix resolving repeatable qualifiers by @dstepanov in https://github.com/micronaut-projects/micronaut-core/pull/7596

    Docs 📖

    • Document ContextConifigurer by @timyates in https://github.com/micronaut-projects/micronaut-core/pull/7589
    • doc: fix typo by @podollb in https://github.com/micronaut-projects/micronaut-core/pull/7591

    Dependency updates 🚀

    • chore(deps): update dependency io.micronaut.build.internal:micronaut-gradle-plugins to v5.3.10 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7547
    • chore(deps): update dependency io.micronaut.security:micronaut-security-bom to v3.6.1 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7548
    • Bump Oracle Cloud version to 2.1.4 by @graemerocher in https://github.com/micronaut-projects/micronaut-core/pull/7597
    • build: micronaut-email to 1.2.3 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7588

    Other Changes 💡

    • CORS preflight request should return 404 when route doesn't exists by @n0tl3ss in https://github.com/micronaut-projects/micronaut-core/pull/7367
    • fix: remove jetbrains annotations by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7563
    • address sonar blocker by @graemerocher in https://github.com/micronaut-projects/micronaut-core/pull/7564
    • Add tests to validate producing beans by a factory array field by @dstepanov in https://github.com/micronaut-projects/micronaut-core/pull/7586
    • Support JDK 18 in annotation processors by @jakzal in https://github.com/micronaut-projects/micronaut-core/pull/7599

    New Contributors

    • @jakzal made their first contribution in https://github.com/micronaut-projects/micronaut-core/pull/7599

    Full Changelog: https://github.com/micronaut-projects/micronaut-core/compare/v3.5.1...v3.5.2

    Source code(tar.gz)
    Source code(zip)
  • v3.5.1(Jun 3, 2022)

    What's Changed

    Bug Fixes 🐞

    • Fix native image service calculation for classes not within a JAR by @graemerocher in https://github.com/micronaut-projects/micronaut-core/pull/7526
    • Fix bug with multiple factories of the same type with distinct qualifiers by @graemerocher in https://github.com/micronaut-projects/micronaut-core/pull/7537
    • typeArgumentsForType should use resolved types by @graemerocher in https://github.com/micronaut-projects/micronaut-core/pull/7542

    Dependency updates 🚀

    • chore(deps): update dependency org.reactivestreams:reactive-streams to v1.0.4 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7516
    • chore(deps): update dependency io.micronaut.grpc:micronaut-grpc-bom to v3.3.1 by @renovate in https://github.com/micronaut-projects/micronaut-core/pull/7515

    Other Changes 💡

    • Fix resolving the type name for JavaGenericPlaceholderElement by @dstepanov in https://github.com/micronaut-projects/micronaut-core/pull/7528
    • fix sonar issue by @graemerocher in https://github.com/micronaut-projects/micronaut-core/pull/7531
    • Fix incremental compilation of configuration properties metadata by @graemerocher in https://github.com/micronaut-projects/micronaut-core/pull/7536
    • build: bump up servlet to 3.2.3 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/7541

    Full Changelog: https://github.com/micronaut-projects/micronaut-core/compare/v3.5.0...v3.5.1

    Source code(tar.gz)
    Source code(zip)
  • v3.5.0(May 25, 2022)

    v3.5.0 (2022-05-25)

    Full Changelog

    GraalVM 22.1.0

    Micronaut framework 3.5 supports GraalVM 22.1.0.

    Micronaut Gradle Plugin v3.4.0 and Micronaut Maven Plugin v3.3.0 support GraalVM 22.1.0.

    Incremental Compilation for Gradle Builds

    Micronaut framework 3.5 supports fully incremental compilation, including GraalVM metadata for Gradle Builds.

    Micronaut Data

    Micronaut Data 3.4.0 supports:

    • Postgres enums for JDBC.
    • Pagination for reactive repositories and specifications.
    • Pagination for async, coroutines repositories, and specifications.

    Turbo Integration

    Micronaut Views adds integration with Turbo

    New Module - Micronaut Microstream

    Micronaut Microstream eases working with MicroStream, a native Java object graph storage engine.

    @Scheduled with Time Zones

    Optionally, you can specify a time zone when using the <<scheduling,@Scheduled annotation>>.

    @Scheduled(cron = '1/33 0/1 * 1/1 * ?', zoneId = "America/Chicago")
    void runCron() {
    ...
    ..
    

    Support validation groups with @Validated

    You can enforce a subset of constraints using validation groups using groups on the @Validated.

    Advanced Listener Configuration

    Micronaut framework 3.5.0 offers more flexibility in configuring the HTTP Server. Instead of configuring a single port, you can specify each listener manually.

    EPHEMERAL FACTORIES

    A Factory has the default scope @Singleton, and it is destroyed with the context. Since Micronaut framework v3.5.0, you can dispose of the factory after producing a bean by annotating your factory class with @Prototype and @Factory

    Module upgrades

    Several modules publish a BOM (Bill of Materials) or use a Gradle Version Catalogs:

    Schema Migration Modules

    Source code(tar.gz)
    Source code(zip)
  • v3.4.4(May 17, 2022)

    v3.4.4 (2022-05-16)

    Full Changelog

    Bug Fixes

    • Define Maven plugin versions (#7231) (#7232)
    • Fix metrics CORS problems (#7354)
    • fix: DefaultBeanContext#getBeansOfType should return programmatically registered singletons (#7308) (#7357)
    • fix: apply injection point qualifier on BeanProvider's get call (#7255)
    • fix: mapped mjs extension to application/javascript (#7307)
    • fix: repeatable annotations should be included when cloning annotation metadata (#7315)
    • build: Downgrade failsafe maven plugin to 2.22.2 (#7338)

    Micronaut Modules Patch Updates

    • Micronaut maven plugin to 3.2.3 to 3.2.4
    • Micronaut SQL from 4.2.2 to 4.2.3
    • Micronaut JaxRS from 3.2.0 to 3.2.1
    • Micronaut Oraclecloud from 2.1.1 to 2.1.3
    • Micronaut MQTT from 2.1.0 to 2.1.1
    • Micronaut Openapi from 4.0.0 to 4.0.1

    Other versions Patch Updates

    • picocli 4.6.3
    • logback from 1.2.10 to 1.2.11
    • log4j from 2.17.1 to 2.17.2
    • Netty from 4.1.76.Final to 4.1.77.Final
    • Project Reactor from to 3.4.14 to 3.4.18
    • Slf4j from 1.7.29 to 1.7.36
    • Spring from 5.3.19 to 5.3.20
    • Vertx from 3.9.12to 3.9.13
    • blaze 1.6.4 to 1.6.6
    • kafka from 2.8.0 to 2.8.1
    • groovy from 3.0.9 to 3.0.10
    • mysql from 8.0.27 to 8.0.29
    • springboot from 2.5.3 to 2.5.12
    • Spring 5.3.9 to 5.3.19
    • neo4j from 3.5.29 to 3.5.32
    • ktor from 1.6.1 to 1.6.8
    • jetty from 9.4.44.v20210927 to 9.4.46.v20220331
    • caffeine from 2.9.1 to 2.9.3
    • methvin-directory-watcher from 0.15.0 to 0.15.1
    • lombok from 1.18.22 to 1.18.24
    Source code(tar.gz)
    Source code(zip)
  • v3.4.3(Apr 29, 2022)

    v3.4.3 (2022-04-29)

    Full Changelog

    Issues:

    • Support for deserialization from Base64 into a byte array. (#7236)
    • Correct Kotlin coroutine interceptions (#7247)
    • Ignore unrecoverable ClosedChannelException errors (#7246)
    • Validation group inheritance, group validation (#7260)

    Documentation:

    • @Blocking #7228
    • Default value for thread selection #7240
    • Correct io.micronaut.spring.tx documentation mentions #7227

    Contributors

    @dstepanov, @graemerocher, @kevin-wise, @ondrej-hrstka, @sdelamo and @wetted


    Changes

    • doc: @Blocking @wetted (#7228)
    • build: bump up problem from 2.2.2 to 2.2.3 @sdelamo (#7284)
    • fix: validation group inheritance, group validation @kevin-wise (#7260)
    • Fixed support for deserialization from Base64 into a byte array. (#7223) @ondrej-hrstka (#7236)
    • doc: default value for thread selection @sdelamo (#7240)
    • doc: move blocking Operation to its own file @sdelamo (#7242)
    • Correct docs to reflect removal of io.micronaut.spring/tx/annotation/Transactional @wetted (#7227)
    • build: bump mikepenz/action-junit-report from 3.0.1 to 3.0.2 @dependabot (#7229)

    🐛 Bug Fixes

    • Ignore unrecoverable ClosedChannelException errors @graemerocher (#7246)
    • Correct Kotlin coroutine interceptions @dstepanov (#7247)
    Source code(tar.gz)
    Source code(zip)
  • v3.4.2(Apr 14, 2022)

    Bug Fixes

    • fix: handle @ConfigurationProperties nested in @EachProperty properly @Paullo612 (#7211)
    • Requires bean property with default interface method fix @GavrilovSV (#7200)
    • Properly proceed in filter processing when request is replaced @yawkat (#7174)
    • Don't use custom BeanPropertyWriter for xml module @yawkat (#7170)
    • Fix BeanProvider's find method @Paullo612 (#7133)
    • Support absolute-form URI in HTTP requests @yawkat (#7201)

    Dependency Upgrades

    • upgrade to Netty 4.1.76.Final @graemerocher (#7213)
    • build: bump up AWS to 3.2.3 @sdelamo (#7212)
    • Bump micronaut-email to 1.2.1 @micronaut-build (#7184)
    • build: bump micronaut-aot to 1.0.3 @micronaut-build (#7181)
    • Bump micronaut-maven-plugin to 3.2.3 @micronaut-build (#7185)
    • Bump micronaut-micrometer to 4.2.1 @micronaut-build (#7203)

    Docs

    • Fix links @alvarosanchez (#7194)
    • update Gradle native image command and directory @burtbeckwith (#7187)
    • javadoc: Adds missing javadoc @sdelamo (#7216)

    CI

    • ci: setup-java to @v3 @micronaut-build (#7209)
    • [core] Update common files for branch 3.4.x @micronaut-build (#7168)

    TEST

    • test: how qualifiers and scopes resolved in factories @sdelamo (#7208)

    Contributors

    @GavrilovSV, @Paullo612, @alvarosanchez, @burtbeckwith, @graemerocher, @micronaut-build, @sdelamo and @yawkat

    Source code(tar.gz)
    Source code(zip)
  • v3.4.1(Mar 31, 2022)

    Core Patches

    • Support JsonNaming and JsonProperty for BeanIntrospectionModule @yawkat (#7139)
    • correctly propagate stereotypes from mutated annotations @graemerocher (#7140)
    • Do not add Named to factory bean fields @dstepanov (#7145)
    • Allow JDK serialization of null @yawkat (#7149)
    • Update jackson-databind to 2.13.2.2 @yawkat (#7146)
    • removeAnnotationIf should update caches @graemerocher (#7127)
    • Enable leak detection for all tests, fix various leaks @yawkat (#6896)

    Module patches

    • Bump micronaut-serialization to 1.0.1 @micronaut-build (#7160)
    • Bump micronaut-aot to 1.0.1 @micronaut-build (#7155)
    • Bump micronaut-maven-plugin to 3.2.1 @micronaut-build (#7159)
    • Bump micronaut-servlet to 3.2.2 @micronaut-build (#7137)

    Changes

    • Support JsonNaming and JsonProperty for BeanIntrospectionModule @yawkat (#7139)
    • correctly propagate stereotypes from mutated annotations @graemerocher (#7140)
    • Do not add Named to factory bean fields @dstepanov (#7145)
    • Allow JDK serialization of null @yawkat (#7149)
    • build(deps): bump io.micronaut.build.shared.settings from 5.3.0 to 5.3.2 @dependabot (#7157)
    • Bump micronaut-serialization to 1.0.1 @micronaut-build (#7160)
    • Bump micronaut-aot to 1.0.1 @micronaut-build (#7155)
    • Bump micronaut-maven-plugin to 3.2.1 @micronaut-build (#7159)
    • Update jackson @yawkat (#7146)
    • Don't initialize ResourceLeakDetector at build time @yawkat (#7142)
    • Update Micronaut Parent POM @alvarosanchez (#7120)
    • Bump micronaut-servlet to 3.2.2 @micronaut-build (#7137)
    • Remove bom-check module @melix (#7138)
    • Refactor the Gradle build @melix (#7048)
    • Enable leak detection for all tests, fix various leaks @yawkat (#6896)
    • ci: release TARGET_REPOSITORY @micronaut-build (#7136)
    • Bump micronaut-aot to 1.0.0 @micronaut-build (#7131)
    • ci: cache@v3 @micronaut-build (#7128)
    • ci: check_retries: true @micronaut-build (#7118)
    • removeAnnotationIf should update caches @graemerocher (#7127)

    Contributors

    @alvarosanchez, @dependabot, @dependabot[bot], @dstepanov, @graemerocher, @melix, @micronaut-build and @yawkat

    Source code(tar.gz)
    Source code(zip)
  • v3.4.0(Mar 22, 2022)

    v3.4.0 (2022-03-22)

    Full Changelog

    Localized Message Source

    You can now inject LocalizedMessageSource, a @RequestScope bean, in your controllers to resolve localized messages for the current HTTP Request. It works in combination with Micronaut Locale Resolution capabilities.

    Referencing bean properties in @Requires.

    With 3.4.0, you can reference other beans properties in @Requires to load beans conditionally.

    @Requires(bean=Config.class, beanProperty="foo", value="John")
    

    Micronaut Data MongoDB

    Micronaut Data 3.3.0 includes Micronaut Data MongoDB.

    Micronaut AOT and Maven

    Micronaut AOT is now fully supported for Maven users. Enabling AOT is as simply as passing -Dmicronaut.aot.enabled when running, testing, or packaging your application.

    For more details, check the Micronaut Maven Plugin documentation.

    Micronaut TOML

    Micronaut TOML allows you to write your application configuration with TOML in addition to Properties, YAML, Groovy or Config4k.

    Micronaut Security

    Micronaut Security 3.4.1 responds with an error when an authenticated user visits a sensitive endpoint. This forces the developer to define how they want their application to behave in that scenario. Read the release notes and the documentation to learn more.

    BOM Modules

    Several projects include a BOM (Bills of Materials) module:

    Other Module Upgrades


    Changes

    • Bump micronaut-sql to 4.2.2 @micronaut-build (#7119)
    • Disable InputStreamBodySpec2 @yawkat (#7112)
    • Cache JsonMapper in DefaultNettyHttpClientRegistry @yawkat (#7117)
    • Bump micronaut-kafka to 4.2.0 @micronaut-build (#7114)
    • Bump micronaut-kotlin to 3.2.2 @micronaut-build (#7115)
    • Bump micronaut-data to 3.3.0 @micronaut-build (#7113)
    • Extract AbortCompilation to own method @yawkat (#7111)
    • ci: action-junit-report to 3.0.1 @micronaut-build (#7110)
    • Improve Maven plugin's what's new section for 3.4.x @alvarosanchez (#7109)
    • Bump micronaut-kotlin to 3.2.1 @micronaut-build (#7108)
    • doc: update What's new section for 3.4.0 @sdelamo (#7106)
    • Bump micronaut-maven-plugin to 3.2.0 @micronaut-build (#7103)
    • Update Native Build Tools to 0.9.10 @alvarosanchez (#7102)
    • Bump micronaut-email to 1.2.0 @micronaut-build (#7100)
    • Correct bean property type @dstepanov (#7092)
    • Correct handling of properties starting with 'is' for Kotlin @dstepanov (#7094)
    • Bump micronaut-serialization to 1.0.0 @micronaut-build (#7095)
    • Update to jackson 2.13 @yawkat (#7096)
    • Add Micronaut AOT version to the BOM as a managed property @alvarosanchez (#7093)
    • Bump micronaut-tracing to 4.1.1 @micronaut-build (#7090)
    • Bump micronaut-acme to 3.1.0 @micronaut-build (#7091)
    • doc: change scope from runtime to runtimeOnly @sdelamo (#7089)
    • Correct JavaWildcardElement native type @dstepanov (#7088)
    • Correct JavaGenericPlaceholderElement native type @dstepanov (#7081)
    • Allow query field elements from superclasses and interfaces @dstepanov (#7073)
    • Bump micronaut-kubernetes to 3.4.0 @micronaut-build (#7080)
    • Allow defining additional beans with processed methods @graemerocher (#7069)
    • Allow deserializing _embedded values of HATEOAS resources @yawkat (#6850)
    • Address sonar static analysis issues @graemerocher (#6979)
    • test: JsonError embedded is deserialized @sdelamo (#7079)
    • test: fields using ElementQuery @sdelamo (#7078)
    • build: bump micronaut-mongodb to 4.1.0 and use BOM @micronaut-build (#7076)
    • Bump micronaut-sql to 4.2.1 @micronaut-build (#7075)
    • Bump micronaut-serialization to 1.0.0-RC3 @micronaut-build (#7074)
    • Correct Java implementation if PackageElement#getName method @dstepanov (#7063)
    • buld: remove managed-lettuce @micronaut-build (#7053)
    • Bump micronaut-oracle-cloud to 2.1.1 @micronaut-build (#7065)
    • Bump micronaut-groovy to 3.1.0 @micronaut-build (#7062)
    • Bump micronaut-servlet to 3.2.1 @micronaut-build (#7060)
    • build: r2dbc to 2.1.0 @sdelamo (#7061)
    • Bump micronaut-sql to 4.2.0 @micronaut-build (#7059)
    • Bump micronaut-toml to 1.0.0 @micronaut-build (#7050)
    • Rename includeHiddenMethods as it's also useful for hidden fields @dstepanov (#7051)
    • build: update to gradle 7.4.1 @micronaut-build (#7057)
    • Add 5.2.0 redis bom to 3.4 build @timyates (#7054)
    • Dependencies upgrade @sdelamo (#7049)
    • Support getting overridden and hidden methods for Java. Corrected case with duplicate interfaces. @dstepanov (#7038)
    • Upgrade to build plugins 5.2.3 @melix (#7023)
    • Add mqtt 2.1.0 bom to core build @timyates (#7021)
    • [core] Update common files for branch 3.3.x @micronaut-build (#6835)
    • Bump micronaut-azure to 3.2.1 @micronaut-build (#7018)
    • Bump micronaut-data to 3.3.0-RC1 @micronaut-build (#6972)
    • Allow querying enum constants as fields @dstepanov (#7017)
    • test: add query enum tests @sdelamo (#7019)
    • Bump micronaut-reactor to 2.2.1 @micronaut-build (#7012)
    • Fix Sonar issues assigned to me @alvarosanchez (#7015)
    • Bump micronaut-jaxrs to 3.2.0 @micronaut-build (#6989)
    • build: bump up micronaut test to 3.1.0 @sdelamo (#7008)
    • Add GCP BOM to 3.4.x @timyates (#6987)
    • test: ReactiveSequenceSpec ignore if jdk17 and CI @sdelamo (#7009)
    • Bump micronaut-cache to 3.2.0 @micronaut-build (#6906)
    • Bump micronaut-multitenancy to 4.1.0 @micronaut-build (#7005)
    • Cleaner fix for proxying SSE streams @timyates (#6999)
    • Bump micronaut-aws to 3.2.0 @micronaut-build (#6998)
    • bulid: update micronaut build from 5.2.1 to 5.2.2 @sdelamo (#6997)
    • Bump micronaut-security to 3.4.1 @micronaut-build (#6990)
    • Fix API documentation @tobiasschaefer (#6991)
    • Add recommendation regarding secrets to docs @graemerocher (#6986)
    • doc: update ProxyFilter snippet title @obukhovas (#6458)
    • Bump micronaut-gcp to 4.1.0 @micronaut-build (#6983)
    • Bump micronaut-security to 3.4.0 @micronaut-build (#6982)
    • fix various sonar issues @yawkat (#6988)
    • Don't create stereotype for @Nonnull(when=MAYBE) @yawkat (#6980)
    • Fix various sonar issues @yawkat (#6969)
    • Do not request demand for completed HandlerPublisher @yawkat (#6949)
    • Correct recognizing a getter with a second character being a number @dstepanov (#6968)
    • Fix broken link in documentation @tobiasschaefer (#6973)
    • Log error if client binder is ignored @jameskleeh (#6966)

    🚀 Features

    • Add support for reflectively invoking executable methods for imported beans @graemerocher (#7097)
    • Using @ConfigurationProperties methods in @Requires annotation @GavrilovSV (#6173)

    🐛 Bug Fixes

    • bug: Don't strip newlines proxying ServerSentEvents @timyates (#6992)

    Contributors

    @GavrilovSV, @alvarosanchez, @dstepanov, @graemerocher, @jameskleeh, @melix, @micronaut-build, @obukhovas, @sdelamo, @timyates, @tobiasschaefer and @yawkat

    Source code(tar.gz)
    Source code(zip)
  • v3.3.4(Feb 28, 2022)

    Changes

    • Revert retain causing memory leak @jameskleeh (#6970)
    • Bump micronaut-flyway to 5.1.3 @micronaut-build (#6926)
    • Bump micronaut-serialization to 1.0.0-RC2 @micronaut-build (#6964)
    • Document client binding on types @jameskleeh (#6965)
    • Reset messageContext to its previous state once pojoConstraints are validated @agugan (#6922)
    • Fix double-checked locking @yawkat (#6963)
    • Address static analysis issues @melix (#6958)
    • Remove redudant boxing in TimeConverterRegistrar @SplotyCode (#6940)
    • Add missing environment variable @alvarosanchez (#6950)
    • First cut of Sonar Cloud integration @alvarosanchez (#6893)
    • Fix response leak when request is already done @yawkat (#6935)
    • Handle invalid content length header @yawkat (#6934)
    • Mark ScheduledMethodProcessor.close as PreDestroy @mattmoss (#6932)
    • Remove unused and deprecated import in documentation @sascha-frinken (#6931)
    • Make leak detection more reliable @yawkat (#6930)
    • print warning on insecure configuration @graemerocher (#6920)
    • docs: fix typos in 'Micronaut Architecture' section @tobiasschaefer (#6921)
    • Merge field annotation metadata into setter argument annotation metadata @mattmoss (#6797)
    • Bump io.micronaut.build.shared.settings from 5.1.2 to 5.1.3 @dependabot (#6915)
    • Write out status code and message from HttpStatusException @mattmoss (#6886)
    • Backport #6895 to 3.2.x @yawkat (#6919)

    🐛 Bug Fixes

    • Do not wait for request data after decode failure @yawkat (#6941)
    • Set an identifier on collections of BeanRegistrations @timyates (#6924)

    Contributors

    @SplotyCode, @agugan, @alvarosanchez, @dependabot, @dependabot[bot], @graemerocher, @jameskleeh, @mattmoss, @melix, @micronaut-build, @sascha-frinken, @timyates, @tobiasschaefer and @yawkat

    Source code(tar.gz)
    Source code(zip)
  • v3.3.3(Feb 15, 2022)

  • v3.3.2(Feb 14, 2022)

    Changes

    • Bump micronaut-jackson-xml to 3.0.1 @micronaut-build (#6908)
    • Bump micronaut-serialization to 1.0.0-M7 @micronaut-build (#6913)
    • Fix slf4j init error - Fixes #6912 @graemerocher (#6914)
    • Make the CLI optional to use Micronaut in quick start documentation @graemerocher (#6907)
    • Handle equals sign in values of undeclared options @jameskleeh (#6902)
    • For HEAD requests, contentType should be unchanged @mattmoss (#6903)
    • Micronaut Core Architecture Documentation @graemerocher (#6851)
    • Bump micronaut-tracing to 4.0.3 @micronaut-build (#6887)
    • Bump micronaut-cache to 3.1.1 @micronaut-build (#6898)
    • Bump micronaut-views to 3.1.3 @micronaut-build (#6897)
    • Release unwrapped body in NettyHttpRequest @yawkat (#6891)
    • Handle client response exceptions for full responses to streaming requests @jameskleeh (#6888)
    • Do not detect leaks from other tests in BufferLeakDetection @yawkat (#6892)

    🐛 Bug Fixes

    • Fix RandomAccessFile leak in NettySystemFileCustomizableResponseType @yawkat (#6895)

    Contributors

    @graemerocher, @jameskleeh, @mattmoss, @micronaut-build and @yawkat

    Source code(tar.gz)
    Source code(zip)
  • v3.3.1(Feb 8, 2022)

    Changes

    • Update broken links in the guide @timyates (#6882)
    • Bump micronaut-email to 1.0.1 @micronaut-build (#6884)
    • Introduce UnsafeBeanProperty and fix performance of setter @dstepanov (#6877)
    • docs: Fix javadoc links to non-core projects @timyates (#6880)
    • Remove extra tracing entries. Add back legacy group and artifact @jameskleeh (#6871)
    • Bump micronaut-azure to 3.0.1 @micronaut-build (#6861)
    • Bump micronaut-servlet to 3.1.1 @micronaut-build (#6852)
    • Fix AnnotationValue#getAnnotation @bene1618 (#6841)
    • Bump micronaut-maven-plugin to 3.1.1 @micronaut-build (#6849)
    • Update jackson @yawkat (#6846)
    • Bump peter-evans/create-pull-request from 3.12.0 to 3.12.1 @dependabot (#6845)
    • Bump micronaut-flyway to 5.1.2 @micronaut-build (#6832)
    • Bump micronaut-aws to 3.1.1 @micronaut-build (#6830)

    🐛 Bug Fixes

    • Avoid double-free in content branch of NettyHttpRequest.buildBody @yawkat (#6712)
    • Release streaming HTTP data when request is invalid @yawkat (#6879)

    Contributors

    @bene1618, @dependabot, @dependabot[bot], @dstepanov, @jameskleeh, @micronaut-build, @timyates and @yawkat

    Source code(tar.gz)
    Source code(zip)
  • v3.3.0(Jan 27, 2022)

    Changes

    • Add JsonMapper-based readMetadataUrl method to ComputeInstanceMetadataResolverUtils @yawkat (#6587)
    • Bump to Oracle Cloud 2.0.4 @graemerocher (#6827)
    • Bump micronaut-aws to 3.1.0 @micronaut-build (#6618)
    • remove tracing and add new micronaut-tracing versions and bom @burtbeckwith (#6809)
    • Fix the docs for legacyMasking @timyates (#6823)
    • GraalVM version is 22.0.0.2 @ilopmar (#6822)
    • Add capturedException on Retry in order to be able to retry also on Throwable @tchiotludo (#6821)
    • Delay access log ListAppender checks to fix flaky tests @yawkat (#6819)
    • Add unsupported config option for logging HTTP data to pcap file @yawkat (#6813)
    • Bump micronaut-kubernetes to 3.3.0 @micronaut-build (#6818)
    • Move server SSL config to the right place @timyates (#6779)
    • Upgrade to GraalVM 22.0.0 @ilopmar (#6811)
    • Bump micronaut-serialization to 1.0.0-M6 @micronaut-build (#6816)
    • Bump micronaut-kotlin to 3.1.0 @micronaut-build (#6812)
    • Upgrade GraalVM docs @ilopmar (#6725)
    • Remove extra call to validate pojos @jameskleeh (#6807)
    • remove slf4j simple @graemerocher (#6805)
    • build: add boms @sdelamo (#6806)
    • Configurable masking and hiding for the env endpoint @timyates (#6711)
    • Bump micronaut-serialization to 1.0.0-M5 @micronaut-build (#6775)
    • Bump discovery-client to 3.1.0 @graemerocher (#6777)
    • Bump micronaut-cache to 3.1.0 @micronaut-build (#6802)
    • Bump micronaut-openapi to 4.0.0 @micronaut-build (#6801)
    • Fix missing immutableConfig docs @timyates (#6800)
    • Fix slow test initialization ImmutableSortedStringsArrayMapTest (#6791) @alextu (#6799)
    • Bump io.micronaut.build.shared.settings from 5.1.1 to 5.1.2 @dependabot (#6798)
    • Bump micronaut-sql to 4.1.1 @micronaut-build (#6788)
    • Remove unnecessary constructor @ilopmar (#6726)
    • Create new netty-graal module for native image configuration @yawkat (#6657)
    • Access log can exclude defined regular expression patterns @timyates (#6753)
    • Add micronaut-toml to BOM @yawkat (#6780)
    • Document options for customising JsonFactory @timyates (#6794)
    • Add a test for setting the management port to the server port @timyates (#6787)
    • Updated VSCode instructions @timyates (#6789)
    • Bump micronaut-liquibase to 5.1.1 @micronaut-build (#6793)
    • Bump micronaut-flyway to 5.1.1 @micronaut-build (#6792)
    • Fix wrong unit in @Body documentation @yawkat (#6784)
    • build: bump non-micronaut managed patch dependencies @pgressa (#6776)

    🚀 Features

    • Add the ability to configure Netty's default allocator @graemerocher (#6661)

    🐛 Bug Fixes

    • Support interleaved requests in access logger @yawkat (#6785)
    • Fix introspection on beans with covariant return types @timyates (#6790)

    Contributors

    @alextu, @burtbeckwith, @dependabot, @dependabot[bot], @graemerocher, @ilopmar, @jameskleeh, @micronaut-build, @pgressa, @sdelamo, @tchiotludo, @timyates and @yawkat

    Source code(tar.gz)
    Source code(zip)
  • v3.3.0-M1(Jan 19, 2022)

    What's Changed

    • add jaeger support for codec by @manuelmartinoracle in https://github.com/micronaut-projects/micronaut-core/pull/6535
    • build: updates logback from 1.2.3 to 1.2.8 by @sdelamo in https://github.com/micronaut-projects/micronaut-core/pull/6660
    • Bump micronaut-views to 3.1.2 by @micronaut-build in https://github.com/micronaut-projects/micronaut-core/pull/6688
    • Add new @AccessorsStyle annotation by @ilopmar in https://github.com/micronaut-projects/micronaut-core/pull/6620
    • Introduce a static optimizations loader by @melix in https://github.com/micronaut-projects/micronaut-core/pull/6694
    • Constant property sources shouldn't all be loaded by @melix in https://github.com/micronaut-projects/micronaut-core/pull/6668
    • Allow @Inherited annotations for nullability by @timyates in https://github.com/micronaut-projects/micronaut-core/pull/6716
    • Bump micronaut-sql to 4.1.0 by @micronaut-build in https://github.com/micronaut-projects/micronaut-core/pull/6676
    • Bump micronaut-picocli to 4.1.0 by @micronaut-build in https://github.com/micronaut-projects/micronaut-core/pull/6674
    • Bump micronaut-kafka to 4.1.1 by @micronaut-build in https://github.com/micronaut-projects/micronaut-core/pull/6673
    • Allow file watcher restarts for messaging apps by @timyates in https://github.com/micronaut-projects/micronaut-core/pull/6728
    • Delay response for Mono bodies of HttpResponse return values by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/6722
    • Bump micronaut-liquibase to 5.1.0 by @micronaut-build in https://github.com/micronaut-projects/micronaut-core/pull/6736
    • Bump micronaut-flyway to 5.1.0 by @micronaut-build in https://github.com/micronaut-projects/micronaut-core/pull/6738
    • Pick JSON Content-Type by default when route info is missing by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/6748
    • add serde to BOM by @graemerocher in https://github.com/micronaut-projects/micronaut-core/pull/6747
    • Bump micronaut-serialization to 1.0.0-M4 by @micronaut-build in https://github.com/micronaut-projects/micronaut-core/pull/6758
    • Fix record serialization for native image by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/6770
    • Bump micronaut-security to 3.2.3 by @micronaut-build in https://github.com/micronaut-projects/micronaut-core/pull/6765
    • Delegate name resolution to proxy in DefaultHttpClient by @yawkat in https://github.com/micronaut-projects/micronaut-core/pull/6761
    • Exclude Groovy autogenerated MAX_VALUE and MIN_VALUE from enum by @ilopmar in https://github.com/micronaut-projects/micronaut-core/pull/6763
    • Bump micronaut-elasticsearch to 4.2.0 by @micronaut-build in https://github.com/micronaut-projects/micronaut-core/pull/6773
    • Support for interceptor binding with annotation members by @graemerocher in https://github.com/micronaut-projects/micronaut-core/pull/6670

    New Contributors

    • @manuelmartinoracle made their first contribution in https://github.com/micronaut-projects/micronaut-core/pull/6535

    Full Changelog: https://github.com/micronaut-projects/micronaut-core/compare/3.2.x...v3.3.0-M1

    Source code(tar.gz)
    Source code(zip)
  • v3.2.7(Jan 18, 2022)

    Changes

    • Upgrade to Netty 4.1.73.Final @ilopmar (#6774)
    • Add Gradle Enterprise badge @alextu (#6746)
    • Add jaxrs-server-security to catalog @pgressa (#6757)

    🐛 Bug Fixes

    • Release FileUpload, not the wrapped buffer, in NettyCompletedFileUpload @yawkat (#6759)
    • Handle void return type from Function clients @timyates (#6771)
    • Fix binding mixed attributes to body parameters @yawkat (#6764)

    Contributors

    @alextu, @ilopmar, @jameskleeh, @micronaut-build, @pgressa, @timyates and @yawkat

    Source code(tar.gz)
    Source code(zip)
Bank Statement Analyzer Application that currently runs in terminal with the commands: javac Application.java java Application [file-name].csv GUI coming soon...

Bank Statement Analyzer Application that currently runs in terminal with the commands: javac Application.java java Application [file-name].csv GUI coming soon...

Hayden Hanson 0 May 21, 2022
Lattice is a powerful, lightweight business extension invoke framework. By using the Lattice framework, complex business customization can be efficiently organized and managed.

Lattice Framework Introduction Lattice is a powerful, lightweight business extension invoke framework. By using the Lattice framework, complex busines

null 41 Dec 30, 2022
The Quotation Management application is a API REST created using Spring Boot framework.

✅ Quotation Management API - Done ✅ About • Features • Setup • Technologies • Author • License ?? About The Quotation Management application is a API

Vanessa Swerts 6 Apr 29, 2022
This project is a simple messaging application made using React-Native framework, Gifted-Chat library and Firebase database

This project is a simple messaging application made using React-Native framework, Gifted-Chat library and Firebase database. The example that will be shown here focuses on the ability of two people to message each other in a chat room.

null 3 Jan 30, 2022
Application for creating blog posts, developed with Java using Spring Framework for backend and Angular along with PrimeNG Library for frontend development.

Application for creating blog posts, developed with Java using Spring Framework for backend and Angular along with PrimeNG Library for frontend development.

Áureo Carmelino 10 Nov 27, 2022
This repository is for Todo application. This contains the Backend part of the application.

Todo Application 개요(Abstract) 개인용 할일 목록 리스트 앱플리케이션 구축 (Personal Todo List Application) 목적 1. React.js기초, AWS서버 활용, 스프링 부트 공부 목적으로 프로젝트 시작했습니다.

Thom 3 Jan 8, 2022
Android application made during an introduction class to mobile application development.

Reflex Revolution Android application made during an introduction class to mobile application development. Contributors Hailey Savoie Carter Moore Fre

Frederic Verret 3 Aug 27, 2022
Spring Boot starter module for gRPC framework.

Spring Boot starter module for gRPC framework.

Michael Zhang 2.8k Jan 4, 2023
Spring Boot starter module for gRPC framework.

Spring Boot starter module for gRPC framework.

Michael Zhang 1.8k Mar 17, 2021
High performance RPC framework based on netty

RPC(Remote Procedure Call)实战 @desc: 仅用于个人学习、了解RPC @date: 2021/01/16 技术组成: 版本一 版本二 版本三 传输层 Netty4 * * 编码层 Kryo * * 应用层 JDK动态代理 * * 服务注册与发现 手动注册+guava缓存

XDD 10 Nov 22, 2022
An annotation-based command framework for Bukkit

Blade Blade is an easy-to-use command framework based on annotations. It currently only supports Bukkit, but it can be easily extended to more platfor

null 40 Nov 6, 2022
Mars - Object Relational Mapping Framework for MongoDB (MongoDB ORM)

Mars Object Relational Mapping Framework for MongoDB 致自己 造自己的轮子,让别人去说 ; What is Mars Mars is a unified driver platform product developed by Shanghai J

null 35 Nov 17, 2022
ESA ServiceKeeper is a lightweight service governance framework.

ServiceKeeper ServiceKeeper is a lightweight service governance framework that provides many awesome features such as rate limit, concurrent limit, ci

ESA Stack 22 Aug 11, 2022
A developer oriented, headless ecommerce framework based on Spring + GraphQL + Angular.

GeekStore A developer oriented, headless ecommerce framework based on Spring + GraphQL + Angular. Headless means GeekStore only focus on the backend,

波波微课 13 Jul 27, 2022
a simple mini-project using Spring framework

Room Reservation Service First attempts to learn Spring with Linkedin-Learning led me to create this mini-project; a simple room reservation service f

Taha Elmi 4 Sep 23, 2021
Java framework for making REST clients

Pocolifo's REST Client Framework Java framework for making REST clients Here's how easy it is Here's an example for a GET request in the context of a

null 3 Jun 19, 2022
Experimental validation mini-framework

ClinQ Simple yet interesting validation mini-framework Features Declarative checks ClinQ.checker(Integer.class) .with(i -> i % 2 == 0) .with(i

Alexey Akhundov 13 Sep 27, 2022
Integration Test Framework for Paper!

MiniTestFramework Integration Test Framework for Paper! Usage Install plugin Create Test Structure /test create <filename.testname> [width] Build cont

MiniDigger | Martin 12 Nov 25, 2022