ShrinkWrap Resolver 1.0.0-beta-7 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-beta-7 release of the ShrinkWrap Resolver component!

What is ShrinkWrap Resolver?

The ShrinkWrap Resolvers project provides a Java API to obtain artifacts from a repository system. This is handy to include third party libraries available in any Maven repository in your test archive. ShrinkWrap Resolvers additionally allow you to reuse all the configuration you've already specified in the Maven build file, making packaging of an application archive much easier job.

Release details

Component ShrinkWrap Resolver
Version 1.0.0-beta-7 view tag
Release date 2012-04-16
Released by Andrew Lee Rubinger
Compiled against
  • JUnit – 4.8.2

Published artifacts org.jboss.shrinkwrap.resolver

  • org.jboss.shrinkwrap.resolver » shrinkwrap-resolver-bom pom
  • org.jboss.shrinkwrap.resolver » shrinkwrap-resolver-api jar javadoc pom
  • org.jboss.shrinkwrap.resolver » shrinkwrap-resolver-api-maven jar javadoc pom
  • org.jboss.shrinkwrap.resolver » shrinkwrap-resolver-depchain pom
  • org.jboss.shrinkwrap.resolver » shrinkwrap-resolver-impl-maven jar javadoc pom

Release notes and resolved issues 1

Bug
  • SHRINKRES-33 - Scoped artifacts in ShrinkWrap Resolver BOM

Thanks to the following list of contributors: Andrew Lee Rubinger, Karel Piwko

Arquillian Persistence Extension 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 Persistence Extension component!

It’s been a while since the Alpha3 release. After three long months, we’re excited to announce Alpha 4 with a lot of improvements and enhancements suggested by our great community. Best of all, we finally have complete documentation in the reference guide!

I would especially like to thank Michael Brill for nailing down DBUnit clean up strategies, Pål Oliver Kristiansen and Jarek Gilewski for suggesting customization of DBUnit behaviour and Juergen Zimmermann for spotting a bug with transactional support. Last, but not least, many thanks to all who actively discussed the roadmap for next releases. There is plenty of great stuff on the way! Thank you very much for your feedback!

Some of the highlights in this release

Custom SQL scripts for cleanup
You can now use custom SQL scripts to clean your database before or after the test. For this purpose use the @CleanupUsingScript annotation and specify SQL files which have to be executed.
More flexible custom SQL scripts execution
We’ve removed the @UsingScript annotation and replaced it with the @ApplyScriptBefore and @ApplyScriptAfter annotations.
DBUnit insert strategies

You can tell DBUnit how it should insert your data. The following strategies are available:

  • INSERT – Performs insert of the data defined in provided data sets. This is the default strategy.
  • CLEAN_INSERT – Performs insert of the data defined in provided data sets, after removal of all data present in the tables referred in provided files.
  • REFRESH – During this operation, existing rows are updated and new ones are inserted. Entries already existing in the database which are not defined in the provided data set are not affected.
  • UPDATE – This strategy updates existing rows using data provided in the datasets. If the dataset contains a row which is not present in the database (identified by its primary key) then an exception is thrown.
DBUnit cleanup modes

You can specify when and how you would like your database to be cleaned. By default, your database is erased entirely before each test. If you want to control this behavior, use the @Cleanup annotation for this purpose. The following modes are currently supported:

  • STRICT – Cleans the entire database. This strategy might require turning off database constraints (e.g. referential integrity).
  • USED_ROWS_ONLY – Deletes only those entries that are defined in the datasets used for seeding.
  • USED_TABLES_ONLY – Deletes only those tables that are referenced in datasets.

You can also specify when you would like to invoke the cleanup procedure. For instance:

@Cleanup(phase = TestExecutionPhase.AFTER, strategy = CleanupStrategy.USED_ROWS_ONLY)

You can invoke cleanup BEFORE or AFTER the test. You can also disable cleanup by using TestExecutionPhase.NONE.

Column filtering for data set matching
@ShouldMatchDatSet has been enhanced with columnsToExclude list, where you can specify which columns shouldn’t be used for database content verification.
Nullable columns
For XML, JSON and YAML you can now set arbitary columns to null using [null] placeholder.
Separated configuration for core and (enhanced) DBUnit specific features

We provide configuration for all DBUnit properties and features as of Alpha 4! Moreover there is a split for core properties (such as default data source or JNDI of UserTransaction) and DBUnit related settings, as the example below illustrates:

arquillian.xml
<extension qualifier="persistence">
    <property name="defaultDataSource">java:app/datasources/mssql_ds</property>
    <property name="userTransactionJndi">java:jboss/UserTransaction</property>
    <property name="initStatement">scripts/mssql-identity-insert-on.sql</property>
    <property name="cleanupStatement">scripts/mssql-identity-insert-off.sql</property>
</extension>
    
    <extension qualifier=“persistence-dbunit”>
<property name=“datatypeFactory”>org.dbunit.ext.mssql.MsSqlDataTypeFactory</property>
<property name=“useIdentityInsert”>true</property>
</extension>

For complete list, please refer to the reference guide.

We look forward to hearing your feedback about this release in the community forums!

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 Persistence Extension
Version 1.0.0.Alpha4 view tag
Release date 2012-04-12
Released by Aslak Knutsen
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-persistence-api jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-persistence-impl jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-persistence-integration-tests jar javadoc pom

Release notes and resolved issues 21

Enhancement
  • ARQ-755 - Introduce annotation based db cleanup configuration
  • ARQ-756 - Improve error messages
  • ARQ-805 - Convert test method names from camel to underscore
  • ARQ-859 - Cleanup configuration - move dbunit related settings to its own configuration.
Feature Request
  • ARQ-718 - Customization for DBUnit
  • ARQ-719 - Enable column sensing for FlatXmlDataSet
  • ARQ-720 - Enable nulls for FlatXmlDataSet
  • ARQ-764 - Using DBUnit with IDENTITY or auto-increment columns
  • ARQ-777 - Should be possible to run custom scripts before and after test
  • ARQ-804 - Should be able to clean database using custom SQL script
  • ARQ-869 - Move JavaDoc from Field level to Method level for Configuration objects
Bug
  • ARQ-721 - Compilation error in older version of JDK 6
  • ARQ-723 - TransactionalWrapper.afterTest() ignores SessionContext.setRollbackOnly()
  • ARQ-751 - Empty YML file is causing error whereas it should be simply skipped
  • ARQ-752 - Persistence extension is failing to enrich archive when there is no dataset defined
  • ARQ-765 - Update ShrinkWrap Descriptors dependency
Task
  • ARQ-757 - Document extension in confluence.
Sub-task
  • ARQ-771 - Global DBUnit configuration should be exposed in arquillian.xml
  • ARQ-772 - Introduce column filtering for data set matching
  • ARQ-806 - Should provide cleanup strategies to control what needs to be removed for the given test

Thanks to the following list of contributors: Bartosz Majsak, Aslak Knutsen

Graphene 1.0.0.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.0.0.Final release of the Graphene component!

Graphene is joining rest of the Arquillian party, building on top of Arquillian testing platform Drone extension, both which reached their first stable version yesterday.

The Mission

Arquillian Graphene focuses on making real-browser automation a breeze.

The project was started to address simplification of covering AJAX-enabled applications with browser automation tests.

While Selenium project is focusing on unified API, integration with variety of browsers, Graphene project is addressing the real-world testing challenges:

  • rapid development
    • straight-forward
    • readable API
    • fast turnaround
  • object-oriented
    • type-safe API
    • dependency injection of thread-local context
  • instabilities and speed of execution in continuous integration
    • jQuery selectors
    • request guards

Availability

The Graphene bits are available in JBoss Community artifact repository, dual-licensed under LGPL v2.1 (backward-compatibility) and ASL v2.0 (which uses rest of the Arquillian sub-projects).

For those who are already using Graphene in a Maven project, you can simply update the version to 1.0.0.Final.

You can start with the tests using our Getting Started with the JBoss Maven repository guide.

The Future

Right now we are heavily working on making the new version of Graphene 2 on the road.

Selenium 2 with its WebDriver API made huge progress with API accessibility and readability. It’s already pleasure to work with this API in Java world.

However still there are many shortcomings we are going to address with Graphene 2, building on top of concepts brought in Graphene 1 and adding new features, which opens world of new possibilities:

  • dependency injection of thread-local context
  • fast development turnaround
  • cross-cutting concerns (command interception)
  • request guards
  • page extensions
  • component objects
    • extension of page objects concept
  • JavaScript test execution from within Selenium test

If you enjoy testing and you are unsatisfied with the current browser automation tooling, it’s perfect time to step in and help us to bring the future!

Project Links

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 Graphene
Version 1.0.0.Final view tag
Release date 2012-04-11
Released by Lukas Fryc
Compiled against

Published artifacts org.jboss.arquillian.graphene

  • org.jboss.arquillian.graphene » graphene-parent pom
  • org.jboss.arquillian.graphene » graphene-selenium-parent pom
  • org.jboss.arquillian.graphene » graphene-selenium-api jar javadoc pom
  • org.jboss.arquillian.graphene » graphene-selenium-impl jar javadoc pom
  • org.jboss.arquillian.graphene » graphene-selenium-drone jar javadoc pom
  • org.jboss.arquillian.graphene » graphene-selenium pom
  • org.jboss.arquillian.graphene » arquillian-graphene pom

Release notes and resolved issues 8

Component Upgrade
  • ARQGRA-140 - Upgrade to Arquillian Core/Drone 1.0.0.Final
Feature Request
  • ARQGRA-142 - Refactor Graphene 1 to allow addition of Graphene 2 bits
  • ARQGRA-143 - Add license file to the project
  • ARQGRA-144 - Add section about Drone/Graphene usage in Getting Started guide
Bug
Task
  • ARQGRA-93 - Add README to the GitHub repository
  • ARQGRA-139 - Blog about releasing Graphene 1 Final
  • ARQGRA-145 - Update dependency versions in docs

Thanks to the following list of contributors: Lukas Fryc

Arquillian Drone Extension 1.0.0.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.0.0.Final release of the Arquillian Drone 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 Drone Extension
Version 1.0.0.Final view tag
Release date 2012-04-10
Released by Aslak Knutsen
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-drone-bom pom
  • org.jboss.arquillian.extension » arquillian-drone-selenium-depchain 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-selenium-server jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-selenium jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-webdriver jar javadoc pom

Release notes and resolved issues 3

Extension Drone - Final

Enhancement
  • ARQ-551 - Update Arquillian Drone docs
Task
  • ARQ-843 - Remove parent artifact from Arquillian-Drone-BOM

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

Arquillian Core 1.0.0.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.0.0.Final release of the Arquillian Core component!

Just over two years ago, we announced the first alpha release of Arquillian. We were excited back then to present a new way of testing where tests execute inside the container. We started out offering only support for testing Java EE and a handful of containers adapters.

Today, we are announcing the 1.0.0.Final release of Arquillian, now a sophisticated integration and functional testing platform that’s been rearchitected since it’s debut and is enhanced by a plethora of container adapters, test runners, extensions and tool plugins.

Over that two year period, Arquillian and our vision for it has matured dramatically. The goal, however, has remained the same: to make integration (and functional) tests as simple to write as unit tests. Now we just want it to be way more powerful and handle a whole lot more scenarios.

The community has also grown significantly. Over 100 people have contributed to either Arquillian or ShrinkWrap. Several of those contributors are leading one or more modules. Not only do the contributions of these community members help the projects move forward, they bring ideas that take Arquillian down new pathways in pursuit of more advanced, capable and intelligent tests while at the same time driving down the effort to write them.

Thanks to all of you who have contributed to the Arquillian project!! The army of contributors are the true heros of the Arquillian invasion!

Now for some details…

Since 1.0.0.CR8, the following component upgrades have been introduced, which are defined in the Arquillian BOM:

  • ShrinkWrap 1.0.0
  • ShrinkWrap Resolver 1.0.0-beta-6
  • ShrinkWrap Descriptors 2.0.0-alpha-2

The ShrinkWrap Descriptor 2 release is quite different from the 1.x series, but it’s the way forward :)

The implementation jar, which previously had the artifactId shrinkwrap-descriptors-impl, has been split into three artifacts:

  • shrinkwrap-descriptors-impl-javaee – Java EE 5 & 6 Descriptors
  • shrinkwrap-descriptors-impl-jboss – JBoss AS Specific Descriptors
  • shrinkwrap-descriptors-impl-misc – Jetty Descriptors

When upgrading to ShrinkWrap Descriptor 2, expect all package names and fluent APIs to have changed. The API still has the same feel, so it shouldn’t be too hard to make the transition. Here’s an example of how the new API looks:

Descriptors.create(BeansDescriptor.class)
	.createDecorators().clazz(MyDecorator.class.getName()).up()
	.createAlternatives().clazz(MyAlternative.class.getName()).up()
	.exportAsString()

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 Core
Version 1.0.0.Final view tag
Release date 2012-04-10
Released by Aslak Knutsen
Compiled against

Published artifacts org.jboss.arquillian.core

  • org.jboss.arquillian.core » arquillian-core-api jar javadoc pom
  • org.jboss.arquillian.core » arquillian-core-spi jar javadoc pom
  • org.jboss.arquillian.core » arquillian-core-impl-base jar javadoc pom
  • org.jboss.arquillian.config » arquillian-config-api jar javadoc pom
  • org.jboss.arquillian.config » arquillian-config-spi jar javadoc pom
  • org.jboss.arquillian.config » arquillian-config-impl-base jar javadoc pom
  • org.jboss.arquillian.test » arquillian-test-api jar javadoc pom
  • org.jboss.arquillian.test » arquillian-test-spi jar javadoc pom
  • org.jboss.arquillian.test » arquillian-test-impl-base jar javadoc pom
  • org.jboss.arquillian.container » arquillian-container-spi jar javadoc pom
  • org.jboss.arquillian.container » arquillian-container-impl-base jar javadoc pom
  • org.jboss.arquillian.container » arquillian-container-test-api jar javadoc pom
  • org.jboss.arquillian.container » arquillian-container-test-spi jar javadoc pom
  • org.jboss.arquillian.container » arquillian-container-test-impl-base jar javadoc pom
  • org.jboss.arquillian.junit » arquillian-junit-core jar javadoc pom
  • org.jboss.arquillian.junit » arquillian-junit-standalone jar javadoc pom
  • org.jboss.arquillian.junit » arquillian-junit-container jar javadoc pom
  • org.jboss.arquillian.testng » arquillian-testng-core jar javadoc pom
  • org.jboss.arquillian.testng » arquillian-testng-standalone jar javadoc pom
  • org.jboss.arquillian.testng » arquillian-testng-container jar javadoc pom
  • org.jboss.arquillian.testenricher » arquillian-testenricher-cdi jar javadoc pom
  • org.jboss.arquillian.testenricher » arquillian-testenricher-ejb jar javadoc pom
  • org.jboss.arquillian.testenricher » arquillian-testenricher-resource jar javadoc pom
  • org.jboss.arquillian.testenricher » arquillian-testenricher-initialcontext jar javadoc pom
  • org.jboss.arquillian.protocol » arquillian-protocol-servlet jar javadoc pom
  • org.jboss.arquillian.protocol » arquillian-protocol-jmx jar javadoc pom
  • org.jboss.arquillian » arquillian-bom pom

Release notes and resolved issues 18

Component Upgrade
  • ARQ-581 - Upgrade to ShrinkWrap Descriptors 1.1.0-beta-1
  • ARQ-655 - Upgrade Arquillian-Bom to consume the new ShrinkWrap-Bom's
Enhancement
  • ARQ-618 - ValidationException "DeploymentScenario contains targets not matching any defined Container in the registry." could be even more clear
  • ARQ-842 - Better error message when container configuration cannot be read
Feature Request
  • ARQ-686 - Remove parent artifact from Arquillian-BOM
  • ARQ-807 - Report unused configured container properties
  • ARQ-840 - Should allow to define a Container configuration with only default options
  • ARQ-852 - Remove examples in Core
  • ARQ-853 - Verify SPI JavaDoc
  • ARQ-858 - Should validate that a TestClass does not contain multiple same named Archives with the same Target
Bug
  • ARQ-619 - If multiple DeployableContainers are in the classpath the exception message is currently incorrect
  • ARQ-632 - org.jboss.arquillian.container.spi.client.protocol.metadata.JMXContext should close the JMXConnector when use of MBeanServerConnection is complete
  • ARQ-649 - Testsuite hangs using as7-managed-container
  • ARQ-857 - Verify Arquillian Core can run on JDK 1.5
  • ARQ-1843 - Tomcat managed container ignores javaHome configuration
Task
  • ARQ-565 - Triage Arquillian JIRA before 1.0.0.Final
  • ARQ-809 - Arquillian Build Broken Using Default Config

Thanks to the following list of contributors: Aslak Knutsen, Tommy Tynjä