Basics of continuous database integration with liquibase

Simple and fast refactoring of your database model is one of the most important things in order to implement flexible business requirements. Learn the basics of continuous database integration with liquibase. Liquibase supports tracking, managing and applying database schema changes. Feel the power and simplicity of liquibase.
Steffen Mall
Steffen Mall
comment icon 1 07.06.2016

Fighting the Transaction Reaper

Long running transactions might be killed by the App Server's Transaction Reaper. I have implemented a litte helper to programmatic handle such kinds of exceptions.
Andreas Günzel
Andreas Günzel
comment icon 0 31.05.2016

Intermediate commit within transaction

For long running transactions sometimes we wish to commit a kind of intermediate result to the database. This sounds pretty simple – however, if we do not want to commit the current transaction, you may run into deadlock situations. In my current project I implemented a nice solution using JPA and EJB.
Andreas Günzel
Andreas Günzel
comment icon 0 19.05.2016

Testing your rules without pain

In my current project we decided to use JBoss Drools 6, mainly for mapping data. It turned out to come in quite handy. However, when I tried to unit test my rules I was astonished how clumsy and cumbersome that was. Therefore I wrote a little library containing a JUnit-Runner that hides the needed boiler plate code and just lets you focus on the important thing: testing the rules.
Janine Eichler (guest author)
Janine Eichler (guest author)
comment icon 0 29.04.2016

JAX 2016: Thursday Close-up

I’ve always wanted to attend a Java conference this big. This year I finally had the chance to participate for one day. I was too enthusiastic to concentrate on one specific topic. Therefore, I had quite a wide range of subjects like Elasticsearch, Continuous Documentation and Internet of Things.
Aleksandr Schewelew
Aleksandr Schewelew
comment icon 0 21.04.2016

JAX 2016: Tuesday Close-up

Last year’s JAX was clearly stamped by the buzzword Microservice. For me, the term microservice was even more present today. Okay, Tuesday was marked as “MICROSERVICES DAY”. However, no attendee could by-pass this topic (not even in talks about JavaScript or upcoming Java 9 release).
Andreas Günzel
Andreas Günzel
comment icon 1 19.04.2016

Planning Poker in 2016

A common way to estimate user stories is the planning poker. In planning poker every team member plays a card to estimate a story. The number of this card stands for the story points. I had a look at different tools which support this classical estimation technique in a digital way.
Christine Bauers
Christine Bauers
comment icon 1 08.04.2016

How to start a new transaction inside a single EJB

When invoking a method of an EJB we get features like transactions, security or monitoring for free. However, this only works when the method call is intercepted by the container. So, method calls within the same bean do not enjoy this benefits. There is a nice hack to solve this problem.
Paulin Nguimdoh
Paulin Nguimdoh
comment icon 3 05.04.2016

How to unit test hazelcast

Recently I used hazelcast in several projects. Especially in an Application Server environment using the hazelcast JCA connector it is pretty easy to use hazelcast with only a few lines of code. Unfortunately, Hazelcast.getAllHazelcastInstances() returns an empty set in unit tests. So, what we need to do is to mock our HazelcastFactory somehow.
Andreas Günzel
Andreas Günzel
comment icon 0 31.03.2016

Dynamically resolve Hibernate database dialect

When using Hibernate as JPA provider you need to tell the application which database vendor you are using. The classic approach is to set the property "hibernate.dialect". This works in most cases. However, I often have to cope with different database vendors serving the same datasource - depending on the current environment. A solution to this problem is to use a DialectResolver that dynamically detects the needed Hibernate dialect to talk to the database.
Andreas Günzel
Andreas Günzel
comment icon 2 23.03.2016