Bodo Meissner wrote:
When I experimented with remotecontrol and wmsplugin I sometimes got 
NoSuchMethodException and JOSM suggested to disable the plugin, but sometimes 
JOSM simply hung.

No console output?

I will also implement a function to request the API version of the
remotecontrol plugin. So in future wmsplugin will not use
remotecontrol if it is too new.

I should have implemented a getVersion method with my first change, but now 
it's too late.

You can use reflection to check, if the method getVersion() exists. If not, this counts as version 0.

My intention is that wmsplugin will use reflection to call the getVersion 
method. This will avoid any ClassNotFoundException when remotecontrol is not 
installed. Of course wmsplugin will call this method only if remotecontrol is 
loaded.
When remotecontrol returns a compatible version, wmsplugin will register its 
remote request handler, otherwise it will display a message that it cannot use 
remotecontrol.

Let me try to summarize:
wmsplugin.WMSRemoteHandler includes (compiles against) classes from remotecontrol plugin, but does not ship these classes. It relies on remotecontrol plugin to provide them.

So each time the source code of remotecontrol.PermissionPref, remotecontrol.RequestHandler or remotecontrol.RequestHandlerErrorException changes, getVersion must return a new version number. This way wmsplugin can abort the registration and avoid an instantiation that would lead to ClassNotFound error.

This should be working... Anyone has a better idea?


Sebastian

_______________________________________________
josm-dev mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/josm-dev

Reply via email to