David H Nebinger | 21 Jul 2017

Taking a short break from the Vue.js portlet because I had to implement a repository proxy. Since I was implementing it, I wanted to blog about it and give you the option of implementing one too. Next blog post will be back to Vue.js, however... Introduction I love love love Maven repositories. I can distribute a small project w/o all of the dependencies included and trust...


There might be cases when you want to write your own CAS (Custom authentication Service) for authenticating users in Liferay. There are many cases like : authenticating users based on different database, different column. One scenerio is where we want to have a single text box with username, where we need either user enters screen name or email address along with other text box for...

Carlos Hernandez | 04 Jul 2017

Wouldn't it be nice to take pictures with my mobile phone and let Liferay categorize /  organise these pictures for me?   Imagine how powerful it would be if I am on a business trip and I take lots pictures with my phone (pictures of the places I see to show them to my friends, pictures of food so that I can show my mom that I'm eating well, and my receipts so...

Jamie Sammons | 22 Jun 2018

I am pleased to announce the immediate release of Liferay Portal 7.0 CE GA4!  Download Now! Update 6/28/2017:  Ext Plugins - We thought we had a bug in CE GA4 affecting deployment to Tomcat and upon further investigation we found out that is not the case.  So Ext Plugins are in fact back in GA4.  Documentation for using...

David H Nebinger | 10 Jul 2017

Introduction In part 1 of the blog series, we started a Vue.js portlet based in the Liferay Workspace, but actually there was no JS framework introduced just yet. We're actually going to continue that trend here in part 2, but in this part we're going to tackle some of the important parts that we'll need in our JS portlets to fit them into Liferay. Passing Portlet Instance...

David H Nebinger | 28 Jun 2017

Introduction In Liferay 7 CE / Liferay DXP, there are new facilities in place to help us create JS portlets. In this blog series I'm going to present a new project to demonstrate how to build Vue.js portlets. Vue.js is a lightweight JS framework similar to React or Angular or ... I'm actually picking Vue.js for this series not so much because I think it is better than the...

David H Nebinger | 26 Jun 2017

According to Liferay: Digital Experience Platform (DXP) is an emerging category of enterprise software seeking to meet the needs of companies undergoing digital transformation, with the ultimate goal of providing better customer experiences. The focus here is the customer experience.  Better experiences, regardless of whether they come to you from a...

David H Nebinger | 21 Jun 2017

Just a quick blog today... When you start up LR 7 CE/LR DXP, you'll often see it stop while trying to validate LPKGs. This is a security measure which is used to verify that the LPKG files have not been tampered with. In development, though, this delay is just painful. Fortunately it can be disabled. Add the following line to ...

David H Nebinger | 06 Mar 2018

If you're a Java Architect or Senior Developer, you know just how important the Java access modifiers are. Each choice about what to make public, protected, private or package protected is important from an architectural perspective. If you make the wrong choices you can expose too much of your implementation or not enough, you can give subclasses unlimited ability to change...

David H Nebinger | 17 Jun 2017

So a question came up today how to access the current user as part of a REST method body. My friend, Andre Fabbro, was trying to build out the following application: @ApplicationPath("/myapp") @Component(immediate = true, service = Application.class) public class MyApplication extends Application { @GET @Path("/whoami") @Produces(MediaType.APPLICATION_JSON) ...

gulnaaz Shaik | 16 Jun 2017

Installations:  Need to download and install the following for a workspace : Eclipse Neon with IDE - 3.1.0 Liferay Plugins ce sdk 7.0- ga3 Liferay Portal ce 7.0-ga3(tomcat) Now configure workspace and start the server. Creating Liferay 7 Theme using Gradle : To create a theme Go to File  > New > Liferay Module project and give...

David H Nebinger | 16 Jun 2017

So if you've started developing for Liferay 7 CE / Liferay DXP, I'm sure you've been hit at one point or another with the old "unresolved reference" issue that prevents your bundle from starting. You would have seen it by now, the Gogo shell where you list the beans and find your bean there stuck in the Installed state. You try starting it and Gogo tells you about the unresolved...

Bryan Cheung | 21 Jun 2017

Today I’m writing to announce several new and exciting initiatives within the Liferay Community.  We consider this to be the starting point for a completely revamped community experience. We also have other changes in the works and can’t wait to share the details of what we have been working on. Read on for more details and let us know what you think.   ...

Milen Dyankov | 15 Jun 2017

Originally published on Liferay Community site Today we're announcing a new place for the Liferay Community! This is something we've been waiting for a long time and we're super excited to finally show it to you. " Wait, what? Yet another website? " Uhh ... well ... yes! But it all makes perfect sense! Please, let me explain. The evolution...

Jamie Sammons | 16 Jun 2017

Originally Published on the Liferay Community site   We have exciting news about a brand new way you can connect with others in the Liferay Community.   Right now, you have two platforms to share your thoughts and get your questions answered by other community members. Blogs: A great place for...

Zeno Rocha | 15 Jun 2017

Originally published on Liferay Community Liferay evolved from being a single-product company to a much broader organization. Most of the code we write every day is open source and we continue to launch new projects. As these projects are getting bigger, the communities behind them are gaining momentum as well. Therefore, we needed people that would not only hear, but...

Yasuyuki Takeo | 13 Jun 2017

What's Damascus? Damascus generates scaffoldings of *-service, *-api and *-web bundles with CRUD functionality and integrating other Liferay related functionality based on a configuration, base.json.   Code   Wiki ...

David H Nebinger | 13 Jun 2017

The one thing I never understood was why the UI behind the /api/jsonws is publicly viewable. I mean, there's lots of arguments for it to be secured: Exposing all of your web service APIs exposes attack vectors to hackers. Security by obscurity is often one of the best and easiest form of security that you can have1. Just because users may have permission to do...

Javeed Chida | 13 Jun 2017

Every now and then, there comes a time in a CMS developer's life when the sin of taking default settings for granted takes its toll.    There. I phrased that carefully so it would make a list of quotable quotes some day. Now, let me get to it.   Like many developers out there, I am a huge fan of content-driven...

Cody Hoag | 30 May 2017

If you're interested in providing Staging and/or Export/Import support for your application, you must create Staged Models to track your app's entities and Data Handlers to share information about your entities to the Staging framework. Liferay now provides official documentation to help you do both. There are three new tutorials you can reference for Staged Model development: ...