public Date findLastUpdated() { return instance .find(Stream::of) .map(Container::getLastModifiedTimestamp) .max(Date::compareTo) .orElseGet(() -> new Date(0)); }
public void undeploy(final String pluginGAV) { if (pluginGAV == null || pluginGAV.isEmpty()) { throw new IllegalArgumentException("plugin maven GAV are required to undeploy a plugin"); } String pluginID = instance .find(c -> pluginGAV.equals(c.get(ComponentManager.OriginalId.class).getValue()) ? Stream.of(c.getId()) : empty()) .findFirst() .orElseThrow(() -> new IllegalArgumentException("No plugin found using maven GAV: " + pluginGAV)); instance.removePlugin(pluginID); }
private <T> ComponentFamilyMeta.BaseMeta<? extends Lifecycle> findMeta(final Class<T> componentType) { return asManager() .find(c -> c.get(ContainerComponentRegistry.class).getComponents().values().stream()) .flatMap(f -> Stream .concat(f.getProcessors().values().stream(), f.getPartitionMappers().values().stream())) .filter(m -> m.getType().getName().equals(componentType.getName())) .findFirst() .orElseThrow(() -> new IllegalArgumentException("No component " + componentType)); }
public Optional<Object> createComponent(final String plugin, final String name, final ComponentType componentType, final int version, final Map<String, String> configuration) { final String familyName = container.buildAutoIdFromName(plugin); return find(pluginContainer -> Stream.of(pluginContainer.get(ContainerComponentRegistry.class))) .filter(Objects::nonNull) .map(r -> r.getComponents().get(familyName)) .filter(Objects::nonNull) .map(component -> ofNullable(componentType.findMeta(component).get(name)) .map(comp -> comp .getInstantiator() .apply(configuration == null ? null : comp.getMigrationHandler().migrate(version, configuration)))) .findFirst() .flatMap(identity()) // unwrap to access the actual instance which is the desired one .map(i -> Delegated.class.isInstance(i) ? Delegated.class.cast(i).getDelegate() : i); }
public Optional<Mapper> findMapper(final String plugin, final String name, final int version, final Map<String, String> configuration) { return find(pluginContainer -> Stream .of(pluginContainer .get(ContainerComponentRegistry.class) .getComponents() .get(container.buildAutoIdFromName(plugin)))) .filter(Objects::nonNull) .map(component -> ofNullable(component.getPartitionMappers().get(name)) .map(mapper -> mapper .getInstantiator() .apply(configuration == null ? null : mapper.getMigrationHandler().migrate(version, configuration))) .map(Mapper.class::cast)) .findFirst() .flatMap(identity()); }
public Optional<org.talend.sdk.component.runtime.output.Processor> findProcessor(final String plugin, final String name, final int version, final Map<String, String> configuration) { return find(pluginContainer -> Stream .of(pluginContainer .get(ContainerComponentRegistry.class) .getComponents() .get(container.buildAutoIdFromName(plugin)))) .filter(Objects::nonNull) .map(component -> ofNullable(component.getProcessors().get(name)) .map(proc -> proc .getInstantiator() .apply(configuration == null ? null : proc.getMigrationHandler().migrate(version, configuration))) .map(org.talend.sdk.component.runtime.output.Processor.class::cast)) .findFirst() .flatMap(identity()); }
return indicesPerRequest .computeIfAbsent(new RequestKey(locale, includeIconContent), k -> new ComponentIndices(manager .find(c -> c .execute( () -> c.get(ContainerComponentRegistry.class).getComponents().values().stream())
final Locale locale = localeMapper.mapLocale(language); return new ActionList(manager .find(c -> c .get(ContainerComponentRegistry.class) .getServices()
private ConfigTypeNodes toNodes(final String language, final Predicate<String> filter, final boolean lightPayload) { final Locale locale = localeMapper.mapLocale(language); return manager .find(Stream::of) .filter(c -> c.get(RepositoryModel.class) != null) .map(c -> c