Blogs

RSS
RSS
thumbnail

It's been about ten years now,  so if that isn't a sign of dedication to a product, then I don't know what is. Last year at DevCON in Amsterdam I shared the first part of my story, The Journey of a Liferay Developer: The Search for Answers -- how I discovered the platform, the challenges I faced learning it, and the road I walked to get to where I am today (or rather...

9588
thumbnail

This post assumes that you are at least familiar with Webpack. If not, you might find this post helpful. It explains first why we stopped developing portlets and use a javascript frontend + rest services approach. It doesn’t cover the rest backend at all. Then it explains why we use Webpack as a task runner and compare it a bit to the Liferay NPM Bundler. A little and simple demo...

10089
thumbnail

If you’ve spent time rummaging around Liferay’s search and indexing documentation provided here, you’ll find a lot of details about document contributors, index writers, search registrars, etc. The part that might be missing is what all of these things actually do, why they are important, and why you actually want to go down the road of supporting indexing and search for your custom...

9964
thumbnail

Introduction Welcome back to my series on using Liferay's REST Builder tool to generate your own Headless APIs! In part 1 of the series, we created a new project and modules, and we started to create the OpenAPI Yaml file defining our headless services by specifying the Reusable Components section. In part 2 of the series, we completed the OpenAPI Yaml file by adding in...

11870
thumbnail

Just a quick post today... So I've been using the Target Platform like all the time now. I don't want to have to worry about versions, especially those Liferay modules that change version numbers on every fix pack... However, I've found that sometimes the version numbers just aren't there. But often I only find this out after I've stripped out the version and tried a build. My...

8471
thumbnail

Introduction In part 1 of this series, we started a project to leverage Liferay's new REST Builder tool for generating Headless APIs. We defined the Reusable Components section, the section where we define our request and response objects, namely the Vitamin component and a copy of Liferay's Creator component. In part 2 of the series, we finished the OpenAPI Yaml file by defining...

11681
thumbnail

Introduction In part 1 of this series, we started a project to build our own custom Headless APIs using Liferay's REST Builder tool. The project was started, four modules were created and I presented the Meta and Reusable Components sections from my OpenAPI Yaml file. We're going to pick up where we left off and finish presenting the Paths (endpoints) section and then start...

12901
thumbnail

Introduction So recently I have been working with Liferay's new Headless APIs... I have a nice React-based SPA leveraging the new headless-delivery and headless-user-admin modules. I'm going to release everything eventually, but some parts just aren't ready yet. The first part is ready, though: using the new REST Builder tool to create your own Headless APIs. I know what...

19114
thumbnail

Hello, in this blog article i will share with you how to use clustering with Liferay Community Edition 7.2, show the differents used discovery modes (Mutlicast and Unicast), and how to configure them especially for Unicast (TCPing, JDBCPing, S3Ping) You find below the list of modules that make Liferay Clustering work  : com.liferay.portal.scheduler.multiple.jar ...

11005
thumbnail

Recently I was one of many trying to help a coworker figure out why a Liferay OOTB feature was failing... We had odd stack traces, null object references when OSGi never should have allowed a null to begin with, and nothing we tried would fix the problem. Eventually we found that, for some reason, two different versions of a Liferay bundle had been deployed into the environment....

7331
thumbnail

So the last couple of days I've been working on a new React Headless app that I'm going to be sharing soon, but for various reasons I've had to refer to the /api/jsonws page to check out the classic APIs there that are still available. Just as a bit of background, I have an awesome 27" iMac that I do all of my development on. I love it so much that I purchased an additional Apple...

6184
thumbnail

Whenever I start working with a new client, I always share with them my three rules for effectively working with support: 1. Open tickets as soon as you think you will need Liferay Support. With each new ticket there is sometimes necessary "back and forth" in order to gather necessary contextual details. Opening tickets as soon as possible will hopefully help to clear this portion...

6225
thumbnail

Just a quick post today... Helped a client who was getting a message in the logs after configuring the SAML SP in Liferay using an ADFS IdP: Caused by: org.opensaml.ws.security.SecurityPolicyException: Inbound message issuer was not authenticated. at org.opensaml.ws.security.provider.MandatoryAuthenticatedMessageRule.evaluate(MandatoryAuthenticatedMessageRule.java:38) ...

5993
thumbnail

Participate in an Open Source project? Meaning ... do what exactly? The trouble with that phrase is that everyone puts their own meaning in it. Some will claim it’s not participation unless you write code. Others will claim that’s actually “contributing” (which IMHO is not less ambiguous word) and everything else is participation. For us, it’s simple - whatever you do to make our...

8612
thumbnail

As expected (we wrote the redirect rules after all) and confirmed by our access logs, the documentation was the first place you discovered in the new Liferay Portal website. But did you notice what has changed apart from the URL? New documentation structure  The 7.2 developer docs are now organized in a new way - grouped by tasks you as developer may have:  ...

8825
thumbnail

Have you been asked “What is Liferay Portal?” or “Why are you using it?” or similar questions? Given all the things it actually is and does, it is sometimes hard to find a simple and accurate answer! So we thought we would provide one for you: It’s The Java Platform for Busy Developers   At least, that is what we believe it is and we are working hard to make it easier...

6970
thumbnail

It’s been almost two months now and most of you have probably managed to get used to the new websites and domain names. We invested a lot of time into making the right redirects and to not break your browsing habits. Given the very few issues reported it seems we succeeded. That said, you may have been focused only on the things relevant to you at the moment and missed the big...

6550
thumbnail

Same procedure as last year: Devcon 2019 is coming closer, and with it everybody is working behind the scenes to make it even more awesome than last year. You don't need to take my word for it: Take Andrew's. In 2019 we are back in the center of Germany, in the beautiful town of Mainz, which is very close to Frankfurt, thus really easy to reach from everywhere. Just like...

6052
thumbnail

It is with mixed feelings that I am announcing that I am leaving Liferay to pursue other opportunities. Friday, August 2nd was my last day. The Liferay Faces project will continue to be in the capable hands of Neil Griffin. It’s been more than 6 years since Neil hired me to work on the Liferay Faces team, and from almost day 1, he encouraged me to get involved with the community. I...

4893
thumbnail

This content is meant to be added as a use case to the 7.2 Workflow Scripting official documentation, but isn't ready to go through the full process an official docs article passes through. In the Category Specific Definition, there’s a script in a condition node with logic for determining whether to proceed to one transition or another, based on whether the asset is categorized as...

7579