I've wanted to work with the OpenBD engine itself for a long time, the idea of being able to extend it sounded both fun and useful but there were two things working against me.
1. I didn't know Java
2. I didn't know how to make plugins or modify the engine
I can't say that I know Java now, but I'm learning and at a pretty decent rate I think.
I just can't do "Hello World" over and over, so I wanted to do something real, and then I saw someone on the google group ask if we could have a function added to the engine, isUserLoggedIn()
Now, knowing what the function does, I figured that's about as easy as it gets, so I started digging and figured out (With some help) how to register functions and whatnot, and created the isUserLoggedIn() function, made a pull request on GitHub and it was accepted, my code is now in the engine :)
The next step was to figure out how to make plugins, as some of my ideas aren't a good fit for getting added to the engine itself.
Andy Wu with AW2.0 suggested that I look at an existing plugin to get an idea of how they work, and with his help I managed to get up and running, and created a plugin that uses a Mashape API for converting strings of text into Yoda-speak.
Not a very useful plugin, but not only was it a real plugin, it talked to an external API, so kind of cool.
Today I released my first "real" plugin, one that's a bit more useful.
Something I've always wanted was the ability to create barcodes, and now I finally created a plugin for that purpose.
Tadaa: https://github.com/MFernstrom/barcode-plugin
It uses the barcode4j for regular barcodes, and ZXing library for generating QR codes.
The images are saved to disk, and the function returns a boolean true if all went well.
I'm learning Java the same way I taught myself CFML, by doing things for real, and I'm having a blast.
I'm open to ideas about things the community would like to have, if it's doable and sounds like fun I'll likely take a stab at creating it, be it functions, improvements or plugins.
For anyone else thinking about getting into making plugins, all I can say is: DO EEET!
It's fun, and is a natural progression for a CFML dev wanting to continue on the path, since the engines are all written in Java.