Sign in

Stefano Cordio

@scordio.github.io
623 followers 189 following 132 posts

Software Engineer @ EPAM Systems Maintainer of @assertj.github.io

PostsRepliesMedia
Stefano Cordio @scordio.github.io · 23/08/2026
TIL you cannot access non-constant static fields in an enum constructor (JLS §8.9.2), unlike in a standard class. This is because enum constructors run during enum class initialization, while non-constant fields are initialized later, creating a forward reference. docs.oracle.com/javase/specs...
JLS §8.9.2 excerpt: "It is a compile-time error to refer to a static field of an enum class from a constructor, instance initializer, or instance variable initializer in the enum declaration of the class, unless the field is a constant variable (§4.12.4)."
000
Stefano Cordio @scordio.github.io · 20/08/2026
🤷 #UserIsPicky #NoShortcuts
000
Stefano Cordio @scordio.github.io · 29/07/2026
Me two months ago, when I chose the next AssertJ topic: "How hard could it possibly be?" github.com/assertj/asse...
The Traumatized Mr. Incredible Meme, where on the left it says "Deprecate AssertionsForClassTypes and AssertionsForInterfaceTypes", and on the right it says "82 files changed, +3'967, -2'489".
020
Stefano Cordio @scordio.github.io · 14/05/2026
Now the Java User Group in Zurich knows what's wrong with AssertJ! And also how we're working to improve things. We're still in the early stages, but I can't wait to see all this work shipped to our users 🚀 Thank you so much to everyone who joined and @patbaumgartner.com for hosting! I had a blast!
083
Stefano Cordio @scordio.github.io · 17/02/2026
📢 AssertJ joined the GitHub Secure Open Source Fund, a program that leveled up security across 67 open source projects. What changed for us: SHA pinning, immutable releases, incident response plan, and a mindset shift toward security awareness 🔒 The impact? More robust JVM assertions 🚀
AssertJ quote from the GitHub Secure Open Source Fund: "We shifted security from a stretch goal to a core requirement."
1146
Stefano Cordio @scordio.github.io · 16/02/2026
When an issue magically disappears because you haven't decided to fix it 🪄🐛🤔
The text of a ticket closure: "Closed because we haven’t decided to fix this in the last year. Please reopen if this is a mistake."
000
Stefano Cordio @scordio.github.io · 21/06/2025
Fixed! 😅
A Java code snippet containing:

private Object arguments @Nullable [];
110
Stefano Cordio @scordio.github.io · 21/06/2025
I'm definitely not used to reading such array declarations 🙈 #Java #JSpecify
A Java code snippet containing:

private Object @Nullable [] arguments;
482
Stefano Cordio @scordio.github.io · 08/06/2025
One of those days when I'm grateful that `git reflog` exists 🙈🙏
git push --force in a Yoda meme
000
Stefano Cordio @scordio.github.io · 02/06/2025
📆 Only two weeks until Hack.Commit.Push, on June 13th in Winterthur!🇨🇭 Join us for a day of learning, sharing, and contributing to Open Source 🧑‍💻 winterthur2025.hack-commit-pu.sh
Trainings:
Git /GitHub

Projects:
AssertJ (Java)
Cucumber (C++)
Harbor CLI (Go)
JReleaser (Java)
OpenFeature (Java, JavaScript, Go, Python, ...)
Spring Batch (Java)
vmlens (Java)
033
Stefano Cordio @scordio.github.io · 25/03/2025
And here we are! #VDZ25
042
Stefano Cordio @scordio.github.io · 25/03/2025
Hey @maciejwalkowiak.bsky.social, I see you've made it to Voxxed Days Zürich also this year! #VDZ25 @ixchelruiz.bsky.social @andresalmiray.com
Excerpt of Maciej Walkowiak's blog post on releasing to Maven Central via JReleaser
020
Stefano Cordio @scordio.github.io · 08/03/2025
@lobaorn.bsky.social and @sormuras.bsky.social helped me figure out that an argument file could bypass the Windows limitation. Both Maven and the IDE seem happy so far 🙂
Maven POM properties:

<properties>
  <argLine>@${project.basedir}/argFile</argLine>
</properties>Text file content with --add-modules, --add-opens, and --add-exports command line options needed for in-module testing
121
Stefano Cordio @scordio.github.io · 05/03/2025
#JPMS In-module testing and Windows. What could possibly go wrong?
An extremely long command line to execute in-module testing for AssertJ"This is fine meme" with a command line error on top:

The command line is too long.
[DEBUG] Closing the fork 1 after not saying Good Bye.
360
Stefano Cordio @scordio.github.io · 18/02/2025
#JPMS Java Module System and Maven module-only setup. What could possibly go wrong?
230
Stefano Cordio @scordio.github.io · 09/02/2025
In case snapshots also count... ✅
130
Stefano Cordio @scordio.github.io · 31/12/2024
Interesting, mine appears to work fine with a line break at the end
100
Stefano Cordio @scordio.github.io · 23/11/2024
Getting ready! Get in touch if you'd like to work together on AssertJ or Spring Batch Notion 👨‍💻
My Hack.Commit.Push name tag
142
Stefano Cordio @scordio.github.io · 21/09/2024
On GitHub: • Create a repository named `<user>.github.io` • Create a .well-known/atproto-did file with the DID string • Create a _config.yml file with `include: [".well-known"]` Go back to Bluesky, hit Verify Text File, and enjoy your new handle! 3/3
340
Stefano Cordio @scordio.github.io · 21/09/2024
On Bluesky: • Go to Settings -> Change Handle • Select "I have my own domain" • Type `<user>.github.io` as domain value • Select "No DNS Panel" and copy the DID string 2/3
130
Stefano Cordio @scordio.github.io · 21/09/2024
Hey @github.com users on @bsky.app, did you know you can get a github.io handle in a few steps? 1/3
25118
Stefano Cordio @scordio.github.io · 24/08/2024
Because life is too short to write Java 8 tests
<maven.compiler.release>8</maven.compiler.release>
<maven.compiler.testRelease>21</maven.compiler.testRelease>
011
Stefano Cordio @scordio.github.io · 24/07/2024
It's already been five years since I joined AssertJ 🤯 I'm truly grateful for the amazing opportunity that Joel Costigliola has given me, it made me realize how much I enjoy coding in my spare time 😄 And now I'm so excited that I'll be helping shape the next AssertJ major version! 🚀
Screenshot of the email subject I received from Joel Costigliola on 23/07/2019: "Would you like to become an AssertJ commiter?"
030
Stefano Cordio @scordio.github.io · 23/04/2024
🍃 The Spring Framework embraces AssertJ custom assertions for MockMvc! While only a few developers maintain AssertJ in their spare time (one here 🙋), seeing adoptions by industry-leading frameworks is incredibly motivating and further validates our efforts. Many thanks for your trust, Spring Team!
AssertJ support for MockMvc

We love AssertJ! While Spring Boot has already jumped on that train a while ago and provides several testing facilities using it, the framework team has been more conservative. At the same time, we recognize that our Hamcrest support may not fit everyone’s needs: the use of static imports make the API less discoverable and writing custom assertions is harder.

Spring Framework 6.2.0-M1 provides an exhaustive support for testing your web application with MockMvc and AssertJ.
000
Stefano Cordio @scordio.github.io · 09/02/2024
The second thing was the weird config property... I can guess what the first value is, but what about the others? A Maven plugin could nicely wrap all of these, providing the related description. github.com/qodana/qodan...
000
Stefano Cordio @scordio.github.io · 09/02/2024
I've been looking at how to configure code coverage on Qodana for a Maven project, using the IntelliJ coverage agent. Compared to the equivalent JaCoCo or Gradle-based solutions, the IntelliJ agent could shine better with a Maven plugin🦉⚙️ github.com/qodana/qodan...
110
Stefano Cordio @scordio.github.io · 20/12/2023
Bashing your head against the wall because of `Stream::mapMulti` added in Java 16? Here's a short and powerful example from @nipafx.bsky.social 👇 nipafx.dev/java-16-stre...
A Java code snippet that shows how `Stream::mapMulti` can work together with `Optional::ifPresent`.

---

Stream.of(Optional.of("0"), Optional.of("1"), Optional.empty())
  .mapMulti(Optional::ifPresent) // !!!
  .forEach(System.out::print);
}
011
Stefano Cordio @scordio.github.io · 01/11/2023
📢 Spring Batch Notion 0.1.0-M2 is out! ✨ The highlight of this release is the initial support for filtering via a fluent API that mimics the database filter option in Notion's UI. github.com/scordio/spri...
A screenshot that shows a complex filter in the Notion UIA code snippet that shows the corresponding Java API to define the complex filter:

where().checkbox("Read").isEqualTo(true)
  .and(where().multiSelect("Author").contains("Kara Swisher")
      .or().select("Score /5").isEqualTo(⭐️))
000