Entries with Blog Stream Featured .

Jamie Sammons | 29 Nov 2018

Update: This has been moved to January 11, 2019. Reason for the changes The vulnerabilities in TLS 1.0 (and SSL protocols) include POODLE and DROWN. Due to these security risks, Liferay decided to disable TLS 1.0, as many other companies have done. Moving to TLS 1.1 and higher will allow users to keep communications between Liferay and secure. What TLS...

Joshua St. Clair | 28 Nov 2018

So perusing the web, you'll notice there's a couple of resources out there explaining how to override the default favicon in Liferay. Of course, the standard way is to add it to /images folder of your theme and apply the theme to the site. As long as you got your path right and it's the default name, "favicon.ico," it should work just fine.  While this satisfies most use...

David H Nebinger | 17 Nov 2018

So we've all seen those @Reference annotations scattered throughout the Liferay code, and it can almost seem like those references are not changeable. In fact, this is not really true at all. The OSGi Configuration Admin service can be used to change the reference binding without touching the code. Let's take a look at a contrived example from...

David H Nebinger | 17 Nov 2018

Introduction When developing JSP-based portlets for OSGi deployment, and even when doing JSP fragment bundle overrides, it is often necessary to get service references in the JSP pages. But OSGi @Reference won't work in the JSP files, so we need ways to expose the services so they can be accessed in the JSPs... Retrieving Services in the JSP So we're going to work this a...

David H Nebinger | 10 Jul 2021

Introduction The official Liferay deployment docs are available here: They make it easy for folks new to Liferay to get the system up and running and work through all of the necessary configuration. But it is not the process followed by professionals. I wanted to share the process I use that it might provide an alternative set of instructions...

David H Nebinger | 20 Nov 2018

Introduction A client recently was moving off of Google Search Appliance (GSA) on to Liferay and Elasticsearch. One key aspect of GSA that they relied on though, was KeyMatch. What is KeyMatch? Well, in GSA an administrator can define a list of specific keywords and assign content to them. When a user performs a search that includes one of the specific keywords, the associated...

David H Nebinger | 16 Nov 2018

Introduction So often when discussing how to deal with dependencies, we're often looking for ways to package our third party jars into our custom modules. There's good reason to do this. It ensures that our modules get a version of a third party jar that we've tested with. It also excludes ambiguity over where the dependency will come from, whether it is deployed and available or...

David Truong | 13 Nov 2018

As some of you may have already discovered, 7.1 GA2 was released as a 7zip bundle instead of the typical zip bundle. This probably caused a ton of issues. Even our own Dev Tools are not yet equipped to handle 7z files since all the events took up our time. I will provide you with the reasons why we had to make this move and hopefully, everyone will come to the conclusion that this...

Kyle Joseph Stiemann | 06 Nov 2018

Mitigating RichFaces 4.5.17.Final EOL Vulnerabilities If you are using RichFaces, you should be aware that Code White has discovered some remote code execution vulnerabilities in the component library. Unfortunately, since RichFaces has reached end-of-life status, these vulnerabilities will not be fixed. Thankfully there two easy options to mitigate these vulnerabilities: ...

Ibai Ruiz | 02 Nov 2018

Helping my colleague Sergio Sanchez with his GDPR talk in the past Spanish Symposium, I came across a hidden gem in Liferay 7.1. It turns out you can integrate custom Service Builder entities with Liferay’s GDPR framework (UAD), to enable anonymization of personal data in your own entities. I didn’t know anything about this feature, but it’s really easy to use and works like a...

Luis Miguel Barco | 29 Oct 2018

In the previous posts, we talked about what we were going to do, how we were going to do it, and which tools we were going to use. We introduced you the Liferay Screens’s screenlets and the reason why we were going to use them. Well, it’s time to explain to you how we developed this application and how a junior developer, with only one year of experience in the mobile world and...

Sarai Diaz | 29 Oct 2018

Previously, we talked about how market is really fragmented right now because there isn’t any popular hybrid framework. We kept an eye on some of the most popular frameworks like React Native, Nativescript, Ionic2 and Xamarin. We did a prototype with Nativescript and it worked fine but we think that the use of native libraries with this technology isn’t mature enough. If you...

Álvaro Saugar | 28 Oct 2018

//The spanish version of this article can be found here: Primer aniversario de la comunidad Liferay en España, otra vez. One year ago, on October 25, 2017, Liferay Community in Spain started again. During this year, we have made important achievements: we have joined a great group in all the events and we have called meetups regularity (usually last Wednesday every...

Eduardo Perez | 23 Oct 2018

As many of you probably know, starting with Liferay DXP, Elasticsearch is the default Search Engine. In fact, by default, an Elasticsearch instance is embedded in Liferay DXP (it’s a good moment to remind everyone that this is not supported for Production environments, where a separate Elasticsearch instance must be created). In this article we’re going to outline how to use the...

Victor Galan | 30 Oct 2018

In the previous blog post we covered the beginning of the project, this includes a description of the app features, advantages of using Liferay Screens and lastly the wireframe. In this one, we will cover how we can “screenletize” the different screens of the application and build them combining different screenlets. We will also organise the 10 days and plan what are the tasks we...

Victor Galan | 23 Oct 2018

Before we begin with this story, for those of you that don’t know about Liferay Screens. Liferay Screens is a library for iOS, Android and Xamarin that aims to speed up the development of native applications that use Liferay as a backend. It’s basically a collection of components, called Screenlets. These components are very easy to connect to your Liferay instance and provide plenty...

Pavel Savinov | 26 Oct 2018

Display pages functionality in Liferay always was tightly coupled to the Web Content articles, we never had plans to support more or less the same technology for other types of assets even though we had many of these types: Documents & Media, Bookmarks, Wiki, etc... Even User is an asset and every user has corresponding AssetEntry in the database. But for Liferay 7.1 we decided to...

Pavel Savinov | 19 Oct 2018

In Liferay 7.1 we presented a new vision to the page authoring process. The main idea was to empower business users to create pages and visualize contents in a very visual way, without a need to know technical stuff like Freemarker or Velocity for the Web Content templates. To make it possible we introduced the fragment concept. In our vision fragment is a construction block...

Minhchau Dang | 17 Oct 2018

Liferay is a large project, and many developers who are attempting to get their customizations to work with Liferay will often end up asking the question, "What version of module W should I use at compile time when I'm running on Liferay X.Y.Z?" To answer that question, Liferay has some instructions on how to find versions in its document, Configuring Dependencies. This blog entry...

Luis Miguel Barco | 08 Oct 2018

First of all, for those of you who don't know about Liferay Screens. Liferay Screens is a component library based on components called Screenlets. A screenlet is a visual component that you insert into your native app to leverage Liferay’s content and services, allowing you to create complex native applications for iOS and Android very fast. Awesome, isn’t it? BUT, Do you need to...