Using Navigation Entry for custom functionality in Liferay core views

By Rafał Pydyniak | 2023-10-30

In some projects there is a need to override some functionalities provided by Liferay out of the box. There are multiple ways of achieving what we need and they are described in Liferay documentation. This extensibility is, in my humble opinion, one of the biggest assets of Liferay platform. Today I would like to share how can you avoid using OSGi fragments for JSP overrides in some cases by using custom Navigation Entries which can save you a lot of work during Liferay version updates. Read more »

Liferay: Why am I getting "Incorrect string value" error

By Rafał Pydyniak | 2022-12-13

Some time ago a colleague of mine struggled with an error "Incorrect string value: '...' for column 'description' at row 1" and asked me for a help. He tried to look into google and he found out that the error is connected to the database charset or collation settings but he couldn't find out why does it happen to him even though the settings seemed correct. Let's find out why is that in this short article. Read more »

Is Liferay Commerce production ready? Personal Experience

By Rafał Pydyniak | 2022-10-03

Some time ago Liferay Commerce has been introduced. First it has been shipped as a separate product. Then it got included in Liferay and no separate installation was required. For new versions of Liferay you do not even have to turn it on as it is turned on by default (you can still turn it off if you want). If you use Liferay then you have probably already came across this new functionality but have you ever wondered - is this really useful and production ready? I will try to answer this question in this post based on my personal experience. Read more »

Using Custom System Checkers for finding unresolved bundles

By Rafał Pydyniak | 2022-07-22

In this post I would like to explain what System Checkers in Liferay are, how you can implement one and what you can achieve using it. As an example I will use a real life scenario - what if you have a fragment which depends on another OSGi module and this module stops exporting the package you need in your fragment. In such scenario Liferay will sadly not report any error even though your fragment basically stops working. Lets find out how we can use system checkers to find such situations or how you can use them for any other checks you need. Read more »

Overriding Liferay Core Permissions

By Rafał Pydyniak | 2022-05-23

In Liferay you can define custom permissions for your entities/portlets. For example you can say that in your application in the employees management panel there are four actions: "List employees", "Add employee", "Edit employee", "Remove employee". Roles can then be associated with these permissions as required. Definining that is quite simple and described in Liferay docs which you should read if you haven't done that before. But what if you need to override some permissions which were defined in Liferay core modules? Well you can of course do that as well. If you're wondering how - keep reading. Read more »

Achieving multitenancy using Liferay's Virtual Instances

By Rafał Pydyniak | 2021-07-16

Imagine you create an app that you will sell to many different companies. It can be for example some application for managing company's finances or an app that will simplify holidays requests flow in a company. What is important is that you will sell that to different entities (companies, universities or whatever) and one client should not know anything about other clients that use your application. Your clients should not share users, data, pages or anything. You even probably want to have different URLs for different clients... Read more »

Why should you use CMS such as Liferay for your web application

By Rafał Pydyniak | 2021-03-12

In this short article I would like to answer the question that some of you might have "Why should I use CMS for my website". As an example of such CMS I will use Liferay which is primary system I use. What is CMS anyway? Lets first define what CMS system is. CMS is just an abbreviation for "Content Management System" which is a software that simplifies the process of creating and modifying digital content. The main two areas for which CMS systems are used are: Web content management - creating… Read more »

Step by step guide for creating clustered Liferay environment

By Rafał Pydyniak | 2021-01-26

Hello! In this article I would like to show you how to create clustered Liferay environment. In my example environment I will use docker but the steps are similiar if you're installing two (or more) instances on one or many servers. I will try to show you step by step how you can build the environment yourself so you can understand the process better. Of course if you want to you can go to the final version of code right away - it's on my git. I encourage you to go through the steps and learn… Read more »

Why migrating Liferay projects to a newer version is not easy v2

By Rafał Pydyniak | 2021-01-10

Hello! In first part Why migrating Liferay projects to a newer version is not easy I introduced you to the topic of Liferay migrations and I showed you a few issues you might encounter during database migration process. In this part I'd like to show you few issues you might have during migration of the code of your custom modules for example portlets. Read more »

Why migrating Liferay projects to a newer version is not easy

By Rafał Pydyniak | 2020-10-21

Hi! In today's post, I would like to talk about the migration of Liferay projects between the versions, and more precisely to present the problems related to this based on my own experience. I personally participated in the migration of several projects - both from version 6.2 to 7.x and from version 7.0 to 7.2 (here additionally from CE version to DXP version). In addition, these migrations covered the whole spectrum of "cases" in terms of size - these were small modules with literally several… Read more »

Continuous integration and quality inspection for Liferay 7

By Rafał Pydyniak | 2020-06-26

Hello! Today I would like to show you how to use Jenkins for continuous integration (CI) and continuous code quality inspection using SonarQube. I decided to write this post because some time ago I had to make such process for project I work on and I couldn't find any help regarding Liferay and I had some problems with that, especially with setting SonarQube properly for Liferay workspace Prerequisites First we need few things: Liferay Project - for this case I created a simple project which you… Read more »

Copyright: Rafał Pydyniak