The old saying goes, good fences make for good neighbors. Modular systems are all about the fences, otherwise known as contracts. OSGi-based systems are simply compositions of modules and contracts. To express contracts in OSGi, we use version numbers. From our experience in the Eclipse community, we have found that managing API and these contracts a difficult process.
In the first part of this talk, well discuss the problem of version numbering and managing change. Well bring forward real world examples that demonstrate the complexities in managing change, including examples from the Eclipse community where change has caused havoc. There will be a demonstration of some the tools we developed at Eclipse to help manage change in your OSGi-based applications.
In the second part of this talk we draw on experiences and examples from the OSGi and Equinox book to identify key elements of modularity and point out best practices for designing and building modular systems using OSGi. Along the way we highlight pitfalls and anti-patterns and talk about ease of testing as barometer for modularity.
Chris Aniszczyk is the co-lead of the Eclipse Plug-in Development Environment (PDE) project and a Senior Software Engineer at EclipseSource. Chris tends to be all over the place inside the Eclipse community by committing on various Eclipse projects. He sits on the Eclipse Architecture Council and the Eclipse Foundation Board of Directors. Chris’s passions are modularity, software advocacy, tooling and anything Eclipse. He’s always available to discuss open-source or Eclipse over a frosty beverage.
Jeff McAffer leads the Eclipse Equinox OSGi, RCP teams and is CTO and co-founder of EclipseSource. He is one of the architects of the Eclipse Platform and a co-author of The Eclipse Rich Client Platform and the upcoming book Equinox and OSGi (Addison-Wesley). He co-leads the RT PMC and is a member of the Eclipse Project PMC, the Tools Project PMC and the Eclipse Foundation Board of Directors and the Eclipse Architecture Council. Jeff is currently interested all aspects of Eclipse components from developing and building bundles to deploying, installing and ultimately running them. Previous lives include being a Senior Technical Staff Member at IBM and work in distributed/parallel OO computing as well as expert systems, meta-level architectures and a PhD at the University of Tokyo.
Paul VanderLei is a partner at Band XI International. He has more than 25 years of software engineering experience with an emphasis on object-oriented design and Agile practices. He is well-known for his innovative, yet straightforward, engineering solutions to complex problems. After earning his M.S. in Computer Science from Arizona State University, he joined Object Technology International, which was later acquired by IBM. While at IBM, Mr. VanderLei gained more than 10 years of experience developing embedded Java applications and user interfaces for the automotive and medical industry as a founding member of the IBM Embedded Java Enablement Team. He has been using OSGi in commercial applications since 2000 and co-authors an upcoming book on the proper construction of Java applications using OSGi. He lives in Grand Rapids, Michigan, with his wife and four children.