Modularity is an important aspect of large Java systems. Build scripts and projects are often split up into modules in order to improve the build, but this is rarely taken into account at runtime. This second part of the Modular Java series discusses static modularity, the creation of bundles, how to install them into an OSGi engine and how to set up (versioned) dependencies between bundles.
Over the last few years, modularity for Java has been an active discussion topic. From the (now defunct) JSR 277 to the recognition of JSR 291 and the ongoing JSR 294, modularity is seen as a necessary step in Java's evolution. Even future JVM-based languages like Scala are considering modularity. So, what does modularity mean, and why should you care?
This article describes "the hardest topic in OSGi, how to deal with service dynamics," based on personal experience. Two factors, concurrency and direct service references, make the problem "fiendishly hard." An import and an export policy should form a comprehensive doctrine for dealing with service dynamics and the article explores two export policies with their corresponding doctrines.
In a new article, Eric Newcomer writes about the current status of distributed OSGi and explains the reasons for standardizing it in the first place. 3
Java module systems have received lots of attention. In this article Lukas Krecan gives a round-up of the current solutions & presents his concern on solutions like project Project Jigsaw & JSR-294. 9
In this article, Srini Penchikala discusses Domain Driven Design from a practical stand-point. The article looks at architectural guidelines and best practices that can be used in a DDD project. 53
Eric Newcomer, co-chair of the OSGi Enterprise work group, talks about the evolution of OSGi and it's relationship to SOA and ESB. 7
An update from the Spring team on Spring 2's delay to late Sept to improve JMS, JPA, and integrate with OSGi. 5