Articles

May 6, 2020

Bndtools without OSGi?

Bndtools is the premier development tool OSGi applications. However, can it also be used to build plain old Java applications without OSGi?

April 2, 2020

Do You Know What is Running?

Most OSGi systems grow over time. Do you still know what you're system is really doing?

March 17, 2020

OSGi Innovations

A recent addition to Bndtools shows how powerful the OSGi Requirement-Capability model is

March 2, 2020

OSGi on Android

A story to bring the joy of OSGi to an Android device

August 2, 2018

Keep Passing the Open Windows

Mark Reinhold published the State of the Module System a few weeks ago as a kick off for the JSR 376 Expert Group. Since then, we've slowly started to do some discussions in this expert ...

June 28, 2018

OSGi Promises 1.1

A gentle introduction into Promises

May 22, 2018

State Machines and Alloy

A gentle introduction to state machines and Alloy

March 22, 2018

Configuration Updater

What to do when you defined your configuration schema in a Java annotation interface but now need to update the configuration?

January 17, 2018

Neural Nets & Tensor Flow

Gotting curious to TensorFlow I did a deep dive in neural nets. This shows a minimal net the Java way.

July 15, 2017

Pragmatic Formal Specifications : Alloy

An introduction into a very pragmatic tool if you want to play with formal specifications.

July 7, 2017

JPMS, The Module Path

The JPMS Module path is the replacement for the venerable -classpath and solve all its problems.

June 14, 2017

JPMS, The Sequel

The long lasting demonstration why software is hard

May 11, 2017

Modules Without a Cause

A tad of frustration with the state of modularity in our industry

May 8, 2017

Java's Pre Modular Syndrome

Why Jigsaw is an excellent module system ... for modularizing OpenJDK

April 24, 2017

OSGi Has No Start Ordering

A post that introduces an Aggregate State service that efficiently addresses the problem when a service should begin in a dynamic environment.

November 23, 2016

Declarative Services and Concurrency

Concurrency and DS work very well together but there are pitfalls.

October 12, 2016

Select Service Implementation from Command Line Arguments

How do you create an OSGi application where the user can specify via the command line what service to pick.

July 21, 2016

Semantic Logging

Semantic logging is promoted by Microsoft to add structure to logs. Let's see how we can add semantic logging to Java.

December 12, 2015

IoT & Standards

About 8 years ago Apple steamrolled the mobile telephony industry with the first iPhone. They drastically disrupted the symbiosis of operators and device manufacturers. Nokia and Motorola did not survive this mayhem ...

October 19, 2015

Java 9 Jigsaw

Mark Reinhold published the State of the Module System a few weeks ago as a kick off for the JSR 376 Expert Group. Since then, we've slowly started to do some discussions in this expert ...

August 16, 2015

Taking Exception

Did you ever look at how we as developers are handling our exceptions? Open source lets us see that we've developed an intriguing number of ways of handling ...

March 30, 2015

Yet Another Maven Bundle Plugin!

It must have been 8 years ago that Richard S. Hall visited me here in the south of France. During these days we hacked ...

September 24, 2014

How should I use Blueprint?

Someone asked me over mail how to use Guice (or any other injector) inside my bundle? The short answer is: don't. The slightly ...

September 10, 2014

Challenged

In my last whiny post I stated that we tend to solve the symptoms and not the root problem, Jaco Joubert challenged me to define what the real ...

September 9, 2014

The Unbearable Uncoolness of Java

This weekend I played with Docker to better understand this technology and this was quite fun. Interesting how we focus our energy on solving symptoms instead of addressing the root problem. But I deviate.

August 29, 2014

Is Docker Eating Java's Lunch?

This weekend I played with Docker to better understand this technology and this was quite fun. Interesting how we focus our energy on solving symptoms instead of addressing the root problem. But I deviate.

July 22, 2014

The Secret of Modularity

Everybody I talk to seems to agree that modularity reduces complexity but the group of people that can actually articulate why modularity works is significantly smaller. How does the magic work?

July 14, 2014

The Big Ball of Mud

I am a tad frustrated about the whole µService discussion. How carefully designed concepts and terminology gets trampled over by a crowd ...

June 23, 2014

Software mixed with marketing: micro-services

A few months ago I was on the phone when the speaker on the other side mentioned micro-services. Many moons ago I'd written a blog about OSGi's µservices because people were getting confused ...

November 21, 2013

OSGi Services versus Extenders

In the OSGi community there are two patterns that are widely used, but looking at a recent Stackoverflow question, not so widely understood. So an attempt to elucidate ...

November 6, 2013

The Transaction Composability Problem

Entering the enterprise world from an embedded background feels a bit like Alice must have felt when she entered Wonderland. Sometimes you feel very big, other times you feel awfully small ...

October 8, 2013

Breaking Bad

In my quest to get OSGi and JPA working together purely through services I ran head on to an API that breaking my code badly: java(x).sql. After making things work on Java 6 ...

September 30, 2013

Baselining, Semantic Versioning Made Easy

Versioning is one of those things where everybody has a general idea but few really understand it well, resulting in many different and sometimes bizarre practices. The semantic versioning movement put a more solid footing on the version syntax, creating a version Domain Specific Language (DSL) to ...

September 24, 2013

The Magic of Modularity

Anybody that has done some computer classes over the last 30 years has learned about modularity ...

September 2, 2013

Why has OSGi a dynamic model?

OSGi was derived from Sun's Java Embedded Server, a product that had dynamics at its heart. It consisted of a dynamic µservice model with updatable modules. So why did we adopt this, seemingly complex ...

September 2, 2013

Modularity

August 26, 2013

Dear Prudence: Cant we achieve the modularity through normal jars?

The more (open) source code I see the more I realize that so many developers do not understand the implications of class loaders and ...

August 21, 2013

The Perfect OSGi Persistence Model?

After having such good experiences with Mongodb last year it is a tad frustrating to have to dive into the messy and fuzzy Java persistence world. Ok, I did miss the transactions in Mongodb a lot but for the rest it was a dream. However, there are good cases ...

July 22, 2013

Accidental Complexity

I am currently writing an RFP for the increasing adoption work I will do for the OSGi Alliance. To understand the landscape, I interviewed a number of software companies. The first interview was a Spring/Maven shop, representing mainstream Java development. However, I've seen that ...

July 16, 2013

Real Men Don't Use DS

In general watching Stackoverflow is a pleasant way to spent some spare time. Helping other people out feels good and it is nice to see how the number of OSGi questions, and thus adoption, is increasing. However, it can also hurt looking ...

July 15, 2013

The Trouble with Objects

When I discovered objects in the early '80s my mind was blown away. This was a technology that felt right, it gave me a way to think about my software that I utterly missed in structured programming. My career in the 90's ...

July 1, 2013

The Architecture

Last year when I started with jpm4j I spent quite a bit of time exploring the state-of the art technologies. Even before that start point I had decided that the world had changed, most Java web frameworks looked ...

May 20, 2011

What You Should Know about Class Loaders

The more (open) source code I see the more I realize that so many developers do not understand the implications of class loaders and ...