JSF 2.0: Insight and Opinion

Similar documents
JSF 2.0: Insight and Opinion

Ajax and JSF: Natural Synergy

Java EE 6: Develop Web Applications with JSF

Improve and Expand JavaServer Faces Technology with JBoss Seam

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

Seam 3. Pete Muir JBoss, a Division of Red Hat

An update on the latest strategies for building Ajax applications with JavaServer Faces

Oracle Developer Day

Contents. 1. JSF overview. 2. JSF example

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

Beware of Serialized GUI Objects Bearing Data. David Byrne Rohini Sulatycki

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

Tooling for Ajax-Based Development. Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc.

Developing Applications with Java EE 6 on WebLogic Server 12c

Sun Java Studio Creator. Ken Paulsen Staff Engineer Sun Microsystems, Incorporated (Slides by: Craig R. McClanahan)

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

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

Best Practices for JSF Portlet Migration and Development

Specialized - Mastering JEE 7 Web Application Development

Upload to your web space (e.g., UCSC) Due this Thursday 4/8 in class Deliverable: Send me an with the URL Grading:

Happy Birthday, Ajax4jsf! A Progress Report

Building Web Applications With The Struts Framework

Enterprise Java Unit 1-Chapter 2 Prof. Sujata Rizal Java EE 6 Architecture, Server and Containers

Shale and the Java Persistence Architecture. Craig McClanahan Gary Van Matre. ApacheCon US 2006 Austin, TX

IBM Rational Application Developer for WebSphere Software, Version 7.0

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

Contents at a Glance

Distributed Multitiered Application

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

Comparing Java Web Frameworks

Proposal for dynamic configuration

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

More reading: A series about real world projects that use JavaServer Faces:

Courses For Event Java Advanced Summer Training 2018

Mastering JavaServer Faces

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

A Red Hat Perspective

What is it? What does it do?

Webservices In Java Tutorial For Beginners Using Netbeans Pdf

What s new in Spring Web Flow 2.0

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

Java EE 6 - Update Harpreet Singh GlassFish Portfolio Product Manager

Introduction to Java Server Faces(JSF)

Building JavaServer Faces Applications

JSF: Introduction, Installation, and Setup

JavaServer Faces 2.0. Sangeetha S E-Commerce Research Labs, Infosys Technologies Ltd

JSR-286: Portlet Specification 2.0

Vision of J2EE. Why J2EE? Need for. J2EE Suite. J2EE Based Distributed Application Architecture Overview. Umair Javed 1

<Insert Picture Here> Advanced ADF Faces. Frank Nimphius Principal Product Manager

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

Oracle Fusion Middleware 11g: Build Applications with ADF I

J2EE Interview Questions

OSGi on the Server. Martin Lippert (it-agile GmbH)

11-15 DECEMBER ANTWERP BELGIUM

DESIGN AND IMPLEMENTATION OF SAGE DISPLAY CONTROLLER PROJECT

AJAX in Apache MyFaces A New Approach To Web Applications

WSRP Web Services for Remote Portlets

Visual Web Next Design Concepts. Winston Prakash Feb 12, 2008

Hands-on Development of Web Applications with Java EE 6

ADVANCED JAVA COURSE CURRICULUM

JSR-286: Portlet Specification 2.0

Equinox OSGi: Pervasive Componentization

Enterprise JavaBeans. Layer:01. Overview

Tapestry. Code less, deliver more. Rayland Jeans

Apache MyFaces CODI. Mark Struberg, INSO TU-Vienna

IBM Rational Developer for System z Version 7.5

JakartaEE and the road ahead An ASF View. Mark Struberg, RISE GmbH, Apache Software Foundation, INSO TU Wien

Java Training Center, Noida - Java Expert Program

Oracle Fusion Middleware 11g: Build Applications with ADF Accel

jmaki Overview Sang Shin Java Technology Architect Sun Microsystems, Inc.

JavaEE Interview Prep

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.

If you wish to make an improved product, you must already be engaged in making an inferior one.

Standards and the Portals Project

JAVA SERVLET PROGRAMMING HELP FOR SERVER SIDE JAVA DEVELOPERS JAVA SERIES

JSF. What is JSF (Java Server Faces)?

open source community experience distilled

Netbeans Platform For Beginners

Oracle Fusion Middleware 11g: Build Applications with ADF I

Services Interoperability With Java Technology and.net: Technologies for Web 2.0

112. Introduction to JSP

Oracle Application Development Framework Overview

Financial. AngularJS. AngularJS.

Case Study: Dodging the Pitfalls of Enterprise Ajax Applications

Getting Started Guide. Version 1.7

JBoss Web Framework Kit 1.0 Release Notes

Full Stack Java Developer Course

Overview of BlackBerry Dynamics Platform

Table of Contents Fast Track to JSF 2

Financial. AngularJS. AngularJS. Download Full Version :

Real World Java Ee Patterns Rethinking Best Practices

Java Platform, Enterprise Edition 6 with Extensible GlassFish Application Server v3

112-WL. Introduction to JSP with WebLogic

Layered UI and Adaptation Policies for Ubiquitous Web Applications

(p t y) lt d. 1995/04149/07. Course List 2018

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

Oracle Developer Day

Performance evaluation of J2EE

Overview. Principal Product Manager Oracle JDeveloper & Oracle ADF

1.2. Name(s) and address of Document Author(s)/Supplier: Sahoo: 1.3. Date of This Document: 12 July 2008

Transcription:

JSF 2.0: Insight and Opinion Ed Burns Senior Staff Engineer Roger Kitain Staff Engineer Sun Microsystems TS-5979

Overall Presentation Goal Inspire Confidence in Choosing JavaServer Faces platform Share our vision for JavaServer Faces 2.0 application Demonstrate our progress 2

Speaker Qualifications Ed Burns is: A Senior Staff Engineer at Sun Microsystems, Inc. Since inception, co-leader of the team that develops the JavaServer Faces Specification Co-author of the McGraw-Hill book, JavaServer Faces, the Complete Reference Author of the McGraw-Hill book: Secrets of Rock Star Programmers: Riding the IT Crest Prior to JSF Ed worked on the Sun Java Plug-in, Mozilla Open JavaVM Interface, NCSA Mosaic Roger Kitain is: A Staff Engineer at Sun Microsystems, Inc. Since JavaServer Faces 1.1 application, co-leader of the team that develops the JavaServer Faces Specification Prior to JavaServer Faces specification, Roger worked on early web interfaces for User Mgmt. - now known as Identity Server, internal Electronic Commerce solution for JavaSoft technology 3

Seed and Harvest Agenda Where is JavaServer Faces techonology today? Current Version Status Real World Deployments Where is JavaServer Faces technology going? How we listened Discover requirements Prioritize S eewhat we heard d an Pain points d What's missing H ar Which JavaServer Faces technology extensions are ve st popular How are people using JavaServer Faces technology What we are doing about it Early Draft 1 Beyond Y 4

Where is JavaServer Faces Technology Today? Current Version Status Latest official specification version: JavaServer Faces 1.2 application Maintenance Release 1 Latest Implementations Sun Implementation (bundled in all JavaEE 5 containers): Mojarra 1.2_04 patch 3, in Glassfish Version 2 Update Release 1 Apache Implementation: MyFaces 1.2.2, not bundled in any container, but usable with Tomcat 6.0 or later Component libraries Trinidad Tobago 5

Real World Deployments It's no secret, JavaServer Faces Technology is everywhere Tool and Run-time adoption google: RealWorldJsfLinks Every App Server except Geronimo using Sun's JSF impl Every Java IDE provides deep support for authoring JSF apps 6

Seed and Harvest Agenda Where is JavaServer Faces technology today? Current Version Status Real World Deployments Where is JavaServer Faces technology going? How we listened Discover requirements Prioritize S What we heard ee Pain points d an What's missing d Which JavaServer Faces technology extensions are H ar ve st popular How are people using JavaServer Faces technology What we are doing about it Early Draft 1 Beyond Y 7

8

How we listened JavaServer Faces 1.0, 1.1 application: Plant the seed Lots of opinions! Fix or drop JavaServer Pages (JSP ) software Too complex JavaServer Faces 1.2 application: Mostly S planting, some harvesting ee d Incremental improvement an d Fixed JSP software H ar A little bit easier, but not much ve Still more opinions st Based on real world deployments Y 9

How we listened JavaServer Faces 2.0 application: Mostly harvesting, some seeding Many Developer tool vendors are building on JavaServer Faces technology IDE vendors Extension vendors UI Components, i.e. ICEFaces, RichFaces, S ee d an d H ar ve st Woodstock Automated testing, i.e. JavaServer Faces Unit Iterative Development aids, i.e. FacesTrace Run-time enhancements, i.e. Spring Web Flow, Seam Many real world deployments Y 10

How we listened Keep current on web development trends Rails, and all that it stands for Simplicity Focus: CRUD Convention over configuration Maximize flow state (Mihály Csíkszentmihályi) Rich Internet Applications S Ajax ee Interactivity d an Benefits of Scripting d Web apps that do Hnot suck But... ar ve st Y 11

How we listened JavaServer Faces components still lives mostly in this space 12

How we listened JavaServer Faces components still lives mostly in this space 13

We Hear You 14

What we heard Top Five Goals 1) 2) 3) 4) 5) Make custom components much easier to develop Ajax support Page description language (PDL) Reduce the configuration burden Provide for better compatibility between JavaServer Faces component libraries from different vendors Other important goals State management rewrite Scopes Bookmarkable URLs Extension prioritization Zero deployment time Better error reporting Tree traversal 15

What are we doing about it? 16

What are we doing about it? Top Five Goals 1) 2) 3) 4) 5) Make custom components much easier to develop Ajax support Page description language (PDL) Reduce the configuration burden Provide for better compatibility between JavaServer Faces component libraries from different vendors Other important goals State management rewrite Scopes Bookmarkable URLs Extension prioritization Zero deployment time Better error reporting Tree traversal 17

Make components easy to develop This... 18

Make components easy to develop Becomes this... 19

Make components easy to develop Or maybe this......if you want to get fancy. 20

EZComp Details Inspirations Facelets RAILS_ENV Shale-Tiger extensions API Facelets now core part of JavaServer Faces component Template based Renderers and events from JavaServer Faces component Templating RAILS_ENV: Add getprojectstage() to Application ProjectStage is an enum Development Production SystemTest UnitTest Allows us to specify what happens during different project stages 21

Demonstration 22

What are we doing about it? Top Five Goals 1) 2) 3) 4) 5) Make custom components much easier to develop Ajax support Page description language (PDL) Reduce the configuration burden Provide for better compatibility between JavaServer Faces component libraries from different vendors Other important goals State management rewrite Scopes Bookmarkable URLs Extension prioritization Zero deployment time Better error reporting Tree traversal 23

Ingredients of a JavaServer Faces Component +Ajax solution Resource Delivery Mechanism Partial Tree Traversal Partial Page Update Ajaxification Capability Ajax Enabled Components 24

Ingredients of a JavaServer Faces Component +Ajax solution Resource Delivery Mechanism Partial Tree Traversal Partial Page Update Ajaxification Capability Ajax Enabled Components In JSF 2.0 Spec In Component Library 25

Ingredients of a JavaServer Faces component +Ajax solution Resource Delivery Mechanism Delivers static resources to the user-agent in response to HTTP GET requests Includes support for localized, versioned resources and resource libraries 26

Ingredients of a JavaServer Faces component +Ajax solution Partial Tree Traversal 27

Ingredients of a JavaServer Faces Component +Ajax solution Partial Page Update 28

Ingredients of a JavaServer Faces Component +Ajax solution Ajaxification Capability A way to give ajax capability to existing JavaServer Faces components without writing any JavaScript language Common approaches include AjaxZone tag, enclose region to ajaxify AjaxSupport tag, nest inside of component to ajaxify 29

Ingredients of a JavaServer Faces Component +Ajax solution Ajax Enabled Components Such components always build on top of the previous ingredients Current offerings are tightly coupled to their specific implementation of the previous ingredients. By standardizing the foundations upon which these components build, we can guarantee interoperability between them. 30

Ajax Details Goals: Add common Ajax operations to the standard Fix the Ajax components from different libraries don't play together problem JavaScript Namespacing technology Registered top level namespace with OpenAjax Alliance faces property under top level namespace, Ajax property under faces property JavaScript API ajax.js House JavaScript language functions Runtime must guarantee delivery of file and namespacing requirements are met 31

Ajax Details Inspirations Weblets Shale Remoting jmaki API Add ResourceHandler to Application Modify FacesServlet to use ResourceHandler New renderer types javax.faces.resource.script javax.faces.resource.stylesheet javax.faces.resource.image ELResourceResolver @ResourceDependency annotation UIViewRoot.addComponentResource() method SystemEvent facility 32

Ajax Details JavaScript API Minimal function set (at least to start): Partial Submit Partial Rendering Utility functions: Collect/encode/return client JavaServer Faces component View State (to be used in POSTBACK or Ajax request) Given JavaServer Faces componentid or clientid, return client DOM Element corresponding to outermost markup for that component On the radar... Comet (aka reverse Ajax / Ajax push) Inspiration ICEFaces Dynamic Faces RichFaces/Ajax4JavaServer Faces AjaxFaces 33

Demonstration 34

What are we doing about it? Top Five Goals 1) 2) 3) 4) 5) Make custom components much easier to develop Ajax support Page description language (PDL) Reduce the configuration burden Provide for better compatibility between JavaServer Faces component libraries from different vendors Other important goals State management rewrite Scopes Bookmarkable URLs Extension prioritization Zero deployment time Better error reporting Tree traversal 35

View Scope In Java; Exposed as method on UIViewRoot public Map<String, Object> getviewmap(); In EL: Exposed via the implicit object viewscope In the faces-config: Exposed via a managed-bean-scope value of "view". Lifetime Begins lazily the first time it is accessed Ends when different UIViewRoot instance is installed via FacesContext.setViewRoot(); Managed Bean Implications Widened scope search for Scoped Attribute ELResolver (between request and session) Managed Bean ELResolver must consider additional view scope when storing/instantiating managed bean instances 36

component Scope In Java; Exposed as method on UIComponent public static Map<String, Object> getcurrentcomponent(); In EL: Exposed via the implicit object component Lifetime Like a this pointer, valid during tree traversal 37

Summary We researched We heard We are acting JavaServer Faces 2.0 application is in Java Platform, Enterprise Edition 6 (Java EE 6) It will work well with WebBeans It will work well with Portlet 2.0 Java EE 6 is targeted for end of CY 2008 Completed issues Resource loading Development lifecycle awareness In Progress EZComp Ajax 38

JSF 2.0: Insight and Opinion Ed Burns Roger Kitain TS-5979