Looking foreward to leading Oracle’s contributions to
@micronautfw
and working closely with the
@graalvm
and
@helidon_project
teams
Micronaut’s unique compilation time approach has driven industry change in framework design and I cant wait to continuing that work at
@oracle
We’re excited that
@GraemeRocher
, founder of
@micronautfw
, is joining Oracle! We’re looking forward to working more closely with and contribute to the Micronaut community. We have always supported the Micronaut team as a leader in supporting
@GraalVM
for cloud-native Java apps.
Today I turned 40. I feel blessed to have spent 15 of those years working on great Open Source tech like
@ApacheGroovy
@grailsframework
and
@micronautfw
So thanks to the communities behind those technologies and great Open Source companies like
@ObjectComputing
Try as many times as you like, I will never work for a company like yours. Facebook is the worst thing to ever come out of the technology world and one of the worst things humanity has created.
#DeleteFacebook
Amazing thing about the 9 months since we open sourced
@micronautfw
is the impact it has had on server side
@java
. Inspiring
@Redhat
to come up with
@quarkusio
. Pushing
@springboot
to improve performance. Micronaut shifted industry strategy. That is what I call groundbreaking!
Saying goodbye to the home office I have worked at for the last 11 years. Great times working on
@grailsframework
and creating
@micronautfw
in this space. So long old friend! Hopefully the next office is as productive 😅
You can now fit a complete
@micronautfw
+
@gradle
build in a tweet 😍:
plugins {
id 'io.micronaut.application' version '1.0.3'
}
repositories {
mavenCentral()
}
micronaut {
version = "2.1.0"
runtime "netty"
}
mainClassName = "example.Application"
Have you ever asked yourself how Spring uses annotations?
Annotations in Spring serve to mark classes, methods, and fields with metadata that Spring's container can process, reducing the need for extensive XML configuration.
Annotations in Spring work technically through
Switched from embedded
@apachekafka
to
@testcontainers
for our
@micronautfw
Kafka tests and it fixed whole bunch of intermittent port binding problems we were having in our CI environment (now
@Github
actions) for Micronaut Kafka. Love Test Containers 😍
Micronaut Predator example applications can be found at
Both the JDBC and JPA examples can be turned into
@graalvm
native images
The JDBC one produces an image 25MB smaller without Hibernate
@xqliu
1. Its presence breaks every other annotation processor you want to use
2. Mutates the Java AST breaking incremental compilation
3. Alters the Java debugger so you can no longer step into code
4. Breaks with every new release of Java 5. Uses internal compiler APIs
I can go on...
So glad this finally here. So many new features but for me Micronaut 2 is all about speed: faster native CLI, faster startup, faster incremental builds and a faster runtime. Plus all the
@GraalVM
improvements for native image are awesome 😎
Micronaut 4 became the first Java framework to support a fully compilation time, reflection-free and type safe safe Expression Language (EL)
We continue to push the boundaries of what is possible to move to the compilation phase 💪
#micronaut
#java
An individual award for Open Source feels a bit like an oxymoron given all the contributors required for a project to be successful. Nevertheless thank you to the
@ApacheGroovy
&
@grailsframework
communities and to Oracle
@groundbreakers
for considering me
Even without
@GraalVM
@java
startup doesn’t have to slow.
@micronautfw
with
@OpenJ9
as fast as node
java -Xshareclasses -Xscmx128m -Xquickstart -noverify -jar app-0.1-all.jar
[main] INFO i.m.runtime.Micronaut - Startup completed in 328ms. Server Running:
http://localhost:8080
The wording in this
@golang
release is astonishing
“Here are generics, but just so you know we will probably break them at some random point in the future”
Yup
@java
has no competition in the enterprise space whatsoever
I’m blown away by
@GCPcloud
Run. So easy to use compared to all the ceremony required around
@awscloud
Lambda. Took me no time to have a
@micronautfw
application running.
Slides from my 3 hour Micronaut Deep Dive at
@Devoxx
that covers more of the nitty, gritty details of
@micronautfw
can be found here
Associated YouTube video:
Thanks to the Devoxx team for the fast upload!
#micronaut
#java
Cool. Just wrote a Jackson module that uses
@micronautfw
’s new BeanIntrospection API allowing reflection free JSON serialisation and deserialisation
This means it is largely unnecessary to generate reflect.json for
@graalvm
😍
#java
#graalvm
#micronaut
Shifted the main
@micronautfw
build from Travis to Github Actions and now testing again
@OpenJDK
@java
8, 11 and 13 (and probably soon 14). Switching cut our build times from 25 minutes to 15 minutes, which is a big win.
#micronaut
#java
#openjdk
It is ok to be humble and acknowledge the influence and work of others. Nothing was invented in a vacuum, everything we do is an evolution of something else or someone else’s amazing work.
Tracing APIs are becoming the new logging APIs in Java. i.e. a complete and absolute cluster 😱
* Brave
* OpenTracing
* OpenCensus
* OpenTelemetry
* XYZ Vender API
* When does it end………
Already excited about upcoming
@micronautfw
1.2 and built-in bean validation support
Reflection free, reduced startup and memory consumption, out-of-the-box
@graalvm
substrate support and even able to compile time verify your source code
#micronaut
Some further thoughts.
This is going to be a huge win for the
@java
ecosystem.
Not for years has there been as much excitement around Java tools and frameworks.
Tech like
@micronautfw
and
@graalvm
have been big triggers for that.
We’re excited that
@GraemeRocher
, founder of
@micronautfw
, is joining Oracle! We’re looking forward to working more closely with and contribute to the Micronaut community. We have always supported the Micronaut team as a leader in supporting
@GraalVM
for cloud-native Java apps.
Micronaut 2.5 is out! This is an important release that brings support for
@java
16 and
@graalvm
21.1 on Micronaut Launch, huge improvements to Micronaut Data from
@DenisStepanov
, improved
@OracleCloud
integration and many other small improvements
Working with JSON parsing implementations I have new found respect for
@fasterxml
Jackson.
The complexity required to get Json subtype binding working is insane. I guess that is why it was never supported in JSON-B
Working on some super slick improvements for
@micronautfw
plus
@gradle
plus
@Graalvm
Going to make packing multi cloud functions and applications a breeze 😎
Tremendous amount of work went into the Micronaut 3.3 release, which is
@graalvm
22.0 ready.
Here are some of the contributions from the team including folks from the
@graalvm
cloud native team at
@oraclelabs
and
@ObjectComputing
, a thread 👇
Spent time writing some architecture documentation for
@micronautfw
for the latest release for those interested in how the internals work.
Feedback welcome!
#micronaut
#graalvm
#java
One criticism from the Micronaut Deep Dive talk that I received was that it covered too much of the internals of
@micronautfw
. I think internals of how something works bubble up into your application code whether you like it or not and when the bubbles smell that is a problem
So with latest
@micronautfw
1.3.x vs
@springboot
webflux 2.2.x using JDK 13 running just “java -jar app.jar” without any JVM flags average startup is 800ms for Micronaut and 1.8s for Boot.
After all the recent optimisations still a full second behind
#micronaut
#springboot
Micronaut 2.4 is out and there are so many great things in this release beyond the summary, I thought I would discuss some of them 👇
#micronaut
#java
#graalvm
Nice. Completely moved Micronaut Data’s CI from Travis to
@Github
Actions with 2 workflows. One for runnings tests and publishing snapshots to Sonatype OSS and another for uploading releases to Bintray, publishing docs and syncing to Maven Central 🎉
@omervk
On the contrary dependency injection frameworks like Spring and Micronaut have helped a wide range of developers to rationalise, modularise and improve the structure and maintainability of complex apps that need to be dynamically configured to support a wide range of use cases
Gaming is what got me into programming. All that time spent rebuilding PCs with the latest pentium/voodoo chipsets and programming mods with QuakeC taught me a lot. But damn I have come a long way from that acne covered kid 😂😂
Holy hells, Happy 20th Quake III <3🤪
My pal Roach (aka
@graemerocher
) was one of the best Quake players in the world back then, and we spent way more time playing it than we did going to class. Oh well.
Please enjoy this photo entitled “roach_with_hisandmy_quake_boxes.jpg”
Shaved a few MB off
@micronautfw
max heap requirements. Now possible to run “Hello World” Java app with -Xmx7m (7mb of max heap), 3 less than M1. Pooling immutable collections and using List instead of Set helps memory consumption :)
#micronaut
#micronautfw
GraalVM 21.1 is released!🚀
It brings faster warmup, smaller downloads, JDK 16-based builds and much more!
Read what’s inside:
Download:
Get it, try it, let us know what you think!
This is one of the coolest Micronaut apps I have worked on. Same app being built into a
@graalvm
powered native CLI app for Linux, Mac and Windows plus deployed as an API to
@GoogleCloud
Run for ultra fast serverless cold starts. \1
Though the list could be debated to no end, it is nice to see
@micronautfw
recognised in this list which reflects the awesome innovations pioneered in Micronaut in 2018 and now being broadly adopted by other frameworks
#micronaut
#java
Are your calendars marked for July 18? The Micronaut team has an exciting announcement, and we can’t wait to share it! Join us for an exclusive, live, online event when we unveil a new technology and demonstrate its capabilities for the first time.
My final
@micronautfw
contribution of the year was to largely re-write the compiler to make it easier to extend in the future, with the bonus that 2.3 will support computing annotations on generic type arguments at compilation time
#micronaut
#java
Slides from my “Introduction to Micronaut” talk at
@jbcnconf
2019
Thanks for all those attended, awesome seeing all the buzz around
@micronautfw
and exciting stories from real world use cases. Even the
@jbcnconf
app built with Micronaut and
@kotlin
!
Great to see Micronaut 3.0 ship. lots of goodies in this release with a lot work going into the DI implementation to support ongoing work with
@cdispec
lite
The new build time metadata format that optimizes for
@graalvm
native image is awesome too!
📢 The Micronaut Foundation is excited to announce the GA release of Micronaut framework 3! Read all about this release in more detail in our latest blog post
#micronaut
Massively excited to have Cedric on board who is going to bring his years of experience at Gradle to help next level the build tooling for
@graalvm
@micronautfw
focusing on native image, incremental compilation and more. Welcome aboard!
Micronaut 2.1 is out!
I’m most excited by the new Micronaut
@gradle
plugin which helps building
@graalvm
native images and with
@docker
builds which plays a key role in the new support for
@OracleCloud
functions. Check it out in this video:
#micronaut
After a period where hating on
@ASFMavenProject
was trendy on Twitter it seems tables have turned and hating on
@gradle
is now trendy. Can only conclude it must be the latter’s adoption numbers going up
@bitfield
Complete nonsense IMO. Anyone who says this has only worked on projects where the problem domain is so trivial that comments don’t add any clarity
All the noise about startup times is just that noise and is just distracting from the real goal which is quite simply to build more efficient applications
I am so glad there are no dynamic classloaders or custom URL classloaders in Micronaut. I had forgotten how painful it is to debug classloading issues in traditional frameworks
#micronautfw
Thanks to
@ilopmar
our suite of tests that continuously test the latest
@micronautfw
snapshots against the latest
@GraalVM
substrate native image build preventing regression has been expanded to include tests for Micronaut Data for
@PostgreSQL
,
@Oracle
XE and and
@h2database
Another 3.x release and more optimization included for
@graalvm
, also
@java
17 available from launch plus loads of other improvements including sweet news for
@kotlin
users with Micronaut Data support for coroutines 🚀