Assistance with Open Source adoption


First Day at the SPA

Liferay - Fri, 09/30/2016 - 10:15

To develop for Liferay is no simple Task. There are many things you have to keep in mind, if you want to create and develop professional Applications, and you also have to learn many different technologies, if you aren't yet an savvy Java-Developer. So what are the alternatives, searching the web and marketplace portlets, or ...? Here is a different approach, that uses vanilla Liferay and HTML / Javascript and very little time.


So how can you create applications, and still have time for a day at the SPA? The short Answer

JSON Webservices and a little bit of HTML and Javascript.

The long Answer

To show my take on the long answer, I made up this small example. But bare in mind, that any form with many amount and logic is create able.

The example Task: Create a Mailing List sign up (control)

  Step 1: Create our “database”
  1. First we need to create a web-folder, lets call it “Mailing List”.
    Here all the “data entries”, will be stored

  2. Next we create our “datastructure” as an Journal / WebContent Structure (the Liferay naming is a bit confusing, to an Liferay beginner like me), adding all field we need.

    For our example the field Email should be enough.

  3. Now create a template for the newly created structure


Step 2: Now comes the best part "CODING"

Write some Javascript and HTML Code, that uses the jsons webservices to create new Articles (this is the important part), these entries are our “data entries”. For our example I used angular and created all the liferay specific functions in an separate module, so that I can reuse. (It is not yet production grade code, but nice for a demo)

Here, the HTML / Javascript code that should be added into the WebContent:

<div class="newletter-box"> <style type="text/css">.newletter-box{margin:0;}</style> <div class="span4 no-margin"> <div id="newsletterAlertBox" class="alert alert-success hide"> <b>Success!</b> Your email address is now entered in our mailingslist! </div> <form id="newsletterBox" class="form-search"> <div class="input-append" data-ng-app="newsApp" data-ng-controller="baseController"> <input class="search-query" data-ng-model="Email" placeholder="Enter Email ... " type="text" /> <button class="btn" data-ng-click="saveEmailAddress()" type="button"> <i class="icon-envelope">&nbsp;</i>Add to List </button> </div> </form> <script src="/angular/angular.min.js"></script> <script src="/angular-addon/liferay-service-provider.js"></script> <script> (function(app){ app.config(["liferayProvider", function (liferayProvider) { liferayProvider.setToken(btoa("newsletterservice:newsletterservice")); liferayProvider.addTypes({ name:"Newsletter", groupId: 24913, folderId: 24927, structureId: 24930, templateId: 24932 }); }]).controller("baseController", ["$scope", "liferay", function($scope, liferay){ $scope.saveEmailAddress = function(){ liferay["Newsletter"].create({Email:$scope.Email}).success(function(){ document.querySelectorAll("#newsletterAlertBox").className = "alert alert-success"; document.querySelectorAll("#newsletterBox").className += " hide"; }).error(function(){ console.warn(arguments); }) }; }]); }(angular.module("newsApp",["LiferayService"]))); </script> </div> </div>

I posted the code for the angular module, on github:, if you wanted to use it or try it out yourself.

Last Step:

Go to the SPA and enjoy the time you have saved. (Since a form like this can be build in 30 mins, and about 60-90 mins without the liferay-service-provider.js ) No Java, no Jenkins, no Maven, no ....  just Vanilla Liferay and some basic HTML and Javascript.

I'm eager to hear from other people and experiences. Please share any Ideas, Comments and Feedback you might have.

Charles Lam 2016-09-30T15:15:25Z
Categories: CMS, ECM

Mobile First with Liferay Screens – part 3 The future

Liferay - Thu, 09/29/2016 - 08:05

This blog is part of a series of entries on Mobile First with Liferay Screens. [Part 1] [Part 2] [Part 3]



Mobile First with Liferay Screens – part 3
The future


The world of mobile is on the move and users are always ready to move with it. Keeping up with every development is a difficult task for organizations. In Part 1 of this blog series, we described how Liferay Screens can provide a head start with this. Part 2 was about Phlink, the native mobile app we developed with the help of this tool for healthcare provider Philadelphia. How do we see the future of our mobile apps and what further plans do we have with Liferay Screens? Read this third and last part to find out.


Visit our roadshow on 13 October

Would you like to find out more about the possibilities of our native mobile apps on the basis of Liferay Screens? Then visit our roadshow on 13 October in Spaces Amsterdam. Registration is now open!


Liferay Digital Experience Platform

Prepare your business, Create experiences and Understand customers; this is the course Liferay has chosen with the new Liferay Digital Experience Platform. The goal of Liferay DXP is to offer users a digital experience, in which they can shape their customer journey themselves. The platform makes it possible for you as an organization to communicate more effectively and more often with your users and really 'listen' to them, so that you understand what their needs are. You can then transform this insight into action, providing the right information and functionality at the right moment. Users then make a choice from what is offered and create their own digital world.


Although it has its roots in the familiar Liferay Portal, the Liferay Digital Experience Platform puts an end to thinking in terms of portals and intranet. Liferay DXP is a platform solution, and that platform includes mobile devices along with the web interface. Many users communicate primarily via their smartphone or tablet and so the creation of a digital experience also means: the development of mobile apps.

Liferay Screens

The Liferay Screens development tool makes it possible to use the features of the Liferay Digital Experience platform in native mobile apps. This means the content for all devices and applications is delivered by the same platform and we can provide users with a consistent personalized user journey - from desktop to smartphone and tablet - on the basis of aggregate behavior towards predictable requirements.


Componence was able to thoroughly explore the opportunities and possibilities offered by Liferay Screens during the development process of the Phlink app. As described in part 2 of this series, we devoted a great deal of time and energy to the expansion and improvement of Liferay Screens. This resulted in several modified screenlets and a large number of new ones. And as far as we are concerned, these activities will continue.


Liferay to the max

What does the future look like for our mobile apps? In the first place, we intend to use Liferay DXP to the max and take advantage of all the possibilities offered by the platform. In addition, we aim to provide access to more applications in order to satisfy the needs of the users even more. Naturally, nobody will use an app to submit an expense report, but an abstract of the administration system could certainly be interesting for a project organization. A controller might find it handy to be able to access the financial data - not to modify it but to obtain a quick overview of the situation. And the director of a company may not be interested in the flow of invoices, but would like to check the current status of figures and activities. So we will present more information and different types of information in our apps.


More interaction

The future of our mobile apps also lies in increasing interaction with the user and with devices such as iBeacon and other IoT applications in which physical objects and the virtual world come together (Internet of Things). Imagine that you regularly visit a particular branch of an organization. Then you could obtain answers to all sorts of practical questions via your app on the basis of iBeacon, geolocation or IP address. Where is the closest unoccupied workspace or computer? Where can I find an available meeting room? Where is my colleague, and is he even on the premises today? If it is your first visit to the branch, then you will want to know something about the house rules, the managers present and the closing times of the building.

Users will also interact increasingly with each other via the app. An example is the safe creation and maintenance of group chats, an important feature for healthcare workers in particular. They need to be able to communicate with each other about clients and share personal data, without losing control of this information. Users will also be able to work together in the future within temporary work groups that they set up via the app. And they can use the app to record the expertise available within the organization and find it again later.


Further with Liferay Screens

Componence is continuing to work on Liferay Screens in accordance with a roadmap based on customer wishes and our own vision of the future. So the focus is on interactive and social communication applications such as Private Messaging, Blogs and Group Chats. We will also pay attention to the support for several subsites, in-app branding, finding and creating connections, improving security, filling in forms, and day-to-day reporting.

Separately from this roadmap, Liferay will also continue to supply new screenlets, which we can then further adapt and expand. We are extremely interested in additions such as different levels of authentication, more stringent security (encrypted storage and transport), and expansion of Audience Targeting and the social applications. Componence intends to maintain its lead in the further development of Liferay Screens and will follow the course set out by Liferay with the Digital Experience Platform.


Second Screenlets Library

The collection of new screenlets developed by Componence includes familiar Liferay functionalities such as Localization, Menu, Global Search, Web Content List, Web Content Detail, Comments, Subscription, Notifications, Calendar and User Search. This second Liferay Screenlets Library therefore represents a valuable addition to the functionality offered by the standard Liferay Screens Library.

We will monitor the requirements of our customers and possibly also subscription holders in order to develop more screenlets and add these to our library. We will be happy to use these screenlets to give organizations a head start in the development of native mobile apps on the basis of Liferay Screens. Our library also contains numerous handy Liferay plug-ins, which enable us to achieve a uniform web functionality.


Basis app

Working on the Liferay Screens philosophy, Componence has developed an application framework and basis app, which we can use to quickly produce the foundation for a mobile app. This enables us to show customers a working branded app before the development stage has even begun, which will form the starting point for follow-up discussions about the business value to be added.

By continuously investing time and energy in this basis app and the related Liferay Screens Libraries, we can provide our customers extremely quickly with tailor-made native mobile apps. A strategy that makes it possible to provide continued service to organizations that already use Liferay, and to fulfil the Mobile first wishes of prospects immediately.


Social DXP App

In the near future, Componence will start working on the development of a standard Social DXP App. This will be a generic product that can satisfy the standard wishes of organizations. The Social DXP App – which will be available in the Liferay Marketplace – can be configured as required using the Liferay DXP control panel. This means functionalities and branding can be implemented as desired and combined with predefined site templates.


Visit our roadshow on 13 October

In collaboration with Liferay, we are organizing a roadshow about Mobile Ready Experiences on Thursday afternoon 13 October. An ideal opportunity for an extensive introduction to Liferay Screens and the possibilities this tool offers your organization. Be inspired by our mobile app Phlink and discover what Liferay can mean for your mobile strategy. You can register now for our roadshow in Amsterdam on 13 October!

Maarten van Heiningen 2016-09-29T13:05:28Z
Categories: CMS, ECM

My 27th of September at LSNA2016

Liferay - Tue, 09/27/2016 - 14:14

After a thirty-minute train ride sitting amidst super-excited teenagers, even the energized atmosphere of a downtown Chicago Tuesday morning seemed like a peace cloud. Anyway, got to the Hilton in good time for a bagel and creamcheese breakfast and an aromatic Colombian brew before Sergio's session.


Create Amazing Web Services with Liferay DXP (Sergio Gonzalez)
  • APIs are first class citizens
  • Cons of current web service APIs.
  • Configure a REST end point in Control Panel to expose a web service suite.

A simple BasicJAXRSSampleApplication class definition.

  • This class is an OSGI component.
  • Has a getSingletons() method.
  • Pretty standard REST servlet container with the usual annotations, bells and whistles.
  • Classic JAXB for XML<->Object model conversion, with freedom to define your own MessageBodyReader and MessageBodyWriter.
  • Swagger for REST documentation
  • Standard JAX-RS annotation-driven marshalling (to XML or JSON) as well as pagination for each web service request.
  • Demo'ed a nifty cURL-initiated request that posted an image to the document repository using a web service. The cool part was when he tweaked the service to set assetTagNames via the ServiceContext taking a comma-separated set of tag names from the web service invocation’s query params.
  • Decouple the internal logic of the service from the exposed contract.
  Taking Complete Control of Product Navigation in Liferay DXP (Julio Camarero)

“How many of you remember dockbar? How many remember Control Panel? Site Administration? Okay, all of that has been revamped in DXP.”

  • New Control menu is the one menu to rule them all.
  • New Product menu now includes the Control Panel, Site Administration and all configuration menus.
  • New User Personal Bar
  • New Simulation menu

New concept of Product Themes – themes for the product navigation. Traditional themes are now referred to as Site Themes.

Julio demonstrated the ease with which a new tool/widget can be coded that attaches itself to a particular location in an existing control menu.

“You can have this class in your application/module/anywhere. Liferay will find it and use it.”


Guest Keynote: Why Customer Experience! (Mark Grannan)

Mark made a pretty compelling case for investment in customer experience. This presentation is for you if you’re having trouble seeing why customer experience is even necessary. The experiential sailing analogy was super interesting. Customer experience has to be balanced with digital operational excellence to harness a fly-wheel effect and propel towards the end goal.


Pulse Awards

I was very pleased to be included in the awardee list for Individual Contributor of the Year for 2016.

Thanks, Liferay, for the recognition.

Thanks, Apollo, for the support and a fostering work environment.

Congratulations to all the other awardees. I'm honored to be among you.



The big highlight at lunch was not the food (don't get me wrong - great food!). Rather, it was a 4-minute conversation I had over lunch with the very talented Julio Camarero.

I pretty much described a content SEO issue I was hoping to have a work-around for, and he, right there, between mouthfuls of baked trout and asparagus, described a hook style fix for me, only asking for some time to recall the actual artifact that would need to be tweaked.

Extreme programming minus keyboard! 


The Changing Face of SEO (Corbin Murakami)

Corbin began with a sombre reminder.

“Don’t forget about SEO”

  • Distinguished between strategic and technical SEO.
  • Google increasingly rewards good UX
  • Google Knowledge Graphs
  • to find structure data
  • Optimize site structure from a search implications perspective

Corbin has got to be one of the (if not the) funniest speakers at the conference. Oh, and did leave us with a relevant reminder.

“Don’t forget about SEO”


Search Intelligently Using Elastic Search (Andre Oliveira)

I just knew it when Andre spoke in his dreamy low tones that there was something hot bubbling beneath the surface.

He began with a nice survey of the search landscape.

  • The Search-Centric Digital Experience
  • Multi-asset searching (already available), but each asset can lead to a different user journey
  • Go beyond grammar and spelling in search suggestions; think invisible search network of previously made decisions/choices

And then came the demo.

There is a whole bunch of features enabled by default in the new out-of-the-box Search portlet. Can be whittled down to meet requirements.

Search portlet is still instantiable, but you can have multiple search pages in a site.

Andre built a new search view by dragging and dropping a search bar, search result lists, a few facets, a map,…WHOA!

And then he searched for all potholes in Boston. (I didn’t even know you could geolocate those.)

Another awesome presentation!

Additional search features include autocomplete readiness

Best approach with DXP is to have an external search engine running alongside - that's where Elastic Search comes in. 

  • REST API extensible with OSGI
  • explore the best query for results relevance
  • visualization with Kibana
  • (just watch the presentation when it becomes available ...lot more here)



How Graph Theory Helps the Development of Liferay's Publication Tools (Máté Thurzó)

Mate provided a fantastic “got button, need shirt to sew it on” scenario when the design team found that at the heart of the publication process is a graph of publishable data. But they had to think afresh as to how the graph nature of the publication data lent itself to the actual publication process.

This landed up being a theoretical journey into graph theory with some cool insights into the topological ordering algorithms underlying the content publication process used by Liferay.

A beast called the Coffman-Graham algorithm fosters the possibility of parallel processing, validation before the publication process begins, some prediction (probably to optimize a publication plan before execution), etc.

Great presentation if you're up for a theoretical discussion, or want to get into the inner workings of the Staging/Publication process.

Oh, and Liferay has a Neo4j driver, available on github.


Closing Keynote

It was a sombre keynote (and I was glad for it) with Bryan interviewing the Founder of Rahab's Daughers, a local Chicago non-profit that "aims to spread awareness about the underrated problem of human trafficking within the United States".

Exemplars of courage. Amazing work!

-- -- -- -- -- -- -- --

It's been a fun two days. Got some ideas swimming around my head, and a casual conversation with my boss seems to suggest I can install DXP on a dev node and start experiementing with some of the goodness I've had the chance to hear about over these last two days. 

Javeed Chida 2016-09-27T19:14:54Z
Categories: CMS, ECM

Liferay Symposium North America 2016 - Tuesday's Live Blog

Liferay - Mon, 09/26/2016 - 17:01

Welcome to the Liferay Symposium North America 2016 Live Blog! If you've never followed one of these live blogs before, the content runs in reverse chronological order so that people following live can just refresh the page and see the latest on top.

Presentation slides will be available in about two weeks (as of 9/27/16). Check

(Looking for Monday's blog? Here you go!)


That's it! Thanks for following along. For those of you who made it out to Chicago, safe travels home and we hope to see you next year!

4:00pm - Closing Keynote - Bryan Cheung, Liferay

Henry Nakamura started the final session with the raffle drawing for the exhibit hall gameboards. Attendees won an Apple Watch and an Amazon Echo.

After, Bryan Cheung came up to close out the event. He brought up a Liferay employee, Sam (founder of Rahab's Daughters) and Darnesha (a survivor of human trafficking), to share about their experiences.

As a survivor of human trafficking, Sam started Rahab's Daughters to provide holistic help to survivors that lets them see a life after being trafficked. The team at Rahab's Daughters goes out on the streets of Chicago every week to try and build relationships with victims, so that they can see that the organization is trustworthy. They also have a safehouse that provides shelter to the women they help.

Darnesha hopes to study Psychology so that she can help others, the way that Sam has helped her. She shared that she wants to teach girls that nothing can hold them back, and they have the ability to do anything they set their minds to. 

The backpacks that we collected and filled during Symposium will be given to the women who come to Rahab's Daughters. When rescued, survivors usually leave all their possessions behind. We can tangibly care for these women during their new start by providing backpacks filled with toiletries and other necessities.

You can learn more about Rahab's Daughters and how to help stop human trafficking at their website:

3:20pm - Digital Transformation in Government, Glenn Saler, Liferay

Glenn Saler shared about Liferay's work with US government agencies and its partnership with Carahsoft, a technology solutions provider for government. Carahsoft is a GSA Schedule holder for Liferay and an open source catalyst that has experience providing resources that help agencies navigate open source communities for the first time.


- Government agencies at every level have received mandates to go digital and innovate new ways to serve its citizens. Use cases for Liferay in government include video based military training, HR and military career portals, post graduate studies portals, energy information, support of space exploration, grant tracking, informational websites, public services, cyber investigations and collaborative workspaces.

- Liferay DXP capabilities:

  • Providing a modern, unified platform to deliver digital services
  • Aiding digital transformation through tools that facilitate government work for employees
  • Benchmarked as one of the industry's most secure platforms

Case Studies:

  • Illinois Student Assistance Commission - ISAC runs two portals on Liferay, one for students and one for employees to collaborate with universities. They manage the grant process for the state of Illinois and facilitate the process of making college more affordable to students (read more here).
  • - Liferay enabled to integrate 17 different legacy solutions into one platform and streamline the search functionality. Most importantly, they were able to implement the new project in only 6 months (read more here).
  • - Alex Kim, one of the implementers from SSAI for this project, shared about The GLOBE Program is a worldwide organization that encourages students to get excited about earth science. Schools organize projects to measure the temperature, look at clouds, measure rainfall, etc. and students are able to upload their work to the site. Currently, the website supports over 30,000 organizations and over 100,000 monthly visitors (read more here).

  • Finnish Ministry of Social Affairs & Health - There has been wide adoption of Liferay throughout the Finnish government. The digital services that the government is building with Liferay reach 5,000,000+ Finnish citizens. For the Ministry of Social Affairs & Health, Arcusys (a Liferay partner) combined 10+ separate governmental organization and campaign sites under one Liferay environment (example case -
  • Online Training Portal for OmaKanta - The Finnish government is also pushing for a national centralized health record system, called OmaKanta. This change requires training 200,000+ health care professionals throughout Finland to use the new digital system. The OmaKanta training solution was built on Liferay and Valamis and significantly lowers training costs. It also makes it easier to update training as needed and ensure that the current information is pushed to users immediately.

2:30pm - Case Study: Digitizing Communications Across 1,000+ Coach Stores - Adrienne Sweeney and Madhukar Kakaraparthi, COACH, Inc.

Coach first implemented Liferay in 2012 as the global intranet. Today, they are going to talk about the VM Insights tool, which they created in order to simplify and consolidate communication between Coach stores and the corporate team.


- Coach has become a global company, and its stores are at the heart of its business. As they grow, communication is becoming more challenging. They use too many tools, processes aren't aligned, and in-store employees end up frustrated by solution overload.

- They had one focus: Simplify + Consolidate + Engage

- Visual Merchandising (VM) is a large part of retail. A Visual Merchandiser coordinates the display exhibits in all parts of a retail store. Coach wanted consistency in stores across the globe so that customers always recognize the feel of a Coach store.

- VM is done via high-resolution PDFs distributed to stores as a guide for them to implement. Coach wanted to digitize this process and give store employees a digital tool that shows them the latest guidelines. The corporate headquarters also needed a way to confirm that the stores had been set up according to guidelines, as well as a way to respond to any questions or challenges that come up.

Before Liferay:

With Liferay, Coach was able to:

  • Consolidate 11 regional tools onto 1 global platform.
  • Stop printing and mailing VM PDFs, which saved 1.4 million sheets of paper and over $500,000 annually.
  • Create one global process with two-way collaboration between corporate and stores across geographies.
  • Design a visually appealing and useful site for their employees (This is the VM team, after all. The final tool needed to be beautiful to match their high standards).

Project Highlights:

  • Built on Liferay 6.2
  • 6 month implementation time
  • Currently have a Liferay DXP proof of concept in progress to see where they can take the tool next

VM Insights: How It Works

  • Stores can access guidelines from the homepage, as well as search to find them quickly. A doc previewer makes it faster to view documents, which was previously a problem due to slow network connections within stores.
  • The out-of-the-box Notifications portlet allows them to alert stores as soon as new guidelines are available, ensuring that communication doesn't fall through the cracks.
  • When the store finishes setting up, they send photos back to corporate, where the VM team reviews and adds comments as needed.


Madhukar also went through a live demo of the tool (using both a laptop and a tablet), showing us a typical workflow for the VM team when they publish new guidelines.

1:50pm - Enhanced Theming With Lexicon - Rob Frampton, Liferay

Rob Frampton is a front-end developer at Liferay and works on many of our theming tools, including Liferay Lexicon.

What is Lexicon?

- Lexicon is Liferay's "Experience Language". You can think of it as style guidelines used to design Liferay DXP's components.

- Lexicon is built on top of Bootstrap, extending its current components and adding new ones.

Theme Architecture

- Any theme in Liferay begins with an unstyled theme. It will deploy, but the Lexicon files aren't implemented. 

- When a styled theme is deployed, it saves over the unstyled theme and replaces the CSS so that the page is now usable, rather than static HTML.

- On top of that, you can write a custom theme that will overwrite any files in Bootstrap and Lexicon as needed. This is an incredibly powerful tool that makes Liferay endlessly customizable.

Leveraging Taglibs

- Taglibs are reusable tags that exist within Liferay DXP. These render Lexicon markup, so that you don't need to look up documentation to implement Lexicon components. 

Customizing Lexicon

- Lexicon allows customization for the core styling, meaning that you can change how Bootstrap and Lexicon look without writing new stylers (I have to admit, this talk is a little over my head, but I think I wrote this statement down verbatim).

Here are some examples of what you can accomplish with only a few changes to variables. The developers for Lexicon have tried to make variables for everything you might want to change in different components, hopefully making it easy for you to customize your site design as much as you want.



In Liferay DXP, when you're designing your theme, you're really styling for Lexicon. But no one wants to spend hours digging through source files and trying to see all the variables they can change... which is why Rob built the Lexicon Customizer.

Components are on the left and Variables are on the right.  Below the Lexicon and Bootstrap elements, you can edit components and see the effect in the Preview pane in the middle. In the slide above, you can see how Rob was able to bring up a color picker to change the look of the green alert. When you're done, export the code and you're good to go (you can see the menu to do this in the top right corner, the three white dots). Rob also walked the group through a couple different workflows for deploying any changes you make.

You can download the Lexicon Customizer at

1:10pm - Must-Have Strategies for Your Website Redesign (Lessons From the Upgrade) - Ryan Schuhler, Liferay

What decisions do you need to make for the upgrade process? What challenges will you run into? Using as a case study, Ryan Schuhler went through lessons our Web Team learned during the upgrade from Liferay 6.1 to 6.2.


- You should consider upgrading or redesigning if:

  • Your site feels dated
  • Your users get lost or feel confused on the site
  • Your site pages feel inconsistent
  • Every time you need a new page, it feels like you're creating everything from scratch. Site redesign isn't just for end users. It also benefits those who are in charge of upkeep.

- Pros:

  • New features
  • Improvement (especially as Liferay continues to add more functionality in new versions)

- Cons:

  • Cost (Time, money and resources)
  • Change (It's difficult to get people excited about better UX, because it means that their process will need to change)

- Stories from, including our process, planning and implementation:

  • Ryan shared how the team created a new design for features pages, but wasn't able to implement it until the upgrade. Lesson learned: you need to balance your current work alongside the upgrade. In this case, the team found a way to create a similar page style on the old version of the website, so that they could get the new design live immediately.
  • One goal for the new site was to funnel and focus our users during their interactions with our websites. This formed the basis of the navigation redesign. Lesson learned: Set limits for navigation ahead of time, so that the site remains manageable in the future. For, they decided to make navigation no more than 3 levels deep.
  • No matter what, if you're using custom portlets, you'll need to update them when you upgrade to a new Liferay version. The Liferay team had an extra layer of complexity because the new website was being developed on a new instance. Lesson learned: Migrate portlets in chunks. First do the minimum amount of work necessary and delay the rest until things are more stable.
  • When the Web Team created a new instance, they created a number of new subdomains. However, they forgot to take into account how this would affect SEO until our SEO analyst brought up the issue to the developers. Lesson learned: work with your SEO analyst to ensure that your upgrade process doesn't tank your SEO.

- Three things to keep in mind:

  • Incrementally improve
  • Think about User Experience
  • Remember SEO

12:50pm - Lunch

Another day, another lunch! This is your last chance to look at exhibits from our sponsors, participate in the charity activity and get your gameboard stickers.

It takes less than a minute to stuff a backpack with supplies. We're almost at 200. Help us fill the last few backpacks we have!


If you finished filling your gameboards, you can drop them off at the Registration desk. Deadline is 2pm!

11:55 am - Liferay Pulse Awards

Presented by Henry Nakamura

Best B2B Digital Experience - Murata Manufacturing

Best Intranet Experience - Domino's Pizza

Best Omnichannel Experience - AvMed 

Best Overall Digital Transformation - Volkswagen Group of America

Congratulations, everyone!

11:10 am - Liferay Product Roadmap

Our VP of Product Management, Ed Chung, is sharing about the changes in Liferay DXP and our roadmap going forward. Exciting stuff – join us next year so you don't miss out!

11:00 am - Liferay Pulse Awards

Every year, we enjoy taking the time to acknowledge our community contributors with our Liferay Pulse Awards. Jamie Sammons presented both our Community Excellence Award and our Individual Contributors of the Year. These are awarded based on number of blog posts, code contributions, new applications added to Liferay Marketplace and forum participation.

2016 Community Excellence Award Winners

2016 Individual Contributors of the Year

(I'm not sure why this photo is glowing. I'm guessing it's because our contributors are truly that amazing.)

10:20 am - Guest Keynote: Why Customer Experience? What Should Digital Leaders About it? - Mark Grannan, Forrester Research

Mark Grannan works as an analyst for Forrester Research with AD&D professionals, helping them understand customer experience and how it can benefit their business.

What is Customer Experience?

- Forrester's CX Index measures effectiveness, ease and emotion of customer experience. These three qualities contribute to customer loyalty, which is built on retention, enrichment and advocacy. Using this index, Forrester is able to measure the quality of customer experience today.

- This slide makes it clear that investing in CX and doing well has huge advantages to your business.

- However, companies in the "Leaders" category have gone out of business in the past ten years, and companies in the "Laggards" category have had great success. There are external factors at play that make it very difficult to measure the true impact of customer experience.

- The question we need to ask is, Does customer experience really drive revenue growth?

- It's easier to find a clear picture when you compare competitors within the same industry:

- This even applies overseas. TalkTalk is a UK equivalent of Comcast and had a data breach that affected customer experience.

- What does this mean for you? What can you do with this information?

  • Map yourself and competitors (see the Apollo Education Group case study from Monday's live blog)
  • Honestly assess your potential (How does your company make money today? Can your company enable experimentation around CX?)
  • Craft your CX strategy (Break from the pack, dominate a segment, ride the disruption)

- How do you use Customer Experience to move my Digital Experience agenda forward? 

  • Look at every step of a customer's journey. We talked about this during our final session yesterday on the need for a holistic customer lifecycle dashboard. The goal today is to optimize the journey, not individual touchpoints. Yes, individual touchpoints need to be excellent, but everything needs to contribute to the overall customer experience.

- The return of the Bell Curve:

- Adopters and Collaborators make up the bulk of the market today. Differentiators – those who are creating new digital products – are still rare. It's hard to create new products and still pay attention to the rest of your business. Companies need to master both sides of digital – Digital Customer Experience and Digital Operational Excellence.

Three Key Takeaways:

- Remember the three "e's" of Customer Experience: Effectiveness, Ease and Emotion.

- Customer Experience is linked to revenue when customers have options and there is Customer Experience differentiation in a market.

- Customer Experience + Digital Operational Experience = "How" to move Digital Experience forward.

9:40 am - Building Deeper Customer Relationships With Audience Targeting - Evan Thibodeau, Liferay

Personalization matters. When experiences are personalized for us, they are transformed into more engaging moments that we remember.


- Audience Targeting allows you to segment users in order to cater content to them according to their activity and identity. Each user is unique, and segmentation allows you to deliver more personalized experiences.

- Campaigns allow you to apply priority, start and end dates, as well as custom reports to your user segments. These three things together – Audience Targeting, Segmentation and Campaigns – give you the ability to control personalized experiences for your customers.

Retail Demo: Finer Cloth (a fictitious brand)

We followed one user, Ray, through his full customer journey with Finer Cloth. Here are the highlights of the demo:

First visit to the website, when we don't yet know anything about Ray. For now, the site shows both men's and women's clothing.

After signing up, we gain some information about Ray and are able to show him a new home page, filled with items that he is most likely to be interested in.

Ray ignores our fall campaign for socks and starts looking at suits instead. Because he is signed in, we're able to track that information and show him this page the next time he visits the website:

But that isn't where the journey ends! We've been talking the past two days about getting to the heart of customer experience, and that goes beyond the initial purchase. What else can we offer Ray? How can we continue to deliver personalized experiences that match his interests and needs?

Evan also showed us how an admin can create these kinds of experiences with Liferay's Audience Targeting module. If you followed along with yesterday's QAD case study, you already saw a short preview of how this works. The retail example may be familiar to you, but examples like QAD show that Audience Targeting is useful for many situations. Think of a typical intranet: the majority of content is irrelevant to the majority of users, because it isn't personalized to their role within the company. That's where audience targeting can help, by serving up the relevant content as needed based on audience segments.

9:00 am - Create Once, Use Everywhere: Maximizing Your Content in Mobile - Javier Gamarra, Liferay

Javier Gamarra works in Liferay's Madrid office and is a Senior Software Engineer working on Liferay Screens. The goal of Screens is to create a single source publishing tool, one CMS for all app and web channels. Javier shared in-depth examples of the new features in Liferay Screens 2.0. If you like to see the technical details of how Liferay Screens does what it does, this session is definitely one to review on the Recap site.


- Content is king. Users today expect to be able to access content everywhere, in every form and at anytime. Millennials in particular have broken the traditional loyalty loop, and now want content to be personalized to every form factor.

- Because of new connected devices, today is a wonderful time to be alive, but a huge pain for developers. We need to find ways to create content once and use it everywhere, in order to save time. Javier explained that this is called COPE = Create Once, Publish Everywhere.

- How to COPE?

  • Separate content from display
  • Ensure content modularity and portability
  • Build Content Management Systems, not WPT. You should have the ability to present content in any format at any time.
  • Build digital experiences across web, mobile and connected devices in order to meet customer expectations.

- New Features in Liferay Screens 2.0 (this is just a quick preview – Javier went through a lot of material!)

  • Objective for screens is easing the development for native applications.
  • Asset Display
  • Gallery that can expose new views with same content
  • Reusable code between apps
  • Structured content
  • New themes to apply to apps

8:50 am

Good morning! Grab your coffee and settle in, because we have another full day of great sessions to looks forward to. We should be starting in a few minutes.

Christine Reyes 2016-09-26T22:01:01Z
Categories: CMS, ECM

My 26th of September at LSNA2016

Liferay - Mon, 09/26/2016 - 16:14

Here's a running note dump of my day 1 at Liferay Symposium North America 2016, here in Chicago.

This is just to pique your curiosity if you couldn't make it out here AND your interests happen to match mine. Wait for the slide decks and presentations to be shared by Liferay so you get it all.

Keynote (Bryan Cheung)

Bryan did it again, making his point with the same efficiency he preaches. I recalled his keynote from 2015 where he began with a heart-warming picture of children interacting with technology at Disney World, and came full circle with a sobering and grounding message not to lose track of what really matters as we embark on our digital ventures.

This year, Bryan took us through a history lesson on the culture of design – one that cuts across all industries – whereby the average and median population has traditionally been targeted. The challenge he left us with was to heed the need to design to the edges, so that our designs, while scaling for the majority, do not neglect the minority and certainly not the “jagged” reality of the majority as well.

Lots to think about. Relevant keynote.


New Features in Audience Targeting 2.0 – Liferay DXP (Julio Camarero) Prospects: Converting users who are not yet customers
  • Define segments (audience definitions)
  • Fully renovated UI/UX
  • Create/manage user segments and campaigns
  • Users compartmentalized using:
    • IP addresses
    • Language rules
  • Custom fields
  • Take audience to form to capture as a lead
Recent inactive clients
  • Reports by user segment
  • Excel export capabilities
  • Asset Publisher integration
    • Enable user segment filtering feature in the new Asset Publisher configuration
  • New Simulation experience for user segment matches
Engaging customers
  • Improved campaigns
  • Multiple user segments
  • Campaign-specific content display
  • Measuring via reporting

“I want to check:

How many people watched the banner on the home page

How many people clicked on the link on the home page

How many typed into the form

How many actually completed and submitted the form


Audience Targeting is a framework – fully extensible to meet specific company requirements. Rules tutorials that show how to segment users based on custom rules are available on the wiki, etc.

Experimental app demonstrating:
  • Segment users based on mail keywords (keywords from emails they receive)
  • Targeting users by mood

I was really impressed by the experimental mood-driven targeting app that Julio demonstrated. No better way to say the sky is the limit than show a great (albeit forced) example.

Good stuff!


The ROI of Modularity (Ray Auge)

Ray’s gentle introduction to the struggle behind “IT’s platform for diversification” started to get my attention when he said “coupling exists in the IT industry at many levels, not just between one piece of code and another piece of code…”.

I thought this was a really fresh perspective on thinking about ROI for everyone – from programmers (IT decision makers), all the way up (or out) to executive decision makers.

The real takeaway from Ray’s presentation was to understand the importance of decoupling at ALL levels of IT development through delivery. My paraphrased bullet points are below.

  • Virtualization (decoupling inter-system dependencies and gaining virtual )
  • Polyglot (decoupling developers affinity to implementation language preferences)
  • Microservices ( decoupling systems by adopting clearly documented and stringent contracts between the moving parts)
  • Continuous delivery (decoupling from the unpredictability/variances of time)
  • Modularity (taking different deliverables, mixing them up and being able to get a return on the summation, doing it smartly appears to be the challenge)

“Reinventing yourself every few years is bloody costly”

  Leading Your Company’s Digital Transformation (Brian Laird)

I’ve got to say. My boss’s boss’s boss is a fantastic talker. That’s likely not going to impact my raise any, but hey, it IS true!

You should check out this presentation if you are an IT thinker/professional who may be accustomed to thinking about change inside out, with IT as your greatest influencer. Brian forces a broader thinking mindset, outlining the main drivers for digital transformation. Great talk for IT entrepreneurs and decision-makers alike.



Glorious whitefish! What else is there to say!

<insert picture here I was too busy eating to snap a picture of my plate. By the time I realized that, the food was all gone./>

  Building a Culture of Trust, with Slack (Andrew Gruhn, Jay Landro)

If there was one presentation for a developer to attend at LSNA16, I think it would have to be this one. I think…

I had heard of Slack from a developer friend and even used it a little bit in the last year with a closed group of friends, but man, the good stuff is beneath the surface.

Andrew introduced Slack features real quick in the light of how his team used slack channels as a step toward dispelling the absolute absence of phatic communication in globally distributed teams.

“Slack is a javascript web app wrapped in electron.”

  • Slack provides integrations with well-known application stacks out three. E.g. Github, giffy. Great use case is when continuous integration can notify an integrated Slack group.
  • Rise of integrations as a service: IFTTT (IF This Then That) and Zapier.
  • They demonstrated a channel named #designideation which showed pictures they snapshotted using the camera from IFTTT.
  • Use of web hooks to setup a simple integration: being able to type a command to slackbot and then have the web hook propagate to another integrated system. E.g. QA person type a command to slackbot which (via a web hook) triggered a build and deployment to the QA servers.
  • Use of Liferay IO – a microservices host – that can be used to expose select operations. These operations could service commands sent to slackbot.
  • A framework for bots: “Slackbot is the language parsing tool within slack.” Worth checking out the “When someone says” and “Slackbot responds” mapping tool feature of Slackbot.
  • A LiferayBot implementation that could be queried by commands via Slack. E.g. “@liferay-bot search for xyz” causes the LiferayBot to perform the search and return a URL to the Search Results on a Liferay DXP instance.



Boost Your Productivity with Web Experience Manager in Liferay DXP

This session was mostly a look at the Control menu in Liferay DXP.

The dockbar has been overhauled. Repeat. The dockbar has been overhauled.

Lots of improvements to navigating around Control Panel and User Account settings. Much improved UX.

Content Authoring improvements include:

  • ease in comparing historic versions of content
  • image selector enhancements (pull an image from a URL and drag-and-drop, inline image editing)
  • a new priority field that can be set in Asset Publisher to bring certain content with higher priority at the top of results
  • new “Restrictions” feature that lets you define what structures can be used for content in a specified folder. (this is pretty cool)
  • new page type called “Page set”. If a page is of type Page Set, then it does not get rendered as a link and gets treated as a true container. Thus we don’t need a hack to make it unclickable. Page sets are not clickable. Sweet!
  • ADTs for breadcrumb and navigation now available (I’ve only ever used Asset Publisher, time I dug into the other ones)
  • A theme can now have a decorator set for it – out of box nifty displays
  • Publishing simplified
  • LAR properties – delete (LAR) on success/failure.

Questions I asked:

  • There is a Restrictions API, right?
    • Not sure.
  • Have you looked into versioning templates?
    • No. (I would love this feature. Note to self to request it via JIRA.)

Jose Dominguez was super-welcoming of emails. Nice, tight presentation.

Coffee break!

Decadent Ice cream brownie. WHAT!?!?

So good.


Protect Your Data! Securing Your Liferay Instance

“One does not simply walk into Mordor”

That is how you begin a discussion of security. Not that the evil lord Sauron is an ideal example of an IT Director persona (no offence meant).

That’s how Jeff Handa began his presentation as he walked through a breadth-first list of common Infrastructure precautions and best practices.

Liferay is just on top of whatever foundation platform we have chosen. So pick a supported platform that is familiar, patched, and monitored.

  Upgrading and Redesigning Websites (Ryan Schuhler)

Ryan  talked through the madness of a UI/UX upgrade on top of an actual version upgrade of

“What have I done?”

You know, he mentioned that every upgrade and redesign effort often feels like an existential crisis. For my part, and maybe this says too much about myself, but I have experienced existential crises of earth-shattering proportions with something as simple as a cut-and-paste operation. Again, that’s just me.

He shared a nice checklist of questions to ask yourself before embarking on a redesign/upgrade effort. Lots of good common-sense tips and spectrum of UX options to consider. Great talk for UX designers and primarily front-end developers.

- - - - 

Got to catch the train out. Will post tomorrow's notes... tomorrow!

Javeed Chida 2016-09-26T21:14:15Z
Categories: CMS, ECM

Define Websocket Server Endpoints using Liferay Websocket Whiteboard

Liferay - Mon, 09/26/2016 - 06:13
Define Websocket Server Endpoints using Liferay Websocket Whiteboard

JSR 356 is the Java API for Websocket. It defines the standard way to create Websocket client and server endpoits in Java. In this blog we are going to describe how you can register websocket server endpoints in a OSGi container using Liferay Websocket Whiteboard

What is Liferay Websocket Whiteboard?

The Liferay Websocket Whiteboard is a simple module which allows you to define new Websocket server endpoints as regular OSGi services.

We are still going through the peer review process so, at the time of this writing, some of the features could not be in master branch yet. How do you register a Websocket server endpoint with Liferay Websocket Whiteboard? Include dependencies

First of all you will need to add the Liferay Websocket Whiteboard dependency to your project.

For now we have not published the dependencies in our nexus, so you need to create the needed jars from the source code (run gradle install in the websocket folder).

In the near future, once we publish the artifacts to our public Nexus repo, you will just need to add the dependencies in your build file, as shown below:

com.liferay:com.liferay.websocket.whiteboard:1.0.0 com.liferay:com.liferay.websocket.whiteboard.spifly.fragment:1.0.0 Configure your Liferay OSGi Container

If you are going to define your new websocket server endpoint in Liferay 7, anything special needs to be done, all the required infrastrcuture is already provided.

Configure your NonLiferay OSGi Container

If you are going to register your server endpoint in a standalone OSGi Container, you will need to register a javax.servlet.ServletContext service with the property set to true.

Here you can see an example of how to register a ServletContext service with the property set to TRUE:

Dictionary<String, Object> servletContextProps = new Hashtable<String, Object>(); servletContextProps.put("", Boolean.TRUE); bundleContext.registerService(ServletContext.class, servletContext, servletContextProps); Define server endpoints

Now your are ready to create your first Websocket server endpoint. For now we don't support the Annotation-Driven Approach version, only the Interface-Driven Approach is supported.

If you want to  create a websocket Server endpoint you only need to register a OSGi Service for javax.websocket.Endpoint.class with the following properties:

org.osgi.htto.websocket.endpoint.path: required, the path for the websocket.

Here you can see an example of how to register a server Endpoint service using Declarative Services:

@Component( immediate = true, property = {"org.osgi.http.websocket.endpoint.path=/echo"}, service = Endpoint.class ) public class EchoWebSocketEndpoint extends Endpoint { @Override public void onOpen(final Session session, EndpointConfig endpointConfig) { session.addMessageHandler( new MessageHandler.Whole<String>() { @Override public void onMessage(String text) { try { RemoteEndpoint.Basic remoteEndpoint = session.getBasicRemote(); remoteEndpoint.sendText(text); } catch (IOException ioe) { throw new RuntimeException(ioe); } } }); } } See also

JSR 356

Websocket server endpoints

Cristina Gonzalez 2016-09-26T11:13:22Z
Categories: CMS, ECM

Liferay Symposium North America 2016 - Monday's Live Blog

Liferay - Sun, 09/25/2016 - 22:14

Welcome to the Liferay Symposium North America 2016 Live Blog! If you've never followed one of these live blogs before, the content runs in reverse chronological order so that people following live can just refresh the page and see the latest on top.


5:00 pm

That's it for today! Tuesday's live blogging starts here at 9:00 am.

4:30 pm - The Customer Lifecycle Dashboard of the Future - Jason Chang and Mark Hensley, Liferay

One more session until the day is over! Jason Chang and Mark Hensley both work with the Marketing department at Liferay. As marketers, they're here to share how IT can partner with Marketing to support customers across the full lifecycle.


- We need a dashboard that has a full view of the customer lifecycle. What it actually looks like will vary from company to company; the important part is how you build it and how you use it.

- Digital transformation should be guided by a customer-centric digital strategy – not a marketing strategy, and not a customer service strategy.

- The traditional customer journey is department-centric. As customers move through their journey, they are passed off from Marketing to Sales to Support and eventually to Community.

- Customers don't see companies in terms of departments; they just see one brand experience. The customer lifecycle dashboard isn't about a prettier UI. It's about having visibility into the entire lifecycle regardless of your role in the organization.

Jason and Mark offered some hypotheses for how to get out of these traditional boundaries:

- Improve customer loyalty and retention. Look at percentage of customers onboarded, percentage of customers trained, low/no support ticket counts as things that you can look at in order to prepare for future problems. For example, in Liferay, if customers don't hit project milestones within the first 90 days, there is a high percentage that they will not renew their subscription. Part of our job is to make sure that their onboarding goes smoothly, so that they continue to have a good experience with Liferay.

- Sharing retention and loyalty metrics between Sales, Training and Support ensures that no one has fallen through the cracks. Again, using Liferay as an example, if training goes well, the number of tickets that Support sees should decrease, because customers have been educated well on how to use the software.

- Marketing can additionally contribute by targeting content, not just to prospects, but to customers during the onboarding and training process as well. Additionally, they could contribute to building loyalty by targeting content about new features and upgrades to existing customers.

They also shared a table of recommended metrics, how to diagnose them, and opportunities to improve customer experience. You can see from the picture that it had a lot of information in very small text! Make sure to check it out on the Recap site in a few weeks:

3:50 pm - Case Study: Building a Foundation for Healthcare Transformation - Deepesh Chandra, Mount Sinai Health System

Mount Sinai is based out of New York City. They own 7 hospitals, 1 medical school with 15 institutes and 12 ambulatory practices. Their goal is to drive innovation and research in healthcare, and they consider themselves champions of technology in their field.


- The healthcare industry is based on volume (if a doctor sees a patient ten times, she gets paid ten times). There is no incentive to keep patients out of the healthcare system.

- Today's question is, How do we sustain a healthier system going forward?

Changes you will see in the next 5 years:

  • Health insurance utilization will continue to increase, while available funds continues to decrease (in terms of medical spend per capita).
  • Demand for services is increasing due to an aging population, an increasingly unhealthy population and general medical inflation.
  • Many large practices will merge or go out of practice due to the strain of financial and clinical transformations.

- DSRIP is New York's Delivery System Reform Incentive Payment program and aims to transform the state's delivery system, so that the demand for healthcare services goes down. This would be done by coordinating with community care to prevent the need for acute or emergency care services, which are always more expensive.

- Mount Sinai is approaching this by building Community Care Hubs around New York. The idea is that any patient living within this "hub" will be connected with community care options. Under the hood, this will all be powered by IT so that providers are working with one another, and have the right information at the right time. The technology even enables them to go on the field through mobile services.

- Ultimately, healthcare will treat people less like patients and more like customers by filling in gaps in the system, such as providing warm handovers to housing services for a patient that is homeless. All of this coordination and collaboration within the community is built on Liferay and Okta; together, these technologies drive user experiences for Mount Sinai's community partners.

Deepesh Chandra shared a detailed overview of how Mount Sinai is creating these services with Liferay and Okta. Mount Sinai is all-in on building these hubs and implementing them into a system-wide process. "If our beds are filled, it means we've failed," one advertisement from Mount Sinai says. The ultimate goal is to use technology to provide better care to patients.

The Liferay implementation took them 6 months, and most of the work went into integrating Okta and building the necessary security layers. They are moving forward by continuing to build more applications into Liferay.

2:20 pm - Uncovering the Business Wins in Modularity, Microservices and Other Technical Megatrends - Milen Dyankov, Liferay

Milen Dyankov is a Developer Advocate at Liferay, meaning that he interacts with our community and brings their feedback into our products. It can be challenging to get the worlds of business and IT to understand one another, but it's crucial to find a way, especially when responding to technical megatrends.


- Software is now everywhere. You have to deal with it no matter what. Software is also never done. It is constantly being improved and enhanced.

- Think of racecars, which are constantly being maintained and improved. But racecars don't win races; people do. Software is the same way, and it needs a great team of people to keep it useful.

- For those of us that don't exactly understand how it works, software seems like magic.

- How much is the magic of software worth to you? Is that magic efficient? Is there better magic out there? These are the kinds of questions you should be asking about software, rather than focusing only on the end result.

- In other words, can you trust the magicians? Do you trust their integrity, their approach and their expertise?

- The problem with off-the-shelf products is that the magic is replaced by production. The result is that business users view software as an assembly line that needs to be made more efficient. It's tempting to try and implement trends (such as microservices) that aren't relevant to the software.

Milen used this image to explain the business and development perception of software:

Hopefully you can see that clearly. On top, we have a magical scene of three people floating on bright green balls of light. Below, we realize that there are more performers dressed in black controlling the balls of light. Milen explained that the bottom view is how IT teams actually make things happen, and the top is the part of software that end users usually see.

- One of the key changes in Liferay DXP is that it targets a new business problem: How do you interact with and understand customers? Liferay Portal aimed to solve integration problems, and dev teams have served up many solutions that are capable of solving this problem. Digital experiences are new ground, and software experts are working on building the magic that will solve this new challenge.

- The perfect infrastructure of today is built by unconstrained developers focused on business goals, building independently deployable, cohesive services with well defined boundaries and communication countracts, and a modular runtime with service management capabilities. Whew – that's quite a sentence. Here's a picture of the slide:

And here are three ways that you can use Liferay DXP to achieve this:



(I recommend checking out the slides when they're available for better quality images)

Milen emphasized that there's no "best" solution. It depends on your business and what you need to solve the problems you have.

"You don't pay engineers to write code, you pay them to understand subtleties and edges of the problem. The code is incidental." -Ted Dziuba

If you can trust your software team to help you, than you don't need to focus on buzzwords. You can focus on the business problems, and your team will build the solution you need.

1:40 pm - Keeping Millennials' Atten... ooh, Snapchat! - Michelle Hoshi, Liferay

Millennials! Who are they, really? Marketers talk about millennials all the time for the following reasons:

  • They are born between 1980 - 2000, which is a wide spread of people.
  • $200 Billion+ spending power by 2020.
  • Known as The Always Connected Generation, Sharing Generation, Digital Natives
  • They use multiple tech devices, everything from wearable devices to tablets. 87% of millennials use 2-3 devices every day.
  • Although they are experts at navigating technology, they have little patience with poor user experiences.
  • Authenticity is extremely important to millennials. They aren't easily moved by flashy ads or hype.
  • Millennials are also research-oriented and will usually do a lot of independent research before ever talking to a company about a purchase.

Busting the myths about millennials:

  • They're all part of the same audience. Millennials cover a 20-year age difference, meaning they can be anyone to a teenage girl to a young father with children.
  • Jumping on a Trend = Success. Selfies and emoticons are popular, but when companies try to implement them, they often fall flat for being inauthentic or gimmicky. 
  • Don't develop strong brand loyalty. Millennials who develop a relationship with brands at a young age are more likely to stay loyal as they grow older, as long as the company makes sense to them.
  • It's all about online shopping. There's an idea out there that, because millennials are so connected, everything must be online. However, they also expect offline experiences to stay connected with what they see online.

Michelle Hoshi proposed that we need to think about more than "Why Marketing to Millennials Makes Sense for Your Business." Now, the mindset has moved beyond just millennials and is driving change for other audiences as well. She shared about Hylands, a homeopathic company that used an online Pickleball campaign to build a community for the seniors using their products.

Three final takeaways to get to the heart of customer experience:

  1. Keep it individualized.
  2. Keep it simple.
  3. Keep getting feedback.

12:04 pm - Lunch time!

I would have snapped a picture of the amazing spread we had for lunch, but there's too much going on right now to focus on the food! Most of our attendees are networking with peers or sitting at our Food for Thought tables, where they can have focused conversations about Liferay products and other website-related topics.

It's a little hard to read the sign, but this group is talking about Testing Your Liferay Implementation with some of Liferay's Quality Assurance team.


It's definitely crowded in here! I was barely able to back up enough to get everyone in this picture. You can see half of Zeno Rocha's face on the right, pausing from talking to customers about WeDeploy, a new product from Liferay.


Other LSNA16 attendees are taking advantage of our speed consulting sessions...


...or spending time talking to colleagues.

If you're on-site with us, this is also a good time to participate in this year's charity activity. We're collecting supplies to put in backpacks that will be given to survivors of human trafficking. If you have extra shampoo, conditioner, etc. in your hotel room, remember to bring them downstairs so you can help with this great cause!

From the Liferay Event mobile app:

11:20 am - Case Study: Leading Your Company's Digital Transformation - Brian Laird, Apollo Education Group

Just five years ago, we wouldn't have thought we could change our thermostat from our phones. This is digital transformation: using the digital age to do things differently than we've ever done them before. Apollo Education Group is a US-based company that owns universities across the country. Higher education is growing and the number of students enrolled is expected to double over the next 10 years. In addition, the types of students are changing, as more people attend school after being part of the workforce for a few years. Brian Laird leads digital transformation at Apollo so that they will be ready for this future.


- Digital Transformation is NOT about IT. It's about looking at how technology is changing the world and seeing how business can respond.

- Uber just disrupted the taxi business five years ago, and they are already being disrupted by autonomous cars. Everyone needs to pay attention to digital transformation and innovation.

- Brian Laird shared that one key part of the transformation was to map the business processes for all of their universities. This resulted in a list of 13,000 requirements, but 80% of them were actually the same process for every university. Apollo saw an opportunity to create a standardized plan that would apply to most of their schools. This became the foundation for their digital transformation and move to a new platform.

- Why was Liferay important?

  • Time to market has greatly decreased. If the university has the content ready, Apollo's IT team can create a fully integrated student portal in 3 weeks or less.
  • Sharing of best practices is now the norm, due to the work of mapping business process. This allowed IT to templatize the initial roll out and build common components used by the schools.
  • Allowed them to jump start their mobile initiatives.

- Results:

  • The ROI paid for itself in only 2 years.
  • eCommerce now has over $60M running through it and is rapidly growing. Someone can pay online and start going to class in 2 - 3 minutes.
  • Supported 4 new institutions along with approximately 20% organic growth across the rest of schools.

- Tips for Success:

  • Understand the Digital Transformation Maturity Model (see this one by Altimeter).
  • Create a process for general IT transformation, including fixing the nuts and bolts, fixing the applications and processes, and optimizing systems.
  • Executive team needs to be completely bought in and willing to drive the change. This was the biggest driver for change.
  • Be willing to "figure it out as you go." No matter how well you plan, things may change in as little as two years.
  • Agree on what is most important to customers and the company. For Apollo, this meant understanding what millennials expect from a quality education.

Brian Laird shared even more keys to success in his slides, which will be available in a few weeks. What an incredibly in-depth look at the process of digital transformation and how to tackle the challenges every business encounters.

10:40 am - Case Study: AvMed - Delivering a Superior Health Experience with Liferay - Ana Eberhard, AvMed

AvMed was created in 1969 to provide health insurance in the aviation industry. Today, they serve over 340,000 members and have over 800 employees across the state of Florida. They call themselves a WELLfluent Lifestyle Brand, a portmanteau of "Wellness" and "Affluence". AvMed's goal is to help their members have lives that are rich in health and happiness.


- The website AvMed had was originally created inside-out, rather than needs-driven. The company decided internally that they needed to communicate information, and then it was added to the website. It lacked a storefront, a way to sell directly to consumers, because the site was built for people who were already members. On top of that, the entire website was hard-coded and not responsive for mobile.

- The new website would need a better user experience, as well as integration with portals for AvMed's 4 consituent groups. They wanted the new website to be engaging and a true home of their brand that kept people coming back.

- They began by redesigning the pre login experience and saw the following advantages:

  • Improved design appeal
  • Content updates managed through Marketing
  • Appealing "storefront"
  • Mobile responsive
  • Scalable with the Liferay platform

Keep an eye out for the recording of this presentation (which should be available in about two weeks). Ana Eberhard walked us through individual pages of the pre login and post login experience that they designed for their customers, including a personalized dashboard, information on plan-specific costs, a secure message center and other values behind AvMed's services.They have already seen $38,000 in call center savings, after only three months with the new system.

10:00 am - Case Study: Qad's Evolving Web Systems Architecture - Bob Ward, QAD

QAD is  a global ERP company that helps companies manage their supply chain, primarily manufacturing companies. QAD's IT team is always looking for better IT architecture solutions so they can improve their systems and make QAD's employees more productive. This is Bob Ward's role within the company, and he originally chose Liferay as a CMS and an integration platform.


- Every company needs to find a way to address the gap between strategy and execution.

- QAD uses Liferay internally to create Business Management views as well as Architect views, which allows them to "roll out the blueprints on the table," so to speak. They can have a clear view of their architecture when planning for the future. 

- For their project, QAD decided to use the Audience Targeting module to increase personalization for users. The goal of this project was to provided a dashboard on the account home page that was tailored to each user's needs and preferences, based on what QAD knew about them. Liferay's Audience Targeting module provided a good alternative to custom code, which would take a lot of resources to maintain as the project evolved.

- The key piece was setting up the profile with the correct customer attributes (job role, install type, etc.). From there, QAD created segments and used Audience Targeting to vary displays for each customer. The module allows you to "do whatever you want, in terms of personalization," without writing custom code. On the front end, this means that the customer will see icons for submitting new incidents, using screen share, viewing the document library, etc. There are eight different dashboards that QAD manages, and they are able to set the default view to whatever seems most appropriate to the customer, based on their profile.

-  This method of personalization enables rapid release of new features and improves the customer experience. QAD's future plans for audience targeting include aggregating more customer data for a 360 view of customers, improving messaging and communications, targeting content based on what is not included in customer profiles and hardening the infrastructure to grow capacity.

9:15 am - Opening Keynote, Bryan Cheung, Liferay

Bryan gave us an overview of how the rule of average was designed, looking at everything from the Bell Curve to the BMI that we still use today. Designing for the average helps achieve efficiency and scale, so traditionally, this idea of designing for the middle has guided innovation and manufacturing. However, no individual is ever perfectly average in every category. As Bryan said in his talk, "The world wasn't designed for you."

When we design for the average, we provide a perfect experience for no one. In business, we need to learn how to design for the edges of the Bell Curve – the individual.


- We tend to design to the average, by necessity. Remember those tiny desks you had to sit in at school (if you're from the US)? Depending on your size, you might have had to squeeze into them or sit with your knees knocking against the wooden tray. Historically, design hasn't been personalized, because we haven't had the ability to carry this out.

- "Technology allows us to design for each customer – at scale."

- Three of Liferay's customers are using technology to:

  • Deliver personal experiences. McDonald's has developed a personal intranet/extranet training site for their employees (primarily in Europe), many of whom are millennials who prefer to learn about their job on a smartphone or a computer, rather than behind a desk. The platform improved the employee experience, made people feel more connected and decreased staff turnover.
  • Help people provide personal experiences. Another of Liferay's customers, a telecom company, built a platform for their call center. Imagine being a rep at a typical call center. You finish a difficult call with a frustrated customer, and immediately have to dive into another call, bringing up multiple systems in order to try and understand what the caller's problem is. This telecom company solved this issue by creating a single view of callers, so that reps can intuitively scan a dashboard and know how to help callers in seconds.
  • Mix digital & human interactions to provide personal experiences. Gefa Bank has traditionally done very personalized, face-to-face business, such as driving to a factory, talking to their customers about their upcoming loan needs and getting a wet ink signature with a handshake. As the next generation of business leaders takes over this kind of traditional company, Gefa is looking for ways to digitize the deep technical knowledge of their staff (such as specific needs of their customers), so that they can use technology to create a more personal business model.
- "What is absolutely essential is that the CIO must be customer-oriented." - CIO of Gefa Bank. This quote may make you feel stressed or anxious about the upcoming changes in business, but Bryan shared that he sees this as an exciting opportunity. Business has always wanted to be customer-obsessed and provide perfectly tailored services. We've just never been able to do it until now.

9:00 am - Opening Keynote, Bryan Cheung, Liferay

Henry Nakamura, our master of ceremonies today, started the morning by acknowledging our customers who have been using Liferay since Portal 4.0. When one customer was asked what he loved about Liferay, he said, "We always trusted Liferay to be our platform of choice, and since the day we decided to do this, it has never failed us. Never."

This year's conference theme is "Get to the Heart of Customer Experience," which really captures some of the changes coming in Liferay DXP. In addition to sessions about DXP features, we're also looking forward to guest keynotes, case studies, a packed exhibit hall, networking and more.

This is also the first year of our Customer Connect program, which helps our customers who have similar business goals and challenges meet together to discuss how they're using Liferay to solve them. Definitely something to check out!

8:45 am

Good morning! We're almost ready to kick off the conference with an opening keynote from Liferay's CEO. Here are some of the sessions to look forward to today:

- Case Studies from 4 of Liferay's customers: QAD, AvMed, Apollo Education Group and Mount Sinai Health System

- How to discover business wins in modularity and microservices

- A discussion of how the traditional marketing dashboard is changing to help businesses see the full customer lifecycle, including metrics that offer insight on the post-sale experience 

Christine Reyes 2016-09-26T03:14:20Z
Categories: CMS, ECM

Evaluating maven based DXP modules

Liferay - Tue, 09/20/2016 - 08:31

I had this plugin for Liferay 6.2 that quite limited in terms of complexity.
A perfect candidate to try to port it to a proper DXP OSGi module, I would say.

This is probably true as long as you're willing to sacrifice your current build infrastructure and processes and adopt the new Gradle way of setting up your project.

But we have invested a lot in our automated build environment and in knowledge by our people.
This means: develop proper maven based artifacts, deployable to Nexus, versionable with the Maven release plugin, stackable with parent / super POM hierarchies, etc....

So, we'd rather stick with that.

After a day of experimenting, reading up on the current state of affairs with regards to IDEs, CLI tools (blade, Gradle buildship, BNDtools, what have you) my preliminary conclusion is not so positive:

Some guy from Portugal wrote a few blog posts on transitive dependencies in OSGi in general, and scanning over them revealed that there is no proper transitive dependency resolution/inclusion mechanism with OSGi. So solutions have to be found outside OSGi and in the domain of build tooling.

But apparently, within the Liferay ecosystem of build tooling this has not been addressed either.

David Nebinger did a clear Liferay-oriented sum-up of OSGi ways to include dependencies but this does not go as far as to include the automatic build process with having dependencies only in a single place (i.e. you'd still have to list _all_ transitive dependencies from your POM or build.gradle in bnd.bnd in order to have them shipped with your module.

So... I sincerely hope that I have to nuance my words later on, either because I have overlooked something, or that there is a maven plugin in the works that will magically solve everything...

To be continued...

Geert van der Ploeg 2016-09-20T13:31:43Z
Categories: CMS, ECM

Radio Liferay Episode 58: Jorge Ferrer continued

Liferay - Tue, 09/20/2016 - 02:22

  Two episodes (or an eternity) ago, I spoke to Jorge Ferrer, Liferay's VP of Engineering. We didn't have enough time to finish the conversation, so we continued a while after - and then I buried the recording /o\. Anyway, apart from it being still from "before the release of the current version", it's still relevant stuff, I feel bad about missing to post it. Check for yourself - here it finally is.

As before, we're speaking about various internal and external topics and I've also been teasing him a bit.

We're talking about these (and more) topics

  • Microservices vs Monoliths
  • Shortly before the release many modules were moved around and renamed. We talk about the reasons and what this meant for the translations
  • What's the meaning of "Feature-Complete"?
  • A lot of Feedback starts to come in during the Beta Cycle
  • Nitpicking on the Beta Criteria: JBoss and Upgrade Routines
  • Lookahead on the next episode on Performance Tuning
  • Releaseplans (of course, I could have retrofitted an exact release date...)
  • What's it like to be hired into Liferay Engineering?
  • Is it forbidden to write Javadoc?

Follow @JorgeFerrer, @RadioLiferay and me (@olafk) on twitter.

You'll find this episode - and make sure that you don't miss any of the future episodes - by subscribing to You can also subscribe on itunes.: Just search for "Radio Liferay" or just "Liferay" in the podcast directory. Make sure to write a review for the podcast directory of your choice - or find everything about Radio Liferay on

Or just download the MP3 here

Olaf Kock 2016-09-20T07:22:45Z
Categories: CMS, ECM

New accessibility features in AlloyEditor

Liferay - Mon, 09/19/2016 - 02:56

As many of you know, a while ago we presented AlloyEditor as the result of our quest for a delightful and productive editing experience. Alloy Editor was included by default as the rich editor in Liferay 7 (Yay!)


While we stand by it, our search for simplicity has inadvertently complicated some previously trivial tasks such as adding an alt attribute to an image. You can still add it editing the source code directly as shown in the following animation, but this is far from an ideal experience.



This attribute is essential to provide proper accessibility and SEO to your contents. Furthermore, some may even be mandatory for some projects and public institutions. Accessibility is very important to us so we have given high priority to solving this issue.

The solution

The solution has been to add a simple but useful button to support this option. As you can see below, the button only shows when the user selects an image, without cluttering the rest of the UI.



Thanks to the new extensibility features of the platform, we’ve developed a module that automatically adds this button and configures the editor to show it on the image toolbar.


You can already use this new button in Liferay DE Fix-Pack-4 and it will be bundled in the next GAs of Liferay Portal.


What’s coming next?

On top of this simple addition, we’ve been researching on a more general approach to make creating accessible content as easy and enjoyable as possible. This includes:

  • Automatic detection of accessibility problems as you type.

  • Hints and auto-fixing mechanisms to easily improve the contents.

  • Configurable set of rules and severities to focus on what matters most.


We’d love to hear some feedback from all of you regarding what are your most pressing needs and how you’d imagine they could be solved.

Antonio Pol 2016-09-19T07:56:45Z
Categories: CMS, ECM

Debugging Liferay 7 In Intellij

Liferay - Fri, 09/16/2016 - 00:16

So I'm doing more and more development using pure Intellij for Liferay 7 / DXP, even debugging.

I thought I'd share how I do it in case someone else is looking for a brief how-to.

Tomcat Setup

So I do not like running Tomcat within the IDE, it just feels wrong.  I'd rather have it run as a separate JVM with it's own memory settings, etc.  Besides I use external Tomcats to test deployments, run demos, etc., so I use them for development also.  The downside to this approach is that there is zero support for hot deploy; if you change code you have to do a build and deploy it for debugging to work.

Configuring Tomcat for debugging is really easy, but a quick script copy will make it even easier.

In your tomcat-8.0.32/bin directory, copy the startup script as debug.  On Windows that means copying startup.bat as debug.bat, on all others you copy as

Edit your new debug script with your favorite text editor and, practically the last line of the file you'll find the EXECUTABLE start line (will vary based upon your platform).

Right before the "start", insert the word "jpda" and save the file.

For Windows your line will read:

call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%

For all others your line will read:

exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"

This gives you a great little startup script that enables remote debugging.

Use your debug script to launch Tomcat.

Intellij Setup

We now need to set up a remote debugging configuration.  From the Run menu, choose Edit Configurations... option to open the Run/Debug Configurations dialog.

Click the + sign in the upper left corner to add a new configuration and choose Remote from the dropdown menu.

Give the configuration a valid name and change the port number to 8000 (Tomcat defaults to 8000).  If debugging locally, keep localhost as the host; if debugging on a remote server, use the remote hostname.

Click on OK to save the new configuration.

To start a debug session, select Debug from the Run menu and select the debug configuration to launch.  The debug panel will be opened and the console should report it has connected to Tomcat.

Debugging Projects

If your project happens to be the matching Liferay source for the portal you're running, you should have all of the source available to start an actual debug session.  I'm usually in my own projects needing to understand what is going on in my code or the interaction of my code with the portal.

So when I'm ready to debug I have already built and deployed my module and I can set breakpoints in my code and start clicking around in the portal.

When one of your breakpoints is hit, Intellij will come to the front and the debugger will be front and center.  You can step through your code, set watches and view object, variable and parameter values.

Intellij will let you debug your code or any declared dependencies in your project.  But once you make a call to code that is not a dependency of your project, the debugger may lose visibility on where you actually are.

Fortunately there's an easy fix for this.  Choose Project Structure... from the File menu.  Select the Libraries item on the left.  The right side is where additional libraries can be added for debugging without affecting your actual project dependencies.

Click the + sign to add a new library.  Pick Java if you have a local source directory and/or jar file that you want to add or Maven if you want to download the dependency from the Maven repositories.  So, for example, you may want to add the portal-impl.jar file and link in the source directory to help debug against the core.  For the OSGi modules, you can add the individual jars or source dirs as you need them.


So now you can debug Liferay/Tomcat remotely in Intellij.

Perhaps in a future blog I'll throw together a post about debugging Tomcat within Intellij instead of remotely...

David H Nebinger 2016-09-16T05:16:19Z
Categories: CMS, ECM

Content SEO - Hidden In Plain Sight

Liferay - Thu, 09/15/2016 - 10:55
It cannot be that it was just forgotten, This fundamental feature, thus I sought Through thick of forum, blog, e'en post ill-gotten Until my quest returned me to the spot Where sat the creature with expression cursed Inquiring why I didn't look here first.   This post is the result of a search for how to configure SEO metadata tags for content. We're all familiar with how to specify those for pages - simply go to the page in Control Panel, choose the SEO tab and enter the Title, Description and Keywords.       Well, it so happens that you can do this for content as well, but not in the same way as we do it for pages.   Let's back up a bit. WHY would we need to specify SEO for a content. Those meta tags (title, description and keywords) are relevant at a page level so search engines can determine if a given page has relevancy to a given search.   But, content, unlike pages, is just markup that is part of a whole! When we think of a content-driven website, we think of pages with each page having one (often more than one) Web Content Display portlet instances, and, don't forget, possibly one or more Asset Publisher portlet instances.   Ah! Asset Publisher, a clever device that brings back content items meeting specified criteria.   If you code your Asset Puiblisher's Application Display Template (ADT) mindfully, it will likely have a link to a detail view of that content item. And if you've gone all the way, then you know that the detail view you see is really hosted on a placeholder page that also contains an Asset Publisher portlet instance that is configured as its Default Asset Publisher, and that your content has its Display Page set to the placeholder page we just talked about. All of this setup helps the Asset Publisher engine apply your content template to your content XHTML and render it on the placeholder page. These are details you are quite familiar with if you have used Asset Publisher before.    If the previous paragraph is all new to you, you are in for a treat! Read this short blog post and come back here if you're still interested in this one.  Warning: you may not want to come back for a while because Asset Publisher might just blow you away and preoccupy you with several little project ideas.   Now, the first thing to do is go to a page that has your Asset Publisher portlet instance duly configured. Here's mine, with a fancy card view for each result.   Next, click on one of the content items so you get to the detail view of your content. This basically follows the link you coded in your ADT.   And view the page source for that selected content item. You should see something like the below.     Spot the three tags we care about - title, description and keywords and study their values. Title: Young Night - Browse Poems - Liferay Description: Hand in hand, we take it all in: The babble of the river, The whisper of the wind, Keywords: free verse   Now, let's see where those values are coming from. Go into the Control Panel, then Web Content Repository, and edit the content item in question.    The title is just the Title on the Content tab.      Note that the Title specified is Young Night. But if you look at what got into the page source above, you can see we had: Young Night - Browse Poems - Liferay. The page name and site name seem to get suffixed to the Title.    Next, click on the Abstract tab. The Abstract field sources your description meta tag.     Finally, click on the Categorization tab. The Categories and Tags, together, source the keywords meta tag. We have one category specified, free-verse.      For kicks, let's add a few tags.     Now, let's go view the page source again. We should see the newly added tags show up for the keywords meta tag. Note that the tags and the categories are consolidated into a comma-separated list.     So, there we have it. For content items that are served up via the Asset Publisher, we can now control the SEO title, description and keywords via content metadata.   The interesting thing here is that we're making our content SEO-friendly without really thinking about it. But if an SEO specialist were to come by and ask us how they might effect changes in a specific content item's SEO tags, we now know where to point them.   Isn't life[ray] beautiful? Javeed Chida 2016-09-15T15:55:56Z
Categories: CMS, ECM

Pandora’s Box for Liferay: The Groovy Edition

Liferay - Wed, 09/14/2016 - 09:51

In the beginning of the year I had some fun creating the CRaSH portlet. Once it is deployed, it allows a portal administrator to work with the portal/JVM in a very flexible way using a command line syntax. While this is a very powerful portlet, there are some drawbacks. You need to be able to install it and you need to already have or develop a number of additional commands to make it useful for your specific use case.

This makes the CRaSH portlet difficult to use in some situations, e.g. an audit of an existing Liferay platform, where you might not have the access or permissions to even install it. So what can you do if you need to find out some information about the actual server that Liferay is installed on without SSH access? You try to use the Liferay Script Portlet of course! In my case using my favorite script language: Groovy.

I used 2 scripts for this in the past. The first one lists the contents of a directory:

import*; try { File directory = new File("/export/liferay_dev2/data"); for (File f : directory.listFiles()) { out.println( + " " + f.size()); } } catch (Exception e) { out.println(e.getMessage()); }

The second one lists the contents of a file:

try { file = new"/opt/liferay/"); String s =; out.println(s); } catch (Exception e) { out.println(e.getMessage()); }

While these 2 scripts do their job perfectly, they are a bit of a hassle to use when you want to traverse a big directory tree and look at a lot of files. This way of working allows you to look at /etc/release to find out the version of the operating system. However, it doesn’t allow you to actually execute a shell command like apt-get –just-print upgrade to find out how up-to-date the version of the operating system is.

The Groovy solution

Groovy is very powerful and so my (educated) guess was that there must be something in the scripting language that could help me with this problem. After looking around for a bit, I found a Stack Overflow post and after tweaking the script from it a tiny bit, I ended up with the following script:

def sout = new StringBuilder(), serr = new StringBuilder() def proc = 'apt-get --just-print upgrade'.execute() proc.consumeProcessOutput(sout, serr) proc.waitForOrKill(10000) println "out>" println "$sout" println "err>" println "$serr"

This Groovy script allows you to execute any shell command that a Liferay user could want to execute. It will print its output and error streams below the script portlet.

You can just change line 2 of the script and easily run other commands like ls, tail, cat, whoami, etc…

Jan Eerdekens 2016-09-14T14:51:49Z
Categories: CMS, ECM

The status and direction of the frontend infrastructure in Liferay 7 & DXP

Liferay - Thu, 09/08/2016 - 13:13

It’s been awhile since I’ve had a chance to clarify both our current status as well as our future direction, so I wanted to do that here.

This blog post will be mainly a high level overview of what's new and different in Liferay 7, but over the coming weeks, different folks from our team will publish blog posts going into detail about the different areas regarding Liferay's front-end engineering).

Where we are currently at in Liferay Portal

The first thing I'd like to mention is an update to my last post about AlloyUI in Liferay 7. If you remember, our plan was to release AlloyUI 4 and base it upon jQuery.

We ended up deciding that this would lead to a very confusing situation for people building on top of Liferay, as it would be breaking an existing API dramatically, but still having it under the same namespace (which would also break for anyone wanting to use the version based on YUI).

So rather than causing developers unnecessary grief, we've upgraded AlloyUI to version 3 (which brings with it an update to Bootstrap 3 and other bug fixes), but we've also decided to sunset AlloyUI and are deprecating it as of Liferay 7.

It's still included by default, and your existing AlloyUI based code will still continue to work (and we'll also still continue to support it for our EE and DXP customers as well).

Of course, the next question might be "What should we use for our code going forward?"

Before answering that, I need to introduce a new library that we've created.


Metal.js is a small and fast library for creating and managing stateful components that is templating-language agnostic, and also supports server-side rendering.

It uses Google's incremental-dom to ensure incredibly fast rendering, as well as an easy to use API that makes creating and reusing components incredibly easy.

What should we use for our code going forward?

We're making of a bit of a strategy change in how we both leverage JS libraries as well as how we advise their use in Liferay.

The direction we're heading in is one in which people have full control over the frontend libraries that are loaded onto the page, as well as making the individual components more reusable and modular.

This means that if you're really into React, Angular or Ember/Vue/etc, and your entire team has been trained on it, then not only can you use that library within the portal (which you can already do), but if you need to reuse an existing Liferay component from your library of choice, then you should be able to import it there as well.

So while we do recommend using Metal.js for your development, as we have found that it solves many of our needs, we want people to feel comfortable using any library they like.

Part of that will involve changing our modules to have minimal dependencies while still maintaining a focus on performance.

The coming blog posts will also touch on some of the highlights of frontend engineering in Liferay 7, such as compiling of ES6 2015, how we're leveraging Senna to progressively enhance existing portlet applications to support single page applications, as well as architectural details and how you can leverage all of these new features in your development.

CSS and Themes

There have been a lot of changes with regard to Theming and CSS in general in Liferay 7, and I'll touch on the big ones.

Bootstrap 3

As I mentioned above, we've upgraded to Bootstrap 3 for Liferay 7. We didn't upgrade to Bootstrap 4, because as of the Liferay 7 release (April of 2016) and as of this writing (August 2016), Bootstrap 4 is still in alpha.

When it is released, if the API changes are still minimal, we should be able to provide a compatibility layer for people to easily upgrade.


Also in Liferay 7, we've introduced our new design language for creating applications, called Lexicon.

Our implementation of Lexicon consists of two parts: a set of components and extensions to Bootstrap and a visual skin that styles it.

These are all still managed by your theme, so you can extend and customize it on a per-site basis.

Sass and SCSS parsing

One change we've made for Liferay 7 that has gotten quite the positive response is that we have removed runtime compilation of Sass/SCSS.

Related to that change, we've also renamed all of our files from using the .css extension to the .scss extension to ensure that IDEs and editors can properly display the right syntax highlighting, and also to prevent any confusion for newcomers.

Lastly, we've also enhanced our build-time Sass parser to use libsass, which means that we will only use jRuby for Sass parsing if your system doesn't support running the libsass parser.

How much of an improvement is this?

One set of SCSS files that we had would often take around 50 seconds to over a minute with jRuby.

With libsass, that time cut down to roughly 3-5 seconds (not an exaggeration).

New and Enhanced Theme Concepts

We've added two new concepts for themes, which are Themelets and Theme Contributors.

You can think of themelets as small reusable chunks of frontend resources, be it (S)CSS, JavaScript, images, icons, etc, but without any theme boilerplate involved. A theme can then leverage these packages in any way they like, and can share them publicly.

Let's say that some of your themes all share very similar functionality or styling. Maybe some parallax scrolling effect, or a dynamic CSS animation. Instead of having to duplicate your code across every theme, you can publish them to the NPM registry, and other developers can reuse them as well.

While you could achieve similar results by extending a theme, this approach allows for maximum modularity.

The other new concept, Theme Contributors, are small, targeted modules that contain JavaScript and CSS that are persistently included across all themes.

This is useful in cases where you have some element(s) that exist on the page no matter what site you're on and whatever theme is selected, and you wish for it to be consistently styled.

The most commonly styled elements are the Product Menu, Control Menu, Simulation Menu, etc, but it really could be anything.

Lastly, we also enhanced how themes can be extended. With the new theme tools (which I'll cover in the next section), themes can be easily extended from some other theme, but the tools also allow you to extend from any themes that developers may publish on NPM.

This opens the door for community members to create their own base theme layer, as well as many other possibilities.

New Theme Tools

As some of you maybe have heard, we have a new set of tools designed for theme developers.

One pain-point we've wanted to improve was that for many modern front-end developers, the old plugins SDK model of using Java based tools didn't fit their preferred workflow.

This led us to examine ways we could really improve theme building experience. These new tools, which leverage Node.js and the NPM ecosystem, provide developers with a way to create themes, layout templates, themelets as well as importing themes into the new structure.

We also provide quick tasks for watching your theme for changes and instantly deploying, quickly kickstarting a new theme, and extending from other themes.

More blog posts will be coming soon that go into detail about new theming features from the Bootstrap and Lexicon side, as well as exploring the new tooling in depth.

Again, this is all very high level, specifically because if I tried to go into detail about all of the great stuff in Liferay 7, this blog post would be quite a bear to read.

Look out for the follow up blog posts coming soon, but in the meantime, please feel free to ask any questions you have in the comments.

Nate Cavanaugh 2016-09-08T18:13:08Z
Categories: CMS, ECM

Mobile First with Liferay Screens – part 2 – Phlink

Liferay - Mon, 09/05/2016 - 09:07

This blog is part of a series of entries on Mobile First with Liferay Screens. [Part 1] [Part 2] [Part 3]



Mobile First with Liferay Screens – part 2


Part 1 of our blog series was about Liferay Screens and the benefits this development tool can offer organizations. This second part gives more information about Phlink, our Liferay Screens app for iOS and Android. The app is already being used with enthusiasm by healthcare provider Philadelphia and has been downloaded more than 1000 times. About 6000 sessions take place every day. Why is Liferay Screens the ideal solution for Philadelphia? And what is the added value delivered by Componence?


Visit our roadshow on 13 October

Would you like to find out more about the possibilities of our native mobile apps on the basis of Liferay Screens? Then visit our roadshow on 13 October in Spaces Amsterdam. Registration is now open!


Communication with 8,000 employees

Using modern technology to reach employees as much as possible on the devices they use the most. This was the goal of healthcare provider Philadelphia when we met at the end of 2015 to discuss the future of the Philadelphia intranet.


Philadelphia was looking for a replacement for the existing communication solution and wanted to reach its 8,000 employees and provide them with information via a range of channels. An important requirement was that users could influence their personal digital environment themselves. The new solution also had to provide access to other applications and information sources within the same medium. The intention was to reduce the total number of applications in the architecture rather than increase this.

Native mobile app for iOS and Android

Philadelphia wanted to tackle mobile communication first, and only look at an alternative for a desktop or thin client after that. This mobile first philosophy led to the development of Phlink, the native mobile intranet app for iOS and Android that Componence launched at the end of June. Because specific interfaces have been developed for smartphone and tablet, the user experience is excellent on every device.


Phlink can provide Philadelphia employees with news geared to their role in the organization and information that they need for their work. It is also possible to use the app to search for colleagues and locations within the organization. That is only the beginning, as more functionalities will be added in the second phase.

Personalized uniform user journey

Phlink is based on Liferay Screens and so fits in perfectly with the Liferay platform that Philadelphia already used. This means that there is just one management system, instead of an extra new solution. Users who are known in the portal’s SSO facility can immediately make use of the app on a one-to-one basis. They can count on a consistent and personalized user journey: from the native mobile app Phlink on their smartphone or tablet to the Philadelphia intranet on their desktop. And vice versa.


Successful Proof of Concept

The development process was preceded by a small Proof of Concept. After all, this was a new tool and we did not want to risk having to renege on commitments later on. What was achievable? Would Liferay Screens deliver what it promised for us and for Philadelphia? After determining the functional scope of the app during several sessions with Philadelphia, we used the Proof of Concept to investigate what we could do with existing screenlets and new ones we developed ourselves. This PoC was extremely successful, as we proved within a week that Liferay Screens was the right path for Philadelphia.

Agile development process

We then used agile development for the actual development of Phlink. In close consultation with Philadelphia, our interaction designer developed the screens for all devices. Each sprint yielded a working app, which could be tested by both Componence and Philadelphia. By repeatedly adding functionality, it remained possible to confirm at each stage that we were still following the right path.


Componence worked with a relatively small development team consisting of 1 native iOS developer, 1 native Android developer and 2 experienced Liferay developers. The team was able to make the best possible use of our knowledge of the Liferay platform and could develop simultaneously for iOS and Android. We did not turn our attention to the responsive intranet until the final sprints, when we added a Liferay frontend developer.


Expansion and improvement of Liferay Screens

Modification of the standard screenlets available in Liferay Screens meanwhile led to expansion of the possibilities for Login, Web Content List and User Profile Maintenance. In addition, new screenlets were developed, for example for Global Search, User Search, Location Search, Comments and Rating. With these building blocks, we could provide Phlink with what Philadelphia expected of the app.


In our day-to-day development, we received fantastic support from the Liferay Screens development team. Our extensive use of the tool revealed bugs and points for improvement, which were always tackled actively by the Spanish team. The result was improvements to the code and increased stability.


The team both gave advice and took action themselves, to solve various problems including issues relating to the Login screenlet and the support of several subsites. Questions relating to the authentication and authorization for Documents & Media were also dealt with and included directly in subsequent versions. It is partly thanks to the fast answers and solutions provided by Juan Fernández, Manuel Navarro and Javier Gamarra that our innovation process was able to proceed without interruption.


And now?

With Phlink, Philadelphia is focusing in the first place on its 8,000 employees. At this moment, we are working on additional functionality such as push notifications and a calendar function, which will be added to the app during the second phase. Besides this, Philadelphia wishes to use the same technology to develop apps for clients and their families and implement these in the organization. Follow-up apps for referrers and volunteers are also among the possibilities. Componence possesses the knowledge and expertise to create native mobile apps within the foreseeable future for all these target groups, satisfying all the requirements and wishes of today’s app-users.


Head start in the development of native mobile apps

During the development of Phlink, Componence devoted a great deal of time and energy to the improvement and extension of Liferay Screens. This effort will eventually repay itself in the reusability of the screenlets we developed. Moreover, we were able to generate a clear picture of what Liferay Screens is capable of and we now have an extremely thorough knowledge of the tool. This expertise gives us an enormous head start for the development of new native mobile apps based on Liferay Screens.


Visit our roadshow on 13 October

Would you like to find out more about the possibilities of our native mobile apps on the basis of Liferay Screens? Then visit our roadshow on 13 October in Spaces Amsterdam. Registration is now open!


Componence continues to work on the development of Liferay Screens apps. Are you curious about what the future will bring? Then read Part 3 of this series. Published on: 26/09/2016.  

Maarten van Heiningen 2016-09-05T14:07:06Z
Categories: CMS, ECM

Top 4 Things To Do in Chicago

Liferay - Fri, 09/02/2016 - 19:55

Headed to Chicago for Liferay Symposium this year? If you’re short on time and need a handy guide to help you decide where to visit, here’s a list of must-see places: 

1. Millennium Park

Otherwise known as the “green heart” of urban Chicago, Millennium Park is a popular recreational area, often hosting a variety of special events, performances, and festivals, while providing a space for visitors to relax, eat, and take a stroll. Expect to see stunning landscape designs, modern architecture, and an assortment of eclectic art.

Lurie Garden, Millennium Park

Crown Fountain, Millennium Park

2. Willis Tower 

Formerly known as the Sears Tower, this 108-story skyscraper is an iconic Chicago landmark that offers a dazzling panoramic view of the city’s skyline. Dare to ascend over one hundred flights to the SkyDeck Chicago and step out onto the glass balcony? Prepare to be thrilled and amazed while looking out at the Chicago landscape, with nothing but air and a sturdy layer of glass beneath your feet.

Glass Balcony, Sears Tower

3. Oktoberfest 

This year, Oktober festivities land on the same weekend as Liferay Symposium. Claiming to be “bigger and better than ever,” Oktoberfest will surely not disappoint, with its spirited, craft beer tasting, the first annual Brat Trot 5K, and a band lineup everyone will enjoy.

4. Cloud Gate

This shiny, public sculpture famously known as The Bean is the centerpiece of urban Chicago. Its striking, stainless steel surface distorts and reflects the city skyline which creates a perfect shot for photographers and Instagram enthusiasts. And the best part is, it’s free!

The Bean, Cloud Gate

Don’t miss out on all the amazing things that Chicago has to offer. If you haven’t registered yet, sign up with discount code LIFERAY250 to receive a $250 discount. Hope to see you there!

Melanie Chung 2016-09-03T00:55:02Z
Categories: CMS, ECM

Announcement: Support for JSF in Liferay Portal 7.0 / DXP

Liferay - Fri, 09/02/2016 - 16:36

On August 29, 2016 Liferay released a new version of Liferay Faces based on the new Liferay Faces Version Scheme. Because of our efforts towards greater modularity, many of the Liferay Faces artifacts now have independent release schedules.

This new release includes support for JSF in Liferay Portal 7.0 / DXP as well as updated support for Liferay Portal 6.2.


The site has been updated with a new portlet on the home page that enables developers to choose their desired combination of Liferay Portal + JSF + Component Suite in order to find project templates (archetypes), and determine dependency configuration.

Component Showcases

Visit to test-drive our component showcases:

Component Suites

This new release has been tested with the following component suites:

  • Liferay Faces Alloy 3.0.0
  • PrimeFaces 6.0
  • ICEfaces 4.1.1
  • RichFaces 4.5.17.Final
Updated Demos

Visit the demos page in order to find links to updated demo portlets that you can download and try in your Liferay Portal 7.0 / DXP environment.

Related Blogs

The following blog posts are related to this new release and provide important details about the Liferay Faces project:

Thank You

The Liferay Faces team has worked diligently for more than a year in order to make this release possible. Many thanks to Vernon Singleton, Kyle Stiemann, Phil White, Juan Gonzalez, and Cody Hoag for all their hard work and dedication. Also thanks to the members of the Liferay Portal Core Engineering team (Ray Auge, Miguel Pastor, Carlos Sierra, et al.) for all their help in making JSF support a reality in Liferay Portal 7 / DXP. Finally, thanks to Brian Chan and Jorge Ferrer for their leadership and support for our team!

Neil Griffin 2016-09-02T21:36:38Z
Categories: CMS, ECM

The Agenda for Liferay Symposium NA is Out!

Liferay - Fri, 09/02/2016 - 12:42

Build Your Agenda: Tools for Digital Business

Enhance your conference experience by customizing your agenda. Browse 50+ sessions to explore Liferay tools for digital business, get firsthand knowledge on the latest features and best practices, and deep dive into personalizing customer experiences.

Hear from our amazing community of industry experts, key engineers, and innovative companies who are leading the way in digital transformation.

  • Building Deeper Customer Relationships with Audience Targeting

  • The Power of Segmentation and Personas in Driving Personalization

  • Create Once, Use Everywhere: Maximizing Your Content in Mobile

  • Uncovering the Business Wins in Modularity, Microservices and Other Technical Megatrends

  • Accelerate Development with Blade, Developer Studio and Workspace

  • How to Amplify Customer Engagement with Social Media + Analytics

  • Product Roadmap (Liferay Digital Experience Platform)



Don't miss the good stuff for learning, networking, and big ideas.



Post-Symposium Training

Be the first class for Liferay DXP! Maximize your time with Liferay training.




Angela Wu 2016-09-02T17:42:43Z
Categories: CMS, ECM

New themes Blog entry (3/4) - Porygon theme

Liferay - Thu, 09/01/2016 - 06:29

Hi everyone!


Today, in a not-so-unexpected turn of events, we proudly present you Porygon.



"Start your own digital magazine"

The new Porygon theme has been designed to get you started with your own digital magazine. Porygon is a modern and visually attractive theme that will bring new life to your already amazing contents.

This theme includes some new thrilling features such as:


  • Different ways to show the content preview: you can choose from a variety of cards, lists and carousel setups to mold your layout.



  • Matching support for blogs and contents. You can use both blog entries or structured contents independently and they will all blend together in your site.

  • 16 article examples with big photos and realistic contents.

  • A Portlet Decorator that you can use to showcase a specific content or application.

  • A subtle and minimalistic search integration.


Soon in the marketplace


The Porygon theme will soon be published in the marketplace.

In the meantime, you can give it a try using this porygon-theme.war file or build and deploy it yourself using the sources at:

Marcos Castro 2016-09-01T11:29:26Z
Categories: CMS, ECM

Inter Gadget Communication with PubSub

Liferay - Tue, 08/30/2016 - 05:13

        In my previous blog, I wrote about Gadget/Widget and how we can use it in Liferay. Liferay provide great support of Gadgets. Liferay has out of box features like share portlet as widget and OpenSocial Gadget Editor where you can write gadget XML and publish in your portal. Liferay also provide OpenSocial Gadget plugin where admin can add third party gadgets in Liferay portal like portlets.

Inter Gadget Communication with PubSub:

        Like Inter Portlet Communication(IPC), communication between two gadgets or between gadget and portlet is also very important. OpenSocial provide mechanism to establish communication between gadget to gadget or gadget to portlet or vice versa using pubsub.

        Pubsub works like event fire/listen in AUI. There is one publisher gadget which publishes to the topic and There may be multiple consumer gadgets which has subscribed the topic. Publishers don’t send messages to subscribers directly because publisher have no knowledge about subscribers. Publisher broadcast the messages over a channel(topic). Subscriber need to subscribe channels(topics) to receive message.

Publisher Gadget

        To publish a message publisher gadget need to add topic details in Require tag like :

        Here com.example.opensocial.testgadget is topic name which subscribers need to subscribe to receive message. And publishing can be done by the Javascript method call :

        Here first parameter is topic name and second is a variable which need to publish.

Subscriber Gadget

        To receive a message from publisher, receiver gadget need to subscribe topic. Following the example to subscribe a topic:

        Here first parameter in subscribe function is topic name which need to subscribe and the second parameter is call back function name that will be called when a message is published by publisher gadget. The published message can be used in callback function:


        You can find publisher / subscriber gadget example on @dejuknow's github.

Kailash Yadav 2016-08-30T10:13:08Z
Categories: CMS, ECM
Syndicate content