Kyle Joseph Stiemann | 16 Mar 2017

Improving Test Performance on Liferay Recently, we upgraded the JSF Portlet Bridge Test Compatibility Kit (TCK) from Selenium 1.0 to our new test framework which uses Selenium 2.53. The TCK contains about 220 tests, and on Liferay 7.0 before we upgraded, it took around 8 minutes and 30 seconds to execute. In contrast, the TCK took 1 minute and 30 seconds to run on Apache Pluto,...

David H Nebinger | 27 Feb 2017

Introduction So I'm going to start a new type of blog series here covering design patterns in Liferay. As we all know: In software engineering, a software design pattern is a general reusable solution to a commonly occurring problem within a given context in software design. - Wikipedia In Liferay, there are a number of APIs and frameworks used to support...

Jamie Sammons | 16 Jun 2017

I am pleased to announce the Social Office to Liferay 7 upgrade has been released! Update 06/16/2017: For anyone interested in the tasks application, I have converted it to Liferay 7 modules.  Although completely unsupported, it seems to be working okay so far.  You can find the repo here. Introduction Liferay Social Office was previously an add-on for...

David H Nebinger | 16 Feb 2017

Recently I was lamenting how I felt that JSP fragment bundles could not introduce new dependencies and therefore the JSP overrides could really not do much more than reorganize or add/remove already supported elements on the page. For me, this is like only 5% of the use cases for a JSP override. I am much more likely to need to add new functionality that the original portlet...

Mohammed yasin | 01 Mar 2017

By Default in Liferay, Resource Importer will import journal articles,structures,templates,sites and document to all portal Instances present in the System If we need to restrict Resource importer to one particular instance we can do it by following steps STEP 1 : In your Theme Plugin go to docroot/WEB-INF/ file and add the Portal Instance Web...

David H Nebinger | 15 Jan 2020

One of the things that I never really used in 6.x was the Liferay upgrade APIs. Sure, I knew about the Release table and stuff, but it just seemed kind of cumbersome to not only to build out your code but on top of that track your release and support an upgrade process on top of all of that. I mean, I'm a busy guy and once this project is done I'm already behind on the next one. ...

David H Nebinger | 19 May 2017

In Liferay 6.x, scheduled tasks were kind of easy to implement. I mean, you'd implement a class that implements the Liferay Message Bus's MessageListener interface and then add the details in the <scheduler-entry /> sections in your liferay-portlet.xml file and you'd be off to the races. Well, things are not so simple with Liferay 7 CE / Liferay DXP. In fact, I couldn't...

Neil Jin | 07 Feb 2017

This article talks about how to create json web service based on Service Builder Service.   Knowledge: Service Builder JSON Web Service   When we intent to make a service to be a web provider to serve json web service, we can utilize Service Builder to build our json web service. We have an article...

David Truong | 03 Feb 2017

A search for a better SDK A little over a year ago, the Dev Tools Team began a new project hoping to fix the issues we encountered with the Plugins SDK. We had just finished modularizing our developer tools and were considering revamping the Plugins SDK to use all the new tools. This in itself would be a major improvement since we would no longer require a 300mb bundle just to use...

Allen Ziegenfus | 02 Feb 2017

If you want to find out more information about how a search is being executed in Liferay, you can modify the logging settings to output search queries to the log. To do this, go into Control Panel-> Server Administration -> Log Levels -> Add Category and add a new entry for the class for log level DEBUG. (Please note that...

David H Nebinger | 03 Feb 2017

When you start reviewing Liferay 7 CE/Liferay DXP code, you run into a lot of annotations in a lot of different ways.  They can all seem kind of overwhelming when you first happen upon them, so I thought I'd whip up a little reference guide, kind of explaining what the annotations are for and when you might need to use them in your OSGi code. So let's dive right in... ...

David H Nebinger | 02 Feb 2017

Alt Title: Cool things you can do with OSGi Introduction So one thing that many organizations like to stand up in their Liferay environments is a "health check".  The goal is to provide a simple URL that monitoring systems can invoke to verify servers are functioning correctly.  The monitoring systems will review the time it takes to render the health check page and...

Javeed Chida | 15 Mar 2017

Let me begin by clarifying that this post has nothing to do with the Harry Potter universe.   But seriously. You know what I mean by wizards, don’t you? Those helpful series of screens that gather a set of choices from the user and then use the captured choices to do something for the user. Often times, one user selection can lead to a different...

Alex Swain | 26 Jan 2017

I fell over a problem the other day that I had solved ages ago and foolishly hadn't taken the time to write down how I did it. I guess it must be fairly rare as my standard "I might have forgotten to write it down, but someone must have" approach to finding the answer on the internet also failed. So, I have committed to solving both issues with one post. I'm running LifeRay 6.2...

Neil Jin | 25 Jan 2017

As a supervisor of my department, some times I want to check how much progress of a work is done, who is working on a certain trading? who is reviewing a loan application? If a new business plan application is getting stuck for 2 weeks who is in charge of that? I want more information than a simple word pending...   With workflow out of the box, you can't review any...

Jan Eerdekens | 25 Jan 2017

I've been working with Liferay for quite some time now, but I must confess that I still haven't really made the switch from Velocity to Freemarker for my templates. Even though I know there are a lot of benefits to using Freemarker, like better error messages, the Velocity knowledge and library of snippets I've build up through the years is hard to give up. But with the advent of...

Justin Choi | 23 Jan 2017

Three weeks ago marked the sixth year anniversary for me. It came and went quietly. I probably would have not posted anything but something said at this past retreat prompted me to reconsider.  In the past six years, at each retreat, I have had the pleasure to work and play so many different nationalities and backgrounds. Some are married. Some are single. Some are male; some...

Javeed Chida | 30 Jan 2017

This short post brings together the little pieces critical to crafting an ADT in velocity to provide direct download links to documents in your Documents and Media repository. You will find parts of this solution strewn across forums and blogs.    In essence, you'll have to do two things: 1. Add the following property to your...

David H Nebinger | 02 Feb 2017

So in a recent project I've been building I reached a point where I believed my project would benefit from being able to issue user notifications. For those that are not aware, Liferay has a built-in system for subscribing and notifications.  Using these APIs, you can quickly add notifications to your projects. Foundation Before diving into the implementation, let's...

Tim Telcik | 21 Apr 2018

Overview Sometimes you need to manually reindex some, or all, of the content search indices. Liferay Portal 6.2 provides search indexing functions for many content types. e.g. Blog Document Journal Article Wiki The content reindex functions apply to the registered search engine provider. e.g. Apache Lucene Apche Solr ...