Hey, 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. 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(). At this point I've just done a quick POC and would be interested in feedback whether you think that's worth pursuing or not. Note that different language levels can be used for test and main code, so we could make use of lambdas in tests while ensuring Java 6 compatibility for the delivered artifacts. --Gunnar _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev