Arquillian Warp 1.0.0.Alpha7 Released

Since we wrote this post we didn't laze around. Check our latest announcement.

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

This is a yet another bug fixing release. Since Warp is a young extension, there are many pain points and gaps. But these are successfully being filled with the help of our awesome community.

So what’s in Alpha7 for you?

Request and response objects mixed up

Thanks to Aslak, we have identified and fixed one of the most annoying bugs in Warp’s history:

Objects in RequestContext (such as HttpServletRequest, HttpServletResponse and FilterChain) were previously identified by requests #hashCode(). But it turns up that requests’ hash code is actually far from being unique across multiple requests. Now we have Warp requests identified by UUID as a request’s attribute.

The issue was especially perceptible with Warp on the WildFly / Undertow container.

Filter chain fixed

We have identified integration issues between WarpFilter and frameworks that use custom filters such as OCPSoft Rewrite.

Warp is now the first filter in the chain of filters – it is configured to be prepended to other filters (still it may theoretically compete with other filters configured the same way).

It is also serving just REQUEST and ASYNC dispatchers (no FORWARD as it would mean warping one request multiple times).

Improved interoperability

Besides full compatibility with WildFly / EAP / JBoss AS, Warp now works just fine with TomEE 1.6 and Glassfish 4.0.

What’s next?

I think we have stabilized a fair amount of integration issues and we are close to fully passing the interoperability tests.

But still there are some features that are missing, such as:

  • verification of asynchronous requests
  • support for Java EE 5 servers
    • at this point I’m reluctant to add the support (it’s just matter of manual configuration of WarpFilter in web.xml anyway)
  • guide / documentation

Let us know in the discussion bellow what are the “must have” features and what are you struggling with that we should include before Beta release.

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.Alpha7 view tag
Release date 2014-03-11
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 javadoc pom
  • org.jboss.arquillian.extension » arquillian-warp-spi jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-warp-impl jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-warp-jsf jar javadoc pom

Release notes and resolved issues 7

Bug Fixes - RequestContext + filters interoperatiblity

Component Upgrade
  • ARQ-1660 - Warp: Upgrade to TomEE 1.6
  • ARQ-1661 - Warp: Upgrade GlassFish to 4.0
  • ARQ-1662 - Warp: Upgrade to WildFly 8.0.0.Final
Enhancement
  • ARQ-1682 - Expose SPI events for ProcessHttpRequest, ProcessWarpRequest and ExecuteWarp
Bug
  • ARQ-1615 - Warp JSF: detect and sanitize FacesContextWrapper chain
  • ARQ-1656 - Propogate Contextual operations on HttpFilters
  • ARQ-1683 - Warp: mixes up objects in RequestContext due to wrong use of HttpServletRequest#hashCode()

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