SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
Java EE 7 
Soup to Nuts 
Arun Gupta, Red Hat 
@arungupta
DEVELOPER 
PRODUCTIVITY 
MEETING 
ENTERPRISE 
DEMANDS 
Java EE 7 
! Batch 
! Concurrency 
! Simplified JMS 
! More annotated POJOs 
! Less boilerplate code 
! Cohesive integrated 
platform 
! WebSockets 
! JSON 
! Servlet 3.1 NIO 
! REST
Top 10 features 
• WebSocket client/ 
server endpoints 
• Batch Applications 
• JSON Processing 
• Concurrency Utilities 
• Simplified JMS API 
• Transactions in POJO 
• JAX-RS Client API 
• Default Resources 
• More annotated 
POJOs 
• Faces Flow
Compliant Application 
Servers 
• GlassFish 4.x 
• WildFly 8.x 
• JEUS 8 
• On the way … 
• JBoss EAP, WebLogic, Liberty Profile 
http://www.oracle.com/technetwork/java/javaee/overview/compatibility-jsp-136984.html
GlassFish 
• Reference Implementation (Jun 2013) 
• No commercial support from Oracle, users encouraged 
to move to WebLogic 
• Commercial support from LodgON and C2B2 
• http://zeroturnaround.com/rebellabs/abandon-fish-migrating-from-glassfish- 
to-jboss-or-tomee/ 
• 4.1 released (Sep 2014) 
• 5.0 aligned with Java EE 8
• Always on the bleeding edge! 
• Powerful CLI and REST! 
• Modular, lightweight, ~fast! 
• Module versioning! 
• Enterprise OSGi! 
• NetBeans co-bundle S 
• No real OSS community! 
• Untested clustering! 
• No commercial support/ 
adoption! 
• No upgrade path! 
• Slow releases! 
• No PaaS, Jelastic/v3 W 
• Showcase of EE development! 
• Oracle not willing to monetize?! 
• Lodgon and C2B2 offering 
commercial support 
O 
• No vision beyond RI! 
• WildFly and JBoss EAP! 
• TomEE! 
• Tomcat! 
• Liberty Profile 
T
WildFly 
• Compliance achieved in 8.0 (Feb 2014) 
• Commercial support coming in JBoss Enterprise 
Application Platform (EAP) 7 
• 8.1 released (May 2014), 9.0 later this year 
• EAP 7 next year
• Commercially backed by Red 
Hat (JBoss EAP)! 
• Defined OSS process, 
contributions are easy (github)! 
• Modular, lightweight, fast! 
• Powerful CLI, REST, Java API! 
• Active community members! 
• Lot of docs, 3rd-party books, 
articles! 
• High performance web container! 
• Reduced port usage S 
• Need explicit migration to JBoss 
EAP! 
• Migration issues from AS 7 
W 
• Admin console delinked from 
internal model! 
• Integrated NoSQL! 
• Co-bundle with NetBeans or 
Eclipse! 
• Intelligent Management 
O 
• WebSphere ND! 
• WebLogic Server! 
• Tomcat! 
T
JEUS 
• Developer Preview available 
• Final coming in 2014 
• Roadmap ? 
Preparing to install... 
Extracting the installation resources from the installer archive... 
Configuring the installer for this system's environment... ! 
Launching installer... ! 
Preparing CONSOLE Mode Installation... ! 
=============================================================================== 
JEUS8.0 (created with InstallAnywhere by Macrovision) 
------------------------------------------------------------------------------- !! 
The installer cannot run on your configuration. It will now quit.
• Java EE 7 compliance! 
• Strong in Korea? 
S 
• Could not install Developer 
Preview on Mac OSX! 
• No IDE integration! 
• Verbose CLI tools, no defaults! 
• Limited forum support! 
• Poor docs W 
• One of the first ones to achieve 
compliance 
O 
• WildFly and JBoss EAP! 
• TomEE 
T
Components 
Component JSR GlassFish WildFly JEUS 
Java API for WebSocket 356 RI/Tyrus Undertow Internal 
Java API for JSON Processing 353 RI RI* ?? 
Concurrency Utilities for Java EE 236 RI RI* Internal 
Batch Application for Java Platform 352 RI JBeret RI* 
Java API for RESTful Web Services 339 RI/Jersey RESTEasy RI* 
Java Message Service 343 RI/OpenMQ HornetQ JORAM 
Context and Dependency Injection 346 RI* RI/Weld RI* 
Bean Validation 349 RI* RI/Hibernate 
Validator 
RI* 
Java Persistence API 338 RI/EclipseLink HIbernate RI* 
Java Connector Architecture 322 RI/OpenMQ HornetQ Internal 
Java Transaction API 907 Internal Narayana JOTM 
JavaServer Faces 344 RI/Mojarra RI* RI* + MyFaces 
Expression Language 341 RI RI* RI* 
Servlet 340 RI/Internal Undertow Tomcat + Jetty 
Enterprise JavaBeans 345 RI/Internal Internal EasyBeans 
Java API for XML-based Web Services 224 RI/Metro JBossWS ?? 
108 MB 124 MB 153 MB 
http://arjan-tijms.blogspot.com/2014/05/implementation-components-used-by.html
NetBeans 
• Pleasant experience OOTB 
• Java, HTML5, PHP, C/C++, … 
• Comprehensive Java EE 7 support 
• Support for GlassFish, WildFly
• Pleasant experience OOTB! 
• Maven! 
• Wizards for WebSocket, JAX-RS, 
JPA, CDI, EJB, Bean Validation, 
JSF, …! 
• No plugin hunting! 
working with GlassFish teamS 
• Tight integration, ease-of-use 
• Concerns around commitment 
from Oracle! 
• Multiple IDEs from Oracle! 
• Low usage! 
W 
• Better integration with Mozilla, 
IE, Safari as with Chrome 
O 
• IntelliJ! 
• Eclipse 
T
JBoss Tools 
• Eclipse plugins for JBoss technology
• Wide Eclipse base! 
• Required plugins are packaged! 
• Mature JAX-RS, JSF, CDI, JPA 
support - wizard, content assist, 
validation, navigation! 
• Wide range of application 
servers! 
• Fast and incremental server 
deployment! 
S 
• LiveReload • Issues within base Eclipse! 
• Maven! 
• Workspace and preferences are 
not easily shareable 
W 
• Expand Java EE 6 and 7 
integration! 
• Eclipse Orion integration! 
• Provide WildFly co-bundle 
O 
• NetBeans! 
• IntelliJ! 
• Lack of OSS contributions! 
T
IntelliJ 
• Java, Scala, Groovy, and polyglot IDE 
• Java EE 7 support in 13.1 (commercial version 
only) 
• Android, Gradle, Maven 
• Develop with pleasure
• Good Java EE support! 
• Refactoring of JPQL! 
• Sophisticated Job XML 
authoring! 
• JSF 2.2 contracts and flows! 
• Navigation through CDI beans 
(with alternatives, decorators, 
etc)! 
• Maven integration! 
• Supports most app servers! 
• Good community S 
• Java EE features are only in paid 
Ultimate Edition! 
• Free for academia 
W 
• Better integration with other app 
servers 
O 
• NetBeans! 
• Eclipse 
T
Forge 
• WORAI for Java EE (using Maven) 
• Aids in automation of repetitive tasks 
• Generation of boilerplate code 
• In-built support for Java EE 6 and 7 
• Extensible by design 
• Test-driven development 
• Offers productivity to beginners and experts alike
• CLI-driven, IDE integration! 
• Support for Java EE 6 and 7! 
• Extensible! 
• Can be scripted, automate 
repetitive tasks! 
• Test-driven development! 
• Eclipse and IntelliJ plugin S 
• Documentation for adding 
extensions 
W 
• NetBeans plugin! 
• NetBeans wizards based upon 
Forge 
O 
• Addon maintenance! 
• Specialization only for Java EE! 
• Lack of investment in new 
addons to cater to market 
demand! 
T
OpenShift 
• OpenShift Origin, Online, Enterprise 
• Pluggable cartridges 
• Multiple languages, databases, app servers 
• Gears: small, medium, large 
• FREE account: 3 gears (1 GB disk, 0.5 GB RAM) 
• Linux namespace and control groups
• Polyglot - language, datastore, 
app server! 
• Only Java EE 7 offering! 
• Community or commercial! 
• Pluggable cartridges! 
• Cool website! 
• Auto scaling in free plan! 
• Hybrid solution S 
• Ecosystem 
W 
• xPaaS 
O 
• Lack of PaaS leadership! 
• AWS Beanstalk! 
• CloudFoundry 
T
Arquillian 
Highly extensible testing 
platform for the JVM that enables 
to easily create automated tests
Getting Started 
with Java EE 7 
• Vanilla Java EE 7 application 
mvn 
archetype-generate 
--batch-mode 
-DarchetypeGroupId=org.codehaus.mojo.archetypes 
-DarchetypeArtifactId=webapp-javaee7 
-DgroupId=org.javaee7.sample 
-DartifactId=javaee7-sample 
-Dpackage=org.javaee7.sample
Getting Started 
with Java EE 7 + Arquillian 
• Testable Java EE 7 application 
mvn 
--batch-mode 
archetype:generate 
-DarchetypeGroupId=org.javaee-samples 
-DarchetypeArtifactId=javaee7-arquillian-archetype 
-DgroupId=org.samples.javaee7.arquillian 
-DartifactId=arquillian"
Testable Java EE 7 App 
• Generated profiles 
• wildfly-remote-arquillian 
• wildfly-managed-arquillian 
• glassfish-remote-arquillian 
• glassfish-embedded-arquillian
Test on WildFly 
• Download WildFly 8.1 from wildfly.org 
• Unzip and start as bin/standalone.sh 
• Run the test as: 
mvn test -Pwildfly-remote-arquillian
Test on GlassFish 
• Download GlassFish 4.1 from glassfish.org 
• Unzip and start as bin/asadmin start-domain 
• Run the test as: 
mvn test -Pglassfish-remote-wildfly
Enable Arquillian 
• Using Forge 
• addon-install-from-git --url https://github.com/forge/ 
addon-arquillian.git 
• arquillian-setup --testFramework junit -- 
containerAdapter wildfly-remote
Continuous Integration 
Development 
Jenkins 
Test 
Production 
1 
1 Started by git push 
2 
2 Run on test env 
3 
3 Check test status 
4 
4 Push changes to prod
Acknowledgments 
• John Yeary (@jyeary) 
• Antonio Goncalves (@agoncal) 
• Roberto Cortez (@radcortez) 
• Several other community members …

Weitere ähnliche Inhalte

Was ist angesagt?

Nuxeo WebEngine and GlassFish v3
Nuxeo WebEngine and GlassFish v3Nuxeo WebEngine and GlassFish v3
Nuxeo WebEngine and GlassFish v3
Nuxeo
 
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Andreas Koop
 

Was ist angesagt? (20)

How Flipkart scales PHP
How Flipkart scales PHPHow Flipkart scales PHP
How Flipkart scales PHP
 
GlassFish v3 Prelude Aquarium Paris
GlassFish v3 Prelude Aquarium ParisGlassFish v3 Prelude Aquarium Paris
GlassFish v3 Prelude Aquarium Paris
 
Nuxeo WebEngine and GlassFish v3
Nuxeo WebEngine and GlassFish v3Nuxeo WebEngine and GlassFish v3
Nuxeo WebEngine and GlassFish v3
 
RESTful Web Applications with Apache Sling
RESTful Web Applications with Apache SlingRESTful Web Applications with Apache Sling
RESTful Web Applications with Apache Sling
 
12-factor-jruby
12-factor-jruby12-factor-jruby
12-factor-jruby
 
Polygot Java EE on the GraalVM
Polygot Java EE on the GraalVMPolygot Java EE on the GraalVM
Polygot Java EE on the GraalVM
 
Project Fuji/OpenESB Aquarium Paris
Project Fuji/OpenESB Aquarium ParisProject Fuji/OpenESB Aquarium Paris
Project Fuji/OpenESB Aquarium Paris
 
Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010
 
SHARE 2014, Pittsburgh CICS and Liberty applications
SHARE 2014, Pittsburgh CICS and Liberty applicationsSHARE 2014, Pittsburgh CICS and Liberty applications
SHARE 2014, Pittsburgh CICS and Liberty applications
 
Introduction to containers a practical session using core os and docker
Introduction to containers  a practical session using core os and dockerIntroduction to containers  a practical session using core os and docker
Introduction to containers a practical session using core os and docker
 
MySQL Aquarium Paris
MySQL Aquarium ParisMySQL Aquarium Paris
MySQL Aquarium Paris
 
Modular Java applications with OSGi on Apache Karaf
Modular Java applications with OSGi on Apache KarafModular Java applications with OSGi on Apache Karaf
Modular Java applications with OSGi on Apache Karaf
 
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
 
GlassFish v3 : En Route Java EE 6
GlassFish v3 : En Route Java EE 6GlassFish v3 : En Route Java EE 6
GlassFish v3 : En Route Java EE 6
 
Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)
 
Developing in the Cloud
Developing in the CloudDeveloping in the Cloud
Developing in the Cloud
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
 
Docker - From Walking To Running
Docker - From Walking To RunningDocker - From Walking To Running
Docker - From Walking To Running
 
Webkit/chromium contribution process
Webkit/chromium contribution processWebkit/chromium contribution process
Webkit/chromium contribution process
 
Ausoug glassfish perth
Ausoug glassfish perthAusoug glassfish perth
Ausoug glassfish perth
 

Andere mochten auch

Andere mochten auch (13)

50 features of Java EE 7 in 50 minutes at Geecon 2014
50 features of Java EE 7 in 50 minutes at Geecon 201450 features of Java EE 7 in 50 minutes at Geecon 2014
50 features of Java EE 7 in 50 minutes at Geecon 2014
 
How to run your first marathon ? JavaOne 2014 Ignite
How to run your first marathon ? JavaOne 2014 IgniteHow to run your first marathon ? JavaOne 2014 Ignite
How to run your first marathon ? JavaOne 2014 Ignite
 
NoSQL - Vital Open Source Ingredient for Modern Success
NoSQL - Vital Open Source Ingredient for Modern SuccessNoSQL - Vital Open Source Ingredient for Modern Success
NoSQL - Vital Open Source Ingredient for Modern Success
 
Teaching kids how to program
Teaching kids how to programTeaching kids how to program
Teaching kids how to program
 
Introduce Programming to Kids at Geecon 2014
Introduce Programming to Kids at Geecon 2014Introduce Programming to Kids at Geecon 2014
Introduce Programming to Kids at Geecon 2014
 
50 features of Java EE 7 in 50 minutes at JavaZone 2014
50 features of Java EE 7 in 50 minutes at JavaZone 201450 features of Java EE 7 in 50 minutes at JavaZone 2014
50 features of Java EE 7 in 50 minutes at JavaZone 2014
 
Extreme Gui Makeover
Extreme Gui MakeoverExtreme Gui Makeover
Extreme Gui Makeover
 
50 New Features of Java EE 7 in 50 minutes @ Devoxx France 2014
50 New Features of Java EE 7 in 50 minutes @ Devoxx France 201450 New Features of Java EE 7 in 50 minutes @ Devoxx France 2014
50 New Features of Java EE 7 in 50 minutes @ Devoxx France 2014
 
Thanks Managers!
Thanks Managers!Thanks Managers!
Thanks Managers!
 
Migrate your traditional VM-based Clusters to Containers
Migrate your traditional VM-based Clusters to ContainersMigrate your traditional VM-based Clusters to Containers
Migrate your traditional VM-based Clusters to Containers
 
Nuts and Bolts of WebSocket Devoxx 2014
Nuts and Bolts of WebSocket Devoxx 2014Nuts and Bolts of WebSocket Devoxx 2014
Nuts and Bolts of WebSocket Devoxx 2014
 
Docker, Kubernetes, and Mesos recipes for Java developers
Docker, Kubernetes, and Mesos recipes for Java developersDocker, Kubernetes, and Mesos recipes for Java developers
Docker, Kubernetes, and Mesos recipes for Java developers
 
Package your Java EE Application using Docker and Kubernetes
Package your Java EE Application using Docker and KubernetesPackage your Java EE Application using Docker and Kubernetes
Package your Java EE Application using Docker and Kubernetes
 

Ähnlich wie Java EE 7 Soup to Nuts at JavaOne 2014

Java EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseConJava EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseCon
Ludovic Champenois
 
Java EE 6, Eclipse, GlassFish @EclipseCon 2010
Java EE 6, Eclipse, GlassFish @EclipseCon 2010Java EE 6, Eclipse, GlassFish @EclipseCon 2010
Java EE 6, Eclipse, GlassFish @EclipseCon 2010
Ludovic Champenois
 
Java in web 2 0 presentation
Java in web 2 0 presentationJava in web 2 0 presentation
Java in web 2 0 presentation
PRAVEEN KUMAR
 
Java in web 2 0 presentation
Java in web 2 0 presentationJava in web 2 0 presentation
Java in web 2 0 presentation
Varun Jain
 
Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010
Codecamp Romania
 
Java EE 6 Clustering with Glassfish 3.1
Java EE 6 Clustering with Glassfish 3.1 Java EE 6 Clustering with Glassfish 3.1
Java EE 6 Clustering with Glassfish 3.1
Shreedhar Ganapathy
 
GlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsGlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 Applications
Arun Gupta
 

Ähnlich wie Java EE 7 Soup to Nuts at JavaOne 2014 (20)

Java EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseConJava EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseCon
 
Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1
 
OSGi enRoute Unveiled - P Kriens
OSGi enRoute Unveiled - P KriensOSGi enRoute Unveiled - P Kriens
OSGi enRoute Unveiled - P Kriens
 
Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010
Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010
Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010
 
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
 
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
 
JavaEE 6 tools coverage
JavaEE 6 tools coverageJavaEE 6 tools coverage
JavaEE 6 tools coverage
 
Java EE 6, Eclipse, GlassFish @EclipseCon 2010
Java EE 6, Eclipse, GlassFish @EclipseCon 2010Java EE 6, Eclipse, GlassFish @EclipseCon 2010
Java EE 6, Eclipse, GlassFish @EclipseCon 2010
 
Scaling with swagger
Scaling with swaggerScaling with swagger
Scaling with swagger
 
Modern web application development with java ee 7
Modern web application development with java ee 7Modern web application development with java ee 7
Modern web application development with java ee 7
 
Java in web 2 0 presentation
Java in web 2 0 presentationJava in web 2 0 presentation
Java in web 2 0 presentation
 
Java in web 2 0 presentation
Java in web 2 0 presentationJava in web 2 0 presentation
Java in web 2 0 presentation
 
Java™ in Web 2.0
Java™ in Web 2.0Java™ in Web 2.0
Java™ in Web 2.0
 
Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010
 
Developing Java Microservices Fast with Open Liberty
Developing Java Microservices Fast with Open LibertyDeveloping Java Microservices Fast with Open Liberty
Developing Java Microservices Fast with Open Liberty
 
OTN Developer Days - Java EE 6
OTN Developer Days - Java EE 6OTN Developer Days - Java EE 6
OTN Developer Days - Java EE 6
 
Utilizing JSF Front Ends with Microservices
Utilizing JSF Front Ends with MicroservicesUtilizing JSF Front Ends with Microservices
Utilizing JSF Front Ends with Microservices
 
Java EE 6 Clustering with Glassfish 3.1
Java EE 6 Clustering with Glassfish 3.1 Java EE 6 Clustering with Glassfish 3.1
Java EE 6 Clustering with Glassfish 3.1
 
GlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsGlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 Applications
 
GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011
 

Mehr von Arun Gupta

Mehr von Arun Gupta (15)

5 Skills To Force Multiply Technical Talents.pdf
5 Skills To Force Multiply Technical Talents.pdf5 Skills To Force Multiply Technical Talents.pdf
5 Skills To Force Multiply Technical Talents.pdf
 
Machine Learning using Kubernetes - AI Conclave 2019
Machine Learning using Kubernetes - AI Conclave 2019Machine Learning using Kubernetes - AI Conclave 2019
Machine Learning using Kubernetes - AI Conclave 2019
 
Machine Learning using Kubeflow and Kubernetes
Machine Learning using Kubeflow and KubernetesMachine Learning using Kubeflow and Kubernetes
Machine Learning using Kubeflow and Kubernetes
 
Secure and Fast microVM for Serverless Computing using Firecracker
Secure and Fast microVM for Serverless Computing using FirecrackerSecure and Fast microVM for Serverless Computing using Firecracker
Secure and Fast microVM for Serverless Computing using Firecracker
 
Building Java in the Open - j.Day at OSCON 2019
Building Java in the Open - j.Day at OSCON 2019Building Java in the Open - j.Day at OSCON 2019
Building Java in the Open - j.Day at OSCON 2019
 
Why Amazon Cares about Open Source
Why Amazon Cares about Open SourceWhy Amazon Cares about Open Source
Why Amazon Cares about Open Source
 
Machine learning using Kubernetes
Machine learning using KubernetesMachine learning using Kubernetes
Machine learning using Kubernetes
 
Building Cloud Native Applications
Building Cloud Native ApplicationsBuilding Cloud Native Applications
Building Cloud Native Applications
 
Chaos Engineering with Kubernetes
Chaos Engineering with KubernetesChaos Engineering with Kubernetes
Chaos Engineering with Kubernetes
 
How to be a mentor to bring more girls to STEAM
How to be a mentor to bring more girls to STEAMHow to be a mentor to bring more girls to STEAM
How to be a mentor to bring more girls to STEAM
 
Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018
 
The Serverless Tidal Wave - SwampUP 2018 Keynote
The Serverless Tidal Wave - SwampUP 2018 KeynoteThe Serverless Tidal Wave - SwampUP 2018 Keynote
The Serverless Tidal Wave - SwampUP 2018 Keynote
 
Introduction to Amazon EKS - KubeCon 2018
Introduction to Amazon EKS - KubeCon 2018Introduction to Amazon EKS - KubeCon 2018
Introduction to Amazon EKS - KubeCon 2018
 
Mastering Kubernetes on AWS - Tel Aviv Summit
Mastering Kubernetes on AWS - Tel Aviv SummitMastering Kubernetes on AWS - Tel Aviv Summit
Mastering Kubernetes on AWS - Tel Aviv Summit
 
Top 10 Technology Trends Changing Developer's Landscape
Top 10 Technology Trends Changing Developer's LandscapeTop 10 Technology Trends Changing Developer's Landscape
Top 10 Technology Trends Changing Developer's Landscape
 

Kürzlich hochgeladen

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
 
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
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
FIDO Alliance
 

Kürzlich hochgeladen (20)

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
 
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
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptx
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software Engineering
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
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
 

Java EE 7 Soup to Nuts at JavaOne 2014

  • 1. Java EE 7 Soup to Nuts Arun Gupta, Red Hat @arungupta
  • 2. DEVELOPER PRODUCTIVITY MEETING ENTERPRISE DEMANDS Java EE 7 ! Batch ! Concurrency ! Simplified JMS ! More annotated POJOs ! Less boilerplate code ! Cohesive integrated platform ! WebSockets ! JSON ! Servlet 3.1 NIO ! REST
  • 3. Top 10 features • WebSocket client/ server endpoints • Batch Applications • JSON Processing • Concurrency Utilities • Simplified JMS API • Transactions in POJO • JAX-RS Client API • Default Resources • More annotated POJOs • Faces Flow
  • 4. Compliant Application Servers • GlassFish 4.x • WildFly 8.x • JEUS 8 • On the way … • JBoss EAP, WebLogic, Liberty Profile http://www.oracle.com/technetwork/java/javaee/overview/compatibility-jsp-136984.html
  • 5. GlassFish • Reference Implementation (Jun 2013) • No commercial support from Oracle, users encouraged to move to WebLogic • Commercial support from LodgON and C2B2 • http://zeroturnaround.com/rebellabs/abandon-fish-migrating-from-glassfish- to-jboss-or-tomee/ • 4.1 released (Sep 2014) • 5.0 aligned with Java EE 8
  • 6.
  • 7. • Always on the bleeding edge! • Powerful CLI and REST! • Modular, lightweight, ~fast! • Module versioning! • Enterprise OSGi! • NetBeans co-bundle S • No real OSS community! • Untested clustering! • No commercial support/ adoption! • No upgrade path! • Slow releases! • No PaaS, Jelastic/v3 W • Showcase of EE development! • Oracle not willing to monetize?! • Lodgon and C2B2 offering commercial support O • No vision beyond RI! • WildFly and JBoss EAP! • TomEE! • Tomcat! • Liberty Profile T
  • 8. WildFly • Compliance achieved in 8.0 (Feb 2014) • Commercial support coming in JBoss Enterprise Application Platform (EAP) 7 • 8.1 released (May 2014), 9.0 later this year • EAP 7 next year
  • 9.
  • 10. • Commercially backed by Red Hat (JBoss EAP)! • Defined OSS process, contributions are easy (github)! • Modular, lightweight, fast! • Powerful CLI, REST, Java API! • Active community members! • Lot of docs, 3rd-party books, articles! • High performance web container! • Reduced port usage S • Need explicit migration to JBoss EAP! • Migration issues from AS 7 W • Admin console delinked from internal model! • Integrated NoSQL! • Co-bundle with NetBeans or Eclipse! • Intelligent Management O • WebSphere ND! • WebLogic Server! • Tomcat! T
  • 11. JEUS • Developer Preview available • Final coming in 2014 • Roadmap ? Preparing to install... Extracting the installation resources from the installer archive... Configuring the installer for this system's environment... ! Launching installer... ! Preparing CONSOLE Mode Installation... ! =============================================================================== JEUS8.0 (created with InstallAnywhere by Macrovision) ------------------------------------------------------------------------------- !! The installer cannot run on your configuration. It will now quit.
  • 12.
  • 13. • Java EE 7 compliance! • Strong in Korea? S • Could not install Developer Preview on Mac OSX! • No IDE integration! • Verbose CLI tools, no defaults! • Limited forum support! • Poor docs W • One of the first ones to achieve compliance O • WildFly and JBoss EAP! • TomEE T
  • 14. Components Component JSR GlassFish WildFly JEUS Java API for WebSocket 356 RI/Tyrus Undertow Internal Java API for JSON Processing 353 RI RI* ?? Concurrency Utilities for Java EE 236 RI RI* Internal Batch Application for Java Platform 352 RI JBeret RI* Java API for RESTful Web Services 339 RI/Jersey RESTEasy RI* Java Message Service 343 RI/OpenMQ HornetQ JORAM Context and Dependency Injection 346 RI* RI/Weld RI* Bean Validation 349 RI* RI/Hibernate Validator RI* Java Persistence API 338 RI/EclipseLink HIbernate RI* Java Connector Architecture 322 RI/OpenMQ HornetQ Internal Java Transaction API 907 Internal Narayana JOTM JavaServer Faces 344 RI/Mojarra RI* RI* + MyFaces Expression Language 341 RI RI* RI* Servlet 340 RI/Internal Undertow Tomcat + Jetty Enterprise JavaBeans 345 RI/Internal Internal EasyBeans Java API for XML-based Web Services 224 RI/Metro JBossWS ?? 108 MB 124 MB 153 MB http://arjan-tijms.blogspot.com/2014/05/implementation-components-used-by.html
  • 15. NetBeans • Pleasant experience OOTB • Java, HTML5, PHP, C/C++, … • Comprehensive Java EE 7 support • Support for GlassFish, WildFly
  • 16.
  • 17. • Pleasant experience OOTB! • Maven! • Wizards for WebSocket, JAX-RS, JPA, CDI, EJB, Bean Validation, JSF, …! • No plugin hunting! working with GlassFish teamS • Tight integration, ease-of-use • Concerns around commitment from Oracle! • Multiple IDEs from Oracle! • Low usage! W • Better integration with Mozilla, IE, Safari as with Chrome O • IntelliJ! • Eclipse T
  • 18. JBoss Tools • Eclipse plugins for JBoss technology
  • 19.
  • 20. • Wide Eclipse base! • Required plugins are packaged! • Mature JAX-RS, JSF, CDI, JPA support - wizard, content assist, validation, navigation! • Wide range of application servers! • Fast and incremental server deployment! S • LiveReload • Issues within base Eclipse! • Maven! • Workspace and preferences are not easily shareable W • Expand Java EE 6 and 7 integration! • Eclipse Orion integration! • Provide WildFly co-bundle O • NetBeans! • IntelliJ! • Lack of OSS contributions! T
  • 21. IntelliJ • Java, Scala, Groovy, and polyglot IDE • Java EE 7 support in 13.1 (commercial version only) • Android, Gradle, Maven • Develop with pleasure
  • 22. • Good Java EE support! • Refactoring of JPQL! • Sophisticated Job XML authoring! • JSF 2.2 contracts and flows! • Navigation through CDI beans (with alternatives, decorators, etc)! • Maven integration! • Supports most app servers! • Good community S • Java EE features are only in paid Ultimate Edition! • Free for academia W • Better integration with other app servers O • NetBeans! • Eclipse T
  • 23. Forge • WORAI for Java EE (using Maven) • Aids in automation of repetitive tasks • Generation of boilerplate code • In-built support for Java EE 6 and 7 • Extensible by design • Test-driven development • Offers productivity to beginners and experts alike
  • 24.
  • 25. • CLI-driven, IDE integration! • Support for Java EE 6 and 7! • Extensible! • Can be scripted, automate repetitive tasks! • Test-driven development! • Eclipse and IntelliJ plugin S • Documentation for adding extensions W • NetBeans plugin! • NetBeans wizards based upon Forge O • Addon maintenance! • Specialization only for Java EE! • Lack of investment in new addons to cater to market demand! T
  • 26. OpenShift • OpenShift Origin, Online, Enterprise • Pluggable cartridges • Multiple languages, databases, app servers • Gears: small, medium, large • FREE account: 3 gears (1 GB disk, 0.5 GB RAM) • Linux namespace and control groups
  • 27.
  • 28. • Polyglot - language, datastore, app server! • Only Java EE 7 offering! • Community or commercial! • Pluggable cartridges! • Cool website! • Auto scaling in free plan! • Hybrid solution S • Ecosystem W • xPaaS O • Lack of PaaS leadership! • AWS Beanstalk! • CloudFoundry T
  • 29. Arquillian Highly extensible testing platform for the JVM that enables to easily create automated tests
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36. Getting Started with Java EE 7 • Vanilla Java EE 7 application mvn archetype-generate --batch-mode -DarchetypeGroupId=org.codehaus.mojo.archetypes -DarchetypeArtifactId=webapp-javaee7 -DgroupId=org.javaee7.sample -DartifactId=javaee7-sample -Dpackage=org.javaee7.sample
  • 37. Getting Started with Java EE 7 + Arquillian • Testable Java EE 7 application mvn --batch-mode archetype:generate -DarchetypeGroupId=org.javaee-samples -DarchetypeArtifactId=javaee7-arquillian-archetype -DgroupId=org.samples.javaee7.arquillian -DartifactId=arquillian"
  • 38. Testable Java EE 7 App • Generated profiles • wildfly-remote-arquillian • wildfly-managed-arquillian • glassfish-remote-arquillian • glassfish-embedded-arquillian
  • 39. Test on WildFly • Download WildFly 8.1 from wildfly.org • Unzip and start as bin/standalone.sh • Run the test as: mvn test -Pwildfly-remote-arquillian
  • 40. Test on GlassFish • Download GlassFish 4.1 from glassfish.org • Unzip and start as bin/asadmin start-domain • Run the test as: mvn test -Pglassfish-remote-wildfly
  • 41. Enable Arquillian • Using Forge • addon-install-from-git --url https://github.com/forge/ addon-arquillian.git • arquillian-setup --testFramework junit -- containerAdapter wildfly-remote
  • 42. Continuous Integration Development Jenkins Test Production 1 1 Started by git push 2 2 Run on test env 3 3 Check test status 4 4 Push changes to prod
  • 43. Acknowledgments • John Yeary (@jyeary) • Antonio Goncalves (@agoncal) • Roberto Cortez (@radcortez) • Several other community members …