NIFI-13609 Correct Component Search Configuration (#9131)

* NIFI-13609 Corrected Component Search Configuration
- Removed duplicate Controller Search Service bean definition
- Wired Controller Search Service to Controller Facade bean definition
- Added Flow Controller reference for SearchableMatcher
This commit is contained in:
David Handermann 2024-07-31 14:04:49 -05:00 committed by GitHub
parent d41d8edbfb
commit 8ad6aa6ede
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 19 additions and 25 deletions

View File

@ -50,7 +50,6 @@ import org.apache.nifi.web.dao.AccessPolicyDAO;
import org.apache.nifi.web.dao.impl.ComponentDAO;
import org.apache.nifi.web.revision.RevisionManager;
import org.apache.nifi.web.search.query.RegexSearchQueryParser;
import org.apache.nifi.web.search.resultenrichment.ComponentSearchResultEnricherFactory;
import org.apache.nifi.web.util.ClusterReplicationComponentLifecycle;
import org.apache.nifi.web.util.LocalComponentLifecycle;
import org.apache.nifi.web.util.ParameterContextNameCollisionResolver;
@ -97,6 +96,8 @@ public class WebApplicationConfiguration {
private final RuntimeManifestService runtimeManifestService;
private final ControllerSearchService controllerSearchService;
private ClusterCoordinator clusterCoordinator;
private RequestReplicator requestReplicator;
@ -113,7 +114,8 @@ public class WebApplicationConfiguration {
final FlowService flowService,
final NiFiProperties properties,
final RevisionManager revisionManager,
final RuntimeManifestService runtimeManifestService
final RuntimeManifestService runtimeManifestService,
final ControllerSearchService controllerSearchService
) {
this.authorizer = authorizer;
this.accessPolicyDao = accessPolicyDao;
@ -125,6 +127,7 @@ public class WebApplicationConfiguration {
this.properties = properties;
this.revisionManager = revisionManager;
this.runtimeManifestService = runtimeManifestService;
this.controllerSearchService = controllerSearchService;
}
@Autowired(required = false)
@ -232,27 +235,11 @@ public class WebApplicationConfiguration {
return new RegexSearchQueryParser();
}
@Bean
public ComponentSearchResultEnricherFactory resultEnricherFactory() {
final ComponentSearchResultEnricherFactory factory = new ComponentSearchResultEnricherFactory();
factory.setAuthorizer(authorizer);
return factory;
}
@Bean
public StandardReloadComponent reloadComponent() {
return new StandardReloadComponent(flowController);
}
@Bean
public ControllerSearchService controllerSearchService() {
final ControllerSearchService controllerSearchService = new ControllerSearchService();
controllerSearchService.setAuthorizer(authorizer);
controllerSearchService.setFlowController(flowController);
controllerSearchService.setResultEnricherFactory(resultEnricherFactory());
return controllerSearchService;
}
@Bean
public NiFiWebConfigurationContext nifiWebConfigurationContext() {
final StandardNiFiWebConfigurationContext context = new StandardNiFiWebConfigurationContext();
@ -276,6 +263,7 @@ public class WebApplicationConfiguration {
controllerFacade.setProperties(properties);
controllerFacade.setFlowService(flowService);
controllerFacade.setRuntimeManifestService(runtimeManifestService);
controllerFacade.setControllerSearchService(controllerSearchService);
controllerFacade.setSearchQueryParser(searchQueryParser());
return controllerFacade;
}

View File

@ -58,16 +58,19 @@ public class WebSearchConfiguration {
private final FlowController flowController;
private final ComponentSearchResultEnricherFactory resultEnricherFactory;
public WebSearchConfiguration(
final Authorizer authorizer,
final FlowController flowController,
final ComponentSearchResultEnricherFactory resultEnricherFactory
final FlowController flowController
) {
this.authorizer = authorizer;
this.flowController = flowController;
this.resultEnricherFactory = resultEnricherFactory;
}
@Bean
public ComponentSearchResultEnricherFactory resultEnricherFactory() {
final ComponentSearchResultEnricherFactory factory = new ComponentSearchResultEnricherFactory();
factory.setAuthorizer(authorizer);
return factory;
}
@Bean
@ -76,7 +79,7 @@ public class WebSearchConfiguration {
controllerSearchService.setAuthorizer(authorizer);
controllerSearchService.setFlowController(flowController);
controllerSearchService.setResultEnricherFactory(resultEnricherFactory);
controllerSearchService.setResultEnricherFactory(resultEnricherFactory());
final ComponentMatcherFactory factory = new ComponentMatcherFactory();
controllerSearchService.setMatcherForConnection(factory.getInstanceForConnection(
@ -139,6 +142,9 @@ public class WebSearchConfiguration {
new PortScheduledStateMatcher()
)
));
final SearchableMatcher searchableMatcher = new SearchableMatcher();
searchableMatcher.setFlowController(flowController);
controllerSearchService.setMatcherForProcessor(factory.getInstanceForConnectable(
List.of(
new ExtendedMatcher<>(),
@ -148,7 +154,7 @@ public class WebSearchConfiguration {
new RelationshipMatcher<>(),
new ProcessorMetadataMatcher(),
new PropertyMatcher<>(),
new SearchableMatcher()
searchableMatcher
)
));