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;
+    }
+}

Reply via email to