Arquillian Transaction Extension: Transaction Rollback for your Java EE Integration Tests

I really love Arquillian to run integration tests for my Java EE applications – especially when running on different containers – and I also love the Arquillian tool stack from Arquillian Drone to the Arquillian Persistence Extensions. Today I’d like to share a short snippet how to achieve transaction rollbacks when testing an EJB in combination with Arquillian and the Arquillian Transaction Extension… Arquillian Basics If you’ve never heard of the Arquillian framework before, please feel free to have a look at the Arquillian documentation or an article of mine: Arquillian Tutorial: Writing Java EE 6 Integration Tests and more... ...

June 16, 2013 · 5 min · 1012 words · Micha Kops

Continuous Deployment using GlassFish, Jenkins, Maven and Git

Recently I needed a quick solution to deploy a Java EE 6 web application on a GlassFish instance automatically and subsequent to a successful build of the project on the integration server. It took only a few steps using Jenkins, Maven and the Cargo plugin and I’d like to share this quick solution with you here. Prerequisites We need the following software installed and configured: Git Jenkins / Hudson + Git Plugin installed Maven 3 GlassFish 3.1 JDK 7 ...

May 29, 2013 · 6 min · 1202 words · Micha Kops

Creating Rich Clients with Apache Pivot

Apache Pivot is a modern framework to create rich clients as desktop applications or to run in a web browser. It offers nice GUI elements, supports XML/WTKX templates, data bindings, JVM scripting languages and much more. In the following short examples I’m going to create a desktop application to open a file browser, select a file and output the selected file’s name, first using a programmatic approach to create the user interface, and afterwards using XML/WTKX templates. ...

May 19, 2013 · 5 min · 994 words · Micha Kops

Easy Database Migrations using Flyway, Java EE 6 and GlassFish

Database migrations often are a necessity in the application development and maintenance life-cycle. Whenever we need to apply changes to the database structure, insert new data fragments and in doing so want to be sure that this all happens with some control and versioning. The following tutorial shows how implement this for a simple Java EE 6 web application to be run on a GlassFish application server in a few quick steps using the Flyway framework, an eager initialized Singleton EJB and some Maven wiring. ...

April 28, 2013 · 9 min · 1742 words · Micha Kops

Creating slim Database Projections using JPA2 Constructor Expressions

One common question that you may encounter one day when using object-relational-mapping in your application is how to slim down data that you’re retrieving from the persistence layer down to a specific subset for your use-case in an efficient manner and without using complex additional mapping frameworks. In some situations you might declare lazy loaded fields but another approach that I’d like to share with you here are JPA2 constructor expressions. ...

April 14, 2013 · 9 min · 1744 words · Micha Kops

Creating a Blueprint or Content-Creator Plugin for Confluence

Blueprint is a new API in Confluence 5 that allows developers to create new content elements and to hook into the Confluence “create” dialogue – not to be confused with OSGi blueprints, the CSS blueprint framework or Tinkerpop Blueprints here. Content may be added using simple XHTML templates, dynamic templates enriched with data from context providers or even customized JavaScript dialogues. Another feature is, that pages of a specific blueprint type may be aggregated in a collector view that displays all pages created with the specific blueprint ...

March 17, 2013 · 5 min · 922 words · Micha Kops

Micro Benchmarking your Tests using JUnit and JUnitBenchmarks

I recently stumbled upon a nice framework that allows to convert simple JUnit tests into micro benchmarks named JUnitBenchmarks. It allows to set basic benchmark options and and to generate charts by adding some simple annotations and a test rule to your tests. One might argue if it is wise to mix the aspects, testing and benchmarking and I’d agree for sure – nevertheless I think this framework can be handy sometimes so let’s create some benchmarks using JUnit and JUnitBenchmarks.. ...

March 10, 2013 · 8 min · 1508 words · Micha Kops

Adding multiple EntityListeners to an Entity in JPA 2

The ability to attach lifecycle events to an entity using simple annotations sometimes is a neat feature in the Java Persistence API. The following short snippets demonstrate how to bind and trigger the different available lifecycle events using an embedded derby database and a bunch of annotations. Dependencies I’m using Hibernate as persistence manager here and Derby as an easy to setup database. In the last step we’ll be writing a test that’s why we’ve added JUnit and Hamcrest. ...

February 25, 2013 · 6 min · 1098 words · Micha Kops

Using Apache Camel with Scala and the Camel Scala DSL

Whenever I encounter a situation where I have to mix a blend of different services and endpoints and apply one or more of the traditional enterprise integration patterns then Apache Camel often is my weapon of choice. I simply love how easy it is to set up some datasources, add some routing magic, data transformers, load balancers, content enrichers and enjoy the result. Another thing that I’m beginning to love is Scala and so this is the perfect time to write an article about using Scala and Apache Camel together. ...

February 13, 2013 · 15 min · 3186 words · Micha Kops

Using the Android Daydream API

Daydream is the new interactive screensaver mode that was added in the Android 4.2 / Jelly Beans release. Such “dreams” may be activated when the device is in idle mode or inserted into a dock. In the following tutorial we’re going to create a simple daydream that starts a simple animation and in addition we’ll be adding a configuration screen to alter the behaviour of this daydream. Create a new Android Application First of all we need a new android project. I am using Eclipse and the ADT plugin here but any other solution like using a specific Maven archetype and the Jayway Maven plugin or using SBT should work, too. ...

January 22, 2013 · 6 min · 1097 words · Micha Kops