Developer Information

This section provides some developer related information to help you understand and extend Backpedal.

Component Oriented

Backpedal is my first attempt at climbing the software development maturity ladder from vanilla OO to component oriented development. Thats why you see usage of interfaces bordering on the excessive. I will dance a jig the day I get my first reusable component :-)



Backpedal uses PicoContainer/NanoContainer to manage components and component dependencies. Check out BackpedalNanoContainer. It is bootstrapped from backpedal.nconf. BackpedalNanoContainer adds a little to the NanoContainer it extends, namely the pushing of a properly configured Log instance into all components that require logging. It results in very clean code IMHO.



Backpedal was written almost four times. Initially I wrote it using Avalon Excalibur. Then I started porting it to XWork, but aborted. So I next started porting it to Avalon Fortress, but stopped that as soon as I spotted PicoContainer. This looks more like a pure-play IoC framework, and has proved to do the business really well.

Exception Handling

There is only one exception - VeggieSystemException. Its a runtime exception. I don't see the value of subclassed exceptions. The value for me is in the message the exception contains.



Neither do I see the value in having the exceptions checked when there is a single point of entry to the system (namely BackpedalP6SpyFactory).



However, if either of these things are causing you trouble and preventing you from using Backpedal, contact me using the link at the top of the page and we can discuss it. At least it'll help me locate use cases where checked and/or subclasses exceptions are required.

Veggie

Veggie is a collection of handy code that I use a lot that I have not yet open sourced. I plan to do that some day. There is nothing earth shattering in it. In the meantime, I have bundled the veggie jar into the Backpedal's CVS and distribution.