Is it the end of RESTful era?

REST as the architectural style of designing web APIs has been around for years. Many developers are used to it and think about REST as about something fairly common. The others, who came from the world of desktop applications and RPC-like binary communication protocols, just started climbing the learning curve of REST trying to incorporate its principles into their brand new … Read more

Packaging of Java applications for Mac OS X with Maven on Linux or Windows

Apple uses application bundles for packaging applications. An application bundle is simply “a directory that allows related resources such as an application’s executable and its graphics to be grouped together, appearing as a single file to the user.” There are a couple of maven plugins which attempt to help creating application bundles. One of them … Read more

Using lambdas causes strange “variable X might not have been initialized” error

It’s been long time since Java 8 became publicly available but it is still surprising me a lot. Its spec is definitely worth reading. One of the things I recently stumbled upon is the fact that lambdas are not the same as anonymous classes. A compilation error reproducible only when building with maven was bugging … Read more

Why Java’s Runnable doesn’t let us throw exceptions but Callable does?

Recently coming across the subject I remembered that already questioned it in the past. While this seems obvious at first glance there is still something to clarify. Depending on the context, in some cases, adding throws declaration to the run method would be convenient since something exceptional may still happen and the code in the run … Read more

Software development on steroids: free web-based tools for better productivity

Whoever you are, an independent developer, freelancer or a team, your daily activities go far beyond just writing the code. You have plenty of issues in your backlog, a lot of code to test, a bunch of code repositories to manage and lots of binary dependencies to store somewhere (probably not in the code repository). In order … Read more

Local singletons in Spring

When developing applications using dependency injection containers there are times when having a single global scope is not enough. As an example, consider having multiple instances of some “heavy” component. Creating such components requires dependencies declared as singletons within the scope of a particular object hierarchy (usually rooted in the component itself), and as prototypes … Read more

Dynamic Code Evolution VM – Alternative to JRebel?

I recently came across a free JRebel alternative called DCEVM. In short, DCEVM is a patched Java Virtual Machine that allows you to dynamically replace code fragments in the running application. Unlike the standard JVM which is capable to only replace method bodies, DCEVM “allows adding and removing fields and methods as well as changes … Read more