Exclude `dmx-geomaps` module from standard distro
When the user/admin removes the dmx-geomaps
module from the deploy
folder "Geomap" still appears in the Webclient's "Topicmap Type" selector:
But when trying to create a geomap an error occurs at server-side:
SEVERE: Request "POST /topicmap?name=My+Geomap&topicmap_type_uri=dmx.geomaps.geomap" failed. Responding with 500 (Internal Server Error). The original exception/error is:
java.lang.RuntimeException: Creating topicmap "My Geomap" failed, topicmapTypeUri="dmx.geomaps.geomap"
at systems.dmx.topicmaps.TopicmapsPlugin.createTopicmap(TopicmapsPlugin.java:100)
...
Caused by: java.lang.RuntimeException: Topicmap type "dmx.geomaps.geomap" not registered
at systems.dmx.topicmaps.TopicmapsPlugin.getTopicmapType(TopicmapsPlugin.java:694)
at systems.dmx.topicmaps.TopicmapsPlugin.createTopicmap(TopicmapsPlugin.java:95)
... 50 more
The reason is that the frontend code of all the standard modules is statically "linked" into the Webclient (as a efficiency measure to reduce number of requests needed to launch the Webclient). So even when the dmx-geomaps
module is undeployed its frontend code still runs, that is the "Geomap" maptype is still registered at client-side (but not at server-side; causing an inconsistent situation).
The suggested solution is to exclude the dmx-geomaps
module from the standard disto, and make it an optional download.