Class ConnectorBase
- java.lang.Object
-
- org.odpi.openmetadata.frameworks.connectors.Connector
-
- org.odpi.openmetadata.frameworks.connectors.ConnectorBase
-
- Direct Known Subclasses:
BasicFileStoreConnector
,DataEngineConnectorBase
,DataFolderConnector
,DiscoveryService
,GovernanceActionServiceConnector
,IntegrationConnectorBase
,LineageGraphConnector
,OMAGServerConfigStoreConnectorBase
,OMRSAuditLogStoreConnectorBase
,OMRSCohortRegistryStoreConnectorBase
,OMRSRepositoryConnector
,OMRSRepositoryEventMapperConnector
,OMRSTopicConnector
,OpenMetadataArchiveStoreConnector
,OpenMetadataPlatformSecurityConnector
,OpenMetadataServerSecurityConnector
,OpenMetadataTopicConnector
,OpenMetadataTopicConsumerBase
,RepositoryGovernanceServiceConnector
,RESTClientConnector
public abstract class ConnectorBase extends Connector
The ConnectorBase is an implementation of the Connector interface. Connectors are client-side interfaces to assets such as data stores, data sets, APIs, analytical functions. They handle the communication with the server that hosts the assets, along with the communication with the metadata server to serve up metadata about the assets, and support for an audit log for the caller to log its activity. Each connector implementation is paired with a connector provider. The connector provider is the factory for connector instances. The Connector interface defines that a connector instance should be able to return a unique identifier, a connection object and a metadata properties object for its connected asset. These are supplied to the connector during its initialization. The ConnectorBase base class implements all the methods required by the Connector interface. Each specific implementation of a connector then extends this interface to add the methods to work with the particular type of asset it supports. For example, a JDBC connector would add the standard JDBC SQL interface, the OMRS Connectors add the metadata repository management APIs...
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
ConnectorBase.ProtectedConnection
ProtectedConnection provides a subclass to Connection in order to extract protected values from the connection in order to supply them to the Connector implementation.
-
Field Summary
Fields Modifier and Type Field Description protected ConnectedAssetProperties
connectedAssetProperties
protected Connection
connectionBean
protected ConnectionProperties
connectionProperties
protected java.lang.String
connectorInstanceId
protected java.util.Map<java.lang.String,java.lang.String>
securedProperties
-
Constructor Summary
Constructors Constructor Description ConnectorBase()
Typical Constructor: Connectors should always have a constructor requiring no parameters and perform initialization in the initialize method.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
disconnect()
Free up any resources held since the connector is no longer needed.boolean
equals(java.lang.Object object)
Provide a common implementation of equals for all OCF Connector Provider objects.ConnectedAssetProperties
getConnectedAssetProperties(java.lang.String userId)
Returns the properties that contain the metadata for the asset.ConnectionProperties
getConnection()
Returns the connection object that was used to create the connector instance.java.lang.String
getConnectorInstanceId()
Returns the unique connector instance id that assigned to the connector instance when it was created.int
hashCode()
Provide a common implementation of hashCode for all OCF Connector objects.void
initialize(java.lang.String connectorInstanceId, ConnectionProperties connectionProperties)
Call made by the ConnectorProvider to initialize the Connector with the base services.void
initializeConnectedAssetProperties(ConnectedAssetProperties connectedAssetProperties)
Set up the connected asset properties object.boolean
isActive()
Return a flag indicating whether the connector is active.void
start()
Indicates that the connector is completely configured and can begin processing.java.lang.String
toString()
Standard toString method.-
Methods inherited from class org.odpi.openmetadata.frameworks.connectors.Connector
clearStatisticProperty, clearStatisticTimestamp, getConnectorStatistics, getStatisticCounter, getStatisticProperty, getStatisticTimestamp, incrementStatisticCounter, initializeStatisticCounter, setStatisticProperty, setStatisticTimestamp
-
-
-
-
Field Detail
-
connectorInstanceId
protected java.lang.String connectorInstanceId
-
connectionProperties
protected ConnectionProperties connectionProperties
-
connectionBean
protected Connection connectionBean
-
connectedAssetProperties
protected ConnectedAssetProperties connectedAssetProperties
-
securedProperties
protected java.util.Map<java.lang.String,java.lang.String> securedProperties
-
-
Method Detail
-
initialize
public void initialize(java.lang.String connectorInstanceId, ConnectionProperties connectionProperties)
Call made by the ConnectorProvider to initialize the Connector with the base services.- Specified by:
initialize
in classConnector
- Parameters:
connectorInstanceId
- unique id for the connector instance useful for messages etcconnectionProperties
- POJO for the configuration used to create the connector.
-
getConnectorInstanceId
public java.lang.String getConnectorInstanceId()
Returns the unique connector instance id that assigned to the connector instance when it was created. It is useful for error and audit messages.- Specified by:
getConnectorInstanceId
in classConnector
- Returns:
- guid for the connector instance
-
getConnection
public ConnectionProperties getConnection()
Returns the connection object that was used to create the connector instance. Its contents are never refreshed during the lifetime of the connector instance, even if the connection information is updated or removed from the originating metadata repository.- Specified by:
getConnection
in classConnector
- Returns:
- connection properties object
-
initializeConnectedAssetProperties
public void initializeConnectedAssetProperties(ConnectedAssetProperties connectedAssetProperties)
Set up the connected asset properties object. This provides the known metadata properties stored in one or more metadata repositories. The properties are populated whenever getConnectedAssetProperties() is called.- Specified by:
initializeConnectedAssetProperties
in classConnector
- Parameters:
connectedAssetProperties
- properties of the connected asset
-
getConnectedAssetProperties
public ConnectedAssetProperties getConnectedAssetProperties(java.lang.String userId) throws PropertyServerException, UserNotAuthorizedException
Returns the properties that contain the metadata for the asset. The asset metadata is retrieved from the metadata repository and cached in the ConnectedAssetProperties object each time the getConnectedAssetProperties method is requested by the caller. Once the ConnectedAssetProperties object has the metadata cached, it can be used to access the asset property values many times without a return to the metadata repository. The cache of metadata can be refreshed simply by calling this getConnectedAssetProperties() method again.- Specified by:
getConnectedAssetProperties
in classConnector
- Parameters:
userId
- userId of requesting user- Returns:
- ConnectedAssetProperties connected asset properties
- Throws:
PropertyServerException
- indicates a problem retrieving properties from a metadata repositoryUserNotAuthorizedException
- indicates that the user is not authorized to access the asset properties.
-
start
public void start() throws ConnectorCheckedException
Indicates that the connector is completely configured and can begin processing.- Specified by:
start
in classConnector
- Throws:
ConnectorCheckedException
- there is a problem within the connector.
-
disconnect
public void disconnect() throws ConnectorCheckedException
Free up any resources held since the connector is no longer needed.- Specified by:
disconnect
in classConnector
- Throws:
ConnectorCheckedException
- there is a problem within the connector.
-
isActive
public boolean isActive()
Return a flag indicating whether the connector is active. This means it has been started and not yet disconnected.- Returns:
- isActive flag
-
hashCode
public int hashCode()
Provide a common implementation of hashCode for all OCF Connector objects. The UUID is unique and is randomly assigned and so its hashCode is as good as anything to describe the hash code of the connector object.- Overrides:
hashCode
in classjava.lang.Object
- Returns:
- random UUID as hashcode
-
equals
public boolean equals(java.lang.Object object)
Provide a common implementation of equals for all OCF Connector Provider objects. The UUID is unique and is randomly assigned and so its hashCode is as good as anything to evaluate the equality of the connector provider object.- Overrides:
equals
in classjava.lang.Object
- Parameters:
object
- object to test- Returns:
- boolean flag
-
toString
public java.lang.String toString()
Standard toString method.- Overrides:
toString
in classjava.lang.Object
- Returns:
- print out of variables in a JSON-style
-
-