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

New version of Arquillian Cube 1.0.0.Alpha18 has been released!

What’s new

Arquillian Cube BOM

Arquillian Cube BOM has been released so you can unify naming and versions of Arquillian Cube.

<properties>
    <version.arquillian_cube>${latest_released_version}</version.arquillian_cube>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.arquillian.cube</groupId>
            <artifactId>arquillian-cube-bom</artifactId>
            <version>${version.arquillian_cube}</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
    </dependencies>
</dependencyManagement>

Then you can include the individual modules such as:

<dependency>
    <groupId>org.arquillian.cube</groupId>
    <artifactId>arquillian-cube-docker</artifactId>
    <scope>test</scope>
    <type>pom</type>
</dependency>

Add AssertJ matcher for current running processes

You can assert on current running processes on given container by doing: assertThat(docker).container("mycontainer").hasProcessRunning("name of process")

Kudos to Ioannis Canellos for internal enhancements on Kubernetes and OpenShift integration.

What is Arquillian Cube Extension?

With Arquillian Cube you can control the lifecycle of Docker images as part of the test lifecyle, either automatically or manually. This gives you the chance to scale up from a integration/functional test level all the way up to the system test level.

Release details

Component Arquillian Cube Extension
Version 1.0.0.Alpha18 view tag
Release date 2017-02-09
Released by Alex Soto
Compiled against

Published artifacts org.arquillian.cube

  • org.arquillian.cube » arquillian-cube-api jar javadoc pom
  • org.arquillian.cube » arquillian-cube-spi jar javadoc pom
  • org.arquillian.cube » arquillian-cube-core jar javadoc pom
  • org.arquillian.cube » arquillian-cube-containerless jar javadoc pom
  • org.arquillian.cube » assertj-docker-java jar javadoc pom
  • org.arquillian.cube » arquillian-cube-docker jar javadoc pom
  • org.arquillian.cube » arquillian-cube-docker-drone jar javadoc pom
  • org.arquillian.cube » arquillian-cube-docker-recorder jar javadoc pom
  • org.arquillian.cube » arquillian-cube-docker-restassured jar javadoc pom
  • org.arquillian.cube » arquillian-cube-openshift jar javadoc pom
  • org.arquillian.cube » arquillian-cube-kubernetes-fabric8 jar javadoc pom
  • org.arquillian.cube » arquillian-cube-kubernetes jar javadoc pom
  • org.arquillian.cube » arquillian-cube-kubernetes-reporter jar javadoc pom
  • org.arquillian.cube » arquillian-cube-requirement jar javadoc pom
  • org.arquillian.cube » arquillian-cube-bom pom

Release notes and resolved issues 4

Enhancement
Bug

Thanks to the following list of contributors: Alex Soto, Dipak Pawar, Ioannis Canellos

Arquillian Algeron Extension 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 Algeron Extension 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 Algeron Extension
Version 1.0.0.Alpha6 view tag
Release date 2017-02-10
Released by Alex Soto
Compiled against

Published artifacts org.arquillian.algeron

  • org.arquillian.algeron » arquillian-algeron-pact-consumer-api jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-pact-consumer-core jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-pact-consumer-spi jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-pact-provider-api jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-pact-provider-core jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-pact-provider-spi jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-pact-provider-pact-broker-loader jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-pact-provider-assertj jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-git jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-configuration jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-consumer-spi jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-consumer-api jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-consumer-core jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-consumer-git-publisher jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-provider-spi jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-provider-api jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-provider-core jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-provider-git-retriever jar javadoc pom
  • org.arquillian.algeron » arquillian-algeron-provider-maven-retriever jar javadoc pom

Release notes and resolved issues 4

Enhancement
Bug

Thanks to the following list of contributors: Alex Soto

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

New version of Arquillian Cube 1.0.0.Alpha17 has been released!

What’s new

Graphene URL auto resolution

In previous versions, Graphene URL auto resolution was based on rather complex algorithm with absolute or relative URLs to detect which was the real URL in Docker space (Old auto resolution). This has been simplified so now only full URLs are permitted.

In this version if URL contains dockerHost, it’s resolved to docker host IP. If it contains an IP then this IP is used. If a string is provided, this is considered as the container name and Arquillian Cube resolves it to the internal container IP.

Support for @CubeIp in Container Objects

Now a Container Object can also be enriched with internal IP of the given container.

Thanks Ramon Rivas for providing this feature!

Provide URL enrichment for standalone mode

New enrichment is provided to construct an URL for black-box tests pointing to a given docker host and resolved exposed port.

@DockerUrl(protocol="http", containerName = "helloworld", exposedPort = "8080", context = "/hello")
@ArquillianResource
URL url;

In the example above URL is the docker host IP pointing to binding port of exposed port 8080 of the container helloworld and using /hello as context.

Set Environment variables for Container Objects

Now you can set environment variables to defined container objects.

@Cube(“tomee”)
@Image("tomee:8-jre-1.7.2-webprofile")
@Environment(key = "A", value = "a")
@Environment(key = "B", value = "b")
public static class ImageContainerObject {
}

Annotation can also be used on the field definition.

Create Volumes for Container Objects

@Cube(“tomee”)
@Image("tomee:8-jre-1.7.2-webprofile")
@Volume(hostPath = "/mypath", containerPath = "/containerPath")
@Volume(hostPath = "/mypath2", containerPath = "/containerPath2")
public static class ImageContainerObject {
}

Annotation can also be used on the field definition.

Add @DockerUrl support for RestAssured enricher

Now you can configure URL for REST-Assured integration using @DockerUrl annotation.

@DockerUrl(containerName = "pingpong", exposedPort = 8080)
@ArquillianResource
RequestSpecBuilder requestSpecBuilder;

RequestSpecBuilder is configured with docker host IP, and resolving port binding from container pingpong and exposed port 8080.

Provide a new URL ResourceProvider for Kubernetes and Openshift

Now you can get URL to connect to a Kubernetes/OpenShift service with ease.

@Named("hello-world-service")
@PortForward
@ArquillianResource
URL url;

In this case the URL is provided pointing directly to the service hello-world so you can easily query it.

Kudos to Ioannis Canellos for providing this feature.

What is Arquillian Cube Extension?

With Arquillian Cube you can control the lifecycle of Docker images as part of the test lifecyle, either automatically or manually. This gives you the chance to scale up from a integration/functional test level all the way up to the system test level.

Release details

Component Arquillian Cube Extension
Version 1.0.0.Alpha17 view tag
Release date 2017-02-01
Released by Alex Soto
Compiled against

Published artifacts org.arquillian.cube

  • org.arquillian.cube » arquillian-cube-api jar javadoc pom
  • org.arquillian.cube » arquillian-cube-spi jar javadoc pom
  • org.arquillian.cube » arquillian-cube-core jar javadoc pom
  • org.arquillian.cube » arquillian-cube-containerless jar javadoc pom
  • org.arquillian.cube » assertj-docker-java jar javadoc pom
  • org.arquillian.cube » arquillian-cube-docker jar javadoc pom
  • org.arquillian.cube » arquillian-cube-docker-drone jar javadoc pom
  • org.arquillian.cube » arquillian-cube-docker-recorder jar javadoc pom
  • org.arquillian.cube » arquillian-cube-docker-restassured jar javadoc pom
  • org.arquillian.cube » arquillian-cube-openshift jar javadoc pom
  • org.arquillian.cube » arquillian-cube-kubernetes-fabric8 jar javadoc pom
  • org.arquillian.cube » arquillian-cube-kubernetes jar javadoc pom
  • org.arquillian.cube » arquillian-cube-kubernetes-reporter jar javadoc pom
  • org.arquillian.cube » arquillian-cube-requirement jar javadoc pom

Release notes and resolved issues 8

Enhancement
Bug
Other

Thanks to the following list of contributors: Alex Soto, Dipak Pawar, Ramon Rivas, Ioannis Canellos

Arquillian Cube Q Extension 1.0.0.Alpha3 Released

The Arquillian team is proud to announce the 1.0.0.Alpha3 release of the Arquillian Cube Q Extension 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 Cube Q Extension
Version 1.0.0.Alpha3 view tag
Release date 2017-01-27
Released by Bartosz Majsak
Compiled against

Published artifacts org.arquillian.cube.q

  • org.arquillian.cube.q » arquillian-cube-q-api jar javadoc pom
  • org.arquillian.cube.q » arquillian-cube-q-spi jar javadoc pom
  • org.arquillian.cube.q » arquillian-cube-q-core jar javadoc pom
  • org.arquillian.cube.q » arquillian-cube-q-toxic jar javadoc pom
  • org.arquillian.cube.q » arquillian-cube-q-pumba jar javadoc pom
  • org.arquillian.cube.q » arquillian-cube-q-simianarmy jar javadoc pom
  • org.arquillian.cube.q » arquillian-cube-q-reporter jar javadoc pom

Release notes and resolved issues 2

Bug
Other

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

Arquillian Drone Extension 2.1.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 2.1.0.Alpha1 release of the Arquillian Drone Extension component!

In this release, we bring you a new way of a managing binaries such as drivers or Selenium Server.

Previously, when you wanted to use for example Chrome browser for your tests, you had to download the chrome-driver binary first, then define the path to the binary in your arquillian.xml file and then run the UI tests.
With the new binary management, the first two steps are not needed anymore. If you don’t specify the path in your arquillian.xml file, Drone automatically downloads the latest version of the binary, set the necessary properties and use the binary in your UI tests.

Automatic Download

How does it work?

Let say that you want to use Firefox for UI tests. First of all, Drone checks if the path to the Gecko webdriver binary is already set. In this case, it would check a system property webdriver.gecko.driver; if this is empty then it checks the arquillian.xml property firefoxDriverBinary. In case that both properties are empty, then the automatic download starts.

Now, we have several options how to specify which binary should be downloaded (version, from URL, latest) and where it should be stored. For storage purposes cache directories $HOME/.arquillian/drone/subdirectory_specific_to_binary are used so the binaries are not downloaded over and over again.

Version

Using the property

<property name="firefoxDriverVersion">v0.14.0</property>

you can define which version of the Gecko webdriver should be downloaded. The binary is then cached in a directory $HOME/.arquillian/drone/firefox/v0.14.0/.

URL

Using the property

<property name="firefoxDriverUrl">http://url/to/gecko/webdriver</property>
you can define which URL the Gecko webdriver should be downloaded from. The directory where it is stored depends if you also specify the version of this binary or not. In case you use also the before-mentioned property firefoxDriverVersion then it is cached in corresponding directory $HOME/.arquillian/drone/firefox/specified_version/. Otherwise it is downloaded into $project.directory/target/drone/downloaded/ so no cache is used.

Latest

In case you don’t define any property then Drone finds the latest version of the given binary and downloads this one. The binary (in case of Gecko webdriver) is cached at $HOME/.arquillian/drone/firefox/latest_version/.

Some additional information and list of supported binaries and properties can be found in the Drone documentation

Selenium Server

Apart from the fact that the Selenium Server binary is automatically downloaded, in the case of RemoteWebDriver it is also automatically started with the correct parameters (path to the webdriver that should be used).

So, if you use RemoteWebDriver Drone checks the address specified using property remoteAddress in arquillian.xml file (default is: http://localhost:4444/wd/hub) and if the address is not accessible (there isn’t running anything) then it automatically starts selenium server instance on the given address.

For example I’d like to use RemoteWebDriver with the browser Firefox and without specifying any custom remote address, then the Selenium Server would be started using command:

java -Dwebdriver.gecko.driver=target/.../geckodriver
     -jar target/.../selenium-server-standalone-3.3.1.jar -port 4444

We hope that you’ll enjoy our new stuff and look forward to hearing your feedback.

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 Drone Extension
Version 2.1.0.Alpha1 view tag
Release date 2017-01-26
Released by Matous Jobanek
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-drone-bom pom
  • org.jboss.arquillian.extension » arquillian-drone-webdriver-depchain pom
  • org.jboss.arquillian.extension » arquillian-drone-api jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-spi jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-configuration jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-impl jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-webdriver jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-saucelabs-extension jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-browserstack-extension jar javadoc pom

Release notes and resolved issues 6

Component Upgrade
  • ARQ-2061 - Upgrade to Selenium 3
  • ARQ-2062 - Upgrade jboss-parent to latest version (21)
  • ARQ-2063 - Upgrade build.gradle file to use Spacelift 17 and Gradle 2.5
  • ARQ-2064 - Upgrade JUnit to 4.12
Feature Request
  • ARQ-1826 - Download Explorer binary for Drone
Task
  • ARQ-1695 - Integrate Spacelift into Drone

Thanks to the following list of contributors: Matous Jobanek, Bartosz Majsak