On 25 Jan 2014, at 10:41, Gunnar Morling <gun...@hibernate.org> wrote:
> I've played around a bit with the idea of using Java 8 lambdas to make > tests easier to write and read. We have many tests which open a session and > TX, do some stuff, commit, open a new TX (and/or session), do some > assertions and so on: > > Session session = openSession(); > Transaction transaction = session.beginTransaction(); > > // heavy testing action... > transaction.commit(); > session.clear(); > > transaction = session.beginTransaction(); > > // load, assert... > transaction.commit(); > session.clear(); > > The same could look like this using Java 8 lambdas: > > Foo foo = inTransactionWithResult( (session, tx) -> { > // heavy testing action... > } ); > > inTransaction( (session, tx) -> { > // load, assert... > } ); > > Extracting the session/TX handling removes quite some clutter and focuses > more on the actual testing logic. Makes things a but nicer. A bit of syntactic sugger. Not sure though whether it is enough to switch to JDK 8 for building. > It also avoids problems due to dangling > transactions e.g. in case of assertion failures as the TX handling is done > in a finally block in inTransaction(). A lot of this should already be taken care of by the CustomRunner we use to execute the tests. —Hardy _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev