private void saveNewPluginConfiguration(PluginConfiguration newPluginConfiguration) { List<PluginProperty> properties = newPluginConfiguration.getProperties(); for (PluginProperty property : properties) { property.setPluginConfiguration(newPluginConfiguration); } this.getDao().updateProperties(newPluginConfiguration.getProperties()); }
/** * {@inheritDoc} */ @Override public void saveOrUpdate(PluginConfiguration entity) { for (PluginProperty property: entity.getProperties()) { property.setPluginConfiguration(entity); } super.saveOrUpdate(entity); }
/** * Get model for showing plugin configuration * * @param configuration current plugin configuration * @return ModelAndView */ private ModelAndView getModel(PluginConfiguration configuration) { Map<String, String> labels = new HashMap<>(); List<Plugin> plugins = pluginLoader.getPlugins(new NameFilter(configuration.getName())); if (!plugins.isEmpty()) { Plugin plugin = plugins.get(0); if (plugin != null) { labels = translatePropertiesLabels(configuration.getProperties(), plugin); } } return new ModelAndView("plugin/pluginConfiguration") .addObject("pluginConfiguration", configuration) .addObject("labelsTranslation", labels); }
private void loadConfigurationFor(List<Plugin> plugins) { for (Plugin plugin : plugins) { String name = plugin.getName(); PluginConfiguration configuration; try { configuration = pluginConfigurationDao.get(name); if (configuration.getProperties().isEmpty()) { // Wee can't use #setProperties method. It will lead to exception configuration.getProperties().addAll(plugin.getDefaultConfiguration()); } } catch (NotFoundException e) { configuration = new PluginConfiguration(name, false, plugin.getDefaultConfiguration()); pluginConfigurationDao.saveOrUpdate(configuration); } try { plugin.configure(configuration); } catch (UnexpectedErrorException e) { LOGGER.error("Can't configure plugin during loading. Plugin name = " + plugin.getName()); } } }
/** * {@inheritDoc} */ @Override public void configure(PluginConfiguration configuration) throws UnexpectedErrorException { try { this.applyConfiguration(configuration.getProperties()); if (configuration.isActive()){ state = State.ENABLED; LOGGER.trace("Plugin {} is configured and activated", this.getName()); } else { state = State.CONFIGURED; LOGGER.trace("Plugin {} is configured", this.getName()); } } catch (PluginConfigurationException | RuntimeException e) { state = State.IN_ERROR; LOGGER.warn("Plugin {} configuration failed", this.getName(), e); throw new UnexpectedErrorException(e); } }