Transactional

Run
How to run the sample
The source code for this sample can be found in the javaee7-samples GitHub repository. The first thing we need to do is to get the source by downloading the repository and then go into the samples folder:
git clone git://github.com/javaee-samples/javaee7-samples.git
cd javaee7-samples/jta/transactional/
Now we are ready to start testing. You can run all the tests in this sample by executing:
mvn test
Or you can run individual tests by executing one of the following:
mvn test -Dtest=MyTransactionalTxTypeBeanTestmvn test -Dtest=MyTransactionalBeanWithUserTransactionTestmvn test -Dtest=MyTransactionalBeanTest

MyTransactionalTxTypeBeanTest

Missing a description for the story. Add some javadoc to the TestClass. Show me how!
Missing a description for the deployment. Add some javadoc to the @Deployment method. Show me how!
@Deployment
public static Archive<?> deploy() {
    return ShrinkWrap.create(JavaArchive.class)
                     .addClass(MyTransactionalTxTypeBean.class);
}
Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
@Test
public void should_required_work() {
     bean.required();
}
Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
@Test
public void should_requiresNew_work() {
    bean.requiresNew();
}
Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
@Test(expected = TransactionalException.class)
public void should_mandatory_throw_exception() {
    bean.mandatory();
}
Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
@Test
public void should_supports_work() {
    bean.supports();
}
Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
@Test
public void should_notSupported_work() {
    bean.notSupported();
}
Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
@Test
public void should_never_work() {
    bean.never();
}

MyTransactionalBeanWithUserTransactionTest

Missing a description for the story. Add some javadoc to the TestClass. Show me how!
Missing a description for the deployment. Add some javadoc to the @Deployment method. Show me how!
@Deployment
public static Archive<?> deploy() {
    return ShrinkWrap.create(JavaArchive.class)
                     .addClasses(MyTransactionalBean.class, MyTransactionScopedBean.class)
                     .addAsManifestResource("beans.xml");
}
Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
@Test
public void should_withTransaction_have_only_one_instance_injected() throws Exception{
    ut.begin();
    bean.withTransaction();
    ut.commit();
    assertThat("bean1 and bean2 should the same object", bean.id1, is(bean.id2));
}
Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
@Test
public void should_withTransaction_called_twice_have_same_instances_injected() throws Exception {
    ut.begin();
    bean.withTransaction();
    String firstId1 = bean.id1;

    bean.withTransaction();
    String secondId1 = bean.id1;
    ut.commit();

    assertThat("bean1 should change between scenarios", firstId1, is(secondId1));
}
Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
@Test
public void should_withoutTransaction_NOT_fail() throws Exception {
    try {
        ut.begin();
        bean.withoutTransaction();
        ut.commit();
    } catch (ContextNotActiveException e) {
        fail(e.toString());
    }
}

MyTransactionalBeanTest

Missing a description for the story. Add some javadoc to the TestClass. Show me how!
Missing a description for the deployment. Add some javadoc to the @Deployment method. Show me how!
@Deployment
public static Archive<?> deploy() {
    return ShrinkWrap.create(JavaArchive.class)
                     .addClasses(MyTransactionalBean.class, MyTransactionScopedBean.class)
                     .addAsManifestResource("beans.xml");
}
Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
@Test
public void should_withTransaction_have_only_one_instance_injected() {
    bean.withTransaction();
    assertThat("bean1 and bean2 should the same object", bean.id1, is(bean.id2));
}
Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
@Test
public void should_withTransaction_called_twice_have_different_instances_injected() {
    bean.withTransaction();
    String firstId1 = bean.id1;

    bean.withTransaction();
    String secondId1 = bean.id1;

    assertThat("bean1 should change between scenarios", firstId1, is(not(secondId1)));
}
Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
@Test
public void should_withoutTransaction_fail() {
    try {
        bean.withoutTransaction();
        fail("No ContextNotActiveException");
    } catch (ContextNotActiveException e) {
    }
}

Share the Knowledge

Find this sample useful? Share on

There's a lot more about JavaEE to cover. If you're ready to learn more, check out the other available samples.

Help Improve

Find a bug in the sample? Something missing? You can fix it by editing the source, making the correction and sending a pull request. Or report the problem to the issue tracker

Recent Changelog

  • Oct 05, 2014: #252 fixed arquillian configuration for the jobs by John D. Ament
  • Jul 15, 2014: Removed header license. the licensing is now referenced in the license file in the root of the project by Roberto Cortez
  • Mar 20, 2014: Update arquillian.xml cr1 references to final by Aslak Knutsen
  • Dec 24, 2013: Updated to wildfly 8.0.0.cr1 by Roberto Cortez
  • Dec 01, 2013: Merging jta/transaction-scope and jta/transactional modules by Alexis Hassler
  • Nov 13, 2013: Added arquillian test for the jta/transaction-scope example by Alexis Hassler
  • Nov 13, 2013: Added arquillian test for the jta/transactional example by Alexis Hassler
  • Oct 27, 2013: Fixing a typo for better formatting by Arun Gupta
  • Sep 17, 2013: Removing netbeans configuration file by Arun Gupta
  • Sep 12, 2013: Using cdi 1.1 "all" style beans.xml by Arun Gupta
How to help improve this sample
The source code for this sample can be found in the javaee7-samples GitHub repository. The first thing you need to do is to get the source by downloading the repository and then go into the samples folder:
git clone git://github.com/javaee-samples/javaee7-samples.git
cd javaee7-samples/jta/transactional/

Do the changes as you see fit and send a pull request!

Good Luck!