private static boolean shouldKeep(Class<?> type, Object extension, @Nullable ExtensionMatcher matcher) { return ClassUtils.isAssignable(extension.getClass(), type) && (matcher == null || matcher.accept(extension)); } }
private static void doInstall(ComponentContainer container, ExtensionMatcher matcher, @Nullable PluginInfo pluginInfo, Object extension) { if (matcher.accept(extension)) { container.addExtension(pluginInfo, extension); } else { container.declareExtension(pluginInfo, extension); } }
@Test public void should_add_only_batch_extensions() { ExtensionMatcher filter = ProjectScanContainer.getScannerProjectExtensionsFilter(); assertThat(filter.accept(new MyBatchExtension())).isTrue(); assertThat(filter.accept(MyBatchExtension.class)).isTrue(); assertThat(filter.accept(new MyProjectExtension())).isFalse(); assertThat(filter.accept(MyProjectExtension.class)).isFalse(); assertThat(filter.accept(new MyServerExtension())).isFalse(); assertThat(filter.accept(MyServerExtension.class)).isFalse(); assertThat(filter.accept(new MyTaskExtension())).isFalse(); assertThat(filter.accept(MyTaskExtension.class)).isFalse(); }
private void addScannerExtensions() { getComponentByType(CoreExtensionsInstaller.class) .install(this, noExtensionFilter(), extension -> getScannerProjectExtensionsFilter().accept(extension)); getComponentByType(ExtensionInstaller.class) .install(this, getScannerProjectExtensionsFilter()); }
private static boolean shouldKeep(Class<?> type, Object extension, @Nullable ExtensionMatcher matcher) { return ClassUtils.isAssignable(extension.getClass(), type) && (matcher == null || matcher.accept(extension)); } }
private static void doInstall(ComponentContainer container, ExtensionMatcher matcher, @Nullable PluginInfo pluginInfo, Object extension) { if (matcher.accept(extension)) { container.addExtension(pluginInfo, extension); } else { container.declareExtension(pluginInfo, extension); } }
private void addScannerExtensions() { getComponentByType(CoreExtensionsInstaller.class) .install(this, noExtensionFilter(), extension -> getScannerProjectExtensionsFilter().accept(extension)); getComponentByType(ExtensionInstaller.class) .install(this, getScannerProjectExtensionsFilter()); }