SlideShare uma empresa Scribd logo
1 de 58
1

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Markup Changes Push
Technologies and Resource
Library Contracts
Edward Burns
@edburns
http://slideshare.net/edburns/
Consulting Member of Staff, Oracle
Markup Changes Push
Technologies and Resource
Library Contracts
Edward Burns
@edburns
http://slideshare.net/edburns/
Consulting Member of Staff, Oracle
My plan for your time investment
 HTML5: Why all the fuss?
 What we tried to do with HTML5 in JSF 2.2

 Non HTML5 Interlude: Resource Library Contracts
 Push Technologies: EventSource and WebSocket

4

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Speaker Qualifications – Ed Burns
And non-qualifications
 Involved with JSF since 2002
 Spec lead since 2003
– Most fun part of the job: cleanly integrating other people’s great ideas into

JSF (and hopefully improving on the in the process)
– Not an expert in applying JSF in practice

 Author of four books for McGraw-Hill

5

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Speaker Qualifications – Ed Burns
Gaming credentials
 Classic Game Fan
 Collection
– Atari 2600 VCS, Intellivision, NES, Sega Master System, TI-99/4A

 Had David Crane autograph my Pitfall! and Pitfall II manuals
 Ran into Warren Robinett at SFO airport

 Maintain fan site for TI-99/4A Game Tunnels of Doom

http://ridingthecrest.com/edburns/classic-gaming/tunnels/

6

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
The following is intended to outline our general product direction. It is intended
for information purposes only, and may not be incorporated into any contract.
It is not a commitment to deliver any material, code, or functionality, and should
not be relied upon in making purchasing decisions. The
development, release, and timing of any features or functionality described for
Oracle’s products remains at the sole discretion of Oracle.

7

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
HTML5
Why all the fuss?

More cute logos at
http://www.w3.org/html/logo/
8

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
HTML5
Why all the fuss?

PAST AND PRESENT
SERVER

9

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

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Classification
A Web App is a Distributed App
 Why?
– Multiple Computers
– Interconnections Between Them
– Shared State Among Them

 Today's production Web apps are extremely complex distributed

applications.

11

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Yeah, So What?

 Why does this classification matter?
– Because History Matters

 To understand the current state of web applications, we must go back

to the history of distributed applications, and of the Internet itself.

12

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
What Makes a Distributed App

 Finding the best allocation of processing tasks to processing nodes
– User Interface
– Domain Logic
– Application Logic
– Data Persistence
– Communication
– Reliability, Security

13

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
What Makes a Distributed App

 Finding the best allocation of processing tasks to processing nodes
– User Interface
– Domain Logic
– Application Logic
– Data Persistence
– Communication
– Reliability, Security

14

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

 The UI is the hardest part to get right
 The technology for building the UI is changing very rapidly, and will

continue to change for the forseeable future
 The technology for the other aspects of application development is less
volatile, more mature.
 The major software stack and device vendors are competing on the
basis of their UI technology, as the gateway to the rest of their stack

15

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

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
HTML5
What’s in a name?
 Remember all the fuss about Ajax in 2006?
– Asynchronous
– JavaScript
– And
– XMLHttpRequest

17

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
HTML5
What’s in a name?
 Remember all the fuss about Ajax in 2006?
– Asynchronous
– JavaScript
– And
– XMLHttpRequest

 Ajax is a programming technique, not a single technology

18

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
HTML4
What’s in a name?
 What do people mean when they say HTML4?
– IE6
– Not very high performance JavaScript
– Lots of browser tricks
– Use of native plugins is common

 HTML4 is seen as a single technology

19

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
HTML5
What’s in a name?
 What do people mean when they say HTML5?
– “Modern” browsers
– A gigantic collection of related technologies
 Canvas
 Markup
 Input controls
 Offline storage
 Web components
 EventSource
 Application Cache
 DOM
 WebSocket
 JavaScript
 JSON
 CSS3
20

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

 Geolocation
 XMLHttpRequest Level 2
HTML5
Is it really a big deal?
 The rise of Chrome and the end of polyfill
 Standards have finally won
– How good is your standards body?
 W3C, ECMA, IETF

– HTML5: Microsoft, Google, Apple, what about Mozilla?

 Aside:
– Is HTML5 a bloated specification?

– Is JavaEE a bloated specification?
– What is bloat? A indicator of how old something is.
– http://mir.aculo.us/2010/10/19/standards-bloat-and-html5/
21

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
HTML5
Is it really a big deal?
 The death of the browser plugin: April 2010

http://www.apple.com/hotnews/thoughts-on-flash/
 Where does the tension remain?
– Take advantage of the power in the client
– Minimize the complexity of distributing and maintaining the software

22

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
HTML5
Putting it in context
 HTML5 is a marketing term that describes a way of building the UI for a

distributed system.
– UI processing task resides entirely in the browser

23

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
HTML5
Putting it in context
 For JSF 2.2, HTML5 means just the markup piece
 For JavaEE7 it means WebSocket and JSON

24

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
JSF 2.2 HTML 5 Friendly
Markup

25

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
New to JSF?
This is only a small part of JSF
 It’s even just a small part of what’s new in JSF 2.2.
 If you’re new to JSF, start by looking at JSF 2.0.
 That’s the most recent big blockbuster release.

26

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
JCP is an open process

JSF is an Open
Standard
27

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
What we tried to do with HTML5 in JSF 2.2
Same thing we do with every other new thing that comes along
 Integrate the new thing while staying true to our core strengths.
 Two high level areas of integration
– DOCTYPE: html5 doctype is the default
– Markup changes
 “get your hands off my markup”
 Page developer vs. Web Developer

28

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
HTML5 Friendly Markup
DOCTYPE
 <facelets-processing> element

<faces-config-extension>
<facelets-processing>
<file-extension>.xhtml</file-extension>
<process-as>html5</process-as>
</facelets-processing>
</faces-config-extension>

29

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
HTML5 Friendly Markup
DOCTYPE

30

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
HTML5 Friendly Markup
Just Passing Through

Bullet Through Jack, 1964
© Dr Harold Edgerton
31

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
HTML5 Friendly Markup
The best part of Wicket comes to JSF
 This is a JSF page
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:myNS="http://xmlns.jcp.org/jsf”>
<form myNS:id="form">
<input name="textField" type="text" myNS:value="#{bean.text1}" />
<input type="submit" myNS:id="submitButton" value="submit" />
<p>submitted text: #{bean.text1}.</p>
</form>
</html>

32

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
HTML5 Friendly Markup
Let’s get back to basics
 JSF Views are written in a View Declaration Language (VDL).
 The standard Facelet VDL is an XML application with two kinds of

elements
– HTML Markup
– JSF Components

 HTML Markup is passed through straight to the browser
 JSF Components take some action on the server, during the lifecycle

33

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
HTML5 Friendly Markup
Let the elegance of HTML shine through
 Before JSF 2.2
– JSF tags hide complexity of underlying HTML+script+css+images
– JSF “Renderer”:
 encode: markup to browser
 decode: name=value from browser

<html>…
<my:colorPicker value=“#{colorBean.color2}” />
<my:calendar value=“#{calendarBean.date1}” />
</html>
 Context: Missing feature in browser? Write a JSF component.
34

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
HTML5 Friendly Markup
Let the elegance of HTML shine through
 With JSF 2.2
– Pure HTML+script+css+images in the JSF page
– JSF Renderer handles decode from browser
 Leverage the strength of the JSF lifecycle
 Leverage the expressiveness of HTML5

<html>…
<input type=“color” jsf:value=“#{colorBean.color2}”/>
<input type=“date” jsf:value=“#{calendarBean.date1}” />
</html>
 Context: New feature in browser? Use “pass through elements”
35

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
HTML5 Friendly Markup
Pass Through Attributes
 HTML5 users need data-* attributes (and other non-standard

attributes)
 Two styles
– nested attribute
– namespaced attribute

36

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
HTML5 Friendly Markup
Pass Through Attributes: nested attribute
<h:outputText value="Simple outputText">
<f:passThroughAttributes value="#{bean.passThroughAttrs}" />

</h:outputText>

 #{bean.passThroughAttrs} is assumed to be a map
 Each entry in the map is output as a name=“value” pair on the

enclosing element.

37

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
HTML5 Friendly Markup
Pass Through Attributes: nested attribute
<h:outputText value="Simple outputText">
<f:passThroughAttribute name=“data-required”
value=”true" />
</h:outputText>

 Attribute data-required=“true” rendered on markup of enclosing

component.

38

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
HTML5 Friendly Markup
Pass Through Attributes: namespaced attribute
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:pt="http://xmlns.jcp.org/jsf/passthrough">
<h:form>
<h:inputText id="email" value="#{personPage.selectedPerson.email}"

pt:type="email" pt:placeholder="Enter email">
</h:inputText>
</h:form>
</html>

39

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
HTML5 Friendly Markup
Pass Through Attributes: nested attribute
 Attributes type=“email” placeholder=“Enter email” rendered on markup

of enclosing component

40

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
HTML5 Friendly Markup
Let the elegance of HTML shine through
 DEMO

41

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Non-HTML5 Interlude
Resource Library Contracts

42

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Resource Library Contracts
Facelets Review

T e Facelets Gazet e
<ui:define name="headline">
Today's News
</ui:define>

_template.html
Sit

N avigat on
●

Events

●

D ocs

●

Forums

<ui:define name="story">
Facelets is now a part
of JSF 2.0...
</ui:define>

About Contact Sit M ap

43

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

template client
greeting.html
Resource Library Contracts
Facelets Review

T e Facelets Gazet e

Insertion points

Template File name

Sit

_template.html

N avigat on
●

Events

●

D ocs

●

Forums

About Contact Sit M ap

Resources
css classes, scripts, images

44

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Resource Library Contracts
A Contract is Born

contractA
• Declared Templates
• Declared Insertion Points
• Declared Resources

45

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Resource Library Contracts
Loading Conventions

<web-app-root>/contracts
contractA
contractB
• Declared Templates
• Declared Insertion Points
contractC
• Declared Templates
• Declared Resources
• Declared Insertion Points
• Declared Templates
• Declared Resources
• Declared Insertion Points
• Declared Resources

46

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Resource Library Contracts
Loading Conventions

<web-app-root>/contracts
contractA
contractB
• Declared Templates
• Declared Insertion Points
contractC
• Declared Templates
• Declared Resources
• Declared Insertion Points
• Declared Templates
• Declared Resources
• Declared Insertion Points
• Declared Resources

47

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

JAR files in WEB-INF/lib
contractD
contractE
• Declared Templates
• Declared Insertion Points
contractF
• Declared Templates
• Declared Resources
• Declared Insertion Points
• Declared Templates
• Declared Resources
• Declared Insertion Points
• Declared Resources
Resource Library Contracts
Loading Conventions

<web-app-root>/contracts
contractA

JAR files in WEB-INF/lib
contractD

contractB
• Declared Templates
• Declared Insertion Points
contractC
• Declared Templates
• Declared Resources
• Declared Insertion Points
• Declared Templates
• Declared Resources
• Declared Insertion Points
• Declared Resources

contractE
• Declared Templates
• Declared Insertion Points
contractF
• Declared Templates
• Declared Resources
• Declared Insertion Points
• Declared Templates
• Declared Resources
• Declared Insertion Points
• Declared Resources

Set of available contracts

48

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Resource Library Contracts
Loading Conventions

<web-app-root>/contracts

JAR files in WEB-INF/lib

contractA

contractD

contractB
• Declared Templates
• Declared Insertion Points
contractC
• Declared Templates
• Declared Resources
• Declared Insertion Points
• Declared Templates
• Declared Resources
• Declared Insertion Points
• Declared Resources

contractE
• Declared Templates
• Declared Insertion Points
contractF
• Declared Templates
• Declared Resources
• Declared Insertion Points
• Declared Templates
• Declared Resources
• Declared Insertion Points
• Declared Resources

Set of available contracts

Facelet 1

49

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

Facelet 2

Facelet 3
Resource Library Contracts
Loading Configuration

JAR files in WEB-INF/lib

<web-app-root>/contracts
contractA

contractD

contractB
• Declared Templates
• Declared Insertion Points
contractC
• Declared Templates
• Declared Resources
• Declared Insertion Points
• Declared Templates
• Declared Resources
• Declared Insertion Points
• Declared Resources

contractE
• Declared Templates
• Declared Insertion Points
contractF
• Declared Templates
• Declared Resources
• Declared Insertion Points
• Declared Templates
• Declared Resources
• Declared Insertion Points
• Declared Resources

Set of available contracts

faces-config.xml

Facelet 1

50

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

Facelet 2

Facelet 3
Resource Library Contracts
Loading Configuration

JAR files in WEB-INF/lib

<web-app-root>/contracts
contractA

contractD

contractB
• Declared Templates
• Declared Insertion Points
contractC
• Declared Templates
• Declared Resources
• Declared Insertion Points
• Declared Templates
• Declared Resources
• Declared Insertion Points
• Declared Resources

contractE
• Declared Templates
• Declared Insertion Points
contractF
• Declared Templates
• Declared Resources
• Declared Insertion Points
• Declared Templates
• Declared Resources
• Declared Insertion Points
• Declared Resources

Set of available contracts

faces-config.xml

Facelet 1
<f:view contracts="contractA">
...

51

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

Facelet 2

Facelet 3
HTML5 Push Technologies
EventSource and WebSocket

52

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
EventSource (aka SSE) vs. WebSocket
Keep in touch
 What’s the difference between SSE and WebSockets?
– WebSocket allows full duplex, SSE does not
– WebSocket has an IETF protocol in the middle, SSE does not
– Both interact with JavaScript via a W3C Standard API
– Both allow the server to update the client
– Both run over HTTP(s) proxy really well
– EventSource not supported on IE at all (there is a polyfill)

53

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
EventSource and JSF
Stock Ticker
 DEMO

54

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
WebSocket and JSF
CANVAS matrix
 DEMO

55

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

Ed Burns
@edburns

56

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
The preceding is intended to outline our general product direction. It is intended
for information purposes only, and may not be incorporated into any contract.
It is not a commitment to deliver any material, code, or functionality, and should
not be relied upon in making purchasing decisions. The development, release,
and timing of any features or functionality described for Oracle’s products
remains at the sole discretion of Oracle.

57

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

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

Mais conteúdo relacionado

Mais procurados

It's a jdk jungle out there - JDK 11 and OpenJDK 11
It's a jdk jungle out there - JDK 11 and OpenJDK 11It's a jdk jungle out there - JDK 11 and OpenJDK 11
It's a jdk jungle out there - JDK 11 and OpenJDK 11Wolfgang Weigend
 
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFacesJavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFacesMert Çalışkan
 
Java EE 6 Adoption in One of the World's Largest Online Financial Systems (fo...
Java EE 6 Adoption in One of the World's Largest Online Financial Systems (fo...Java EE 6 Adoption in One of the World's Largest Online Financial Systems (fo...
Java EE 6 Adoption in One of the World's Largest Online Financial Systems (fo...Hirofumi Iwasaki
 
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6Rakuten Group, Inc.
 
2015 JavaOne LAD JSF 2.3 & MVC 1.0
2015 JavaOne LAD JSF 2.3 & MVC 1.02015 JavaOne LAD JSF 2.3 & MVC 1.0
2015 JavaOne LAD JSF 2.3 & MVC 1.0mnriem
 
JSF 2.2 Status at DOAG 2011
JSF 2.2 Status at DOAG 2011JSF 2.2 Status at DOAG 2011
JSF 2.2 Status at DOAG 2011Edward Burns
 
MySQL Connector/J Feature Review and How to Upgrade from Connector/J 5.1
MySQL Connector/J Feature Review and How to Upgrade from Connector/J 5.1MySQL Connector/J Feature Review and How to Upgrade from Connector/J 5.1
MySQL Connector/J Feature Review and How to Upgrade from Connector/J 5.1Filipe Silva
 
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...Chris Muir
 
JavaFX 2 - A Java Developer's Guide (San Antonio JUG Version)
JavaFX 2 - A Java Developer's Guide (San Antonio JUG Version)JavaFX 2 - A Java Developer's Guide (San Antonio JUG Version)
JavaFX 2 - A Java Developer's Guide (San Antonio JUG Version)Stephen Chin
 
Jetspeed-2 Overview
Jetspeed-2 OverviewJetspeed-2 Overview
Jetspeed-2 Overviewbettlebrox
 
GlassFish BOF
GlassFish BOFGlassFish BOF
GlassFish BOFglassfish
 
JSR 236 Concurrency Utils for EE presentation for JavaOne 2013 (CON7948)
JSR 236 Concurrency Utils for EE presentation for JavaOne 2013 (CON7948)JSR 236 Concurrency Utils for EE presentation for JavaOne 2013 (CON7948)
JSR 236 Concurrency Utils for EE presentation for JavaOne 2013 (CON7948)Fred Rowe
 
JavaFX 2 Using the Spring Framework
JavaFX 2 Using the Spring FrameworkJavaFX 2 Using the Spring Framework
JavaFX 2 Using the Spring FrameworkStephen Chin
 
JDK 9 Java Platform Module System
JDK 9 Java Platform Module SystemJDK 9 Java Platform Module System
JDK 9 Java Platform Module SystemWolfgang Weigend
 
Case Study of Financial Web System Development and Operations with Oracle Web...
Case Study of Financial Web System Development and Operations with Oracle Web...Case Study of Financial Web System Development and Operations with Oracle Web...
Case Study of Financial Web System Development and Operations with Oracle Web...Hirofumi Iwasaki
 
Designing JEE Application Structure
Designing JEE Application StructureDesigning JEE Application Structure
Designing JEE Application Structureodedns
 
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan WielengaCoding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan WielengaJAXLondon_Conference
 

Mais procurados (20)

JDK versions and OpenJDK
JDK versions and OpenJDKJDK versions and OpenJDK
JDK versions and OpenJDK
 
It's a jdk jungle out there - JDK 11 and OpenJDK 11
It's a jdk jungle out there - JDK 11 and OpenJDK 11It's a jdk jungle out there - JDK 11 and OpenJDK 11
It's a jdk jungle out there - JDK 11 and OpenJDK 11
 
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFacesJavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
 
Java EE 6 Adoption in One of the World's Largest Online Financial Systems (fo...
Java EE 6 Adoption in One of the World's Largest Online Financial Systems (fo...Java EE 6 Adoption in One of the World's Largest Online Financial Systems (fo...
Java EE 6 Adoption in One of the World's Largest Online Financial Systems (fo...
 
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6
 
2015 JavaOne LAD JSF 2.3 & MVC 1.0
2015 JavaOne LAD JSF 2.3 & MVC 1.02015 JavaOne LAD JSF 2.3 & MVC 1.0
2015 JavaOne LAD JSF 2.3 & MVC 1.0
 
JSF 2.2 Status at DOAG 2011
JSF 2.2 Status at DOAG 2011JSF 2.2 Status at DOAG 2011
JSF 2.2 Status at DOAG 2011
 
JDK 10 Java Module System
JDK 10 Java Module SystemJDK 10 Java Module System
JDK 10 Java Module System
 
MySQL Connector/J Feature Review and How to Upgrade from Connector/J 5.1
MySQL Connector/J Feature Review and How to Upgrade from Connector/J 5.1MySQL Connector/J Feature Review and How to Upgrade from Connector/J 5.1
MySQL Connector/J Feature Review and How to Upgrade from Connector/J 5.1
 
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
 
JavaFX 2 - A Java Developer's Guide (San Antonio JUG Version)
JavaFX 2 - A Java Developer's Guide (San Antonio JUG Version)JavaFX 2 - A Java Developer's Guide (San Antonio JUG Version)
JavaFX 2 - A Java Developer's Guide (San Antonio JUG Version)
 
Jetspeed-2 Overview
Jetspeed-2 OverviewJetspeed-2 Overview
Jetspeed-2 Overview
 
GlassFish BOF
GlassFish BOFGlassFish BOF
GlassFish BOF
 
JSR 236 Concurrency Utils for EE presentation for JavaOne 2013 (CON7948)
JSR 236 Concurrency Utils for EE presentation for JavaOne 2013 (CON7948)JSR 236 Concurrency Utils for EE presentation for JavaOne 2013 (CON7948)
JSR 236 Concurrency Utils for EE presentation for JavaOne 2013 (CON7948)
 
JavaFX 2 Using the Spring Framework
JavaFX 2 Using the Spring FrameworkJavaFX 2 Using the Spring Framework
JavaFX 2 Using the Spring Framework
 
JDK 9 Java Platform Module System
JDK 9 Java Platform Module SystemJDK 9 Java Platform Module System
JDK 9 Java Platform Module System
 
Case Study of Financial Web System Development and Operations with Oracle Web...
Case Study of Financial Web System Development and Operations with Oracle Web...Case Study of Financial Web System Development and Operations with Oracle Web...
Case Study of Financial Web System Development and Operations with Oracle Web...
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
Designing JEE Application Structure
Designing JEE Application StructureDesigning JEE Application Structure
Designing JEE Application Structure
 
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan WielengaCoding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
 

Semelhante a Ed presents JSF 2.2 at a 2013 Gameduell Tech talk

Oracle Cloud Café hybrid Cloud 19 mai 2016
Oracle Cloud Café hybrid Cloud 19 mai 2016Oracle Cloud Café hybrid Cloud 19 mai 2016
Oracle Cloud Café hybrid Cloud 19 mai 2016Sorathaya Sirimanotham
 
Oracle Management Cloud - HybridCloud Café - May 2016
Oracle Management Cloud - HybridCloud Café - May 2016Oracle Management Cloud - HybridCloud Café - May 2016
Oracle Management Cloud - HybridCloud Café - May 2016Bastien Leblanc
 
10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScript10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScriptGeertjan Wielenga
 
Best Practices for Interoperable XML Databinding with JAXB
Best Practices for Interoperable XML Databinding with JAXBBest Practices for Interoperable XML Databinding with JAXB
Best Practices for Interoperable XML Databinding with JAXBMartin Grebac
 
Apache Flex and the imperfect Web
Apache Flex and the imperfect WebApache Flex and the imperfect Web
Apache Flex and the imperfect Webmasuland
 
GlassFish in Production Environments
GlassFish in Production EnvironmentsGlassFish in Production Environments
GlassFish in Production EnvironmentsBruno Borges
 
10 Tips for Java EE 7 with PrimeFaces - JavaOne 2013
10 Tips for Java EE 7 with PrimeFaces - JavaOne 201310 Tips for Java EE 7 with PrimeFaces - JavaOne 2013
10 Tips for Java EE 7 with PrimeFaces - JavaOne 2013Martin Fousek
 
Future of Oracle Forms AUSOUG 2013
Future of Oracle Forms AUSOUG 2013Future of Oracle Forms AUSOUG 2013
Future of Oracle Forms AUSOUG 2013Chris Muir
 
O Mundo Oracle e o Que Há de Novo no Java
O Mundo Oracle e o Que Há de Novo no JavaO Mundo Oracle e o Que Há de Novo no Java
O Mundo Oracle e o Que Há de Novo no JavaBruno Borges
 
The New Database Frontier: Harnessing the Cloud
The New Database Frontier: Harnessing the CloudThe New Database Frontier: Harnessing the Cloud
The New Database Frontier: Harnessing the CloudInside Analysis
 
Oracle Plug-in For Open ModelSphere
Oracle Plug-in For Open ModelSphereOracle Plug-in For Open ModelSphere
Oracle Plug-in For Open ModelSpheremodelspherepro
 
206590 mobilizing your primavera workforce
206590 mobilizing your primavera workforce206590 mobilizing your primavera workforce
206590 mobilizing your primavera workforcep6academy
 
JavaScript: Why Should I Care?
JavaScript: Why Should I Care?JavaScript: Why Should I Care?
JavaScript: Why Should I Care?Daniel McGhan
 
Presentation oracle exalogic elastic cloud
Presentation   oracle exalogic elastic cloudPresentation   oracle exalogic elastic cloud
Presentation oracle exalogic elastic cloudsolarisyougood
 
Foundation for optimized data center & private cloud
Foundation for optimized data center & private cloudFoundation for optimized data center & private cloud
Foundation for optimized data center & private cloudJS Park
 

Semelhante a Ed presents JSF 2.2 at a 2013 Gameduell Tech talk (20)

Oracle Cloud Café hybrid Cloud 19 mai 2016
Oracle Cloud Café hybrid Cloud 19 mai 2016Oracle Cloud Café hybrid Cloud 19 mai 2016
Oracle Cloud Café hybrid Cloud 19 mai 2016
 
Oracle Management Cloud - HybridCloud Café - May 2016
Oracle Management Cloud - HybridCloud Café - May 2016Oracle Management Cloud - HybridCloud Café - May 2016
Oracle Management Cloud - HybridCloud Café - May 2016
 
10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScript10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScript
 
Best Practices for Interoperable XML Databinding with JAXB
Best Practices for Interoperable XML Databinding with JAXBBest Practices for Interoperable XML Databinding with JAXB
Best Practices for Interoperable XML Databinding with JAXB
 
Apache Flex and the imperfect Web
Apache Flex and the imperfect WebApache Flex and the imperfect Web
Apache Flex and the imperfect Web
 
GlassFish in Production Environments
GlassFish in Production EnvironmentsGlassFish in Production Environments
GlassFish in Production Environments
 
10 Tips for Java EE 7 with PrimeFaces - JavaOne 2013
10 Tips for Java EE 7 with PrimeFaces - JavaOne 201310 Tips for Java EE 7 with PrimeFaces - JavaOne 2013
10 Tips for Java EE 7 with PrimeFaces - JavaOne 2013
 
Imworld.ro
Imworld.roImworld.ro
Imworld.ro
 
Session at Oredev 2016.
Session at Oredev 2016.Session at Oredev 2016.
Session at Oredev 2016.
 
Future of Oracle Forms AUSOUG 2013
Future of Oracle Forms AUSOUG 2013Future of Oracle Forms AUSOUG 2013
Future of Oracle Forms AUSOUG 2013
 
Slovenian Oracle User Group
Slovenian Oracle User GroupSlovenian Oracle User Group
Slovenian Oracle User Group
 
Oracle 360
Oracle 360Oracle 360
Oracle 360
 
O Mundo Oracle e o Que Há de Novo no Java
O Mundo Oracle e o Que Há de Novo no JavaO Mundo Oracle e o Que Há de Novo no Java
O Mundo Oracle e o Que Há de Novo no Java
 
Sewtz apex ui
Sewtz apex uiSewtz apex ui
Sewtz apex ui
 
The New Database Frontier: Harnessing the Cloud
The New Database Frontier: Harnessing the CloudThe New Database Frontier: Harnessing the Cloud
The New Database Frontier: Harnessing the Cloud
 
Oracle Plug-in For Open ModelSphere
Oracle Plug-in For Open ModelSphereOracle Plug-in For Open ModelSphere
Oracle Plug-in For Open ModelSphere
 
206590 mobilizing your primavera workforce
206590 mobilizing your primavera workforce206590 mobilizing your primavera workforce
206590 mobilizing your primavera workforce
 
JavaScript: Why Should I Care?
JavaScript: Why Should I Care?JavaScript: Why Should I Care?
JavaScript: Why Should I Care?
 
Presentation oracle exalogic elastic cloud
Presentation   oracle exalogic elastic cloudPresentation   oracle exalogic elastic cloud
Presentation oracle exalogic elastic cloud
 
Foundation for optimized data center & private cloud
Foundation for optimized data center & private cloudFoundation for optimized data center & private cloud
Foundation for optimized data center & private cloud
 

Mais de Edward Burns

Developer Career Masterplan
Developer Career MasterplanDeveloper Career Masterplan
Developer Career MasterplanEdward 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 advantageEdward Burns
 
Wie Azure Jakarta EE Nutzt
Wie Azure Jakarta EE NutztWie Azure Jakarta EE Nutzt
Wie Azure Jakarta EE NutztEdward 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 AzureEdward Burns
 
wls-azure-devnexus-2022.pdf
wls-azure-devnexus-2022.pdfwls-azure-devnexus-2022.pdf
wls-azure-devnexus-2022.pdfEdward 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 HauseEdward Burns
 
Java on Your Terms with Azure
Java on Your Terms with AzureJava on Your Terms with Azure
Java on Your Terms with AzureEdward 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 coveredEdward 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 CloudEdward Burns
 
Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015Edward 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 2015Edward Burns
 
JSF 2.3 Adopt-a-JSR 10 Minute Infodeck
JSF 2.3 Adopt-a-JSR 10 Minute InfodeckJSF 2.3 Adopt-a-JSR 10 Minute Infodeck
JSF 2.3 Adopt-a-JSR 10 Minute InfodeckEdward Burns
 
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute InfodeckServlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute InfodeckEdward Burns
 
JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?Edward Burns
 
CON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To YouCON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To YouEdward Burns
 

Mais de Edward Burns (20)

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
 
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
 
JSF 2.3 Adopt-a-JSR 10 Minute Infodeck
JSF 2.3 Adopt-a-JSR 10 Minute InfodeckJSF 2.3 Adopt-a-JSR 10 Minute Infodeck
JSF 2.3 Adopt-a-JSR 10 Minute Infodeck
 
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute InfodeckServlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck
 
JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?
 
CON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To YouCON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To You
 

Último

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 

Último (20)

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 

Ed presents JSF 2.2 at a 2013 Gameduell Tech talk

  • 1. 1 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 2. Markup Changes Push Technologies and Resource Library Contracts Edward Burns @edburns http://slideshare.net/edburns/ Consulting Member of Staff, Oracle
  • 3. Markup Changes Push Technologies and Resource Library Contracts Edward Burns @edburns http://slideshare.net/edburns/ Consulting Member of Staff, Oracle
  • 4. My plan for your time investment  HTML5: Why all the fuss?  What we tried to do with HTML5 in JSF 2.2  Non HTML5 Interlude: Resource Library Contracts  Push Technologies: EventSource and WebSocket 4 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 5. Speaker Qualifications – Ed Burns And non-qualifications  Involved with JSF since 2002  Spec lead since 2003 – Most fun part of the job: cleanly integrating other people’s great ideas into JSF (and hopefully improving on the in the process) – Not an expert in applying JSF in practice  Author of four books for McGraw-Hill 5 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 6. Speaker Qualifications – Ed Burns Gaming credentials  Classic Game Fan  Collection – Atari 2600 VCS, Intellivision, NES, Sega Master System, TI-99/4A  Had David Crane autograph my Pitfall! and Pitfall II manuals  Ran into Warren Robinett at SFO airport  Maintain fan site for TI-99/4A Game Tunnels of Doom http://ridingthecrest.com/edburns/classic-gaming/tunnels/ 6 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 7. The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 7 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 8. HTML5 Why all the fuss? More cute logos at http://www.w3.org/html/logo/ 8 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 9. HTML5 Why all the fuss? PAST AND PRESENT SERVER 9 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 10. 10 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 11. Classification A Web App is a Distributed App  Why? – Multiple Computers – Interconnections Between Them – Shared State Among Them  Today's production Web apps are extremely complex distributed applications. 11 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 12. Yeah, So What?  Why does this classification matter? – Because History Matters  To understand the current state of web applications, we must go back to the history of distributed applications, and of the Internet itself. 12 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 13. What Makes a Distributed App  Finding the best allocation of processing tasks to processing nodes – User Interface – Domain Logic – Application Logic – Data Persistence – Communication – Reliability, Security 13 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 14. What Makes a Distributed App  Finding the best allocation of processing tasks to processing nodes – User Interface – Domain Logic – Application Logic – Data Persistence – Communication – Reliability, Security 14 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 15. UI Considerations  The UI is the hardest part to get right  The technology for building the UI is changing very rapidly, and will continue to change for the forseeable future  The technology for the other aspects of application development is less volatile, more mature.  The major software stack and device vendors are competing on the basis of their UI technology, as the gateway to the rest of their stack 15 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 16. 16 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 17. HTML5 What’s in a name?  Remember all the fuss about Ajax in 2006? – Asynchronous – JavaScript – And – XMLHttpRequest 17 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 18. HTML5 What’s in a name?  Remember all the fuss about Ajax in 2006? – Asynchronous – JavaScript – And – XMLHttpRequest  Ajax is a programming technique, not a single technology 18 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 19. HTML4 What’s in a name?  What do people mean when they say HTML4? – IE6 – Not very high performance JavaScript – Lots of browser tricks – Use of native plugins is common  HTML4 is seen as a single technology 19 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 20. HTML5 What’s in a name?  What do people mean when they say HTML5? – “Modern” browsers – A gigantic collection of related technologies  Canvas  Markup  Input controls  Offline storage  Web components  EventSource  Application Cache  DOM  WebSocket  JavaScript  JSON  CSS3 20 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.  Geolocation  XMLHttpRequest Level 2
  • 21. HTML5 Is it really a big deal?  The rise of Chrome and the end of polyfill  Standards have finally won – How good is your standards body?  W3C, ECMA, IETF – HTML5: Microsoft, Google, Apple, what about Mozilla?  Aside: – Is HTML5 a bloated specification? – Is JavaEE a bloated specification? – What is bloat? A indicator of how old something is. – http://mir.aculo.us/2010/10/19/standards-bloat-and-html5/ 21 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 22. HTML5 Is it really a big deal?  The death of the browser plugin: April 2010 http://www.apple.com/hotnews/thoughts-on-flash/  Where does the tension remain? – Take advantage of the power in the client – Minimize the complexity of distributing and maintaining the software 22 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 23. HTML5 Putting it in context  HTML5 is a marketing term that describes a way of building the UI for a distributed system. – UI processing task resides entirely in the browser 23 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 24. HTML5 Putting it in context  For JSF 2.2, HTML5 means just the markup piece  For JavaEE7 it means WebSocket and JSON 24 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 25. JSF 2.2 HTML 5 Friendly Markup 25 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 26. New to JSF? This is only a small part of JSF  It’s even just a small part of what’s new in JSF 2.2.  If you’re new to JSF, start by looking at JSF 2.0.  That’s the most recent big blockbuster release. 26 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 27. JCP is an open process JSF is an Open Standard 27 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 28. What we tried to do with HTML5 in JSF 2.2 Same thing we do with every other new thing that comes along  Integrate the new thing while staying true to our core strengths.  Two high level areas of integration – DOCTYPE: html5 doctype is the default – Markup changes  “get your hands off my markup”  Page developer vs. Web Developer 28 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 29. HTML5 Friendly Markup DOCTYPE  <facelets-processing> element <faces-config-extension> <facelets-processing> <file-extension>.xhtml</file-extension> <process-as>html5</process-as> </facelets-processing> </faces-config-extension> 29 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 30. HTML5 Friendly Markup DOCTYPE 30 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 31. HTML5 Friendly Markup Just Passing Through Bullet Through Jack, 1964 © Dr Harold Edgerton 31 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 32. HTML5 Friendly Markup The best part of Wicket comes to JSF  This is a JSF page <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:myNS="http://xmlns.jcp.org/jsf”> <form myNS:id="form"> <input name="textField" type="text" myNS:value="#{bean.text1}" /> <input type="submit" myNS:id="submitButton" value="submit" /> <p>submitted text: #{bean.text1}.</p> </form> </html> 32 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 33. HTML5 Friendly Markup Let’s get back to basics  JSF Views are written in a View Declaration Language (VDL).  The standard Facelet VDL is an XML application with two kinds of elements – HTML Markup – JSF Components  HTML Markup is passed through straight to the browser  JSF Components take some action on the server, during the lifecycle 33 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 34. HTML5 Friendly Markup Let the elegance of HTML shine through  Before JSF 2.2 – JSF tags hide complexity of underlying HTML+script+css+images – JSF “Renderer”:  encode: markup to browser  decode: name=value from browser <html>… <my:colorPicker value=“#{colorBean.color2}” /> <my:calendar value=“#{calendarBean.date1}” /> </html>  Context: Missing feature in browser? Write a JSF component. 34 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 35. HTML5 Friendly Markup Let the elegance of HTML shine through  With JSF 2.2 – Pure HTML+script+css+images in the JSF page – JSF Renderer handles decode from browser  Leverage the strength of the JSF lifecycle  Leverage the expressiveness of HTML5 <html>… <input type=“color” jsf:value=“#{colorBean.color2}”/> <input type=“date” jsf:value=“#{calendarBean.date1}” /> </html>  Context: New feature in browser? Use “pass through elements” 35 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 36. HTML5 Friendly Markup Pass Through Attributes  HTML5 users need data-* attributes (and other non-standard attributes)  Two styles – nested attribute – namespaced attribute 36 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 37. HTML5 Friendly Markup Pass Through Attributes: nested attribute <h:outputText value="Simple outputText"> <f:passThroughAttributes value="#{bean.passThroughAttrs}" /> </h:outputText>  #{bean.passThroughAttrs} is assumed to be a map  Each entry in the map is output as a name=“value” pair on the enclosing element. 37 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 38. HTML5 Friendly Markup Pass Through Attributes: nested attribute <h:outputText value="Simple outputText"> <f:passThroughAttribute name=“data-required” value=”true" /> </h:outputText>  Attribute data-required=“true” rendered on markup of enclosing component. 38 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 39. HTML5 Friendly Markup Pass Through Attributes: namespaced attribute <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"> <h:form> <h:inputText id="email" value="#{personPage.selectedPerson.email}" pt:type="email" pt:placeholder="Enter email"> </h:inputText> </h:form> </html> 39 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 40. HTML5 Friendly Markup Pass Through Attributes: nested attribute  Attributes type=“email” placeholder=“Enter email” rendered on markup of enclosing component 40 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 41. HTML5 Friendly Markup Let the elegance of HTML shine through  DEMO 41 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 42. Non-HTML5 Interlude Resource Library Contracts 42 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 43. Resource Library Contracts Facelets Review T e Facelets Gazet e <ui:define name="headline"> Today's News </ui:define> _template.html Sit N avigat on ● Events ● D ocs ● Forums <ui:define name="story"> Facelets is now a part of JSF 2.0... </ui:define> About Contact Sit M ap 43 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. template client greeting.html
  • 44. Resource Library Contracts Facelets Review T e Facelets Gazet e Insertion points Template File name Sit _template.html N avigat on ● Events ● D ocs ● Forums About Contact Sit M ap Resources css classes, scripts, images 44 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 45. Resource Library Contracts A Contract is Born contractA • Declared Templates • Declared Insertion Points • Declared Resources 45 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 46. Resource Library Contracts Loading Conventions <web-app-root>/contracts contractA contractB • Declared Templates • Declared Insertion Points contractC • Declared Templates • Declared Resources • Declared Insertion Points • Declared Templates • Declared Resources • Declared Insertion Points • Declared Resources 46 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 47. Resource Library Contracts Loading Conventions <web-app-root>/contracts contractA contractB • Declared Templates • Declared Insertion Points contractC • Declared Templates • Declared Resources • Declared Insertion Points • Declared Templates • Declared Resources • Declared Insertion Points • Declared Resources 47 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. JAR files in WEB-INF/lib contractD contractE • Declared Templates • Declared Insertion Points contractF • Declared Templates • Declared Resources • Declared Insertion Points • Declared Templates • Declared Resources • Declared Insertion Points • Declared Resources
  • 48. Resource Library Contracts Loading Conventions <web-app-root>/contracts contractA JAR files in WEB-INF/lib contractD contractB • Declared Templates • Declared Insertion Points contractC • Declared Templates • Declared Resources • Declared Insertion Points • Declared Templates • Declared Resources • Declared Insertion Points • Declared Resources contractE • Declared Templates • Declared Insertion Points contractF • Declared Templates • Declared Resources • Declared Insertion Points • Declared Templates • Declared Resources • Declared Insertion Points • Declared Resources Set of available contracts 48 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 49. Resource Library Contracts Loading Conventions <web-app-root>/contracts JAR files in WEB-INF/lib contractA contractD contractB • Declared Templates • Declared Insertion Points contractC • Declared Templates • Declared Resources • Declared Insertion Points • Declared Templates • Declared Resources • Declared Insertion Points • Declared Resources contractE • Declared Templates • Declared Insertion Points contractF • Declared Templates • Declared Resources • Declared Insertion Points • Declared Templates • Declared Resources • Declared Insertion Points • Declared Resources Set of available contracts Facelet 1 49 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Facelet 2 Facelet 3
  • 50. Resource Library Contracts Loading Configuration JAR files in WEB-INF/lib <web-app-root>/contracts contractA contractD contractB • Declared Templates • Declared Insertion Points contractC • Declared Templates • Declared Resources • Declared Insertion Points • Declared Templates • Declared Resources • Declared Insertion Points • Declared Resources contractE • Declared Templates • Declared Insertion Points contractF • Declared Templates • Declared Resources • Declared Insertion Points • Declared Templates • Declared Resources • Declared Insertion Points • Declared Resources Set of available contracts faces-config.xml Facelet 1 50 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Facelet 2 Facelet 3
  • 51. Resource Library Contracts Loading Configuration JAR files in WEB-INF/lib <web-app-root>/contracts contractA contractD contractB • Declared Templates • Declared Insertion Points contractC • Declared Templates • Declared Resources • Declared Insertion Points • Declared Templates • Declared Resources • Declared Insertion Points • Declared Resources contractE • Declared Templates • Declared Insertion Points contractF • Declared Templates • Declared Resources • Declared Insertion Points • Declared Templates • Declared Resources • Declared Insertion Points • Declared Resources Set of available contracts faces-config.xml Facelet 1 <f:view contracts="contractA"> ... 51 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Facelet 2 Facelet 3
  • 52. HTML5 Push Technologies EventSource and WebSocket 52 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 53. EventSource (aka SSE) vs. WebSocket Keep in touch  What’s the difference between SSE and WebSockets? – WebSocket allows full duplex, SSE does not – WebSocket has an IETF protocol in the middle, SSE does not – Both interact with JavaScript via a W3C Standard API – Both allow the server to update the client – Both run over HTTP(s) proxy really well – EventSource not supported on IE at all (there is a polyfill) 53 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 54. EventSource and JSF Stock Ticker  DEMO 54 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 55. WebSocket and JSF CANVAS matrix  DEMO 55 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 56. Questions? Ed Burns @edburns 56 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 57. The preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 57 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 58. 58 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Notas do Editor

  1. You have to have a cute logo to promote your technology
  2. Nothing is ever so simple. In the real world we’re going to see all of the present technologies existing together along side new ones.
  3. But the UI is special, and I want to tell you why.
  4. Now we come back to HTML5.
  5. Now we come back to HTML5.
  6. Now we come back to HTML5.
  7. HTML5 is a programming technique, with lots of specific technologies behind it.
  8. So, yes, there is a lot of fuss, but is it worth it?
  9. There is the old Vendor Lock-in again.