Having developed an active interest in Enterprise OSGi, I decided to leap in and work my way through the ‘Enterprise OSGi in Action’ book by Tim Ward and Holly Cummins, published by Manning Publications. (manning.com, btw, is a great resource for technical hands-on books delivered electronically..many of them will feature in this blog.)
More details about *why* I am interesting in Enterprise OSGi is the subject for another blog post…enough, onto my progress so far.
I am already some weeks through this project, and have been using it to refresh my java development skills, which, I must admit, are somewhat rusty after some years in the technology project management space. This blog will touch upon some topics which may be obvious to every-day developers, but for folks who cut their teeth in C/C++ and Java in the 90’s and didn’t keep up programming into the 2000’s, some topics can be quite a revelation.
So, here’s what I’ve got so far:
- I’ve completed to Chapter 3 of the book (covering a simple web-based application with persistence)
- I’ve created a repository on GitHub:
- I’ve loaded the project into Eclipse for compilation error checking etc, but not for building
- I’ve written some simple shell scripts to do a *very* crude compile/build/deploy process – this is what folks were doing prior to ‘make’, never mind Nexus/Maven/etc!
What to do next:
- Properly understand what I did in the first 3 chapters..! 🙂
- Find out why I keep getting Derby/Blueprint errors when my application starts up – this appears to be a timing thing, but seems to be very sensitive and not particularly robust, as I have had it working previously..
- Improve the toolchain process – use Eclipse, bndtools, Jensen and Maven/Nexus to automate the compile/build/deploy process.
- Complete the following few chapters – delving more deeper into the ‘enterprise’ aspects of OSGi
- Build something ‘real’ with the technology.
Note that the ‘Enterprise OSGi in Action’ book is now a couple of years old..however, its concepts are still correct and apply to the latest specs of OSGi. I believe that with the correct application of the ‘bndtools’ toolset, building this example project would be a whole lot easier, hence a goal of this project is to do just that. Without bndtools, some deep technical understanding of what is going on is needed, which for many devs will be too much: they just want to get productive already…
If anybody else is exploring or experimenting with OSGi, feel free to comment. This is a learning exercise, so there are no stupid questions. (After having searched a few times in stackoverflow.com for problems which I attributed to my lack of recent hands-on experience, I’ve found that most of my stupid questions have already been asked by others and invariably answered.)
For those interested, I am doing most of my work on a MacBook Pro running Mac OS X Mavericks. I’ve installed Homebrew for some basic tools, but otherwise I’m developing in a standard Mac environment.