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

A short Introduction to ScalaTest

ScalaTest is an excellent framework to write concise, readable tests for your Scala or Java code with less effort. In addition it integrates well with a variety of frameworks like JUnit, TestNG, Ant, Maven, sbt, ScalaCheck, JMock, EasyMock, Mockito, ScalaMock, Selenium, Eclipse, NetBeans, and IntelliJ. In the following short tutorial we’re going to write some tests using ScalaTest exploring features like rich matchers, BDD syntax support or web tests using Selenium/Webdriver. ...

January 13, 2013 · 7 min · 1346 words · Micha Kops

Snippet: XML-Pull-Parser with XPP3

When there is XML to be parsed sometimes we’re chosing a DOM parser, sometimes a SAX parser and sometimes we’re using an XML pull parser, especially on Android. The following short snippet shows how to use the xpp3 xml pull parse to fetch some information in xml format from a public issue tracker and to extract issue details. Adding Dependencies Just one dependency needed here: xpp3 SBT Simply use the following build.sbt ...

December 28, 2012 · 3 min · 459 words · Micha Kops

Creating Pre-Commit-Hooks in Git and Mercurial: Prefix Commit Messages for Feature/Story Branches

Managing my projects’ source code I am using Git also as Mercurial. Therefore I often encounter the situation where I am creating a special branch to implement a specific user story or feature request. Now when working on such a story branch I often enter the issue-key or a short title as a prefix for each commit message. Doing this by manually is a waste of time and error-prone and luckily for us, each of both DVCS offers us an easy API to add custom hooks to the different life-cycle events. ...

December 16, 2012 · 4 min · 784 words · Micha Kops

Running categorized Tests using JUnit, Maven and Annotated-Test Suites

Sometimes we need to classify the tests in a project and a possible solution to achieve this goal is to assign different categories to the tests. Often we’re doing this to separate the execution of fast-running and long-running tests or to run a specific set of tests that is only applicable in special situations. To run a specific set of categorized tests there are different options and in the following tutorial we’ll be covering two of them: by configuring the Maven Surefire Plug-in or by using a JUnit Test Suite and the JUnit annotations. ...

December 6, 2012 · 4 min · 748 words · Micha Kops

Content Detection, Metadata and Content Extraction with Apache Tika

Encountering the situation that you want to extract meta-data or content from a file – might it be an office document, a spreadsheet or even a mp3 or an image – or you’d like to detect the content type for a given file then Apache Tika might be a helpful tool for you. Apache Tika supports a variety of document formats and has a nice, extendable parser and detection API with a lot of built-in parsers available. ...

December 2, 2012 · 11 min · 2222 words · Micha Kops

New features in JUnit 4.11

JUnit is one of the most popular testing frameworks out there. Version 4.11 has just been released and offers some nice improvements that you shouldn’t miss. Dependencies In older versions of JUnit there were two dependencies .. junit:junit contained an old version of hamcrest and could cause some nasty trouble .. junit:junit-dep just referenced hamcrest the maven way. Now with version 4.11 there is just junit:junit with clean references to hamcrest and junit:junit-dep is relocated to junit:junit. ...

November 18, 2012 · 4 min · 850 words · Micha Kops

Creating an offline Rich-Client-Application using HTML, CSS and Java with SWT

There are a lot of frameworks out there to create offline applications and rich clients in Java. One exotic alternative is to use the HTML, CSS and Javascript for this purpose and render the application in a Java frame using SWT and SWT’s browser component. Creating a new Project We’re using maven here for our project but you shouldn’t have a problem to use SBT, Gradle or Ivy instead… Adding Maven Dependencies We need two things .. first comes a repository for the swt dependencies … ...

November 12, 2012 · 6 min · 1084 words · Micha Kops

Make your Tests more readable with custom Hamcrest Matchers

Everyday we’re writing tests for our software and sometimes we’re in a situation where we’re testing a specific type or object very often. Luckily Hamcrest allows us to create custom matchers by subclassing from a given variety of available matchers. Adding jUnit and Hamcrest First add the dependencies for JUniti and Hamcrest to your project’s pom.xml or alternative build system. <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>test</scope> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-all</artifactId> <version>1.3</version> <scope>test</scope> </dependency> </dependencies> ...

October 28, 2012 · 3 min · 610 words · Micha Kops