Working with OSGi: The stuff you need to know
Paul VanderLei (Band XI International ), Jeff McAffer, Simon Archer (SAS ), Chris Aniszczyk
Making With Eclipse · Extended tutorial (180 mins)
Tags: OSGi DevCon , Runtime
Monday, 09:00, 3 hours | Stevens Creek
This tutorial guides you on the journey of developing a fully functional OSGi-based application. We cover the key elements of OSGi and creating OSGi-based systems with principles and practices that are applicable in a wide range of application domains and execution scenarios.
The tutorial content is based on the book OSGi and Equinox: Creating Highly Modular Java Systems and focuses on the creation and expansion of the Toast telematics and fleet management system developed in the book and now available in the Eclipse Examples project. Throughout the tutorial you will incrementally develop various aspects of Toast as a means of understanding OSGi and Equinox concepts and programming practices. In its finished form, Toast includes client and server parts, comprehensive use of Declarative Services, client/server discovery and communication over a variety of protocols as well as dynamic provisioning. You will leave the tutorial with a sound understanding of these elements as well as how to test and package you system. Along the way we discuss best practices both for coding patterns and development processes.
We'll cover the following topics:
- Getting Started: The tutorial starts by helping you set up your Eclipse IDE for OSGi bundle development including setting up your target platform. The tutorial has lots of sample code ready to load online, so bring your laptop and feel free to code along or just watch and learn.
- Declarative Services: You'll learn about OSGi's Declarative Services. And not just the spec! We'll show you some best practices for using DS by building up a real application. Along the way, we cover the PDE tooling for DS and show you how best to handle the dynamism of services. We also introduce OSGi's whiteboard pattern by implementing a server side web portal.
- Client-Server Interaction: As part of the sample application, you'll see how to use servlets and OSGi's HttpService to create a web portal and facilitate a variety of clients to connect to backend services.
- Testing: We use EasyMock and JUnit to test the domain logic in the sampel application. We also show how to write OSGi-based system tests.
- Packaging: We'll show you how to build, publish, and zip signed and otherwise exported bundles from your workspace. We also show you how to combine them with prebuilt bundles from others and ultimately distribute your system.
- Deployment with p2: Finally we introduce and demonstrate the use of the Equinox p2 provisioning platform to install, configure, update, and remove functionality from a Toast system.
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 MS in computer science from Arizona State University, he joined Object Technology International and worked on a wide range of Smalltalk-based systems. After OTI’s acquisition by IBM, Paul developed embedded Java applications and user interfaces for the automotive and medical industries as a founding member of IBM’s Embedded Java Enablement Team. He has been using OSGi in commercial applications for over ten years. He lives in Grand Rapids, Michigan, with his wife and four children.
Jeff McAffer co-leads the Eclipse Equinox OSGi and RCP efforts at Eclipse 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 OSGi and Equinox (Addison-Wesley). He co-leads the RT PMC and is a member of the Eclipse Project PMC, the Tools Project PMC and the Eclipse Architecture Council and has been elected to the Eclipse Foundation Board of Directors. 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.
Simon Archer has more than sixteen years of software engineering experience with an emphasis on object-oriented design, agile practices, and software quality. After earning his B.Sc. in computer science from the University of Portsmouth, UK, he worked as a Smalltalk developer at Knowledge System Corporation and later at Object Technology International. While at OTI in 2000, Simon began working with and teaching OSGi in areas such as telematics and RFID. Today he works for IBM Rational, using OSGi to build collaborative development tools for the Jazz Foundation project. He lives in Cary, North Carolina, with his wife and two children.
Chris Aniszczyk is the co-lead of the Eclipse Plug-in Development Environment (PDE) project and a Senior Software Engineer at EclipseSource. He is the co-author of The Eclipse Rich Client Platform (Addison-Wesley) book. 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, Eclipse Planning Council and has the honor to represent the committers on the Eclipse Foundation's Board of Directors. Chris’s passions are modularity, blogging, tooling and anything Eclipse. He’s always available to discuss opensource or Eclipse over a frosty beverage.