public <M> Collection<M> getModules(final Predicate<ModuleDescriptor<M>> moduleDescriptorPredicate) { return delegate.getModules(moduleDescriptorPredicate); }
private Iterable<ContextParametersExtractor> getExtractors() { return pluginAccessor.getModules(new ModuleDescriptorOfClassPredicate<>(ConnectContextParameterResolverModuleDescriptor.class)) .stream() .map(ConnectContextParametersResolver::getExtractors) .flatMap(Collection::stream) .collect(Collectors.toList()); } }
private Iterable<ContextParametersExtractor> getExtractors() { return pluginAccessor.getModules(new ModuleDescriptorOfClassPredicate<>(ConnectContextParameterResolverModuleDescriptor.class)) .stream() .map(ConnectContextParametersResolver::getExtractors) .flatMap(Collection::stream) .collect(Collectors.toList()); } }
private Iterable<ContextParametersValidator<T>> getValidatorsFromPlugins() { final Collection<ConnectContextParameterResolverModuleDescriptor.ConnectContextParametersResolver> modules = pluginAccessor.getModules(new ModuleDescriptorOfClassPredicate<>(ConnectContextParameterResolverModuleDescriptor.class)); Iterable<ContextParametersValidator> validators = concat(transform(modules, ConnectContextParameterResolverModuleDescriptor.ConnectContextParametersResolver::getValidators)); return Options.flatten(transform(validators, AbstractModuleContextFilter.this::tryCast)); }
private Map<String, ConnectModuleProvider<? extends ModuleBean>> getModuleProviders() { return pluginAccessor.getModules(new ModuleDescriptorOfClassPredicate<>(ConnectModuleProviderModuleDescriptor.class)) .stream().collect(Collectors.toMap(provider -> provider.getMeta().getDescriptorKey(), identity())); } }
@Override public Collection<AddonScope> build() { Collection<ConnectApiScopeWhitelist> whitelists = pluginAccessor.getModules( new ModuleDescriptorOfClassPredicate<>(ConnectApiScopeWhitelistModuleDescriptor.class)); Map<ScopeName, AddonScope> scopes = new HashMap<>(); for (ConnectApiScopeWhitelist whitelist : whitelists) { AddonScopeLoadJsonFileHelper.combineScopes(scopes, whitelist.getScopes()); } List<AddonScope> scopeList = new ArrayList<>(scopes.values()); Collections.sort(scopeList); return scopeList; } }
@Override public Collection<AddonScope> build() { Collection<ConnectApiScopeWhitelist> whitelists = pluginAccessor.getModules( new ModuleDescriptorOfClassPredicate<>(ConnectApiScopeWhitelistModuleDescriptor.class)); Map<ScopeName, AddonScope> scopes = new HashMap<>(); for (ConnectApiScopeWhitelist whitelist : whitelists) { AddonScopeLoadJsonFileHelper.combineScopes(scopes, whitelist.getScopes()); } List<AddonScope> scopeList = new ArrayList<>(scopes.values()); Collections.sort(scopeList); return scopeList; } }
private Map<String, ConnectModuleProvider<? extends ModuleBean>> getModuleProviders() { return pluginAccessor.getModules(new ModuleDescriptorOfClassPredicate<>(ConnectModuleProviderModuleDescriptor.class)) .stream().collect(Collectors.toMap(provider -> provider.getMeta().getDescriptorKey(), identity())); }
private Map<String, ConnectModuleProvider<?>> getModuleProviders() { return pluginAccessor.getModules(new ModuleDescriptorOfClassPredicate<>(ConnectModuleProviderModuleDescriptor.class)) .stream().collect(Collectors.toMap(provider -> provider.getMeta().getDescriptorKey(), identity())); }
private Iterable<ContextParametersValidator<T>> getValidatorsFromPlugins() { Iterable<ContextParametersValidator> validators = Iterables.concat(Iterables.transform(pluginAccessor.getModules( new ModuleDescriptorOfClassPredicate<>(ConnectContextParameterResolverModuleDescriptor.class)), new Function<ConnectContextParameterResolverModuleDescriptor.ConnectContextParametersResolver, List<ContextParametersValidator>>() { @Override public List<ContextParametersValidator> apply(final ConnectContextParameterResolverModuleDescriptor.ConnectContextParametersResolver input) { return input.getValidators(); } })); return Options.flatten(Iterables.transform(validators, new Function<ContextParametersValidator, Option<ContextParametersValidator<T>>>() { @Override public Option<ContextParametersValidator<T>> apply(final ContextParametersValidator contextParametersValidator) { return tryCast(contextParametersValidator); } })); }
private Map<String, ConnectModuleProvider<?>> getModuleProviders() { return Maps.uniqueIndex( pluginAccessor.getModules(new ModuleDescriptorOfClassPredicate<>(ConnectModuleProviderModuleDescriptor.class)), input -> input.getMeta().getDescriptorKey() ); }
public synchronized void registerDescriptorsForBeans(ConnectAddonBean addon) throws ConnectModuleRegistrationException { //don't register modules more than once if (registrations.containsKey(addon.getKey())) { return; } Collection<ConnectModuleProvider<?>> moduleProviders = pluginAccessor.getModules( new ModuleDescriptorOfClassPredicate<>(ConnectModuleProviderModuleDescriptor.class)); // The time period bracketed here is the one we are naively obligated to pay each request with the current // vertigo spike logic as per EXT-43. I'm not including the module provider logic above as we could easily // hoist this in the vertigo logic. final long start = System.currentTimeMillis(); Map<String, List<ModuleBean>> moduleLists = getModuleLists(addon); List<ModuleBean> lifecycleWebhooks = getLifecycleWebhooks(addon.getLifecycle()); Map<String, List<ModuleBean>> lifecycleWebhookModuleList = Collections.singletonMap(new WebHookModuleMeta().getDescriptorKey(), lifecycleWebhooks); List<ModuleDescriptor<?>> descriptorsToRegister = new ArrayList<>(); getDescriptorsToRegisterForModules(moduleLists, addon, moduleProviders, descriptorsToRegister); getDescriptorsToRegisterForModules(lifecycleWebhookModuleList, addon, moduleProviders, descriptorsToRegister); final long stop = System.currentTimeMillis(); log.info("registerDescriptorsForBeans computed descriptors for {} in {}ms", addon.getKey(), (stop - start)); registrations.putIfAbsent(addon.getKey(), dynamicDescriptorRegistration.registerDescriptors(descriptorsToRegister)); }