19
JBoss Wise: breaking barriers to WS testing JBoss Wise: breaking barriers to WS testing Alessio Soldano [email protected] Principal Software Eng. JBoss - Red Hat October 22nd, 2013 Milan JBoss User Group

JBoss Wise: breaking barriers to WS testing

Embed Size (px)

DESCRIPTION

Alessio Soldano - Principal Sw Eng. @ Red Hat JBug Milano October 2013 JBoss Wise [1] is a library for simplifying webservices invocation and testing. It provides solutions for easy browsing of WSDL models, zero-code invocation of WS operations and for lowering the technical entry level to WS testing. The presentation will go through the recently added functionalities; the focus will then shift to WS testing, with a demo of the available GUI and an overview of the future enhancement efforts. [1] http://www.jboss.org/wise

Citation preview

Page 1: JBoss Wise: breaking barriers to WS testing

JBoss Wise: breaking barriers to WS testingJBoss Wise: breaking barriers to WS testing

Alessio [email protected]

Principal Software Eng.JBoss - Red Hat

October 22nd, 2013Milan JBoss User Group

Page 2: JBoss Wise: breaking barriers to WS testing

Let's invoke a WS in Java...● You've been given a WSDL (reference)...

● ...so you start by generating the stubs (JAXWS tools)

Page 3: JBoss Wise: breaking barriers to WS testing

Let's invoke a WS in Java...● Then you import the sources in your IDE...

● ... finally you code against them an invoke the endpoint

Page 4: JBoss Wise: breaking barriers to WS testing

Perhaps you automate the process a bit...● Maven plugins for generating the stubs automatically

... but ...

Page 5: JBoss Wise: breaking barriers to WS testing

Pros / Cons● Your code is actually bound to the generated classes

(client server coupling)–

● Good solution for clients of stable endpoints

● Not suitable to quick testing of multiple/different endpoints

Page 6: JBoss Wise: breaking barriers to WS testing

JBoss Wise● Java library for easily invoking webservices

● Built on top of JBossWS stack

● Goals

‣Effective client/server decoupling

‣Easy browsing of WSDL models

‣(nearly)zero-code invocation of WS operations

‣Lowering the technical entry level to WS testing

Page 7: JBoss Wise: breaking barriers to WS testing

Dynamic client API● Get a dynamic client for a WSDL operation and invoke...

Page 8: JBoss Wise: breaking barriers to WS testing

Dynamic client API● or browse the model to choose the method to call

● What about parameters?

‣ non-trivial endpoints get and return structured data...

‣ we need Object instances to put in the invocation Map...

Page 9: JBoss Wise: breaking barriers to WS testing

WebParameter inspection + reflection● Get Java type from WebParameter instances

● Use reflection to build up the desired data

● ... working on classes generated on-the-fly by Wise ...

● ugly, unpractical, etc.

Page 10: JBoss Wise: breaking barriers to WS testing

Wise mappers● Allow users to invoke endpoints using their own model

● Map user model to internally generated client classes

● Any custom mapper can be implemented

● ... moving the problem to defining the proper vehicle and transformation of user data into target endpoint parameters

Page 11: JBoss Wise: breaking barriers to WS testing

Smooks mapper● “Smooks is an extensible framework for building

applications for processing XML and non XML data (CSV, Java, ...) using Java”

with proper Smooks mappers, Wise can invoke a WS endpoint given any model (even in different formats) !

Page 12: JBoss Wise: breaking barriers to WS testing

Smooks mapper● Define the request and response mappings..

● ... and invoke providing the user model

Page 13: JBoss Wise: breaking barriers to WS testing

Tree modelSo the request / response model is really the core concept here... what about something very simple yet generic, with String only values?

● Tree-like view model

● kind of a DOM tree built on the

valid WS req/res space

Page 14: JBoss Wise: breaking barriers to WS testing

Tree model usage● Get tree view model and populate it...

● Invoke the endpoint and convert the result in another tree...

Page 15: JBoss Wise: breaking barriers to WS testing

Tree model advantages● Detyped model... but stil l compliant to the WSDL/schema

● Simple and generic...

enough to build a GUI !

Demo Time :-)

Page 16: JBoss Wise: breaking barriers to WS testing

Wise GUI● Web based

‣ no need for Eclipse / IDE

‣ usable everywhere (even on mobile...)

‣ deployed on JBoss (even on Openshift...)

● Focus on the data, not on the technology

‣ No WS, XML or Java knowledge required

‣ Fast / agile WS testing

‣ Enable business acceptance tests from analysts

Page 17: JBoss Wise: breaking barriers to WS testing

Wise Invokes Services Easily● Wise is built on top of a JavaEE certified stack (JBossWS)

... this ensures core correctness and interoperability.

● You're consuming WS services (based on WSDL / XSD)

‣ you're granted compliance with the contract

‣ ... but you don't get your hands dirty with SOAP ;-)

Is it really that complex and inconvenient to call one of those dreaded WSDL based WS services? ;-)

Page 18: JBoss Wise: breaking barriers to WS testing

Future features (maybe...)● GUI user management

● Import / export GUI environment

● Multiple authentication options

● Explicit WS-Policy support

● Smooks Eclipse plugin for Wise mappers generation?

● ...

... but we need help from YOU !

Page 19: JBoss Wise: breaking barriers to WS testing

Links● Project homepage: www.jboss.org/wise

● Blog: jbosswise.blogspot.com

● Code for this presentation: https://github.com/asoldano/demo

Write us! Contribution is more the welcome!