ATLAS-2246: OMRS Connector API plus REST and IGC Connector skeleton - 15th February 2018
Signed-off-by: David Radley <[email protected]> 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 <[email protected]> Authored: Thu Feb 15 12:46:01 2018 +0000 Committer: David Radley <[email protected]> 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; + } + +}
