Currently it is not possible to remove and then re-install our plugin into Confluence without restarting the servlet container that is running Confluence. This essentially makes it really annoying for our customers who wish to upgrade Gliffy as they are forced to restart Confluence after any upgrade.
This is caused by http://jira.atlassian.com/browse/CONF-7600
which Atlassian says is fixed as of Confluence 2.7-m5.
Atlassian also states that there are still problems in the Gliffy Plugin which need to be addressed to ensure this works correctly. Specifically:
============
The next problem looks like Gliffy is putting some objects in the global Confluence cache but doesn't clean up after itself when being uninstalled. So when the plugin is reinstalled, the old object created from the previous classloader is retrieved and things go badly. Hopefully this is a simple fix on the Gliffy side to cleanup after itself and then the plugin can be dynamically reloaded.
============
We need to identify and fix these issues so that re-installing Gliffy is possible without re-installing the servlet container.
I'm not sure if there is any way to get the plugin to "cleanup after itself " but we can possible catch the ClassCastException that is caused by this problem and get the cache flushed at that point. The interesting part will be making this confluence specific only since it doesn't apply to the online version of gliffy.