SlideShare a Scribd company logo
1 of 21
Download to read offline
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Building Java Applications with JavaFX 8 and Java EE 7 [CON2150] 
Being a smart Java developer on both client and server-side 
Bruno Borges 
Principal Product Manager – Java Evangelist 
Oracle Latin America 
September, 2014
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Safe Harbor Statement 
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.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Speaker 
•Bruno Borges 
–Principal Product Manager, Java Evangelist 
–Oracle Latin America 
–@brunoborges 
–bruno.borges@oracle.com
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Program Agenda 
JavaFX Desktop Applications Today 
Exposing Server-side Data with Java EE 7 
Java EE 7 APIs for Client-side 
Putting all together 
Summary 
1 
2 
3 
4 
5
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
JavaFX Desktop Applications
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Usual Desktop Architecture 
Source: Wikipedia
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
JavaFX Frameworks 
OpenDolphin
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Java EE 7 
Not just for Web Development
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
10 
Java EE 7 APIs 
JAX-RS 2.0 
JSON-P 1.0 
Web Socket 1.0 
Servlet 3.1 
JSF 2.2 
EL 3.0 
JSP JSTL 
Bean Validation 1.1 
Interceptors 1.2 
CDI 1.1 
Concurrency 1.0 
JPA 2.1 
JTA 1.2 
EJB 3.2 
JMS 2.0 
Batch 1.0 
JCA 1.7 
JavaMail 1.5 
JAX-WS 
JAXB
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
11 
Java EE 7 APIs for Exposing Data 
JAX-RS 2.0 
JSON-P 1.0 
Web Socket 1.0 
Servlet 3.1 
JSF 2.2 
EL 3.0 
JSP JSTL 
Bean Validation 1.1 
Interceptors 1.2 
CDI 1.1 
Concurrency 1.0 
JPA 2.1 
JTA 1.2 
EJB 3.2 
JMS 2.0 
Batch 1.0 
JCA 1.7 
JavaMail 1.5 
JAX-WS 
JAXB
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
JSR 356: Java API for WebSocket 1.0 
@ServerEndpoint("/echo") 
public class EchoServer { 
@OnMessage 
public void onMessage(Session session, String message) { 
session.getOpenSessions() .forEach(s ->s.getAsyncRemote().sendText(message)); 
} 
} 
Annotated ServerEndpoint Example
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
JSR 339 – JAX-RS 2.0 
@Path("/chat") 
public class ChatServer { 
@GET @Produces(“plain/text”) 
@Consumes(“plain/text”) 
public String echo(String message) { 
return “Echoing via REST the message: “+message; 
} 
... 
} 
Annotated REST Service
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
JSR 372 – JavaServer Faces 2.3 
•Build webpages and embed them in JavaFX applications with WebView 
•Inject real Java objects by manipulating the DOM tree in WebView 
–Do this instead of running Applets in webpages loaded on browsers 
–Consider this for applications that require fast layout changes/evolution 
•Part of your application is dynamically loaded from Web 
–Or even the whole screen is loaded as web page?
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
15 
Java EE 7 APIs for Client-side 
JAX-RS 2.0 
JSON-P 1.0 
Web Socket 1.0 
Servlet 3.1 
JSF 2.2 
EL 3.0 
JSP JSTL 
Bean Validation 1.1 
Interceptors 1.2 
CDI 1.1 
Concurrency 1.0 
JPA 2.1 
JTA 1.2 
EJB 3.2 
JMS 2.0 
Batch 1.0 
JCA 1.7 
JavaMail 1.5 
JAX-WS 
JAXB
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
16 
Java EE 7 APIs To Be Used on Client-side 
JAX-RS 2.0 
JSON-P 1.0 
Web Socket 1.0 
Servlet 3.1 
JSF 2.2 
EL 3.0 
JSP JSTL 
Bean Validation 1.1 
Interceptors 1.2 
CDI 1.1 
Concurrency 1.0 
JPA 2.1 
JTA 1.2 
EJB 3.2 
JMS 2.0 
Batch 1.0 
JCA 1.7 
JavaMail 1.5 
JAX-WS 
JAXB
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
17 
Java EE 7 APIs You Can Use but Likely Won’t... 
JAX-RS 2.0 
JSON-P 1.0 
Web Socket 1.0 
Servlet 3.1 
JSF 2.2 
EL 3.0 
JSP JSTL 
Bean Validation 1.1 
Interceptors 1.2 
CDI 1.1 
Concurrency 1.0 
JPA 2.1 
JTA 1.2 
EJB 3.2 
JMS 2.0 
Batch 1.0 
JCA 1.7 
JavaMail 1.5 
JAX-WS 
JAXB
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
18 
Hybrid JavaFX Desktop Application – Architecture 
Windows 
Mac OS X 
Linux 
Oracle JRE 
JavaFX 
Application 
Embedded Browser 
Native UI Controls 
Native Hardware Access 
An HTML5 (remote/local) application 
Native Controls in JavaFX with Themes and CSS Styles 
Java libraries for hardware integration 
Bundle the JRE with your application for native installers 
One unified desktop application
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
JavaFX Hybrid Apps 
Building Desktop Apps instead of Web Apps with Applets 
Web Browser 
Your Web Page * that requires applets 
Applets 
JavaFX Desktop “Hybrid” Application 
Embedded Browser – JavaFX’s WebView 
Native Features
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Demo
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Adopt-A-JSR 
•Want Java EE APIs to be aligned with Desktop/JavaFX Applications? 
•Want a Java EE “Client Profile”? 
Oracle Confidential – 23 
glassfish.org/adoptajsr
Building Java Desktop Apps with JavaFX 8 and Java EE 7

More Related Content

What's hot

Project Presentation on Advance Java
Project Presentation on Advance JavaProject Presentation on Advance Java
Project Presentation on Advance Java
Vikas Goyal
 
108 advancedjava
108 advancedjava108 advancedjava
108 advancedjava
Anil Kumar
 

What's hot (20)

Java EE vs Spring Framework
Java  EE vs Spring Framework Java  EE vs Spring Framework
Java EE vs Spring Framework
 
50 New Features of Java EE 7 in 50 minutes
50 New Features of Java EE 7 in 50 minutes50 New Features of Java EE 7 in 50 minutes
50 New Features of Java EE 7 in 50 minutes
 
Project Presentation on Advance Java
Project Presentation on Advance JavaProject Presentation on Advance Java
Project Presentation on Advance Java
 
Future of Java EE with Java SE 8
Future of Java EE with Java SE 8Future of Java EE with Java SE 8
Future of Java EE with Java SE 8
 
Java EE Revisits GoF Design Patterns
Java EE Revisits GoF Design PatternsJava EE Revisits GoF Design Patterns
Java EE Revisits GoF Design Patterns
 
Java EE Introduction
Java EE IntroductionJava EE Introduction
Java EE Introduction
 
Java EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVCJava EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVC
 
Advance Java Tutorial | J2EE, Java Servlets, JSP, JDBC | Java Certification T...
Advance Java Tutorial | J2EE, Java Servlets, JSP, JDBC | Java Certification T...Advance Java Tutorial | J2EE, Java Servlets, JSP, JDBC | Java Certification T...
Advance Java Tutorial | J2EE, Java Servlets, JSP, JDBC | Java Certification T...
 
Java EE 7 for WebLogic 12c Developers
Java EE 7 for WebLogic 12c DevelopersJava EE 7 for WebLogic 12c Developers
Java EE 7 for WebLogic 12c Developers
 
JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014
 
Java & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate FrameworkJava & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate Framework
 
Java EE 8
Java EE 8Java EE 8
Java EE 8
 
J2EE - JSP-Servlet- Container - Components
J2EE - JSP-Servlet- Container - ComponentsJ2EE - JSP-Servlet- Container - Components
J2EE - JSP-Servlet- Container - Components
 
Getting Started with Java EE 7
Getting Started with Java EE 7Getting Started with Java EE 7
Getting Started with Java EE 7
 
Java EE 01-Servlets and Containers
Java EE 01-Servlets and ContainersJava EE 01-Servlets and Containers
Java EE 01-Servlets and Containers
 
Changes in WebLogic 12.1.3 Every Administrator Must Know
Changes in WebLogic 12.1.3 Every Administrator Must KnowChanges in WebLogic 12.1.3 Every Administrator Must Know
Changes in WebLogic 12.1.3 Every Administrator Must Know
 
108 advancedjava
108 advancedjava108 advancedjava
108 advancedjava
 
Developing modular Java applications
Developing modular Java applicationsDeveloping modular Java applications
Developing modular Java applications
 
What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)
 
Java EE 8: On the Horizon
Java EE 8:  On the HorizonJava EE 8:  On the Horizon
Java EE 8: On the Horizon
 

Viewers also liked

Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXTweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Bruno Borges
 
JavaFX - Bringing rich Internet applications ...
JavaFX - Bringing rich Internet applications ...JavaFX - Bringing rich Internet applications ...
JavaFX - Bringing rich Internet applications ...
terrencebarr
 
Introduction into JavaFX
Introduction into JavaFXIntroduction into JavaFX
Introduction into JavaFX
Eugene Bogaart
 

Viewers also liked (20)

Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXTweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
 
JavaFX Presentation
JavaFX PresentationJavaFX Presentation
JavaFX Presentation
 
JavaFX 8 - GUI by Illusion
JavaFX 8 - GUI by IllusionJavaFX 8 - GUI by Illusion
JavaFX 8 - GUI by Illusion
 
JavaFX8 TestFX - CDI
JavaFX8   TestFX - CDIJavaFX8   TestFX - CDI
JavaFX8 TestFX - CDI
 
Java fx ap is
Java fx ap isJava fx ap is
Java fx ap is
 
GBDC 勉強会 #6 Java イベントレポート 2016
GBDC 勉強会 #6 Java イベントレポート 2016GBDC 勉強会 #6 Java イベントレポート 2016
GBDC 勉強会 #6 Java イベントレポート 2016
 
JavaFX - Bringing rich Internet applications ...
JavaFX - Bringing rich Internet applications ...JavaFX - Bringing rich Internet applications ...
JavaFX - Bringing rich Internet applications ...
 
JavaFX / JacpFX interaction with JSR356 WebSockets
JavaFX / JacpFX interaction with JSR356 WebSocketsJavaFX / JacpFX interaction with JSR356 WebSockets
JavaFX / JacpFX interaction with JSR356 WebSockets
 
Java Entreprise Edition
Java Entreprise EditionJava Entreprise Edition
Java Entreprise Edition
 
JavaFx
JavaFxJavaFx
JavaFx
 
Getting your Grails on
Getting your Grails onGetting your Grails on
Getting your Grails on
 
Neo4J and Grails
Neo4J and GrailsNeo4J and Grails
Neo4J and Grails
 
Introduction into JavaFX
Introduction into JavaFXIntroduction into JavaFX
Introduction into JavaFX
 
Presentation - Course about JavaFX
Presentation - Course about JavaFXPresentation - Course about JavaFX
Presentation - Course about JavaFX
 
Play framework
Play frameworkPlay framework
Play framework
 
Effective JavaFX architecture with FxObjects
Effective JavaFX architecture with FxObjectsEffective JavaFX architecture with FxObjects
Effective JavaFX architecture with FxObjects
 
FXML for Structure, CSS for Styling and JavaFX as Standard GUI Library
FXML for Structure, CSS for Styling and JavaFX as Standard GUI LibraryFXML for Structure, CSS for Styling and JavaFX as Standard GUI Library
FXML for Structure, CSS for Styling and JavaFX as Standard GUI Library
 
Message Driven Architecture in Grails
Message Driven Architecture in GrailsMessage Driven Architecture in Grails
Message Driven Architecture in Grails
 
Introdução ao JavaFX
Introdução ao JavaFXIntrodução ao JavaFX
Introdução ao JavaFX
 
RetroPi Handheld Raspberry Pi Gaming Console
RetroPi Handheld Raspberry Pi Gaming ConsoleRetroPi Handheld Raspberry Pi Gaming Console
RetroPi Handheld Raspberry Pi Gaming Console
 

Similar to Building Java Desktop Apps with JavaFX 8 and Java EE 7

Project Avatar (Lyon JUG & Alpes JUG - March 2014)
Project Avatar (Lyon JUG & Alpes JUG  - March 2014)Project Avatar (Lyon JUG & Alpes JUG  - March 2014)
Project Avatar (Lyon JUG & Alpes JUG - March 2014)
David Delabassee
 
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur! Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
David Delabassee
 

Similar to Building Java Desktop Apps with JavaFX 8 and Java EE 7 (20)

Java EE7 in action
Java EE7 in actionJava EE7 in action
Java EE7 in action
 
The Developers Conference 2014 - Oracle Keynote
The Developers Conference 2014 - Oracle KeynoteThe Developers Conference 2014 - Oracle Keynote
The Developers Conference 2014 - Oracle Keynote
 
Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1
 
Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)
 
The Java EE 7 Platform: Productivity & HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity & HTML5 at San Francisco JUGThe Java EE 7 Platform: Productivity & HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity & HTML5 at San Francisco JUG
 
Presente e Futuro: Java EE.next()
Presente e Futuro: Java EE.next()Presente e Futuro: Java EE.next()
Presente e Futuro: Java EE.next()
 
JDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDKJDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDK
 
GlassFish BOF
GlassFish BOFGlassFish BOF
GlassFish BOF
 
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško VukmanovićJavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
 
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12cDeveloping Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
 
Project Avatar (Lyon JUG & Alpes JUG - March 2014)
Project Avatar (Lyon JUG & Alpes JUG  - March 2014)Project Avatar (Lyon JUG & Alpes JUG  - March 2014)
Project Avatar (Lyon JUG & Alpes JUG - March 2014)
 
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur! Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
 
Oracle JET overview
Oracle JET overviewOracle JET overview
Oracle JET overview
 
OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7
 
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?Have You Seen Java EE Lately?
Have You Seen Java EE Lately?
 
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnitionJava EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnition
 
Java EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerJava EE 6 = Less Code + More Power
Java EE 6 = Less Code + More Power
 
Java EE for the Cloud
Java EE for the CloudJava EE for the Cloud
Java EE for the Cloud
 
Java EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUGJava EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUG
 
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
 

More from Bruno Borges

Tecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemTecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
Bruno Borges
 
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]
Bruno Borges
 
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]
Bruno Borges
 
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]
Bruno Borges
 
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFX
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFXTweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFX
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFX
Bruno Borges
 

More from Bruno Borges (20)

Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesSecrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on Kubernetes
 
[Outdated] Secrets of Performance Tuning Java on Kubernetes
[Outdated] Secrets of Performance Tuning Java on Kubernetes[Outdated] Secrets of Performance Tuning Java on Kubernetes
[Outdated] Secrets of Performance Tuning Java on Kubernetes
 
From GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX Apps
From GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX AppsFrom GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX Apps
From GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX Apps
 
Making Sense of Serverless Computing
Making Sense of Serverless ComputingMaking Sense of Serverless Computing
Making Sense of Serverless Computing
 
Visual Studio Code for Java and Spring Developers
Visual Studio Code for Java and Spring DevelopersVisual Studio Code for Java and Spring Developers
Visual Studio Code for Java and Spring Developers
 
Taking Spring Apps for a Spin on Microsoft Azure Cloud
Taking Spring Apps for a Spin on Microsoft Azure CloudTaking Spring Apps for a Spin on Microsoft Azure Cloud
Taking Spring Apps for a Spin on Microsoft Azure Cloud
 
A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...
A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...
A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na Nuvem
 
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemTecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
 
Java EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudJava EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The Cloud
 
Migrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFXMigrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFX
 
Servidores de Aplicação: Por quê ainda precisamos deles?
Servidores de Aplicação: Por quê ainda precisamos deles?Servidores de Aplicação: Por quê ainda precisamos deles?
Servidores de Aplicação: Por quê ainda precisamos deles?
 
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]
 
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]
 
Booting Up Spring Apps on Lightweight Cloud Services [CON10258]
Booting Up Spring Apps on Lightweight Cloud Services [CON10258]Booting Up Spring Apps on Lightweight Cloud Services [CON10258]
Booting Up Spring Apps on Lightweight Cloud Services [CON10258]
 
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]
 
Running Oracle WebLogic on Docker Containers [BOF7537]
Running Oracle WebLogic on Docker Containers [BOF7537]Running Oracle WebLogic on Docker Containers [BOF7537]
Running Oracle WebLogic on Docker Containers [BOF7537]
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
 
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFX
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFXTweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFX
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFX
 
Integrando Oracle BPM com Java EE e WebSockets
Integrando Oracle BPM com Java EE e WebSocketsIntegrando Oracle BPM com Java EE e WebSockets
Integrando Oracle BPM com Java EE e WebSockets
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Recently uploaded (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 

Building Java Desktop Apps with JavaFX 8 and Java EE 7

  • 1. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Building Java Applications with JavaFX 8 and Java EE 7 [CON2150] Being a smart Java developer on both client and server-side Bruno Borges Principal Product Manager – Java Evangelist Oracle Latin America September, 2014
  • 2. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement 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.
  • 3. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Speaker •Bruno Borges –Principal Product Manager, Java Evangelist –Oracle Latin America –@brunoborges –bruno.borges@oracle.com
  • 4. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Program Agenda JavaFX Desktop Applications Today Exposing Server-side Data with Java EE 7 Java EE 7 APIs for Client-side Putting all together Summary 1 2 3 4 5
  • 5. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | JavaFX Desktop Applications
  • 6. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Usual Desktop Architecture Source: Wikipedia
  • 7. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | JavaFX Frameworks OpenDolphin
  • 8. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Java EE 7 Not just for Web Development
  • 9. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 10 Java EE 7 APIs JAX-RS 2.0 JSON-P 1.0 Web Socket 1.0 Servlet 3.1 JSF 2.2 EL 3.0 JSP JSTL Bean Validation 1.1 Interceptors 1.2 CDI 1.1 Concurrency 1.0 JPA 2.1 JTA 1.2 EJB 3.2 JMS 2.0 Batch 1.0 JCA 1.7 JavaMail 1.5 JAX-WS JAXB
  • 10. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 11 Java EE 7 APIs for Exposing Data JAX-RS 2.0 JSON-P 1.0 Web Socket 1.0 Servlet 3.1 JSF 2.2 EL 3.0 JSP JSTL Bean Validation 1.1 Interceptors 1.2 CDI 1.1 Concurrency 1.0 JPA 2.1 JTA 1.2 EJB 3.2 JMS 2.0 Batch 1.0 JCA 1.7 JavaMail 1.5 JAX-WS JAXB
  • 11. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | JSR 356: Java API for WebSocket 1.0 @ServerEndpoint("/echo") public class EchoServer { @OnMessage public void onMessage(Session session, String message) { session.getOpenSessions() .forEach(s ->s.getAsyncRemote().sendText(message)); } } Annotated ServerEndpoint Example
  • 12. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | JSR 339 – JAX-RS 2.0 @Path("/chat") public class ChatServer { @GET @Produces(“plain/text”) @Consumes(“plain/text”) public String echo(String message) { return “Echoing via REST the message: “+message; } ... } Annotated REST Service
  • 13. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | JSR 372 – JavaServer Faces 2.3 •Build webpages and embed them in JavaFX applications with WebView •Inject real Java objects by manipulating the DOM tree in WebView –Do this instead of running Applets in webpages loaded on browsers –Consider this for applications that require fast layout changes/evolution •Part of your application is dynamically loaded from Web –Or even the whole screen is loaded as web page?
  • 14. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 15 Java EE 7 APIs for Client-side JAX-RS 2.0 JSON-P 1.0 Web Socket 1.0 Servlet 3.1 JSF 2.2 EL 3.0 JSP JSTL Bean Validation 1.1 Interceptors 1.2 CDI 1.1 Concurrency 1.0 JPA 2.1 JTA 1.2 EJB 3.2 JMS 2.0 Batch 1.0 JCA 1.7 JavaMail 1.5 JAX-WS JAXB
  • 15. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 16 Java EE 7 APIs To Be Used on Client-side JAX-RS 2.0 JSON-P 1.0 Web Socket 1.0 Servlet 3.1 JSF 2.2 EL 3.0 JSP JSTL Bean Validation 1.1 Interceptors 1.2 CDI 1.1 Concurrency 1.0 JPA 2.1 JTA 1.2 EJB 3.2 JMS 2.0 Batch 1.0 JCA 1.7 JavaMail 1.5 JAX-WS JAXB
  • 16. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 17 Java EE 7 APIs You Can Use but Likely Won’t... JAX-RS 2.0 JSON-P 1.0 Web Socket 1.0 Servlet 3.1 JSF 2.2 EL 3.0 JSP JSTL Bean Validation 1.1 Interceptors 1.2 CDI 1.1 Concurrency 1.0 JPA 2.1 JTA 1.2 EJB 3.2 JMS 2.0 Batch 1.0 JCA 1.7 JavaMail 1.5 JAX-WS JAXB
  • 17. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 18 Hybrid JavaFX Desktop Application – Architecture Windows Mac OS X Linux Oracle JRE JavaFX Application Embedded Browser Native UI Controls Native Hardware Access An HTML5 (remote/local) application Native Controls in JavaFX with Themes and CSS Styles Java libraries for hardware integration Bundle the JRE with your application for native installers One unified desktop application
  • 18. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | JavaFX Hybrid Apps Building Desktop Apps instead of Web Apps with Applets Web Browser Your Web Page * that requires applets Applets JavaFX Desktop “Hybrid” Application Embedded Browser – JavaFX’s WebView Native Features
  • 19. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Demo
  • 20. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Adopt-A-JSR •Want Java EE APIs to be aligned with Desktop/JavaFX Applications? •Want a Java EE “Client Profile”? Oracle Confidential – 23 glassfish.org/adoptajsr