Class DiscoveryService
java.lang.Object
org.odpi.openmetadata.frameworks.connectors.Connector
org.odpi.openmetadata.frameworks.connectors.ConnectorBase
org.odpi.openmetadata.frameworks.discovery.DiscoveryService
- All Implemented Interfaces:
AuditLoggingComponent
,SecureConnectorExtension
,VirtualConnectorExtension
,OpenDiscoveryService
- Direct Known Subclasses:
AuditableDiscoveryService
,DiscoveryPipeline
,DropFootWeeklyMeasurementsDiscoveryService
,ValidatePatientRecordDiscoveryService
public abstract class DiscoveryService
extends ConnectorBase
implements OpenDiscoveryService, AuditLoggingComponent, VirtualConnectorExtension
DiscoveryService describes a specific type of connector that is responsible for analyzing the content
of a specific asset. Information about the asset to analyze is passed in the discovery context.
The returned discovery context also contains the results.
Some discovery services manage the invocation of other discovery services. These discovery services are called
discovery pipelines.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.odpi.openmetadata.frameworks.connectors.ConnectorBase
ConnectorBase.ProtectedConnection
-
Field Summary
FieldsFields inherited from class org.odpi.openmetadata.frameworks.connectors.ConnectorBase
connectedAssetProperties, connectionBean, connectionProperties, connectorInstanceId, secretsStoreConnectorMap
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Free up any resources held since the connector is no longer needed.Return the component description that is used by this connector in the audit log.Return the discovery context for this discovery service.protected List<DiscoveryService>
Retrieve and validate the list of embedded connectors and cast them to discovery service connector.protected void
handleUnexpectedException
(String methodName, Throwable error) Provide a common exception for unexpected errors.void
initializeEmbeddedConnectors
(List<Connector> embeddedConnectors) Set up the list of discovery services connectors that will be invoked as part of this discovery pipeline.void
setAuditLog
(AuditLog auditLog) Receive an audit log object that can be used to record audit log messages.void
setDiscoveryContext
(DiscoveryContext discoveryContext) Set up details of the asset to analyze and the results of any previous analysis.void
setDiscoveryServiceName
(String discoveryServiceName) Set up the discovery service name.void
start()
Indicates that the discovery service is completely configured and can begin processing.Methods inherited from class org.odpi.openmetadata.frameworks.connectors.ConnectorBase
equals, getConnectedAssetProperties, getConnection, getConnectorInstanceId, hashCode, initialize, initializeConnectedAssetProperties, initializeSecretsStoreConnector, isActive, toString
Methods inherited from class org.odpi.openmetadata.frameworks.connectors.Connector
clearStatisticProperty, clearStatisticTimestamp, getConnectorStatistics, getStatisticCounter, getStatisticProperty, getStatisticTimestamp, incrementStatisticCounter, initializeStatisticCounter, setStatisticProperty, setStatisticTimestamp
-
Field Details
-
discoveryServiceName
-
discoveryContext
-
auditLog
-
embeddedConnectors
-
-
Constructor Details
-
DiscoveryService
public DiscoveryService()
-
-
Method Details
-
setAuditLog
Receive an audit log object that can be used to record audit log messages. The caller has initialized it with the correct component description and log destinations.- Specified by:
setAuditLog
in interfaceAuditLoggingComponent
- Parameters:
auditLog
- audit log object
-
getConnectorComponentDescription
Return the component description that is used by this connector in the audit log.- Specified by:
getConnectorComponentDescription
in interfaceAuditLoggingComponent
- Returns:
- id, name, description, wiki page URL.
-
initializeEmbeddedConnectors
Set up the list of discovery services connectors that will be invoked as part of this discovery pipeline. The connectors are initialized waiting to start. After start() is called on the discovery pipeline, it will choreograph the invocation of its embedded discovery services by calling start() to each of them when they are to run. Similarly for disconnect().- Specified by:
initializeEmbeddedConnectors
in interfaceVirtualConnectorExtension
- Parameters:
embeddedConnectors
- list of embedded connectors that are hopefully discovery services
-
setDiscoveryContext
Set up details of the asset to analyze and the results of any previous analysis.- Parameters:
discoveryContext
- information about the asset to analyze and the results of analysis of other discovery service request. Partial results from other discovery services run as part of the same discovery service request may also be stored in the newAnnotations list.
-
setDiscoveryServiceName
Set up the discovery service name. This is used in error messages.- Parameters:
discoveryServiceName
- name of the discovery service
-
getDiscoveryContext
Return the discovery context for this discovery service. This is typically called after the disconnect() method is called. If called before disconnect(), it may only contain partial results.- Returns:
- discovery context containing the results discovered (so far) by the discovery service.
-
getEmbeddedDiscoveryServices
Retrieve and validate the list of embedded connectors and cast them to discovery service connector. This is used by DiscoveryPipelines and DiscoveryScanningServices.- Returns:
- list of discovery service connectors
- Throws:
DiscoveryServiceException
- one of the embedded connectors is not a discovery service
-
start
Indicates that the discovery service is completely configured and can begin processing. This is where the function of the discovery service is implemented. This is a standard method from the Open Connector Framework (OCF) so be sure to call super.start() in your version.- Overrides:
start
in classConnectorBase
- Throws:
ConnectorCheckedException
- there is a problem within the discovery service.
-
handleUnexpectedException
protected void handleUnexpectedException(String methodName, Throwable error) throws ConnectorCheckedException Provide a common exception for unexpected errors.- Parameters:
methodName
- calling methoderror
- caught exception- Throws:
ConnectorCheckedException
- wrapped exception
-
disconnect
Free up any resources held since the connector is no longer needed.- Overrides:
disconnect
in classConnectorBase
- Throws:
ConnectorCheckedException
- there is a problem within the connector.
-