Questions tagged [liferay]

Liferay is an open source JSR 286 compliant portal and social platform, written in Java. It provides fully functional built-in portlets (60+) and also various integration points to seamlessly integrate with other third-party softwares like Alfresco, Sharepoint etc. Make sure to also tag with the specific version that you're asking about.

Liferay is an open-source portal written in Java and a social platform. It implements JSR-286 and has various proprietary facilities.

Liferay Portal was created in 2000 as open source software. Thanks to a decade of ongoing collaboration with its active and mature open source community, Liferay's product development is the result of direct input from users with representation from all industries and organizational roles. Liferay provides a lot of integration points with other softwares like , , etc.

Liferay as a portal server is application-server agnostic, which means that Liferay can be installed on almost any Java application server.

Liferay provides more than 60+ preinstalled or built-in portlets (also known as out-of-the-box (OOTB) portlets) and the latest version Liferay 7 provides many more features like:

  1. Dynamic data lists
  2. Custom web content types
  3. Workflows for documents and media
  4. Related assets
  5. Faceted search
  6. Integration with multiple repositories
  7. Dynamic site templates
  8. Mobile device rules
  9. Bootstrap theme
  10. Advance Display Templates (ADT)

Liferay has a market-place which serves as an "app" store for the Liferay portal.

Editions

Liferay is distributed in two editions:

  1. Liferay Portal Community Edition (Liferay CE): This is supported by the Community and is free.
  2. Liferay Portal Enterprise Edition (Liferay EE): This is a licensed version of the Portal.

More about the editions can be checked out here.

Liferay Development

It is possible to customize Liferay (OOTB portlets and core) and add new features with the following plugin types using Liferay's Plugins SDK:

  1. EXT Plugin (prior to versions 6.x, it was known as the EXT Environment): To customize liferay's core classes and those things which are not customizable by hooks.

  2. Portlet Plugin: It helps in creating JSR 168 and JSR 286 compliant portlets. Liferay supports many frameworks to create portlets some of which are JSF with Liferay Faces, Spring MVC, Vaadin, Struts and for simple portlets Liferay provides a MVCPortlet class.

  3. Hook Plugin: This is used to modify Liferay's JSPs and other services

  4. Theme Plugin: This is used to customize the look and feel of the whole Portal.

  5. Layout Plugin: This is used to customize the page's layout and is one of the simplest plugins to develop. Liferay comes pre-bundled with 10 layouts.

All the plugins are packaged as .WAR files. All plugins are hot-deployable except the EXT plugin which requires server restart.

Liferay also provides Liferay IDE as an plugin to increase development productivity.

Liferay provides a rich API including many utility classes and also provides custom taglibs to ease development of JSPs, like:

  1. liferay-ui: It provides UI-related pre-styled structures and functional tools like the search container which handles search pagination.
  2. liferay-portlet: It is a wrapper around the tag and provides Liferay-specific portlet functionality.
  3. liferay-util
  4. liferay-theme
  5. liferay-security
  6. aui (AlloyUI taglib): A wrapper around Alloy UI to provide consistent UI components across the portal.

Liferay uses as the built-in Javascript library, which is a library built upon .

Liferay also provides the Service-builder, a declarative service and persistence layer code generator. The generated interfaces can also be exposed as web-services.

Known Liferay Integrations with third-party softwares

  1. Alfresco (Blog about Alfresco Integration)

Beginners' resources

  1. Liferay Developer Network: The place to start - with many tutorials
  2. Liferay Portal Wiki

Additional day to day resources

  1. Latest Liferay User Guide
  2. Latest Liferay Development Guide
  3. Liferay API Docs by version
  4. Liferay Marketplace: the place for getting plugins for all your needs
  5. Liferay Forums

Other Liferay resources

  1. Liferay Releases
  2. Previous Versions
  3. Liferay on Git-hub
  4. Alloy UI Demos
  5. Liferay in Action (official guide to Liferay development)
  6. Liferay Development Style guidelines
  7. Liferay Marketplace
  8. Liferay Portlets

Frequent/Interesting Questions

  1. To Go or Not To Go with Liferay?
  2. Restrictions/Disadvantages of developing portlets with Liferay
  3. Accessing User in Liferay Portlet
  4. Testing for custom plugin portlet
  5. Accessing logged-in User in a liferay portlet
  6. Programmatically get the url of a page in liferay
6475 questions
1
vote
1 answer

How can I access a Liferay local service in a non-OSGi portlet?

In an OSGi @Component Portlet, I can access a Liferay local service using OSGi declarative services: @Reference private MyExampleLocalService myExampleService; Beyond injecting the service into my portlet, @Reference also ensures that Liferay will…
stiemannkj1
  • 4,418
  • 3
  • 25
  • 45
1
vote
1 answer

How to create a custom Elasticsearch analyzer in liferay

In Elasticsearch I wanted to index some fields with my custom analyzer. So first, I added to additional configurations my analyzer Liferay -> control panel -> System Settings -> " Serach Elasticsearch and select '-Elasticsearch 7-' -->" Additional…
1
vote
0 answers

Liferay 7 Extending EditableFragmentEntryProcessor

I want to extend functionality of EditableFragmentEntryProcessor in Liferay 7.4 ( tags in fragments) by searching in text syntaxes like {user.name} and replacing it with value from response from my external API. e.x. I type something…
Krystian K
  • 377
  • 1
  • 3
  • 13
1
vote
0 answers

How to show a file browser and Select files from Liferay Document Library in my custom portlet using ItemSelector

I want to display a file browser to show the Liferay Document Library files and folders and let the user select or upload his files, in my custom portlet. There is such implementation in the Liferay portal itself now, but I could not find its source…
Mehdi
  • 4,396
  • 4
  • 29
  • 30
1
vote
0 answers

What is the JournalArticle setContent(java.lang.String content) replacement in 7.4?

I am currently upgrading a module that uses setContent(), that used to be available for JournalArticle (package com.liferay.journal.model) in 7.3. I checked the guidelines…
Victor
  • 3,520
  • 3
  • 38
  • 58
1
vote
1 answer

What's the best practice in creating font-variables with multiple properties in scss?

I'm creating a variables-file with scss for my Liferay 7 -project and as I'm going to have multiple different text styles, I was wondering what would be the best way to write them? Values below are just examples. Text type Font Size Weight Other…
Miska Rantala
  • 295
  • 1
  • 6
  • 21
1
vote
1 answer

Passing http headers through a liferay portlet page

In some portlet there is a page I want to access via ajax. That page should set some http headers (at least, Status). As far as I can see, such headers are scrubbed. The question is - how can I tell liferay to pass some specific headers?
shabunc
  • 23,119
  • 19
  • 77
  • 102
1
vote
2 answers

Liferay CE 7.2.1 GA2 - Resolve custom modules dependancies after upgrade

I have complete an upgrade of my Liferay from version CE 7.1.0 GA1 to Liferay CE 7.2.1 GA2. I'm now stuck on my custom module dependancies to upgrade. For example : com.liferay.portal
DyM
  • 628
  • 1
  • 6
  • 16
1
vote
1 answer

Liferay Asset Publisher ADT get Image URL

I have created a structure in Liferay 7.2 that has an image selector. When I add the following to the ADT to get the image <#assign artImg = saxReaderUtil.createXPath("dynamic-element[@name='Imagean48']") /> it doesn't return the URL but…
1
vote
3 answers

Liferay IDE - cannot install to Eclipse

I'm trying to install liferay IDE (from tutorial: http://www.liferay.com/documentation/liferay-portal/6.0/development/-/ai/installation) The problem appears after I checked the Liferay IDE checkbox and press Next. Error popup appears telling me…
Almas Adilbek
  • 4,371
  • 10
  • 58
  • 97
1
vote
1 answer

Email services is not working on my liferay 7.3 ga5

I have the same configure in Liferay 7.0 and is it's working. but the same configure I have moved on Liferay 7.3 shows me the below logs and it does not send an email. 2021-05-05 06:26:15.292 WARN [liferay/mail-3][MailMessageListener:135] Email…
1
vote
1 answer

Liferay: Error is occured while executing an index Actions

I am using Liferay 7.3.5 and trying to create an elasticSearch method and have created the required classes KeywordQueryContributor, ModelDocumentContributor, ModelIndexerWriterContributor, SearchRegistrar and ModelSummaryContributor. Now, from the…
MaFa
  • 15
  • 5
1
vote
1 answer

How can i do a Transactional method in Liferay 7.3?

I create a scheduler that in the same transaction delete rows in DB and insert new rows after delete. But if the adding of rows fails, I lost my data because the delete was correctly. How I can delete and add with the same transaction to avoid…
Simone Sorgon
  • 155
  • 1
  • 14
1
vote
1 answer

Null command object with Ajax in Liferay and Spring MVC

We have the following Ajax call in our JSP as follows: $.postJSON("${sendStatus}", command, getData(data), { error: onError } ); And the method in our controller looks like: @ActionMapping(params = "action=/status") public…
MikeHoss
  • 1,477
  • 4
  • 18
  • 35
1
vote
5 answers

How to get the webcontent of an AssetEntry with liferay?

I get asset entries like this: List emt = AssetEntryLocalServiceUtil.getEntries(q); Asset entries have many methods like assetEntry.getTitle() - but not to get the source(input answer of webcontent). It works in the journal liferay…
javier carrion
  • 11
  • 1
  • 1
  • 3