Arquillian Warp 1.0.0.Alpha8 Released

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

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.Alpha8 view tag
Release date 2016-10-11
Released by Matous Jobanek
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 8

Component Upgrade
  • ARQ-1988 - Warp HTTPCore 4.3 dependency conflict with latest Drone Alpha5
  • ARQ-2013 - Update Arquillian, Drone, Resolver, JaCoCo and JUnit to newer version
Enhancement
  • ARQ-1237 - Warp: use PortProber to determine free ports for proxy
  • ARQ-2026 - Client activity failures should have more priority over server activities
  • ARQ-2029 - Tell us the HTTP method in debug mode
Feature Request
  • ARQ-1272 - Warp: avoid need for user-defined serialVersionUID
Bug
  • ARQ-1923 - Cannot build Warp 1.0.0.Alpha7 with OpenJDK 8
  • ARQ-2014 - When warp is on classpath then almost every non-warp arquillian test fails

Thanks to the following list of contributors: Matous Jobanek, Christian Schulz, Lukas Fryc, Aslak Knutsen

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

Arquillian Warp 1.0.0.Alpha6 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.Alpha6 release of the Arquillian Warp component!

This release fixes some regressions found in Alpha5.

WildFly Support

We had some problems with enriching the inspections with WildFly.

We’ve switched our integration tests to run with WildFly 8.0.0.CR1 by default.

Filtering Requests by GET/POST Parameter

As you may notice, Warp didn’t support filtering the requests. Moreover Alpha5 didn’t even have a way to get the relevant information from the HttpRequest interface. This is now fixed with Alpha6 and you can start using this new API:

Warp
   .activity(Activity)
   .observe(request().parameter().equal("id", "12345"))
   .inspect(Inspection);

You can find a better example in the functional test suite.

Upgrade to LittleProxy 1.0.0-beta-5 and Netty 4

Warp internally uses LittleProxy (that uses Netty) for request interception and enrichment.

Even though this shouldn’t affect you negatively, there might be some regressions.

But on a positive note, we are no longer seeing some intermittent issues (the test got occasionally stuck) after upgraded from LittleProxy 0.5.3.

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.Alpha6 view tag
Release date 2014-01-17
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

Component Upgrade
  • ARQ-1616 - Warp: upgrade WildFly to CR1
  • ARQ-1621 - Upgrade LittleProxy to 1.0.0-beta-5
Enhancement
  • ARQ-1562 - Warp: doesn't provide a built-in support for matching GET/POST requests by their parameters
Feature Request
  • ARQ-1620 - Switch integration tests to WildFly as a default container
  • ARQ-1622 - Warp: resolves wrong URL for communication with proxy
Bug
  • ARQ-1561 - Warp proxy tries to rewrite binary files
  • ARQ-1598 - Warp on WildFly: CDI fails to inject into inspection that is inner static class

Thanks to the following list of contributors: Lukas Fryc

Arquillian Warp 1.0.0.Alpha5 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.Alpha5 release of the Arquillian Warp component!

This release was focused on fixing issues and setting up container interoperability tests.

I’m really proud for all the fixes which you submitted and, as I promised, we release this Alpha to allow you grab and test those changes on a monthly basis.

Container Compatibility

Thanks to the Arquillian Container adapters, it was pretty easy to setup container compatibility tests. You can see the results on Jenkins CloudBees instance

If you are missing support for your favorite container, speak up and we will add the desired configuration to the matrix!

As you can see from the results of compatibility tests, Warp and Warp JSF tests pass 100% on following containers:

  • WildFly 8.0.0.Beta1
  • JBoss AS 7.1.1.Final

Some tests have minor issues on TomEE 1.5.1 and unfortunately a number of tests fail on GlassFish 3.1. If any of these containers are of interest to you, please don’t hesitate to lend us a helping hand getting these up to 100% as well.

Warp Extensions – REST and Portlets

Warp REST extension was released in its Alpha1 version recently. Thanks Jakub Narloch and Bernard Labno for their hard work with extending Warp cross-framework coverage.

Ken Finnigan is also finalizing Warp Portlet support – his efforts helped to refine Warp core in this release significantly.

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.Alpha5 view tag
Release date 2013-10-30
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 6

Bug Fixes + Portlet Support

Enhancement
  • ARQ-1538 - Provide the ability for Inspection methods to have multiple qualifiers
  • ARQ-1552 - Rewrite any absolute urls in Warp response content with Proxy URL
Feature Request
  • ARQ-1261 - Warp: setup container-compatibility integration builds
Bug
  • ARQ-1478 - Warp JSF: Nonexistent facelet file causes IllegalArgumentException
  • ARQ-1494 - Warp: fails when ProxyURLProvider is called more than once per test
  • ARQ-1556 - Warp Inspection methods with multiple qualifiers are executed but incorrectly verified

Thanks to the following list of contributors: Lukas Fryc, Ken Finnigan, Jan Dosoudil

Arquillian Warp 1.0.0.Alpha4 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.Alpha4 release of the Arquillian Warp component!

We have decided to release another Alpha release since it takes longer than expected to get through the issues schedule for Beta.

This release is not heavy in terms of number of fixes, but it still contain some important ones:

Highlighted Changes

EAR Deployments Support

Thanks to for the great contribution from Robert Panzer, Warp now supports EAR Deployments!

Critical Bug Fix

With this release, we’ve fixed the The response payload with serialId 4065404507533364875 was never registered issue. Not only did it cause some requests to fail, but it also made some tests non-deterministic and intermittently failing.

Road to Beta…

Since the road to the Beta is still a long walk, we are going to do more Alpha releases in timely manner. So you won’t lose touch with the latest bug fixes! (especially if you have contributed them!)

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.Alpha4 view tag
Release date 2013-09-10
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 4

Stabilization

Feature Request
  • ARQ-1422 - Add support for using Warp with ear deployments
  • ARQ-1457 - Upgrade to Arquillian Core 1.1 and Drone 1.2
Bug
  • ARQ-1420 - The PayloadRegistry#registerResponsePayload() is being called after the #retrieveResponsePayload() which ends up with ResponsePayloadWasNeverRegistered exception.
  • ARQ-1430 - Warp does not take superclass into account when scanning for @WarpTest

Thanks to the following list of contributors: Lukas Fryc, Robert.panzer