Blog

Technical articles on Liferay DXP development, client extensions, and tooling.

Liferay DXPPostgreSQLDatabase Migration

Migrating Liferay to PostgreSQL: A More Reliable Alternative to Liferay's Beta Tool

August 23, 2026 · 3 min read

Liferay's own database migration tool is still Beta and unreliable in practice. Here's a third-party alternative, the exact 8-step migration procedure, and links to the tool and its docs.

Liferay DXPSecurityCVE

When a CVE Isn't a Liferay Vulnerability: Presence vs. Reachability

August 23, 2026 · 7 min read

A security scanner finding a CVE in a bundled library isn't proof that Liferay DXP is exploitable through it. Here's how Liferay's security team tells the difference — and why an unnecessary dependency upgrade isn't automatically the safer choice.

Liferay DXPFree TierLicensing

DXP Free Tier Licenses: Why the Product Version Doesn't Have to Match Your Runtime

August 23, 2026 · 3 min read

A DXP Free Tier activation key stamped with a quarterly release that hadn't shipped yet looked like a bug. It wasn't — here's what the product-version field in a Liferay license actually means, and why it isn't a strict compatibility gate.

Liferay DXPOSGiGradle

No More Guesswork: A Gradle Plugin That Deploys Liferay OSGi Modules in the Right Order

August 23, 2026 · 4 min read

A Gradle plugin that maps your Liferay workspace's module dependencies, deploys them in dependency-safe waves, and confirms each one reaches Active in the Gogo shell before moving on — so you stop hand-ordering deployments.

Liferay DXPHeadless APIsREST

Beyond GET: What HTTP QUERY (RFC 10008) Could Mean for Liferay's Headless APIs

August 23, 2026 · 6 min read

RFC 10008 gives HTTP a QUERY method — safe and idempotent like GET, but with a request body like POST. Here's what it actually specifies, and where it would fit into Liferay's Headless REST APIs.

Liferay DXPRed Hat JBoss Web ServerTomcat

Installing Liferay DXP 2026.Q1 on Red Hat JBoss Web Server 6.2.3: Filling the Gaps in the Tomcat Guide

August 23, 2026 · 8 min read

Liferay's official Tomcat installation guide gets you most of the way to a JBoss Web Server 6.2.3 deployment — but three assumptions (Java version, JVM module flags, and Liferay Home) will break a 2026.Q1 install if you follow it literally.

Liferay DXPReactClient Extensions

Instant Hot Reload for Liferay React Client Extensions

August 23, 2026 · 6 min read

How the liferay-cx-hmr-setup CLI replaces Liferay DXP's 20-30 second Gradle rebuild-and-redeploy loop with sub-second, state-preserving Vite HMR for React client extensions.

Liferay DXPKotlin MultiplatformMobile Development

KDXP: One Kotlin Codebase for Liferay Apps on Android, iOS, Desktop, and Web

August 23, 2026 · 2 min read

KDXP is a new Kotlin Multiplatform and Compose Multiplatform SDK for building client apps on top of Liferay — one shared codebase targeting Android, iOS, desktop, and web, filling a gap left since Liferay retired its mobile SDKs.

Liferay DXPAI HubSite Generation

A First Look at Liferay's AI Content Site Generator

August 23, 2026 · 4 min read

Liferay AI Hub's Content Site Generator turns a single prompt into a multi-page site — pages, navigation, layout, and imagery — built from standard fragments and Style Books rather than throwaway generated code.

Liferay DXPAI HubChatbots

Structuring Liferay AI Hub: When to Build an Agent vs. Write an Instruction

August 23, 2026 · 6 min read

Practical design guidance for Liferay AI Hub — when a task needs its own agent versus a reusable instruction, why several small agents route better than one big branching workflow, and how guardrails actually enforce limits a prompt can't.

Liferay DXPBatch EngineHeadless APIs

Liferay Batch Imports Audit: Knowing What Happened to Your Data

August 23, 2026 · 5 min read

A Control Panel tool that surfaces Liferay's Batch Engine task and error tables as a filterable, searchable UI — turning batch import troubleshooting from a support ticket and a database query into a few clicks.

Liferay DXPCloud Native ExperienceKubernetes

What Liferay's Cloud Native Experience Actually Is

August 23, 2026 · 5 min read

Cloud Native Experience (CNE) is Liferay's middle ground between fully self-hosted DXP and a fully managed cloud platform — GitOps, Terraform, and Kubernetes automation, with infrastructure ownership staying with you.

Liferay DXPKotlin MultiplatformKDXP

Why There's Almost No 'Liferay + Kotlin' Content Yet — and the KDXP Demo Changing That

August 23, 2026 · 2 min read

Liferay has a mature backend but no modern cross-platform client story. A search for 'Liferay Kotlin' turns up almost nothing except a KDXP setup demo — here's what that demo actually shows.

Liferay DXPDatabase MigrationUpgrades

Liferay's Database Upgrade Tool Gets Earlier Validation and Smarter Defaults

August 23, 2026 · 4 min read

DXP 2026.Q1 reworks the database upgrade tool's rough edges: unsupported databases and bad paths are now caught before the run starts, JDBC settings can be reused automatically, and batch-insert optimizations are applied by default.

Liferay DXPRelease NotesCloud Native Experience

What's New in Liferay DXP 2026.Q2

August 23, 2026 · 2 min read

Liferay DXP 2026.Q2's headline additions: Digital Sales Rooms in beta, a private beta of Liferay Data Platform, Cloud Native Experience for AWS reaching general availability, faster search reindexing, Style Books improvements, and a new Global Menu.

Liferay DXPFragmentsOpen Source

What's New in Peter Richards' Liferay Fragments Repository: 2026 LTS, a Visual Gallery, and Drop-and-Go Deploys

August 23, 2026 · 3 min read

An update on Peter Richards' open-source Liferay Fragments repository: fragments re-verified against 2026 LTS, a built-in visual gallery, version-specific packaged releases, and a zip-based drop-and-go deployment workflow.

Liferay DXPKaleo WorkflowGemini

A Human-in-the-Loop Content Moderation Agent Built on Liferay Workflow and Gemini

August 23, 2026 · 3 min read

Instead of a keyword filter, a Liferay Kaleo Workflow wired to Gemini 2.5 Flash reads intent and sarcasm before flagging a comment — augmenting human moderators rather than replacing them.

Liferay DXPLiferay ObjectsOSGi

Skip the Headless API: Calling Liferay Objects Directly with ObjectEntryManager

August 23, 2026 · 4 min read

Liferay's Headless REST API is the right tool for frontend and external integrations — but inside an OSGi module, calling ObjectEntryManager directly skips the HTTP round-trip entirely. Here's when that trade is worth making.

Liferay DXPLiferay PaaSModSecurity

Getting Useful ModSecurity Logs Out of Liferay PaaS

August 23, 2026 · 6 min read

Liferay's docs cover turning ModSecurity on and routing its log to the Console — they don't cover the config combination that quietly floods your logging pipeline. Field-tested directives for audit scope, log parts, and format.

Liferay DXPOIDCSingle Sign-On

OIDC Back-Channel Logout in Liferay DXP: Closing the Single-Logout Gap

August 23, 2026 · 5 min read

Liferay DXP 2026.Q1 ships OIDC Back-Channel Logout — a server-to-server way to end a Liferay session the moment the identity provider's session ends. Here's how it works, how to wire it up, and what it doesn't cover yet.

Liferay DXPLiferay ObjectsRAG

RAG on Liferay Objects: Building a Distributor-Network Chatbot with a Local LLM

August 23, 2026 · 5 min read

A walkthrough of pairing a Liferay Object with a local Ollama model to answer natural-language questions about live distributor data — and why running the LLM locally, not in the cloud, was the right call for this kind of business data.

Liferay DXPService BuilderGradle

Liferay Service Builder Compatibility Matrix: Matching Plugin Version to Target Platform

August 23, 2026 · 4 min read

Liferay's Service Builder Gradle plugin defaults to the latest version — which can silently generate the wrong service code for an older target platform. Here's the version-matching table and workflow to avoid that.

Liferay DXPService BuilderLiferay Objects

Is Service Builder Still the Default? Rethinking Backend Architecture in Liferay

August 23, 2026 · 4 min read

Service Builder used to be the automatic starting point for every Liferay backend requirement. With Liferay Objects, Client Extensions, and headless APIs now available, that default no longer holds — here's when Service Builder still earns its place.