Arquillian Extension Byteman 1.0.0.Alpha4 Released

The Arquillian team is proud to announce the 1.0.0.Alpha4 release of the Arquillian Extension Byteman component!

We’re happy to announce fourth release of the Arquillian Byteman.

Byteman is a tool which simplifies tracing and testing of Java programs. Byteman allows you to insert extra Java code into your application, either as it is loaded during JVM startup or even after it has already started running. The injected code is allowed to access any of your data and call any application methods, including where they are private. You can inject code almost anywhere you want and there is no need to prepare the original source code in advance nor do you have to recompile, repackage or redeploy your application. In fact you can remove injected code and reinstall different code while the application continues to execute.

When testing your application you can use Byteman to inject faults or synchronization code, causing your application to perform unusual or unexpected operations required to exercise a test scenario.

In this release we brought several improvements:

  • Updated extension to use latest version of Byteman as well as Arquillian Core.
  • Fixed an issue with Submit command when agent is already running.
  • Improved test suite using Arquillian Chameleon to test it against several different containers (such as different WildFly versions).

See the Byteman Website for more on how to write rules.

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 Extension Byteman
Version 1.0.0.Alpha4 view tag
Release date 2016-09-01
Released by Bartosz Majsak
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-extension-byteman jar javadoc pom

Thanks to the following list of contributors: Bartosz Majsak, Dipak Pawar, Tolis Emmanouilidis, Aslak Knutsen, Ales Justin

Arquillian Extension Byteman 1.0.0.Alpha3 Released

The Arquillian team is proud to announce the 1.0.0.Alpha3 release of the Arquillian Extension Byteman 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 Extension Byteman
Version 1.0.0.Alpha3 view tag
Release date 2014-09-15
Released by Aslak Knutsen
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-extension-byteman jar javadoc pom

Release notes and resolved issues 3

Component Upgrade
  • ARQ-1442 - Update Arquillian Core, Byteman and Container versions
Feature Request
  • ARQ-1854 - Support injecting rules on container side when running on client
Bug
  • ARQ-1441 - Binding value from @BMRule is ignored

Thanks to the following list of contributors: Aslak Knutsen, Ales Justin, Karel Piwko

Arquillian Extension Byteman 1.0.0.Alpha2 Released

The Arquillian team is proud to announce the 1.0.0.Alpha2 release of the Arquillian Extension Byteman 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 Extension Byteman
Version 1.0.0.Alpha2 view tag
Release date 2012-06-05
Released by Aslak Knutsen
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-extension-byteman jar javadoc pom

Release notes and resolved issues 2

Support for Client JVM instrumentation

Feature Request
  • ARQ-737 - Support Byteman Rules in client mode

Thanks to the following list of contributors: Aslak Knutsen

Arquillian Extension Byteman 1.0.0.Alpha1 Released

The Arquillian team is proud to announce the 1.0.0.Alpha1 release of the Arquillian Extension Byteman component!

We’re happy to announce the first release of the Arquillian Byteman marriage.

Byteman is a tool which simplifies tracing and testing of Java programs. Byteman allows you to insert extra Java code into your application, either as it is loaded during JVM startup or even after it has already started running. The injected code is allowed to access any of your data and call any application methods, including where they are private. You can inject code almost anywhere you want and there is no need to prepare the original source code in advance nor do you have to recompile, repackage or redeploy your application. In fact you can remove injected code and reinstall different code while the application continues to execute.

When testing your application you can use Byteman to inject faults or synchronization code, causing your application to perform unusual or unexpected operations required to exercise a test scenario.

In this release we added support the @BMRule(s) annotation on Class and Method level.

@RunWith(Arquillian.class)
@BMRules(
        @BMRule(
                name = "Throw exception on success",
                targetClass = "StatelessManagerBean",
                targetMethod = "success",
                action = "throw new java.lang.RuntimeException()")
)
public class BytemanFaultInjectionTestCase {

    @Deployment
    public static Archive<?> createDeployment() {
        return ShrinkWrap.create(WebArchive.class)
                .addClasses(StatelessManager.class, StatelessManagerBean.class);
    }
...
}
@Test(expected = EJBException.class)
@BMRule(
        name = "Throw exception on success",
        targetClass = "StatelessManagerBean",
        targetMethod = "success",
        action = "throw new java.lang.RuntimeException()")
public void shouldBeAbleToInjectMethodLevelThrowRule()
{
    Assert.assertNotNull("Verify bean was injected", bean);
    bean.success();
}

See the Byteman Website for more on how to write rules.

Before we reach the final release we are planning to bring @BMScript annotation and manual installment of rules during test execution.

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 Extension Byteman
Version 1.0.0.Alpha1 view tag
Release date 2012-01-19
Released by Aslak Knutsen
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-extension-byteman jar javadoc pom

Release notes and resolved issues 2

Simple support for Rules annotations

Feature Request
  • ARQ-348 - Create a Byteman integration

Thanks to the following list of contributors: Aslak Knutsen