SlideShare a Scribd company logo
1 of 29
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Java EE Testing with Arquillian, using
Docker, or the Cloud
SES12023 – JavaOne LAD 2016
Bruno Borges
Principal Product Manager
Oracle Cloud
@brunoborges
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
•Bruno Borges
–Product Manager / Developer Advocate
–Oracle Cloud
–Twitter: @brunoborges
Speaker
@brunoborges
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Java EE Testing with Arquillian, using
Docker, or the Cloud
@brunoborges
Copyright © 2016, 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.
@brunoborges
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Java EE Testing Enablers
@brunoborges
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
How to test Java EE applications
• No direct support (i.e. testing features) within the platform
• Although, Java EE provides other features that enable testing
– Arquillian is an integration testing platform that takes advantage of these features
• Other solutions available, but Arquillian is considerably the best
@brunoborges
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 7
Testing with Arquillian
Java EE
Container
src
test
resources
dependen
cies
• Test Case
• Code Under
Test
• Libraries
• Resolvers
ShrinkWrap
Start
Project
Execute Tests
Fetch Results
Deploy
• Testing platform for Java
Applications
• Functions
– Server lifecycle management
– Packages application + test code
– Deploys, executes, reports test
results
• What we’re doing with it
– Using Adapters internally
– Contributing to project – REST
• Adapters available now
Oracle Confidential - Do Not Redistribute
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Testing Servlets
• How to bootstrap containers from tests
– Arquillian does this by coordinating lifecycle
– Production-like environment
– Isolated tests
• JAX-RS Client API helps a lot, being the caller
– Other alternatives are HtmlUnit, HttpUnit, Arquillian Warp extension
– Java SE 9 considering a better native HTTP client API
@brunoborges
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Testing JAX-RS, WebSockets, JAX-WS
• Same concept as Servlets testing
• You can use the client APIs, of these specifications, with Arquillian
• For more complex tests consider tools like soapUI for REST/SOAP
– JUnit integration possible
@brunoborges
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Testing JSF
• JSF 2 stages invaluable for debugging and testing
– You want production-like testing
• Arquillian Warp extension is complete for JSF testing
– Client and Server-side testing
• Navigate to a JSF page, then check state on Server-side
• Drone/Selenium, Graphene often sufficient
– Client-side only
@brunoborges
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Testing EJB 3 and CDI
• EJB 3 much more testable as they are simple POJOs now
• Testing enabled either by
– Embedded containers
– Generic POJO dependency injection
– @Alternative
– XML deployment descriptors
– Interceptors
• Arquillian test enrichment through injection/scoping
• Both mock object testing and integration testing are possible
@brunoborges
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Testing JPA
• CDI, EJB 3 and Arquillian works towards JPA testing
– Isolated JPA testing possible, but unecessary
• JPA 2.1 data loading, schema generation
• Define data sources within the application, not in the container
• persistence.xml and orm.xml overrides
• Use embedded databases like Java DB, Derby, HSQL
• Tests can have transactions in Arquillian
@brunoborges
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Arquillian Support for Java EE-related containers
Container Support Method
GlassFish Embedded, Managed, Remote
WildFly, JBoss Embedded, Managed, Remote
Weld SE, Weld EE Embedded
TomEE, OpenEJB, OpenWebBeans Embedded, Managed, Remote
WebSphere, Liberty Embedded, Managed, Remote
Oracle WebLogic Managed, Remote
@brunoborges
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Unit Testing with Arquillian and WebLogic Server
14
WebLogic
Server
Instance
Test Case
Code Under Test
Libraries
Resolvers
ShrinkWrap
Start
Project
Execute Tests
Fetch Results
REST|JMX
$ mvn test
src
test
resources
dependencies
Arquillian Adapter
weblogic-remote-rest
Stop
REST
Deploy
Archive
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Demo
Arquillian and Maven
with local WebLogic
15@brunoborges
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Arquillian and WebLogic
On Docker and Cloud
@brunoborges
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Tools for Team Development
• Cloud Tooling
– Developer Cloud Service, integrated
with OEPE
– JCS supports 12.2.1, 12.1.3, and
10.3.6
– Leverage Popular Tools
– Maven plug-ins, updated public
Repo
– 12.1.3+ certified on Docker
• WebLogic Cloud APIs
– Automated Elasticity
– REST
– Partitions
– Oracle Cloud PaaS
Java
WebLogic Server
WebLogic
REST
Automated
Elasticity
Pluggable
Partitions
PaaS
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Java Cloud Service
Java EE platform for running business applications in the cloud
• Self-service application platform with advanced cloud tools
• Save time and cost with simplified provisioning
• Reduce down time: automated patching, backup, recovery
• Increase data and processing capacity on demand to scale
for new business needs
• Includes Oracle Coherence for caching and data grid
functions and Oracle Traffic Director for load balancing
• Pre-configured for Database and Developer Cloud Services
for complete cloud application management
JAVA CLOUD SERVICE
@brunoborges
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Java Cloud Service
Java Cloud Service Architecture
Enterprise Class Java Development and Deployment Platform
Developer
…
Messaging Cloud Service
Mobile Cloud Service
Database Cloud Service
Java SE Cloud Service
Developer Cloud Service
Application
Server
Application
Server
Application
Server
Application Cluster
Data Cluster
Managed
Coherence
Server
Managed
Coherence
Server
Managed
Coherence
Server
Load Balancer
@brunoborges
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Java Cloud Service Main Use Cases
Dev/Test in the Cloud New App Development Migrate Apps to Cloud
@brunoborges
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Demo
Java Cloud Service
Web Dashboard and REST APIs
Arquillian Remote
21@brunoborges
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
WebLogic and Docker
For more information
github.com/oracle/docker-images
@brunoborges
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
WebLogic Domain
Cluster
23
MS Container 1
NM
MS
App
JMS
(A) Topology - Lightweight VM – Example
Expand a Cluster: Add Managed Servers Into Domain
MS Container 2
NM
MS
App
JMS
MS Container 3
NM
MS
App
JMS
Admin Container
WLS
Admin Server
MS Container 4
NM
MS
App
JMS
MS Container 5
NM
MS
App
JMS
MS Container 6
NM
MS
App
JMS
# docker run –-name wlsadmin –d mywlsimage startWebLogic.sh
LBR WebTier
OHS
# docker run –-link wlsadmin:wlsadmin –d mywlsimage createServer.sh
# docker run –-link wlsadmin:wlsadmin –d mywlsimage createServer.sh
Linux Host (physical/virtual server 1)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Linux Host
server 0
Domain
Cluster 1
24
WLS Container 1
NM
MS
App
JMS
(A) Topology - Lightweight VM – Multiple Host
Starting with Docker 1.9+, containers can communicate across hosts using Overlay Network
WLS Container 2
NM
MS
App
JMS
WLS Container 3
NM
MS
App
JMS
Admin Container
WLS
Admin Server
WLS Container 4
NM
MS
App
JMS
WLS Container 5
NM
MS
App
JMS
WLS Container 6
NM
MS
App
JMS
Linux Host (physical/virtual server 2)Linux Host (physical/virtual server 1)
LBR Container
OHS
OTD
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Linux Host 0 Linux Host 3Linux Host 1 Linux Host 2
25
(B) Topology - Containerized Apps – Single/Multi Host
Load Balancing only. There is no real clustering replication. No failover.
LBR WebTier
OHS
WLSContainerized
AS
App
JMS
Domain App 0
WLSContainerized
AS
App
JMS
Domain App 0
WLSContainerized
AS
App
JMS
Domain App 0
WLSContainerized
AS
App
JMS
Domain App 1
WLSContainerized
AS
App
JMS
Domain App 1
WLSContainerized
AS
App
JMS
Domain App 1
root@host_1 # docker run –d mywlsapp0 startWebLogic.sh
root@host_2 # docker run –d mywlsapp0 startWebLogic.sh
root@host_3 # docker run –d mywlsapp0 startWebLogic.sh
root@host_1 # docker run –d mywlsapp1 startWebLogic.sh
root@host_2 # docker run –d mywlsapp1 startWebLogic.sh
root@host_3 # docker run –d mywlsapp1 startWebLogic.sh
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Demo
WebLogic on Docker
Arquillian Cube
26@brunoborges
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Try Oracle Java Cloud Service!
cloud.oracle.com/java
@brunoborges
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | @brunoborges
Java EE Testing Enablers and Tools

More Related Content

What's hot

HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016Ed Burns
 
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 JavaFXBruno Borges
 
Oracle Cloud: Anything as a Service
Oracle Cloud: Anything as a ServiceOracle Cloud: Anything as a Service
Oracle Cloud: Anything as a ServiceBruno Borges
 
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5Shaun Smith
 
WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015Pavel Bucek
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsDavid Delabassee
 
Microservices in the oracle cloud
Microservices in the oracle cloudMicroservices in the oracle cloud
Microservices in the oracle cloudJohan Louwers
 
WebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo ConectadoWebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo ConectadoBruno Borges
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsDavid Delabassee
 
Continuous Integration Fundamentals: Maven - OFM Canberra July 2014
Continuous Integration Fundamentals: Maven - OFM Canberra July 2014Continuous Integration Fundamentals: Maven - OFM Canberra July 2014
Continuous Integration Fundamentals: Maven - OFM Canberra July 2014Joelith
 
Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)Hendrik Ebbers
 
Developing Oracle Fusion Middleware Applications in the Cloud
Developing Oracle Fusion Middleware Applications in the CloudDeveloping Oracle Fusion Middleware Applications in the Cloud
Developing Oracle Fusion Middleware Applications in the CloudMatt Wright
 
How to Thrive on REST/WebSocket-Based Microservices
How to Thrive on REST/WebSocket-Based MicroservicesHow to Thrive on REST/WebSocket-Based Microservices
How to Thrive on REST/WebSocket-Based MicroservicesPavel Bucek
 
Java and Serverless - A Match Made In Heaven, Part 1
Java and Serverless - A Match Made In Heaven, Part 1Java and Serverless - A Match Made In Heaven, Part 1
Java and Serverless - A Match Made In Heaven, Part 1Curity
 

What's hot (20)

HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016
 
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
 
Oracle Cloud: Anything as a Service
Oracle Cloud: Anything as a ServiceOracle Cloud: Anything as a Service
Oracle Cloud: Anything as a Service
 
JavaCro'15 - HTTP2 Comes to Java! - David Delabassee
JavaCro'15 - HTTP2 Comes to Java! - David DelabasseeJavaCro'15 - HTTP2 Comes to Java! - David Delabassee
JavaCro'15 - HTTP2 Comes to Java! - David Delabassee
 
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
 
WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
 
JavaCro'15 - Managing Java at Scale Security and Compatibility Applications -...
JavaCro'15 - Managing Java at Scale Security and Compatibility Applications -...JavaCro'15 - Managing Java at Scale Security and Compatibility Applications -...
JavaCro'15 - Managing Java at Scale Security and Compatibility Applications -...
 
Microservices in the oracle cloud
Microservices in the oracle cloudMicroservices in the oracle cloud
Microservices in the oracle cloud
 
WebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo ConectadoWebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo Conectado
 
Java Desktop 2019
Java Desktop 2019Java Desktop 2019
Java Desktop 2019
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
 
Continuous Integration Fundamentals: Maven - OFM Canberra July 2014
Continuous Integration Fundamentals: Maven - OFM Canberra July 2014Continuous Integration Fundamentals: Maven - OFM Canberra July 2014
Continuous Integration Fundamentals: Maven - OFM Canberra July 2014
 
MySQL
MySQLMySQL
MySQL
 
JavaCro'15 - Java Cloud - Marin Tadić
JavaCro'15 - Java Cloud - Marin TadićJavaCro'15 - Java Cloud - Marin Tadić
JavaCro'15 - Java Cloud - Marin Tadić
 
Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)
 
Java 11 OMG
Java 11 OMGJava 11 OMG
Java 11 OMG
 
Developing Oracle Fusion Middleware Applications in the Cloud
Developing Oracle Fusion Middleware Applications in the CloudDeveloping Oracle Fusion Middleware Applications in the Cloud
Developing Oracle Fusion Middleware Applications in the Cloud
 
How to Thrive on REST/WebSocket-Based Microservices
How to Thrive on REST/WebSocket-Based MicroservicesHow to Thrive on REST/WebSocket-Based Microservices
How to Thrive on REST/WebSocket-Based Microservices
 
Java and Serverless - A Match Made In Heaven, Part 1
Java and Serverless - A Match Made In Heaven, Part 1Java and Serverless - A Match Made In Heaven, Part 1
Java and Serverless - A Match Made In Heaven, Part 1
 

Viewers also liked

Testing JSF with Arquillian and Selenium
Testing JSF with Arquillian and SeleniumTesting JSF with Arquillian and Selenium
Testing JSF with Arquillian and SeleniumLukáš Fryč
 
Real Java EE Testing with Arquillian and ShrinkWrap
Real Java EE Testing with Arquillian and ShrinkWrapReal Java EE Testing with Arquillian and ShrinkWrap
Real Java EE Testing with Arquillian and ShrinkWrapDan Allen
 
Oracle RAC on Extended Distance Clusters - Customer Examples
Oracle RAC on Extended Distance Clusters - Customer ExamplesOracle RAC on Extended Distance Clusters - Customer Examples
Oracle RAC on Extended Distance Clusters - Customer ExamplesMarkus Michalewicz
 
TDC2016SP - A arquitetura de um chat integrado ao checkout
TDC2016SP - A arquitetura de um chat integrado ao checkoutTDC2016SP - A arquitetura de um chat integrado ao checkout
TDC2016SP - A arquitetura de um chat integrado ao checkouttdc-globalcode
 
TDC2016SP - Desenvolva e Execute Aplicações Feitas para a Nuvem numa Arquitet...
TDC2016SP - Desenvolva e Execute Aplicações Feitas para a Nuvem numa Arquitet...TDC2016SP - Desenvolva e Execute Aplicações Feitas para a Nuvem numa Arquitet...
TDC2016SP - Desenvolva e Execute Aplicações Feitas para a Nuvem numa Arquitet...tdc-globalcode
 
TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços...
TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços...TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços...
TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços...tdc-globalcode
 
Oracle Flex ASM - What’s New and Best Practices by Jim Williams
Oracle Flex ASM - What’s New and Best Practices by Jim WilliamsOracle Flex ASM - What’s New and Best Practices by Jim Williams
Oracle Flex ASM - What’s New and Best Practices by Jim WilliamsMarkus Michalewicz
 
TDC2016SP - Testes unitários e testes de integração de aplicações Java utiliz...
TDC2016SP - Testes unitários e testes de integração de aplicações Java utiliz...TDC2016SP - Testes unitários e testes de integração de aplicações Java utiliz...
TDC2016SP - Testes unitários e testes de integração de aplicações Java utiliz...tdc-globalcode
 
Understanding Oracle RAC 12c Internals OOW13 [CON8806]
Understanding Oracle RAC 12c Internals OOW13 [CON8806]Understanding Oracle RAC 12c Internals OOW13 [CON8806]
Understanding Oracle RAC 12c Internals OOW13 [CON8806]Markus Michalewicz
 
Oracle Database In-Memory Meets Oracle RAC
Oracle Database In-Memory Meets Oracle RACOracle Database In-Memory Meets Oracle RAC
Oracle Database In-Memory Meets Oracle RACMarkus Michalewicz
 
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 12cBruno Borges
 
Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...
Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...
Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...Markus Michalewicz
 
Tests d'intégration avec Arquillian
Tests d'intégration avec ArquillianTests d'intégration avec Arquillian
Tests d'intégration avec ArquillianAlexis Hassler
 
TDC2016SP - Construindo Microserviços usando Spring Cloud
TDC2016SP - Construindo Microserviços usando Spring CloudTDC2016SP - Construindo Microserviços usando Spring Cloud
TDC2016SP - Construindo Microserviços usando Spring Cloudtdc-globalcode
 
Oracle RAC 12c Release 2 - Overview
Oracle RAC 12c Release 2 - OverviewOracle RAC 12c Release 2 - Overview
Oracle RAC 12c Release 2 - OverviewMarkus Michalewicz
 
The 21 Coolest Internet Of Things Gadgets
The 21 Coolest Internet Of Things GadgetsThe 21 Coolest Internet Of Things Gadgets
The 21 Coolest Internet Of Things GadgetsBernard Marr
 

Viewers also liked (16)

Testing JSF with Arquillian and Selenium
Testing JSF with Arquillian and SeleniumTesting JSF with Arquillian and Selenium
Testing JSF with Arquillian and Selenium
 
Real Java EE Testing with Arquillian and ShrinkWrap
Real Java EE Testing with Arquillian and ShrinkWrapReal Java EE Testing with Arquillian and ShrinkWrap
Real Java EE Testing with Arquillian and ShrinkWrap
 
Oracle RAC on Extended Distance Clusters - Customer Examples
Oracle RAC on Extended Distance Clusters - Customer ExamplesOracle RAC on Extended Distance Clusters - Customer Examples
Oracle RAC on Extended Distance Clusters - Customer Examples
 
TDC2016SP - A arquitetura de um chat integrado ao checkout
TDC2016SP - A arquitetura de um chat integrado ao checkoutTDC2016SP - A arquitetura de um chat integrado ao checkout
TDC2016SP - A arquitetura de um chat integrado ao checkout
 
TDC2016SP - Desenvolva e Execute Aplicações Feitas para a Nuvem numa Arquitet...
TDC2016SP - Desenvolva e Execute Aplicações Feitas para a Nuvem numa Arquitet...TDC2016SP - Desenvolva e Execute Aplicações Feitas para a Nuvem numa Arquitet...
TDC2016SP - Desenvolva e Execute Aplicações Feitas para a Nuvem numa Arquitet...
 
TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços...
TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços...TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços...
TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços...
 
Oracle Flex ASM - What’s New and Best Practices by Jim Williams
Oracle Flex ASM - What’s New and Best Practices by Jim WilliamsOracle Flex ASM - What’s New and Best Practices by Jim Williams
Oracle Flex ASM - What’s New and Best Practices by Jim Williams
 
TDC2016SP - Testes unitários e testes de integração de aplicações Java utiliz...
TDC2016SP - Testes unitários e testes de integração de aplicações Java utiliz...TDC2016SP - Testes unitários e testes de integração de aplicações Java utiliz...
TDC2016SP - Testes unitários e testes de integração de aplicações Java utiliz...
 
Understanding Oracle RAC 12c Internals OOW13 [CON8806]
Understanding Oracle RAC 12c Internals OOW13 [CON8806]Understanding Oracle RAC 12c Internals OOW13 [CON8806]
Understanding Oracle RAC 12c Internals OOW13 [CON8806]
 
Oracle Database In-Memory Meets Oracle RAC
Oracle Database In-Memory Meets Oracle RACOracle Database In-Memory Meets Oracle RAC
Oracle Database In-Memory Meets Oracle RAC
 
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
 
Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...
Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...
Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...
 
Tests d'intégration avec Arquillian
Tests d'intégration avec ArquillianTests d'intégration avec Arquillian
Tests d'intégration avec Arquillian
 
TDC2016SP - Construindo Microserviços usando Spring Cloud
TDC2016SP - Construindo Microserviços usando Spring CloudTDC2016SP - Construindo Microserviços usando Spring Cloud
TDC2016SP - Construindo Microserviços usando Spring Cloud
 
Oracle RAC 12c Release 2 - Overview
Oracle RAC 12c Release 2 - OverviewOracle RAC 12c Release 2 - Overview
Oracle RAC 12c Release 2 - Overview
 
The 21 Coolest Internet Of Things Gadgets
The 21 Coolest Internet Of Things GadgetsThe 21 Coolest Internet Of Things Gadgets
The 21 Coolest Internet Of Things Gadgets
 

Similar to Java EE Testing Enablers and Tools

What's New and Noteworthy on Oracle CAF 12.1.3
What's New and Noteworthy on Oracle CAF 12.1.3What's New and Noteworthy on Oracle CAF 12.1.3
What's New and Noteworthy on Oracle CAF 12.1.3Bruno Borges
 
WebLogic 12c - OMF Canberra June 2014
WebLogic 12c - OMF Canberra June 2014WebLogic 12c - OMF Canberra June 2014
WebLogic 12c - OMF Canberra June 2014Joelith
 
Oracle Cloud Storage Service & Oracle Database Backup Cloud Service
Oracle Cloud Storage Service & Oracle Database Backup Cloud ServiceOracle Cloud Storage Service & Oracle Database Backup Cloud Service
Oracle Cloud Storage Service & Oracle Database Backup Cloud ServiceJean-Philippe PINTE
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the CloudBruno Borges
 
OOW-5185-Hybrid Cloud
OOW-5185-Hybrid CloudOOW-5185-Hybrid Cloud
OOW-5185-Hybrid CloudBen Duan
 
JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best PracticesDavid Delabassee
 
WebSockets in Enterprise Applications
WebSockets in Enterprise ApplicationsWebSockets in Enterprise Applications
WebSockets in Enterprise ApplicationsPavel Bucek
 
Node.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development TechniquesNode.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development TechniquesChristopher Jones
 
Persistent storage with containers By Kaslin Fields
Persistent storage with containers By Kaslin FieldsPersistent storage with containers By Kaslin Fields
Persistent storage with containers By Kaslin FieldsOracle Developers
 
[db tech showcase Tokyo 2018] #dbts2018 #B31 『1,2,3 and Done! 3 easy ways to ...
[db tech showcase Tokyo 2018] #dbts2018 #B31 『1,2,3 and Done! 3 easy ways to ...[db tech showcase Tokyo 2018] #dbts2018 #B31 『1,2,3 and Done! 3 easy ways to ...
[db tech showcase Tokyo 2018] #dbts2018 #B31 『1,2,3 and Done! 3 easy ways to ...Insight Technology, Inc.
 
OOW16 - Oracle E-Business Suite in Oracle Cloud: Technical Insight [CON6723]
OOW16 - Oracle E-Business Suite in Oracle Cloud: Technical Insight [CON6723]OOW16 - Oracle E-Business Suite in Oracle Cloud: Technical Insight [CON6723]
OOW16 - Oracle E-Business Suite in Oracle Cloud: Technical Insight [CON6723]vasuballa
 
RMOUG MySQL 5.7 New Features
RMOUG MySQL 5.7 New FeaturesRMOUG MySQL 5.7 New Features
RMOUG MySQL 5.7 New FeaturesDave Stokes
 
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 OpenJDKWolfgang Weigend
 
Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)
Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)
Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)jeckels
 
클라우드 시대 완벽한 데이터 관리 방법
클라우드 시대 완벽한 데이터 관리 방법 클라우드 시대 완벽한 데이터 관리 방법
클라우드 시대 완벽한 데이터 관리 방법 오라클 클라우드
 
Extending Build to the Client: A Maven User's Guide to Grunt.js
Extending Build to the Client: A Maven User's Guide to Grunt.jsExtending Build to the Client: A Maven User's Guide to Grunt.js
Extending Build to the Client: A Maven User's Guide to Grunt.jsPetr Jiricka
 
Introduction to MySQL
Introduction to MySQLIntroduction to MySQL
Introduction to MySQLTed Wennmark
 

Similar to Java EE Testing Enablers and Tools (20)

What's New and Noteworthy on Oracle CAF 12.1.3
What's New and Noteworthy on Oracle CAF 12.1.3What's New and Noteworthy on Oracle CAF 12.1.3
What's New and Noteworthy on Oracle CAF 12.1.3
 
WebLogic 12c - OMF Canberra June 2014
WebLogic 12c - OMF Canberra June 2014WebLogic 12c - OMF Canberra June 2014
WebLogic 12c - OMF Canberra June 2014
 
JVMs in Containers
JVMs in ContainersJVMs in Containers
JVMs in Containers
 
Oracle Cloud Storage Service & Oracle Database Backup Cloud Service
Oracle Cloud Storage Service & Oracle Database Backup Cloud ServiceOracle Cloud Storage Service & Oracle Database Backup Cloud Service
Oracle Cloud Storage Service & Oracle Database Backup Cloud Service
 
Oracle Cloud
Oracle CloudOracle Cloud
Oracle Cloud
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
 
OOW-5185-Hybrid Cloud
OOW-5185-Hybrid CloudOOW-5185-Hybrid Cloud
OOW-5185-Hybrid Cloud
 
JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best Practices
 
WebSockets in Enterprise Applications
WebSockets in Enterprise ApplicationsWebSockets in Enterprise Applications
WebSockets in Enterprise Applications
 
Node.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development TechniquesNode.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development Techniques
 
Persistent storage with containers By Kaslin Fields
Persistent storage with containers By Kaslin FieldsPersistent storage with containers By Kaslin Fields
Persistent storage with containers By Kaslin Fields
 
[db tech showcase Tokyo 2018] #dbts2018 #B31 『1,2,3 and Done! 3 easy ways to ...
[db tech showcase Tokyo 2018] #dbts2018 #B31 『1,2,3 and Done! 3 easy ways to ...[db tech showcase Tokyo 2018] #dbts2018 #B31 『1,2,3 and Done! 3 easy ways to ...
[db tech showcase Tokyo 2018] #dbts2018 #B31 『1,2,3 and Done! 3 easy ways to ...
 
OOW16 - Oracle E-Business Suite in Oracle Cloud: Technical Insight [CON6723]
OOW16 - Oracle E-Business Suite in Oracle Cloud: Technical Insight [CON6723]OOW16 - Oracle E-Business Suite in Oracle Cloud: Technical Insight [CON6723]
OOW16 - Oracle E-Business Suite in Oracle Cloud: Technical Insight [CON6723]
 
RMOUG MySQL 5.7 New Features
RMOUG MySQL 5.7 New FeaturesRMOUG MySQL 5.7 New Features
RMOUG MySQL 5.7 New Features
 
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
 
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ć
 
Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)
Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)
Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)
 
클라우드 시대 완벽한 데이터 관리 방법
클라우드 시대 완벽한 데이터 관리 방법 클라우드 시대 완벽한 데이터 관리 방법
클라우드 시대 완벽한 데이터 관리 방법
 
Extending Build to the Client: A Maven User's Guide to Grunt.js
Extending Build to the Client: A Maven User's Guide to Grunt.jsExtending Build to the Client: A Maven User's Guide to Grunt.js
Extending Build to the Client: A Maven User's Guide to Grunt.js
 
Introduction to MySQL
Introduction to MySQLIntroduction to MySQL
Introduction to MySQL
 

More from Bruno Borges

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 KubernetesBruno Borges
 
[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 KubernetesBruno Borges
 
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 AppsBruno Borges
 
Making Sense of Serverless Computing
Making Sense of Serverless ComputingMaking Sense of Serverless Computing
Making Sense of Serverless ComputingBruno Borges
 
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 DevelopersBruno Borges
 
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 CloudBruno Borges
 
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...Bruno Borges
 
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?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
 
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]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
 
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]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 JavaFXBruno Borges
 
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 WebSocketsBruno Borges
 
The Developers Conference 2014 - Oracle Keynote
The Developers Conference 2014 - Oracle KeynoteThe Developers Conference 2014 - Oracle Keynote
The Developers Conference 2014 - Oracle KeynoteBruno Borges
 
Crie Aplicações Mobile Híbridas Escritas em Java, para iOS e Android
Crie Aplicações Mobile Híbridas Escritas em Java, para iOS e AndroidCrie Aplicações Mobile Híbridas Escritas em Java, para iOS e Android
Crie Aplicações Mobile Híbridas Escritas em Java, para iOS e AndroidBruno Borges
 
Servidores de Aplicação: por que ainda precisamos deles?
Servidores de Aplicação: por que ainda precisamos deles?Servidores de Aplicação: por que ainda precisamos deles?
Servidores de Aplicação: por que ainda precisamos deles?Bruno Borges
 
Migrando de Applets para JavaFX, e Modelos de Distribuição de Apps
Migrando de Applets para JavaFX, e Modelos de Distribuição de AppsMigrando de Applets para JavaFX, e Modelos de Distribuição de Apps
Migrando de Applets para JavaFX, e Modelos de Distribuição de AppsBruno Borges
 
Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7Bruno 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...
 
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]
 
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
 
The Developers Conference 2014 - Oracle Keynote
The Developers Conference 2014 - Oracle KeynoteThe Developers Conference 2014 - Oracle Keynote
The Developers Conference 2014 - Oracle Keynote
 
Crie Aplicações Mobile Híbridas Escritas em Java, para iOS e Android
Crie Aplicações Mobile Híbridas Escritas em Java, para iOS e AndroidCrie Aplicações Mobile Híbridas Escritas em Java, para iOS e Android
Crie Aplicações Mobile Híbridas Escritas em Java, para iOS e Android
 
Servidores de Aplicação: por que ainda precisamos deles?
Servidores de Aplicação: por que ainda precisamos deles?Servidores de Aplicação: por que ainda precisamos deles?
Servidores de Aplicação: por que ainda precisamos deles?
 
Migrando de Applets para JavaFX, e Modelos de Distribuição de Apps
Migrando de Applets para JavaFX, e Modelos de Distribuição de AppsMigrando de Applets para JavaFX, e Modelos de Distribuição de Apps
Migrando de Applets para JavaFX, e Modelos de Distribuição de Apps
 
Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7
 

Recently uploaded

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 

Recently uploaded (20)

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 

Java EE Testing Enablers and Tools

  • 1. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Java EE Testing with Arquillian, using Docker, or the Cloud SES12023 – JavaOne LAD 2016 Bruno Borges Principal Product Manager Oracle Cloud @brunoborges
  • 2. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | •Bruno Borges –Product Manager / Developer Advocate –Oracle Cloud –Twitter: @brunoborges Speaker @brunoborges
  • 3. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Java EE Testing with Arquillian, using Docker, or the Cloud @brunoborges
  • 4. Copyright © 2016, 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. @brunoborges
  • 5. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Java EE Testing Enablers @brunoborges
  • 6. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | How to test Java EE applications • No direct support (i.e. testing features) within the platform • Although, Java EE provides other features that enable testing – Arquillian is an integration testing platform that takes advantage of these features • Other solutions available, but Arquillian is considerably the best @brunoborges
  • 7. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 7 Testing with Arquillian Java EE Container src test resources dependen cies • Test Case • Code Under Test • Libraries • Resolvers ShrinkWrap Start Project Execute Tests Fetch Results Deploy • Testing platform for Java Applications • Functions – Server lifecycle management – Packages application + test code – Deploys, executes, reports test results • What we’re doing with it – Using Adapters internally – Contributing to project – REST • Adapters available now Oracle Confidential - Do Not Redistribute
  • 8. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Testing Servlets • How to bootstrap containers from tests – Arquillian does this by coordinating lifecycle – Production-like environment – Isolated tests • JAX-RS Client API helps a lot, being the caller – Other alternatives are HtmlUnit, HttpUnit, Arquillian Warp extension – Java SE 9 considering a better native HTTP client API @brunoborges
  • 9. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Testing JAX-RS, WebSockets, JAX-WS • Same concept as Servlets testing • You can use the client APIs, of these specifications, with Arquillian • For more complex tests consider tools like soapUI for REST/SOAP – JUnit integration possible @brunoborges
  • 10. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Testing JSF • JSF 2 stages invaluable for debugging and testing – You want production-like testing • Arquillian Warp extension is complete for JSF testing – Client and Server-side testing • Navigate to a JSF page, then check state on Server-side • Drone/Selenium, Graphene often sufficient – Client-side only @brunoborges
  • 11. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Testing EJB 3 and CDI • EJB 3 much more testable as they are simple POJOs now • Testing enabled either by – Embedded containers – Generic POJO dependency injection – @Alternative – XML deployment descriptors – Interceptors • Arquillian test enrichment through injection/scoping • Both mock object testing and integration testing are possible @brunoborges
  • 12. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Testing JPA • CDI, EJB 3 and Arquillian works towards JPA testing – Isolated JPA testing possible, but unecessary • JPA 2.1 data loading, schema generation • Define data sources within the application, not in the container • persistence.xml and orm.xml overrides • Use embedded databases like Java DB, Derby, HSQL • Tests can have transactions in Arquillian @brunoborges
  • 13. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Arquillian Support for Java EE-related containers Container Support Method GlassFish Embedded, Managed, Remote WildFly, JBoss Embedded, Managed, Remote Weld SE, Weld EE Embedded TomEE, OpenEJB, OpenWebBeans Embedded, Managed, Remote WebSphere, Liberty Embedded, Managed, Remote Oracle WebLogic Managed, Remote @brunoborges
  • 14. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Unit Testing with Arquillian and WebLogic Server 14 WebLogic Server Instance Test Case Code Under Test Libraries Resolvers ShrinkWrap Start Project Execute Tests Fetch Results REST|JMX $ mvn test src test resources dependencies Arquillian Adapter weblogic-remote-rest Stop REST Deploy Archive
  • 15. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Demo Arquillian and Maven with local WebLogic 15@brunoborges
  • 16. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Arquillian and WebLogic On Docker and Cloud @brunoborges
  • 17. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Tools for Team Development • Cloud Tooling – Developer Cloud Service, integrated with OEPE – JCS supports 12.2.1, 12.1.3, and 10.3.6 – Leverage Popular Tools – Maven plug-ins, updated public Repo – 12.1.3+ certified on Docker • WebLogic Cloud APIs – Automated Elasticity – REST – Partitions – Oracle Cloud PaaS Java WebLogic Server WebLogic REST Automated Elasticity Pluggable Partitions PaaS
  • 18. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Java Cloud Service Java EE platform for running business applications in the cloud • Self-service application platform with advanced cloud tools • Save time and cost with simplified provisioning • Reduce down time: automated patching, backup, recovery • Increase data and processing capacity on demand to scale for new business needs • Includes Oracle Coherence for caching and data grid functions and Oracle Traffic Director for load balancing • Pre-configured for Database and Developer Cloud Services for complete cloud application management JAVA CLOUD SERVICE @brunoborges
  • 19. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Java Cloud Service Java Cloud Service Architecture Enterprise Class Java Development and Deployment Platform Developer … Messaging Cloud Service Mobile Cloud Service Database Cloud Service Java SE Cloud Service Developer Cloud Service Application Server Application Server Application Server Application Cluster Data Cluster Managed Coherence Server Managed Coherence Server Managed Coherence Server Load Balancer @brunoborges
  • 20. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Java Cloud Service Main Use Cases Dev/Test in the Cloud New App Development Migrate Apps to Cloud @brunoborges
  • 21. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Demo Java Cloud Service Web Dashboard and REST APIs Arquillian Remote 21@brunoborges
  • 22. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | WebLogic and Docker For more information github.com/oracle/docker-images @brunoborges
  • 23. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | WebLogic Domain Cluster 23 MS Container 1 NM MS App JMS (A) Topology - Lightweight VM – Example Expand a Cluster: Add Managed Servers Into Domain MS Container 2 NM MS App JMS MS Container 3 NM MS App JMS Admin Container WLS Admin Server MS Container 4 NM MS App JMS MS Container 5 NM MS App JMS MS Container 6 NM MS App JMS # docker run –-name wlsadmin –d mywlsimage startWebLogic.sh LBR WebTier OHS # docker run –-link wlsadmin:wlsadmin –d mywlsimage createServer.sh # docker run –-link wlsadmin:wlsadmin –d mywlsimage createServer.sh Linux Host (physical/virtual server 1)
  • 24. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Linux Host server 0 Domain Cluster 1 24 WLS Container 1 NM MS App JMS (A) Topology - Lightweight VM – Multiple Host Starting with Docker 1.9+, containers can communicate across hosts using Overlay Network WLS Container 2 NM MS App JMS WLS Container 3 NM MS App JMS Admin Container WLS Admin Server WLS Container 4 NM MS App JMS WLS Container 5 NM MS App JMS WLS Container 6 NM MS App JMS Linux Host (physical/virtual server 2)Linux Host (physical/virtual server 1) LBR Container OHS OTD
  • 25. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Linux Host 0 Linux Host 3Linux Host 1 Linux Host 2 25 (B) Topology - Containerized Apps – Single/Multi Host Load Balancing only. There is no real clustering replication. No failover. LBR WebTier OHS WLSContainerized AS App JMS Domain App 0 WLSContainerized AS App JMS Domain App 0 WLSContainerized AS App JMS Domain App 0 WLSContainerized AS App JMS Domain App 1 WLSContainerized AS App JMS Domain App 1 WLSContainerized AS App JMS Domain App 1 root@host_1 # docker run –d mywlsapp0 startWebLogic.sh root@host_2 # docker run –d mywlsapp0 startWebLogic.sh root@host_3 # docker run –d mywlsapp0 startWebLogic.sh root@host_1 # docker run –d mywlsapp1 startWebLogic.sh root@host_2 # docker run –d mywlsapp1 startWebLogic.sh root@host_3 # docker run –d mywlsapp1 startWebLogic.sh
  • 26. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Demo WebLogic on Docker Arquillian Cube 26@brunoborges
  • 27. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Try Oracle Java Cloud Service! cloud.oracle.com/java @brunoborges
  • 28. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | @brunoborges