Opened 11 years ago

Last modified 10 years ago

#11090 closed enhancement

install and load plugins without restart — at Version 26

Reported by: bastiK Owned by: team
Priority: major Milestone: 15.02
Component: Core Version:
Keywords: plugin load restart Cc: skyper, olejorgenb, stoecker, lpechacek

Description (last modified by Klumbumbus)

It should be possible to install and load plugins without a restart of JOSM.

Status of Plugins

Change History (26)

comment:1 by bastiK, 11 years ago

In 8017/josm:

see #11090 - basic support for plugin loading at runtime.

This is still in testing stage. It will be announced on
the mailing list when plugin authors can start to adapt
their code.

comment:2 by bastiK, 11 years ago

In [o30952] - see ​#josm11090 - add Manifest property that indicates the plugin can load at runtime

comment:3 by bastiK, 11 years ago

In [o30953]: see ​#josm11090 - reverter plugin is ready for load at runtime

comment:4 by bastiK, 11 years ago

In 8020/josm:

see #11090 - make sure modifications to the current MapFrame are done when loading plugin at runtime

comment:5 by bastiK, 11 years ago

In [o30955]: see ​​#josm11090 - building_tools: add Manifest property that indicates the plugin can load at runtime

comment:6 by bastiK, 11 years ago

In 8024/josm:

see #11090 - make sure plugin preference tab is shown after runtime load

comment:7 by bastiK, 11 years ago

In [o30958]: see ​​#josm11090 - utilsplugin2 is ready for load at runtime

comment:8 by skyper, 11 years ago

Cc: skyper added

comment:9 by Klumbumbus, 11 years ago

Milestone: 15.02

comment:10 by bastiK, 11 years ago

In 8029/josm:

see #11090 - new option for LayerChangeListener to get an initial
notification when the LayerChangeListener is added

comment:11 by bastiK, 11 years ago

In [o30962]: see ​​​#josm11090 - plugins ready for load at runtime:

OpeningHoursEditor, mirrored_download, photo_geotagging, photoadjust,
piclayer, roadsigns, simplifyarea, tag2link, turnrestrictions

comment:12 by Don-vip, 11 years ago

Ticket #6396 has been marked as a duplicate of this ticket.

comment:13 by Don-vip, 11 years ago

Cc: olejorgenb stoecker added

comment:14 by Don-vip, 11 years ago

Priority: normalmajor

in reply to:  12 ; comment:15 by bastiK, 11 years ago

Replying to Don-vip:

Ticket #6396 has been marked as a duplicate of this ticket.

#6396 is about reloading plugins at runtime, i.e. first unloading it and then loading it again. This is a much more ambitious project and beyond the scope of the current ticket. olejorgenb provided a patch that proves it is technically possible, but I think a lot more "boring" stuff would need to be done before it worked properly.

comment:16 by bastiK, 11 years ago

In 8030/josm:

see #11090 - refresh plugin info after download & before loading

in reply to:  15 comment:17 by Don-vip, 11 years ago

Replying to bastiK:

#6396 is about reloading plugins at runtime, i.e. first unloading it and then loading it again. This is a much more ambitious project and beyond the scope of the current ticket. olejorgenb provided a patch that proves it is technically possible, but I think a lot more "boring" stuff would need to be done before it worked properly.

OK :)

comment:18 by Don-vip, 11 years ago

Component: PluginCore
Keywords: plugin load restart added

comment:19 by pwoelfel, 11 years ago

Areaselector plugin has been updated to v1.9.0 on github.

Last edited 11 years ago by pwoelfel (previous) (diff)

comment:20 by Klumbumbus, 11 years ago

It would be nice if also the table at Plugins displays if the plugin supports "install without restart". With this more prominent display it would maybe push some plugin developpers to update their plugin.

comment:21 by malcolmh, 11 years ago

SeaMapEditor (smed) updated & tested. New version published.

comment:22 by bastiK, 11 years ago

In [8074]:
#11090 - do not load plugins unless depenencies can be loaded
(or are already loaded)

comment:23 by Don-vip, 11 years ago

I have some problems to make it work with opendata [o31004:31009]. I have a reentrant call to the EDT when the plugin is loaded at runtime and I'm not sure ho to fix it.

Last edited 11 years ago by Don-vip (previous) (diff)

in reply to:  23 comment:24 by bastiK, 11 years ago

Replying to Don-vip:

I have some problems to make it work with opendata [o31004:31009]. I have a reentrant call to the EDT when the plugin is loaded at runtime and I'm not sure ho to fix it.

The future.get() in ModuleHandler.loadLocallyAvailableModuleInformation() locks in combination with EventQueue.invokeAndWait(...) in PleaseWaitRunnable.doRealRun().

This has worked before, because the method was only called in main thread, but now the plugins are loaded in EDT. Possible fixes:

  • Spawn a background thread to call loadModules() in the OdPlugin constructor
  • Don't use PleaseWaitRunnable, but call ReadLocalModuleInformationTask.realRun() directly in ModuleHandler.loadLocallyAvailableModuleInformation()
  • Use continuation style like in, e.g. in PluginPreference.UpdateSelectedPluginsAction

comment:25 by Mkyral, 11 years ago

Hi,
Tracer, Tracer-testing and pointInfo plugins updated, tested and released.

The czechaddress is obsolete as we have working address import from Czech RUIAN database. I'll check the possibility of dropping of the plugin with the Czech community.

comment:26 by Klumbumbus, 11 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.