You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by da...@apache.org on 2018/02/16 09:52:46 UTC
[30/30] atlas git commit: ATLAS-2246: OMRS Connector API plus REST
and IGC Connector skeleton - 15th February 2018
ATLAS-2246: OMRS Connector API plus REST and IGC Connector skeleton - 15th February 2018
Signed-off-by: David Radley <da...@uk.ibm.com>
Project: http://git-wip-us.apache.org/repos/asf/atlas/repo
Commit: http://git-wip-us.apache.org/repos/asf/atlas/commit/8a57e657
Tree: http://git-wip-us.apache.org/repos/asf/atlas/tree/8a57e657
Diff: http://git-wip-us.apache.org/repos/asf/atlas/diff/8a57e657
Branch: refs/heads/master
Commit: 8a57e6571c0079c25c147732ad3a6994be8e14ea
Parents: c2be064
Author: Mandy Chessell <ma...@uk.ibm.com>
Authored: Thu Feb 15 12:46:01 2018 +0000
Committer: David Radley <da...@uk.ibm.com>
Committed: Fri Feb 16 09:39:05 2018 +0000
----------------------------------------------------------------------
.../org/apache/atlas/ocf/ConnectorBase.java | 40 +
.../apache/atlas/ocf/ConnectorProviderBase.java | 2 +-
.../apache/atlas/ocf/properties/Connection.java | 8 +-
.../apache/atlas/ocf/properties/KeyPattern.java | 18 +-
omrs/README.md | 43 +
omrs/pom.xml | 98 +
.../AtlasOMRSRepositoryEventMapper.java | 39 +
.../AtlasOMRSRepositoryEventMapperProvider.java | 45 +
.../LocalAtlasOMRSMetadataCollection.java | 61 +
.../LocalAtlasOMRSRepositoryConnector.java | 85 +
...calAtlasOMRSRepositoryConnectorProvider.java | 45 +
.../IGCOMRSRepositoryEventMapper.java | 44 +
.../IGCOMRSRepositoryEventMapperProvider.java | 44 +
.../IGCOMRSMetadataCollection.java | 60 +
.../IGCOMRSRepositoryConnector.java | 84 +
.../IGCOMRSRepositoryConnectorProvider.java | 44 +
.../IGCV2OMRSRepositoryEventMapper.java | 44 +
.../IGCV2OMRSRepositoryEventMapperProvider.java | 45 +
.../IGCV2OMRSMetadataCollection.java | 60 +
.../IGCV2OMRSRepositoryConnector.java | 86 +
.../IGCV2OMRSRepositoryConnectorProvider.java | 45 +
.../omrs/admin/OMRSConfigurationFactory.java | 228 +
.../omrs/admin/OMRSOperationalServices.java | 858 +++
.../omrs/admin/properties/CohortConfig.java | 233 +
.../properties/EnterpriseAccessConfig.java | 167 +
.../admin/properties/LocalRepositoryConfig.java | 310 +
.../OpenMetadataEventProtocolVersion.java | 28 +
.../properties/OpenMetadataExchangeRule.java | 106 +
.../properties/RepositoryServicesConfig.java | 207 +
.../omrs/archivemanager/OMRSArchiveBuilder.java | 338 ++
.../omrs/archivemanager/OMRSArchiveManager.java | 348 ++
.../opentypes/OpenMetadataTypesArchive.java | 5657 ++++++++++++++++++
.../properties/OpenMetadataArchive.java | 116 +
.../OpenMetadataArchiveInstanceStore.java | 86 +
.../OpenMetadataArchiveProperties.java | 222 +
.../properties/OpenMetadataArchiveType.java | 79 +
.../OpenMetadataArchiveTypeStore.java | 111 +
.../store/OpenMetadataArchiveStore.java | 72 +
.../OpenMetadataArchiveStoreConnectorBase.java | 27 +
.../OpenMetadataArchiveStoreProviderBase.java | 41 +
.../atlas/omrs/auditlog/OMRSAuditCode.java | 500 ++
.../atlas/omrs/auditlog/OMRSAuditLog.java | 197 +
.../auditlog/OMRSAuditLogRecordSeverity.java | 122 +
.../omrs/auditlog/OMRSAuditingComponent.java | 261 +
.../omrs/auditlog/store/OMRSAuditLogRecord.java | 243 +
.../store/OMRSAuditLogRecordOriginator.java | 179 +
.../store/OMRSAuditLogReportingComponent.java | 145 +
.../omrs/auditlog/store/OMRSAuditLogStore.java | 108 +
.../store/OMRSAuditLogStoreConnectorBase.java | 27 +
.../store/OMRSAuditLogStoreProviderBase.java | 41 +
.../file/FileBasedAuditLogStoreConnector.java | 164 +
.../file/FileBasedAuditLogStoreProvider.java | 37 +
.../OMRSConnectionConsumer.java | 62 +
.../connectormanager/OMRSConnectorConsumer.java | 61 +
.../connectormanager/OMRSConnectorManager.java | 48 +
.../OMRSEnterpriseConnectorManager.java | 539 ++
.../EnterpriseOMRSConnection.java | 49 +
.../EnterpriseOMRSConnectorProperties.java | 52 +
.../EnterpriseOMRSConnectorProvider.java | 153 +
.../EnterpriseOMRSMetadataCollection.java | 3995 +++++++++++++
.../EnterpriseOMRSRepositoryConnector.java | 357 ++
.../omrs/eventmanagement/OMRSEventListener.java | 832 +++
.../eventmanagement/OMRSEventPublisher.java | 1972 ++++++
.../OMRSRepositoryEventExchangeRule.java | 166 +
.../OMRSRepositoryEventManager.java | 1608 +++++
.../OMRSRepositoryEventProcessor.java | 30 +
.../omrs/eventmanagement/events/OMRSEvent.java | 582 ++
.../events/OMRSEventCategory.java | 101 +
.../events/OMRSEventDirection.java | 84 +
.../events/OMRSEventErrorCode.java | 39 +
.../events/OMRSEventOriginator.java | 171 +
.../events/OMRSInstanceEvent.java | 477 ++
.../events/OMRSInstanceEventErrorCode.java | 118 +
.../events/OMRSInstanceEventProcessor.java | 667 +++
.../events/OMRSInstanceEventType.java | 148 +
.../events/OMRSRegistryEvent.java | 289 +
.../events/OMRSRegistryEventErrorCode.java | 126 +
.../events/OMRSRegistryEventProcessor.java | 159 +
.../events/OMRSRegistryEventType.java | 128 +
.../events/OMRSTypeDefEvent.java | 453 ++
.../events/OMRSTypeDefEventErrorCode.java | 122 +
.../events/OMRSTypeDefEventProcessor.java | 262 +
.../events/OMRSTypeDefEventType.java | 111 +
.../eventmanagement/events/v1/OMRSEventV1.java | 132 +
.../events/v1/OMRSEventV1ErrorSection.java | 182 +
.../events/v1/OMRSEventV1InstanceSection.java | 149 +
.../events/v1/OMRSEventV1RegistrySection.java | 83 +
.../events/v1/OMRSEventV1TypeDefSection.java | 127 +
.../OMRSRepositoryEventMapper.java | 65 +
.../OMRSRepositoryEventMapperBase.java | 92 +
.../OMRSRepositoryEventMapperProviderBase.java | 41 +
.../apache/atlas/omrs/ffdc/OMRSErrorCode.java | 413 ++
.../java/org/apache/atlas/omrs/ffdc/README.md | 47 +
.../exception/ClassificationErrorException.java | 57 +
.../ffdc/exception/EntityConflictException.java | 60 +
.../exception/EntityNotDeletedException.java | 57 +
.../ffdc/exception/EntityNotKnownException.java | 57 +
.../ffdc/exception/HomeEntityException.java | 57 +
.../exception/HomeRelationshipException.java | 57 +
.../ffdc/exception/InvalidEntityException.java | 60 +
.../exception/InvalidParameterException.java | 57 +
.../exception/InvalidRelationshipException.java | 60 +
.../ffdc/exception/InvalidTypeDefException.java | 60 +
.../NotImplementedRuntimeException.java | 32 +
.../exception/OMRSCheckedExceptionBase.java | 161 +
.../exception/OMRSConfigErrorException.java | 185 +
.../exception/OMRSConnectorErrorException.java | 184 +
.../ffdc/exception/OMRSLogicErrorException.java | 185 +
.../ffdc/exception/OMRSRuntimeException.java | 181 +
.../ffdc/exception/PagingErrorException.java | 57 +
.../ffdc/exception/PatchErrorException.java | 60 +
.../ffdc/exception/PropertyErrorException.java | 57 +
.../RelationshipConflictException.java | 60 +
.../exception/RelationshipKnownException.java | 57 +
.../RelationshipNotDeletedException.java | 58 +
.../RelationshipNotKnownException.java | 61 +
.../exception/RepositoryErrorException.java | 61 +
.../exception/StatusNotSupportedException.java | 61 +
.../exception/TypeDefConflictException.java | 60 +
.../ffdc/exception/TypeDefInUseException.java | 60 +
.../ffdc/exception/TypeDefKnownException.java | 60 +
.../exception/TypeDefNotKnownException.java | 60 +
.../exception/TypeDefNotSupportedException.java | 60 +
.../omrs/ffdc/exception/TypeErrorException.java | 57 +
.../exception/UserNotAuthorizedException.java | 57 +
.../localrepository/OMRSLocalRepository.java | 83 +
.../LocalOMRSConnectorProvider.java | 200 +
.../LocalOMRSInstanceEventProcessor.java | 1056 ++++
.../LocalOMRSMetadataCollection.java | 3157 ++++++++++
.../LocalOMRSRepositoryConnector.java | 259 +
.../OMRSInstanceRetrievalEventProcessor.java | 78 +
.../OMRSInstanceHelper.java | 149 +
.../OMRSInstanceValidator.java | 69 +
.../OMRSRepositoryContentManager.java | 2056 +++++++
.../OMRSRepositoryHelper.java | 551 ++
.../OMRSRepositoryValidator.java | 529 ++
.../OMRSTypeDefHelper.java | 101 +
.../OMRSTypeDefManager.java | 181 +
.../OMRSTypeDefValidator.java | 176 +
.../OMRSMetadataCollection.java | 1957 ++++++
.../OMRSMetadataCollectionBase.java | 2143 +++++++
.../properties/MatchCriteria.java | 80 +
.../properties/SequencingOrder.java | 111 +
.../instances/ArrayPropertyValue.java | 155 +
.../properties/instances/Classification.java | 254 +
.../instances/ClassificationOrigin.java | 81 +
.../properties/instances/EntityDetail.java | 107 +
.../properties/instances/EntityProxy.java | 107 +
.../properties/instances/EntitySummary.java | 114 +
.../properties/instances/EntityUniverse.java | 115 +
.../properties/instances/EnumPropertyValue.java | 123 +
.../instances/InstanceAuditHeader.java | 266 +
.../instances/InstanceElementHeader.java | 53 +
.../properties/instances/InstanceGraph.java | 259 +
.../properties/instances/InstanceHeader.java | 172 +
.../instances/InstanceProperties.java | 196 +
.../instances/InstancePropertyCategory.java | 91 +
.../instances/InstancePropertyValue.java | 114 +
.../instances/InstanceProvenanceType.java | 109 +
.../properties/instances/InstanceStatus.java | 91 +
.../properties/instances/InstanceType.java | 311 +
.../properties/instances/MapPropertyValue.java | 133 +
.../instances/PrimitivePropertyValue.java | 172 +
.../properties/instances/Relationship.java | 320 +
.../instances/StructPropertyValue.java | 95 +
.../typedefs/AttributeCardinality.java | 111 +
.../properties/typedefs/AttributeTypeDef.java | 215 +
.../typedefs/AttributeTypeDefCategory.java | 84 +
.../properties/typedefs/ClassificationDef.java | 162 +
.../typedefs/ClassificationPropagationRule.java | 87 +
.../properties/typedefs/CollectionDef.java | 143 +
.../typedefs/CollectionDefCategory.java | 101 +
.../properties/typedefs/EntityDef.java | 93 +
.../properties/typedefs/EnumDef.java | 119 +
.../properties/typedefs/EnumElementDef.java | 144 +
.../typedefs/ExternalStandardMapping.java | 141 +
.../properties/typedefs/PrimitiveDef.java | 83 +
.../typedefs/PrimitiveDefCategory.java | 103 +
.../typedefs/RelationshipCategory.java | 94 +
.../typedefs/RelationshipContainerEnd.java | 75 +
.../properties/typedefs/RelationshipDef.java | 217 +
.../properties/typedefs/RelationshipEndDef.java | 193 +
.../properties/typedefs/TypeDef.java | 437 ++
.../properties/typedefs/TypeDefAttribute.java | 310 +
.../properties/typedefs/TypeDefCategory.java | 84 +
.../typedefs/TypeDefElementHeader.java | 51 +
.../properties/typedefs/TypeDefGallery.java | 121 +
.../properties/typedefs/TypeDefLink.java | 175 +
.../properties/typedefs/TypeDefPatch.java | 399 ++
.../properties/typedefs/TypeDefPatchAction.java | 103 +
.../properties/typedefs/TypeDefProperties.java | 154 +
.../properties/typedefs/TypeDefSummary.java | 168 +
.../OMRSMetadataCollectionManager.java | 46 +
.../OMRSRepositoryConnector.java | 29 +
.../OMRSRepositoryConnectorProviderBase.java | 43 +
.../metadatahighway/CohortConnectionStatus.java | 122 +
.../omrs/metadatahighway/OMRSCohortManager.java | 382 ++
.../OMRSMetadataHighwayManager.java | 453 ++
.../cohortregistry/OMRSCohortRegistry.java | 1097 ++++
.../store/OMRSCohortRegistryStore.java | 114 +
.../OMRSCohortRegistryStoreConnectorBase.java | 24 +
.../OMRSCohortRegistryStoreProviderBase.java | 41 +
.../file/FileBasedRegistryStoreConnector.java | 582 ++
.../file/FileBasedRegistryStoreProvider.java | 37 +
.../store/properties/CohortMembership.java | 67 +
.../store/properties/MemberRegistration.java | 206 +
.../OMRSRESTMetadataCollection.java | 59 +
.../OMRSRESTRepositoryConnector.java | 87 +
.../OMRSRESTRepositoryConnectorProvider.java | 44 +
.../rest/server/OMRSRepositoryRESTServices.java | 44 +
.../atlas/omrs/topicconnectors/OMRSTopic.java | 43 +
.../topicconnectors/OMRSTopicConnector.java | 102 +
.../omrs/topicconnectors/OMRSTopicListener.java | 35 +
.../kafka/KafkaOMRSTopicConnector.java | 55 +
.../kafka/KafkaOMRSTopicProvider.java | 38 +
215 files changed, 54323 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/atlas/blob/8a57e657/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/ConnectorBase.java
----------------------------------------------------------------------
diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/ConnectorBase.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/ConnectorBase.java
index cc2e430..38ac964 100644
--- a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/ConnectorBase.java
+++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/ConnectorBase.java
@@ -18,6 +18,7 @@
package org.apache.atlas.ocf;
import org.apache.atlas.ocf.ffdc.PropertyServerException;
+import org.apache.atlas.ocf.properties.AdditionalProperties;
import org.apache.atlas.ocf.properties.ConnectedAssetProperties;
import org.apache.atlas.ocf.properties.Connection;
import org.slf4j.Logger;
@@ -51,6 +52,12 @@ public abstract class ConnectorBase extends Connector
protected Connection connection = null;
protected ConnectedAssetProperties connectedAssetProperties = null;
+ /*
+ * Secured properties are protected properties from the connection. They are retrieved as a protected
+ * variable to allow subclasses of ConnectorBase to access them.
+ */
+ protected AdditionalProperties securedProperties = null;
+
private static final int hashCode = UUID.randomUUID().hashCode();
private static final Logger log = LoggerFactory.getLogger(ConnectorBase.class);
@@ -86,6 +93,12 @@ public abstract class ConnectorBase extends Connector
this.connectorInstanceId = connectorInstanceId;
this.connection = connection;
+ /*
+ * Set up the secured properties
+ */
+ ProtectedConnection protectedConnection = new ProtectedConnection(connection);
+ this.securedProperties = protectedConnection.getSecuredProperties();
+
if (log.isDebugEnabled())
{
log.debug("New Connector initialized: " + connectorInstanceId + ", " + connection.getConnectionName());
@@ -217,4 +230,31 @@ public abstract class ConnectorBase extends Connector
", connectedAssetProperties=" + connectedAssetProperties +
'}';
}
+
+ private class ProtectedConnection extends Connection
+ {
+ private ProtectedConnection(Connection templateConnection)
+ {
+ super(templateConnection);
+ }
+
+ /**
+ * Return a copy of the secured properties. Null means no secured properties are available.
+ * This method is protected so only OCF (or subclasses) can access them. When Connector is passed to calling
+ * OMAS, the secured properties are not available.
+ *
+ * @return secured properties - typically user credentials for the connection
+ */
+ protected AdditionalProperties getSecuredProperties()
+ {
+ if (super.securedProperties == null)
+ {
+ return securedProperties;
+ }
+ else
+ {
+ return new AdditionalProperties(super.getParentAsset(), securedProperties);
+ }
+ }
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/atlas/blob/8a57e657/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/ConnectorProviderBase.java
----------------------------------------------------------------------
diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/ConnectorProviderBase.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/ConnectorProviderBase.java
index fafd20c..4e0762a 100644
--- a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/ConnectorProviderBase.java
+++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/ConnectorProviderBase.java
@@ -65,7 +65,7 @@ public abstract class ConnectorProviderBase extends ConnectorProvider
*
* @return guid for a new connector instance
*/
- private String getNewConnectorGUID()
+ protected String getNewConnectorGUID()
{
UUID newUUID = UUID.randomUUID();
http://git-wip-us.apache.org/repos/asf/atlas/blob/8a57e657/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Connection.java
----------------------------------------------------------------------
diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Connection.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Connection.java
index d34e6f4..0d5cfdb 100644
--- a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Connection.java
+++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Connection.java
@@ -77,10 +77,10 @@ public class Connection extends Referenceable
/*
* Attributes of a connector
*/
- private String displayName = null;
- private String description = null;
- private ConnectorType connectorType = null;
- private Endpoint endpoint = null;
+ protected String displayName = null;
+ protected String description = null;
+ protected ConnectorType connectorType = null;
+ protected Endpoint endpoint = null;
/*
* Secured properties are protected so they can only be accessed by subclassing this object.
http://git-wip-us.apache.org/repos/asf/atlas/blob/8a57e657/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/KeyPattern.java
----------------------------------------------------------------------
diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/KeyPattern.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/KeyPattern.java
index ce6dae1..7cfd30c 100644
--- a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/KeyPattern.java
+++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/KeyPattern.java
@@ -20,19 +20,19 @@ package org.apache.atlas.ocf.properties;
import java.io.Serializable;
/**
- * A KeyPattern defines the type of External Identifier in use of an asset, or the type of Primary Key used within an
+ * A KeyPattern defines the type of External Identifier in use for an asset, or the type of Primary Key used within an
* asset.
*/
public enum KeyPattern implements Serializable
{
- LOCAL_KEY(0, "Local Key", "Unique key allocated and used within the scope of a single system."),
- RECYCLED_KEY(1, "Recycled Key", "Key allocated and used within the scope of a single system that is periodically reused for different records."),
- NATURAL_KEY(2, "Natural Key", "Key derived from an attribute of the entity, such as email address, passport number."),
- MIRROR_KEY(3, "Mirror Key", "Key value copied from another system."),
- AGGREGATE_KEY(4, "Aggregate Key", "Key formed by combining keys from multiple systems."),
- CALLERS_KEY(5, "Caller's Key", "Key from another system can bey used if system name provided."),
- STABLE_KEY(6, "Stable Key", "Key value will remain active even if records are merged."),
- OTHER(99, "Other", "Another key pattern.");
+ LOCAL_KEY (0, "Local Key", "Unique key allocated and used within the scope of a single system."),
+ RECYCLED_KEY (1, "Recycled Key", "Key allocated and used within the scope of a single system that is periodically reused for different records."),
+ NATURAL_KEY (2, "Natural Key", "Key derived from an attribute of the entity, such as email address, passport number."),
+ MIRROR_KEY (3, "Mirror Key", "Key value copied from another system."),
+ AGGREGATE_KEY (4, "Aggregate Key", "Key formed by combining keys from multiple systems."),
+ CALLERS_KEY (5, "Caller's Key", "Key from another system can bey used if system name provided."),
+ STABLE_KEY (6, "Stable Key", "Key value will remain active even if records are merged."),
+ OTHER (99, "Other", "Another key pattern.");
private static final long serialVersionUID = 1L;
http://git-wip-us.apache.org/repos/asf/atlas/blob/8a57e657/omrs/README.md
----------------------------------------------------------------------
diff --git a/omrs/README.md b/omrs/README.md
new file mode 100644
index 0000000..e219288
--- /dev/null
+++ b/omrs/README.md
@@ -0,0 +1,43 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+# Open Metadata Repository Service (OMRS)
+
+The Open Metadata Repository Services (OMRS) enable metadata repositories to exchange metadata.
+Traditional metadata management technology tends to centralize metadata into a single repository.
+An organization often begins with a single metadata repository, typically deployed to support a
+single project or initiative.
+However, over time, depending on the tools they buy, the projects they run or the political structures
+within the organization, the number of deployed metadata repositories grows, creating multiple metadata silos.
+So for example, an organization may have:
+
+* a metadata repository and tools for its governance team.
+This metadata repository may host the canonical glossary, and the governance policies, rules and classifications.
+
+* a metadata repository for its data lake.
+This metadata repository has the details of the data repositories in the data lake and the
+movement of data between them.
+
+* a metadata repository for its data integration tools that continuously extract data
+from the operational systems and sends them to the data lake.
+
+The role of the OMRS is to bring these metadata repositories together so this metadata can be linked
+and used together across the organization.
+It enables these metadata repositories to act as a aggregated source of metadata.
+The metadata repositories using OMRS may be instances of Apache Atlas and they may
+include a mixture of repositories from different vendors that support the OMRS integration interfaces.
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/atlas/blob/8a57e657/omrs/pom.xml
----------------------------------------------------------------------
diff --git a/omrs/pom.xml b/omrs/pom.xml
new file mode 100644
index 0000000..4861499
--- /dev/null
+++ b/omrs/pom.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <artifactId>apache-atlas</artifactId>
+ <groupId>org.apache.atlas</groupId>
+ <version>1.0.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>omrs</artifactId>
+
+ <name>Open Metadata Repository Services (OMRS)</name>
+ <description>Open Metadata Repository Services (OMRS) interfaces and implementation for linking metadata repositories into a cohort</description>
+
+ <packaging>jar</packaging>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>com.fasterxml.jackson.jaxrs</groupId>
+ <artifactId>jackson-jaxrs-base</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.fasterxml.jackson.jaxrs</groupId>
+ <artifactId>jackson-jaxrs-json-provider</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>${javax-inject.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.atlas</groupId>
+ <artifactId>om-fwk-ocf</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.4</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/atlas/blob/8a57e657/omrs/src/main/java/org/apache/atlas/omrs/adapters/atlas/eventmapper/AtlasOMRSRepositoryEventMapper.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/adapters/atlas/eventmapper/AtlasOMRSRepositoryEventMapper.java b/omrs/src/main/java/org/apache/atlas/omrs/adapters/atlas/eventmapper/AtlasOMRSRepositoryEventMapper.java
new file mode 100644
index 0000000..62b1d2f
--- /dev/null
+++ b/omrs/src/main/java/org/apache/atlas/omrs/adapters/atlas/eventmapper/AtlasOMRSRepositoryEventMapper.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.atlas.omrs.adapters.atlas.eventmapper;
+
+import org.apache.atlas.omrs.eventmanagement.repositoryeventmapper.OMRSRepositoryEventMapperBase;
+
+public class AtlasOMRSRepositoryEventMapper extends OMRSRepositoryEventMapperBase
+{
+ /**
+ * Default constructor
+ */
+ public AtlasOMRSRepositoryEventMapper()
+ {
+ }
+
+
+ /**
+ * Free up any resources held since the connector is no longer needed.
+ */
+ public void disconnect()
+ {
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/atlas/blob/8a57e657/omrs/src/main/java/org/apache/atlas/omrs/adapters/atlas/eventmapper/AtlasOMRSRepositoryEventMapperProvider.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/adapters/atlas/eventmapper/AtlasOMRSRepositoryEventMapperProvider.java b/omrs/src/main/java/org/apache/atlas/omrs/adapters/atlas/eventmapper/AtlasOMRSRepositoryEventMapperProvider.java
new file mode 100644
index 0000000..28b79ed
--- /dev/null
+++ b/omrs/src/main/java/org/apache/atlas/omrs/adapters/atlas/eventmapper/AtlasOMRSRepositoryEventMapperProvider.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.atlas.omrs.adapters.atlas.eventmapper;
+
+import org.apache.atlas.omrs.adapters.igc.v1.eventmapper.IGCOMRSRepositoryEventMapper;
+import org.apache.atlas.omrs.metadatacollection.repositoryconnector.OMRSRepositoryConnectorProviderBase;
+
+/**
+ * In the Open Connector Framework (OCF), a ConnectorProvider is a factory for a specific type of connector.
+ * The IGCOMRSRepositoryEventMapperProvider is the connector provider for the IGCOMRSRepositoryEventMapper.
+ * It extends OMRSRepositoryEventMapperProviderBase which in turn extends the OCF ConnectorProviderBase.
+ * ConnectorProviderBase supports the creation of connector instances.
+ *
+ * The OMRSRESTRepositoryConnectorProvider must initialize ConnectorProviderBase with the Java class
+ * name of the OMRS Connector implementation (by calling super.setConnectorClassName(className)).
+ * Then the connector provider will work.
+ */
+public class AtlasOMRSRepositoryEventMapperProvider extends OMRSRepositoryConnectorProviderBase
+{
+ /**
+ * Constructor used to initialize the ConnectorProviderBase with the Java class name of the specific
+ * OMRS Connector implementation.
+ */
+ public AtlasOMRSRepositoryEventMapperProvider()
+ {
+ Class connectorClass = IGCOMRSRepositoryEventMapper.class;
+
+ super.setConnectorClassName(connectorClass.getName());
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/atlas/blob/8a57e657/omrs/src/main/java/org/apache/atlas/omrs/adapters/atlas/repositoryconnector/LocalAtlasOMRSMetadataCollection.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/adapters/atlas/repositoryconnector/LocalAtlasOMRSMetadataCollection.java b/omrs/src/main/java/org/apache/atlas/omrs/adapters/atlas/repositoryconnector/LocalAtlasOMRSMetadataCollection.java
new file mode 100644
index 0000000..f14caf6
--- /dev/null
+++ b/omrs/src/main/java/org/apache/atlas/omrs/adapters/atlas/repositoryconnector/LocalAtlasOMRSMetadataCollection.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.atlas.omrs.adapters.atlas.repositoryconnector;
+
+import org.apache.atlas.omrs.ffdc.exception.NotImplementedRuntimeException;
+import org.apache.atlas.omrs.metadatacollection.OMRSMetadataCollectionBase;
+
+/**
+ * The OMRSRESTMetadataCollection represents a remote metadata repository that supports the OMRS REST API.
+ * Requests to this metadata collection are translated one-for-one to requests to the remote repository since
+ * the OMRS REST API has a one-to-one correspondence with the metadata collection.
+ */
+public class LocalAtlasOMRSMetadataCollection extends OMRSMetadataCollectionBase
+{
+ private LocalAtlasOMRSRepositoryConnector parentConnector = null;
+ private String metadataCollectionId = null;
+
+ /**
+ * Default constructor.
+ *
+ * @param parentConnector - connector that this metadata collection supports. The connector has the information
+ * to call the metadata repository.
+ * @param metadataCollectionId - unique Identifier of the metadata collection Id.
+ */
+ public LocalAtlasOMRSMetadataCollection(LocalAtlasOMRSRepositoryConnector parentConnector,
+ String metadataCollectionId)
+ {
+ /*
+ * The metadata collection Id is the unique Id for the metadata collection. It is managed by the super class.
+ */
+ super(metadataCollectionId);
+ this.metadataCollectionId = metadataCollectionId;
+
+ /*
+ * Save parentConnector since this has the connection information and access to the metadata about the
+ * metadata cluster.
+ */
+ this.parentConnector = parentConnector;
+
+ /*
+ * This is a temporary implementation to allow the structural implementation of the connectors to
+ * be committed before the metadata collection implementation is complete.
+ */
+ throw new NotImplementedRuntimeException("LocalAtlasMetadataCollection", "constructor", "ATLAS-1773");
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/atlas/blob/8a57e657/omrs/src/main/java/org/apache/atlas/omrs/adapters/atlas/repositoryconnector/LocalAtlasOMRSRepositoryConnector.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/adapters/atlas/repositoryconnector/LocalAtlasOMRSRepositoryConnector.java b/omrs/src/main/java/org/apache/atlas/omrs/adapters/atlas/repositoryconnector/LocalAtlasOMRSRepositoryConnector.java
new file mode 100644
index 0000000..8f331be
--- /dev/null
+++ b/omrs/src/main/java/org/apache/atlas/omrs/adapters/atlas/repositoryconnector/LocalAtlasOMRSRepositoryConnector.java
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.atlas.omrs.adapters.atlas.repositoryconnector;
+
+import org.apache.atlas.ocf.ffdc.ConnectorCheckedException;
+import org.apache.atlas.omrs.metadatacollection.OMRSMetadataCollection;
+import org.apache.atlas.omrs.metadatacollection.repositoryconnector.OMRSRepositoryConnector;
+
+/**
+ * The OMRSRESTRepositoryConnector is a connector to a remote Apache Atlas repository (or any other metadata repository
+ * that supports the OMRS REST APIs). This is the connector used by the EnterpriseOMRSRepositoryConnector to make a direct call
+ * to another open metadata repository.
+ */
+public class LocalAtlasOMRSRepositoryConnector extends OMRSRepositoryConnector
+{
+ private LocalAtlasOMRSMetadataCollection metadataCollection = null;
+ private String metadataCollectionId = null;
+
+ /**
+ * Default constructor used by the OCF Connector Provider.
+ */
+ public LocalAtlasOMRSRepositoryConnector()
+ {
+ /*
+ * Nothing to do (yet !)
+ */
+ }
+
+
+ /**
+ * Set up the unique Id for this metadata collection.
+ *
+ * @param metadataCollectionId - String unique Id
+ */
+ public void setMetadataCollectionId(String metadataCollectionId)
+ {
+ this.metadataCollectionId = metadataCollectionId;
+
+ /*
+ * Initialize the metadata collection only once the connector is properly set up.
+ */
+ metadataCollection = new LocalAtlasOMRSMetadataCollection(this, metadataCollectionId);
+ }
+
+
+ /**
+ * Returns the metadata collection object that provides an OMRS abstraction of the metadata within
+ * a metadata repository.
+ *
+ * @return OMRSMetadataCollection - metadata information retrieved from the metadata repository.
+ */
+ public OMRSMetadataCollection getMetadataCollection()
+ {
+ if (metadataCollection == null)
+ {
+ // TODO Throw exception since it means the local metadata collection id is not set up.
+ }
+ return metadataCollection;
+ }
+
+
+ /**
+ * Free up any resources held since the connector is no longer needed.
+ *
+ * @throws ConnectorCheckedException - there is a problem disconnecting the connector.
+ */
+ public void disconnect() throws ConnectorCheckedException
+ {
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/atlas/blob/8a57e657/omrs/src/main/java/org/apache/atlas/omrs/adapters/atlas/repositoryconnector/LocalAtlasOMRSRepositoryConnectorProvider.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/adapters/atlas/repositoryconnector/LocalAtlasOMRSRepositoryConnectorProvider.java b/omrs/src/main/java/org/apache/atlas/omrs/adapters/atlas/repositoryconnector/LocalAtlasOMRSRepositoryConnectorProvider.java
new file mode 100644
index 0000000..ca7d086
--- /dev/null
+++ b/omrs/src/main/java/org/apache/atlas/omrs/adapters/atlas/repositoryconnector/LocalAtlasOMRSRepositoryConnectorProvider.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.atlas.omrs.adapters.atlas.repositoryconnector;
+
+import org.apache.atlas.omrs.metadatacollection.repositoryconnector.OMRSRepositoryConnectorProviderBase;
+import org.apache.atlas.omrs.rest.repositoryconnector.OMRSRESTRepositoryConnector;
+
+/**
+ * In the Open Connector Framework (OCF), a ConnectorProvider is a factory for a specific type of connector.
+ * The OMRSRESTRepositoryConnectorProvider is the connector provider for the OMRSRESTRepositoryConnector.
+ * It extends OMRSRepositoryConnectorProviderBase which in turn extends the OCF ConnectorProviderBase.
+ * ConnectorProviderBase supports the creation of connector instances.
+ *
+ * The OMRSRESTRepositoryConnectorProvider must initialize ConnectorProviderBase with the Java class
+ * name of the OMRS Connector implementation (by calling super.setConnectorClassName(className)).
+ * Then the connector provider will work.
+ */
+public class LocalAtlasOMRSRepositoryConnectorProvider extends OMRSRepositoryConnectorProviderBase
+{
+ /**
+ * Constructor used to initialize the ConnectorProviderBase with the Java class name of the specific
+ * OMRS Connector implementation.
+ */
+ public LocalAtlasOMRSRepositoryConnectorProvider()
+ {
+ Class connectorClass = OMRSRESTRepositoryConnector.class;
+
+ super.setConnectorClassName(connectorClass.getName());
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/atlas/blob/8a57e657/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v1/eventmapper/IGCOMRSRepositoryEventMapper.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v1/eventmapper/IGCOMRSRepositoryEventMapper.java b/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v1/eventmapper/IGCOMRSRepositoryEventMapper.java
new file mode 100644
index 0000000..3eef8c8
--- /dev/null
+++ b/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v1/eventmapper/IGCOMRSRepositoryEventMapper.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.atlas.omrs.adapters.igc.v1.eventmapper;
+
+import org.apache.atlas.omrs.eventmanagement.repositoryeventmapper.OMRSRepositoryEventMapperBase;
+
+
+/**
+ * IGCOMRSRepositoryEventMapper provides an implementation of a repository event mapper for the
+ * IBM Governance Catalog (IGC).
+ */
+public class IGCOMRSRepositoryEventMapper extends OMRSRepositoryEventMapperBase
+{
+ /**
+ * Default constructor
+ */
+ public IGCOMRSRepositoryEventMapper()
+ {
+ }
+
+
+ /**
+ * Free up any resources held since the connector is no longer needed.
+ */
+ public void disconnect()
+ {
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/atlas/blob/8a57e657/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v1/eventmapper/IGCOMRSRepositoryEventMapperProvider.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v1/eventmapper/IGCOMRSRepositoryEventMapperProvider.java b/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v1/eventmapper/IGCOMRSRepositoryEventMapperProvider.java
new file mode 100644
index 0000000..f51fb06
--- /dev/null
+++ b/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v1/eventmapper/IGCOMRSRepositoryEventMapperProvider.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.atlas.omrs.adapters.igc.v1.eventmapper;
+
+import org.apache.atlas.omrs.metadatacollection.repositoryconnector.OMRSRepositoryConnectorProviderBase;
+
+/**
+ * In the Open Connector Framework (OCF), a ConnectorProvider is a factory for a specific type of connector.
+ * The IGCOMRSRepositoryEventMapperProvider is the connector provider for the IGCOMRSRepositoryEventMapper.
+ * It extends OMRSRepositoryEventMapperProviderBase which in turn extends the OCF ConnectorProviderBase.
+ * ConnectorProviderBase supports the creation of connector instances.
+ *
+ * The OMRSRESTRepositoryConnectorProvider must initialize ConnectorProviderBase with the Java class
+ * name of the OMRS Connector implementation (by calling super.setConnectorClassName(className)).
+ * Then the connector provider will work.
+ */
+public class IGCOMRSRepositoryEventMapperProvider extends OMRSRepositoryConnectorProviderBase
+{
+ /**
+ * Constructor used to initialize the ConnectorProviderBase with the Java class name of the specific
+ * OMRS Connector implementation.
+ */
+ public IGCOMRSRepositoryEventMapperProvider()
+ {
+ Class connectorClass = IGCOMRSRepositoryEventMapper.class;
+
+ super.setConnectorClassName(connectorClass.getName());
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/atlas/blob/8a57e657/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v1/repositoryconnector/IGCOMRSMetadataCollection.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v1/repositoryconnector/IGCOMRSMetadataCollection.java b/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v1/repositoryconnector/IGCOMRSMetadataCollection.java
new file mode 100644
index 0000000..77afe02
--- /dev/null
+++ b/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v1/repositoryconnector/IGCOMRSMetadataCollection.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.atlas.omrs.adapters.igc.v1.repositoryconnector;
+
+import org.apache.atlas.omrs.ffdc.exception.NotImplementedRuntimeException;
+import org.apache.atlas.omrs.metadatacollection.OMRSMetadataCollectionBase;
+
+/**
+ * The IGCOMRSMetadataCollection represents a remote IBM Information Governance Catalog (IGC)
+ * metadata repository. IGC supports its own native REST APIs.
+ * Requests to this metadata collection are translated to the IGC REST API calls and the results are
+ * transformed to OMRS objects before returning to the caller.
+ */
+public class IGCOMRSMetadataCollection extends OMRSMetadataCollectionBase
+{
+ private IGCOMRSRepositoryConnector parentConnector = null;
+
+ /**
+ * Default constructor.
+ *
+ * @param parentConnector - connector that this metadata collection supports. The connector has the information
+ * to call the metadata repository.
+ * @param metadataCollectionId - unique identifier for the repository.
+ */
+ public IGCOMRSMetadataCollection(IGCOMRSRepositoryConnector parentConnector,
+ String metadataCollectionId)
+ {
+ /*
+ * The metadata collection Id is the unique Id for the metadata collection. It is managed by the super class.
+ */
+ super(metadataCollectionId);
+ this.metadataCollectionId = metadataCollectionId;
+
+ /*
+ * Save parentConnector since this has the connection information.
+ */
+ this.parentConnector = parentConnector;
+
+ /*
+ * This is a temporary implementation to allow the structural implementation of the connectors to
+ * be committed before the metadata collection implementation is complete.
+ */
+ throw new NotImplementedRuntimeException("IGCOMRSMetadataCollection", "constructor", "ATLAS-1774");
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/atlas/blob/8a57e657/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v1/repositoryconnector/IGCOMRSRepositoryConnector.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v1/repositoryconnector/IGCOMRSRepositoryConnector.java b/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v1/repositoryconnector/IGCOMRSRepositoryConnector.java
new file mode 100644
index 0000000..89a2c95
--- /dev/null
+++ b/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v1/repositoryconnector/IGCOMRSRepositoryConnector.java
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.atlas.omrs.adapters.igc.v1.repositoryconnector;
+
+import org.apache.atlas.ocf.ffdc.ConnectorCheckedException;
+import org.apache.atlas.omrs.metadatacollection.OMRSMetadataCollection;
+import org.apache.atlas.omrs.metadatacollection.repositoryconnector.OMRSRepositoryConnector;
+
+
+/**
+ * The IGCOMRSRepositoryConnector is a connector to a remote IBM Information Governance Catalog (IGC) repository.
+ */
+public class IGCOMRSRepositoryConnector extends OMRSRepositoryConnector
+{
+ private IGCOMRSMetadataCollection metadataCollection = null;
+ private String metadataCollectionId = null;
+
+ /**
+ * Default constructor used by the OCF Connector Provider.
+ */
+ public IGCOMRSRepositoryConnector()
+ {
+ /*
+ * Nothing to do (yet !)
+ */
+ }
+
+
+ /**
+ * Set up the unique Id for this metadata collection.
+ *
+ * @param metadataCollectionId - String unique Id
+ */
+ public void setMetadataCollectionId(String metadataCollectionId)
+ {
+ this.metadataCollectionId = metadataCollectionId;
+
+ /*
+ * Initialize the metadata collection only once the connector is properly set up.
+ */
+ metadataCollection = new IGCOMRSMetadataCollection(this, metadataCollectionId);
+ }
+
+
+ /**
+ * Returns the metadata collection object that provides an OMRS abstraction of the metadata within
+ * a metadata repository.
+ *
+ * @return OMRSMetadataCollection - metadata information retrieved from the metadata repository.
+ */
+ public OMRSMetadataCollection getMetadataCollection()
+ {
+ if (metadataCollection == null)
+ {
+ // TODO Throw exception since it means the local metadata collection id is not set up.
+ }
+ return metadataCollection;
+ }
+
+
+ /**
+ * Free up any resources held since the connector is no longer needed.
+ *
+ * @throws ConnectorCheckedException - there is a problem disconnecting the connector.
+ */
+ public void disconnect() throws ConnectorCheckedException
+ {
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/atlas/blob/8a57e657/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v1/repositoryconnector/IGCOMRSRepositoryConnectorProvider.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v1/repositoryconnector/IGCOMRSRepositoryConnectorProvider.java b/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v1/repositoryconnector/IGCOMRSRepositoryConnectorProvider.java
new file mode 100644
index 0000000..00aed67
--- /dev/null
+++ b/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v1/repositoryconnector/IGCOMRSRepositoryConnectorProvider.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.atlas.omrs.adapters.igc.v1.repositoryconnector;
+
+import org.apache.atlas.omrs.metadatacollection.repositoryconnector.OMRSRepositoryConnectorProviderBase;
+
+/**
+ * In the Open Connector Framework (OCF), a ConnectorProvider is a factory for a specific type of connector.
+ * The IGCOMRSRepositoryConnectorProvider is the connector provider for the IGCOMRSRepositoryConnector.
+ * It extends OMRSRepositoryConnectorProviderBase which in turn extends the OCF ConnectorProviderBase.
+ * ConnectorProviderBase supports the creation of connector instances.
+ *
+ * The IGCOMRSRepositoryConnectorProvider must initialize ConnectorProviderBase with the Java class
+ * name of the OMRS Connector implementation (by calling super.setConnectorClassName(className)).
+ * Then the connector provider will work.
+ */
+public class IGCOMRSRepositoryConnectorProvider extends OMRSRepositoryConnectorProviderBase
+{
+ /**
+ * Constructor used to initialize the ConnectorProviderBase with the Java class name of the specific
+ * OMRS Connector implementation.
+ */
+ public IGCOMRSRepositoryConnectorProvider()
+ {
+ Class connectorClass = IGCOMRSRepositoryConnector.class;
+
+ super.setConnectorClassName(connectorClass.getName());
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/atlas/blob/8a57e657/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v2/eventmapper/IGCV2OMRSRepositoryEventMapper.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v2/eventmapper/IGCV2OMRSRepositoryEventMapper.java b/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v2/eventmapper/IGCV2OMRSRepositoryEventMapper.java
new file mode 100644
index 0000000..d72aec9
--- /dev/null
+++ b/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v2/eventmapper/IGCV2OMRSRepositoryEventMapper.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.atlas.omrs.adapters.igc.v2.eventmapper;
+
+import org.apache.atlas.omrs.eventmanagement.repositoryeventmapper.OMRSRepositoryEventMapperBase;
+
+
+/**
+ * IGCOMRSRepositoryEventMapper provides an implementation of a repository event mapper for the
+ * IBM Governance Catalog (IGC) for relaeave following 11.7.
+ */
+public class IGCV2OMRSRepositoryEventMapper extends OMRSRepositoryEventMapperBase
+{
+ /**
+ * Default constructor
+ */
+ public IGCV2OMRSRepositoryEventMapper()
+ {
+ }
+
+
+ /**
+ * Free up any resources held since the connector is no longer needed.
+ */
+ public void disconnect()
+ {
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/atlas/blob/8a57e657/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v2/eventmapper/IGCV2OMRSRepositoryEventMapperProvider.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v2/eventmapper/IGCV2OMRSRepositoryEventMapperProvider.java b/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v2/eventmapper/IGCV2OMRSRepositoryEventMapperProvider.java
new file mode 100644
index 0000000..730f5aa
--- /dev/null
+++ b/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v2/eventmapper/IGCV2OMRSRepositoryEventMapperProvider.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.atlas.omrs.adapters.igc.v2.eventmapper;
+
+import org.apache.atlas.omrs.adapters.igc.v1.eventmapper.IGCOMRSRepositoryEventMapper;
+import org.apache.atlas.omrs.metadatacollection.repositoryconnector.OMRSRepositoryConnectorProviderBase;
+
+/**
+ * In the Open Connector Framework (OCF), a ConnectorProvider is a factory for a specific type of connector.
+ * The IGCOMRSRepositoryEventMapperProvider is the connector provider for the IGCOMRSRepositoryEventMapper.
+ * It extends OMRSRepositoryEventMapperProviderBase which in turn extends the OCF ConnectorProviderBase.
+ * ConnectorProviderBase supports the creation of connector instances.
+ *
+ * The IGCV2OMRSRepositoryEventMapperProvider must initialize ConnectorProviderBase with the Java class
+ * name of the OMRS Connector implementation (by calling super.setConnectorClassName(className)).
+ * Then the connector provider will work.
+ */
+public class IGCV2OMRSRepositoryEventMapperProvider extends OMRSRepositoryConnectorProviderBase
+{
+ /**
+ * Constructor used to initialize the ConnectorProviderBase with the Java class name of the specific
+ * OMRS Connector implementation.
+ */
+ public IGCV2OMRSRepositoryEventMapperProvider()
+ {
+ Class connectorClass = IGCV2OMRSRepositoryEventMapper.class;
+
+ super.setConnectorClassName(connectorClass.getName());
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/atlas/blob/8a57e657/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v2/repositoryconnector/IGCV2OMRSMetadataCollection.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v2/repositoryconnector/IGCV2OMRSMetadataCollection.java b/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v2/repositoryconnector/IGCV2OMRSMetadataCollection.java
new file mode 100644
index 0000000..4fe1330
--- /dev/null
+++ b/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v2/repositoryconnector/IGCV2OMRSMetadataCollection.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.atlas.omrs.adapters.igc.v2.repositoryconnector;
+
+import org.apache.atlas.omrs.ffdc.exception.NotImplementedRuntimeException;
+import org.apache.atlas.omrs.metadatacollection.OMRSMetadataCollectionBase;
+
+/**
+ * The IGCV2OMRSMetadataCollection represents a remote IBM Information Governance Catalog (IGC)
+ * metadata repository. IGC supports its own native REST APIs.
+ * Requests to this metadata collection are translated to the IGC REST API calls and the results are
+ * transformed to OMRS objects before returning to the caller.
+ */
+public class IGCV2OMRSMetadataCollection extends OMRSMetadataCollectionBase
+{
+ private IGCV2OMRSRepositoryConnector parentConnector = null;
+
+ /**
+ * Default constructor.
+ *
+ * @param parentConnector - connector that this metadata collection supports. The connector has the information
+ * to call the metadata repository.
+ * @param metadataCollectionId - unique identifier for the repository.
+ */
+ public IGCV2OMRSMetadataCollection(IGCV2OMRSRepositoryConnector parentConnector,
+ String metadataCollectionId)
+ {
+ /*
+ * The metadata collection Id is the unique Id for the metadata collection. It is managed by the super class.
+ */
+ super(metadataCollectionId);
+ this.metadataCollectionId = metadataCollectionId;
+
+ /*
+ * Save parentConnector since this has the connection information.
+ */
+ this.parentConnector = parentConnector;
+
+ /*
+ * This is a temporary implementation to allow the structural implementation of the connectors to
+ * be committed before the metadata collection implementation is complete.
+ */
+ throw new NotImplementedRuntimeException("IGCV2OMRSMetadataCollection", "constructor", "ATLAS-1774");
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/atlas/blob/8a57e657/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v2/repositoryconnector/IGCV2OMRSRepositoryConnector.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v2/repositoryconnector/IGCV2OMRSRepositoryConnector.java b/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v2/repositoryconnector/IGCV2OMRSRepositoryConnector.java
new file mode 100644
index 0000000..5b68cb4
--- /dev/null
+++ b/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v2/repositoryconnector/IGCV2OMRSRepositoryConnector.java
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.atlas.omrs.adapters.igc.v2.repositoryconnector;
+
+import org.apache.atlas.ocf.ffdc.ConnectorCheckedException;
+import org.apache.atlas.omrs.adapters.igc.v1.repositoryconnector.IGCOMRSMetadataCollection;
+import org.apache.atlas.omrs.metadatacollection.OMRSMetadataCollection;
+import org.apache.atlas.omrs.metadatacollection.repositoryconnector.OMRSRepositoryConnector;
+
+
+/**
+ * The IGCV2OMRSRepositoryConnector is a connector to a remote IBM Information Governance Catalog (IGC) repository
+ * for releases after 11.7.
+ */
+public class IGCV2OMRSRepositoryConnector extends OMRSRepositoryConnector
+{
+ private IGCV2OMRSMetadataCollection metadataCollection = null;
+ private String metadataCollectionId = null;
+
+ /**
+ * Default constructor used by the OCF Connector Provider.
+ */
+ public IGCV2OMRSRepositoryConnector()
+ {
+ /*
+ * Nothing to do (yet !)
+ */
+ }
+
+
+ /**
+ * Set up the unique Id for this metadata collection.
+ *
+ * @param metadataCollectionId - String unique Id
+ */
+ public void setMetadataCollectionId(String metadataCollectionId)
+ {
+ this.metadataCollectionId = metadataCollectionId;
+
+ /*
+ * Initialize the metadata collection only once the connector is properly set up.
+ */
+ metadataCollection = new IGCV2OMRSMetadataCollection(this, metadataCollectionId);
+ }
+
+
+ /**
+ * Returns the metadata collection object that provides an OMRS abstraction of the metadata within
+ * a metadata repository.
+ *
+ * @return OMRSMetadataCollection - metadata information retrieved from the metadata repository.
+ */
+ public OMRSMetadataCollection getMetadataCollection()
+ {
+ if (metadataCollection == null)
+ {
+ // TODO Throw exception since it means the local metadata collection id is not set up.
+ }
+ return metadataCollection;
+ }
+
+
+ /**
+ * Free up any resources held since the connector is no longer needed.
+ *
+ * @throws ConnectorCheckedException - there is a problem disconnecting the connector.
+ */
+ public void disconnect() throws ConnectorCheckedException
+ {
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/atlas/blob/8a57e657/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v2/repositoryconnector/IGCV2OMRSRepositoryConnectorProvider.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v2/repositoryconnector/IGCV2OMRSRepositoryConnectorProvider.java b/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v2/repositoryconnector/IGCV2OMRSRepositoryConnectorProvider.java
new file mode 100644
index 0000000..717f99d
--- /dev/null
+++ b/omrs/src/main/java/org/apache/atlas/omrs/adapters/igc/v2/repositoryconnector/IGCV2OMRSRepositoryConnectorProvider.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.atlas.omrs.adapters.igc.v2.repositoryconnector;
+
+import org.apache.atlas.omrs.adapters.igc.v1.repositoryconnector.IGCOMRSRepositoryConnector;
+import org.apache.atlas.omrs.metadatacollection.repositoryconnector.OMRSRepositoryConnectorProviderBase;
+
+/**
+ * In the Open Connector Framework (OCF), a ConnectorProvider is a factory for a specific type of connector.
+ * The IGCV2OMRSRepositoryConnectorProvider is the connector provider for the IGCV2OMRSRepositoryConnector.
+ * It extends OMRSRepositoryConnectorProviderBase which in turn extends the OCF ConnectorProviderBase.
+ * ConnectorProviderBase supports the creation of connector instances.
+ *
+ * The IGCV2OMRSRepositoryConnectorProvider must initialize ConnectorProviderBase with the Java class
+ * name of the OMRS Connector implementation (by calling super.setConnectorClassName(className)).
+ * Then the connector provider will work.
+ */
+public class IGCV2OMRSRepositoryConnectorProvider extends OMRSRepositoryConnectorProviderBase
+{
+ /**
+ * Constructor used to initialize the ConnectorProviderBase with the Java class name of the specific
+ * OMRS Connector implementation.
+ */
+ public IGCV2OMRSRepositoryConnectorProvider()
+ {
+ Class connectorClass = IGCV2OMRSRepositoryConnector.class;
+
+ super.setConnectorClassName(connectorClass.getName());
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/atlas/blob/8a57e657/omrs/src/main/java/org/apache/atlas/omrs/admin/OMRSConfigurationFactory.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/admin/OMRSConfigurationFactory.java b/omrs/src/main/java/org/apache/atlas/omrs/admin/OMRSConfigurationFactory.java
new file mode 100644
index 0000000..c626fa0
--- /dev/null
+++ b/omrs/src/main/java/org/apache/atlas/omrs/admin/OMRSConfigurationFactory.java
@@ -0,0 +1,228 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.atlas.omrs.admin;
+
+import org.apache.atlas.ocf.properties.*;
+import org.apache.atlas.omrs.admin.properties.*;
+import org.apache.atlas.omrs.metadatahighway.cohortregistry.store.file.FileBasedRegistryStoreProvider;
+import org.apache.atlas.omrs.metadatacollection.properties.typedefs.TypeDefSummary;
+import org.apache.atlas.omrs.topicconnectors.kafka.KafkaOMRSTopicProvider;
+
+import java.util.ArrayList;
+import java.util.UUID;
+
+
+/**
+ * OMRSConfigurationFactory sets up default configuration for the OMRS components and manages the changes made
+ * by the server administrator.
+ */
+public class OMRSConfigurationFactory
+{
+ /*
+ * Default property fillers
+ */
+ private static final String defaultEnterpriseMetadataCollectionName = "Enterprise Metadata Collection";
+
+ private static final String defaultTopicRootName = "omag";
+ private static final String defaultTopicLeafName = "OMRSTopic";
+
+ private static final String defaultTopicConnectorLeafName = "OMRS Topic Connector";
+ private static final String defaultEnterpriseTopicConnectorRootName = "Enterprise";
+
+ private static final String defaultTopicConnectorName = "OMRS Kafka Topic Connector";
+ private static final String defaultTopicConnectorDescription = "Kafka Topic used to exchange event between members of an open metadata repository cluster.";
+ private static final String defaultTopicConnectorProviderClassName = KafkaOMRSTopicProvider.class.getName();
+
+ private static final String defaultCohortName = "defaultCohort";
+
+ private static final String defaultRegistryStoreFQName = "OMRS Cohort Registry Store: cohort.registry";
+ private static final String defaultRegistryStoreDisplayName = "Cohort Registry Store";
+ private static final String defaultRegistryStoreDescription = "File-based Store use by the cohort registry to store information about the members of the open metadata repository cluster.";
+ private static final String defaultRegistryStoreAddress = "cohort.registry";
+ private static final String defaultRegistryStoreProviderClassName = FileBasedRegistryStoreProvider.class.getName();
+
+
+
+ private String localServerName = null;
+ private String localServerType = null;
+ private String localServerURL = null;
+ private String localOrganizationName = null;
+ private RepositoryServicesConfig repositoryServicesConfig = null;
+
+
+ /**
+ * Constructor used when the server is being configured. Any parameter may be null.
+ *
+ * @param localServerName - name of the local server
+ * @param localServerType - type of the local server
+ * @param localServerURL - URL of the local server
+ * @param localOrganizationName - name of the organization that owns the local server
+ */
+ public OMRSConfigurationFactory(String localServerName,
+ String localServerType,
+ String localServerURL,
+ String localOrganizationName)
+ {
+ this.localServerName = localServerName;
+ this.localServerType = localServerType;
+ this.localServerURL = localServerURL;
+ this.localOrganizationName = localOrganizationName;
+ }
+
+ public Connection getGenericConnection()
+ {
+ return null;
+ }
+
+ public Connection getDefaultAuditLogConnection()
+ {
+ return null;
+ }
+
+ public Connection getDefaultOpenMetadataTypesArchiveConnection()
+ {
+ return null;
+ }
+
+ private Connection getGenericArchiveConnection()
+ {
+ return null;
+ }
+
+ private Connection getGenericRepositoryConnection()
+ {
+ return null;
+ }
+
+ private Connection getDefaultLocalRepositoryLocalConnection()
+ {
+ return null;
+ }
+
+ private Connection getAtlasLocalRepositoryLocalConnection()
+ {
+ return null;
+ }
+
+ private Connection getDefaultLocalRepositoryRemoteConnection(String localServerURL)
+ {
+ return null;
+ }
+
+ private Connection getDefaultEventMapperConnection()
+ {
+ return null;
+ }
+
+ public Connection getGenericEventMapperConnection()
+ {
+ return null;
+ }
+
+ private Connection getDefaultEnterpriseOMRSTopicConnection() { return null; }
+
+ private Connection getDefaultCohortOMRSTopicConnection () { return null; }
+
+ private Connection getDefaultCohortRegistryConnection ()
+ {
+ return null;
+ }
+
+ private OpenMetadataEventProtocolVersion getDefaultEnterpriseOMRSTopicProtocolVersion() { return OpenMetadataEventProtocolVersion.V1; }
+
+ private OpenMetadataEventProtocolVersion getDefaultCohortOMRSTopicProtocolVersion() { return OpenMetadataEventProtocolVersion.V1; }
+
+ private OpenMetadataExchangeRule getDefaultEventsToSendRule()
+ {
+ return OpenMetadataExchangeRule.ALL;
+ }
+
+ private ArrayList<TypeDefSummary> getDefaultSelectedTypesToSend() { return null; }
+
+ private OpenMetadataExchangeRule getDefaultEventsToSaveRule()
+ {
+ return OpenMetadataExchangeRule.ALL;
+ }
+
+ private ArrayList<TypeDefSummary> getDefaultSelectedTypesToSave() { return null; }
+
+ private OpenMetadataExchangeRule getDefaultEventsToProcessRule()
+ {
+ return OpenMetadataExchangeRule.ALL;
+ }
+
+ private ArrayList<TypeDefSummary> getDefaultSelectedTypesToProcess() { return null; }
+
+ private ArrayList<Connection> getDefaultOpenMetadataArchiveList()
+ {
+ ArrayList<Connection> openMetadataArchiveList = new ArrayList<>();
+
+ openMetadataArchiveList.add(this.getDefaultOpenMetadataTypesArchiveConnection());
+
+ return openMetadataArchiveList;
+ }
+
+ public LocalRepositoryConfig getDefaultLocalRepositoryConfig(String localServerURL)
+ {
+ LocalRepositoryConfig localRepositoryConfig = new LocalRepositoryConfig();
+
+ localRepositoryConfig.setMetadataCollectionId(UUID.randomUUID().toString());
+ localRepositoryConfig.setLocalRepositoryLocalConnection(this.getDefaultLocalRepositoryLocalConnection());
+ localRepositoryConfig.setLocalRepositoryRemoteConnection(this.getDefaultLocalRepositoryRemoteConnection(localServerURL));
+ localRepositoryConfig.setEventsToSaveRule(this.getDefaultEventsToSaveRule());
+ localRepositoryConfig.setSelectedTypesToSave(this.getDefaultSelectedTypesToSave());
+ localRepositoryConfig.setEventsToSendRule(this.getDefaultEventsToSendRule());
+ localRepositoryConfig.setSelectedTypesToSend(this.getDefaultSelectedTypesToSend());
+ localRepositoryConfig.setEventMapperConnection(this.getDefaultEventMapperConnection());
+
+ return localRepositoryConfig;
+ }
+
+ public EnterpriseAccessConfig getDefaultEnterpriseAccessConfig()
+ {
+ EnterpriseAccessConfig enterpriseAccessConfig = new EnterpriseAccessConfig();
+
+ enterpriseAccessConfig.setEnterpriseMetadataCollectionId(UUID.randomUUID().toString());
+ enterpriseAccessConfig.setEnterpriseMetadataCollectionName(defaultEnterpriseMetadataCollectionName);
+ enterpriseAccessConfig.setEnterpriseOMRSTopicConnection(this.getDefaultEnterpriseOMRSTopicConnection());
+ enterpriseAccessConfig.setEnterpriseOMRSTopicProtocolVersion(this.getDefaultEnterpriseOMRSTopicProtocolVersion());
+
+ return enterpriseAccessConfig;
+ }
+
+
+ /**
+ * Return a CohortConfig object that is pre-configured with default values.
+ *
+ * @return default values in a CohortConfig object
+ */
+ public CohortConfig getDefaultCohortConfig()
+ {
+ CohortConfig cohortConfig = new CohortConfig();
+
+ cohortConfig.setCohortName(defaultCohortName);
+ cohortConfig.setCohortRegistryConnection(this.getDefaultCohortRegistryConnection());
+ cohortConfig.setCohortOMRSTopicConnection(this.getDefaultCohortOMRSTopicConnection());
+ cohortConfig.setCohortOMRSTopicProtocolVersion(this.getDefaultCohortOMRSTopicProtocolVersion());
+ cohortConfig.setEventsToProcessRule(this.getDefaultEventsToProcessRule());
+ cohortConfig.setSelectedTypesToProcess(this.getDefaultSelectedTypesToProcess());
+
+ return cohortConfig;
+ }
+
+}