Caution: Falling Rocks

As Liferay gears up for the 2025.Q3 release of DXP, developers and DevOps teams should brace for significant under-the-hood changes driven by the migration from Java EE to Jakarta EE. This blog post highlights the implications of the namespace shift—such as altered package names, toolchain updates, and potential build issues—especially for those working on older Liferay versions. It offers a friendly caution to developers: be mindful when pulling from the master branch or updating tools, and stay vigilant for unexpected jakarta.* references. Plus, a reminder that support is just a Slack message away.

Okay, okay—there aren’t actually falling rocks. But if you’re a developer working with Liferay DXP, especially as we approach the 2025.Q3 release, it might feel like you’re dodging debris.

That’s because we’re knee-deep in a major renovation: the move from Java EE to Jakarta EE. And let me tell you, the changes are real. Package names, dependencies, taglibs (TLDs), build tooling—it’s all shifting under our feet.

The Big Switch

Right now, all commits going into the liferay-portal repo are full steam ahead on Jakarta EE. That means javax.* is becoming jakarta.* all over the place. So if you’re used to pulling fixes or examples from master to patch your CE project, you’ll need to pay close attention. That slick piece of code you just copied? Might need some namespace backporting before it compiles in your older stack.

Trust me—I’ve already done the “Why won’t this compile? Oh… right… namespace” dance more times than I care to admit.

Toolchain Trouble?

Speaking of changes, the toolchain is evolving too. The Liferay Workspace Gradle plugin, Service Builder, REST Builder—they’re all being updated to support Jakarta. And some of those updates are already landing.

So if your dev muscle memory says “let’s update everything!”—maybe pause for a second. Updating to the latest version of one of those tools could inadvertently introduce Jakarta dependencies into your CE project, and then boom: falling rocks. And yes, even the client-extension samples workspace has seen some tweaks—like updated plugin versions and target platforms—so watch your step there, too.

TL;DR

Here’s your heads-up, from me to you:

  • Don’t blindly update your workspace plugins or tool versions just yet.

  • Expect namespace collisions if you grab code from master and try to drop it into older Liferay versions.

  • Watch out for accidental jakarta references in your builds—they sneak in easily.

  • Keep an eye on the tooling updates, especially if you’re working on DevOps, CI/CD pipelines, or custom tooling wrappers.

Most importantly, don't try to do the upgrade to Jakarta EE on your own just yet; We're not ready, tools aren't ready, ... Don't worry, when things are ready to go on Liferay's end, trust that I'll be blogging about it to announce and help you get started.

And if something breaks (and let’s face it, something will break), hit me up on the Liferay Community Slack. I’m happy to help you unwind things, revert, or figure out a solid workaround.

Stay safe out there, folks. The road to Jakarta is under construction, but we’ll all get there in one piece.