Some time ago, I had the opportunity to attend the 11th edition of the Liferay Symposium Spain 2020. At this event, which this year was held 100% digitally due to the circumstances, several new features of Liferay were presented:
- App Builder: This is a new application within the liferay tool that facilitates the creation of code.
- Asset libraries: New functionality in liferay existing outside liferay. They are virtual spaces where you can store reusable assets.
- Remote App: New application in this version that allows the integration of remote applications within liferay.
Well, below we will talk about how these Liferay developments can help you solve your organization's challenges.
What is Liferay?
It is a platform that is used to build from small websites to large portals. It is one of the most complete platforms on the market to facilitate the digital transformation process.
From Liferary 7.2 to Liferay 7.3
The developments in Liferary 7.3 compared to Liferary 7.2 have been superb. We will now comment on all the advantages of each of them:
App Builder is an application that solves the problems that we encounter with development time. Well, to get a good and fast solution you need to perform a series of steps, requirements, design and of course, programming. Not to mention the consequent interdepartmental meetings that increase the time and cost of putting the final product into production.
So the question is clear: what are the characteristics that you offer me for this problem?
- This application has been generated to facilitate the creation of "Low Code" code. This action is done through a graphic interface which allows working with the fields as drag and drop objects. For example, if we create the field "Name", we can drag and drop it in the page as if it was a "drawing".
- In addition, you can generate reusable groupings(fieldset) such as a customer's contact data. This code can be easily reused by simply dragging it to the page in question.
- You can also add small validations easily with the graphical interface without having to write a "if". For example, to validate a date within a range.
- On the other hand, it allows a workflow definition by helping people with less technical knowledge to write code.
and what are the steps in the process?
The process has the following steps:
- You define all the fields that will be required
- Groupings are created that can then be reused
- The "Custom object" is generated
- A view is generated where I can move the groupings created
- A "Tableview" is generated which is where the listings would be displayed
What are they?
Assent Libraries are virtual spaces where you can store reusable assets.
The purpose of these spaces is to improve the problems that appear when using sites to store information. Problems such as:
- The creation of backups, since they are monolithic and too centralized spaces.
- Problems with the need for dedicated work spaces.
What are they used for?
It is a way to decentralize and divide information to create reusable content. It can be used from different sites, apis, mobile applications, etc. These spaces can be found in the liferay menu: Applications > Content > Asset Libraries.
In the past, to develop applications outside liferay and integrate them, it was necessary to use the liferay-js-toolkit library, since there was no way to consume external applications since there was no possibility of accessing them.
With this application we can include remote applications in our site and interact with them in a bidirectional way, through an SDK. We only need to know the url of the application. This way, we can efficiently merge old applications into the new ones, without knowing the code.
GraphQL and Rest (Instead of Json webservices)
In this section, we will see two tools that have been included to recover information that is shown in the SPA as they are: GraphQL and Rest.
GraphQL allows us to create specific queries with the information we are interested in. This tool is very useful for SPAs because in a single request you can bring all the information. However, you have to be careful because this flexibility can penalize the performance. In addition, it generates schema and documentation automatically and is very useful to use with frameworks such as react or angular.
Rest, on the other hand, is an easier learning curve since it is more documented. In addition, it allows us to benefit from all the capabilities of http and is very useful if we have to manipulate data.
But what are the improvements of this technology over the previous version?
These technologies already existed in Liferay 7.2. But, thanks to user feedback they have been improved until today:
- Content elements API: This technology had the problem of not being able to manage heterogeneous collections of objects easily. That is, if, for example, on a web page the user wanted to filter to be able to visualize different types of content, it was necessary to perform a previous reading to bring each content individually.
However, with this API enhancement, a centralized point of access is created in a site or asset library, of all available assets.
- Multiple language enhancement: Thanks to this technology, multiple language enhancement is performed since all translations can be retrieved at once. To implement it you only need to add a parameter in the call header (X-Accept-All-Languages).
- Creation of the actions block to improve user permissions: The Liferay Community team posed a new challenge. They wanted to improve the participation in the forums by allowing the user to modify their questions or answers, but not those of others.
In previous versions, to manage a user's permissions from the application it was necessary to have full authorization control. Now, however, the Actions block can be incorporated into every application and includes the actions that the user can perform.
- Aggregation Terms property - Improved filtering: From Liferay Commerce comes the need to create a dynamic product filtering at the user level. For this, they have added a new property called aggregationTerms that allows you to request the terms from the server in order to filter a certain property.
- Extension of existing functionality : Thanks to this, the possibility of extending the functionality of Liferay's own applications has been enabled.
And what about the next versions?
- Support for webhooks and GraphQL for application management with real-time updates through a subscription that "listens" to the changes, instead of making requests from time to time.
- Versioned content management.
- Work with JS/Java clients to facilitate the APIs
Discovering Liferay's upcoming improvements and new features
Of all the new features in liferay 7.3 we highlight Remote App, which gives us a solution to a very common problem since, it is very common to find inherited code in which the source code may have been lost, causing the decompilers not to work properly. For example this can happen when absorbing a company.
Therefore, the fact that we can integrate the url as it is in our application is a very quick and easy way to eliminate this inconvenience.
As we can see, thanks to the new additions and developments in Liferary 7.3 the improvements are obvious. Thanks to the new functionalities and tools, our daily work requires less technical knowledge, making it easier to perform, store, search and retrieve data.
Finally, if we want to go deeper into these topics we only have to access the official courses offered by Liferay: https://www.liferay.com/es/services/training