1. Introduction

AssertJ is a library that provides fluent assertions for Java. You can read more about it here and here.

Recently, the 3.6.0 version was released along with two small bug-fix releases 3.6.1 and 3.6.2.

Today, Joel Costigliola – the creator of the library – is with us and will tell you a little bit more about the release and future plans.

“We are trying to make AssertJ really community-oriented”

2. Versions 2.6.0 and 3.6.0 were released pretty much at the same time. What is the difference between them? 

2.x versions target Java 7 while 3.x target Java 8. Another way of seeing this is that 3.x = 2.x + Java 8 specific features.

3. What are the most notable changes/additions that appeared in 3.6.0/2.6.0?

2.6.0 ended up having different small features but no big additions. If I had to choose, the most interesting ones would be those related to suppresed exceptions:
hasSuppresedException()
– hasNoSuppresedExceptions()

3.6.0 additionally got a way of checking multiples assertions on array/iterable/map entry elements:

4. Since the release of 3.6.0, two bugfix releases appeared (3.6.1, 3.6.2). Can you tell us a little bit more what happened there and what needed to be fixed?

In 3.6.1, filteredOn(Predicate) was only working with List but not Iterable, pretty bad.

In 3.6.2, we did not think of extracting properties from Java 8 default getter method, it turns out it did not work out of the box after some internal refactoring.

I asked users whether they could wait for the next release, the bug reporter told me he was ok to wait but another user wanted it so I released a new version. We are trying to make AssertJ really community-oriented, since cutting a release is cheap (well except the documentation part) I usually don’t see any problem releasing.

5. Did you encounter any interesting technical challenges when working on the newest release?

I will point a problem I have encountered working on the next release 3.7.0 that should be out in few weeks.

Java 8 is picky about “ambiguous” method signatures. We added a new assertThat method that takes a ThrowingCallable (a simple class that is a Callable throwing an exception), it turned out that Java 8 confuses it with another assertThat method that takes an Iterable!

That was the most surprising to me as I don’t see any ambiguity between the two.

6. Are you planning any new major release soon? Anything that will utilize Java 9 additions?

In the next weeks / one month. We usually try to have releases every few months or when there are major additions.

Pascal Schumacher that has joined the AssertJ team has done some work on Java 9 to check compatibility, a few things don’t work, mainly the ones that rely on introspection since Java 9 changes the access rules. What we will do is start a 4.x branch that will be Java 9 focused, following the same strategy as 3.x vs 2.x, we will have 4.x = 3.x + Java 9 features.

Once 4.0 is officially released we will likely drop 2.x active development but keep accepting PRs as we do not have the capacity of maintaining 3 versions in sync, I mean by that we report any changes from n.x version to the n+1.x version, so adding something in 2.x would need to reported both in 3.x and 4.x and that is too much work at the moment.

  • Hi, this page is really awesome resource for Java developers, and was for a long time. Unfortunately lately you cannot simply just read article because ads get into your way. I understand that you may expect some profits for creating a good content (that you definitively have), but then why not to use an unobtrusive ads like these on Stackoverflow or like Google ads instead of an awful popup. I am sure I am not the only person that feels this way, if you are afraid of addblockers adding friendly note like “If you like this page and want us to continue deliver quality articles please disable add blocker” may help.

    • Hey Marcin,
      That’s a very interesting point you raise here, because I take user experience very seriously on the site.
      The reason I find it so interesting is that – there are NO ads running on the site.
      If you mean the eBook optins – those are not ads. And, they’re mostly out of the way of the UX (sidebar and bottom of the post)
      The only one that is a popup – and I’m assuming this is what you’re referring to – is a simple lightbox that only comes up once and should never be shown if you cancel it.
      So – if you’re seeing anything else – I’m definitely interested. Feel free to email me (with a screenshot if possible) and I’ll of course have a look.

      Cheers and thanks for reaching out. Feedback like this is exactly how the site gets better.
      Eugen.

      • Thanks for a quick response, looks like this was a problem with my browser, after clearing cookies and opening a few pages now I see only two eBook options on sidebar and at the bottom of the article, and indeed no popup. Sorry for my previous comment I should check better. Anyway you page is great, thanks again!

        • No worries Marcin, I’m glad it’s sorted out. And again, if there’s anything that looks not ideal on the site, let me know – that’s always very useful.
          Cheers,
          Eugen.