The Arquillian team is proud to announce the 1.0.0.Alpha7 release of the Arquillian Persistence Extension component!
After quite a while we are happy to announce new version of Arquillian Persistence Extension with anticipated fixes and improvements.
Big thanks go to Sándor Bodó-Merle, Michel Graciano, Masao Kunii, kumm and Jakub Narloch for their contributions as well as all users who gave us feedback on the community forums.
Some of the highlights in this release
- SQL script handling improvements
SQL script handling has been significantly improved. It not only has improved performance (namely for Oracle) but also let you provide your own implementation for parsing multi-line scripts through simple SPI org.jboss.arquillian.persistence.spi.script.StatementSplitter
.
- Direct access to DBUnit
Ability to inject DBUnit DatabaseConnection
making it possible to interact with DBUnit directly in the tests.
@ArquillianResource
private DatabaseConnection databaseConnection;
- New SPI module
Through newly introduce SPI module you can now register your own datasource providers. This can be leveraged by frameworks such as Spring which can now do their own lookups (from application context) instead of relying on JNDI.
- New extension point
We have also implemented extension point to define custom implementation of org.dbunit.database.DatabaseSequenceFilter
which is used to seed and clean database by DBUnit. Out of the box we provide sequence filter strategy for Oracle. You can register it in arquillian.xml
as part of persistence-dbunit
<property name=“filterTables”>true</property>
<property name=“customTableFilter”>org.jboss.arquillian.persistence.dbunit.filter.OracleDatabaseSequenceFilterProvider</property>
- Custom filtering strategy
You can also define column filtering strategy when comparing datasets through @ShouldMatchDataSet
annotation. By simply providing an implementation of org.dbunit.dataset.filter.IColumnFilter
and decorating your test with e.g. @CustomColumnFilter({FirstNameColumnFilter.class, LastNameColumnFilter.class})
. Filter classes are packaged automatically.
This version comes with latest DBUnit 2.5.0.
We’ve also extended our test suite by adding Apache Tomee to our continuous integration pipeline.
We are still shaping up the extension and its modularity hence we split modules in the following manner:
persistence-api
persistence-core
persistence-dbunit – you can replace old impl dependency by this one
persistence-spi – SPI for future extensions
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
Published artifacts
org.jboss.arquillian.extension
-
org.jboss.arquillian.extension
»
arquillian-persistence-api
jar
javadoc
pom
-
org.jboss.arquillian.extension
»
arquillian-persistence-core
jar
javadoc
pom
-
org.jboss.arquillian.extension
»
arquillian-persistence-dbunit
jar
javadoc
pom
-
org.jboss.arquillian.extension
»
arquillian-persistence-spi
jar
javadoc
pom
-
org.jboss.arquillian.extension
»
arquillian-persistence-integration-tests
jar
javadoc
pom
Release notes and resolved issues
16
- Enhancement
-
- ARQ-812 - Split DBUnit and Core implemenation
- ARQ-1398 - DatabaseSequenceFilter should be optional
- Feature Request
-
- ARQ-1147 - Improve the column filtering feature to use custom IColumnFilter implementations
- ARQ-1338 - Should be able to define ad-hoc sql script through ApplyScript annotation
- ARQ-1355 - Access the DatabaseConnection for additional verifications in an arquillian test
- ARQ-1444 - Oracle does not support query delimiter inside statements
- ARQ-1572 - Marry Persistence and JRebel extensions
- ARQ-1664 - Provide custom table filter for seeding and cleaning databases
- Bug
-
- ARQ-1009 - ClassNotFoundException when using CLEAN_INSERT
- ARQ-1352 - Script can not insert unix path separator '/' into the DB
- ARQ-1360 - Persistence extension doesn't handle certain special characters.
- ARQ-1373 - Cleanup does not work when none datasets provided for seeding
- ARQ-1440 - Performance drops > 300%
- ARQ-1530 - Column ordering does not work properly due to DBUnit bug
- Task
-
- ARQ-1646 - Add WildFly managed container
Thanks to the following list of contributors:
Bartosz Majsak, Aslak Knutsen, Kumm, Sandor Bodo-merle, Michel Graciano, Masao Kunii, Jakub Narloch