Class MendelAutomatedDuplicateManagerConnector
- All Implemented Interfaces:
AuditLoggingComponent,SecureConnectorExtension,VirtualConnectorExtension,IntegrationConnector,OpenMetadataEventListener
- The links that no steward has ruled on yet - the DISCOVERED, PROPOSED and IMPORTED ones. Where the linked elements are a close enough match, the link is moved to VALIDATED and the KnownDuplicate classification is added to both elements, which is the combination that causes the retrieval processing to combine them. The rest are passed to a person appointed to the DuplicateMetadataSteward role via a to do.
- The links that a steward has retired - the DEPRECATED and OBSOLETE ones. The KnownDuplicate classification is removed from an element once none of its duplicate links are live, so that the element stops being combined with anything.
- The clusters of validated peer duplicates. Once a cluster reaches the configured size, its members are
consolidated into a single element using the survivorship rules in
MendelDuplicateConsolidator.
Once the first refresh has worked through the backlog, the connector also listens for open metadata events so that a new or updated duplicate link is reviewed as soon as it appears, rather than waiting for the next refresh. The update that this connector makes to a duplicate link produces another event for the same relationship, which is ignored because the status is VALIDATED by then, so there is no loop.
This connector works across the whole open metadata ecosystem rather than through catalog targets, which is why it extends IntegrationConnectorBase rather than DynamicIntegrationConnectorBase. It registers its own listener as a result, and - like the dynamic base class - it ignores events while a refresh is in progress so that a duplicate link is not worked on by both threads at once.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.odpi.openmetadata.frameworks.connectors.ConnectorBase
ConnectorBase.ProtectedConnection -
Field Summary
Fields inherited from class org.odpi.openmetadata.frameworks.integration.connectors.IntegrationConnectorBase
catalogTargetsManager, connectorName, integrationContext, propertyHelperFields inherited from class org.odpi.openmetadata.frameworks.connectors.ConnectorBase
auditLog, connectionBean, connectorInstanceId, embeddedConnectors, messageFormatter, secretsStoreConnectorMap -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidFree up any resources held since the connector is no longer needed.voidProcess an event that was published by the Open Metadata Framework Manager.voidrefresh()Review the duplicate links in the open metadata ecosystem.voidstart()Indicates that the connector is completely configured and can begin processing.Methods inherited from class org.odpi.openmetadata.frameworks.integration.connectors.IntegrationConnectorBase
engage, getConnectorComponentDescription, getNetworkAddress, passEventToCatalogTargets, refreshCatalogTargets, setAuditLog, setConnectorName, setContextMethods inherited from class org.odpi.openmetadata.frameworks.connectors.ConnectorBase
combineConfigurationProperties, disconnectConnectors, equals, fromCamelToCanonicalCase, fromCanonicalToCamelCase, fromCanonicalToKebabCase, fromCanonicalToSnakeCase, fromKebabToCanonicalCase, fromSnakeToCanonicalCase, getArrayConfigurationProperty, getArrayConfigurationProperty, getArrayConfigurationProperty, getBooleanConfigurationProperty, getConnection, getConnectorInstanceId, getDateConfigurationProperty, getIntConfigurationProperty, getLongConfigurationProperty, getSecretsCollectionName, getSecretsLocation, getSecretsProvider, getStringConfigurationProperty, getStringConfigurationProperty, getSuppliedPlaceholderProperties, hashCode, initialize, initializeEmbeddedConnectors, initializeSecretsStoreConnector, isActive, logExceptionRecord, logRecord, logRecord, throwMissingConfigurationProperty, throwMissingElement, throwMissingEndpointAddress, throwMissingResource, throwNoAsset, throwWrongTypeOfAsset, throwWrongTypeOfResource, throwWrongTypeOfRootSchema, toStringMethods inherited from class org.odpi.openmetadata.frameworks.connectors.Connector
clearStatisticProperty, clearStatisticTimestamp, getConnectorStatistics, getStatisticCounter, getStatisticProperty, getStatisticTimestamp, incrementStatisticCounter, initializeStatisticCounter, refreshStatistics, setStatisticProperty, setStatisticTimestampMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.odpi.openmetadata.frameworks.connectors.VirtualConnectorExtension
initializeEmbeddedConnectors
-
Constructor Details
-
MendelAutomatedDuplicateManagerConnector
public MendelAutomatedDuplicateManagerConnector()
-
-
Method Details
-
start
Indicates that the connector is completely configured and can begin processing.- Specified by:
startin interfaceIntegrationConnector- Overrides:
startin classIntegrationConnectorBase- Throws:
ConnectorCheckedException- the connector detected a problem.UserNotAuthorizedException- the connector was disconnected during start up
-
refresh
Review the duplicate links in the open metadata ecosystem.- Specified by:
refreshin interfaceIntegrationConnector- Throws:
ConnectorCheckedException- a problem with the connector. It is unable to refresh the metadata.UserNotAuthorizedException- the connector was disconnected so stop refresh processing
-
processEvent
Process an event that was published by the Open Metadata Framework Manager. Only the creation and update of a duplicate link is of interest: a deleted link means the duplicates have been separated again, which needs no action, and the retirement of a link and the consolidation of a cluster are handled by the refresh processing because they depend on the other duplicate links attached to the same elements.- Specified by:
processEventin interfaceOpenMetadataEventListener- Parameters:
event- event object - call getEventType to find out what type of event.
-
disconnect
Free up any resources held since the connector is no longer needed.- Specified by:
disconnectin interfaceIntegrationConnector- Overrides:
disconnectin classIntegrationConnectorBase- Throws:
ConnectorCheckedException- the connector detected a problem.
-