I bought this book because of the chapter talking about Voyager. However, reading the book from cover to cover, I found many mistakes:- classes extending interface (instead of implementing) see pages 42, 168, 379
- methods without return value; see pages 43, 62
- code with compiler errors; see page 121
- utilization of non-existing classes (see page 180: Invite)
- Instantiation of abstract class (see page 200)
- Unfinished code (see page 203, catch without type)
- declaration of throws exception when those exceptions are never thrown (page 239)
- error in the program logic (see page 285, where anExtension.actions should be used instead of anExtension.bundles)
- strings not closed (see page 381).
I reported these problems to the author and received no response. So, if you want to buy this book, forget about the code, because it won't compile...