in seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/ConnectorServiceImpl.java [255:300]
private List<DataSourceInfo> filterImplementDataSource(
List<ConnectorInfo> connectorInfoS,
BusinessMode businessMode,
SceneMode sceneMode,
PluginType pluginType) {
List<DataSourceInfo> dataSourceList = new ArrayList<>();
connectorInfoS.forEach(
connectorInfo -> {
String connectorName = connectorInfo.getPluginIdentifier().getPluginName();
ConnectorDataSourceMapperConfig.ConnectorMapper connectorMapper =
dataSourceMapperConfig
.getConnectorDatasourceMappers()
.get(connectorName);
if (null != connectorMapper) {
connectorMapper
.getDataSources()
.forEach(
datasourceName -> {
Optional<List<SceneMode>> sceneModes =
dataSourceMapperConfig.supportedSceneMode(
datasourceName, pluginType);
Optional<List<BusinessMode>> businessModes =
dataSourceMapperConfig.supportedBusinessMode(
datasourceName, pluginType);
if ((businessMode == null
|| businessModes.isPresent()
&& businessModes
.get()
.contains(businessMode))
&& (sceneMode == null
|| (sceneModes.isPresent()
&& sceneModes
.get()
.contains(
sceneMode)))) {
dataSourceList.add(
new DataSourceInfo(
connectorInfo, datasourceName));
}
});
}
});
return dataSourceList;
}