Arquillian Universe 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 Universe component!

What is Arquillian Universe?

The Arquillian Universe BOM is a 'Bill of Material' Maven POM file collection that make up a module stack that stretch across the whole Arquillian Universe.

Release details

Component Arquillian Universe
Version 1.0.0.Alpha4 view tag
Release date 2016-09-28
Released by Bartosz Majsak
Compiled against

Published artifacts org.arquillian.universe

  • org.arquillian.universe » arquillian-core pom
  • org.arquillian.universe » arquillian-junit pom
  • org.arquillian.universe » arquillian-junit-standalone pom
  • org.arquillian.universe » arquillian-testng pom
  • org.arquillian.universe » arquillian-testng-standalone pom
  • org.arquillian » arquillian-universe pom
  • org.arquillian.universe » arquillian-drone pom
  • org.arquillian.universe » arquillian-graphene pom
  • org.arquillian.universe » arquillian-graphene-recorder pom
  • org.arquillian.universe » arquillian-warp pom
  • org.arquillian.universe » arquillian-warp-jsf pom
  • org.arquillian.universe » arquillian-transaction-core pom
  • org.arquillian.universe » arquillian-transaction-jta pom
  • org.arquillian.universe » arquillian-persistence-core pom
  • org.arquillian.universe » arquillian-persistence pom
  • org.arquillian.universe » arquillian-spring pom
  • org.arquillian.universe » arquillian-spring-transaction pom
  • org.arquillian.universe » arquillian-spring-persistence pom
  • org.arquillian.universe » arquillian-spring-warp pom
  • org.arquillian.universe » arquillian-governor-core pom
  • org.arquillian.universe » arquillian-governor-jira pom
  • org.arquillian.universe » arquillian-governor-github pom
  • org.arquillian.universe » arquillian-governor-redmine pom
  • org.arquillian.universe » arquillian-governor-skipper pom
  • org.arquillian.universe » arquillian-governor-ignore pom
  • org.arquillian.universe » arquillian-byteman pom
  • org.arquillian.universe » arquillian-jacoco pom
  • org.arquillian.universe » arquillian-recorder-api pom
  • org.arquillian.universe » arquillian-recorder pom
  • org.arquillian.universe » arquillian-rest-core pom
  • org.arquillian.universe » arquillian-rest-resteasy2 pom
  • org.arquillian.universe » arquillian-rest-resteasy3 pom
  • org.arquillian.universe » arquillian-rest-jaxrs2 pom
  • org.arquillian.universe » arquillian-rest-jersey pom
  • org.arquillian.universe » arquillian-rest-warp-core pom
  • org.arquillian.universe » arquillian-rest-warp-resteasy pom
  • org.arquillian.universe » arquillian-rest-warp-jaxrs2 pom
  • org.arquillian.universe » arquillian-rest-warp-jersey pom
  • org.arquillian.universe » arquillian-rest-warp-cxf pom
  • org.arquillian.universe » arquillian-spacelift pom
  • org.arquillian.universe » arquillian-chameleon pom
  • org.arquillian.universe » arquillian-cube-core pom
  • org.arquillian.universe » arquillian-cube-docker pom
  • org.arquillian.universe » arquillian-cube-openshift pom
  • org.arquillian.universe » arquillian-cube-containerless pom
  • org.arquillian.universe » arquillian-cube-kubernetes pom
  • org.arquillian.universe » arquillian-cukes pom
  • org.arquillian.universe » arquillian-cube-q-pumba pom
  • org.arquillian.universe » arquillian-cube-q-simianarmy pom
  • org.arquillian.universe » arquillian-cube-q-toxic pom
  • org.arquillian.universe » arquillian-pact-consumer pom
  • org.arquillian.universe » arquillian-pact-provider pom
  • org.arquillian.universe » arquillian-test jar javadoc pom

Release notes and resolved issues 3

Enhancement
Module

Thanks to the following list of contributors: Bartosz Majsak, Matous Jobanek, EddĂș MelĂ©ndez Gonzales, Aslak Knutsen, Andrew Glick, Alex Soto

Arquillian Algeron Extension 1.0.0.Alpha1 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.Alpha1 release of the Arquillian Algeron Extension component!

Important note: This extension was called Arquillian Pact before version 1.0.0.Alpha5, so you should use this name when pulling dependencies from Maven Central.

This is the first release of Arquillian Pact. This extension provides an integration between Arquillian and Pact.

Pact is a framework that provides support for Consumer Driven Contracts testing. You can read more about Consumer Driven Contracts in this interesting blog post or in our upcoming book Testing Java Microservices.

Full documentation of the project can be found at http://arquillian.org/arquillian-algeron/

Consumer

First thing to do is to develop the Consumer part of the test. Consumer part of Consumer-Driven Contract defines requirements from the consumer of the API which are then used to develop the client interaction with the API as well as to validate provider implementation.

Dependencies

<dependencies>
    <dependency>
        <groupId>org.arquillian.pact</groupId>
        <artifactId>arquillian-pact-consumer-core</artifactId>
        <version>${version.arquillian_pact}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>au.com.dius</groupId>
        <artifactId>pact-jvm-consumer_2.11</artifactId>
        <scope>test</scope>
        <version>3.5.0-beta.1</version>
    </dependency>
</dependencies>

Test

@RunWith(Arquillian.class)
public class ClientGatewayTest {

    @Deployment
    public static JavaArchive createDeployment() {
        return ShrinkWrap.create(JavaArchive.class).addClasses(ClientGateway.class);
    }

    @Pact(provider="test_provider", consumer="test_consumer")
    public PactFragment createFragment(PactDslWithProvider builder) {

        Map<String, String> header = new HashMap<>();
        header.put("Content-Type", "application/json");

        return builder
                .given("test state")
                .uponReceiving("ConsumerTest test interaction")
                .path("/")
                .method("GET")
                .willRespondWith()
                .status(200)
                .headers(header)
                .body("{\"responsetest\": true, \"name\": \"harry\"}")
                .toFragment(); (4)
    }

    @EJB
    ClientGateway clientGateway;
    
    @Test 
    @PactVerification("test_provider")
    public void should_return_message() throws IOException {
        assertThat(clientGateway.getMessage(), is("{\"responsetest\": true, \"name\": \"harry\"}"));
    }
}

You can see more examples in the GitHub repository.

Provider

The next thing you need to do is share the contract (aka “pact” file) with Provider project and validate that provider produces the expected responses to defined requests. This is done by replaying all requests defined in contract against real provider and validating that the response is the expected one.

We currently support following locations of the contracts:

  • an arbitrary URL
  • Pact Broker – repository of the contracts
  • local directory

Dependencies

<dependency>
    <groupId>org.arquillian.pact</groupId>
    <artifactId>arquillian-pact-provider-core</artifactId>
    <scope>test</scope>
    <version>${version.arquillian_pact}</version>
</dependency>
<dependency>
    <groupId>au.com.dius</groupId>
    <artifactId>pact-jvm-provider_2.11</artifactId>
    <scope>test</scope>
    <version>3.5.0-beta.1</version>
</dependency>

Test

@RunWith(Arquillian.class)
@Provider("test_provider")
@PactFolder("pacts")
public class MyServiceProviderTest {

    @Deployment(testable = false)
    public static WebArchive createDeployment() {
        return ShrinkWrap.create(WebArchive.class).addClass(MyService.class);
    }

    @CurrentConsumer
    Consumer consumer;

    @CurrentInteraction
    RequestResponseInteraction interaction;

    @ArquillianResource
    URL webapp;

    @ArquillianResource
    Target target;

    @Test
    public void should_provide_valid_answers() {
        target.testInteraction(webapp, consumer.getName(), interaction);
    }

}

You can see full example in our GitHub repository.

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 Algeron Extension
Version 1.0.0.Alpha1 view tag
Release date 2016-09-21
Released by Alex Soto
Compiled against

Published artifacts org.arquillian.pact

  • org.arquillian.pact » arquillian-pact-consumer-api jar javadoc pom
  • org.arquillian.pact » arquillian-pact-consumer-core jar javadoc pom
  • org.arquillian.pact » arquillian-pact-consumer-spi jar javadoc pom
  • org.arquillian.pact » arquillian-pact-provider-api jar javadoc pom
  • org.arquillian.pact » arquillian-pact-provider-core jar javadoc pom
  • org.arquillian.pact » arquillian-pact-provider-spi jar javadoc pom
  • org.arquillian.pact » arquillian-pact-provider-pact-broker-loader jar javadoc pom

Thanks to the following list of contributors: Alex Soto

Arquillian Governor 1.0.4.Final Released

The Arquillian team is proud to announce the 1.0.4.Final release of the Arquillian Governor component!

Arquillian Recorder integration with Arquillian Governor

In this release we are providing Arquillian Recorder integration with JIRA, GitHub and Redmine Governor.

Arquillian Recorder project brings neat reports for your Arquillian tests. Arquillian Governor Extension gives you the possibility to programmatically choose what test methods of your Arquillian tests are going to be executed and what are going to be skipped by putting your custom annotations on the test methods.

We are providing an integration of Recorder with Governor so that generated tests reports contains all relevant information used by Governor.

Let’s see it in action for Arquillian JIRA Governor:

@RunWith(Arquillian.class)
public class TestCase {
    
    @Test
    @Jira("ARQ-5000", force = true)
    public void run_test_without_relying_on_the_issue_status() {
        // ...
    }

    @Test
    @Jira(value = "ARQ-1000", detector = @Detector(Windows.class))
    public void run_only_if_issue_is_closed_and_windows_is_used() {
        // ...
    }
}

Let’s break this test down to see what is going on under the hood.

  • First test will run disregard of the issue status. This is useful when you work on a particular task and don’t want Governor to skip its execution. Using force = true will make it happen.
  • Second test will only be executed if issue ARQ-1000 is closed and the test is executed in Windows environment. Second aspect is handled by the @Detector mechanism.
  • At the end Reporter will generate a report with all relevant information including links between tests and issues, environment specific tests etc.

To decide what tests should be executed using JIRA issues, include following dependency:

<dependency>
    <groupId>org.arquillian.extension</groupId>
    <artifactId>arquillian-governor-jira</artifactId>
    <version>${version.jira.governor}</version>
    <scope>test</scope>
</dependency>

In the same way, if you want to use GitHub issues:

<dependency>
    <groupId>org.arquillian.extension</groupId>
    <artifactId>arquillian-governor-github</artifactId>
    <version>${version.github.governor}</version>
    <scope>test</scope>
</dependency>

And last but not least, to use Redmine governor:

<dependency>
    <groupId>org.arquillian.extension</groupId>
    <artifactId>arquillian-governor-redmine</artifactId>
    <version>${version.redmine.governor}</version>
    <scope>test</scope>
</dependency>

And to have it all covered with reports, add this dependency:

<dependency>
  <groupId>org.arquillian.extension</groupId>
  <artifactId>arquillian-recorder-reporter-impl</artifactId>
  <version>${version.arquillian.recorder}</version>
  <scope>test</scope>
</dependency>

You can read more about Arquillian Recorder integration with Jira Governor in the Arquillian Recorder Integration Section with Jira, GitHub Governor in the Arquillian Recorder Integration section with GitHub, Redmine Governor in the Arquillian Recorder Integration section with Redmine.

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 Governor
Version 1.0.4.Final view tag
Release date 2016-09-27
Released by Bartosz Majsak
Compiled against

Published artifacts org.arquillian.extension

  • org.arquillian.extension » arquillian-governor-spi jar javadoc pom
  • org.arquillian.extension » arquillian-governor-api jar javadoc pom
  • org.arquillian.extension » arquillian-governor jar javadoc pom
  • org.arquillian.extension » arquillian-governor-jira jar javadoc pom
  • org.arquillian.extension » arquillian-governor-skipper jar javadoc pom
  • org.arquillian.extension » arquillian-governor-github jar javadoc pom
  • org.arquillian.extension » arquillian-governor-redmine jar javadoc pom
  • org.arquillian.extension » arquillian-governor-ignore jar javadoc pom

Release notes and resolved issues 1

Other

Thanks to the following list of contributors: Bartosz Majsak, Dipak Pawar

Arquillian Recorder 1.1.4.Final Released

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

The Arquillian team is proud to announce the 1.1.4.Final release of the Arquillian Recorder 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 Recorder
Version 1.1.4.Final view tag
Release date 2016-09-20
Released by Alex Soto
Compiled against

Published artifacts org.arquillian.extension

  • org.arquillian.extension » arquillian-recorder-api jar javadoc pom
  • org.arquillian.extension » arquillian-recorder-spi jar javadoc pom
  • org.arquillian.extension » arquillian-recorder-reporter-api jar javadoc pom
  • org.arquillian.extension » arquillian-recorder-reporter-spi jar javadoc pom
  • org.arquillian.extension » arquillian-recorder-reporter-impl jar javadoc pom
  • org.arquillian.extension » arquillian-recorder-screenshooter-api jar javadoc pom
  • org.arquillian.extension » arquillian-recorder-screenshooter-spi jar javadoc pom
  • org.arquillian.extension » arquillian-recorder-screenshooter-impl-base jar javadoc pom
  • org.arquillian.extension » arquillian-recorder-video-api jar javadoc pom
  • org.arquillian.extension » arquillian-recorder-video-spi jar javadoc pom
  • org.arquillian.extension » arquillian-recorder-video-impl-base jar javadoc pom
  • org.arquillian.extension » arquillian-desktop-video-recorder jar javadoc pom

Thanks to the following list of contributors: Alex Soto, Dipak Pawar, Stefan Miklosovic, Tim Peeters

Arquillian Container Weld Root POM 2.0.0.Beta3 Released

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

The Arquillian team is proud to announce the 2.0.0.Beta3 release of the Arquillian Container Weld Root POM 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 Container Weld Root POM
Modules
Version 2.0.0.Beta3 view tag
Release date 2016-09-16
Released by Tomas Remes
Compiled against

Published artifacts org.jboss.arquillian.container

  • org.jboss.arquillian.container » arquillian-weld-embedded jar javadoc pom

Release notes and resolved issues 2

Enhancement
  • ARQ-2039 - The Weld Arquillian embedded adapter should not load classes that are excluded in beans.xml
Bug
  • ARQ-2041 - Arquillian Weld container should not use org.jboss.weld.servlet.StaticWeldProvider

Thanks to the following list of contributors: Tomas Remes, John D. Ament