¨Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away¨ Antoine de Saint-Exupery This quote by the French writer Antoine de Saint-Exupery was made to substantiate that often less is more. This is true for architect, artist, designer, writer, running, software developer, or in any other profession. Simplicity, minimalism, cutting down the cruft always goes ...
Read More »
A Micro Services Migration Story with JBoss BPM Travel Agency
Some time ago we launched a rather expansive JBoss Travel Agency demo project to show some of the more interesting feature of JBoss BPM Suite. We provided a collection of videos that not only show you how to install it, what the various rule and process artifacts are in the project, but we also walk you through the various paths ...
Read More »Impulse: “Crafted Design”
About half a year ago I urged you to watch Robert C. Martin’s talk Architecture – The Lost Years. It argued in favor of a design that clearly displays the application’s domain (e.g. logical units, services, use cases, …) and keeps auxiliary aspects (e.g. delivery mechanism, persistence, …) on the sidelines. While I really liked the talk, it was fairly ...
Read More »Creating a Message Driven Bean with AWS SQS in Spring
In my previous post I showed a simple example how to use AWS SQS with Spring Framework to put messages on a queue and to read them from the queue. In this post I go one step further and use Spring to create a ‘Message Driven Bean’ so each message that is put on the queue is picked up and ...
Read More »C# vs Java Which one is Faster? Translating 25k C# into Java (2)
In a previous article I described how I translated 25k lines of C# into Java and the lessons learnt from that exercise. I received the following question: Great article by the way. How did the performance compare to the C# version after the code was migrated? One of the motivations to move from to re-write the system was to make ...
Read More »How SQL GROUP BY Should Have Been Designed – Like Neo4j’s Implicit GROUP BY
In the recent past, we’ve explained the syntactic implications of the SQL GROUP BY clause. If you haven’t already, you should read our article “Do You Really Understand SQL’s GROUP BY and HAVING clauses?“. In essence, adding a GROUP BY clause to your query transforms your query on very implicit levels. The following reminder summarises the previous article: Only ...
Read More »Netflix Archaius for property management – Basics
Netflix Archaius provides a neat set of features to load dynamic properties into an application. This blog post is just a documentation of the extent of Archaius that I have understood, there is much more to it than I have documented here, but this should provide a good start: Default Behavior Consider a simple properties file: stringprop=propvalue listprop=value1, ...
Read More »WildFly 9 on NetBeans, Eclipse, IntelliJ, OpenShift, and Maven
WildFly 9 CR1 was recently released. Lots of cool features are included: Intelligent load balancing HTTP/2 and SPDY support A new offline CLI mode Graceful single node shutdown A new Servlet-only distribution And this is above the usual Java EE 7 compliance! This blog is a quick check to verify that it works in all three major IDEs and OpenShift. ...
Read More »Logging JAX-WS SOAP messages in Spring
Whenever you’re using JAX-WS within Spring you’ll probably want to log the incoming and outgoing SOAP messages – if only for debugging during development. So the first thing to do is increase the log levels, right? Unfortunately this will have no effect. What you will have to do is to make use of the javax.xml.ws.handler.HandlerResolver interface. So how do we ...
Read More »