Search Results

Capability
Feature
Deployment Approach
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: May 9, 2024 6:55 PM
Getting Started
Getting Started Previously, Poshi tests could only be executed by downloading and creating the test files within the Liferay source code. The Poshi Standalone gradle project enables you to use...
Published Date: May 9, 2024 6:55 PM
Creating a Macro File
Creating a Macro File Test Scenario Write your first macro file using the test scenario below: You would like to test that your name does not appear on any learn.liferay.com article. The steps you...
Published Date: May 9, 2024 6:55 PM
Creating A Path File
Creating A Path File Test Scenario Write your first path file using the test scenario below: You would like to test that your name does not appear on any learn.liferay.com article. The steps you...
Published Date: May 9, 2024 6:55 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: May 9, 2024 6:55 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: May 9, 2024 6:55 PM
How the Bundler Publishes npm Packages
How the Bundler Publishes npm Packages When you deploy an OSGi bundle with the specified structure, its modules are made available for consumption through canonical URLs. To better illustrate...
Published Date: May 9, 2024 6:55 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: May 9, 2024 6:55 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: May 9, 2024 6:55 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: May 9, 2024 6:55 PM
Understanding the Liferay npm Bundler Loader
Understanding the Liferay npm Bundler Loader liferay-npm-bundler's mechanism is inspired by webpack. Like webpack, the liferay-npm-bundler processes files using a set of rules that include loaders...
Published Date: May 9, 2024 6:55 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: May 9, 2024 6:55 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: May 9, 2024 6:55 PM
Poshi Test Automation
Poshi Test Automation Poshi is a test automation framework that is simple, easy to understand, and does not require prior development experience to get started. Poshi tests can be written to...
Published Date: May 9, 2024 6:55 PM
Paths
Paths A path is an element on a page that a test will interact with. An element can be a button, text field, link, image, paragraph, or just about anything you would need to assert, click, or type...
Published Date: May 9, 2024 6:55 PM
Poshi Basics
Poshi Basics New features, improvements, and system upgrades can sometimes introduce unexpected behaviors and bugs. Running suites of automated tests is an advantageous method of identifying issues...
Published Date: May 9, 2024 6:55 PM
Creating the Testcase File
Creating the Testcase File Test Scenario Write your first testcase file using the test scenario below: You would like to test that your name does not appear on any learn.liferay.com article. The...
Published Date: May 9, 2024 6:55 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: May 9, 2024 6:55 PM
Setup
Setup Prerequisites Java JDK 8 Google Chrome Gradle or Gradle Wrapper 6.6.1 or higher. Setting up the Poshi Standalone Gradle Project Create a new directory, example poshi-standalone. ...
Published Date: May 9, 2024 6:55 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: May 9, 2024 6:55 PM
Poshi Layers
Poshi Layers
Published Date: May 9, 2024 6:55 PM
Functions
Functions In Poshi, Functions handle extra WebDriver commands that an element might require to interact with a page object or element. Functions combine the basic methods defined in the...
Published Date: May 9, 2024 6:55 PM
Macros
Macros A macro is a set of functions that perform a task. Macros are where locators (paths) and functions are brought together to script interactions that a user performs on the system being...
Published Date: May 9, 2024 6:55 PM
Testcases
Testcases A testcase file in Poshi is a collection of test scenarios grouped in blocks of code called test blocks. The three main test blocks: setUp, test, and tearDown, are made up of multiple...
Published Date: May 9, 2024 6:55 PM
Using Variables
Using Variables Though not a Poshi layer, variables are a large part of Poshi tests. Variables, like in other programming languages, are used to store data which can be referenced and reused in...
Published Date: May 9, 2024 6:55 PM
Poshi Resources
Poshi Resources To give Poshi test writers easy access to commonly used functions or other files, Poshi resources were created to store existing Poshi files as dependencies that can be loaded apart...
Published Date: May 9, 2024 6:55 PM
Configuration
Configuration In order to give test writers easy access to commonly used functions, paths, or macros, Poshi resources were created to store existing Poshi files as dependencies. These resources can...
Published Date: May 9, 2024 6:55 PM
Using Poshi Resources
Using Poshi Resources Once the Poshi resources jar file is loaded onto your Poshi project, you are now able to use Liferay's commonly used functions, paths, and macros. To distinguish between files...
Published Date: May 9, 2024 6:55 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: May 9, 2024 6:55 PM
Reference
Reference Node Version Information
Published Date: May 9, 2024 6:55 PM
The Benefits of Modularity
The Benefits of Modularity Dictionary.com defines modularity as the use of individually distinct functional units, as in assembling an electronic or mechanical system. The distinct functional units...
Published Date: May 9, 2024 6:55 PM
Liferay Classloader Hierarchy
Liferay Classloader Hierarchy All Liferay DXP/Portal applications live in an OSGi container. DXP/Portal is a web application deployed on your application server. Its Module Framework bundles...
Published Date: May 9, 2024 6:55 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: May 9, 2024 6:55 PM
OSGi and Modularity
OSGi and Modularity Modularity makes writing software, especially as a team, fun! Here are some benefits to modular development on Liferay: Liferay's runtime framework is lightweight, fast, and...
Published Date: May 9, 2024 6:55 PM
Module Life Cycle
Module Life Cycle In OSGi, all components, Java classes, resources, and descriptors are deployed via modules (OSGi bundles). The MANIFEST.MF file describes the module's physical characteristics,...
Published Date: May 9, 2024 6:55 PM
Bundle Classloading Flow
Bundle Classloading Flow The OSGi container searches several places for imported classes. It's important to know where it looks and in what order. Liferay DXP's classloading flow for OSGi bundles...
Published Date: May 9, 2024 6:55 PM
Finding Artifacts
Finding Artifacts To use external artifacts in your project, you must configure their dependencies in your build.gradle Gradle script. Before specifying an artifact as a dependency, you must first...
Published Date: May 9, 2024 6:55 PM
Specifying Dependencies
Specifying Dependencies You must satisfy all dependencies to compile and deploy a module successfully. After you find the dependency artifacts, add them as dependencies in your Gradle build file....
Published Date: May 9, 2024 6:55 PM
Configuring Dependencies
Configuring Dependencies Liferay provides a container where modules can publish and consume functionality through their Java packages. Modules can leverage packages from other modules or...
Published Date: May 9, 2024 6:55 PM
Exporting Packages
Exporting Packages In OSGi, packages are private by default. You must explicitly exporting a package so other modules can import and use them. Here's how to export packages: Open your bnd.bnd...
Published Date: May 9, 2024 6:55 PM
Resolving Third Party Library Package Dependencies
Resolving Third Party Library Package Dependencies An application can rely on multiple OSGi modules. Resolving their Java package dependencies can be challenging. In a perfect world, every package...
Published Date: May 9, 2024 6:55 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: May 9, 2024 6:55 PM
Importing Packages
Importing Packages You often find yourself in a position of needing functionality provided by another module. To access this functionality, you must import packages from other modules into your...
Published Date: May 9, 2024 6:55 PM
Contributing to Liferay Development
Contributing to Liferay Development The first thing to do in learning to fix bugs or contributing a feature is to become familiar with how to build the system. The Liferay Portal build system now...
Published Date: May 9, 2024 6:55 PM
UI Architecture
UI Architecture
Published Date: May 9, 2024 6:55 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: May 9, 2024 6:55 PM
APIs as OSGi Services
APIs as OSGi Services After you've learned what a module is and how to deploy one, you can use modules to define APIs and implement them. Liferay APIs are OSGi services, defined by Java interfaces...
Published Date: May 9, 2024 6:55 PM
Building Liferay Source
Building Liferay Source This section aims to provide instructions for building Liferay Portal from source as quickly as possible. Using a nightly snapshot bundle no longer requires a full build...
Published Date: May 9, 2024 6:55 PM
Organizing the Source
Organizing the Source It is important to have a solid understanding of how the Liferay source is organized when working on fixing a bug or adding a new feature to the product. The Liferay Source...
Published Date: May 9, 2024 6:55 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: May 9, 2024 6:55 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: May 9, 2024 6:55 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: May 9, 2024 6:55 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: May 9, 2024 6:55 PM
Reference
Reference 7.4 Breaking Changes 7.3 Breaking Changes 7.2 Breaking Changes Exported Third-Party Packages Portal Developer Properties
Published Date: May 9, 2024 6:55 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: May 9, 2024 6:55 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: May 9, 2024 6:55 PM
Using the Gogo Shell
Using the Gogo Shell The Gogo shell provides a way to interact with the module framework. Among other things, you can Dynamically install/uninstall bundles (modules) Examine package...
Published Date: May 9, 2024 6:55 PM
Building Forms with Conditional Fields
Building Forms with Conditional Fields Forms can become dynamic forms where the answer to one question may allow the respondent to skip the next three questions, or require the respondent to answer...
Published Date: May 9, 2024 6:55 PM
Customizing Form Layouts
Customizing Form Layouts By default, new elements on your form are added to a new row and occupy the entire width of the form. Form with all elements occupying entire width of form. Sometimes it...
Published Date: May 9, 2024 6:55 PM
Customizing Auto-Save Behavior
Customizing Auto-Save Behavior The Forms application automatically saves the form creation progress as you create a form. By default, a form's draft is auto-saved every minute. To change the...
Published Date: May 9, 2024 6:55 PM

Capabilities

Product

Contact Us

Connect

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