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

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 

Recently uploaded (20)

The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 

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