java ee 7 soup to nuts at javaone 2014
DESCRIPTION
Java EE 7 Soup to Nuts at JavaOne 2014TRANSCRIPT
![Page 1: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/1.jpg)
Java EE 7Soup to Nuts
Arun Gupta, Red Hat @arungupta
![Page 2: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/2.jpg)
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
![Page 3: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/3.jpg)
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
![Page 4: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/4.jpg)
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
![Page 5: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/5.jpg)
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
![Page 6: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/6.jpg)
![Page 7: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/7.jpg)
• 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
![Page 8: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/8.jpg)
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
![Page 9: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/9.jpg)
![Page 10: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/10.jpg)
• 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
![Page 11: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/11.jpg)
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.
![Page 12: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/12.jpg)
![Page 13: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/13.jpg)
• 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
![Page 14: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/14.jpg)
ComponentsComponent JSR GlassFish WildFly JEUS
Java API for WebSocket 356 RI/Tyrus Undertow InternalJava API for JSON Processing 353 RI RI* ??
Concurrency Utilities for Java EE 236 RI RI* InternalBatch 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 JORAMContext 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 InternalJava Transaction API 907 Internal Narayana JOTM
JavaServer Faces 344 RI/Mojarra RI* RI* + MyFacesExpression Language 341 RI RI* RI*
Servlet 340 RI/Internal Undertow Tomcat + JettyEnterprise 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
![Page 15: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/15.jpg)
NetBeans• Pleasant experience OOTB
• Java, HTML5, PHP, C/C++, …
• Comprehensive Java EE 7 support
• Support for GlassFish, WildFly
![Page 16: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/16.jpg)
![Page 17: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/17.jpg)
• Pleasant experience OOTB!
• Maven!
• Wizards for WebSocket, JAX-RS, JPA, CDI, EJB, Bean Validation, JSF, …!
• No plugin hunting!
• Tight integration, ease-of-use working with GlassFish teamS
• 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
![Page 18: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/18.jpg)
JBoss Tools• Eclipse plugins for JBoss technology
![Page 19: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/19.jpg)
![Page 20: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/20.jpg)
• 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!
• LiveReload S
• 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
![Page 21: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/21.jpg)
IntelliJ
• Java, Scala, Groovy, and polyglot IDE
• Java EE 7 support in 13.1 (commercial version only)
• Android, Gradle, Maven
• Develop with pleasure
![Page 22: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/22.jpg)
• 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
![Page 23: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/23.jpg)
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
![Page 24: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/24.jpg)
![Page 25: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/25.jpg)
• 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
![Page 26: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/26.jpg)
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
![Page 27: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/27.jpg)
![Page 28: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/28.jpg)
• 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
![Page 29: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/29.jpg)
Arquillian
Highly extensible testing platform for the JVM that enables to easily create automated tests
![Page 30: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/30.jpg)
![Page 31: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/31.jpg)
![Page 32: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/32.jpg)
![Page 33: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/33.jpg)
![Page 34: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/34.jpg)
![Page 35: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/35.jpg)
![Page 36: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/36.jpg)
Getting Started with Java EE 7
• Vanilla Java EE 7 applicationmvn archetype-generate --batch-mode -DarchetypeGroupId=org.codehaus.mojo.archetypes -DarchetypeArtifactId=webapp-javaee7 -DgroupId=org.javaee7.sample -DartifactId=javaee7-sample -Dpackage=org.javaee7.sample
![Page 37: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/37.jpg)
Getting Started with Java EE 7 + Arquillian
• Testable Java EE 7 applicationmvn --batch-mode archetype:generate -DarchetypeGroupId=org.javaee-samples -DarchetypeArtifactId=javaee7-arquillian-archetype -DgroupId=org.samples.javaee7.arquillian -DartifactId=arquillian"
![Page 38: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/38.jpg)
Testable Java EE 7 App
• Generated profiles
• wildfly-remote-arquillian
• wildfly-managed-arquillian
• glassfish-remote-arquillian
• glassfish-embedded-arquillian
![Page 39: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/39.jpg)
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
![Page 40: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/40.jpg)
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
![Page 41: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/41.jpg)
Enable Arquillian• Using Forge
• addon-install-from-git --url https://github.com/forge/addon-arquillian.git
• arquillian-setup --testFramework junit --containerAdapter wildfly-remote
![Page 42: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/42.jpg)
Development
Continuous IntegrationJenkins
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
![Page 43: Java EE 7 Soup to Nuts at JavaOne 2014](https://reader031.vdocuments.us/reader031/viewer/2022020105/547e8c6ab4af9fe2158b5697/html5/thumbnails/43.jpg)
Acknowledgments
• John Yeary (@jyeary)
• Antonio Goncalves (@agoncal)
• Roberto Cortez (@radcortez)
• Several other community members …