LPS-107983 small image

LPS-107983 is a terrible little "bug" that affects Liferay GA based projects in Debian and Ubuntu, and at the time with no fix for GAs that run in a JDK 11+ (after 11.0.6). Read More AboutLPS-107983 »

We know expando can be a bit confusing sometimes especially because one needs to understand the tables it requires to use the API. This can be confusing for someone that is learning Liferay or trying to develop their first custom field based feature. In this post we will show you an example on how to use custom fields to locate assets in Liferay; we will be searching according to custom fields' values, instead of just... Read More AboutSearching by custom field values »

If you are here, you are probably looking for a way to translate some language keys for your application and probably read Liferay's official guide looking for a simple way to do it. Importunately, the guide does not look like what you would expect, with many steps and unnecessary explanations. It even tells you to go to a repository looking for jar files, only to read metadata that you could easily just get from GitHub. In this post I will... Read More AboutOverriding A Module’s Language Keys »

Are you a front-end developer entering a project that has being going on for a while? This mini tutorial will show you how to get started as quickly as possible so you can work on your designs. This particular tutorial will be directed to front-end developers that have never worked with Liferay before and seek to understand how they can use their skills and experience gathered from previous assignments in a Liferay project. First of all, you... Read More AboutLiferay projects for front-end developers »

In this article we will see in a trivial example a simple way to reduce code duplication while going through the concept of behavior parameterization. In summary, behavior parameterization is characterized as passing pieces of code as parameters to define the behavior of an execution flow. OK, it sounds nice, but let's see it in action to visualize how this powerful concept can help us produce code closer to the problem statement while... Read More AboutBehavior Parameterization  »

We all know OSGi is great! It is simple to learn and use. However, some might find hard starting an application, even some that might be heavy users of this framework. In this post, we will see why that is a weird reality and a simple example to help first time users. Firstly, this happens because we normally see work being done in applications that are already in a not so early stage of development or using frameworks and... Read More AboutHello OSGi »

Let's say for instance you need to modify the level used by a logger created by Liferay and not exposed for customization/modification in an easy to change location, one could create ext plugins or use "clever" ways to adjust the configuration files somehow.  But the good news is that Liferay does expose an easy to access point for customization of any logger configured in portal-log4j.xml, although they use an ancient set... Read More AboutCustomizing portal-log4j.xml »

Web content is a pretty general way to characterize a piece of structured content that can be easily reused in Liferay. It is only natural that people will use it for their specific needs to solve their own problems in different ways. In this small article, we will see how to change a key aspect of editors to solve an issue that emerges exactly because people have varied requirements for their systems. More specifically, we will discuss... Read More AboutEditor Configuration Contributor »

More often than one would wish we find ourselves trying to remember the API we need to create URLs out of a JSP, and some will end up finding ways to leave this task to a JSP somehow, even when they need it in several JSP files or a JSP tag requires a URL object  not accepting Strings (more on that later), among other cases. Let’s start simple, in a JSP it is trivial to have a piece of code like the following: <portlet:renderURL... Read More AboutHow can you create MVC URLs? »

So, I heard some people like MVC commands so much they try to make it for their default view. Normally, when I see this topic they are looking for a way to keep their portlet classes short and have consistency with regards to where the different views are coded and how. (of course I am using the term view rather informally). Just to put some points in order before going further. We have several ways to implement a portlet, normally,... Read More AboutMVCRenderCommand as default »

It was a beautiful raining morning, when I took advantage of the long weekend to poke around and check how Liferay is using its new taglib Clay, in Liferay 7.1 and 7.2. As beautiful as the morning was, the experience was not that great. As I loved their website and was looking forward to start using Clay, I started browsing... Especially due to this note from their website: Note: AUI taglibs are deprecated as of Liferay Portal CE... Read More About Double Curly Braces Anti Pattern »

This post is a simple example about how to add CSS files to your portlets in Liferay 7.x ( for OSGi based portlets ). Let's start with a simple portlet: @Component( immediate = true, property = { "com.liferay.portlet.display-category=category.hidden", "com.liferay.portlet.instanceable=false", "javax.portlet.portlet-mode=text/html;view", ... Read More AboutStyling Custom Portlets »

When you start Liferay 7 up, you'll probably notice it stopping for a "quick" integrity check for its LPKGs. This was supposed to be security measure which was used to verify that the LPKG files have not been compromised, maliciously or not. This is just too painful, specially,  during development phases. In production, this becomes an issue for availability when servers need to be restarted and new servers created. Liferay... Read More AboutDisabling LPKG Index Validation »

We know Liferay is not the most EL friendly piece of software out there, but lots of people do like to be able to user EL. In this post I will show you a simple way to access your portlet namespace using EL, and better yet, get rid of the numerous <portlet:namespace/> that are usually scattered around. The ideal is simple: just put it in a variable using <c:set>. Let's see this in action via this extremely simple snippet.... Read More AboutAccessing your portlet's namespace in EL »

This post will show how easy it is to transform an image into a Base64 String using Java. We will not get into details of why one would need to do it, we are assuming that you considered that this will increase your image size and that you probably have a good idea that you need to transmit your image using Base64 besides the time to convert and the size increase. The idea is simple, get your image as a byte array and encode it into ... Read More AboutImage to Base64 »

Zipping in Java small image

Building Zip files was always easy in Java, but it was always also kind of awkward, and this is because one had to normally go through 3 steps, create the zip output stream, insert an entry and add the bytes for each entry. This is the kind of a weird sequence that leads several to feel that it is easy but it could be better. Liferay for instance uses an ancient library to build files in a easier process, which also works in a... Read More AboutZipping in Java »

For the past year we have being experimenting with several tools and services to provide the best support channels available. The public phone line has shown to be an interesting case, as lots of people do ask for one, but we found that it is almost never used. Especially after we adopted chat, email and a third-party support portal. That is why we will be discontinuing the public available telephone number, once it was mainly used... Read More AboutPhone support service »

New Liferay image small image

We will be releasing a new image today, for GA6. This release will use the same building processes and bring all features we built for GA5. As always you will find that Tomcat differs from Liferay's bundle, as it uses Tomcat 8.0.32, while our image is based on Tomcat 8.5.29 in todays date. For specific information about GA6, please visit https://community.liferay.com/news/liferay-portal-7-0-ce-ga6-release/ To get you image, please... Read More AboutNew Liferay image »

New Liferay image combo small image

We have just updated our Liferay related images! New and Fresh! OK, we are always updating them, almost daily (mainly for security reasons). This time, though, we included extra features to help with container management, and moved to a new Debian version. As we were seeing people with issues related to their volumes and what happens when a new version comes around, sometimes bringing new user and group IDs. We fixed Elasticsearch IDs,... Read More AboutNew Liferay image combo »

OSGi in Action: Creating Modular Applications in Java small image

Researching around the web for content that could make developers' lives easier when dealing with Liferay, we came across this book that called our attention due to the strong reliance on OSGi that marks Liferay 7.0 development. From the book's publisher web page (https://www.manning.com/books/osgi-in-action) you can read the following description, which is our starting point for this review. OSGi is a Java-based framework for... Read More AboutOSGi in Action: Creating Modular Applications in Java »

— 20 Items per Page
Showing 1 - 20 of 60 results.