Setting up the Felix framework
Time for action - downloading and installing Felix
Time for action - starting Felix
Let's Get Started: The Bookshelf Project
Set up the Book Inventory API Bundle project
Time for action - setting up the project skeleton
Time for action - creating the project POM
Time for action - creating the Book bean interface
Time for action - writing the BookInventory interface
Time for action - building and deploying the bundle
Let's implement those interfaces
Time for action - creating the POM
Time for action - implementing a mutable book
Time for action - implementing the mock (memory-stored) Book Inventory
Time for action - add a dependency to the OSGi Core library
Time for action - creating the Activator
Time for action - declaring Bundle-Activator
Using the OSGi Bundle Repository
OBR, the OSGi Bundle Repository
Installing the Book Inventory bundles to Felix
Time for action - install the book inventory bundles
Time for action - writing the APIs
Time for action - writing BookshelfServiceImpl
Time for action - implementing the service activator
Time for action - building the bundle
Time for action - installing and testing the service
Time for action - fulfilling the missing dependency
Adding a Command-Line Interface
The Apache Felix Gogo Shell Service
Time for action - creating the Bookshelf Service TUI bundle
Implementing a Gogo Shell Service command
Implementing the book:search command
Time for action - adding the required dependencies
Time for action - writing the BookshelfServiceProxy
Time for action - implementing a bundle activator
Time for action - packaging and installing
Time for action - trying out the book:search command
Time for action - cleaning up the bookshelf-service activator
Time for action - implementing the book-add command
Time for action - creating a book population script
Improve the Bookshelf Service with iPOJO
Let iPOJO register the inventory implementation
Time for action - creating the iPOJO metadata
The Felix iPOJO Gogo Command bundle
Time for action - removing lookups in the service implementation
Time for action - writing the bookshelf service iPOJO configuration
Time for action - updating the BookshelfServiceProxyImpl
Time for action - writing the iPOJO meta.xml
Time for action - updating the POM
Creating the log helper bundles
Time for action - creating the bookshelf-log-api bundle
Time for action creating the log helper implementation
Add logging to the bookshelf-service
Time for action updating the bundle POM
Time for action - updating the bookshelf service logging calls
Time for action - logging to BookshelfLogHelper
Using other Log Service implementations
How About a Graphical Interface?
iPOJO and the Whiteboard Extender
Time for action - installing the Apache Felix Http Service
A simple bookshelf web application
Time for action - implementing the servlet
Time for action - declaring the parameter constants
Time for action - implementing the operations
Time for action - installing commons-fileupload and commons-io
Time for action - installing json
Time for action - installing and starting the Web Console
Apache Felix iPOJO WebConsole Plugin
Time for action - installing the Pax Web bundles
Time for action - creating the bookshelf-webapp bundle
Time for action - setting up the web application bundle
Time for action - specifying dependencies
Getting a service reference in JSP
Time for action - writing the session bean
Time for action - using the service
Time for action - implementing the list books by category page