SlideShare a Scribd company logo
GateIn Introduction
Michal Vančo & Miroslav Cupák
JBoss QA
22 Nov, 2011
Abstract:
This presentation is an introduction to portal and portlets basics,
features and UI of GateIn Portal. Workshop covers specification
details for portlet development.
GateIn Introduction | FIT VUT2
Agenda
● Motivation for portals & portlets
● GateIn Overview (demo)
● JSR-168 / 286 Portlet development
● Lifecycle, API
● Tag library
● IPC (inter-portlet communication), resources etc.
● Workshop
GateIn Introduction | FIT VUT3
What is portal?
GateIn Introduction | FIT VUT4
GateIn Introduction | FIT VUT5
No! :)
GateIn Introduction | FIT VUT6
GateIn Introduction | FIT VUT7
GateIn Introduction | FIT VUT8
Portal
● A portal is a web based application that provides
personalization, single sign on, content aggregation
from different sources in the form of portlets.
● Framework for integration of information, people and
processes in an organization.
● Set of services/applications.
● Portal server.
GateIn Introduction | FIT VUT9
Types of portals
● General (yahoo.com)
● Community (MySpace.com)
● Business (Amazon.com)
● Information (BBC.co.uk, idnes.cz)
● Enterprise (GateIn, Liferay)
● Horizontal (Seznam.cz) vs. Vertical (CouchSurfing.org)
● B2B, B2C, B2E, G2C
GateIn Introduction | FIT VUT10
Enterprise Portals
GateIn Introduction | FIT VUT11
Advantages
● integration
● single sign-on
● customization & personalisation
● authorization & authentication
● communication
● extensibility
GateIn Introduction | FIT VUT12
What is that 'portlet' thing?
GateIn Introduction | FIT VUT13
Portlet
● Small web application designed to be deployed on
portal server.
● Reusable web component generating dynamic content
(markup fragment) based on requests. Portal
aggregates portlet markup fragments into a complete
portal page.
GateIn Introduction | FIT VUT14
GateIn Introduction | FIT VUT15
● Open source portal server.
● GateIn Portal is a merge of two mature projects that
have been around for a while, JBoss Portal (Red Hat)
and eXo Portal (eXo).
● Based on standards, selected services.
● ...and it's awesome!
GateIn Introduction | FIT VUT16
Anatomy of GateIn portal
GateIn Introduction | FIT VUT17
Main features
● rich user interface, internationalization
● dynamic navigations and page creation (DnD), intuitive
administration
● support for portlet specifications, bridges
● dashboards, gadgets
● IDM
● SSO & LDAP support, OS-JVM & DB compatibility
● content stored in JCR, extensions
● WSRP.
GateIn Introduction | FIT VUT18
Imagine implementing these by yourself...
GateIn Introduction | FIT VUT19
GateIn Introduction | FIT VUT20
GateIn live...
GateIn Introduction | FIT VUT21
Portlet development
GateIn Introduction | FIT VUT22
JSR-168
● Portlet vs. Servlet
● common features:
● generate dynamic content
● components based on Java
● lifecycle managed by container
● request/response model
● portlet specific features:
● generate fragment of pages
● not bound to URL
● communication via portal
● more complex request processing and behavior
● multiple instances on page
GateIn Introduction | FIT VUT23
Portlet container & lifecycle
● Manages lifecycle of portlets
● Distributes requests among portlets
GateIn Introduction | FIT VUT24
Portlet modes & window states
● Modes indicate current portlet function.
● 3 common modes: VIEW, EDIT, HELP.
● Window states determine the amount of space on the
page available to the portlet.
● 3 common states: NORMAL, MAXIMIZED, MINIMIZED.
● Custom states & modes.
GateIn Introduction | FIT VUT25
PortletPreferences & PortletSession
● Session is temporary storage of data to share among
portlets.
● Preferences are used to persist attributes (user-
specific key-value pairs). Typically set in EDIT mode
during processAction phase.
GateIn Introduction | FIT VUT26
JSR-286
● Extends JSR-168 ( + backwards compatible)
● Inter-porlet communication:
● public render parameters
● events
● Resource serving
● Filters, annotations support, advanced AJAX handling.
GateIn Introduction | FIT VUT27
Tag library
● Used in JSP pages
● <% taglib uri=”http://java.sun.com/portlet_2_0” prefix=”portlet” %>
● Allow access to portal specific request/response objects
● <portlet:defineObjects />
● Is used in JSP pages to generate links (actionURL,
renderURL, resourceURL)
● request/response objects can be accessed in scriplet or
EL expressions
GateIn Introduction | FIT VUT28
Request handling (with action & event)
GateIn Introduction | FIT VUT29
Portlet descriptors
● WEB-INF/web.xml
● WEB-INF/portlet.xml
● Contains definitions of portlets, its parameters, modes,
events, PRPs, etc.
GateIn Introduction | FIT VUT30
Let's have some fun!
GateIn Introduction | FIT VUT31
Workshop details
● Generate dynamic web project in JBDS with Portlet facet
● Generate simple portlet & deploy
● Update portlet to render content from JSP
● Create form in JSP & implement processAction
● add another JSP which displays value from form + use
renderURL to return
● Create help mode & display information about signed user
● add link to switch back to view mode (using renderURL)
● Advanced: create edit mode & implement storing and
display of PortletPreferences
GateIn Introduction | FIT VUT32
Important links
● http://jcp.org/en/jsr/detail?id=286
● http://www.jboss.org/gatein/
(Download page, User & Reference Guides)
● http://www.jboss.com/products/platforms/portals/
Contact
mvanco@redhat.com
mcupak@redhat.com
GateIn Introduction | FIT VUT33
GateIn Introduction | FIT VUT34
Thanks for your attention!
See you next week on advanced portlet
development session.

More Related Content

Similar to GateIn Introduction

Portets to composite applications
Portets to composite applicationsPortets to composite applications
Portets to composite applications
Serge Huber
 
WebSphere Portal Technical Overview
WebSphere Portal Technical OverviewWebSphere Portal Technical Overview
WebSphere Portal Technical Overview
Vincent Perrin
 
Portal Presention
Portal PresentionPortal Presention
Portal Presention
JayaPrakash.m
 
Introduction to java standard portlets
Introduction to java standard portletsIntroduction to java standard portlets
Introduction to java standard portlets
Rohan Faye
 
Introduction to Portlets using Liferay Portal (Part 2)
Introduction to Portlets using Liferay Portal (Part 2)Introduction to Portlets using Liferay Portal (Part 2)
Introduction to Portlets using Liferay Portal (Part 2)
rivetlogic
 
Introduction to Portlets Using Liferay Portal
Introduction to Portlets Using Liferay PortalIntroduction to Portlets Using Liferay Portal
Introduction to Portlets Using Liferay Portal
rivetlogic
 
Portlets & jsr 168
Portlets & jsr 168Portlets & jsr 168
Portlets & jsr 168
grsrkumar
 
Portlets 2.0 JSR286
Portlets 2.0 JSR286Portlets 2.0 JSR286
Portlets 2.0 JSR286
C2B2 Consulting
 
Web Applications Development
Web Applications DevelopmentWeb Applications Development
Web Applications Development
riround
 
Webcenter Portlal training...
Webcenter Portlal training...Webcenter Portlal training...
Webcenter Portlal training...
Vinay Kumar
 
D22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source FrameworksD22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source Frameworks
Sunil Patil
 
D22 portlet development with open source frameworks
D22 portlet development with open source frameworksD22 portlet development with open source frameworks
D22 portlet development with open source frameworks
Sunil Patil
 
Web Application Development
Web Application DevelopmentWeb Application Development
Web Application Development
riround
 
Portlet
PortletPortlet
Portlet
patinijava
 
JEE Conf 2015: Less JS!
JEE Conf 2015: Less JS!JEE Conf 2015: Less JS!
JEE Conf 2015: Less JS!
_Dewy_
 
Shindig Apachecon Asia 09
Shindig Apachecon Asia 09Shindig Apachecon Asia 09
Shindig Apachecon Asia 09
Nuwan Bandara
 
Enterprise Portals - Gateway to the Gold
Enterprise Portals - Gateway to the GoldEnterprise Portals - Gateway to the Gold
Enterprise Portals - Gateway to the Gold
Security B-Sides
 
Enterprise portals, gate to the gold
Enterprise portals, gate to the goldEnterprise portals, gate to the gold
Enterprise portals, gate to the gold
SensePost
 
Beego meetup 4.4.2017 @ Gett
Beego meetup 4.4.2017 @ GettBeego meetup 4.4.2017 @ Gett
Beego meetup 4.4.2017 @ Gett
Boris Borshevsky
 
Javascript as a target language - GWT KickOff - Part 2/2
Javascript as a target language - GWT KickOff - Part 2/2Javascript as a target language - GWT KickOff - Part 2/2
Javascript as a target language - GWT KickOff - Part 2/2
JooinK
 

Similar to GateIn Introduction (20)

Portets to composite applications
Portets to composite applicationsPortets to composite applications
Portets to composite applications
 
WebSphere Portal Technical Overview
WebSphere Portal Technical OverviewWebSphere Portal Technical Overview
WebSphere Portal Technical Overview
 
Portal Presention
Portal PresentionPortal Presention
Portal Presention
 
Introduction to java standard portlets
Introduction to java standard portletsIntroduction to java standard portlets
Introduction to java standard portlets
 
Introduction to Portlets using Liferay Portal (Part 2)
Introduction to Portlets using Liferay Portal (Part 2)Introduction to Portlets using Liferay Portal (Part 2)
Introduction to Portlets using Liferay Portal (Part 2)
 
Introduction to Portlets Using Liferay Portal
Introduction to Portlets Using Liferay PortalIntroduction to Portlets Using Liferay Portal
Introduction to Portlets Using Liferay Portal
 
Portlets & jsr 168
Portlets & jsr 168Portlets & jsr 168
Portlets & jsr 168
 
Portlets 2.0 JSR286
Portlets 2.0 JSR286Portlets 2.0 JSR286
Portlets 2.0 JSR286
 
Web Applications Development
Web Applications DevelopmentWeb Applications Development
Web Applications Development
 
Webcenter Portlal training...
Webcenter Portlal training...Webcenter Portlal training...
Webcenter Portlal training...
 
D22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source FrameworksD22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source Frameworks
 
D22 portlet development with open source frameworks
D22 portlet development with open source frameworksD22 portlet development with open source frameworks
D22 portlet development with open source frameworks
 
Web Application Development
Web Application DevelopmentWeb Application Development
Web Application Development
 
Portlet
PortletPortlet
Portlet
 
JEE Conf 2015: Less JS!
JEE Conf 2015: Less JS!JEE Conf 2015: Less JS!
JEE Conf 2015: Less JS!
 
Shindig Apachecon Asia 09
Shindig Apachecon Asia 09Shindig Apachecon Asia 09
Shindig Apachecon Asia 09
 
Enterprise Portals - Gateway to the Gold
Enterprise Portals - Gateway to the GoldEnterprise Portals - Gateway to the Gold
Enterprise Portals - Gateway to the Gold
 
Enterprise portals, gate to the gold
Enterprise portals, gate to the goldEnterprise portals, gate to the gold
Enterprise portals, gate to the gold
 
Beego meetup 4.4.2017 @ Gett
Beego meetup 4.4.2017 @ GettBeego meetup 4.4.2017 @ Gett
Beego meetup 4.4.2017 @ Gett
 
Javascript as a target language - GWT KickOff - Part 2/2
Javascript as a target language - GWT KickOff - Part 2/2Javascript as a target language - GWT KickOff - Part 2/2
Javascript as a target language - GWT KickOff - Part 2/2
 

More from Miro Cupak

Exploring the latest and greatest from Java 14
Exploring the latest and greatest from Java 14Exploring the latest and greatest from Java 14
Exploring the latest and greatest from Java 14
Miro Cupak
 
Exploring reactive programming in Java
Exploring reactive programming in JavaExploring reactive programming in Java
Exploring reactive programming in Java
Miro Cupak
 
Exploring the last year of Java
Exploring the last year of JavaExploring the last year of Java
Exploring the last year of Java
Miro Cupak
 
Local variable type inference - Will it compile?
Local variable type inference - Will it compile?Local variable type inference - Will it compile?
Local variable type inference - Will it compile?
Miro Cupak
 
The Good, the Bad and the Ugly of Java API design
The Good, the Bad and the Ugly of Java API designThe Good, the Bad and the Ugly of Java API design
The Good, the Bad and the Ugly of Java API design
Miro Cupak
 
Local variable type inference - Will it compile?
Local variable type inference - Will it compile?Local variable type inference - Will it compile?
Local variable type inference - Will it compile?
Miro Cupak
 
Exploring reactive programming in Java
Exploring reactive programming in JavaExploring reactive programming in Java
Exploring reactive programming in Java
Miro Cupak
 
The good, the bad, and the ugly of Java API design
The good, the bad, and the ugly of Java API designThe good, the bad, and the ugly of Java API design
The good, the bad, and the ugly of Java API design
Miro Cupak
 
Master class in modern Java
Master class in modern JavaMaster class in modern Java
Master class in modern Java
Miro Cupak
 
The good, the bad, and the ugly of Java API design
The good, the bad, and the ugly of Java API designThe good, the bad, and the ugly of Java API design
The good, the bad, and the ugly of Java API design
Miro Cupak
 
Exploring reactive programming in Java
Exploring reactive programming in JavaExploring reactive programming in Java
Exploring reactive programming in Java
Miro Cupak
 
The good, the bad, and the ugly of Java API design
The good, the bad, and the ugly of Java API designThe good, the bad, and the ugly of Java API design
The good, the bad, and the ugly of Java API design
Miro Cupak
 
Writing clean code with modern Java
Writing clean code with modern JavaWriting clean code with modern Java
Writing clean code with modern Java
Miro Cupak
 
The good, the bad, and the ugly of Java API design
The good, the bad, and the ugly of Java API designThe good, the bad, and the ugly of Java API design
The good, the bad, and the ugly of Java API design
Miro Cupak
 
Master class in modern Java
Master class in modern JavaMaster class in modern Java
Master class in modern Java
Miro Cupak
 
Exploring reactive programming in Java
Exploring reactive programming in JavaExploring reactive programming in Java
Exploring reactive programming in Java
Miro Cupak
 
Writing clean code with modern Java
Writing clean code with modern JavaWriting clean code with modern Java
Writing clean code with modern Java
Miro Cupak
 
Exploring what's new in Java 10 and 11 (and 12)
Exploring what's new in Java 10 and 11 (and 12)Exploring what's new in Java 10 and 11 (and 12)
Exploring what's new in Java 10 and 11 (and 12)
Miro Cupak
 
Exploring what's new in Java 10 and 11
Exploring what's new in Java 10 and 11Exploring what's new in Java 10 and 11
Exploring what's new in Java 10 and 11
Miro Cupak
 
Exploring what's new in Java in 2018
Exploring what's new in Java in 2018Exploring what's new in Java in 2018
Exploring what's new in Java in 2018
Miro Cupak
 

More from Miro Cupak (20)

Exploring the latest and greatest from Java 14
Exploring the latest and greatest from Java 14Exploring the latest and greatest from Java 14
Exploring the latest and greatest from Java 14
 
Exploring reactive programming in Java
Exploring reactive programming in JavaExploring reactive programming in Java
Exploring reactive programming in Java
 
Exploring the last year of Java
Exploring the last year of JavaExploring the last year of Java
Exploring the last year of Java
 
Local variable type inference - Will it compile?
Local variable type inference - Will it compile?Local variable type inference - Will it compile?
Local variable type inference - Will it compile?
 
The Good, the Bad and the Ugly of Java API design
The Good, the Bad and the Ugly of Java API designThe Good, the Bad and the Ugly of Java API design
The Good, the Bad and the Ugly of Java API design
 
Local variable type inference - Will it compile?
Local variable type inference - Will it compile?Local variable type inference - Will it compile?
Local variable type inference - Will it compile?
 
Exploring reactive programming in Java
Exploring reactive programming in JavaExploring reactive programming in Java
Exploring reactive programming in Java
 
The good, the bad, and the ugly of Java API design
The good, the bad, and the ugly of Java API designThe good, the bad, and the ugly of Java API design
The good, the bad, and the ugly of Java API design
 
Master class in modern Java
Master class in modern JavaMaster class in modern Java
Master class in modern Java
 
The good, the bad, and the ugly of Java API design
The good, the bad, and the ugly of Java API designThe good, the bad, and the ugly of Java API design
The good, the bad, and the ugly of Java API design
 
Exploring reactive programming in Java
Exploring reactive programming in JavaExploring reactive programming in Java
Exploring reactive programming in Java
 
The good, the bad, and the ugly of Java API design
The good, the bad, and the ugly of Java API designThe good, the bad, and the ugly of Java API design
The good, the bad, and the ugly of Java API design
 
Writing clean code with modern Java
Writing clean code with modern JavaWriting clean code with modern Java
Writing clean code with modern Java
 
The good, the bad, and the ugly of Java API design
The good, the bad, and the ugly of Java API designThe good, the bad, and the ugly of Java API design
The good, the bad, and the ugly of Java API design
 
Master class in modern Java
Master class in modern JavaMaster class in modern Java
Master class in modern Java
 
Exploring reactive programming in Java
Exploring reactive programming in JavaExploring reactive programming in Java
Exploring reactive programming in Java
 
Writing clean code with modern Java
Writing clean code with modern JavaWriting clean code with modern Java
Writing clean code with modern Java
 
Exploring what's new in Java 10 and 11 (and 12)
Exploring what's new in Java 10 and 11 (and 12)Exploring what's new in Java 10 and 11 (and 12)
Exploring what's new in Java 10 and 11 (and 12)
 
Exploring what's new in Java 10 and 11
Exploring what's new in Java 10 and 11Exploring what's new in Java 10 and 11
Exploring what's new in Java 10 and 11
 
Exploring what's new in Java in 2018
Exploring what's new in Java in 2018Exploring what's new in Java in 2018
Exploring what's new in Java in 2018
 

Recently uploaded

Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
YAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring detailsYAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring details
NishanthaBulumulla1
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
Liberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptxLiberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptx
Massimo Artizzu
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
mz5nrf0n
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
zOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL DifferenceszOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL Differences
YousufSait3
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
sjcobrien
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
ISH Technologies
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 

Recently uploaded (20)

Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
YAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring detailsYAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring details
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
Liberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptxLiberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptx
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
zOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL DifferenceszOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL Differences
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 

GateIn Introduction

  • 1. GateIn Introduction Michal Vančo & Miroslav Cupák JBoss QA 22 Nov, 2011 Abstract: This presentation is an introduction to portal and portlets basics, features and UI of GateIn Portal. Workshop covers specification details for portlet development.
  • 2. GateIn Introduction | FIT VUT2 Agenda ● Motivation for portals & portlets ● GateIn Overview (demo) ● JSR-168 / 286 Portlet development ● Lifecycle, API ● Tag library ● IPC (inter-portlet communication), resources etc. ● Workshop
  • 3. GateIn Introduction | FIT VUT3 What is portal?
  • 5. GateIn Introduction | FIT VUT5 No! :)
  • 8. GateIn Introduction | FIT VUT8 Portal ● A portal is a web based application that provides personalization, single sign on, content aggregation from different sources in the form of portlets. ● Framework for integration of information, people and processes in an organization. ● Set of services/applications. ● Portal server.
  • 9. GateIn Introduction | FIT VUT9 Types of portals ● General (yahoo.com) ● Community (MySpace.com) ● Business (Amazon.com) ● Information (BBC.co.uk, idnes.cz) ● Enterprise (GateIn, Liferay) ● Horizontal (Seznam.cz) vs. Vertical (CouchSurfing.org) ● B2B, B2C, B2E, G2C
  • 10. GateIn Introduction | FIT VUT10 Enterprise Portals
  • 11. GateIn Introduction | FIT VUT11 Advantages ● integration ● single sign-on ● customization & personalisation ● authorization & authentication ● communication ● extensibility
  • 12. GateIn Introduction | FIT VUT12 What is that 'portlet' thing?
  • 13. GateIn Introduction | FIT VUT13 Portlet ● Small web application designed to be deployed on portal server. ● Reusable web component generating dynamic content (markup fragment) based on requests. Portal aggregates portlet markup fragments into a complete portal page.
  • 15. GateIn Introduction | FIT VUT15 ● Open source portal server. ● GateIn Portal is a merge of two mature projects that have been around for a while, JBoss Portal (Red Hat) and eXo Portal (eXo). ● Based on standards, selected services. ● ...and it's awesome!
  • 16. GateIn Introduction | FIT VUT16 Anatomy of GateIn portal
  • 17. GateIn Introduction | FIT VUT17 Main features ● rich user interface, internationalization ● dynamic navigations and page creation (DnD), intuitive administration ● support for portlet specifications, bridges ● dashboards, gadgets ● IDM ● SSO & LDAP support, OS-JVM & DB compatibility ● content stored in JCR, extensions ● WSRP.
  • 18. GateIn Introduction | FIT VUT18 Imagine implementing these by yourself...
  • 20. GateIn Introduction | FIT VUT20 GateIn live...
  • 21. GateIn Introduction | FIT VUT21 Portlet development
  • 22. GateIn Introduction | FIT VUT22 JSR-168 ● Portlet vs. Servlet ● common features: ● generate dynamic content ● components based on Java ● lifecycle managed by container ● request/response model ● portlet specific features: ● generate fragment of pages ● not bound to URL ● communication via portal ● more complex request processing and behavior ● multiple instances on page
  • 23. GateIn Introduction | FIT VUT23 Portlet container & lifecycle ● Manages lifecycle of portlets ● Distributes requests among portlets
  • 24. GateIn Introduction | FIT VUT24 Portlet modes & window states ● Modes indicate current portlet function. ● 3 common modes: VIEW, EDIT, HELP. ● Window states determine the amount of space on the page available to the portlet. ● 3 common states: NORMAL, MAXIMIZED, MINIMIZED. ● Custom states & modes.
  • 25. GateIn Introduction | FIT VUT25 PortletPreferences & PortletSession ● Session is temporary storage of data to share among portlets. ● Preferences are used to persist attributes (user- specific key-value pairs). Typically set in EDIT mode during processAction phase.
  • 26. GateIn Introduction | FIT VUT26 JSR-286 ● Extends JSR-168 ( + backwards compatible) ● Inter-porlet communication: ● public render parameters ● events ● Resource serving ● Filters, annotations support, advanced AJAX handling.
  • 27. GateIn Introduction | FIT VUT27 Tag library ● Used in JSP pages ● <% taglib uri=”http://java.sun.com/portlet_2_0” prefix=”portlet” %> ● Allow access to portal specific request/response objects ● <portlet:defineObjects /> ● Is used in JSP pages to generate links (actionURL, renderURL, resourceURL) ● request/response objects can be accessed in scriplet or EL expressions
  • 28. GateIn Introduction | FIT VUT28 Request handling (with action & event)
  • 29. GateIn Introduction | FIT VUT29 Portlet descriptors ● WEB-INF/web.xml ● WEB-INF/portlet.xml ● Contains definitions of portlets, its parameters, modes, events, PRPs, etc.
  • 30. GateIn Introduction | FIT VUT30 Let's have some fun!
  • 31. GateIn Introduction | FIT VUT31 Workshop details ● Generate dynamic web project in JBDS with Portlet facet ● Generate simple portlet & deploy ● Update portlet to render content from JSP ● Create form in JSP & implement processAction ● add another JSP which displays value from form + use renderURL to return ● Create help mode & display information about signed user ● add link to switch back to view mode (using renderURL) ● Advanced: create edit mode & implement storing and display of PortletPreferences
  • 32. GateIn Introduction | FIT VUT32 Important links ● http://jcp.org/en/jsr/detail?id=286 ● http://www.jboss.org/gatein/ (Download page, User & Reference Guides) ● http://www.jboss.com/products/platforms/portals/ Contact mvanco@redhat.com mcupak@redhat.com
  • 34. GateIn Introduction | FIT VUT34 Thanks for your attention! See you next week on advanced portlet development session.