Class DiscoveryService

  • All Implemented Interfaces:
    AuditLoggingComponent, VirtualConnectorExtension
    Direct Known Subclasses:
    DiscoveryPipeline

    public abstract class DiscoveryService
    extends ConnectorBase
    implements 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.
    • Constructor Detail

      • DiscoveryService

        public DiscoveryService()
    • Method Detail

      • setAuditLog

        public void setAuditLog​(AuditLog auditLog)
        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 interface AuditLoggingComponent
        Parameters:
        auditLog - audit log object
      • initializeEmbeddedConnectors

        public void initializeEmbeddedConnectors​(List<Connector> embeddedConnectors)
        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 interface VirtualConnectorExtension
        Parameters:
        embeddedConnectors - list of embedded connectors that are hopefully discovery services
      • setDiscoveryContext

        public void setDiscoveryContext​(DiscoveryContext discoveryContext)
        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

        public void setDiscoveryServiceName​(String discoveryServiceName)
        Set up the discovery service name. This is used in error messages.
        Parameters:
        discoveryServiceName - name of the discovery service
      • getDiscoveryContext

        public DiscoveryContext 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

        protected List<DiscoveryService> getEmbeddedDiscoveryServices()
                                                               throws DiscoveryServiceException
        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

        public void start()
                   throws ConnectorCheckedException
        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 class ConnectorBase
        Throws:
        ConnectorCheckedException - there is a problem within the discovery service.
      • disconnect

        public void disconnect()
                        throws ConnectorCheckedException
        Free up any resources held since the connector is no longer needed. This is a standard method from the Open Connector Framework (OCF). If you need to override this method be sure to call super.disconnect() in your version.
        Overrides:
        disconnect in class ConnectorBase
        Throws:
        ConnectorCheckedException - there is a problem within the discovery service.