dev.life Live Sessions

Live streaming of technical topics for Liferay Developers

You will find past dev.life session replays here. You can also find them on our YouTube channel.

20140821 - Ray Auge - OSGI Development in Liferay

OSGI Development in Liferay (Special Session)

When: 21 August 2014 @ 2pm PDT

Led by: Ray Augé

Join us for this special session with Ray Augé, Senior Software Architect at Liferay, as he discusses the future of Liferay Development and demos new developer features in Liferay using OSGi. This special session won't be our ordinary "hands-on" session but is relevant enough for developers to be included in the dev.life stream. 

Pre-Session Setup and Needed Materials

No special setup required - this will not be a hands-on interactive session


Liferay Developer Tools for Liferay 7

When: 8 September 2015 @ 1000 EDT / 1400 GMT / 1600 CEST

Led by: Greg Amerson

If you are a Liferay Developer, you'll want to tune into this Hangout - Things are changing in the Liferay 7 Developer world and you'll have a front row seat as Greg Amerson, lead developer for Liferay Dev Tooling shows us what's coming up with Liferay 7, including new modularity features and how to make the most of them from existing and new developer tooling. Topics include Liferay IDE 3, Blade, Blade Tools, OSGi, and new frameworks to help you get the most out of Liferay 7.

Pre-Session Setup and Needed Materials

Using Liferay's Message Bus for Asynchronous parallel processing

When: 26 May 2015 @ 1000 EDT / 1400 GMT / 1600 CEST

Led by: Andrew Jardine

The Liferay Message Bus is a service level API used to exchange messages within Liferay. The Message Bus is a mechanism for sending message payloads to different components in Liferay, providing loose coupling between message producers and consumers to prevent class loading issues. But it can also be used for firing and responding to asynchronous workloads executing in parallel, offering good performance and a convenient programmatic way to do async programming. Join Andrew Jardine, Liferay Top Contributor, and explore a real world use case and understand how developers can use Liferay's Message Bus APIs to handle processing tasks in an easy and robust way.

Pre-Session Setup and Needed Materials

Basic setup requirements before the session:

  • A running Liferay 6.2 installation (with no modifications needed)
  • A development environment (like Liferay IDE) to be able to create and deploy portlets
  • Follow along and copy/paste code from this Gist

If you plan on participating, you'll also need to have a web service configured to do something, that you can call using a REST-like API. If you don't have one, grab this .war and deploy it to any running Tomcat instance

 

 


Liferay Documentation and Liferay Developer Network: KM solutions on Liferay

When: 5 May 2015 @ 1000 EDT / 1400 GMT / 1600 CEST

Led by: Jim Hinkey

You've undoubtedly seen Liferay's developer documentation on the Liferay Developer Network - but did you know that it too is open source and has a powerful publishing mechanism built on Liferay? In this session, join the documentation team's Jim Hinkey to learn how his team has built a unique and viable KM solution for you, the Liferay Developer, which can be used for many other use cases

Pre-Session Setup and Needed Materials

Liferay + IntelliJ IDEA - Setup, Tips & Tricks

When: 17 February 2015 @ 1000 EST / 1500 GMT / 1600 CET

Led by: Krzysztof Gołębiowski

Liferay has many options when it comes to your preferred developer environment and toolchain. One popular toolchain centers on IntelliJ IDEA, a Java-based IDE that can be used to develop for Liferay. In this session, join Krzysztof Gołębiowski, a leader and 2014 Contributor of the Year in the Liferay community, as he shares his setup, tips and tricks using a super fast and efficient toolchain for Liferay development in real world scenarios.

Pre-Session Setup and Needed Materials

To set up and test this toolchain, you'll need to download the components:

  • Liferay Portal 6.2 - just have it up and running on your local machine
  • IntelliJ IDEA 14 - install it too
  • Maven - Maven integration is shipped with IntelliJ IDEA, and you do not need to perform any additional actions to install it. You can start using it straight away for importing Maven projects and working with them. However, for running Maven goals, you have to install Maven on your computer.
  • JRebel - A non-free tool (with a 14-day trial) allowing you to instantly update running bytecode in the JVM - allowing you to quickly re-deploy changed code to Liferay.
  • Emil Öberg's super-fast script for reloading themes
  • SourceTree - a GUI git client for Mac/Windows 


Developing OSGi plugins for Liferay 6.2 and 7 with Maven

When: 18 December 2014 @ 1000 EST / 1500 GMT / 1600 CET

Led by: Milen Dyankov

There has been a lot of noise about OSGi and modularity in Liferay, which is going to revolutionize and modernize the Liferay development workflow, and save developers tons of time.

If you haven't yet considered its impact on you and are wondering exactly what it looks like to build plugins for 6.2 and 7 that benefit from OSGi, or are wondering what it will take to get your 6.2 plugins ready for 7, this is the session for you!

Join Milen Dyankov, Senior Consultant for Liferay, and learn all of the above and more in a hands-on, interactive developer hangout.

Pre-Session Setup and Needed Materials

Basic setup requirements before the session:

 


Application Display Templates (ADTs) - Real World Examples

When: 2 December 2014 @ 1500 GMT

Led by: Eduardo Garcia

Do you want to know why Application Display Templates have become one of the most popular features in Liferay Portal 6.2? In this session we will show you how to use this powerful tool to customize Liferay portlets in real world scenarios. And if you are a plugin developer we will show you how to support this feature in your own portlets, and also how to create and distribute Application Display Templates through Liferay's Marketplace.

Pre-Session Setup and Needed Materials

Basic setup requirements before the session:

  • A running Liferay 6.2 installation (with no modifications needed)
  • A development environment (like Liferay IDE) to be able to create and deploy portlets

During the session the following files and snippets will be used. Please have these links handy, and you can also download the .JAR/.WAR files ahead of time.

Sample Plugins:

ADT Snippets:

 


Practical Liferay Modularity and OSGi

When: 25 November 2014 @ 1500 GMT

Led by: Ray Augé

Join us for this hands-on session with Ray Augé, Senior Software Architect at Liferay, and explore some practical exercises that you can do with OSGi today, including:

  • Creating and deploying custom small (micro) services to Liferay with OSGi
  • Administering the service using modern techniques along with Liferay's new modular architecture.
Pre-Session Setup and Needed Materials

Basic setup requirements before the session:

  • A running Liferay 6.2 installation (with no modifications needed)
  • A development environment (like Liferay IDE) to be able to create and deploy portlets

Automated testing of Liferay plugins with Arquillian

When: 18 November 2014 @ 1500 GMT

Led by: Carlos Sierra

Testing Liferay plugins used not to be an easy task. In this talk we will go through the current and future arquillian integrations to test Liferay plugins using Arquillian. Arquillian is an innovative and highly extensible testing platform for the JVM that enables developers to easily create automated integration, functional and acceptance tests for Java middleware.

Pre-Session Setup and Needed Materials

Basic setup requirements before the session:

  • A running Liferay 6.2 installation (with no modifications needed)
  • A development environment (like Liferay IDE) to be able to create and deploy portlets

If you are going to follow along at home, have this github repo handy.


Faceted Search, OpenSearch, and "Frankensearch"

When: 13 November 2014 @ 1500 GMT

Led by: Andrew Jardine

In this session, follow Andrew Jardine (2013 Top Contributor) and learn how to:

  • Create custom apps using ServiceBuilder that and indexed entities
  • Integrate custom apps with Liferay's Faceted Search framework
  • Integrate custom apps with OpenSearch
  • Learn what "FrankenSearch" is (you will not be disappointed)
Pre-Session Setup and Needed Materials

Basic setup requirements before the session:

  • A running Liferay 6.2 installation (with no modifications needed)
  • A development environment (like Liferay IDE) to be able to create and deploy portlets

Optional, if you want to browse Lucene indexes, grab:


The Future of Web Development (Spain Symposium)

When: 23 October 2014 @ 0950 CEST

Led by: Zeno Rocha

In the past few years lots of things changed in software engineering, specially if you think about client-side technologies. HTML5 arrived with lots of new APIs, JavaScript engines got much faster, and plenty of new frameworks appeared. Backbone, Angular, Ember, React, Polymer - you name it. In this talk, you'll see what's next for web development, how this relates to Liferay, but more importantly, how to face this scenario without turning into a zombie.

Pre-Session Setup and Needed Materials

This is a special webcast from Liferay's Spain Symposium - as such, no setup or materials are needed. 


Using OSGi to create extensible plugins in Liferay 6.2

When: 6 October 2014 @ 14:35 GMT

Led by: Julio Camarero and Eduardo Garcia

By now you should know that Liferay is a powerful platform that allows developers to build and distribute their own applications. But what if you want your application to be extensible by third parties? Starting with version 6.2 Liferay Portal supports the OSGi specification, which enables developers to implement modular applications that can be dynamically extended by other applications. In this session we will show you how to use the Liferay SDK to build and distribute this new type of extensible applications.

Pre-Session Setup and Needed Materials

This session will be a special webcast from the Liferay 2014 North America Symposium - no setup or materials are needed.


Securing remote JSON Web Services

When: 23 September 2014 @ 1400 GMT

Led by: Tomáš Polešovský

In this session, we'll explore how to create and consume JSON web services using secure methods to provide anonymous and authenticated access to your custom JSON web services. Topics you will learn:

  • Creating public services as well as services that requires authentication
  • A standard approach to authorization
  • Authentication using p_auth token and built-in Basic/Digest authentication
  • Using services from outside using Cross-origin Resource Sharing spec
  • Creating secure built-in portlet services using portlet's resource phase
  • Overview of creating custom token authentication, API keys, filtering resources available and adding API connection limits

Some additional definitions and reading before the session will help you understand some of the key concepts:

  • p_auth - A Liferay portal (Anti-)CSRF token included in URLs and HTTP requests to help prevent Cross-site Request Forgery attacks
  • CSRF - Cross-site Request Forgery - A malicious attack targeting existing user sessions where the attacker force an unsuspecting user's browser to perform actions in the vulnerable web application without the user's approval or knowledge. For example:a user is authenticated to a vulnerable site, and while still authenticated she visits a malicious page that sends a hidden request to the vulnerable site and changes or deletes the user's email address or phone number, opening them to other attacks. A Non-authenticated attack consists of placing the attack vector on a high-traffic site (e.g. on a poll or forum post) hosted by the vulnerable site, then anybody visiting the high-traffic site that votes in the poll can get attacked.
  • CORS - Cross-origin Resource Sharing - A standardized way for JavaScript to read/parse responses from a site hosted on a different domain. It's replacement for JSONP. For example: a web application @ https://example.com uses JavaScript to exchange data with https://api.example.com. For this to work the API site must emit CORS HTTP headers to enable the application to read the data.
  • Authentication - Proving you are who you say you are (your identity/credentials) to a web site. For example: Liferay checks that the provided login+password or SSO token is valid.
  • Authorization - Access control used to validate user permissions to access a resource. For example: Checking whether a non-authenticated user is allowed to download a particular file

There are many guidelines with respect to securing sites. The most important ones relevant to securing APIs are:

  • Use HTTPS to avoid interception and modification of requests/responses
  • Where possible, allow authenticated access only, always perform permissions checks
  • For errors return only messages + timestamps, stacktraces should go always only into logs
  • Review access logs for HTTP 404 and 500 errors
  • Read OWASP's REST Security Cheat Sheet
Pre-Session Setup and Needed Materials

Basic setup requirements before the session:

  • A running Liferay 6.2 installation (with no modifications needed)
  • A development environment (like Liferay IDE) to be able to create and deploy portlets


Customizing and Extending Export/Import and Staging

When: 9 September 2014 @ 1400 GMT

Led by: Máté Thurzó

If you have ever wanted your own plugin to work with staging, or export/import, this is your session. We will go through the steps of creating export/import support for any plugin with multiple service-generated entities, including reference handling, and conditional exports.

Also we are going to check a few uncommon scenarios how to further customize built-in portal staging logic.

 

Pre-Session Setup and Needed Materials

 


Developing Ridiculously Small Plugins

When: 26 August 2014 @ 1400 GMT

Led by: Olaf Kock

Liferay plugins don't have to be big. In this session, you'll build a Ridiculously Small Plugin that can be customized and published to the Liferay Marketplace in no time!

What is a Ridiculously Small Plugin? It's a plugin that you estimate to be able to build in less than one hour. Of course, it's a developer estimation, so you'll have to round that up to a day, sans documentation and making it fit for deployment and unforeseen complications.

Pre-Session Setup and Needed Materials
  • Liferay 6.2 deployed and ready to go.
  • A developer environment for building plugins for said deployment.

OSGI Development in Liferay (Special Session)

When: 21 August 2014 @ 2pm PDT

Led by: Ray Augé

Join us for this special session with Ray Augé, Senior Software Architect at Liferay, as he discusses the future of Liferay Development and demos new developer features in Liferay using OSGi. This special session won't be our ordinary "hands-on" session but is relevant enough for developers to be included in the dev.life stream. 

Pre-Session Setup and Needed Materials

No special setup required - this will not be a hands-on interactive session


Building a mobile app with the Mobile SDK

When: 12 August 2014 @ 1400 GMT

Led by: Bruno Farache

The Liferay Mobile SDK is a framework for building native mobile apps that integrate with your different Liferay Portal instances and their portlets.

In this session, Bruno will walk through the steps of building a mobile app that integrates with Liferay through the Mobile SDK.

You will also learn to use a typical mobile development application stack, including Android SDK and Android Studio.

Pre-Session Setup and Needed Materials
  • Have Liferay 6.2 CE GA2 installed and running on your local machine (the same one you are using for the below tools)
  • Install Android Studio 0.8.2 - Download 0.8.0 first, then click "Check for updates..." after you launch it to get to 0.8.2.
    • Within Android Studio, you must install Android SDK API Level 19 (corresponding to Android version 4.4.2) - to do this, click the Configure button in Android Studio startup screen to launch the SDK Manager, and follow these instructions to get the required bits including API Level 19 items).
    • NOTE: If you have prior experience developing Android apps (and therefore have the Android SDK already installed), you do not need to re-install these components - you can configure the path to your existing Android SDK once you create a project, using the "Project Structure" preferences, to avoid a lengthy download.
  • Download Liferay Android SDK 6.2.0.6 (it's a small JAR file - just have it handy as it will be used during the session)

Intro to dev.life & Portlet Config

When: 29 July 2014 @ 1400 GMT

Led by: James Falkner

In this session James Falkner will give an introduction to the dev.life developer sessions, and then a brief example of what you can expect in future sessions.

We will build a simple portlet (using Maven builds) with configuration options using Liferay's built-in configuration settings system.

Pre-Session Setup and Needed Materials
  • Have a running Liferay Portal 6.2 CE or EE
  • Maven
  • Liferay IDE setup to build portlets and deploy them to Liferay