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 usablilitychoose 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 Intalio Terracotta ICEfaces jQuery Business Intelligence Business Process Management Scalability and high availability Rich Internet applications 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 Databases Operating Systems
Liferay Portal supports ALL major app servers, databases, and operating systems, with over 700 deployment configurations.

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 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

Languages

Out-of-the-Box

Collaboration

Suite 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 Liferays 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
The

Plugins SDK is a simple environment for the development of Liferay plugins. theme and layout development used portlets, themes and layouts.

Portlet,

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