Enterprise Integration Zone is brought to you in partnership with:

Mitch Pronschinske is a Senior Content Analyst at DZone. That means he writes and searches for the finest developer content in the land so that you don't have to. He often eats peanut butter and bananas, likes to make his own ringtones, enjoys card and board games, and is married to an underwear model. Mitch is a DZone Zone Leader and has posted 2574 posts at DZone. You can read more from them at their website. View Full User Profile

OSGi Contracts: For Devs Who Think the Package Version Model is Too Much Work

08.21.2013
| 2622 views |
  • submit to reddit

An experimental release of bnd(tools) 2.2 has a new feature called contracts.  A recent blog post on OSGi.org explains who these contracts are for:

Though the OSGi has a very elegant package version model there are still many that think this is too much work. They do not want to be bothered by the niceties of semantic versions and just want to use, let's say, Servlet 3.0. For those people (seemingly not interested in minimizing dependencies) the OSGi Alliance came up with contracts in OSGi Core, Release 5.0.0. A contract allows you to:

   1.   Declare that a bundle provides the API of the given specification
   2.   Require that the API comes from a bundle that made the declaration


-- Peter Kriens


Read the rest of the article to get an idea of why these contracts work, even though they're seem strange to the experienced OSGi user.