SlideShare a Scribd company logo
<Insert Picture Here>
True Abstraction
JSF 2.0 Composite Components
Ed Burns <http://ridingthecrest.com>
JSF Technical Lead
Oracle America, Inc.
2
Presentation GoalsPresentation Goals
• ShareShare the vision forthe vision for
composite componentscomposite components
• ExposeExpose you to everythingyou to everything
you need to know toyou need to know to
master compositemaster composite
componentscomponents
• DemonstrateDemonstrate the creationthe creation
of a non-trivial compositeof a non-trivial composite
componentcomponent
3
Agenda: All About Composite Components
• Beginning
– JSF 1.0 Vision and Reality
– JSF 2.0 Vision
– DEMO: A taste of the future
• Middle
– Fundamentals
– Practice
– Small stuff (resource bundles, EL in resources, “this”)
• End
– How to Think About Composite Components
4
Speaker Qualifications: Ed Burns
– Consulting Staff Member at Oracle America, 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 and upcoming JSF2: 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
5
Beginning
6
JSF 1.x Vision for Components
Create a market for re-usable JSF
components, allowing developers to
easily create UI's for web applications by
combining off-the-shelf components from
multiple vendors using nice GUI tools.
UserUser
ComponentsComponents
OracleOracle
ComponentsComponents
SunSun
ComponentsComponents
7
JavaOne 2001 Technical Keynote
8
JSF 1.X Component Reality
• Good
– Very active and healthy component market
– Very good IDE support
• Bad
– Components not easy enough to build
– Component vendors had to invent stuff because the spec didn't
solve
• Ajax
• Resource Loading
• Library Ordering Precedence
9
JSF 2.0 Vision for Compnents
• This...
10
Make components easy to develop
• Becomes this...
11
Make components easy to develop
• Or maybe this...
… if you want to get fancy
• “Pay as you go” complexity
12
JSF 2.0 Component Vision
• multi-select components on a JSF
page
• press a “componentize” button
• you get a wizard that lets you choose
how to expose the content of this
component to the page author
• the component appears in a palette.
13
Demo: Simple Login Panel
14
Middle
15
Composite Component Fundamentals
1.Resource Libraries
2.Conventions
– XML Namespace
• Default namespace prefix + resource library name
– Component name
• XHTML filename in resource library
3.<cc:interface> <cc:implementation>
4.Top level component creation
5.Attached Objects
6.#{cc} implicit object
16
Fundamentals: Resource Libraries
• Completes the story for authoring
web components
– markup+css+script+images
– JSF 1.2 only had 25% of that story!
– All component artifacts bundled
together
• Allows the JSF lifecycle to serve
up static content
• Fully localized, versioned
• Dynamic
1. Web app root
2. Classpath
17
Fundamentals: Conventions
• Naming Convention
• Placement
Convention
18
Demo: Conventions
Ask the audience for names, show error messages, as cc is created in the demo
19
Fundamentals: <cc:interface> <cc:implementation>
• <cc:interface>
– Declares everything in the page author needs to know to use
this component. This is more formally known as the usage
contract.
• <cc:implementation>
– Defines the implementation of the contract declared in the
<cc:interface> section
• <cc:interface> can be empty (will be optional in
JSF2.next)
20
Fundamentals: Top Level Component
21
Fundamentals: Top Level Component
Rules for creating the Top-Level Component
1.See if the composite component declares a
componentType attribute on <cc:interface>
2.Look for a script based component with a file name that is the
same name (case sensitive) as the .xhtml file name
3.Look for a java class called <resourceLibName>.<fileName>
4.Create a component of component type
javax.faces.NamingContainer
22
Fundamentals: Attached Objects
23
Demo: Attached Objects
24
Fundamentals: #{cc} implicit object
25
Composite Components: Practice
26
Composite Components: Small stuff
• Resource Bundles in composite component library
• EL in resources
• Nested composite component
27
How do we enable this vision?
• Reduce the number of artifacts required
• Provide a way to bundle associated resources with the component
• Do it all dynamically, while the app is deployed
• Allow the composite component to be a real component
– attached objects
– children components
– facets
– ajax capable
• The “old way” still works.
28
the past, present, and future of the computer human
interface for network aware applications.
JSF 1.x
JSF 2.0
End
29
How to think about
Composite Components
• Building components should not be
scary or hard
• Make everything private and expose
only what the page author needs to
see
• Just do it!

More Related Content

What's hot

Java Server Pages
Java Server PagesJava Server Pages
Java Server Pages
Kasun Madusanke
 
Component Framework Primer for JSF Users
Component Framework Primer for JSF UsersComponent Framework Primer for JSF Users
Component Framework Primer for JSF Users
Andy Schwartz
 
Laravel introduction
Laravel introductionLaravel introduction
Laravel introduction
Simon Funk
 
JSF 2 and beyond: Keeping progress coming
JSF 2 and beyond: Keeping progress comingJSF 2 and beyond: Keeping progress coming
JSF 2 and beyond: Keeping progress coming
Andy Schwartz
 
Intro JavaScript
Intro JavaScriptIntro JavaScript
Intro JavaScript
koppenolski
 
Jsp element
Jsp elementJsp element
Jsp element
kamal kotecha
 
Introduction to Alfresco Surf Platform
Introduction to Alfresco Surf PlatformIntroduction to Alfresco Surf Platform
Introduction to Alfresco Surf Platform
Alfresco Software
 
Laravel Introduction
Laravel IntroductionLaravel Introduction
Laravel Introduction
Ahmad Shah Hafizan Hamidin
 
Zend Framework Quick Start Walkthrough
Zend Framework Quick Start WalkthroughZend Framework Quick Start Walkthrough
Zend Framework Quick Start Walkthrough
Bradley Holt
 
Laravel overview
Laravel overviewLaravel overview
Laravel overview
Obinna Akunne
 
Introduction To Code Igniter
Introduction To Code IgniterIntroduction To Code Igniter
Introduction To Code Igniter
Amzad Hossain
 
ColdFusion Fw1 (FrameWork1) introduction
ColdFusion Fw1 (FrameWork1) introductionColdFusion Fw1 (FrameWork1) introduction
ColdFusion Fw1 (FrameWork1) introduction
SaravanaMuthu Jayaraj
 
Laravel - The PHP Framework for Web Artisans
Laravel - The PHP Framework for Web ArtisansLaravel - The PHP Framework for Web Artisans
Laravel - The PHP Framework for Web Artisans
Windzoon Technologies
 
Jsp (java server page)
Jsp (java server page)Jsp (java server page)
Jsp (java server page)
Chitrank Dixit
 
Asp 1-mvc introduction
Asp 1-mvc introductionAsp 1-mvc introduction
Asp 1-mvc introduction
Fajar Baskoro
 
Jsp
JspJsp
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
SPTechCon
 
Sightly - AEM6 UI Development using JS and JAVA
Sightly - AEM6 UI Development using JS and JAVASightly - AEM6 UI Development using JS and JAVA
Sightly - AEM6 UI Development using JS and JAVA
Yash Mody
 
Custom module and theme development in Drupal7
Custom module and theme development in Drupal7Custom module and theme development in Drupal7
Custom module and theme development in Drupal7
marif4pk
 
Laravel ppt
Laravel pptLaravel ppt
Laravel ppt
Mayank Panchal
 

What's hot (20)

Java Server Pages
Java Server PagesJava Server Pages
Java Server Pages
 
Component Framework Primer for JSF Users
Component Framework Primer for JSF UsersComponent Framework Primer for JSF Users
Component Framework Primer for JSF Users
 
Laravel introduction
Laravel introductionLaravel introduction
Laravel introduction
 
JSF 2 and beyond: Keeping progress coming
JSF 2 and beyond: Keeping progress comingJSF 2 and beyond: Keeping progress coming
JSF 2 and beyond: Keeping progress coming
 
Intro JavaScript
Intro JavaScriptIntro JavaScript
Intro JavaScript
 
Jsp element
Jsp elementJsp element
Jsp element
 
Introduction to Alfresco Surf Platform
Introduction to Alfresco Surf PlatformIntroduction to Alfresco Surf Platform
Introduction to Alfresco Surf Platform
 
Laravel Introduction
Laravel IntroductionLaravel Introduction
Laravel Introduction
 
Zend Framework Quick Start Walkthrough
Zend Framework Quick Start WalkthroughZend Framework Quick Start Walkthrough
Zend Framework Quick Start Walkthrough
 
Laravel overview
Laravel overviewLaravel overview
Laravel overview
 
Introduction To Code Igniter
Introduction To Code IgniterIntroduction To Code Igniter
Introduction To Code Igniter
 
ColdFusion Fw1 (FrameWork1) introduction
ColdFusion Fw1 (FrameWork1) introductionColdFusion Fw1 (FrameWork1) introduction
ColdFusion Fw1 (FrameWork1) introduction
 
Laravel - The PHP Framework for Web Artisans
Laravel - The PHP Framework for Web ArtisansLaravel - The PHP Framework for Web Artisans
Laravel - The PHP Framework for Web Artisans
 
Jsp (java server page)
Jsp (java server page)Jsp (java server page)
Jsp (java server page)
 
Asp 1-mvc introduction
Asp 1-mvc introductionAsp 1-mvc introduction
Asp 1-mvc introduction
 
Jsp
JspJsp
Jsp
 
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
 
Sightly - AEM6 UI Development using JS and JAVA
Sightly - AEM6 UI Development using JS and JAVASightly - AEM6 UI Development using JS and JAVA
Sightly - AEM6 UI Development using JS and JAVA
 
Custom module and theme development in Drupal7
Custom module and theme development in Drupal7Custom module and theme development in Drupal7
Custom module and theme development in Drupal7
 
Laravel ppt
Laravel pptLaravel ppt
Laravel ppt
 

Viewers also liked

Tech tuesday april_2010__revised
Tech tuesday april_2010__revisedTech tuesday april_2010__revised
Tech tuesday april_2010__revised
Molly Immendorf
 
Organizing the Internet
Organizing the InternetOrganizing the Internet
Organizing the Internet
Molly Immendorf
 
Menneskets værktøj (opgave 1)
Menneskets værktøj (opgave 1)Menneskets værktøj (opgave 1)
Menneskets værktøj (opgave 1)
NAHansen
 
Kommunikation/IT
Kommunikation/ITKommunikation/IT
Kommunikation/ITNAHansen
 
What Makes U Tick08
What Makes U Tick08What Makes U Tick08
What Makes U Tick08
jimsunsu
 
Facebook Pages Tech Tuesday November 2010
Facebook Pages Tech Tuesday November 2010Facebook Pages Tech Tuesday November 2010
Facebook Pages Tech Tuesday November 2010
Molly Immendorf
 
Social Networking And Social Media June409
Social Networking And Social Media June409Social Networking And Social Media June409
Social Networking And Social Media June409
Molly Immendorf
 
Peddling Progress - 1999 UWEX Cooperative Extension Conference Keynote
Peddling Progress - 1999 UWEX Cooperative Extension Conference KeynotePeddling Progress - 1999 UWEX Cooperative Extension Conference Keynote
Peddling Progress - 1999 UWEX Cooperative Extension Conference Keynote
Molly Immendorf
 
Reaching new audiences ag conference jan2011
Reaching new audiences ag conference jan2011Reaching new audiences ag conference jan2011
Reaching new audiences ag conference jan2011
Molly Immendorf
 

Viewers also liked (9)

Tech tuesday april_2010__revised
Tech tuesday april_2010__revisedTech tuesday april_2010__revised
Tech tuesday april_2010__revised
 
Organizing the Internet
Organizing the InternetOrganizing the Internet
Organizing the Internet
 
Menneskets værktøj (opgave 1)
Menneskets værktøj (opgave 1)Menneskets værktøj (opgave 1)
Menneskets værktøj (opgave 1)
 
Kommunikation/IT
Kommunikation/ITKommunikation/IT
Kommunikation/IT
 
What Makes U Tick08
What Makes U Tick08What Makes U Tick08
What Makes U Tick08
 
Facebook Pages Tech Tuesday November 2010
Facebook Pages Tech Tuesday November 2010Facebook Pages Tech Tuesday November 2010
Facebook Pages Tech Tuesday November 2010
 
Social Networking And Social Media June409
Social Networking And Social Media June409Social Networking And Social Media June409
Social Networking And Social Media June409
 
Peddling Progress - 1999 UWEX Cooperative Extension Conference Keynote
Peddling Progress - 1999 UWEX Cooperative Extension Conference KeynotePeddling Progress - 1999 UWEX Cooperative Extension Conference Keynote
Peddling Progress - 1999 UWEX Cooperative Extension Conference Keynote
 
Reaching new audiences ag conference jan2011
Reaching new audiences ag conference jan2011Reaching new audiences ag conference jan2011
Reaching new audiences ag conference jan2011
 

Similar to jsf2-composite-components

RichFaces CDK: Rapid JSF Component Development
RichFaces CDK: Rapid JSF Component DevelopmentRichFaces CDK: Rapid JSF Component Development
RichFaces CDK: Rapid JSF Component Development
Lukáš Fryč
 
JSF2 Composite Components - Ian Hlavats
JSF2 Composite Components - Ian HlavatsJSF2 Composite Components - Ian Hlavats
JSF2 Composite Components - Ian Hlavats
jaxconf
 
Getting Started with React, When You’re an Angular Developer
Getting Started with React, When You’re an Angular DeveloperGetting Started with React, When You’re an Angular Developer
Getting Started with React, When You’re an Angular Developer
Fabrit Global
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics
Ulrich Krause
 
Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016
Marco Breveglieri
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the Basics
Ulrich Krause
 
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basics
Ulrich Krause
 
Adobe Flex - Developing Rich Internet Application Workshop Day 2
Adobe Flex - Developing Rich Internet Application Workshop Day 2Adobe Flex - Developing Rich Internet Application Workshop Day 2
Adobe Flex - Developing Rich Internet Application Workshop Day 2
Shyamala Prayaga
 
Reactjs
ReactjsReactjs
Fame
FameFame
Fame
rpatil82
 
Professionalizing the Front-end
Professionalizing the Front-endProfessionalizing the Front-end
Professionalizing the Front-end
Jordi Anguela
 
Lightning web components
Lightning web components Lightning web components
Lightning web components
Cloud Analogy
 
Introduction to React native
Introduction to React nativeIntroduction to React native
Introduction to React native
Dhaval Barot
 
Spring framework Introduction
Spring framework  IntroductionSpring framework  Introduction
Spring framework Introduction
Anuj Singh Rajput
 
Custom JSF components
Custom JSF componentsCustom JSF components
Custom JSF components
'Farouk' 'BEN GHARSSALLAH'
 
Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen
Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen
Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen
Getting value from IoT, Integration and Data Analytics
 
What are the components in React?
What are the components in React?What are the components in React?
What are the components in React?
BOSC Tech Labs
 
Extension Library - Viagra for XPages
Extension Library - Viagra for XPagesExtension Library - Viagra for XPages
Extension Library - Viagra for XPages
Ulrich Krause
 
J boss ide-tutorial
J boss ide-tutorialJ boss ide-tutorial
J boss ide-tutorial
UTN
 
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Lucas Jellema
 

Similar to jsf2-composite-components (20)

RichFaces CDK: Rapid JSF Component Development
RichFaces CDK: Rapid JSF Component DevelopmentRichFaces CDK: Rapid JSF Component Development
RichFaces CDK: Rapid JSF Component Development
 
JSF2 Composite Components - Ian Hlavats
JSF2 Composite Components - Ian HlavatsJSF2 Composite Components - Ian Hlavats
JSF2 Composite Components - Ian Hlavats
 
Getting Started with React, When You’re an Angular Developer
Getting Started with React, When You’re an Angular DeveloperGetting Started with React, When You’re an Angular Developer
Getting Started with React, When You’re an Angular Developer
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics
 
Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the Basics
 
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basics
 
Adobe Flex - Developing Rich Internet Application Workshop Day 2
Adobe Flex - Developing Rich Internet Application Workshop Day 2Adobe Flex - Developing Rich Internet Application Workshop Day 2
Adobe Flex - Developing Rich Internet Application Workshop Day 2
 
Reactjs
ReactjsReactjs
Reactjs
 
Fame
FameFame
Fame
 
Professionalizing the Front-end
Professionalizing the Front-endProfessionalizing the Front-end
Professionalizing the Front-end
 
Lightning web components
Lightning web components Lightning web components
Lightning web components
 
Introduction to React native
Introduction to React nativeIntroduction to React native
Introduction to React native
 
Spring framework Introduction
Spring framework  IntroductionSpring framework  Introduction
Spring framework Introduction
 
Custom JSF components
Custom JSF componentsCustom JSF components
Custom JSF components
 
Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen
Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen
Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen
 
What are the components in React?
What are the components in React?What are the components in React?
What are the components in React?
 
Extension Library - Viagra for XPages
Extension Library - Viagra for XPagesExtension Library - Viagra for XPages
Extension Library - Viagra for XPages
 
J boss ide-tutorial
J boss ide-tutorialJ boss ide-tutorial
J boss ide-tutorial
 
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
 

More from Edward Burns

DevTalks Romania: Prepare for Jakarta EE 11
DevTalks Romania: Prepare for Jakarta EE 11DevTalks Romania: Prepare for Jakarta EE 11
DevTalks Romania: Prepare for Jakarta EE 11
Edward Burns
 
Developer Career Masterplan
Developer Career MasterplanDeveloper Career Masterplan
Developer Career Masterplan
Edward Burns
 
Jakarta EE 11 Status Update​
Jakarta EE 11 Status Update​Jakarta EE 11 Status Update​
Jakarta EE 11 Status Update​
Edward Burns
 
Sponsored Session: Please touch that dial!
Sponsored Session: Please touch that dial!Sponsored Session: Please touch that dial!
Sponsored Session: Please touch that dial!
Edward Burns
 
How modernizing enterprise applications gives you a competitive advantage
How modernizing enterprise applications gives you a competitive advantageHow modernizing enterprise applications gives you a competitive advantage
How modernizing enterprise applications gives you a competitive advantage
Edward Burns
 
Wie Azure Jakarta EE Nutzt
Wie Azure Jakarta EE NutztWie Azure Jakarta EE Nutzt
Wie Azure Jakarta EE Nutzt
Edward Burns
 
Practical lessons from customers performing digital transformation with Azure
Practical lessons from customers performing digital transformation with AzurePractical lessons from customers performing digital transformation with Azure
Practical lessons from customers performing digital transformation with Azure
Edward Burns
 
wls-azure-devnexus-2022.pdf
wls-azure-devnexus-2022.pdfwls-azure-devnexus-2022.pdf
wls-azure-devnexus-2022.pdf
Edward Burns
 
Jakarta EE und Microprofile sind bei Azure zu Hause
Jakarta EE und Microprofile sind bei Azure zu HauseJakarta EE und Microprofile sind bei Azure zu Hause
Jakarta EE und Microprofile sind bei Azure zu Hause
Edward Burns
 
Java on Your Terms with Azure
Java on Your Terms with AzureJava on Your Terms with Azure
Java on Your Terms with Azure
Edward Burns
 
Wars I’ve Seen From Java EE to Spring and more, Azure has you covered
Wars I’ve SeenFrom Java EE to Spring and more, Azure has you coveredWars I’ve SeenFrom Java EE to Spring and more, Azure has you covered
Wars I’ve Seen From Java EE to Spring and more, Azure has you covered
Edward Burns
 
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
Edward Burns
 
Programming Language Platform Growth: Table Stakes or Deal Makes?
Programming Language Platform Growth: Table Stakes or Deal Makes?Programming Language Platform Growth: Table Stakes or Deal Makes?
Programming Language Platform Growth: Table Stakes or Deal Makes?
Edward Burns
 
Programming Language Platform Growth: Table Stakes or Deal Makes?
Programming Language Platform Growth: Table Stakes or Deal Makes?Programming Language Platform Growth: Table Stakes or Deal Makes?
Programming Language Platform Growth: Table Stakes or Deal Makes?
Edward Burns
 
Building a Serverless State Service for the Cloud
Building a Serverless State Service for the CloudBuilding a Serverless State Service for the Cloud
Building a Serverless State Service for the Cloud
Edward Burns
 
Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015
Edward Burns
 
Burns jsf-confess-2015
Burns jsf-confess-2015Burns jsf-confess-2015
Burns jsf-confess-2015
Edward Burns
 
JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015
Edward Burns
 
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Edward Burns
 
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
Edward Burns
 

More from Edward Burns (20)

DevTalks Romania: Prepare for Jakarta EE 11
DevTalks Romania: Prepare for Jakarta EE 11DevTalks Romania: Prepare for Jakarta EE 11
DevTalks Romania: Prepare for Jakarta EE 11
 
Developer Career Masterplan
Developer Career MasterplanDeveloper Career Masterplan
Developer Career Masterplan
 
Jakarta EE 11 Status Update​
Jakarta EE 11 Status Update​Jakarta EE 11 Status Update​
Jakarta EE 11 Status Update​
 
Sponsored Session: Please touch that dial!
Sponsored Session: Please touch that dial!Sponsored Session: Please touch that dial!
Sponsored Session: Please touch that dial!
 
How modernizing enterprise applications gives you a competitive advantage
How modernizing enterprise applications gives you a competitive advantageHow modernizing enterprise applications gives you a competitive advantage
How modernizing enterprise applications gives you a competitive advantage
 
Wie Azure Jakarta EE Nutzt
Wie Azure Jakarta EE NutztWie Azure Jakarta EE Nutzt
Wie Azure Jakarta EE Nutzt
 
Practical lessons from customers performing digital transformation with Azure
Practical lessons from customers performing digital transformation with AzurePractical lessons from customers performing digital transformation with Azure
Practical lessons from customers performing digital transformation with Azure
 
wls-azure-devnexus-2022.pdf
wls-azure-devnexus-2022.pdfwls-azure-devnexus-2022.pdf
wls-azure-devnexus-2022.pdf
 
Jakarta EE und Microprofile sind bei Azure zu Hause
Jakarta EE und Microprofile sind bei Azure zu HauseJakarta EE und Microprofile sind bei Azure zu Hause
Jakarta EE und Microprofile sind bei Azure zu Hause
 
Java on Your Terms with Azure
Java on Your Terms with AzureJava on Your Terms with Azure
Java on Your Terms with Azure
 
Wars I’ve Seen From Java EE to Spring and more, Azure has you covered
Wars I’ve SeenFrom Java EE to Spring and more, Azure has you coveredWars I’ve SeenFrom Java EE to Spring and more, Azure has you covered
Wars I’ve Seen From Java EE to Spring and more, Azure has you covered
 
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
 
Programming Language Platform Growth: Table Stakes or Deal Makes?
Programming Language Platform Growth: Table Stakes or Deal Makes?Programming Language Platform Growth: Table Stakes or Deal Makes?
Programming Language Platform Growth: Table Stakes or Deal Makes?
 
Programming Language Platform Growth: Table Stakes or Deal Makes?
Programming Language Platform Growth: Table Stakes or Deal Makes?Programming Language Platform Growth: Table Stakes or Deal Makes?
Programming Language Platform Growth: Table Stakes or Deal Makes?
 
Building a Serverless State Service for the Cloud
Building a Serverless State Service for the CloudBuilding a Serverless State Service for the Cloud
Building a Serverless State Service for the Cloud
 
Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015
 
Burns jsf-confess-2015
Burns jsf-confess-2015Burns jsf-confess-2015
Burns jsf-confess-2015
 
JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015
 
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015
 
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
 

Recently uploaded

HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 

Recently uploaded (20)

HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 

jsf2-composite-components

  • 1. <Insert Picture Here> True Abstraction JSF 2.0 Composite Components Ed Burns <http://ridingthecrest.com> JSF Technical Lead Oracle America, Inc.
  • 2. 2 Presentation GoalsPresentation Goals • ShareShare the vision forthe vision for composite componentscomposite components • ExposeExpose you to everythingyou to everything you need to know toyou need to know to master compositemaster composite componentscomponents • DemonstrateDemonstrate the creationthe creation of a non-trivial compositeof a non-trivial composite componentcomponent
  • 3. 3 Agenda: All About Composite Components • Beginning – JSF 1.0 Vision and Reality – JSF 2.0 Vision – DEMO: A taste of the future • Middle – Fundamentals – Practice – Small stuff (resource bundles, EL in resources, “this”) • End – How to Think About Composite Components
  • 4. 4 Speaker Qualifications: Ed Burns – Consulting Staff Member at Oracle America, 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 and upcoming JSF2: 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
  • 6. 6 JSF 1.x Vision for Components Create a market for re-usable JSF components, allowing developers to easily create UI's for web applications by combining off-the-shelf components from multiple vendors using nice GUI tools. UserUser ComponentsComponents OracleOracle ComponentsComponents SunSun ComponentsComponents
  • 8. 8 JSF 1.X Component Reality • Good – Very active and healthy component market – Very good IDE support • Bad – Components not easy enough to build – Component vendors had to invent stuff because the spec didn't solve • Ajax • Resource Loading • Library Ordering Precedence
  • 9. 9 JSF 2.0 Vision for Compnents • This...
  • 10. 10 Make components easy to develop • Becomes this...
  • 11. 11 Make components easy to develop • Or maybe this... … if you want to get fancy • “Pay as you go” complexity
  • 12. 12 JSF 2.0 Component Vision • multi-select components on a JSF page • press a “componentize” button • you get a wizard that lets you choose how to expose the content of this component to the page author • the component appears in a palette.
  • 15. 15 Composite Component Fundamentals 1.Resource Libraries 2.Conventions – XML Namespace • Default namespace prefix + resource library name – Component name • XHTML filename in resource library 3.<cc:interface> <cc:implementation> 4.Top level component creation 5.Attached Objects 6.#{cc} implicit object
  • 16. 16 Fundamentals: Resource Libraries • Completes the story for authoring web components – markup+css+script+images – JSF 1.2 only had 25% of that story! – All component artifacts bundled together • Allows the JSF lifecycle to serve up static content • Fully localized, versioned • Dynamic 1. Web app root 2. Classpath
  • 17. 17 Fundamentals: Conventions • Naming Convention • Placement Convention
  • 18. 18 Demo: Conventions Ask the audience for names, show error messages, as cc is created in the demo
  • 19. 19 Fundamentals: <cc:interface> <cc:implementation> • <cc:interface> – Declares everything in the page author needs to know to use this component. This is more formally known as the usage contract. • <cc:implementation> – Defines the implementation of the contract declared in the <cc:interface> section • <cc:interface> can be empty (will be optional in JSF2.next)
  • 21. 21 Fundamentals: Top Level Component Rules for creating the Top-Level Component 1.See if the composite component declares a componentType attribute on <cc:interface> 2.Look for a script based component with a file name that is the same name (case sensitive) as the .xhtml file name 3.Look for a java class called <resourceLibName>.<fileName> 4.Create a component of component type javax.faces.NamingContainer
  • 26. 26 Composite Components: Small stuff • Resource Bundles in composite component library • EL in resources • Nested composite component
  • 27. 27 How do we enable this vision? • Reduce the number of artifacts required • Provide a way to bundle associated resources with the component • Do it all dynamically, while the app is deployed • Allow the composite component to be a real component – attached objects – children components – facets – ajax capable • The “old way” still works.
  • 28. 28 the past, present, and future of the computer human interface for network aware applications. JSF 1.x JSF 2.0 End
  • 29. 29 How to think about Composite Components • Building components should not be scary or hard • Make everything private and expose only what the page author needs to see • Just do it!