Skip to content

Commit a49c960

Browse files
Update blogposts and authors
1 parent 517eac7 commit a49c960

3 files changed

Lines changed: 45 additions & 28 deletions

File tree

blog/2025-12-28-problem4j-project-launch.md

Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,25 @@
11
---
22
slug: 2025-12-28-problem4j-project-launch
33
title: Problem4J Project Launch
4-
authors: malczuuu
4+
authors: damianmalczewski
55
tags: [hello, release]
66
---
77

88
Hi everyone 👋
99

10-
Allow me to introduce Problem4J to y'all. It's another set of Java libraries implementing **RFC7807 - Problem Details
11-
for HTTP APIs**.
10+
Allow me to introduce Problem4J to y'all. It's another set of Java libraries implementing **RFC7807 - Problem Details for HTTP APIs**.
1211

13-
Problem4J is a package of libraries that introduces RFC Problem Details to the Java ecosystem. It combines an
14-
imperative approach, based on extending a common exception type (`ProblemException`), with a declarative,
15-
annotation-based approach (via `@ProblemMapping`). As a primary set of modules, `problem4j-core`, `problem4j-jackson`,
16-
and `problem4j-spring` were introduced, providing a core (framework-agnostic) module, Jackson integration (both v2 -
17-
`com.fasterxml.jackson` and v3 - `tools.jackson`), as well as Spring Boot integration (supporting both leading versions
18-
\- v3 and v4). Other integrations may (or may not) eventually arrive (...)
12+
Problem4J is a package of libraries that introduces RFC Problem Details to the Java ecosystem. It combines an imperative approach, based on extending a common exception type (`ProblemException`), with a declarative, annotation-based approach (via `@ProblemMapping`). As a primary set of modules, `problem4j-core`, `problem4j-jackson`, and `problem4j-spring` were introduced, providing a core (framework-agnostic) module, Jackson integration (both v2 - `com.fasterxml.jackson` and v3 - `tools.jackson`), as well as Spring Boot integration (supporting both leading versions \- v3 and v4). Other integrations may (or may not) eventually arrive.
1913

2014
{/* truncate */}
2115

2216
**Why should I care?**
2317

24-
If you are building HTTP APIs in Java, Problem4J aims to reduce the boilerplate around error handling while keeping
25-
your domain logic clean and explicit. By clearly separating the `Problem` representation from exceptions, and by
26-
offering both imperative and declarative mapping options, the library helps you produce consistent, standards-compliant
27-
error responses without tightly coupling your code to a specific framework. This becomes especially useful in high-end
28-
framework applications (such as Spring Boot), where sensible defaults and simple extension points can significantly
29-
improve both developer experience and maintainability.
18+
If you are building HTTP APIs in Java, Problem4J aims to reduce the boilerplate around error handling while keeping your domain logic clean and explicit. By clearly separating the `Problem` representation from exceptions, and by offering both imperative and declarative mapping options, the library helps you produce consistent, standards-compliant error responses without tightly coupling your code to a specific framework. This becomes especially useful in high-end framework applications (such as Spring Boot), where sensible defaults and simple extension points can significantly improve both developer experience and maintainability.
3019

3120
---
3221

33-
The following modules and versions are considered the first public releases of this library. Previous versions were
34-
developed as a "personal playground" under the `io.github.malczuuu.problem4j` group namespace.
22+
The following modules and versions are considered the first public releases of this library. Previous versions were developed as a "personal playground" under the `io.github.malczuuu.problem4j` group namespace.
3523

3624
* Core
3725
* `io.github.problem4j:problem4j-core:1.3.0`
@@ -51,13 +39,7 @@ developed as a "personal playground" under the `io.github.malczuuu.problem4j` gr
5139

5240
---
5341

54-
The main inspiration was the idea of taking a slightly different approach than [`zalando/problem`][zalando-problem], as
55-
well as the fact that [`zalando/problem-spring-web`][zalando-problem-spring-web] does not seem to have received an
56-
update for Spring Boot 4 at the time of writing this post. What differentiates this library from Zalando's is the
57-
separation of the `Problem` model from the throwable `ProblemException`, including a declarative approach with
58-
`@ProblemMapping` annotation, as well as making Spring Boot's predefined exception handlers more beginner-friendly
59-
(simple `ProblemResolver` implementations declared as `@Component`s). Moreover, predefined Spring Boot error messages
60-
tend to hide exception internals and do not expose plain exception messages in HTTP responses.
42+
The main inspiration was the idea of taking a slightly different approach than [`zalando/problem`][zalando-problem], as well as the fact that [`zalando/problem-spring-web`][zalando-problem-spring-web] does not seem to have received an update for Spring Boot 4 at the time of writing this post. What differentiates this library from Zalando's is the separation of the `Problem` model from the throwable `ProblemException`, including a declarative approach with `@ProblemMapping` annotation, as well as making Spring Boot's predefined exception handlers more beginner-friendly (simple `ProblemResolver` implementations declared as `@Component`s). Moreover, predefined Spring Boot error messages tend to hide exception internals and do not expose plain exception messages in HTTP responses.
6143

6244
---
6345

@@ -67,6 +49,8 @@ Feedback, ideas, and contributions are very welcome 🚀
6749

6850
* [RFC7807 - Problem Details for HTTP APIs][rfc7807]
6951
* [RFC9457 - Problem Details for HTTP APIs][rfc9457]
52+
* [Zalando Problem][zalando-problem]
53+
* [Zalando Problem Spring Web][zalando-problem-spring-web]
7054

7155
[rfc7807]: https://datatracker.ietf.org/doc/html/rfc7807
7256

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
slug: 2026-05-10-problem4j-major-version-update
3+
title: Problem4J Major Version Update
4+
authors: damianmalczewski
5+
tags: [hello, release]
6+
---
7+
8+
Hi again 👋
9+
10+
I’m excited to share that Problem4J has just released a major new version across all modules. This update is focused on cleaning up the library design, improving maintainability, and delivering a more polished public API.
11+
12+
{/* truncate */}
13+
14+
Deprecations were removed, the public API was refined, and experimental concepts were either fully embraced (for example, `ProblemContext` in the core library) or intentionally simplified and delegated to application code (like the cache eviction for `ProblemResolverStore` implementations).
15+
16+
---
17+
18+
The following modules and versions are the current generation of this project:
19+
20+
* Core
21+
* `io.github.problem4j:problem4j-core:2.0.0`
22+
* Jackson Integration
23+
* `io.github.problem4j:problem4j-jackson2:2.0.0` (Jackson 2 - `com.fasterxml.jackson`)
24+
* `io.github.problem4j:problem4j-jackson3:2.0.0` (Jackson 3 - `tools.jackson`)
25+
* Spring Boot 4.x Integration
26+
* `io.github.problem4j:problem4j-spring-bom:3.0.0`
27+
* `io.github.problem4j:problem4j-spring-web:3.0.0`
28+
* `io.github.problem4j:problem4j-spring-webflux:3.0.0`
29+
* `io.github.problem4j:problem4j-spring-webmvc:3.0.0`
30+
31+
---
32+
33+
As always, feedback, ideas, and contributions are very welcome.

blog/authors.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
malczuuu:
1+
damianmalczewski:
22
name: Damian Malczewski
33
title: Problem4J Author
4-
url: https://github.com/malczuuu
5-
image_url: https://github.com/malczuuu.png
4+
url: https://github.com/damianmalczewski
5+
image_url: https://github.com/damianmalczewski.png
66
page: true
77
socials:
8-
github: malczuuu
8+
github: damianmalczewski

0 commit comments

Comments
 (0)