.filter(path -> !container.find(path.getName()).isPresent()) .map(file -> { final String id = addPlugin(file.getAbsolutePath()); if (container.find(id).get().get(ContainerComponentRegistry.class).getComponents().isEmpty()) { removePlugin(id);
@Override public LightContainer find(final String plugin) { final ComponentManager manager = ComponentManager.instance(); Optional<Container> optionalContainer = manager.findPlugin(plugin); if (!optionalContainer.isPresent()) { log.info("Didn't find plugin " + plugin + ", had: " + manager.availablePlugins()); // we assume we use a fatjar created with nested-maven-repository extensions // (default nested loading) // so we have the plugin in TALEND-INF/plugins.properties and the jar located as // nested in current jar. try { optionalContainer = manager.findPlugin(manager.addPlugin(plugin)); } catch (final IllegalArgumentException iae) { // concurrent request? optionalContainer = manager.findPlugin(plugin); } } if (optionalContainer.isPresent()) { final LightContainer lightContainer = optionalContainer.get().get(LightContainer.class); if (lightContainer != null) { return lightContainer; } } return super.find(plugin); // TCCL } }
@Override public LightContainer find(final String plugin) { final ComponentManager manager = ComponentManager.instance(); Optional<Container> optionalContainer = manager.findPlugin(plugin); if (!optionalContainer.isPresent()) { log.info("Didn't find plugin " + plugin + ", had: " + manager.availablePlugins()); // we assume we use a fatjar created with nested-maven-repository extensions // (default nested loading) // so we have the plugin in TALEND-INF/plugins.properties and the jar located as // nested in current jar. try { optionalContainer = manager.findPlugin(manager.addPlugin(plugin)); } catch (final IllegalArgumentException iae) { // concurrent request? optionalContainer = manager.findPlugin(plugin); } } if (optionalContainer.isPresent()) { final LightContainer lightContainer = optionalContainer.get().get(LightContainer.class); if (lightContainer != null) { return lightContainer; } } return super.find(plugin); // TCCL } }