Capability

Development and Tooling

Liferay offers a comprehensive toolkit to extend or customize your digital experience. Build applications quickly with low-code/no-code features like Objects, or leverage developer tools like Liferay Workspace and Blade CLI for further customizations.

For users on PaaS or running Self-Hosted, Liferay also offers tools deploying customizations.

Feature
Deployment Approach
Creating a Standard Application
Creating a Standard Application To create applications based on a custom object takes four steps: create the object, create at least one form view, create at least one table view, and deploy the...
Published Date: Apr 26, 2024 8:57 PM
Deploying WARs (WAB Generator)
Deploying WARs (WAB Generator) You can create applications as Java EE-style Web Application ARchive (WAR) artifacts or as Java ARchive (JAR) OSGi bundle artifacts. Bean Portlets, PortletMVC4Spring...
Published Date: Apr 26, 2024 8:57 PM
Creating A Liferay Workspace
Creating A Liferay Workspace You can create a Liferay Workspace manually or with Blade CLI. Creating a Liferay Workspace Manually To create a Liferay Workspace manually, you must have Gradle...
Published Date: Apr 26, 2024 8:57 PM
What is Liferay Workspace?
What is Liferay Workspace? Liferay Workspace is a set of folders and Gradle scripts that represents the Liferay-opinionated way of handling a full development life cycle: Creating projects ...
Published Date: Apr 26, 2024 8:57 PM
Changes Between Bundler 1.x and 2.x
Changes Between Bundler 1.x and 2.x This article outlines the key changes between liferay-npm-bundler version 1.x and 2.x. Automatically Formatting Modules for AMD In version series 1.x of the...
Published Date: Apr 26, 2024 8:57 PM
Migrating Your Project to Use liferay-npm-bundler's New Mode
Migrating Your Project to Use liferay-npm-bundler's New Mode Since issue #303, two modes of operation are available for the liferay-npm-bundler. You can preprocess files before the bundler runs, or...
Published Date: Apr 26, 2024 8:57 PM
Default Bundler Loaders
Default Bundler Loaders Several loaders are available for the liferay-npm-bundler by default: babel-loader: processes source files with Babel. This avoids an extra build step before the bundler....
Published Date: Apr 26, 2024 8:57 PM
Liferay npm Bundler
Liferay npm Bundler :::: 2 :gutter: 3 3 3 3 ::: Liferay npm Bundler :link: ./liferay-npm-bundler/liferay-npm-bundler-intro.md ::: ::: Understanding the Liferay npm Bundler Loader :link:...
Published Date: Apr 26, 2024 8:57 PM
Other Tools
Other Tools Liferay CLI Tool Liferay npm Bundler Liferay npm Bundler Understanding Bundler Loaders Changes Between Bundler 1.x and 2.x Default Bundler Loaders How Liferay and Loader...
Published Date: Apr 26, 2024 8:57 PM
Migrating a Plain JavaScript, Billboard JS, JQuery, Metal JS, React, or Vue JS Project to Use Liferay npm Bundler 2.x
Migrating a Plain JavaScript, Billboard JS, JQuery, Metal JS, React, or Vue JS Project to Use Liferay npm Bundler 2.x Follow these steps to migrate the framework projects shown below to use...
Published Date: Apr 26, 2024 8:57 PM
How JavaScript Modules are Formatted for AMD
How JavaScript Modules are Formatted for AMD Liferay AMD Loader is based on the AMD specification. All modules inside an npm OSGi bundle must be in AMD format. This is done for CommonJS modules by...
Published Date: Apr 26, 2024 8:57 PM
How AMD Loader Configuration is Exported
How AMD Loader Configuration is Exported If you don't understand how Liferay AMD Loader works under the hood, please read [Liferay AMD Module Loader](./understanding-bundler-loaders.md) first. ...
Published Date: Apr 26, 2024 8:57 PM
Migrating a liferay-npm-bundler Project from 1.x to 2.x
Migrating a liferay-npm-bundler Project from 1.x to 2.x liferay-npm-bundler 2.x offers more stability and includes more features out-of-the-box. If you already created a project using the 1.x...
Published Date: Apr 26, 2024 8:57 PM
Understanding the npmbundlerrc Structure
Understanding the npmbundlerrc Structure The liferay-npm-bundler is configured via a .npmbundlerrc file placed in the widget project's root folder. You can create a complete configuration manually...
Published Date: Apr 26, 2024 8:57 PM
OSGi Bundles and npm Package Structure
OSGi Bundles and npm Package Structure To deploy JavaScript modules, you must create an OSGi bundle with the npm dependencies extracted from the project's node_modules folder and modify them to...
Published Date: Apr 26, 2024 8:57 PM
Liferay npm Bundler
Liferay npm Bundler The liferay-npm-bundler is a bundler (like Webpack or Browserify) that targets Liferay Portal as a platform and assumes you're using your npm packages from widgets (as opposed...
Published Date: Apr 26, 2024 8:57 PM
Poshi Advantages
Poshi Advantages Simplified Syntax To make it easier for less technical testers to read and write test automation, Poshi uses a simplified Groovy-like script syntax. It is less wordy than most...
Published Date: Apr 26, 2024 8:57 PM
Understanding Test Results and Debugging Tests
Understanding Test Results and Debugging Tests Poshi tests are run on the terminal or command line. When a test run is completed there are multiple ways to view the test results and diagnose test...
Published Date: Apr 26, 2024 8:57 PM
Syntax Validation
Syntax Validation The Poshi Standalone grade projects includes a validation task that can be used to check your code for syntax errors before running your test. To use this, simply run ./gradlew...
Published Date: Apr 26, 2024 8:57 PM
Running a Test
Running a Test Open the poshi-ext.properties file on your poshi-standalone directory and add the following line, replacing the TestCaseFileName#TestCaseName with the one you created in Creating A...
Published Date: Apr 26, 2024 8:57 PM
Poshi Layers
Poshi Layers :::: 2 :gutter: 3 3 3 3 ::: Functions :link: ./poshi-layers/functions.md Building reliable and reusable functions ::: ::: Paths :link: ./poshi-layers/paths.md Defining Page Objects...
Published Date: Apr 26, 2024 8:57 PM
Architecture
Architecture The Liferay DXP/Portal architecture has three parts: Core: Bootstraps DXP and its frameworks. The Core provides a runtime environment for managing services, UI components, and...
Published Date: Apr 26, 2024 8:57 PM
Using the Bootstrap 3 Compatibility Layer in Liferay 7.4
Using the Bootstrap 3 Compatibility Layer in Liferay 7.4 As of Liferay DXP 7.4 GA1, the Bootstrap 3 compatibility layer is removed from the built-in packages in Liferay frontend applications. If...
Published Date: Apr 26, 2024 8:57 PM
Node Version Information
Node Version Information Liferay DXP uses Node (and NPM) for many different frontend components. Specifically, the Liferay Theme Generator and Liferay's JavaScript application tools require the use...
Published Date: Apr 26, 2024 8:57 PM
Liferay Internals
Liferay Internals :file: landingpage_template.html :file: liferay-internals/landing.html
Published Date: Apr 26, 2024 8:57 PM
Extending Liferay
Extending Liferay Liferay DXP/Portal is highly customizable. Its modular architecture contains components you can extend and override dynamically using APIs.
Published Date: Apr 26, 2024 8:57 PM
Fundamentals
Fundamentals Liferay development projects consist primarily of simple .jar files. These contain a few extra configuration files that make them OSGi modules, but they're easily understandable by...
Published Date: Apr 26, 2024 8:57 PM
Module Projects
Module Projects Liferay applications and customizations are OSGi modules: .jar files containing Java code and some extra configuration for publishing and consuming APIs. A module project comprises...
Published Date: Apr 26, 2024 8:57 PM
Semantic Versioning
Semantic Versioning Semantic Versioning is a three tiered versioning system for incrementing version numbers based on the degree of API change made in a releasable software component. It's a...
Published Date: Apr 26, 2024 8:57 PM
Using an OSGi Service
Using an OSGi Service Liferay APIs are readily available as OSGi services. You can access a service by creating a field of that service type and annotating the field with @Reference, like this: ...
Published Date: Apr 26, 2024 8:57 PM
Command Line Gogo Shell
Command Line Gogo Shell If you're in a development environment, you can interact with the module framework locally from the command line. Gogo shell should only be run from the command line in...
Published Date: Apr 26, 2024 8:57 PM
7.4 Breaking Changes
7.4 Breaking Changes Breaking changes changes break or significantly alter existing functionality or code structure. Here are all of the breaking changes for Liferay 7.4, starting with the first...
Published Date: Apr 26, 2024 8:58 PM
7.2 Breaking Changes
7.2 Breaking Changes This document presents a chronological list of changes that break existing functionality, APIs, or contracts with third party Liferay developers or users. We try our best to...
Published Date: Apr 26, 2024 8:58 PM
Gogo Shell Commands
Gogo Shell Commands The Gogo shell executes Felix Gogo basic commands and Liferay commands. The Gogo shell is accessible in the Control Panel (recommended) and from the command line. Here are some...
Published Date: Apr 26, 2024 8:58 PM
Exported Third Party Packages
Exported Third Party Packages Liferay provides over one-hundred third party Java packages at run time. The com.liferay.portal.bootstrap module exports the packages by specifying individual packages...
Published Date: Apr 26, 2024 8:58 PM
Reference
Reference 7.4 Breaking Changes 7.3 Breaking Changes 7.2 Breaking Changes Exported Third-Party Packages Portal Developer Properties
Published Date: Apr 26, 2024 8:58 PM
7.3 Breaking Changes
7.3 Breaking Changes This document presents a chronological list of changes that break existing functionality, APIs, or contracts with third party Liferay developers or users. We try our best to...
Published Date: Apr 26, 2024 8:58 PM
Micro Frontends
Micro Frontends Micro frontends extend the concept of microservices to the frontend side of development. You can build a fully-featured and powerful browser application that uses a microservice...
Published Date: Apr 26, 2024 8:58 PM
Portal Developer Properties
Portal Developer Properties There are Portal Properties that facilitate development. Liferay's portal-developer.properties file includes all of them. The portal-developer.properties file is enabled...
Published Date: Apr 26, 2024 8:58 PM
Portlet Level Configuration
Portlet Level Configuration With the configuration framework, you can set your application's configuration for different levels of scope. Where Instance and Site-scoped configurations use...
Published Date: Apr 26, 2024 8:56 PM
Hiding the Configuration UI
Hiding the Configuration UI Liferay generates a configuration UI automatically after a configuration interface deploys. But you may have certain use cases where you want to hide the UI. For...
Published Date: Apr 26, 2024 8:56 PM
Field Options Provider
Field Options Provider You can populate a drop-down list manually in the @Meta.AD annotation of the configuration interface. But you can also populate the option labels and values automatically...
Published Date: Apr 26, 2024 8:56 PM
DDM Form Annotations
DDM Form Annotations The auto-generated configuration interface UI may be too simplistic for some configurations. You can use the Dynamic Data Mapping (DDM) form annotations to customize your...
Published Date: Apr 26, 2024 8:56 PM
Scoping Configurations
Scoping Configurations In Liferay DXP, you can set an application's configuration to different levels of scope: System, Instance, Site, or Portlet. For example, if you create an application to have...
Published Date: Apr 26, 2024 8:56 PM
Dependency Injection
Dependency Injection :file: ../../landingpage_template.html :file: dependency-injection/landing.html
Published Date: Apr 26, 2024 8:56 PM
Aggregating Resource Bundles
Aggregating Resource Bundles When working with a module that shares localized messages, the bnd header must specify the resource bundles you want to associate with the module. Liferay provides a...
Published Date: Apr 26, 2024 8:56 PM
Message Bus
Message Bus The Message Bus provides a loosely coupled way to exchange messages. A class sending a message invokes the Message Bus to send the message to a destination, while other classes...
Published Date: Apr 26, 2024 8:56 PM
Using Default Synchronous Messaging in Previous Versions
Using Default Synchronous Messaging in Previous Versions Synchronous messaging was removed and is no longer supported for Liferay DXP 7.4 U49/Liferay Portal 7.4 GA49 and above. In default...
Published Date: Apr 26, 2024 8:56 PM
Using Asynchronous Messaging
Using Asynchronous Messaging Message Bus's asynchronous option provides fire and forget behavior; send a message and continue processing without waiting for a response. An asynchronous message is...
Published Date: Apr 26, 2024 8:56 PM
Using Direct Synchronous Messaging in Previous Versions
Using Direct Synchronous Messaging in Previous Versions Synchronous messaging was removed and is no longer supported for Liferay DXP 7.4 U49/Liferay Portal 7.4 GA49 and above. Direct synchronous...
Published Date: Apr 26, 2024 8:56 PM
Listening for Registration Events
Listening for Registration Events Liferay DXP 2023.Q3/Portal 7.4 GA92 and Below The messaging API supports listening for destination and message listener registration events. Here are some reasons...
Published Date: Apr 26, 2024 8:56 PM
JavaScript YAML Configuration Reference
JavaScript YAML Configuration Reference You can define a JavaScript client extension with a client-extension.yaml file. Usage Details This client-extension.yaml file defines a JavaScript client...
Published Date: Apr 26, 2024 8:56 PM
Using a Theme CSS Client Extension
Using a Theme CSS Client Extension Liferay 7.4+ With a theme CSS client extension, you can override the current theme's CSS files (main.css and clay.css) to change the look and feel of a page....
Published Date: Apr 26, 2024 8:56 PM
Using a JavaScript Client Extension
Using a JavaScript Client Extension Liferay 7.4+ With a JavaScript (JS) client extension, you can run your own JavaScript on any page in Liferay without worrying about dependencies on Liferay code...
Published Date: Apr 26, 2024 8:56 PM
Using a CSS Client Extension
Using a CSS Client Extension Liferay 7.4+ CSS client extensions introduce new CSS styling to pages. A deployed CSS client extension on a page adds to the page’s existing styling, including theme...
Published Date: Apr 26, 2024 8:56 PM
Using a Theme Favicon Client Extension
Using a Theme Favicon Client Extension Liferay 7.4+ With a theme favicon client extension, you can override the theme's favicon on the selected page. Start with the sample workspace to build and...
Published Date: Apr 26, 2024 8:56 PM
CSS YAML Configuration Reference
CSS YAML Configuration Reference You can define a CSS client extension with a client-extension.yaml file. Usage Details This client-extension.yaml file defines a CSS client extension definition: ...
Published Date: Apr 26, 2024 8:56 PM
Data Set View Visualization Modes
Data Set View Visualization Modes Liferay DXP 2024.Q1+/Portal 7.4 GA112+ [Beta Feature](../../../system-administration/configuring-liferay/feature-flags.md#beta-feature-flags) To customize the...
Published Date: Apr 26, 2024 8:56 PM
Integrating External Applications
Integrating External Applications Custom Element and IFrame client extensions register applications with Liferay and render them as widgets on site pages. When you create one of these frontend...
Published Date: Apr 26, 2024 8:56 PM
Data Set View Filters
Data Set View Filters Liferay DXP 2024.Q1 U112 [Beta Feature](../../../system-administration/configuring-liferay/feature-flags.md#beta-feature-flags) While managing data set views, you can define...
Published Date: Apr 26, 2024 8:56 PM

Capabilities

Product

Contact Us

Connect

Powered by Liferay
© 2024 Liferay Inc. All Rights Reserved • Privacy Policy