Class IntegrationContextManager

java.lang.Object
org.odpi.openmetadata.frameworks.integration.contextmanager.IntegrationContextManager
All Implemented Interfaces:
OpenLineageListenerManager
Direct Known Subclasses:
OIFContextManager

public abstract class IntegrationContextManager extends Object implements OpenLineageListenerManager
IntegrationContextManager is the base class for the context manager that is implemented by each integration service.
  • Field Details

    • partnerOMASPlatformRootURL

      protected String partnerOMASPlatformRootURL
    • partnerOMASServerName

      protected String partnerOMASServerName
    • openIntegrationClient

      protected OpenIntegrationClient openIntegrationClient
    • governanceConfiguration

      protected GovernanceConfiguration governanceConfiguration
    • connectedAssetClient

      protected ConnectedAssetClient connectedAssetClient
    • openMetadataClient

      protected OpenMetadataClient openMetadataClient
    • openMetadataEventClient

      protected OpenMetadataEventClient openMetadataEventClient
    • openGovernanceClient

      protected OpenGovernanceClient openGovernanceClient
    • localServerName

      protected String localServerName
    • localServiceName

      protected String localServiceName
    • localServerUserId

      protected String localServerUserId
    • localServerPassword

      protected String localServerPassword
    • maxPageSize

      protected int maxPageSize
    • auditLog

      protected AuditLog auditLog
  • Constructor Details

    • IntegrationContextManager

      protected IntegrationContextManager()
      Default constructor
  • Method Details

    • initializeContextManager

      public void initializeContextManager(String localServerName, String localServiceName, String partnerOMASServerName, String partnerOMASPlatformRootURL, String userId, String password, int maxPageSize, AuditLog auditLog)
      Initialize server properties for the context manager.
      Parameters:
      localServerName - name of this integration daemon
      localServiceName - name of calling service
      partnerOMASServerName - name of the server to connect to
      partnerOMASPlatformRootURL - the network address of the server running the OMAS REST services
      userId - caller's userId embedded in all HTTP requests
      password - caller's userId embedded in all HTTP requests
      maxPageSize - maximum number of results that can be returned on a single REST call
      auditLog - logging destination
    • createClients

      public abstract void createClients() throws InvalidParameterException
      Suggestion for subclass to create client(s) to partner OMAS.
      Throws:
      InvalidParameterException - the subclass is not able to create one of its clients
    • createEventClient

      public abstract OpenMetadataEventClient createEventClient(String connectorId) throws InvalidParameterException
      Suggestion for subclass to create client(s) to partner OMAS.
      Parameters:
      connectorId - used as the caller Id
      Throws:
      InvalidParameterException - the subclass is not able to create one of its clients
    • setUpMetadataSource

      protected String setUpMetadataSource(String metadataSourceQualifiedName, String typeName, String classificationName, String deployedImplementationType) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve the metadata source's unique identifier (GUID) or if it is not defined, create the software server capability for this service.
      Parameters:
      metadataSourceQualifiedName - unique name of the software capability that represents this integration service
      typeName - subtype name of the software capability
      classificationName - optional classification for the software capability
      Returns:
      unique identifier of the metadata source
      Throws:
      InvalidParameterException - one of the parameters passed (probably on initialize) is invalid
      UserNotAuthorizedException - the integration daemon's userId does not have access to the partner OMAS
      PropertyServerException - there is a problem in the remote server running the partner OMAS
    • setContext

      public IntegrationContext setContext(String connectorId, String connectorName, String connectorUserId, IntegrationConnector integrationConnector, String integrationConnectorGUID, PermittedSynchronization permittedSynchronization, boolean generateIntegrationReport, String metadataSourceQualifiedName, DeleteMethod deleteMethod) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Set up the context in the supplied connector. This is called between initialize() and start() on the connector.
      Parameters:
      connectorId - unique identifier of the connector (used to configure the event listener)
      connectorName - name of connector from config
      connectorUserId - userId for the connector
      integrationConnector - connector created from connection integration service configuration
      integrationConnectorGUID - unique identifier of the integration connector entity (only set if working with integration groups)
      permittedSynchronization - controls the direction(s) that metadata is allowed to flow
      generateIntegrationReport - should the connector generate an integration reports?
      metadataSourceQualifiedName - unique name of the software server capability that represents the metadata source.
      Returns:
      the new integration context
      Throws:
      InvalidParameterException - the connector is not of the correct type
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • registerListener

      public void registerListener(OpenLineageEventListener listener)
      The listener is implemented by the integration connector. Once it is registered with the context, its processOpenLineageRunEvent() method is called each time an open lineage event is published to the integration daemon.
      Specified by:
      registerListener in interface OpenLineageListenerManager
      Parameters:
      listener - listener to call
    • publishOpenLineageRunEvent

      public void publishOpenLineageRunEvent(String rawEvent)
      Called each time an open lineage run event is published to the integration daemon. The integration connector is able to work with the formatted event using the Egeria beans or reformat the open lineage run event using the supplied open lineage backend beans or another set of beans.
      Specified by:
      publishOpenLineageRunEvent in interface OpenLineageListenerManager
      Parameters:
      rawEvent - json payload received for the event
    • publishOpenLineageRunEvent

      public void publishOpenLineageRunEvent(OpenLineageRunEvent event)
      Called each time an open lineage run event is published to the integration demon. The integration connector is able to work with the formatted event using the Egeria beans or reformat the open lineage run event using the supplied open lineage backend beans or another set of beans.
      Specified by:
      publishOpenLineageRunEvent in interface OpenLineageListenerManager
      Parameters:
      event - bean for the event