David H Nebinger | 07 Sep 2018

The Ugly In one of the first Liferay projects I ever did, I had a need to have some Roles in the environment. They needed to be there so I knew they were available for a custom portlet to assign when necessary. I was working for an organization that had a structured Software Configuration Management process that was well defined and well enforced. So code deployments were a...

Yanan Yuan | 05 Sep 2018

  Liferay IntelliJ 1.1.1 plugin has been made available today. Head over to this page for downloading.   Release Highlights:   Watch task decorator improvements Support for Liferay DXP Wildfly and CE Wildfly 7.0 and 7.1 Better integration for Liferay Workspace Improved Editoring Support Code completion for resource bundle...

David H Nebinger | 05 Sep 2018

Introduction As I spend more time digging around in the bowels of the Liferay source code, I'm always learning new things. Recently I was digging in the Liferay extenders and thought I would share some of what I found. Extender Pattern So what is this Extender pattern anyway? Maybe you've heard about it related to Liferay's WAB extender or Spring extender or Xyz extender,...

David Truong | 29 Aug 2018

One of the initiatives our Quality Assurance Team has taken the past few years, has been to try and automate all their testing. This has resulted in testing all of our compatible environments in a similar fashion.  Thus, we no longer need to distinguish between Supported and Certified environments.   Starting with Liferay DXP 7.0, we will now list all our compatible...

Yanan Yuan | 28 Aug 2018

We are pleased to announce the new release of Liferay Project SDK Installers version 3.3.0 GA1.   Download:   For customers, they can download all of them on the customer studio download page.   Upgrade From previous 3.2:   Download updatesite here Go to Help > Install New Software… > Add… Select Archive...Browse to...

David H Nebinger | 27 Aug 2018

I've been asked a couple of times recently about different aspects of @Modified annotation that I'm not sure have been made clear in the documentation, so I wanted to cover the lifecycle annotations in a little further detail so we can use them effectively. The @Activate, @Deactivate and @Modified annotations are used for lifecycle event notifications for the DS components. They get...

David Bougearel | 24 Aug 2018

Hi everybody, With the version 7.X we have all started to play with OSGi and for some projects it's sometimes hard to have a clean start with the correct build tool; despite the blade sample which are definitely useful. I wanted to share through this blog, a sample with an OSGi service and a portlet which are configured to be deployed in a Liferay 7.1. The code given can be...

John Feeney | 21 Aug 2018

A customer recently asked me how Liferay can help them deliver documents to their users based on user-preferred language. One of the easiest ways to do this is through Liferay’s out-of-the-box web content localisation feature. In this  blog entry, I will show how this can be easily implemented.   1. The first step is to create a Web Content structure with fields for our...

David H Nebinger | 20 Aug 2018

Introduction So many times I have answered the question, "How do I find out what import packages my bundle needs?" with the tired and unsatisfactory response that uses the following process: Build your module. Deploy your module. Use Gogo to see why your bundle doesn't start, often from an Unresolved Requirement on an Import Package. Either include the lib in...

Olaf Kock | 20 Aug 2018

As promised less than a month ago, we're working on more content for Liferay University. Meet your new professors Charles Cohick and Dimple Koticha. The new lessons are Gain Insight Into the Customer Journey - Liferay Analytics Cloud Fully Customize Your Search Experience As with all lessons on Liferay University, they're completely free and available...

David H Nebinger | 19 Sep 2019

A SysAdmin came up to me and said he was having issues starting Liferay DXP 7.0, a bunch of CNFEs were coming up at startup. I found that they were set up to use Wily for monitoring their JVMs, and it was those classes that were generating CNFEs. In general, when you add the -Djavaagent=XXX parameter onto your app server's startup command, you're enabling an agent which will have...

Victor Zorin | 15 Aug 2018

This is the second part of the "Extending Liferay DXP - User Registration" blog. In this blog we explore the ways of implementing registration process for a portal with multiple sites.  Portal Sites Configuration Let’s presume we have a portal with the following sites configured: "Liferay", default site, will not be listed "Site 1", site with open...

Alberto Chaparro | 13 Aug 2018

Hi Liferay Community, Before responding this question I would like to explain what's sharding first: to overcome the horizontal scalability concerns of open source databases at the time (circa 2008), Liferay implemented physical partitioning support.  The solution allowed administrators to configure portal instances to be stored in different database instances and database...

Victor Zorin | 06 Aug 2018

I am starting a short series of blogs in which I will show how to customise User Registration / Customer Acquisition process in Liferay. The inspiration for this blog is one of our DXP portal implementations which had very broad (and frequently changing) user data collection requirements. There are many scenarios in which you want to customise user registration and...

Ianire Cobeaga | 11 Sep 2018

In Liferay Portal 7.1 a lot of effort has been put in improving the experience of building sites and pages and, as a result, some new functionalities have been introduced to empower marketers and other business users in the creation of stunning websites. We have achieved this by considering differentiated needs for the marketer, designer and web developer; and adding a new approach...

Yanan Yuan | 03 Aug 2018

We are pleased to announce the first general available release of Liferay Project SDK Installers that support Liferay 7.1. New Installers: For customers, they can download all of them on the customer studio download page. The installer is the full fledged Liferay Developer Studio installer which installs Liferay workspace, blade, Developer Studio and comes pre-bundled with...

Pavel Savinov | 03 Aug 2018

Recently we got a couple of complains about new Web Content article behaviour, specifically about the JournalArticle.getContent() method’s return value. The main problem developers experience is when they embed an Image into the Web Content article or use ddm-image or ddm-document-library field in their structures they expect to see the URL of the object(Image or D&M asset) in the...

Michael Chen | 10 Sep 2018

The Problem The c3p0 connection pool exposes MBeans for JMX tools like jconsole to monitor its run-time states. However, both c3p0 and Liferay intentionally generate random MBean names on each startup. The random name of each data source makes it difficult to setup an independent monitoring tool. The second problem is, by default Liferay creates several data sources, one used by...

Michael Chen | 10 Sep 2018

Genesis My colleague Vagif proposed a new way to develop a Liferay dynamic widget (the best name I can think of for now) with these pieces: Use the “Basic Web Content” structure or define a new structure. For each dynamic widget type, define a new display template. Create an OSGi service that returns a data model to be used by the display template. Create a web...

Michael Chen | 10 Sep 2018

Introduction This is a simplified OSGi service API and implementation pattern. It follows the traditional Java interface-implementation pattern, in which the programmer is only required to keep the interface class and implementation class in sync. It does not use Liferay 7 service builder. The attached archive is a fully implemented ORM service based on MyBatis. Unzip it...