JSR-286: Portlet Specification 2.0

Similar documents
JSR-286: Portlet Specification 2.0

Advanced Web Systems 4- PORTLET API specifications (JSR 286) A. Venturini

Portlet Standard JSR 168 / JSR 286

Advanced Software Engineering

What's New in the Servlet and JavaServer Pages Technologies?

Standards and the Portals Project

Oracle Developer Day

"Charting the Course... WebSphere Portal 8 Development using Rational Application Developer 8.5. Course Summary

Portlets and Ajax: Building More Dynamic Web Apps

Portlets (JSR-168) Dave Landers. BEA Systems, Inc. Dave Landers Portlets (JSR-168)

IBM Realtests LOT-911 Exam Questions & Answers

WSRP Web Services for Remote Portlets

AD105 Introduction to Application Development for the IBM Workplace Managed Client

IT Certification Exams Provider! Weofferfreeupdateserviceforoneyear! h ps://

Sang Shin. Java Portlets (JSR-168) Revision History. Disclaimer & Acknowledgments

Implementing JSR 168 inter-portlet communication using Rational Application Developer V6.0 and WebSphere Portal V5.1

WA2089 WebSphere Portal 8.0 Programming EVALUATION ONLY

JavaServer Faces Technology, AJAX, and Portlets: It s Easy if You Know How!

Developing Applications with Java EE 6 on WebLogic Server 12c

Java EE 6: Develop Web Applications with JSF

WebSphere Portal Application Development Best Practices using Rational Application Developer IBM Corporation

Oracle - Developing Applications for the Java EE 7 Platform Ed 1 (Training On Demand)

Lotus Exam IBM Websphere Portal 6.1 Application Development Version: 5.0 [ Total Questions: 150 ]

SOFTWARE DEVELOPMENT SERVICES WEB APPLICATION PORTAL (WAP) TRAINING. Intuit 2007

Tutorial: Developing a Simple Hello World Portlet

Advanced Topics in WebSphere Portal Development Graham Harper Application Architect IBM Software Services for Collaboration

Using Adobe Flex in JSR-286 Portlets

The Cocoon Portal. A portal solution and framework. Carsten Ziegeler Competence Center Open Source S&N AG, Germany

Beyond the Portlet API

Module 3 Web Component

IT Certification Exams Provider! Weofferfreeupdateserviceforoneyear! h ps://

Oracle Developer Day

Implementing a Numerical Data Access Service

Application Development in JAVA. Data Types, Variable, Comments & Operators. Part I: Core Java (J2SE) Getting Started

Specialized - Mastering JEE 7 Web Application Development

Type of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes

Vendor: Liferay. Exam Code: LRP-614. Exam Name: Liferay Certified Professional Developer. Version: Demo

Writing Servlets and JSPs p. 1 Writing a Servlet p. 1 Writing a JSP p. 7 Compiling a Servlet p. 10 Packaging Servlets and JSPs p.

JVA-563. Developing RESTful Services in Java

Open Text Web Site Management 10.1

Java EE 7 is ready What to do next? Peter Doschkinow Senior Java Architect

JOURNAL OF OBJECT TECHNOLOGY

COURSE DETAILS: CORE AND ADVANCE JAVA Core Java

Webservices In Java Tutorial For Beginners Using Netbeans Pdf

Administration Console Extension Developer's Guide

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX

de la session Portal 6.1 Administration

Improve and Expand JavaServer Faces Technology with JBoss Seam

Liferay Exam LRP-614 Portal Developer Version: 6.0 [ Total Questions: 144 ]

Portals allow users easy access to information

Liferay DXP profile for Dynatrace

Java- EE Web Application Development with Enterprise JavaBeans and Web Services

Full Stack Java Developer Course

Advanced Java Programming

Actual4Test. Actual4test - actual test exam dumps-pass for IT exams

Best Practices for JSF Portlet Migration and Development

Java Training Center, Noida - Java Expert Program

Developing Applications for IBM WebSphere Portal 7.0

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into

Java TM Portlet Specification

Bring the Java World and Web Services into Your Portal. An Oracle White Paper September 2005

Session 8. Introduction to Servlets. Semester Project

Building Web Applications With The Struts Framework

Building JavaServer Faces Applications

Oracle 10g: Build J2EE Applications

/ / JAVA TRAINING

Java EE 6 - Update Harpreet Singh GlassFish Portfolio Product Manager

Oracle Developer Day

Application Reuse through Portal Frameworks

UNIT I Java Bean, HTML & Javascript

1 Markus Eisele, Insurance - Strategic IT-Architecture

Best practices: Developing portlets using JSR 168 and WebSphere Portal V5.02

J2EE Development. Course Detail: Audience. Duration. Course Abstract. Course Objectives. Course Topics. Class Format.

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

Java J Course Outline

Oracle ADF: The technology behind project fusion. Lynn Munsinger Principal Product Manager Application Development Tools Oracle Corporation

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Call: Core&Advanced Java Springframeworks Course Content:35-40hours Course Outline

Annotation-Based Spring Portlet MVC

Java EE Patterns 176

Enterprise Java Unit 1- Chapter 3 Prof. Sujata Rizal Introduction to Servlets

IBM Workplace Collaboration Services API Toolkit

At present we use several collaboration (web) tools, like SuperB website Wiki SVN Document management system etc.

JAVA. Duration: 2 Months

1Z Java EE 6 Web Component Developer Certified Expert Exam Summary Syllabus Questions

Chapter 10 Web-based Information Systems

JAVA. 1. Introduction to JAVA

Call: JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline

JSF 2.0: Insight and Opinion

The 60-Minute Guide to Development Tools for IBM Lotus Domino, IBM WebSphere Portal, and IBM Workplace Applications

Liferay Faces. Reference Documentation ga4

Introduction Haim Michael. All Rights Reserved.

Enabling Web 2.0 User Experience for E-Business Suite. Padmaprabodh Ambale, Gustavo Jimenez Development Managers, Applications Technology Group

Page 1

COURSE 9 DESIGN PATTERNS

112. Introduction to JSP

PGT T3CHNOLOGY SCOUTING. Google Webtoolkit. JSF done right?

JAVA 2 ENTERPRISE EDITION (J2EE)

JAVA+ANDROID CURRICULUM 6 WEEKS. INTRODUCTION TO JAVA Understanding Requirement: Why Java Why Java is important to the Internet JAVA on LINUX Platform

Transcription:

JSR-286: Portlet Specification 2.0 Upcoming enhancements and new features for Portal and Portlet Developers Ate Douma JSR-286 Expert Group Software Architect Hippo Open Source Content Management Software ate@apache.org / a.douma@hippo.nl

Preamble This presentation only represents the current thinking of the JSR-286 Expert Group. The final specification may differ from the content of this presentation.

Agenda A short summary of JSR-168: Portlet Specification 1.0 What is missing from JSR-168 JSR-286: Enhancements and new features for V2.0 Questions and Answers

JSR-168 A short summary PLT.2.1 What is a Portal? A portal is a web based application that commonlyprovides personalization, single sign on, content aggregation from different sources and hosts the presentation layer of Information Systems.

JSR-168 A short summary PLT.2.2 What is a Portlet? A portlet is a Java technology based web component managed by a portlet container that processes requests and generates dynamic content. Portlets are used by portals as pluggable user interface components that provide a presentation layer to Information Systems.

JSR-168 A short summary PLT.2.3 What is a Portlet Container A portlet container runs portlets and provides them with the required runtime environment. A portlet container contains portlets and manages their lifecycle.... A portlet container receives requests from the portal to execute requests on the portlets hosted by it.

JSR-168 A short summary

JSR-168 A short summary Request processing

JSR-168 What is missing? inter-portlet communication serving non-html resources (pdf, doc, images etc.) contributing javascript or css to <head>, using cookies proper support for common web frameworks portlet filters

JSR-168 What is missing? Inter-portlet communication only supported within the same portlet application using session attributes target portlets will only see messages during next render request portlets cannot (should not) update their state during a render request: event handling not really possible

JSR-168 What is missing? Serving non-html resources A portlet can only render html fragments Have to fallback/delegate to the servlet container Requires coordination between portlet and servlet

JSR-168 What is missing? Contributing to <head>, setting cookies javascript or css can only be embedded withing the content markup; no body onload handling hooks API forbids adding cookies: only client side setting of cookies using javascript is possible

JSR-168 What is missing? Proper support for common web frameworks Most web frameworks are Servlet API only Servlet dispatching not supported from processaction Needs Portals Bridges or similar solutions JSTL support very limited: <c:out value= <%= ((FooBean)renderRequest.getSession().getAttribute("fooBean",PortletSession.PORTLET_SCOPE)).getBeanValue() %>"/>

JSR-286 - Coming up Portlet Specification 2.0 Expert Group started January 2006 1 st Early Public Draft released August 2006 covering most, but not yet all, planned features 2 nd Early Public Draft November 2006 covering all features 1 st Public Draft December 2006 Final Release May 2007 RI will be done under Apache Pluto umbrella with help from a group at University of Jena

JSR-286 - Coming up Binary compatible with JSR-168 Alignment with J2EE 1.4, WSRP 2.0 Portlet coordination Public render parameters Shared session state across applications (maybe) Portlet events Resource serving AJAX support Portlet filters Extended cache support Improved support for common web frameworks... and more...

JSR-286 Coming up Public render parameters Allow coordination of render state with other portlets across web applications Limited to String values Defined in portlet.xml: <shared-render-parameter> <name>myfoo</name> <name>foo</name> </shared-render-parameter> <portlet> <portlet-name>portlet-a</portlet-name>... <supported-shared-render-parameter> <name>myfoo</name> </supported-shared-render-parameter> </portlet>

JSR-286 Coming up Shared session state Share user session data independent of navigational state across web applications Managed by the portal, not the portlet container Defined in portlet.xml: <shared-application-session-attribute> <name>com.foo.bar</name> <name>com.acne.foo.bar</name> </shared-application-session-attribute> <portlet> <portlet-name>portlet-a</portlet-name>... <shared-portlet-session-attribute> <name>com.my.foo.bar<name> <java-class>com.foo.bar.foobar</java-class> </shared-portlet-session-attribute> </portlet>

JSR-286 Coming up Shared session state (continued) Must be serializable and have a valid JAXB 2.0 binding HttpSessionBindingListener supported but: Difficult to implement and use reliable Still under investigation if really needed Maybe dropped again as Portlet events might already provide enough functionality

JSR-286 Coming up Portlet events A portlet declares the events it wants to receive or emit in portlet.xml: <event-definition> <name>com.foo.bar</name> <java-class>java.lang.string</java-class> </event-definition> <portlet> <portlet-name>portlet-a</portlet-name>... <supported-processing-event> <name>com.foo.bar<name> </supported-processing-event> <supported-publishing-event> <name>com.foo.bar<name> </supported-publishing-event> </portlet> Emitting dynamic non-declared events is allowed too

JSR-286 Coming up Portlet events (continued) Allows wiring of portlets at runtime The portal / portlet container will act as broker The portal or portlet container can also emit events Non-reliable, i.e. no guarantee of delivery New 3 rd lifecyle phase: before rendering API: EventPortlet.processEvent(EventRequest req,eventresponse res) StateAwareResponse.setEvent(String name,object value) StateAwareResponse.setEvents(Map events) Can be created from processaction and processevent State changes are allowed during processevent

JSR-286 Coming up Resource serving New type of PortletURL and request handler API: PortletResponse.createResourceURL() ResourceServingPortlet.serveResource(ResourceRequest, ResourceResponse) Extends the render phase, NOT a new lifecycle phase Cannot change state Additional URL parameters are specific for the request Full control over request and response headers Can be used for binary data or readonly AJAX

JSR-286 Coming up AJAX support allowing state changes (TBD) Still under discussion Several issues need to be addressed AJAX request identification synchronizing state changes to the client for other portlets on the page XMLPortletRequest or plain XMLHttpRequest integration with popular AJAX toolkits

JSR-286 Coming up Portlet filters Allow on the fly transformations of information in both the request to and the response from the portlet Modelled after Servlet filters Defined in portlet.xml: <filter> <filter-name>event Filter</filter-name> <filter-class>com.acme.eventfilter</filter-class> </filter> <filter-mapping> <filter-name>event Filter</filter-name> <portlet-name>sampleportlet</portlet-name> <lifecycle>event</lifecycle> </filter-mapping> Targetted at all lifecyle calls (*) by default

JSR-286 Coming up Extended cache support Allow public cached content for multiple users <portlet>... <expiration-cache> <expiration-time>300</expiration-time> <scope>public</scope> </expiration-cache> </portlet> Support validation based caching using ETAG API: response.getcachecontrol().getexpirationtime(),.setexpirationtime().getpublicscope(),.setpublicscope(boolean).getetag(),.setetag(string).usecachedcontent(),.setusecachedcontent(boolean)

JSR-286 Coming up Improved support for web frameworks (TBD) Allow servlet dispatching during all lifecycle calls: processaction processevent render serverresource Extended JSP tag library <defineobjects/> support for JSF

JSR-286 Coming up... and more... PortletRequest.getWindowID() Java 5 annotation support for events in GenericPortlet: @ProcessEvent(Retention=RUNTIME, name=<event name>) void <methodname> (EventRequest, EventResponse) throws PortletException, java.io.ioexception; TBD Contributing to HTTP and HTML headers JSR-188: Composite Capability/Preference Profiles

More information JSR-286: Portlet Specification 2.0 http://jcp.org/en/jsr/detail?id=286 Online current early draft (non-official) http://ipc658.inf-swt.uni-jena.de/spec/ Apache Pluto http://portals.apache.org/pluto/ RI development http://svn.apache.org/repos/asf/portals/pluto/branches/1.1-286-compatibility/

Questions and Answers