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.

Oracle Developer Day

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

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

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

Contents. 1. JSF overview. 2. JSF example

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

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

Developing Applications with Java EE 6 on WebLogic Server 12c

Webservices In Java Tutorial For Beginners Using Netbeans Pdf

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

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

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

Contents at a Glance

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

Java EE 6 - Update Harpreet Singh GlassFish Portfolio Product Manager

IBM Rational Application Developer for WebSphere Software, Version 7.0

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

A Red Hat Perspective

Specialized - Mastering JEE 7 Web Application Development

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

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

Rails powered by GlassFish & jmaki

Best Practices for JSF Portlet Migration and Development

Building Web Applications With The Struts Framework

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

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

What is it? What does it do?

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

Mastering JavaServer Faces

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

Happy Birthday, Ajax4jsf! A Progress Report

Hands-on Development of Web Applications with Java EE 6

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

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

Equinox OSGi: Pervasive Componentization

Building JavaServer Faces Applications

Comparing Java Web Frameworks

Oracle Fusion Middleware 11g: Build Applications with ADF Accel

JSR-286: Portlet Specification 2.0

Distributed Multitiered Application

JSR-286: Portlet Specification 2.0

J2EE Interview Questions

Proposal for dynamic configuration

Introduction to Java Server Faces(JSF)

Courses For Event Java Advanced Summer Training 2018

Netbeans Platform For Beginners

JSF: Introduction, Installation, and Setup

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

Apache MyFaces CODI. Mark Struberg, INSO TU-Vienna

What s new in Spring Web Flow 2.0

Oracle Application Development Framework Overview

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

WSRP Web Services for Remote Portlets

Standards and the Portals Project

Petr Suchomel Architect, NetBeans Mobility

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

11-15 DECEMBER ANTWERP BELGIUM

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

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

ADVANCED JAVA COURSE CURRICULUM

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

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

DESIGN AND IMPLEMENTATION OF SAGE DISPLAY CONTROLLER PROJECT

AJAX in Apache MyFaces A New Approach To Web Applications

Nuxeo Roadmap. From Memphis to Chicago Nuxeo Team

Case Study: Dodging the Pitfalls of Enterprise Ajax Applications

Oracle WebCenter Interaction: Roadmap for BEA AquaLogic User Interaction. Ajay Gandhi Sr. Director of Product Management Enterprise 2.

IBM Rational Developer for System z Version 7.5

Composable Web Services Using Interoperable Technologies from Sun's "Project Tango"

1 Markus Eisele, Insurance - Strategic IT-Architecture

Layered UI and Adaptation Policies for Ubiquitous Web Applications

"Web Age Speaks!" Webinar Series

Oracle Developer Day

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

JSF. What is JSF (Java Server Faces)?

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

open source community experience distilled

Oracle WebCenter Suite Provides Web 2.0 Services for Enterprise Developers. An Oracle White Paper October 2006

Overview. Principal Product Manager Oracle JDeveloper & Oracle ADF

Enterprise Java in 2012 and Beyond From Java EE 6 To Cloud Computing

DOC // JAVA TOMCAT WEB SERVICES TUTORIAL EBOOK

Oracle Applications Unlimited and Web 2.0: You Can Have It Now!

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

Overview of BlackBerry Dynamics Platform

Enterprise JavaBeans. Layer:01. Overview

Tapestry. Code less, deliver more. Rayland Jeans

Developing Ajax Web Apps with GWT. Session I

<Insert Picture Here> Java Virtual Developer Day

Full Stack Java Developer Course

Java Training Center, Noida - Java Expert Program

Performance evaluation of J2EE

Migrating traditional Java EE applications to mobile

OpenESB Keh-Yoe Ong FAST (Field Assistance Support Team)

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

Transcription:

JSF 2.0: Insight and Opinion Ed Burns Senior Staff Engineer Sun Microsystems Slide 1

Overall Presentation Goal Inspire Confidence in Choosing JSF Share our vision for JSF 2.0 Demonstrate our progress E Slide 2

Speaker Qualifications A Senior Staff Engineer at Sun Microsystems, Inc. Since inception, co-leader of the team that develops the JavaServer Faces (JSF) 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 C Slide 3

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

Where is JSF Today? Current Version Status Latest official specification version: JSF 1.2 Maintenance Release 2 Latest Implementations Sun Implementation (bundled in all JavaEE 5 containers): Mojarra 1.2_09, 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 C Slide 5

Real World Deployments It's no secret, JSF 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 E Slide 6

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

Slide 8

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

How we listened JSF 2.0: Mostly harvesting, some seeding Many Developer tool vendors are building on JSF IDE vendors Extension vendors S ee d an d H ar ve st UI Components, i.e. ICEFaces, RichFaces, Woodstock Automated testing, i.e. JSFUnit Iterative Development aids, i.e. FacesTrace Run-time enhancements, i.e. Spring Web Flow, Seam Many real world deployments Y E Slide 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 Ajax Interactivity Benefits of Scripting Web apps that do not suck But... C Slide 11

How we listened JSF still lives mostly in this space E Slide 12

How we listened JSF still lives mostly in this space JavaFX Desktop E Slide 13

We Hear You Slide 14

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

What are we doing about it? Slide 16

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

Make components easy to develop This... E 19 Slide 18

Make components easy to develop Becomes this... E Slide 19

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

Make components easy to develop 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 C Slide 21

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

Demonstration E Slide 23

What is GlassFish? Open Source CDDL & GPL v2 (w/ CPE) Java EE 5 Reference Implementation Included in Java EE 5 SDK Enterprise Quality High Availability, Clustering.NET 3.0 Web services interoperability World Record Performance Community Sources, bug DBs, discussions at glassfish.java.net Roadmaps, Architecture Documents Slide 24

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

Ingredients of a JSF+Ajax solution Resource Delivery Mechanism Partial Tree Traversal Partial Page Update Ajaxification Capability Ajax Enabled Components R Slide 26

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

Ingredients of a JSF+Ajax solution Partial Tree Traversal R Slide 28

Ingredients of a JSF+Ajax solution Partial Page Update R Slide 29

Ingredients of a JSF+Ajax solution Ajaxification Capability A way to give ajax capability to existing JSF components without writing any JavaScript Common approaches include AjaxZone tag, enclose region to ajaxify AjaxSupport tag, nest inside of component to ajaxify R Slide 30

Ingredients of a JSF+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. C Slide 31

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

Ajax - Details JavaScript API Minimal function set (at least to start): Partial Submit Partial Rendering Utility functions: Collect/encode/return client JSF View State (to be used in POSTBACK or Ajax request) Given JSF 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/Ajax4JSF AjaxFaces Slide 33

Ajax - Details Inspirations Resource Loading jmaki Weblets Shale Remoting 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 ResourceELResolver @ResourceDependency annotation UIViewRoot.addComponentResource() method SystemEvent facility R Slide 34

Demonstration R Slide 35

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

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 C Slide 37

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 compositecomponent scope component scope for use in composite components E Slide 38

Summary We researched We heard We are acting JSF 2.0 is in Java EE 6 It will work well with WebBeans JSR 299 It will work well with Portlet 2.0 JSR 286 It will work well with Beans Validation JSR 303 It will work well with OSGi Java EE 6 is targeted for first half of CY 2009 Completed issues Resource loading Development lifecycle awareness In Progress C EZComp Slide 39

JSF 2.0: Insight and Opinion Ed Burns Slide 40