SlideShare una empresa de Scribd logo
1 de 23
JSF 2.0
The Java EE 6 standard




                         arkadi.shishlov@gmail.com
Who?

                     • JSF skeptic
                     • JSF want to be
Try JSF 2.x
                     • IS developer
later this
week...
Why?

• Well-known                    - EE6?

• Java EE 6 family technology
                                - Yes
                                - Go for it!


• Acceptance
• Productivity
• Knowledge investment
Technology

• EE stack(s) compatibility
• Correctness, best-practices
• Web 2.0
• Java EE 5 compatible servlet based runtime
Technology

• Component architecture
• Server-side
• IS oriented
• Develop in Java
JSF 1.x upgrade
                 finally!
•   No XML                 •   Bean validation

•   Convention over        •   System Events
    Configuration
                           •   Facelets
•   @Annotation driven
                           •   HTTP GET support
•   Standardized AJAX
                           •   Verbatim HTML
•   Simplified Composites
                           •   Redirect to view
•   New bean scopes
Component based
•   Widgets: buttons, tables,
    etc.

•   Component tree

•   API

•   HTML supplemented
    with JavaScript, CSS,
    resources
Server side
• Generates HTML or DOM update
• Full Java EE runtime
Page oriented
•   One .xhtml - one
    interface page - one
    component tree serving
    the request

•   Single page interface
    possible

•   Defines View
управляемый компонент

          Managed beans
•   Components mapped to
    managed beans - backing
    bean

•   Scoped (сфера
    действия)

•   Supports model

•   Implements controller
    and action handlers
Request lifecycle
Expression Language
•   ${bean.field.next} – Bean.getField() immediate R-value

•   #{bean.field.next.whatever.more} deferred R- and L-value,
    function

•   #{nested.objects.via.get.set.hashes.arrays[123].too}

•   ClassName → #{className.fieldWithAccessor}

•   arithmetics, conditionals
AJAX

• Partial submit
• Partial sub-tree traversal
• DOM updates
Integration

• Context Dependency Injection
• Weld and Spring
• EJB
• Seam v3 Framework (alpha/beta)
•   Converters            •   Portlet bridge

•   Validators            •   Error handling

•   Events                •   Security

•   Phase Listeners       •   Custom components

•   Behaviors             •   Composites

•   HTML/JavaScript/CSS   •   Human behavior
    integration

•   Resources

•   I18N

•   HTTP GET
Core


• Sun Mojarra - JSF 2.0 Reference
  Implementation (RI)
• Apache MyFaces
Products
•   PrimeFaces         •   Apache Trinidad

•   JBoss RichFaces    •   Apache Tomahawk

•   ICEFaces           •   Oracle Fusion
                           Middleware
•   OpenFaces


                       •   PrettyFaces

                       •   PrettyTime
JSF vs GWT
apples to oranges

                    server vs client
                    DTO
                    resources
                    xml against
                    layout code
Issues
•   Runtime bugs

•   MS IE

•   Render phase errors

•   (non-)Serializable beans

•   Which CDI?

•   Session loss
Tooling

• NetBeans 6.9.1, Tomcat, GlassFish
• Instant smart redeploy
• Continuos integration with NetBeans ANT
  scripts
1. Java EE 6 Tutorial
   http://download.oracle.com/javaee/6/tutorial/doc/bnadp.html

2. http://javaserverfaces.dev.java.net/

3. http://www.laliluna.de/articles/jsf-2-evaluation-test.html

4. http://andyschwartz.wordpress.com/2009/07/31/whats-new-in-jsf-2/

5. http://www.coreservlets.com/JSF-Tutorial/jsf2/

6. http://jsftutorials.net/

7. http://jsfcentral.com/

8. http://www.ibm.com/developerworks/java/library/j-jsf2fu1/

9. http://weblogs.java.net/blog/cayhorstmann/archive/2009/12/23/
   javaxfacesbeanmanagedbean-dead-arrival

10. http://dmakariev.blogspot.com/ (deltaset.org Maven archetype, GAE deploy)

11. http://docs.jboss.org/weld/reference/1.0.0/en-US/html_single
Demo
Q&A

Más contenido relacionado

La actualidad más candente

Basic method for Java EE Web Profile
Basic method for Java EE Web ProfileBasic method for Java EE Web Profile
Basic method for Java EE Web ProfileKenji HASUNUMA
 
Developing Java EE applications with NetBeans and Payara
Developing Java EE applications with NetBeans and PayaraDeveloping Java EE applications with NetBeans and Payara
Developing Java EE applications with NetBeans and PayaraPayara
 
JPA 2.1 on Payara Server
JPA 2.1 on Payara ServerJPA 2.1 on Payara Server
JPA 2.1 on Payara ServerPayara
 
Life of our small product
Life of our small productLife of our small product
Life of our small productKenji HASUNUMA
 
Java EE and Google App Engine
Java EE and Google App EngineJava EE and Google App Engine
Java EE and Google App EngineArun Gupta
 
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens  SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens Sencha
 
Java EE8 - by Kito Mann
Java EE8 - by Kito Mann Java EE8 - by Kito Mann
Java EE8 - by Kito Mann Kile Niklawski
 
10 tips to make your ASP.NET Apps Faster
10 tips to make your ASP.NET Apps Faster10 tips to make your ASP.NET Apps Faster
10 tips to make your ASP.NET Apps FasterBrij Mishra
 
Getting Started with ASP.NET 5
Getting Started with ASP.NET 5Getting Started with ASP.NET 5
Getting Started with ASP.NET 5Brij Mishra
 
Developing JavaEE 7 based apps with Payara Micro
Developing JavaEE 7 based apps with Payara MicroDeveloping JavaEE 7 based apps with Payara Micro
Developing JavaEE 7 based apps with Payara MicroPayara
 
Building rest services using aspnetwebapi
Building rest services using aspnetwebapiBuilding rest services using aspnetwebapi
Building rest services using aspnetwebapiBrij Mishra
 
опыт использования схемы Drupal+varnish+nginx руслан исай
опыт использования схемы Drupal+varnish+nginx руслан исайопыт использования схемы Drupal+varnish+nginx руслан исай
опыт использования схемы Drupal+varnish+nginx руслан исайdrupalconf
 
Alfresco Mvc - a seamless integration with Spring Mvc
Alfresco Mvc - a seamless integration with Spring MvcAlfresco Mvc - a seamless integration with Spring Mvc
Alfresco Mvc - a seamless integration with Spring MvcDaniel Gradecak
 
Intro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developersIntro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developersJohn Ferringer
 
ApacheCon North America - Introduction to FlexJS
ApacheCon North America - Introduction to FlexJSApacheCon North America - Introduction to FlexJS
ApacheCon North America - Introduction to FlexJSYishay Weiss
 
JavaEE Microservices -the Payara Way
JavaEE Microservices -the Payara WayJavaEE Microservices -the Payara Way
JavaEE Microservices -the Payara WayPayara
 
Web Application Frameworks (WAF)
Web Application Frameworks (WAF)Web Application Frameworks (WAF)
Web Application Frameworks (WAF)Ako Kaman
 
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...Sencha
 
Building Modern Web Applications with ASP.NET5
Building Modern Web Applications with ASP.NET5Building Modern Web Applications with ASP.NET5
Building Modern Web Applications with ASP.NET5Brij Mishra
 

La actualidad más candente (19)

Basic method for Java EE Web Profile
Basic method for Java EE Web ProfileBasic method for Java EE Web Profile
Basic method for Java EE Web Profile
 
Developing Java EE applications with NetBeans and Payara
Developing Java EE applications with NetBeans and PayaraDeveloping Java EE applications with NetBeans and Payara
Developing Java EE applications with NetBeans and Payara
 
JPA 2.1 on Payara Server
JPA 2.1 on Payara ServerJPA 2.1 on Payara Server
JPA 2.1 on Payara Server
 
Life of our small product
Life of our small productLife of our small product
Life of our small product
 
Java EE and Google App Engine
Java EE and Google App EngineJava EE and Google App Engine
Java EE and Google App Engine
 
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens  SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens
 
Java EE8 - by Kito Mann
Java EE8 - by Kito Mann Java EE8 - by Kito Mann
Java EE8 - by Kito Mann
 
10 tips to make your ASP.NET Apps Faster
10 tips to make your ASP.NET Apps Faster10 tips to make your ASP.NET Apps Faster
10 tips to make your ASP.NET Apps Faster
 
Getting Started with ASP.NET 5
Getting Started with ASP.NET 5Getting Started with ASP.NET 5
Getting Started with ASP.NET 5
 
Developing JavaEE 7 based apps with Payara Micro
Developing JavaEE 7 based apps with Payara MicroDeveloping JavaEE 7 based apps with Payara Micro
Developing JavaEE 7 based apps with Payara Micro
 
Building rest services using aspnetwebapi
Building rest services using aspnetwebapiBuilding rest services using aspnetwebapi
Building rest services using aspnetwebapi
 
опыт использования схемы Drupal+varnish+nginx руслан исай
опыт использования схемы Drupal+varnish+nginx руслан исайопыт использования схемы Drupal+varnish+nginx руслан исай
опыт использования схемы Drupal+varnish+nginx руслан исай
 
Alfresco Mvc - a seamless integration with Spring Mvc
Alfresco Mvc - a seamless integration with Spring MvcAlfresco Mvc - a seamless integration with Spring Mvc
Alfresco Mvc - a seamless integration with Spring Mvc
 
Intro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developersIntro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developers
 
ApacheCon North America - Introduction to FlexJS
ApacheCon North America - Introduction to FlexJSApacheCon North America - Introduction to FlexJS
ApacheCon North America - Introduction to FlexJS
 
JavaEE Microservices -the Payara Way
JavaEE Microservices -the Payara WayJavaEE Microservices -the Payara Way
JavaEE Microservices -the Payara Way
 
Web Application Frameworks (WAF)
Web Application Frameworks (WAF)Web Application Frameworks (WAF)
Web Application Frameworks (WAF)
 
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
 
Building Modern Web Applications with ASP.NET5
Building Modern Web Applications with ASP.NET5Building Modern Web Applications with ASP.NET5
Building Modern Web Applications with ASP.NET5
 

Destacado

Tesol 2015 featured presentation on Crossing Networks, Building Connections t...
Tesol 2015 featured presentation on Crossing Networks, Building Connections t...Tesol 2015 featured presentation on Crossing Networks, Building Connections t...
Tesol 2015 featured presentation on Crossing Networks, Building Connections t...Vance Stevens
 
Leveraging Social Media to Gain Market Shares in Services Marketing
Leveraging Social Media to Gain Market Shares in Services MarketingLeveraging Social Media to Gain Market Shares in Services Marketing
Leveraging Social Media to Gain Market Shares in Services MarketingSocial Samosa
 
Killing Zombie Software - Technology Exit Planning
Killing Zombie Software - Technology Exit PlanningKilling Zombie Software - Technology Exit Planning
Killing Zombie Software - Technology Exit PlanningEric Tachibana
 
Technology Integration for Successful Virtual Teams
Technology Integration for Successful Virtual TeamsTechnology Integration for Successful Virtual Teams
Technology Integration for Successful Virtual Teamselikelly
 
Jack D Ryger: Ultimate Driving Experiences
Jack D Ryger: Ultimate Driving ExperiencesJack D Ryger: Ultimate Driving Experiences
Jack D Ryger: Ultimate Driving ExperiencesJack D. Ryger
 
C.22 si et quedes amb mi
C.22 si et quedes amb miC.22 si et quedes amb mi
C.22 si et quedes amb miadriaaa9
 
LatJUG Feb-2011
LatJUG Feb-2011LatJUG Feb-2011
LatJUG Feb-2011denis Udod
 
LatJUG. Google App Engine
LatJUG. Google App EngineLatJUG. Google App Engine
LatJUG. Google App Enginedenis Udod
 

Destacado (19)

Tesol 2015 featured presentation on Crossing Networks, Building Connections t...
Tesol 2015 featured presentation on Crossing Networks, Building Connections t...Tesol 2015 featured presentation on Crossing Networks, Building Connections t...
Tesol 2015 featured presentation on Crossing Networks, Building Connections t...
 
Trains of brazil
Trains of brazilTrains of brazil
Trains of brazil
 
Acuerdo 015 de 2016
Acuerdo 015 de 2016Acuerdo 015 de 2016
Acuerdo 015 de 2016
 
Leveraging Social Media to Gain Market Shares in Services Marketing
Leveraging Social Media to Gain Market Shares in Services MarketingLeveraging Social Media to Gain Market Shares in Services Marketing
Leveraging Social Media to Gain Market Shares in Services Marketing
 
Killing Zombie Software - Technology Exit Planning
Killing Zombie Software - Technology Exit PlanningKilling Zombie Software - Technology Exit Planning
Killing Zombie Software - Technology Exit Planning
 
Hocbong 1872016
Hocbong 1872016Hocbong 1872016
Hocbong 1872016
 
Freebase Lightning Tech Talk
Freebase Lightning Tech TalkFreebase Lightning Tech Talk
Freebase Lightning Tech Talk
 
Hdfc morning note
Hdfc morning noteHdfc morning note
Hdfc morning note
 
Technology Integration for Successful Virtual Teams
Technology Integration for Successful Virtual TeamsTechnology Integration for Successful Virtual Teams
Technology Integration for Successful Virtual Teams
 
Economics assignment1
Economics  assignment1Economics  assignment1
Economics assignment1
 
Diana
DianaDiana
Diana
 
Jack D Ryger: Ultimate Driving Experiences
Jack D Ryger: Ultimate Driving ExperiencesJack D Ryger: Ultimate Driving Experiences
Jack D Ryger: Ultimate Driving Experiences
 
Tis kaigi lt
Tis kaigi ltTis kaigi lt
Tis kaigi lt
 
Livro1
Livro1Livro1
Livro1
 
C.22 si et quedes amb mi
C.22 si et quedes amb miC.22 si et quedes amb mi
C.22 si et quedes amb mi
 
LatJUG Feb-2011
LatJUG Feb-2011LatJUG Feb-2011
LatJUG Feb-2011
 
Elevator pitch
Elevator pitchElevator pitch
Elevator pitch
 
Bas Vodde - The story of LEsS
Bas Vodde - The story of LEsSBas Vodde - The story of LEsS
Bas Vodde - The story of LEsS
 
LatJUG. Google App Engine
LatJUG. Google App EngineLatJUG. Google App Engine
LatJUG. Google App Engine
 

Similar a LatJUG. JSF2.0 - The JavaEE6 Standard

Java EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseConJava EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseConLudovic Champenois
 
Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Arun Gupta
 
Overview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGOverview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGMarakana Inc.
 
Java ee 8 + security overview
Java ee 8 + security overviewJava ee 8 + security overview
Java ee 8 + security overviewRudy De Busscher
 
Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011Agora Group
 
Setting up a free open source java e-commerce website
Setting up a free open source java e-commerce websiteSetting up a free open source java e-commerce website
Setting up a free open source java e-commerce websiteCsaba Toth
 
What’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new StrategyWhat’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new StrategyMohamed Taman
 
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014Arun Gupta
 
Contextual Dependency Injection for Apachecon 2010
Contextual Dependency Injection for Apachecon 2010Contextual Dependency Injection for Apachecon 2010
Contextual Dependency Injection for Apachecon 2010Rohit Kelapure
 
JavaScript Build System Battle Royale | PrDC 2017
JavaScript Build System Battle Royale | PrDC 2017JavaScript Build System Battle Royale | PrDC 2017
JavaScript Build System Battle Royale | PrDC 2017David Wesst
 
WildFly AppServer - State of the Union
WildFly AppServer - State of the UnionWildFly AppServer - State of the Union
WildFly AppServer - State of the UnionDimitris Andreadis
 
Rich faces in_the_cloud_mini_booth
Rich faces in_the_cloud_mini_boothRich faces in_the_cloud_mini_booth
Rich faces in_the_cloud_mini_boothbalunasj
 
PLAT-7 Spring Web Scripts and Spring Surf
PLAT-7 Spring Web Scripts and Spring SurfPLAT-7 Spring Web Scripts and Spring Surf
PLAT-7 Spring Web Scripts and Spring SurfAlfresco Software
 
PLAT-7 Spring Web Scripts and Spring Surf
PLAT-7 Spring Web Scripts and Spring SurfPLAT-7 Spring Web Scripts and Spring Surf
PLAT-7 Spring Web Scripts and Spring SurfAlfresco Software
 
Groovy & Grails eXchange 2012 vert.x presentation
Groovy & Grails eXchange 2012 vert.x presentationGroovy & Grails eXchange 2012 vert.x presentation
Groovy & Grails eXchange 2012 vert.x presentationStuart (Pid) Williams
 

Similar a LatJUG. JSF2.0 - The JavaEE6 Standard (20)

Java EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseConJava EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseCon
 
JSF2
JSF2JSF2
JSF2
 
Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014
 
Overview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGOverview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUG
 
Java ee 8 + security overview
Java ee 8 + security overviewJava ee 8 + security overview
Java ee 8 + security overview
 
Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011Andrei Niculae - JavaEE6 - 24mai2011
Andrei Niculae - JavaEE6 - 24mai2011
 
Setting up a free open source java e-commerce website
Setting up a free open source java e-commerce websiteSetting up a free open source java e-commerce website
Setting up a free open source java e-commerce website
 
What’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new StrategyWhat’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new Strategy
 
JHipster
JHipsterJHipster
JHipster
 
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
 
Contextual Dependency Injection for Apachecon 2010
Contextual Dependency Injection for Apachecon 2010Contextual Dependency Injection for Apachecon 2010
Contextual Dependency Injection for Apachecon 2010
 
JavaScript Build System Battle Royale | PrDC 2017
JavaScript Build System Battle Royale | PrDC 2017JavaScript Build System Battle Royale | PrDC 2017
JavaScript Build System Battle Royale | PrDC 2017
 
WildFly AppServer - State of the Union
WildFly AppServer - State of the UnionWildFly AppServer - State of the Union
WildFly AppServer - State of the Union
 
Rich faces in_the_cloud_mini_booth
Rich faces in_the_cloud_mini_boothRich faces in_the_cloud_mini_booth
Rich faces in_the_cloud_mini_booth
 
Java
JavaJava
Java
 
PLAT-7 Spring Web Scripts and Spring Surf
PLAT-7 Spring Web Scripts and Spring SurfPLAT-7 Spring Web Scripts and Spring Surf
PLAT-7 Spring Web Scripts and Spring Surf
 
PLAT-7 Spring Web Scripts and Spring Surf
PLAT-7 Spring Web Scripts and Spring SurfPLAT-7 Spring Web Scripts and Spring Surf
PLAT-7 Spring Web Scripts and Spring Surf
 
01 java intro
01 java intro01 java intro
01 java intro
 
Be faster then rabbits
Be faster then rabbitsBe faster then rabbits
Be faster then rabbits
 
Groovy & Grails eXchange 2012 vert.x presentation
Groovy & Grails eXchange 2012 vert.x presentationGroovy & Grails eXchange 2012 vert.x presentation
Groovy & Grails eXchange 2012 vert.x presentation
 

Más de denis Udod

JUG.LV What do you know about Logging?
JUG.LV What do you know about Logging?JUG.LV What do you know about Logging?
JUG.LV What do you know about Logging?denis Udod
 
Java. Exceptions - how to cook, how to eat.
Java. Exceptions - how to cook, how to eat.Java. Exceptions - how to cook, how to eat.
Java. Exceptions - how to cook, how to eat.denis Udod
 
LatJUG. Complete Idiots Guide2Android
LatJUG. Complete Idiots Guide2AndroidLatJUG. Complete Idiots Guide2Android
LatJUG. Complete Idiots Guide2Androiddenis Udod
 
LatJUG. Spring Roo
LatJUG. Spring RooLatJUG. Spring Roo
LatJUG. Spring Roodenis Udod
 
LatJUG.Jun-2011
LatJUG.Jun-2011LatJUG.Jun-2011
LatJUG.Jun-2011denis Udod
 
LatJUG. Mar-2011
LatJUG. Mar-2011LatJUG. Mar-2011
LatJUG. Mar-2011denis Udod
 
LatJUG. Java Bytecode Fundamentals
LatJUG. Java Bytecode FundamentalsLatJUG. Java Bytecode Fundamentals
LatJUG. Java Bytecode Fundamentalsdenis Udod
 
LatJUG. JPA2 Done Right
LatJUG. JPA2 Done RightLatJUG. JPA2 Done Right
LatJUG. JPA2 Done Rightdenis Udod
 
Agile latvia evening_unit_testing_in_practice
Agile latvia evening_unit_testing_in_practiceAgile latvia evening_unit_testing_in_practice
Agile latvia evening_unit_testing_in_practicedenis Udod
 

Más de denis Udod (9)

JUG.LV What do you know about Logging?
JUG.LV What do you know about Logging?JUG.LV What do you know about Logging?
JUG.LV What do you know about Logging?
 
Java. Exceptions - how to cook, how to eat.
Java. Exceptions - how to cook, how to eat.Java. Exceptions - how to cook, how to eat.
Java. Exceptions - how to cook, how to eat.
 
LatJUG. Complete Idiots Guide2Android
LatJUG. Complete Idiots Guide2AndroidLatJUG. Complete Idiots Guide2Android
LatJUG. Complete Idiots Guide2Android
 
LatJUG. Spring Roo
LatJUG. Spring RooLatJUG. Spring Roo
LatJUG. Spring Roo
 
LatJUG.Jun-2011
LatJUG.Jun-2011LatJUG.Jun-2011
LatJUG.Jun-2011
 
LatJUG. Mar-2011
LatJUG. Mar-2011LatJUG. Mar-2011
LatJUG. Mar-2011
 
LatJUG. Java Bytecode Fundamentals
LatJUG. Java Bytecode FundamentalsLatJUG. Java Bytecode Fundamentals
LatJUG. Java Bytecode Fundamentals
 
LatJUG. JPA2 Done Right
LatJUG. JPA2 Done RightLatJUG. JPA2 Done Right
LatJUG. JPA2 Done Right
 
Agile latvia evening_unit_testing_in_practice
Agile latvia evening_unit_testing_in_practiceAgile latvia evening_unit_testing_in_practice
Agile latvia evening_unit_testing_in_practice
 

Último

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 

Último (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 

LatJUG. JSF2.0 - The JavaEE6 Standard

  • 1. JSF 2.0 The Java EE 6 standard arkadi.shishlov@gmail.com
  • 2. Who? • JSF skeptic • JSF want to be Try JSF 2.x • IS developer later this week...
  • 3. Why? • Well-known - EE6? • Java EE 6 family technology - Yes - Go for it! • Acceptance • Productivity • Knowledge investment
  • 4. Technology • EE stack(s) compatibility • Correctness, best-practices • Web 2.0 • Java EE 5 compatible servlet based runtime
  • 5. Technology • Component architecture • Server-side • IS oriented • Develop in Java
  • 6. JSF 1.x upgrade finally! • No XML • Bean validation • Convention over • System Events Configuration • Facelets • @Annotation driven • HTTP GET support • Standardized AJAX • Verbatim HTML • Simplified Composites • Redirect to view • New bean scopes
  • 7. Component based • Widgets: buttons, tables, etc. • Component tree • API • HTML supplemented with JavaScript, CSS, resources
  • 8. Server side • Generates HTML or DOM update • Full Java EE runtime
  • 9. Page oriented • One .xhtml - one interface page - one component tree serving the request • Single page interface possible • Defines View
  • 10. управляемый компонент Managed beans • Components mapped to managed beans - backing bean • Scoped (сфера действия) • Supports model • Implements controller and action handlers
  • 12. Expression Language • ${bean.field.next} – Bean.getField() immediate R-value • #{bean.field.next.whatever.more} deferred R- and L-value, function • #{nested.objects.via.get.set.hashes.arrays[123].too} • ClassName → #{className.fieldWithAccessor} • arithmetics, conditionals
  • 13. AJAX • Partial submit • Partial sub-tree traversal • DOM updates
  • 14. Integration • Context Dependency Injection • Weld and Spring • EJB • Seam v3 Framework (alpha/beta)
  • 15. Converters • Portlet bridge • Validators • Error handling • Events • Security • Phase Listeners • Custom components • Behaviors • Composites • HTML/JavaScript/CSS • Human behavior integration • Resources • I18N • HTTP GET
  • 16. Core • Sun Mojarra - JSF 2.0 Reference Implementation (RI) • Apache MyFaces
  • 17. Products • PrimeFaces • Apache Trinidad • JBoss RichFaces • Apache Tomahawk • ICEFaces • Oracle Fusion Middleware • OpenFaces • PrettyFaces • PrettyTime
  • 18. JSF vs GWT apples to oranges server vs client DTO resources xml against layout code
  • 19. Issues • Runtime bugs • MS IE • Render phase errors • (non-)Serializable beans • Which CDI? • Session loss
  • 20. Tooling • NetBeans 6.9.1, Tomcat, GlassFish • Instant smart redeploy • Continuos integration with NetBeans ANT scripts
  • 21. 1. Java EE 6 Tutorial http://download.oracle.com/javaee/6/tutorial/doc/bnadp.html 2. http://javaserverfaces.dev.java.net/ 3. http://www.laliluna.de/articles/jsf-2-evaluation-test.html 4. http://andyschwartz.wordpress.com/2009/07/31/whats-new-in-jsf-2/ 5. http://www.coreservlets.com/JSF-Tutorial/jsf2/ 6. http://jsftutorials.net/ 7. http://jsfcentral.com/ 8. http://www.ibm.com/developerworks/java/library/j-jsf2fu1/ 9. http://weblogs.java.net/blog/cayhorstmann/archive/2009/12/23/ javaxfacesbeanmanagedbean-dead-arrival 10. http://dmakariev.blogspot.com/ (deltaset.org Maven archetype, GAE deploy) 11. http://docs.jboss.org/weld/reference/1.0.0/en-US/html_single
  • 22. Demo
  • 23. Q&A

Notas del editor

  1. у нас есть 50 минут\nкратко расскажу о JSF v2\nкратко, потому что тема очень обширная\n
  2. я пришел сюда не только себя показать и на других посмотреть но и поделится технологическим открытием которое я сделал для себя\nи донести до вас некоторый энтузиазм с этим связанный \nнадеюсь что после презентации вы запишите в перерыве в блокнот: надо попробовать\nитак, для кого эта презентация:\n1. скептик обжегшийся на 1.x или считающий, что технология слишком сложна\nда, сравнительно сложна, но и успешно решает поставленные перед ней задачи\n2. подражатель желающий начать использовать, но по какой-то причине стоящий в стороне: время, ...\n3. разрабочик бизнес ИС\n\n
  3. распространненый и используемый фреймворк\nсемейство ЕЕ6\nкорпоративный стандарт и приемственность - разговор с it менеджером/decision maker-ом\nпродуктивность в создании бизнес приложений, в чем-то субьективное но в сравнении многии со мной согласяться\nзащищеность вложений времени и экспертизы\n
  4. совместимость с ЕЕ стандартом и Спринг\nкорректность, в качестве уже решенных проблем (например cross-site scripting ) и применяемой идеологии построения приложения\nподдерживает АЯКС, Пуш и т.д.\nможет работать в Servlet 2.5 контейнере\n
  5. компонентая архитектура - виджеты и т.д., например в 2.0 - композиты, fusion middleware - taskflow\nсерверный - в противоположность ГВТ - клиентский, рассмотрим позже\nбольше подходит для информационных бизнес систем\n
  6. -5min\nикс-эм-эл упразднен для основных и наиболее часто встречаемых задач: навигация и определение бинов, остается как сетап *параметров* фреймворка, но можно продолжать использовать\nконфигурация по умолчанию, не-меджик, по типу РоР\nпостроен на модных аннотациях\nвзаимодействие с АЯКС-ом определено и оптимизировано, исключает построение *на костылях* и фатальную несовместимость библиотек компонентов\nупрощено создание композитных компонентов до одного xhtml-а\nновые сферы действия бинов: view, flash, custom; но за рамками JSR-314 остались conversation (seam), window (icefaces), process (fusion)\nопционально может использовать bean validation framework (hibernate validator) для проверки модели, но есть грабли с поисковыми формами\nдополнение к листенерем фаз запроса появились системные события жизненого цикла приложения и события конкретных виджетов/компонентов которые также всплывают до уровня апликации <f:event>\nfacelets как движок темплейтов\nобработка GET запросов с отображением параметров на модель и создание букмарков\n
  7. -8min\nкомпоненты по типу Свинга, композиты\nпохоже на иерархию ХТМЛ но это не ЖСП, а живое дерево компонентов обрабатывающее входящий запрос и генерирующее ХТМЛ\nкомпонент реализует АПИ\n\n
  8. как уже сказал, генерируем презентацию на сервере\nдоступны все возможности Java и серверного окружения\nнет проблем с DTO, например\n
  9. презентационный уровень начинается с xhtml файла с описанием дерева компонентов\nотображает модель, как именно - через EL, который рассмотрим позже\nмодель - это граф java pojo обьектов/managed бинов\nуправляемый компонент реагирует через action listener-ы и может менять модель (action listener) и/или вызвать навигацию (action)\n\n
  10. отступление: почему на английском - терминология к которой мы привыкли\nно чтобы не ломать язык я сделал перевод\nвообще, есть статистически достоверно зафиксированное исследование, что люди плохо воспринимают если читать им дословно со слайдов\nу нас преймущество - разные языки\nитак, визуальные компоненты отображаются на управляемые компоненты и модель которую они содержат (включают)\nсферы: application, session, view, request, flash, custom (conversation, window, process)\nуправляемый компонент реагирует через action listener-ы и может менять модель (action listener) и/или вызвать навигацию (action)\n\n
  11. \n
  12. связку между визульной частью и упрявляемыми обьектами осуществляет expression language UEL\nсуществут за рамками JSF, в JSP\n\n
  13. AJAX реализован как то, что только часть значений идет на сервер асинхронно и обрабатывается частью дерева компонентов\nс сервера приходят измениния визуального состояния под-деревьев компонентов\nэти два дерева могут совпадать, а могут и нет\nмогут быть больше 1 под-дерева, обычно это несколько компонентов\nкнопка+поля->список\nтребутся явное указание что поменяеться для скорости, чтобы не опрашивать всю модель\nисключение - icefaces\n
  14. в основе управляемых обьектов лежит CDI, взаимодействует с EE6 CDI (Weld)\nвзаимодействует с Spring-овым CDI так и его эмуляцией для не-ЕЕ серверов\nможно использовать EJB, в том числе как backing bean @Named\nвкусности припасены в Seam v3 - conversation scope\n
  15. \n
  16. -23min\n
  17. \n
  18. -26min\nделаю проект на ГВТ\n1:1\n\n
  19. JSR 314 - JSF 2.0\nJSR 316 - EE6 @javax.annotation.ManagedBean, no EL, no scope\nJSR 299 - EE6 CDI, Weld\nJSR 330 - JavaSE DI\nSpring Framework, also supports JSR 330, 316, proprietary scopes\nJSR 250 - Common Annotations for the Java Platform\n
  20. -31min\n
  21. \n
  22. 41min\n
  23. \n