Arquillian Warp 1.0.0.Alpha3 Released

The Arquillian team is proud to announce the 1.0.0.Alpha3 release of the Arquillian Warp component!

Warp Alpha3 is a last stop to Beta releases which brings mainly enhancements and bug fixes, but also a pretty new documentation:

Documentation Draft

Even though a documentation draft isn’t published yet to the Arquillian site, it is almost completed.

This documentation describes; where Warp’s place in a space of integration testing, how to start with Warp in your project, what features are supported by Warp API and few words about debugging tests and an extension architecture.

Highlighted Enhancements

Jacoco Support

Thanks to Aris Tzoumas, Warp users can now enjoy coverage reporting using arquillian-extension-jacoco. But the contribution was bigger than just that since it enabled a lot of other features.

Meaningful Reporting

The concepts Warp builds upon aren’t really complex, however the implementation needs to make sure that users can understand when something breaks. Warp tries to add as much contextual information as needed to overcome common issues together with a hint on how to resolve an issue.

We hope to improve reporting even more, but here we rely on you – don’t hesitate to report to us when your experience with Warp isn’t as smooth as it should be.

JSF Managed Beans Injection

You can now inject any managed artifact through EL expressions using standard ManagedProperty annotation:

@ManagedProperty(“#{facesContext.application}”) Application application;
@ManagedProperty(“#{myBean}”) SomeFacesBean myBean;

SPI enhancements

Independent Bi-directional Communication

During the Alpha3 development we have identified many common problems which came down to basics that Alpha2 was built upon: piggy-backing on HTTP request/response and wrapping HttpServletResponse.

In order to overcome those problems, Warp now leverages an internal SPI for bi-directional direct communication between test and server (originally created by Aris as a way to support Jacoco).

This is a fundamental change as it changes the way Warp transfers inspections and it also opens up to completely new possibilities by creating a tigher relationship between a test and a server.

Important Bug Fixes

Do not interfere with non-Warp tests

Warp Alpha2 wasn’t really a good citizen and it tried to hook into all tests even though they weren’t annotated with @WarpTest. Those problems should now be addressed.

Enjoy the Release

Alpha3 comes with lot of enhancements which improves the user experience, but it also brings some improvements which were needed to support rising REST and SeamTest migration layer extensions driven by Jakub Narloch and Marek Schmidt.

Let us know if we can smoothly enter a Beta releases train!

What is Arquillian?

Arquillian is open source software that empowers you to test JVM-based applications more effectively. Created to defend the software galaxy from bugs, Arquillian brings your test to the runtime so you can focus on testing your application's behavior rather than managing the runtime. Using Arquillian, you can develop a comprehensive suite of tests from the convenience of your IDE and run them in any IDE, build tool or continuous integration environment.

Release details

Component Arquillian Warp
Version 1.0.0.Alpha3 view tag
Release date 2013-06-20
Released by Lukas Fryc
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-warp-bom pom
  • org.jboss.arquillian.extension » arquillian-warp-api jar pom
  • org.jboss.arquillian.extension » arquillian-warp-spi jar pom
  • org.jboss.arquillian.extension » arquillian-warp-impl jar pom
  • org.jboss.arquillian.extension » arquillian-warp-jsf jar pom

Release notes and resolved issues 24

Bug fixes + Jacoco support

Bug
  • ARQ-1027 - Support CommandService Protocol SPI via Warp Protocol
  • ARQ-1291 - Warp: single request execution does enrich only first request
  • ARQ-1320 - Warp - The NonWrittingResponse does not override the flushBuffer() method allowing for committing response.
  • ARQ-1324 - Warp HTTP request header size beyond reasonable limits
  • ARQ-1326 - Warp: the @RunAsClient tests uses proxy even in case the test is not @WarpTest
  • ARQ-1365 - Warp: CommandEventBus doesn't support (port) redirects
  • ARQ-1369 - Warp: TestContainerToClientChannel sporadically fails
  • ARQ-1395 - CommandBusService is started even tho the test is not a @WarpTest
  • ARQ-1396 - CommandEventBusService use wrong metadata to match Request URI
  • ARQ-1397 - Multiple problems running Warp on WildFly 8.0.0.Alpha1
Component Upgrade
  • ARQ-1140 - Warp: upgrade LittleProxy to 0.5
  • ARQ-1415 - Warp: upgrade to Arquillian Core 1.0.4
  • ARQ-1416 - Warp: upgrade to ShrinkWrap resolver 1.0.0
Enhancement
  • ARQ-934 - Warp: Reuse manager during whole test
  • ARQ-1325 - Warp: replace piggy-backing on request/response with direct test->filter communication
  • ARQ-1353 - Warp: propagate manager's context to proxy correctly
  • ARQ-1361 - Warp: bring more clarity to ServerResponseTimeoutException failures
Feature Request
  • ARQ-1312 - Warp: introduce RequestProcessingDelegationService
  • ARQ-1319 - Warp: Jacoco support
  • ARQ-1367 - Warp: wrapped response causes NPE
  • ARQ-1368 - Warp: reverse order of chaining of request builder
  • ARQ-1371 - Warp: enricher allowing to inject JSF managed beans / properties
  • ARQ-1386 - Warp: provide a meaningful message when test isn't annotated with @WarpTest
  • ARQ-1400 - Failure to create Enrichment hidden by Client Assertion

Thanks to the following list of contributors: Lukas Fryc, Atzoum, Aslak Knutsen, Jakub Narloch