Jeff McAffer co-leads the Eclipse RCP and Equinox OSGi projects, and is CTO and co-founder of EclipseSource. He is one of the architects of the Eclipse Platform and a coauthor of The Eclipse Rich Client Platform (Addison-Wesley) 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 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, a team lead at Object Technology International covering work in Smalltalk, distributed/parallel OO computing, expert systems, meta-level architectures and a Ph.D. 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 and worked on a wide range of Smalltalk-based systems. After OTI’s acquisition by IBM, Paul 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 is a coauthor of OSGi and Equinox (Addison-Wesley), a book on the proper construction of Java applications using OSGi. He lives in Grand Rapids, Michigan, with his wife and four children.
Simon Archer has more than 16 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, which was later acquired by IBM. 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.
Most Helpful Customer Reviews on Amazon.com (beta)
8 of 8 people found the following review helpful
Great book. Good reference for OSGi best practices.June 26 2010
- Published on Amazon.com
Summary: This is a well executed and detailed explanation of how to develop modular Java systems and applications using OSGi and Equinox. It uses the development of an easy to follow example application, called Toast, as the vehicle to explain OSGi theory and practice using Equninox. One of the main themes of the book is the whys and hows of OSGi Declarative Services. In general, it is a good book for OSGi beginners, but familiarity with Eclipse is a perquisite. Advanced developers will find it to be a good resource and example of OSGi best practices.
The writing was clear and well edited; you could tell that it had been through many revisions to get it to its current polished state. The step-by-step instructions for the examples was at the right level for me, with enough detail to get things to work without being overly long. For instance, I find that I quickly get the concept of the example, but then I like to be given the details of what to name things and exactly what else to do, so that I can concentrate on the example and keep things moving along.
Another bonus that comes with the book is an Eclipse plug-in that can be installed from the web which includes the source code of all of the examples organized by chapter. It manifests itself as a special view in Eclipse that lists all of the example code. One can use this view to populate the workspace with the example code from any chapter, or, to compare the current workspace contents to the book's example. I found this last feature to be a great help as there were several times where things were not working and I was stuck for a solution. By simply comparing my manually entered version of the example code with the chapter's reference version, I quickly found the small differences that were causing problems and was quickly on my way. This ability is the next best thing to having the authors look over your shoulder and tell you what you did wrong.
I did run into a few issues with the book. There were several times where the steps provided to produce the example code were not complete. These were minor things like a missing dependency specification or in one case a default value produced by a wizard that needed to be explicitly set to something else. Mostly, these were no problem to correct.
Basically, I wasn't disappointed, this is a good book that delivers on what it promises.
10 of 11 people found the following review helpful
Absolutely a GEMApril 3 2010
- Published on Amazon.com
I've never learned starting with a wizard-generated code and then trying to decipher what it does with the help of authors explainations on that code. Many authors may still believe that, this is the right and concrete way, but it never worked for me. I'm theory oriented. I must have a goal at very early stages, and I want to know answers of all my WHY-questions. Otherwise I'll give up. Actually, I want to write (not to generate) code and have full control on it. Tools are there to easily modify and manage the code, if and only if I completely know and understand the purpose. This book DOES NOT start with wizard code. Further it chooses a very smart starting point. Very likely, a programmer started his eclipse plug-in and RCP adventure as being an eclipse JDT user. Thus, he knows programming java and uses eclipse as IDE, he deploys his applications in jar's etc... And this book takes you to the journey exactly at this point. It starts with ordinary java classes, and converts them to plug-ins and step by step ports this very simple code to a component based profi application.
6 of 7 people found the following review helpful
detailed tutorial for OSGi/EquinoxApril 11 2010
- Published on Amazon.com
"OSGi and Equinox"is the first "Eclipse Series" book I have read. It has three parts.
The first part is an introduction. The brief history shows how OSGI came to be and the benefits. It had excellent visuals to see the concepts being presented.
The second part is an extended tutorial to create the TOAST application from scratch. The tutorial assumes you've never used Eclipse before so it was a bit slow to get started. I would have liked seeing how to create a project/class as an appendix. There were a ton of IDE screenshots so I certainly felt like I was doing the tutorial with the author. That style got a little dry/repetitive; maybe because I wasn't following along on a computer. Many concepts were covered and there were good tips and warnings to the reader. I was a bit puzzled why the tests are using easyMock with Java 5 and Junit 4. I'll be sure to ask the author when he is at JavaRanch the week of April 20th.
The third part is "deep dives" into specific concepts. This section was less tutorial-y and I liked it better. It includes patterns, the lifecycle and crosscutting concerns. There is also an "other"/kitchen sink chapter that contains numerous tips and tracks.
Overall, I did learn a lot from the book. If you are looking to learn OSGi/Equinox, I think it is good to read.
3 of 3 people found the following review helpful
A Great Approach to Learning OSGi But Very Poorly SupportedNov. 5 2013
Conor J. Haines
- Published on Amazon.com
As a book outlining the concepts behind OSGi and Equinox it is useful, but the bulk of the book is dedicated to tutorial work. I agree with the approach, coding yourself is far and away the best method to learn these concepts. However, the tutorials are no longer functional for several reasons: installation of supporting tools (specifically a "samples manager") is no longer possible with new versions of Eclipse. This can be resolved by the reader after much googling of compilation errors, but with no direct support from the books website. Additionally, several critical and non-trivial steps are "left as an exercise for the reader". Also, the samples provided no longer function in the latest versions of Eclipse, with no support from the authors on-line.
1 of 1 people found the following review helpful
Inspiring and informatory yet often too Eclipse-centricJuly 10 2011
- Published on Amazon.com
Before judging "OSGi and Equinox: Creating Highly Modular Java Systems" from the point of my review I should point out that, contrary to the book's authors' suggestions, I did not follow it along while live coding. The book was vital to my OSGi understanding, but for the authors doing is often more important than the reading alone (of which I'm a strong proponent, too). I've already set myself out for the other reading of the book focusing on live development with Eclipse and I'm deeply sure my opinion will surely change.
This is the book that introduced me to OSGi in a more practical approach where understanding sample code of the Toast application is as important as the reading itself. I enjoyed its reading, but it was a bit annoying when many pages referred to the development aspects of OSGi focusing on code while I was merely reading along with no Eclipse in front of me. It was the most frustrating in the part 2 of the book which assumed Eclipse IDE ready and live coding as reading. I read with no coding, but it doesn't take long to find out it was not the authors' intentions.
The chapter "About This Book" eloquently describes what the book covers. Just read the chapter and jump to appropriate chapters or sections of choice. There's the natural, writing order of explaining the OSGi inner workings, but a more seasoned OSGi developer can use the book as a reference for the different parts of OSGi ecosystem without losing much while skipping different sections. I found the book heavily focused on the development side of OSGi with Eclipse PDE.
What it does not do is that in the book the term "OSGi" means, Eclipse Equinox and Eclipse PDE so a reader is quite often exposed to Eclipse-specific extensions that help as well as go far from what the OSGi specifications propose. That's the main differentiator between this and the other books about OSGi - "OSGi and Equinox: Creating Highly Modular Java Systems" is heavily focused on the Eclipse ecosystem. The goal of the book is mostly achieved and people who enjoy reading books as a guide throughout the stages of application development will find it deeply engaging. Developing and delivering a OSGi-based Toast application is explained in enough details to explain the Eclipse and OSGi concepts.
Many aside notes make reading more pleasant so in addition to technical information a reader gets acquainted with the reasoning underlying OSGi. There are also many figures and screenshots that further help understanding the covered material. They're clear and to the point.
The book's split on four parts.
The 1st part introduces to OSGi and Equinox in a more academic approach where you learn about the history of OSGi, its concepts, and what issues people meant to tackle as they designed it. The book goes as far as calling a single section "The Java Lie", which is short yet sets the tone for the rest of the book in which you will find a lot of useful tips how to strengthen modularity of your applications, but present them as "Missing Impossible" without OSGi. It takes mere 25 pages so it's clear the authors didn't mean to explain OSGi in theory, but in practice.
That's when the real fun begins - Part 2 enters the scene. It presents "a tutorial-style guide to building Toast" (page xxvi). The Toast application is a real GUI system leveraging OSGi and many features of Eclipse tooling, with Eclipse Equinox as the OSGi platform of choice and Eclipse IDE as an integrated development environment with Eclipse PDE being its main player. The 220 pages will make anyone content. Every stage of OSGi application development is laid out and explained "in an informal tutorial style" (page 29). The goal of the chapter (and of the entire book) is to "develop a fully functional OSGi-based application, Toast" and the authors took every step to achieve the goal. They finally donated the application to Eclipse to facilitate further development in a collaborative matter. Quickly and without much ado a reader is asked to fire up Eclipse and install the Samples Manager which is a way to manage all chapters of the book with their sample code. Importing a ready to use sample for a chapter, comparing your own code with the expected one is a matter of using "Compare with Workspace" feature of the Samples Manager. The authors did much to ensure a smooth entry point to every chapter.
That's where the chapter falls short at delivering its value to readers who merely read it without digesting its content during live coding. People who are only interested in learning OSGi by reading may find it quite troublesome. It's certainly not easy to read with no coding in this part of the book.
The 3rd part is where you learn about the advanced topics of OSGi with OSGi Declarative Services, the Extension Registry of Eclipse Equinox, OSGi Log Service, OSGi HTTP Service with a simple HTTP service of Equinox and the more sophisticated Eclipse Jetty, OSGi Remote Services (RFC 119). Explanation assumes that the code is heavily developed or at least consulted.
The last, 4th part, called "Reference" goes into the details of the Extender Pattern, StartLevel Service, turning JARs into useable OSGi bundles with Eclipse PDE (with a mere half a page about bnd with no sample!), Eclipse Console and the way it can be extended, and few other topics.
Reading the book will let you learn the basics of OSGi, but it also devotes the chapters to the Service Tracker, Service Activator Toolkit (SAT) and OSGi Dynamic Services (the chapter 6) examining the advantages and disadvantages of every approach. In part 3, you learn about OSGi Declarative Services and PDE tooling to support it.
There's a lot about how to use Eclipse PDE to fully leverage its power for developing OSGi-based applications. No other IDEs are ever mentioned.
The book introduced me to the vast array of possible solutions when OSGi is utilized I had not heard before or had not understood their goals - Eclipse Communication Framework (ECF), Eclipse p2, the provisioning system of Eclipse Equinox and the other tools from the Eclipse community. I'm really glad I read the book and would recommend it to anyone who wishes to learn OSGi as much as Eclipse offering supporting it.