ATLAS-2122 OMAG Server Application and OMRS APIs Signed-off-by: David Radley <david_rad...@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/a1fd4068 Tree: http://git-wip-us.apache.org/repos/asf/atlas/tree/a1fd4068 Diff: http://git-wip-us.apache.org/repos/asf/atlas/diff/a1fd4068 Branch: refs/heads/master Commit: a1fd406821e1178a7937641386684c46d16ce63e Parents: 354162d Author: Mandy Chessell <mandy_chess...@uk.ibm.com> Authored: Thu Apr 5 13:45:46 2018 +0100 Committer: David Radley <david_rad...@uk.ibm.com> Committed: Fri Apr 6 08:56:05 2018 +0100 ---------------------------------------------------------------------- om-fwk-ocf/pom.xml | 18 + .../java/org/apache/atlas/ocf/Connector.java | 11 +- .../org/apache/atlas/ocf/ConnectorBase.java | 42 +- .../ocf/properties/AdditionalProperties.java | 13 +- .../atlas/ocf/properties/AnnotationStatus.java | 10 + .../atlas/ocf/properties/AssetPropertyBase.java | 1 - .../atlas/ocf/properties/CommentType.java | 10 + .../apache/atlas/ocf/properties/Connection.java | 1 + .../atlas/ocf/properties/ConnectorType.java | 6 +- .../atlas/ocf/properties/ElementHeader.java | 2 +- .../atlas/ocf/properties/ElementOrigin.java | 12 +- .../atlas/ocf/properties/ElementType.java | 51 +- .../apache/atlas/ocf/properties/Endpoint.java | 12 +- .../apache/atlas/ocf/properties/KeyPattern.java | 10 + .../apache/atlas/ocf/properties/Meaning.java | 18 +- .../atlas/ocf/properties/RelatedMediaType.java | 10 + .../atlas/ocf/properties/RelatedMediaUsage.java | 10 + .../apache/atlas/ocf/properties/SchemaType.java | 15 +- .../apache/atlas/ocf/properties/StarRating.java | 10 + .../properties/beans/AdditionalProperties.java | 67 + .../atlas/ocf/properties/beans/Connection.java | 181 + .../ocf/properties/beans/ConnectorType.java | 143 + .../atlas/ocf/properties/beans/ElementType.java | 133 + .../atlas/ocf/properties/beans/Endpoint.java | 164 + omag-api/pom.xml | 118 + .../atlas/omag/admin/LocalRepositoryMode.java | 102 + .../omag/admin/OMAGServerAdministration.java | 375 + .../atlas/omag/admin/OMAGServiceMode.java | 87 + .../admin/server/OMAGServerAdminResource.java | 1328 ++ .../properties/AccessServiceConfig.java | 429 + .../properties/OMAGServerConfig.java | 256 + .../registration/AccessServiceAdmin.java | 56 + .../registration/AccessServiceDescription.java | 277 + .../AccessServiceOperationalStatus.java | 88 + .../store/OMAGServerConfigStore.java | 48 + .../OMAGServerConfigStoreConnectorBase.java | 28 + .../OMAGServerConfigStoreProviderBase.java | 41 + .../FileBasedServerConfigStoreConnector.java | 178 + .../FileBasedServerConfigStoreProvider.java | 37 + .../apache/atlas/omag/ffdc/OMAGErrorCode.java | 229 + .../exception/OMAGCheckedExceptionBase.java | 160 + .../OMAGConfigurationErrorException.java | 58 + .../OMAGInvalidParameterException.java | 57 + .../exception/OMAGNotAuthorizedException.java | 57 + omag-server/pom.xml | 125 + .../atlas/omag/application/OMAGApplication.java | 39 + omrs/pom.xml | 13 + .../AtlasOMRSRepositoryEventMapper.java | 18 +- .../LocalAtlasOMRSRepositoryConnector.java | 33 +- .../IGCOMRSRepositoryEventMapper.java | 17 +- .../IGCOMRSRepositoryConnector.java | 32 +- .../IGCV2OMRSRepositoryEventMapper.java | 20 +- .../IGCV2OMRSRepositoryConnector.java | 34 +- .../InMemoryOMRSMetadataCollection.java | 4523 +++++ .../InMemoryOMRSMetadataStore.java | 634 + .../InMemoryOMRSRepositoryConnector.java | 58 + ...InMemoryOMRSRepositoryConnectorProvider.java | 45 + .../omrs/admin/OMRSConfigurationFactory.java | 805 +- .../omrs/admin/OMRSOperationalServices.java | 174 +- .../omrs/admin/properties/CohortConfig.java | 35 +- .../properties/EnterpriseAccessConfig.java | 12 +- .../admin/properties/LocalRepositoryConfig.java | 66 +- .../OpenMetadataEventProtocolVersion.java | 9 + .../properties/OpenMetadataExchangeRule.java | 10 + .../properties/RepositoryServicesConfig.java | 116 +- .../omrs/archivemanager/OMRSArchiveBuilder.java | 753 +- .../omrs/archivemanager/OMRSArchiveHelper.java | 617 + .../omrs/archivemanager/OMRSArchiveManager.java | 169 +- .../omrs/archivemanager/OMRSArchiveWriter.java | 108 + .../opentypes/OpenMetadataTypesArchive.java | 17967 ++++++++++++++--- .../properties/OpenMetadataArchive.java | 10 + .../OpenMetadataArchiveInstanceStore.java | 54 +- .../OpenMetadataArchiveProperties.java | 75 +- .../properties/OpenMetadataArchiveType.java | 15 + .../OpenMetadataArchiveTypeStore.java | 76 +- .../store/OpenMetadataArchiveStore.java | 12 - .../OpenMetadataArchiveStoreConnector.java | 27 + .../OpenMetadataArchiveStoreConnectorBase.java | 27 - ...eBasedOpenMetadataArchiveStoreConnector.java | 183 + ...leBasedOpenMetadataArchiveStoreProvider.java | 37 + .../atlas/omrs/auditlog/OMRSAuditCode.java | 124 +- .../atlas/omrs/auditlog/OMRSAuditLog.java | 77 +- .../omrs/auditlog/store/OMRSAuditLogRecord.java | 103 +- .../store/OMRSAuditLogRecordOriginator.java | 10 + .../store/OMRSAuditLogReportingComponent.java | 10 + .../omrs/auditlog/store/OMRSAuditLogStore.java | 52 +- .../store/OMRSAuditLogStoreConnectorBase.java | 2 +- .../file/FileBasedAuditLogStoreConnector.java | 52 +- .../OMRSConnectionConsumer.java | 6 + .../OMRSEnterpriseConnectorManager.java | 139 +- .../EnterpriseOMRSConnectorProvider.java | 35 +- .../EnterpriseOMRSMetadataCollection.java | 1287 +- .../EnterpriseOMRSRepositoryConnector.java | 92 +- .../omrs/eventmanagement/OMRSEventListener.java | 8 +- .../eventmanagement/OMRSEventPublisher.java | 31 +- .../OMRSRepositoryEventExchangeRule.java | 237 +- .../OMRSRepositoryEventManager.java | 76 +- .../omrs/eventmanagement/events/OMRSEvent.java | 3 +- .../events/OMRSInstanceEventProcessor.java | 16 +- .../events/OMRSRegistryEvent.java | 9 +- .../events/OMRSRegistryEventErrorCode.java | 1 - .../events/OMRSRegistryEventProcessor.java | 7 +- .../events/v1/OMRSEventV1ErrorSection.java | 12 +- .../events/v1/OMRSEventV1InstanceSection.java | 9 + .../events/v1/OMRSEventV1RegistrySection.java | 36 +- .../events/v1/OMRSEventV1TypeDefSection.java | 9 + .../OMRSRepositoryEventMapper.java | 66 +- .../OMRSRepositoryEventMapperBase.java | 61 +- .../OMRSRepositoryEventMapperConnector.java | 169 + .../apache/atlas/omrs/ffdc/OMRSErrorCode.java | 485 +- .../exception/EntityProxyOnlyException.java | 57 + .../FunctionNotSupportedException.java | 60 + .../exception/OMRSCheckedExceptionBase.java | 12 +- .../exception/RelationshipKnownException.java | 57 - .../localrepository/OMRSLocalRepository.java | 26 +- .../LocalOMRSConnectorProvider.java | 76 +- .../LocalOMRSInstanceEventProcessor.java | 1402 +- .../LocalOMRSMetadataCollection.java | 1243 +- .../LocalOMRSRepositoryConnector.java | 322 +- .../OMRSInstanceRetrievalEventProcessor.java | 16 +- .../OMRSInstanceHelper.java | 4 +- .../OMRSInstanceValidator.java | 2 - .../OMRSRepositoryContentManager.java | 1226 +- .../OMRSRepositoryHelper.java | 1034 +- .../OMRSRepositoryValidator.java | 2797 ++- .../OMRSTypeDefHelper.java | 72 +- .../OMRSTypeDefManager.java | 12 +- .../OMRSTypeDefValidator.java | 77 +- .../OMRSMetadataCollection.java | 584 +- .../OMRSMetadataCollectionBase.java | 517 +- .../properties/MatchCriteria.java | 10 + .../properties/SequencingOrder.java | 10 + .../instances/ArrayPropertyValue.java | 36 + .../properties/instances/Classification.java | 13 +- .../instances/ClassificationOrigin.java | 10 + .../properties/instances/EntityDetail.java | 10 + .../properties/instances/EntityProxy.java | 37 +- .../properties/instances/EntitySummary.java | 29 +- .../properties/instances/EntityUniverse.java | 35 +- .../properties/instances/EnumPropertyValue.java | 10 + .../instances/InstanceAuditHeader.java | 17 +- .../instances/InstanceElementHeader.java | 10 + .../properties/instances/InstanceGraph.java | 109 +- .../properties/instances/InstanceHeader.java | 10 + .../instances/InstanceProperties.java | 11 +- .../instances/InstancePropertyCategory.java | 10 + .../instances/InstancePropertyValue.java | 13 + .../instances/InstanceProvenanceType.java | 10 + .../properties/instances/InstanceStatus.java | 10 + .../properties/instances/InstanceType.java | 89 +- .../properties/instances/MapPropertyValue.java | 34 + .../instances/PrimitivePropertyValue.java | 176 +- .../properties/instances/Relationship.java | 10 + .../instances/StructPropertyValue.java | 33 + .../typedefs/AttributeCardinality.java | 10 + .../properties/typedefs/AttributeTypeDef.java | 112 +- .../typedefs/AttributeTypeDefCategory.java | 10 + .../properties/typedefs/ClassificationDef.java | 29 +- .../typedefs/ClassificationPropagationRule.java | 10 + .../properties/typedefs/CollectionDef.java | 28 +- .../typedefs/CollectionDefCategory.java | 9 + .../properties/typedefs/EntityDef.java | 11 + .../properties/typedefs/EnumDef.java | 19 +- .../properties/typedefs/EnumElementDef.java | 10 + .../typedefs/ExternalStandardMapping.java | 10 + .../properties/typedefs/PrimitiveDef.java | 10 + .../typedefs/PrimitiveDefCategory.java | 12 +- .../typedefs/RelationshipCategory.java | 12 + .../typedefs/RelationshipContainerEnd.java | 10 + .../properties/typedefs/RelationshipDef.java | 10 + .../properties/typedefs/RelationshipEndDef.java | 10 + .../properties/typedefs/TypeDef.java | 80 +- .../properties/typedefs/TypeDefAttribute.java | 28 +- .../properties/typedefs/TypeDefCategory.java | 10 + .../typedefs/TypeDefElementHeader.java | 10 + .../properties/typedefs/TypeDefGallery.java | 58 +- .../properties/typedefs/TypeDefLink.java | 10 + .../properties/typedefs/TypeDefPatch.java | 83 +- .../properties/typedefs/TypeDefPatchAction.java | 10 + .../properties/typedefs/TypeDefProperties.java | 91 +- .../properties/typedefs/TypeDefSummary.java | 10 + .../OMRSMetadataCollectionManager.java | 51 + .../OMRSRepositoryConnector.java | 156 +- .../omrs/metadatahighway/OMRSCohortManager.java | 21 +- .../OMRSMetadataHighwayManager.java | 37 +- .../cohortregistry/OMRSCohortRegistry.java | 70 +- .../store/OMRSCohortRegistryStore.java | 4 +- .../OMRSCohortRegistryStoreConnectorBase.java | 4 + .../file/FileBasedRegistryStoreConnector.java | 54 +- .../store/properties/CohortMembership.java | 50 +- .../store/properties/MemberRegistration.java | 11 +- .../AttributeTypeDefListResponse.java | 84 + .../properties/AttributeTypeDefResponse.java | 84 + .../omrs/rest/properties/BooleanResponse.java | 81 + .../rest/properties/EntityDetailResponse.java | 82 + .../rest/properties/EntityListResponse.java | 87 + .../rest/properties/EntitySummaryResponse.java | 81 + .../rest/properties/InstanceGraphResponse.java | 84 + .../properties/OMRSRESTAPIPagedResponse.java | 130 + .../rest/properties/OMRSRESTAPIResponse.java | 172 + .../properties/RelationshipListResponse.java | 88 + .../rest/properties/RelationshipResponse.java | 83 + .../rest/properties/TypeDefGalleryResponse.java | 110 + .../rest/properties/TypeDefListResponse.java | 84 + .../omrs/rest/properties/TypeDefResponse.java | 82 + .../omrs/rest/properties/VoidResponse.java | 54 + .../OMRSRESTMetadataCollection.java | 4927 ++++- .../OMRSRESTRepositoryConnector.java | 24 +- .../rest/server/OMRSRepositoryRESTServices.java | 5142 ++++- .../topicconnectors/OMRSTopicConnector.java | 40 +- .../kafka/KafkaOMRSTopicConnector.java | 16 +- pom.xml | 2 + 212 files changed, 50378 insertions(+), 7798 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/om-fwk-ocf/pom.xml ---------------------------------------------------------------------- diff --git a/om-fwk-ocf/pom.xml b/om-fwk-ocf/pom.xml index 9da5c1a..8b1cefd 100644 --- a/om-fwk-ocf/pom.xml +++ b/om-fwk-ocf/pom.xml @@ -38,6 +38,24 @@ <dependencies> <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> http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/Connector.java ---------------------------------------------------------------------- diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/Connector.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/Connector.java index 1ae7dd6..06c4e3d 100644 --- a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/Connector.java +++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/Connector.java @@ -113,9 +113,18 @@ public abstract class Connector /** + * Indicates that the connector is completely configured and can begin processing. + * + * @throws ConnectorCheckedException - there is a problem within the connector. + */ + public abstract void start() throws ConnectorCheckedException; + + + + /** * Free up any resources held since the connector is no longer needed. * - * @throws ConnectorCheckedException - there is a problem disconnecting the connector. + * @throws ConnectorCheckedException - there is a problem within the connector. */ public abstract void disconnect() throws ConnectorCheckedException; } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/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 38ac964..28070dd 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 @@ -17,6 +17,7 @@ */ package org.apache.atlas.ocf; +import org.apache.atlas.ocf.ffdc.ConnectorCheckedException; import org.apache.atlas.ocf.ffdc.PropertyServerException; import org.apache.atlas.ocf.properties.AdditionalProperties; import org.apache.atlas.ocf.properties.ConnectedAssetProperties; @@ -48,9 +49,10 @@ import java.util.UUID; */ public abstract class ConnectorBase extends Connector { - protected String connectorInstanceId = null; - protected Connection connection = null; - protected ConnectedAssetProperties connectedAssetProperties = null; + protected String connectorInstanceId = null; + protected Connection connection = null; + protected ConnectedAssetProperties connectedAssetProperties = null; + protected boolean isActive = false; /* * Secured properties are protected properties from the connection. They are retrieved as a protected @@ -170,6 +172,40 @@ public abstract class ConnectorBase extends Connector /** + * Indicates that the connector is completely configured and can begin processing. + * + * @throws ConnectorCheckedException - there is a problem within the connector. + */ + public void start() throws ConnectorCheckedException + { + isActive = true; + } + + + /** + * Free up any resources held since the connector is no longer needed. + * + * @throws ConnectorCheckedException - there is a problem within the connector. + */ + public void disconnect() throws ConnectorCheckedException + { + isActive = false; + } + + + /** + * Return a flag indicating whether the connector is active. This means it has been started and not yet + * disconnected. + * + * @return isActive flag + */ + public boolean isActive() + { + return isActive; + } + + + /** * Provide a common implementation of hashCode for all OCF Connector objects. The UUID is unique and * is randomly assigned and so its hashCode is as good as anything to describe the hash code of the connector * object. http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/AdditionalProperties.java ---------------------------------------------------------------------- diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/AdditionalProperties.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/AdditionalProperties.java index 55b6c1c..1a3a35a 100644 --- a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/AdditionalProperties.java +++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/AdditionalProperties.java @@ -26,7 +26,7 @@ import java.util.*; */ public class AdditionalProperties extends AssetPropertyBase { - private Map<String,Object> additionalProperties = new HashMap<>(); + protected Map<String,Object> additionalProperties = new HashMap<>(); /** @@ -59,17 +59,6 @@ public class AdditionalProperties extends AssetPropertyBase /** - * Copy/clone Constructor for additional properties that are not connected to an asset. - * - * @param templateProperties - template object to copy. - */ - public AdditionalProperties(AdditionalProperties templateProperties) - { - this(null, templateProperties); - } - - - /** * Copy/clone Constructor for additional properties that are connected to an asset. * * @param parentAsset - description of the asset that these additional properties are attached to. http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/AnnotationStatus.java ---------------------------------------------------------------------- diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/AnnotationStatus.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/AnnotationStatus.java index a671594..b45ce57 100644 --- a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/AnnotationStatus.java +++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/AnnotationStatus.java @@ -17,11 +17,21 @@ */ package org.apache.atlas.ocf.properties; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; + import java.io.Serializable; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; + /** * An AnnotationStatus defines the current status for an annotation plus some default descriptive text. */ +@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown=true) public enum AnnotationStatus implements Serializable { NEW_ANNOTATION (0, "New", "Annotation has been created but not reviewed"), http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/AssetPropertyBase.java ---------------------------------------------------------------------- diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/AssetPropertyBase.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/AssetPropertyBase.java index 09ccd90..c98ea7b 100644 --- a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/AssetPropertyBase.java +++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/AssetPropertyBase.java @@ -30,7 +30,6 @@ public abstract class AssetPropertyBase extends PropertyBase * * @param parentAsset - descriptor of asset that his property relates to. */ - protected AssetPropertyBase(AssetDescriptor parentAsset) { /* http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/CommentType.java ---------------------------------------------------------------------- diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/CommentType.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/CommentType.java index 6c07145..7a79680 100644 --- a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/CommentType.java +++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/CommentType.java @@ -17,12 +17,22 @@ */ package org.apache.atlas.ocf.properties; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; + import java.io.Serializable; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; + /** * The CommentType allows comments to be used to ask and answer questions as well as make suggestions and * provide useful information to other users. */ +@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown=true) public enum CommentType implements Serializable { STANDARD_COMMENT (0, "Comment", "General comment about the asset."), http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/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 0d5cfdb..d5ae7d1 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 @@ -125,6 +125,7 @@ public class Connection extends Referenceable this.securedProperties = securedProperties; } + /** * Typical Constructor - for constructing a new, populated Connection as part of connected asset properties. * http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ConnectorType.java ---------------------------------------------------------------------- diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ConnectorType.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ConnectorType.java index 83ac515..889cefc 100644 --- a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ConnectorType.java +++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ConnectorType.java @@ -63,9 +63,9 @@ public class ConnectorType extends Referenceable /* * Attributes of a connector type */ - private String displayName = null; - private String description = null; - private String connectorProviderClassName = null; + protected String displayName = null; + protected String description = null; + protected String connectorProviderClassName = null; /** * Typical Constructor - used when Connector Type is used inside a connection object which is itself http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ElementHeader.java ---------------------------------------------------------------------- diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ElementHeader.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ElementHeader.java index ff41881..fea85c5 100644 --- a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ElementHeader.java +++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ElementHeader.java @@ -34,7 +34,7 @@ public abstract class ElementHeader extends AssetPropertyBase /* * Attached classifications */ - private Classifications classifications = null; + protected Classifications classifications = null; /** http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ElementOrigin.java ---------------------------------------------------------------------- diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ElementOrigin.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ElementOrigin.java index caf482c..dac4e6e 100644 --- a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ElementOrigin.java +++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ElementOrigin.java @@ -17,8 +17,15 @@ */ package org.apache.atlas.ocf.properties; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; + import java.io.Serializable; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; + /** * ElementOrigin defines where the metadata comes from and, hence if it can be updated. * <ul> @@ -43,7 +50,10 @@ import java.io.Serializable; * If the repository rejoins the cohort then these elements can be refreshed from the rejoining repository. * </li> * </ul> -*/ + */ +@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown=true) public enum ElementOrigin implements Serializable { LOCAL_COHORT(0, "Local to cohort", "The element is being maintained within one of the local cohort members. " + http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ElementType.java ---------------------------------------------------------------------- diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ElementType.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ElementType.java index af81ed0..efdb030 100644 --- a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ElementType.java +++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/ElementType.java @@ -25,13 +25,13 @@ package org.apache.atlas.ocf.properties; */ public class ElementType extends PropertyBase { - private String elementTypeId = null; - private String elementTypeName = null; - private String elementTypeVersion = null; - private String elementTypeDescription = null; - private String elementAccessServiceURL = null; - private ElementOrigin elementOrigin = null; - private String elementHomeMetadataCollectionId = null; + protected String elementTypeId = null; + protected String elementTypeName = null; + protected long elementTypeVersion = 0; + protected String elementTypeDescription = null; + protected String elementAccessServiceURL = null; + protected ElementOrigin elementOrigin = null; + protected String elementHomeMetadataCollectionId = null; /** @@ -47,7 +47,7 @@ public class ElementType extends PropertyBase */ public ElementType(String elementTypeId, String elementTypeName, - String elementTypeVersion, + long elementTypeVersion, String elementTypeDescription, String elementAccessServiceURL, ElementOrigin elementOrigin, @@ -64,6 +64,7 @@ public class ElementType extends PropertyBase this.elementHomeMetadataCollectionId = elementHomeMetadataCollectionId; } + /** * Copy/clone constructor * @@ -73,18 +74,22 @@ public class ElementType extends PropertyBase { super(templateType); - /* - * Copy the properties from the supplied template - */ - this.elementTypeId = templateType.getElementTypeId(); - this.elementTypeName = templateType.getElementTypeName(); - this.elementTypeVersion = templateType.getElementTypeVersion(); - this.elementTypeDescription = templateType.getElementTypeDescription(); - this.elementAccessServiceURL = templateType.getElementAccessServiceURL(); - this.elementOrigin = templateType.getElementOrigin(); - this.elementHomeMetadataCollectionId = templateType.getElementHomeMetadataCollectionId(); + if (templateType != null) + { + /* + * Copy the properties from the supplied template + */ + this.elementTypeId = templateType.getElementTypeId(); + this.elementTypeName = templateType.getElementTypeName(); + this.elementTypeVersion = templateType.getElementTypeVersion(); + this.elementTypeDescription = templateType.getElementTypeDescription(); + this.elementAccessServiceURL = templateType.getElementAccessServiceURL(); + this.elementOrigin = templateType.getElementOrigin(); + this.elementHomeMetadataCollectionId = templateType.getElementHomeMetadataCollectionId(); + } } + /** * Return unique identifier for the element's type. * @@ -108,20 +113,20 @@ public class ElementType extends PropertyBase /** - * Return the version number for the element type. + * Return the version number for this element's type. * * @return elementTypeVersion - version number for the element type. */ - public String getElementTypeVersion() + public long getElementTypeVersion() { return elementTypeVersion; } /** - * Return the description for the element type. + * Return the description for this element's type. * - * @return elementTypeDescription - description for the element type + * @return elementTypeDescription - String description for the element type */ public String getElementTypeDescription() { @@ -172,7 +177,7 @@ public class ElementType extends PropertyBase return "ElementType{" + "elementTypeId='" + elementTypeId + '\'' + ", elementTypeName='" + elementTypeName + '\'' + - ", elementTypeVersion='" + elementTypeVersion + '\'' + + ", elementTypeVersion=" + elementTypeVersion + ", elementTypeDescription='" + elementTypeDescription + '\'' + ", elementAccessServiceURL='" + elementAccessServiceURL + '\'' + ", elementOrigin=" + elementOrigin + http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Endpoint.java ---------------------------------------------------------------------- diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Endpoint.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Endpoint.java index 57c04c6..b83f22a 100644 --- a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Endpoint.java +++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Endpoint.java @@ -72,11 +72,11 @@ public class Endpoint extends Referenceable /* * Properties of an Endpoint */ - private String displayName = null; - private String description = null; - private String address = null; - private String protocol = null; - private String encryptionMethod = null; + protected String displayName = null; + protected String description = null; + protected String address = null; + protected String protocol = null; + protected String encryptionMethod = null; /** * Admin Constructor - used when Endpoint is inside a Connection that is not part of the connected asset @@ -164,6 +164,7 @@ public class Endpoint extends Referenceable this.encryptionMethod = encryptionMethod; } + /** * Copy/clone constructor for an Endpoint not connected to an asset. * @@ -174,6 +175,7 @@ public class Endpoint extends Referenceable this(null, templateEndpoint); } + /** * Copy/clone constructor for an Endpoint that is connected to an Asset (either directly or indirectly). * http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/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 7cfd30c..3d035d5 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 @@ -17,12 +17,22 @@ */ package org.apache.atlas.ocf.properties; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; + import java.io.Serializable; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; + /** * A KeyPattern defines the type of External Identifier in use for an asset, or the type of Primary Key used within an * asset. */ +@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown=true) public enum KeyPattern implements Serializable { LOCAL_KEY (0, "Local Key", "Unique key allocated and used within the scope of a single system."), http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Meaning.java ---------------------------------------------------------------------- diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Meaning.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Meaning.java index 30de01a..078b44c 100644 --- a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Meaning.java +++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/Meaning.java @@ -22,13 +22,13 @@ package org.apache.atlas.ocf.properties; * Meaning is a cut-down summary of a glossary term to aid the asset consumer in understanding the content * of an asset. */ -public class Meaning extends Referenceable +public class Meaning extends ElementHeader { /* * Attributes of a meaning object definition */ - private String name = null; - private String description = null; + protected String name = null; + protected String description = null; /** @@ -39,9 +39,6 @@ public class Meaning extends Referenceable * @param guid - String - unique id * @param url - String - URL * @param classifications - enumeration of classifications - * @param qualifiedName - unique name - * @param additionalProperties - additional properties for the referenceable object - * @param meanings - list of glossary terms (summary) attached to this glossary term - often additional context * @param name - name of the glossary term * @param description - description of the glossary term. */ @@ -50,13 +47,10 @@ public class Meaning extends Referenceable String guid, String url, Classifications classifications, - String qualifiedName, - AdditionalProperties additionalProperties, - Meanings meanings, String name, String description) { - super(parentAsset, type, guid, url, classifications, qualifiedName, additionalProperties, meanings); + super(parentAsset, type, guid, url, classifications); this.name = name; this.description = description; @@ -120,12 +114,10 @@ public class Meaning extends Referenceable return "Meaning{" + "name='" + name + '\'' + ", description='" + description + '\'' + - ", qualifiedName='" + qualifiedName + '\'' + - ", additionalProperties=" + additionalProperties + - ", meanings=" + meanings + ", type=" + type + ", guid='" + guid + '\'' + ", url='" + url + '\'' + + ", classifications=" + classifications + '}'; } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/RelatedMediaType.java ---------------------------------------------------------------------- diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/RelatedMediaType.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/RelatedMediaType.java index 0b71d46..7140ff0 100644 --- a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/RelatedMediaType.java +++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/RelatedMediaType.java @@ -17,8 +17,15 @@ */ package org.apache.atlas.ocf.properties; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; + import java.io.Serializable; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; + /** * The RelatedMediaType defines the type of resource referenced in a related media reference. * <ul> @@ -29,6 +36,9 @@ import java.io.Serializable; * <li>Other - The media type is not supported.</li> * </ul> */ +@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown=true) public enum RelatedMediaType implements Serializable { IMAGE(0, "Image", "The media is an image."), http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/RelatedMediaUsage.java ---------------------------------------------------------------------- diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/RelatedMediaUsage.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/RelatedMediaUsage.java index b106e16..29c6e79 100644 --- a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/RelatedMediaUsage.java +++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/RelatedMediaUsage.java @@ -17,12 +17,22 @@ */ package org.apache.atlas.ocf.properties; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; + import java.io.Serializable; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; + /** * The RelatedMediaUsage defines how a related media reference can be used in conjunction with the asset properties. * These usage options are not mutually exclusive. */ +@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown=true) public enum RelatedMediaUsage implements Serializable { ICON (0, "Icon", "Provides a small image to represent the asset in tree views and graphs."), http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/SchemaType.java ---------------------------------------------------------------------- diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/SchemaType.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/SchemaType.java index 8b11a44..5faf10d 100644 --- a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/SchemaType.java +++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/SchemaType.java @@ -17,10 +17,22 @@ */ package org.apache.atlas.ocf.properties; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; + +import java.io.Serializable; + +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; + /** * SchemaType describes the type of schema element. */ -public enum SchemaType +@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown=true) +public enum SchemaType implements Serializable { UNKNOWN (0, "<Unknown>", "The schema type is unknown."), STRUCT (1, "Struct" , "The schema type is a structure containing a list of properties of potentially different types."), @@ -31,6 +43,7 @@ public enum SchemaType private String schemaTypeName; private String schemaTypeDescription; + private static final long serialVersionUID = 1L; /** * Constructor to set up the instance of this enum. http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/StarRating.java ---------------------------------------------------------------------- diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/StarRating.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/StarRating.java index 68ba781..26017d4 100644 --- a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/StarRating.java +++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/StarRating.java @@ -17,12 +17,22 @@ */ package org.apache.atlas.ocf.properties; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; + import java.io.Serializable; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; + /** * A StarRating defines the rating that a user has placed against an asset. This ranges from not recommended * through to five stars (excellent). */ +@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown=true) public enum StarRating implements Serializable { NOT_RECOMMENDED (0, "X", "Not recommended"), http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/beans/AdditionalProperties.java ---------------------------------------------------------------------- diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/beans/AdditionalProperties.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/beans/AdditionalProperties.java new file mode 100644 index 0000000..c6ce0ff --- /dev/null +++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/beans/AdditionalProperties.java @@ -0,0 +1,67 @@ +/* + * 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.ocf.properties.beans; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; + +import java.util.Map; + +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; + +/** + * The AdditionalProperties bean extends the AdditionalProperties from the properties package with a default constructor and + * setter methods. This means it can be used for REST calls and other JSON based functions. + */ +@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown=true) +public class AdditionalProperties extends org.apache.atlas.ocf.properties.AdditionalProperties +{ + /** + * Default constructor + */ + public AdditionalProperties() + { + super(null); + } + + + /** + * Set up the additional properties. + * + * @param additionalProperties + */ + public void setAdditionalProperties(Map<String, Object> additionalProperties) + { + super.additionalProperties = additionalProperties; + } + + + /** + * Copy/clone Constructor for additional properties that are connected to an asset. + * + * @param templateProperties - template object to copy. + */ + public AdditionalProperties(AdditionalProperties templateProperties) + { + super(null, templateProperties); + } +} http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/beans/Connection.java ---------------------------------------------------------------------- diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/beans/Connection.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/beans/Connection.java new file mode 100644 index 0000000..e1554bd --- /dev/null +++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/beans/Connection.java @@ -0,0 +1,181 @@ +/* + * 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.ocf.properties.beans; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; + +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; + +/** + * The Connection bean extends the Connection from the properties package with a default constructor and + * setter methods. This means it can be used for REST calls and other JSON based functions. + */ +@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown=true) +public class Connection extends org.apache.atlas.ocf.properties.Connection +{ + /** + * Default constructor sets the Connection properties to null. + */ + public Connection() + { + super(null); + } + + + /** + * Copy/clone Constructor to return a copy of a connection object that is not connected to an asset. + * + * @param templateConnection - Connection to copy + */ + public Connection(Connection templateConnection) + { + /* + * Set parentAsset to null + */ + super(templateConnection); + } + + + /** + * Copy/clone Constructor to return a copy of a connection object that is not connected to an asset. + * + * @param templateConnection - Connection to copy + */ + public Connection(org.apache.atlas.ocf.properties.Connection templateConnection) + { + /* + * Set parentAsset to null + */ + super(templateConnection); + } + + + /** + * Set up the type of this element. + * + * @param type - element type proprerties + */ + public void setType(ElementType type) + { + super.type = type; + } + + + /** + * Set up the guid for the element. + * + * @param guid - String unique identifier + */ + public void setGUID(String guid) + { + super.guid = guid; + } + + + /** + * Set up the URL of this element. + * + * @param url - String + */ + public void setURL(String url) + { + super.url = url; + } + + + /** + * Set up the fully qualified name. + * + * @param qualifiedName - String name + */ + public void setQualifiedName(String qualifiedName) + { + super.qualifiedName = qualifiedName; + } + + + /** + * Set up additional properties. + * + * @param additionalProperties - Additional properties object + */ + public void setAdditionalProperties(AdditionalProperties additionalProperties) + { + super.additionalProperties = additionalProperties; + } + + + /** + * Set up the display name for UIs and reports. + * + * @param displayName - String name + */ + public void setDisplayName(String displayName) + { + super.displayName = displayName; + } + + + /** + * Set up description of the element. + * + * @param description - String + */ + public void setDescription(String description) + { + super.description = description; + } + + + /** + * Set up the connector type properties for this Connection. + * + * @param connectorType - ConnectorType properties object + */ + public void setConnectorType(ConnectorType connectorType) + { + super.connectorType = connectorType; + } + + + /** + * Set up the endpoint properties for this Connection. + * + * @param endpoint - Endpoint properties object + */ + public void setEndpoint(Endpoint endpoint) + { + super.endpoint = endpoint; + } + + + /** + * Set up the secured properties for this Connection. + * + * @param securedProperties + */ + public void setSecuredProperties(AdditionalProperties securedProperties) + { + super.securedProperties = securedProperties; + } +} http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/beans/ConnectorType.java ---------------------------------------------------------------------- diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/beans/ConnectorType.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/beans/ConnectorType.java new file mode 100644 index 0000000..7e16440 --- /dev/null +++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/beans/ConnectorType.java @@ -0,0 +1,143 @@ +/* + * 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.ocf.properties.beans; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; + +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; + +/** + * The Connection bean extends the Connection from the properties package with a default constructor and + * setter methods. This means it can be used for REST calls and other JSON based functions. + */ +@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown=true) +public class ConnectorType extends org.apache.atlas.ocf.properties.ConnectorType +{ + /** + * Default constructor + */ + public ConnectorType() + { + super(null); + } + + + /** + * Copy/clone constructor for a connectorType that is not connected to an asset (either directly or indirectly). + * + * @param templateConnectorType - template object to copy. + */ + public ConnectorType(ConnectorType templateConnectorType) + { + super(templateConnectorType); + } + + + /** + * Set up the type of this element. + * + * @param type - element type proprerties + */ + public void setType(ElementType type) + { + super.type = type; + } + + + /** + * Set up the guid for the element. + * + * @param guid - String unique identifier + */ + public void setGUID(String guid) + { + super.guid = guid; + } + + + /** + * Set up the URL of this element. + * + * @param url - String + */ + public void setURL(String url) + { + super.url = url; + } + + + /** + * Set up the fully qualified name. + * + * @param qualifiedName - String name + */ + public void setQualifiedName(String qualifiedName) + { + super.qualifiedName = qualifiedName; + } + + + /** + * Set up additional properties. + * + * @param additionalProperties - Additional properties object + */ + public void setAdditionalProperties(AdditionalProperties additionalProperties) + { + super.additionalProperties = additionalProperties; + } + + + /** + * Set up the display name for UIs and reports. + * + * @param displayName - String name + */ + public void setDisplayName(String displayName) + { + super.displayName = displayName; + } + + + /** + * Set up description of the element. + * + * @param description - String + */ + public void setDescription(String description) + { + super.description = description; + } + + + /** + * The name of the connector provider class name. + * + * @param connectorProviderClassName - String class name + */ + public void setConnectorProviderClassName(String connectorProviderClassName) + { + super.connectorProviderClassName = connectorProviderClassName; + } + +} http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/beans/ElementType.java ---------------------------------------------------------------------- diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/beans/ElementType.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/beans/ElementType.java new file mode 100644 index 0000000..10bb8f9 --- /dev/null +++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/beans/ElementType.java @@ -0,0 +1,133 @@ +/* + * 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.ocf.properties.beans; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import org.apache.atlas.ocf.properties.ElementOrigin; + +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; + +/** + * The ElementType bean extends the ElementType from the properties package with a default constructor and + * setter methods. This means it can be used for REST calls and other JSON based functions. + */ +@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown=true) +public class ElementType extends org.apache.atlas.ocf.properties.ElementType +{ + /** + * Default constructor + */ + public ElementType() + { + super(null); + } + + + /** + * Copy/clone constructor + * + * @param templateType - type to clone + */ + public ElementType(ElementType templateType) + { + super(templateType); + } + + + /** + * Set up the unique identifier for the element's type. + * + * @param elementTypeId - String identifier + */ + public void setElementTypeId(String elementTypeId) + { + super.elementTypeId = elementTypeId; + } + + + /** + * Set up the name of this element's type + * + * @param elementTypeName - String name + */ + public void setElementTypeName(String elementTypeName) + { + super.elementTypeName = elementTypeName; + } + + + /** + * Set up the version number for this element's type + * + * @param elementTypeVersion - version number for the element type. + */ + public void setElementTypeVersion(long elementTypeVersion) + { + super.elementTypeVersion = elementTypeVersion; + } + + + /** + * + * @param elementTypeDescription - set up the description for this element's type + */ + public void setElementTypeDescription(String elementTypeDescription) + { + super.elementTypeDescription = elementTypeDescription; + } + + + /** + * the URL of the server where the element was retrieved from. Typically this is + * a server where the OMAS interfaces are activated. If no URL is known for the server then null is returned. + * + * @param elementAccessServiceURL - URL of the server + */ + public void setElementAccessServiceURL(String elementAccessServiceURL) + { + super.elementAccessServiceURL = elementAccessServiceURL; + } + + + /** + * Set up the details of this element's origin. + * + * @param elementOrigin - see ElementOrigin enum + */ + public void setElementOrigin(ElementOrigin elementOrigin) + { + super.elementOrigin = elementOrigin; + } + + + /** + * Set up the OMRS identifier for the metadata collection that is managed by the repository + * where the element originates (its home repository). + * + * @param elementHomeMetadataCollectionId - String unique identifier for the home metadata repository + */ + public void setElementHomeMetadataCollectionId(String elementHomeMetadataCollectionId) + { + super.elementHomeMetadataCollectionId = elementHomeMetadataCollectionId; + } +} http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/beans/Endpoint.java ---------------------------------------------------------------------- diff --git a/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/beans/Endpoint.java b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/beans/Endpoint.java new file mode 100644 index 0000000..f86c01c --- /dev/null +++ b/om-fwk-ocf/src/main/java/org/apache/atlas/ocf/properties/beans/Endpoint.java @@ -0,0 +1,164 @@ +/* + * 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.ocf.properties.beans; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; + +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; + +/** + * The Endpoint bean extends the Endpoint from the properties package with a default constructor and + * setter methods. This means it can be used for REST calls and other JSON based functions. + */ +@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown=true) +public class Endpoint extends org.apache.atlas.ocf.properties.Endpoint +{ + /** + * Default constructor + */ + public Endpoint() + { + super(null); + } + + + /** + * Copy/clone constructor for an Endpoint not connected to an asset. + * + * @param templateEndpoint - template object to copy. + */ + public Endpoint(Endpoint templateEndpoint) + { + super(templateEndpoint); + } + + + /** + * Set up the type of this element. + * + * @param type - element type proprerties + */ + public void setType(ElementType type) + { + super.type = type; + } + + + /** + * Set up the guid for the element. + * + * @param guid - String unique identifier + */ + public void setGUID(String guid) + { + super.guid = guid; + } + + + /** + * Set up the URL of this element. + * + * @param url - String + */ + public void setURL(String url) + { + super.url = url; + } + + + /** + * Set up the fully qualified name. + * + * @param qualifiedName - String name + */ + public void setQualifiedName(String qualifiedName) + { + super.qualifiedName = qualifiedName; + } + + + /** + * Set up additional properties. + * + * @param additionalProperties - Additional properties object + */ + public void setAdditionalProperties(AdditionalProperties additionalProperties) + { + super.additionalProperties = additionalProperties; + } + + + /** + * Set up the display name for UIs and reports. + * + * @param displayName - String name + */ + public void setDisplayName(String displayName) + { + super.displayName = displayName; + } + + + /** + * Set up description of the element. + * + * @param description - String + */ + public void setDescription(String description) + { + super.description = description; + } + + + /** + * Set up the network address of the Endpoint. + * + * @param address - String resource name + */ + public void setAddress(String address) + { + super.address = address; + } + + + /** + * Set up the protocol to use for this Endpoint + * + * @param protocol - String protocol name + */ + public void setProtocol(String protocol) + { + super.protocol = protocol; + } + + + /** + * Set up the encryption method used on this Endpoint. + * + * @param encryptionMethod - String name + */ + public void setEncryptionMethod(String encryptionMethod) + { + super.encryptionMethod = encryptionMethod; + } +} http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/omag-api/pom.xml ---------------------------------------------------------------------- diff --git a/omag-api/pom.xml b/omag-api/pom.xml new file mode 100644 index 0000000..4bb6c80 --- /dev/null +++ b/omag-api/pom.xml @@ -0,0 +1,118 @@ +<?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>omag-api</artifactId> + + <name>Open Metadata and Governance (OMAG) Server APIs</name> + <description>Open Metadata and Governance (OMAG) server interfaces for managing the open metadata and governance + functions running inside a server. + </description> + + <packaging>jar</packaging> + + <dependencies> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter</artifactId> + <version>1.5.7.RELEASE</version> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + <version>1.5.7.RELEASE</version> + </dependency> + + <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> + <dependency> + <groupId>org.apache.atlas</groupId> + <artifactId>omrs</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/a1fd4068/omag-api/src/main/java/org/apache/atlas/omag/admin/LocalRepositoryMode.java ---------------------------------------------------------------------- diff --git a/omag-api/src/main/java/org/apache/atlas/omag/admin/LocalRepositoryMode.java b/omag-api/src/main/java/org/apache/atlas/omag/admin/LocalRepositoryMode.java new file mode 100644 index 0000000..ed6c2d9 --- /dev/null +++ b/omag-api/src/main/java/org/apache/atlas/omag/admin/LocalRepositoryMode.java @@ -0,0 +1,102 @@ +/* + * 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.omag.admin; + +import java.io.Serializable; + +/** + * LocalRepositoryMode defines the mode that the local repository will operate in. + */ +public enum LocalRepositoryMode implements Serializable +{ + NO_LOCAL_REPOSITORY (0, "No Local repository", "There is no local repository so all of the metadata " + + "passed through the enterprise access " + + "layer to the open metadata access services comes from " + + "peer repositories from the cohort(s) that this repository " + + "is registered with."), + IN_MEMORY_REPOSITORY (1, "In memory repository", "The local repository is an in memory repository that does" + + "not save metadata between each run of the server."), + LOCAL_GRAPH_REPOSITORY (2, "Local graph repository", "The built-in graph database is in use. Metadata can be stored " + + "and retrieved from this graph database. " + + "This metadata can be combined with metadata from " + + "peer repositories from the cohort(s) that this repository " + + "is registered with."), + REPOSITORY_PROXY (3, "Repository proxy", "The local repository is implemented by a service that is " + + "external to the local server. Metadata can be stored " + + "and retrieved from this repository. This metadata can be " + + "combined with metadata from peer repositories from the " + + "cohort(s) that this repository is registered with."); + + private static final long serialVersionUID = 1L; + + private int typeCode; + private String typeName; + private String typeDescription; + + + /** + * Default Constructor + * + * @param typeCode - ordinal for this enum + * @param typeName - symbolic name for this enum + * @param typeDescription - short description for this enum + */ + LocalRepositoryMode(int typeCode, String typeName, String typeDescription) + { + /* + * Save the values supplied + */ + this.typeCode = typeCode; + this.typeName = typeName; + this.typeDescription = typeDescription; + } + + + /** + * Return the code for this enum instance + * + * @return int - type code + */ + public int getTypeCode() + { + return typeCode; + } + + + /** + * Return the default name for this enum instance. + * + * @return String - default name + */ + public String getTypeName() + { + return typeName; + } + + + /** + * Return the default description for the type for this enum instance. + * + * @return String - default description + */ + public String getTypeDescription() + { + return typeDescription; + } +}