You are on page 1of 52

Liferay Portal

Overview
Presenter: Joseph Shum
Liferay Portal is the world's leading open source
enterprise portal solution using the latest in
Java and Web 2.0 technologies.
Thought Leadership and Innovation
  Created in 2000 and open sourced in 2002

  First portal to introduce Web OS

  First portal to deploy AJAX enabled user interfaces

  Members of the JSR 286 (Portlet Specification) & JSR 314 (Java
ServerFaces Specifications) Committees

Active Community
Thought Leadership and Innovation

Liferay Portal is the world's leading open source enterprise portal solution using the latest in Java
and Web 2.0 technologies.

Ready to go…

  Built in Content Management System


(CMS) and Collaboration Suite

  Out-of-the-box usablility—choose from


over 60 portlets and over 20 themes

  Out-of-the-box development tools

  Out-of-the-box support for 22


languages

  Runs on all major application servers,


databases and operating systems
(over 700 deployment configurations)

  Business-friendly MIT License


Thought Leadership and Innovation

Liferay Portal is the world's leading open source enterprise portal solution using the latest in Java
and Web 2.0 technologies.

Easy to use…

  Award-winning AJAX-enabled user


interface (e.g. Web OS)

  Community-centric services for easy


creation of extranets, intranets, and
social networks

  Familiar desktop UI and conventions


  Delegable granular security and role
based authorizations
Thought Leadership and Innovation

Liferay Portal is the world's leading open source enterprise portal solution using the latest in Java
and Web 2.0 technologies.

Technically sound…
  Service Oriented Architecture
(SOA) with web services support
  LDAP support and integration
  Portal as a Platform services for
rapid portal development and
deployment
  Secure enterprise application
integration framework
  Ready integration:
Pentaho Business Intelligence
Intalio Business Process Management
Terracotta Scalability and high availability
ICEfaces Rich Internet applications
jQuery Dynamic user experiences

  Standards Compliant: JSR-286, JSR-170, JBI, WSRP


Thought Leadership and Innovation
Thought Leadership and Innovation

Active Community
  Over 1 Million downloads & over 60,000 downloads per month
  Over 5800 registered community participants

  Over 50 active community contributors

Growing, Profitable Company


Active Community

Liferay Portal is the most widely


downloaded, Open Source Portal in the
world.

  Over 1 Million downloads and over


60,000 downloads per month

  66% of downloads – Liferay


Portal

  33% of downloads – Liferay IDE


& Plug-ins

  1.3 million total downloads to


date

  Over 5800 registered community


members

  Over 50 active volunteer contributors


Product Detail

Application Servers Liferay Portal supports ALL major app servers, databases, and operating systems, with over 700
Databases deployment configurations.

Operating Systems

Technologies Used Apache ServiceMix, Ehcache, Hibernate, Java J2EE/JEE, jBPM, jQuery, ICEfaces JavaScript
Framework, Lucene, MuleSource ESB, PHP, Ruby, Seam, Spring Framework & AOP, Struts &
Tiles, Tapestry, Velocity

Standards   JSR-286, JSR-127, JSR-170


  Seats on the JSR-286 (Portlet 2.0) and JSF-314 (JSF 2.0) committees
  AJAX, iCalendar & Microformats, WebDAV
  OpenSearch, Open platform with support for web services including: JSON, Hessian, Burlap,
REST, RMI, WSRP
Languages Liferay Portal supports I18N for any language, out-of-the-box, and ships with default translations for
22 languages. Additional languages can be added very easily.

Arabic, Catalan (Spain), Chinese (Simplified), Chinese (Traditional), Czech, Dutch, English (US),
Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, Persian, Portuguese,
Russian, Spanish, Swedish, Turkish, Vietnamese
Out-of-the-Box   CollaborationSuite
  Content Management System
  Developer Tools
Liferay Portal
Intalio Conference
Overview for Intalio Conference

Presentation Outline
  What is Liferay Portal?
  What are the JSR 168 and JSR 286 specs and why do we need them?
  What does Liferay Portal add on top of the spec implementation?
  Liferay Portal features
  What is a portlet?
  Portal/Portlet Lifecycle
  Portlet Mode, Window State, Preferences
  Portlet development
  Portal integration points
Overview for Intalio Conference

What is Liferay Portal?


  Liferay Portal is the world's leading open source enterprise portal
solution using the latest in Java and Web 2.0 technologies.
  Runs on all major application servers & servlet containers,
databases, and operating systems with over 700 deployment
combinations
  JSR 168 and JSR 286 compliant
  Out-of-the-box usability with over 60 portlets pre-bundled
  Built-in Content Management System (CMS)
  Built-in Collaboration suite
  Personalized pages for all users
Overview for Intalio Conference

What is Liferay Portal?


  Hot-Deployable Theme/Portlet Architecture with Online
Software Catalog
  Freeform / WebOS layout
  Just-in-time Portlet rendering
  Fine-grained permissions system
Overview for Intalio Conference

What are JSR 168 and JSR 286?


  JSR 168 and JSR 286 are Portlet Specifications
  They were created out of a need to have a specification for displaying
multiple applications on the same page.
  The specs define the lifecycle of a portlet as well as its
characteristics/look and feel.
  They standardize the way portlets are developed.
Overview for Intalio Conference

User Management – Permissions


  Liferay Portal Membership

Pages Organizations Organizational Roles

Roles

Users

User Groups

Pages Communities Community Roles


Overview for Intalio Conference

Drag and Drop Portlets – Rich UI


Overview for Intalio Conference

Custom Templates and Layouts


Overview for Intalio Conference

What is a portlet?
  A portlet is a web component that processes requests and generates
dynamic content.
  The content generated by a portlet is also called a fragment (e.g.
HTML, XHTML, WML) and can be aggregated with other fragments to
form a complete document.
Overview for Intalio Conference

What is a portlet?
  Portlets as fragments of an HTML page:
Overview for Intalio Conference

Portlet Lifecycle
  Portlets are different from servlets in that they have a 2 phase
commit.
  With servlets, the service() method processes all requests.
  With portlets, the processAction() method processes the requests
and the render() method draws the contents of the portlet on the
page.
Overview for Intalio Conference

Portlet Lifecycle
  init()
  Initializes the Portlet
  processAction()
  process input from a user action.
  render()
  Renders the content output.
  destroy()
  Cleans up the portlet
Overview for Intalio Conference

Portlet Lifecycle
  serveResource()
  Allows a portlet to serve a resource
  The serveResource() method can be used to implement AJAX
use cases.
  processEvent()
  Perform events triggered by other portlets. (IPC)
Overview for Intalio Conference

Liferay Implementation
  Portal RequestLifecycle (1)
PortalRequestProcessor
  Portlet RequestLifecycle (x)
PortletRequestProcessor

  These extend TilesRequestProcessor in Struts!


Overview for Intalio Conference

Portlet Characteristics
  Portlets have additional characteristics that make them different
from Servlets
  Portlet Modes
  Window States
  Portlet Preferences
Overview for Intalio Conference

Portlet Modes
  Each portlet has a current mode, which indicates the function
the portlet is performing.
  All JSR 168 compliant portals should support the View, Edit and
Help modes.
Overview for Intalio Conference

Window States
  Window states indicate the amount of portal page space that
will be assigned to a portlet.
  All spec compliant portals should support the minimized,
maximized and normal window states.
Overview for Intalio Conference

Portlet Preferences
  Portlets can be configured to provide a custom view or behavior
for different users.
  For example, a weather portlet can show the temperature in
Chicago for one user and the temperature in LA for another
user.
  These configurations are represented as a persistent set of
name-value pairs and are referred to as portlet preferences.
Overview for Intalio Conference

Portlet Development Strategy


  Overview recommended best practices for developing portlets
and extending Liferay Portal's functionality.
  Understand the compromises involved in each of the methods.
  Evaluate how to combine the different methods for the needs of
your organization.
Overview for Intalio Conference

Portlet Development Plugins


  Types: Portlets, Themes, Layout Templates
  Developed as independent software components
  Distributed and deployed as WAR files
  Can be organized in plugin repositories
  Liferay provides the Plugins SDK to help with development of
plugins.
Overview for Intalio Conference

Portlet Development Extension


  Allows management of:
  Configuration files
  Custom source code
  Custom JSPs
  Modified JSPs
  Provides different sublevels of extensibility
Overview for Intalio Conference

Portlet Development Extension


  Allows management of:
  Configuration files
  Custom source code
  Custom JSPs
  Modified JSPs
  Provides different sublevels of extensibility
Overview for Intalio Conference

Portlet Development Extension


  portal(-ext).properties
  Main configuration options: deployment, themes, hibernate,
cache, instance settings, users, groups, language, session, auth,
integration, events, ...
  system(-ext).properties
  Convenient way to provide and extend the Java System
properties used by Liferay
  The extension points or hooks allow creating custom classes for the
most common extensibility needs
  Configurable through portal.properties
  Examples: Authentication chain, Upgrade and verification processes,
Deployment processes, Database access and caching, User fields
generation and validation, session events, permissions, model
listeners, ext-spring.xml.
Overview for Intalio Conference

Portlet Development Source


  Liferay Portal is distributed with Source Code under the business
friendly MIT license.
  Recommended method: Sponsored Development
  Alternative: Develop for project and contribute back
Overview for Intalio Conference

Plugins
  The Plugins SDK is a simple environment for the development of
Liferay plugins.
  Portlet, theme and layout development used to take place in the ext
environment.
  The ext environment no longer supports portlet and theme
development, except for struts portlets and modifying/extending
Liferay’s out-of-the-box portlets.
  The Plugins SDK is to be used instead to create hot-deployable
portlets, themes and layouts.
Overview for Intalio Conference

Plugins
  ThePlugins SDK is a simple environment for the
development of Liferay plugins.

  Portlet,
theme and layout development used
portlets, themes and layouts.
Overview for Intalio Conference

Plugins
  The
Overview for Intalio Conference

Plugins
  The
Overview for Intalio Conference

Plugins
  The
Overview for Intalio Conference

Plugins
  Portlets can make use of any application framework that
Liferay supports
  Struts
  JSF
  Spring
  Tapestry
  Flex
Overview for Intalio Conference

Plugins
  Portlets can make use

  Flex
Overview for Intalio Conference

Extension
  The Extension Environment allows for complete customization of
Liferay.
  Internal portlets can be modified.
  Liferay's .jsp pages can be changed.
  Customizations are kept separate from the Liferay source.
  The Liferay source code does not have to be modified.
Overview for Intalio Conference

Extension
  Developers have a clear upgrade path.
  The combination of the MIT license and the extension
environment means that organization-specific customizations do
not need to be contributed back to the Liferay project.
Overview for Intalio Conference

Extension
Overview for Intalio Conference

Extension
Overview for Intalio Conference

Extension
  The Extension Environment allows for complete
Overview for Intalio Conference

Extension
Overview for Intalio Conference

Extension
Overview for Intalio Conference

Portal Integration Points


  Authentication
Overview for Intalio Conference

Portal Integration Points


  Filters
Overview for Intalio Conference

Portal Architecture
For more information, please contact:
Alice Cheng
Marketing & Business Development Manager
Liferay, Inc.
pr@liferay.com

You might also like