I’ve been developing with mostly open-source software for the last two years, and it’s made me soft. I realised this today, when I encountered a problem with the ESRI Map Objects libraries I am evaluating. An event listener that should – at least according to the documentation – be firing, isn’t firing.
Having worked with open-source software for so long, my first reaction is to have a look at the library code. With Spring, for example, there have been several cases where a quick examination of the source showed me that I was misinterpreting the reference manual. A quick tweak to my code, and I was off.
As it is, I’ve now got to go to the ESRI “self-help” forums. If there’s no answer there, we have to decide whether to ditch MapObjects, spend a day investigating clunky workarounds, or buy something that’s not working, with support, in the hope that support might might fix it. Wish me luck.
Update: I did find the answer via ESRI‘s self-help forums. Unlike normal Swing listeners, listeners on ESRI-provided Swing objects are only weakly referenced. If you want a listener to keep working, your code must maintain an additional strong reference to it. Words. Fail. Me.
Comments
Another option here is MapInfo MapXtreme for Java (www.mapinfo.com).
An open source option is GeoTools, http://www.geotools.org, the Java project which inspired me to build a better Python GIS framework on top of MapServer and GDAL (http://gispython.org).
When I was working with ESRI, one of the guys I was working with had the uber-support contract which basically was the same thing you'd get on most oss mailing lists, but cost someone a fortune. It was great.