atlas-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mandy Chessell <mandy_chess...@uk.ibm.com>
Subject Re: Review Request 63503: ATLAS-1095 - Review of OCF - the Open Connector Framework
Date Thu, 30 Nov 2017 12:17:05 GMT


> On Nov. 30, 2017, 10:59 a.m., David Radley wrote:
> > om-fwk-ocf/src/main/java/org/apache/atlas/ocf/ConnectorProviderBase.java
> > Lines 35 (patched)
> > <https://reviews.apache.org/r/63503/diff/2/?file=1887927#file1887927line35>
> >
> >     I suggest only having a constructor that supplies the name, so we cannot have
a invalid null name in the connector. Is the compelling reason whay we cannot do this?
> >     
> >     The example in the code of ths being used is in OMRSRESTConnectorProvider()
where it issues the setter to set the name in constructor.

Having a constructor that takes name does not stop the name from being null.  However this
is a minor point.  

A ConnectorProvider object is built by the Connector implementation team.  They are not required
to use ConnectorProviderBase - only implement the ConnectorProvider interface.  We provide
the ConnectorProviderBase only to simplify the implementation of a simple the Connector Provider.
 

The role of the ConnectorProvider is to act as a factory for the Connector.  The logic for
instantiating the Connector instance is in ConnectorProviderBase.  However, it needs to know
the class name of the connector instance to create.  ConnectorProviderBase assumes the connector
provider only supports one type of connector, but that is not a strict requirement of the
OCF.  Some connector providers may support multiple types of connectors - in which case they
would not use the ConnectorProviderBase.

The ConnectorProvider instance is created by the ConnectorBroker.  We need a common way to
create all connector providers.  Therefore it needs a default (no param) constructor for the
ConnectorBroker to use.  This is why ConnectorProviderBase has a default (no param) contructor.
 If we changed it so all connector provider instances had to have the name of the connector's
Java class passed to it, then this Java name needs to be known to the Connector Broker.  This
creates a connector Broker contract outside of the connector provider interface and breaks
the abstraction that the connector provider is reposnsible for choosing the connector implementation.


- Mandy


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/63503/#review192260
-----------------------------------------------------------


On Nov. 10, 2017, 12:48 p.m., Mandy Chessell wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/63503/
> -----------------------------------------------------------
> 
> (Updated Nov. 10, 2017, 12:48 p.m.)
> 
> 
> Review request for atlas and Madhan Neethiraj.
> 
> 
> Repository: atlas
> 
> 
> Description
> -------
> 
> This patch contains the open connector framework code.  This code is located in the om-fwk-ocf
component and is described in JIRA https://issues.apache.org/jira/browse/ATLAS-1095
> 
> I have added a new patch to the Jira with fixes from Yao's comments.  Upgraded Maven
to 352 and rebuilt/rerun tests.
> 
> 
> Diffs
> -----
> 
>   om-fwk-ocf/README.md PRE-CREATION 
>   om-fwk-ocf/pom.xml PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/Connector.java PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/ConnectorBase.java PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/ConnectorBroker.java PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/ConnectorProvider.java PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/ConnectorProviderBase.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/ffdc/ConnectionCheckedException.java
PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/ffdc/ConnectorCheckedException.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/ffdc/OCFCheckedExceptionBase.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/ffdc/OCFErrorCode.java PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/ffdc/OCFRuntimeException.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/ffdc/PropertyServerException.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/ffdc/README.md PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/AdditionalProperties.java
PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Analysis.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Annotation.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/AnnotationStatus.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Annotations.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/AssetDescriptor.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/AssetDetail.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/AssetPropertyBase.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/AssetSummary.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/AssetUniverse.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Certification.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Certifications.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Classification.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Classifications.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Comment.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/CommentType.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Comments.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ConnectedAssetProperties.java
PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Connection.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Connections.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ConnectorType.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/DerivedSchemaElement.java
PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ElementHeader.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ElementType.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/EmbeddedConnection.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/EmbeddedConnections.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Endpoint.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ExternalIdentifier.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ExternalIdentifiers.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ExternalReference.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ExternalReferences.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Feedback.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/InformalTag.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/InformalTags.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/KeyPattern.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/License.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Licenses.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Like.java PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Likes.java PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Lineage.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Location.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Locations.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/MapSchemaElement.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Meaning.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Meanings.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Note.java PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/NoteLog.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/NoteLogs.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Notes.java PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/PrimitiveSchemaElement.java
PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/PropertyBase.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Rating.java PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Ratings.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Referenceable.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/RelatedAsset.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/RelatedAssetProperties.java
PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/RelatedAssets.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/RelatedMediaReference.java
PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/RelatedMediaReferences.java
PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/RelatedMediaType.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/RelatedMediaUsage.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Schema.java PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/SchemaAttribute.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/SchemaAttributeGUIDs.java
PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/SchemaAttributes.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/SchemaElement.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/SchemaImplementationQueries.java
PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/SchemaImplementationQuery.java
PRE-CREATION 
>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/SchemaLink.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/SchemaLinks.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/StarRating.java PRE-CREATION

>   om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/VirtualConnection.java PRE-CREATION

>   om-fwk-ocf/src/test/java/org/apache/atlas/ocf/test/QuickTest.java PRE-CREATION 
>   om-fwk-ocf/src/test/java/org/apache/atlas/ocf/test/TestConnector.java PRE-CREATION

>   om-fwk-ocf/src/test/java/org/apache/atlas/ocf/test/TestConnectorProvider.java PRE-CREATION

> 
> 
> Diff: https://reviews.apache.org/r/63503/diff/2/
> 
> 
> Testing
> -------
> 
> Simple sniff test to create connectors.
> 
> 
> File Attachments
> ----------------
> 
> 0001-ATLAS-1095-initial-code-drop-for-OCF-with-fixes-from.patch
>   https://reviews.apache.org/media/uploaded/files/2017/11/10/ad9eae3c-bb68-4bdc-b6b9-62ba12f651a0__0001-ATLAS-1095-initial-code-drop-for-OCF-with-fixes-from.patch
> 
> 
> Thanks,
> 
> Mandy Chessell
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message