For border crossings where a safe location just inside the border can't be found, the player is now teleported to the spawn location for the current world instead of for the main world
Removed direct Permissions plugin support. Now permissions are solely handled directly through Bukkit's built-in "superperms" permission system, since all modern permission plugins should now be interfacing through that.
Event handler switched over to new Bukkit event system
For /wb fill and /wb trim, "stop" can now be used interchangeably with existing "cancel" directive.
Removed plugin "loading" and "shutting down" log messages at startup and shutdown since Bukkit now handles such messages itself.
Updated CoordXZ to have slightly more unique hashCode values for fewer hashCode intersections.
Fill process now checks the world region files directly to determine which chunks have been previously generated and skips over them, so existing worlds where much of the world is already generated should get through the fill process much faster.
Fill process should run much more smoothly regardless of what frequency you've specified.
If the fill process is paused due to low memory, it now tries to prod Java into cleaning up memory, so the process usually is able to start right back up almost immediately.
A few other minor tweaks to the fill process.

Moved world region file handling code out to new separate WorldFileData class, which is used by both the trim process and the fill process.
Release 1.5.1
Compatibility with upcoming CB 1.1-R5 and above: removed legacy Configuration code.
improved "whoosh" knockback effects; use /wb whoosh <on|off> to enable/disable the effect, and try crossing the border to see it in action
Release 1.5.2
Fix for potential problems caused by player location changing while border checking task is referencing it

Also explicit Vehicle cast necessarily added due to Bukkit changes
Update "new location" method to accept locations at Y positions higher than the old 128 limit; vertical limit is now based on Bukkit's reported World.getMaxHeight() value
Fix for fill and trim commands not working on newer 1.2+ worlds due to new region file type
Release 1.5.3
Fix for error on border crossing if player is riding on something which is not classifiable as a Vehicle (as only provided by another plugin, presumably, like one that makes wolves ride-able)
Added integration with DynMap to display borders. It's enabled by default if you have DynMap installed, but note that you'll need DynMap v0.36 or newer for it to work. Borders will be displayed correctly as round or square and should be very accurate, based on a Y height of 64 on isometric maps. Any changes you make to your borders should almost immediately be reflected in DynMap (border radius or shape change, removal, new border set, etc.).
Thanks to mikeprimm for adding a couple of requested features to DynMap which made this feature possible.

New commands:
/wb dynmap <on/off> - turn DynMap border display on or off.
/wb dynmapmsg <text> - DynMap border labels will show this.

New permissions:
worldborder.dynmap (Op): Can enable/disable DynMap border display integration
worldborder.dynmapmsg (Op): Can set the label text for borders shown in DynMap

Also, a slight improvement to how boolean values are determined from command input; it accepts "y", "yes", "true" instead of just "on".
If attempting to get MarkerAPI from DynMap results in an NPE (like version 0.35 if DynMap's Spout integration fails), it will no longer prevent WorldBorder from continuing to load.
Release 1.5.4
Add pom.xml for maven building