http://git-wip-us.apache.org/repos/asf/atlas/blob/b0ecc36a/omrs/src/main/java/org/apache/atlas/omrs/archivemanager/OMRSArchiveHelper.java
----------------------------------------------------------------------
diff --git 
a/omrs/src/main/java/org/apache/atlas/omrs/archivemanager/OMRSArchiveHelper.java
 
b/omrs/src/main/java/org/apache/atlas/omrs/archivemanager/OMRSArchiveHelper.java
deleted file mode 100644
index 7994b08..0000000
--- 
a/omrs/src/main/java/org/apache/atlas/omrs/archivemanager/OMRSArchiveHelper.java
+++ /dev/null
@@ -1,619 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.atlas.omrs.archivemanager;
-
-import 
org.apache.atlas.omrs.metadatacollection.properties.instances.InstanceStatus;
-import org.apache.atlas.omrs.metadatacollection.properties.typedefs.*;
-
-import java.util.ArrayList;
-import java.util.Date;
-
-/**
- * OMRSArchiveHelper provides utility methods to help in the construction of 
open metadata archives.
- */
-public class OMRSArchiveHelper
-{
-    private   OMRSArchiveBuilder    archiveBuilder;
-    private   String                archiveGUID;
-    private   String                originatorName;
-    private   Date                  creationDate;
-    private   long                  versionNumber;
-    private   String                versionName;
-
-
-    /**
-     * Constructor receives information about the archive being built.
-     *
-     * @param archiveBuilder - archive builder with the archive contents in it.
-     * @param archiveGUID - unique identifier for the archive.
-     * @param originatorName - name of the person / process creating the 
archive.
-     * @param creationDate - date that the archive was first built.
-     * @param versionNumber - version number of the archive.
-     * @param versionName - version name for the archive.
-     */
-    public OMRSArchiveHelper(OMRSArchiveBuilder     archiveBuilder,
-                             String                 archiveGUID,
-                             String                 originatorName,
-                             Date                   creationDate,
-                             long                   versionNumber,
-                             String                 versionName)
-    {
-        this.archiveBuilder = archiveBuilder;
-        this.archiveGUID = archiveGUID;
-        this.originatorName = originatorName;
-        this.creationDate = creationDate;
-        this.versionNumber = versionNumber;
-        this.versionName = versionName;
-    }
-
-
-    /**
-     * Set up an individual primitive definition
-     *
-     * @param primitiveDefCategory - category of the primitive def defines the 
unique
-     *                             information about this primitive type.
-     * @return initialized PrimitiveDef object ready for the archive
-     */
-    public PrimitiveDef getPrimitiveDef(PrimitiveDefCategory 
primitiveDefCategory)
-    {
-        PrimitiveDef  primitiveDef = new PrimitiveDef(primitiveDefCategory);
-
-        primitiveDef.setGUID(primitiveDefCategory.getGUID());
-        primitiveDef.setName(primitiveDefCategory.getName());
-        primitiveDef.setVersion(versionNumber);
-        primitiveDef.setVersionName(versionName);
-
-        return primitiveDef;
-    }
-
-
-    /**
-     * Create a CollectionDef for an Array.  A new CollectionDef is required 
for each combination of primitive types
-     * used to initialize the collection.  Each CollectionDef has its own 
unique identifier (guid) and
-     * its name is a combination of the collection type and the primitives use 
to initialize it.
-     *
-     * @param guid - unique identifier for the CollectionDef
-     * @param description - short default description of the enum type
-     * @param descriptionGUID - guid of the glossary term describing this 
collection type
-     * @param arrayType - type of the array.
-     * @return Filled out CollectionDef
-     */
-    public CollectionDef getArrayCollectionDef(String                guid,
-                                               String                
description,
-                                               String                
descriptionGUID,
-                                               PrimitiveDefCategory  arrayType)
-    {
-        CollectionDef   collectionDef = new 
CollectionDef(CollectionDefCategory.OM_COLLECTION_ARRAY);
-
-        collectionDef.setGUID(guid);
-        collectionDef.setName("array<" + arrayType.getName() + ">");
-        collectionDef.setDescription(description);
-        collectionDef.setDescriptionGUID(descriptionGUID);
-
-        ArrayList<PrimitiveDefCategory> argumentList = new ArrayList<>();
-        argumentList.add(arrayType);
-        collectionDef.setArgumentTypes(argumentList);
-
-        return collectionDef;
-    }
-
-
-    /**
-     * Create a CollectionDef for a map.  A new CollectionDef is required for 
each combination of primitive types
-     * used to initialize the collection.  Each CollectionDef has its own 
unique identifier (guid) and
-     * its name is a combination of the collection type and the primitives use 
to initialize it.
-     *
-     * @param guid - unique identifier for the CollectionDef
-     * @param description - short default description of the enum type
-     * @param descriptionGUID - guid of the glossary term describing this 
collection type
-     * @param propertyKeyType - type of the key for the map.
-     * @param propertyValueType  - type of map value.
-     * @return Filled out CollectionDef
-     */
-    public CollectionDef getMapCollectionDef(String                guid,
-                                             String                description,
-                                             String                
descriptionGUID,
-                                             PrimitiveDefCategory  
propertyKeyType,
-                                             PrimitiveDefCategory  
propertyValueType)
-    {
-        CollectionDef   collectionDef = new 
CollectionDef(CollectionDefCategory.OM_COLLECTION_MAP);
-
-        collectionDef.setGUID(guid);
-        collectionDef.setName("map<" + propertyKeyType.getName() + "," + 
propertyValueType.getName() + ">");
-        collectionDef.setDescription(description);
-        collectionDef.setDescriptionGUID(descriptionGUID);
-        collectionDef.setVersion(versionNumber);
-        collectionDef.setVersionName(versionName);
-
-        ArrayList<PrimitiveDefCategory> argumentList = new ArrayList<>();
-        argumentList.add(propertyKeyType);
-        argumentList.add(propertyValueType);
-        collectionDef.setArgumentTypes(argumentList);
-
-        return collectionDef;
-    }
-
-
-    /**
-     * Create an EnumDef that has no valid values defined.  These are added by 
the caller.
-     *
-     * @param guid - unique identifier for the CollectionDef
-     * @param name - unique name for the CollectionDef
-     * @param description - short default description of the enum type
-     * @param descriptionGUID - guid of the glossary term describing this enum 
type
-     * @return basic EnumDef without valid values
-     */
-    public EnumDef getEmptyEnumDef(String                guid,
-                                   String                name,
-                                   String                description,
-                                   String                descriptionGUID)
-    {
-        EnumDef  enumDef = new EnumDef();
-
-        enumDef.setGUID(guid);
-        enumDef.setName(name);
-        enumDef.setDescription(description);
-        enumDef.setDescriptionGUID(descriptionGUID);
-        enumDef.setDefaultValue(null);
-        enumDef.setVersion(versionNumber);
-        enumDef.setVersionName(versionName);
-
-        return enumDef;
-    }
-
-
-    /**
-     * Create an EnumElementDef that carries one of the valid values for an 
Enum.
-     *
-     * @param ordinal - code number
-     * @param value - name
-     * @param description - short description
-     * @param descriptionGUID - guid of the glossary term describing this enum 
element
-     * @return Fully filled out EnumElementDef
-     */
-    public EnumElementDef  getEnumElementDef(int     ordinal,
-                                             String  value,
-                                             String  description,
-                                             String  descriptionGUID)
-    {
-        EnumElementDef   enumElementDef = new EnumElementDef();
-
-        enumElementDef.setOrdinal(ordinal);
-        enumElementDef.setValue(value);
-        enumElementDef.setDescription(description);
-        enumElementDef.setDescriptionGUID(descriptionGUID);
-
-        return enumElementDef;
-    }
-
-
-    /**
-     * Sets up a default EntityDef.  Calling methods can override the default 
values.  This EntityDef
-     * has no attribute defined.
-     *
-     * @param guid - unique identifier for the entity
-     * @param name - name of the entity
-     * @param superType - Super type for this entity (null for top-level)
-     * @param description - short description of the entity
-     * @param descriptionGUID - guid of the glossary term describing this 
entity type
-     * @return Initialized EntityDef
-     */
-    public EntityDef  getDefaultEntityDef(String                  guid,
-                                          String                  name,
-                                          TypeDefLink             superType,
-                                          String                  description,
-                                          String                  
descriptionGUID)
-    {
-        EntityDef entityDef = new EntityDef();
-
-        /*
-         * Set up the parameters supplied by the caller.
-         */
-        entityDef.setGUID(guid);
-        entityDef.setName(name);
-        entityDef.setSuperType(superType);
-        entityDef.setDescription(description);
-        entityDef.setDescriptionGUID(descriptionGUID);
-
-        /*
-         * Set up the defaults
-         */
-        entityDef.setOrigin(archiveGUID);
-        entityDef.setCreatedBy(originatorName);
-        entityDef.setCreateTime(creationDate);
-        entityDef.setVersion(versionNumber);
-        entityDef.setVersionName(versionName);
-
-        /*
-         * Set default valid instance statuses
-         */
-        ArrayList<InstanceStatus> validInstanceStatusList = new ArrayList<>();
-        validInstanceStatusList.add(InstanceStatus.ACTIVE);
-        validInstanceStatusList.add(InstanceStatus.DELETED);
-        entityDef.setValidInstanceStatusList(validInstanceStatusList);
-
-        return entityDef;
-    }
-
-
-    /**
-     * Return an attribute with the supplied name and description that is of 
type String.  It is set up to be optional,
-     * indexable (useful for searches) but the value does not need to be 
unique.
-     * These are the typical values used for most open metadata attribute.
-     * They can be changed by the caller once the TypeDefAttribute is returned.
-     *
-     * @param attributeName - name of the attribute
-     * @param attributeDescription - short description for the attribute
-     * @param attributeDescriptionGUID - guid of the glossary term that 
describes this attribute.
-     * @return  TypeDefAttribute of type string
-     */
-    public TypeDefAttribute  getStringTypeDefAttribute(String      
attributeName,
-                                                       String      
attributeDescription,
-                                                       String      
attributeDescriptionGUID)
-    {
-        TypeDefAttribute     attribute = new TypeDefAttribute();
-
-        attribute.setAttributeName(attributeName);
-        attribute.setAttributeDescription(attributeDescription);
-        attribute.setAttributeDescriptionGUID(attributeDescriptionGUID);
-        
attribute.setAttributeType(this.archiveBuilder.getPrimitiveDef(PrimitiveDefCategory.OM_PRIMITIVE_TYPE_STRING.getName()));
-        attribute.setAttributeCardinality(AttributeCardinality.AT_MOST_ONE);
-        attribute.setValuesMinCount(0);
-        attribute.setValuesMaxCount(1);
-        attribute.setIndexable(true);
-        attribute.setUnique(false);
-        attribute.setDefaultValue(null);
-        attribute.setExternalStandardMappings(null);
-
-        return attribute;
-    }
-
-
-    /**
-     * Return an attribute with the supplied name and description that is of 
type int.  It is set up to be optional,
-     * indexable (useful for searches) but the value does not need to be 
unique.
-     * These are the typical values used for most open metadata attribute.
-     * They can be changed by the caller once the TypeDefAttribute is returned.
-     *
-     * @param attributeName - name of the attribute
-     * @param attributeDescription - short description for the attribute
-     * @param attributeDescriptionGUID - guid of the glossary term that 
describes this attribute.
-     * @return  TypeDefAttribute of type string
-     */
-    public TypeDefAttribute  getIntTypeDefAttribute(String      attributeName,
-                                                    String      
attributeDescription,
-                                                    String      
attributeDescriptionGUID)
-    {
-        TypeDefAttribute     attribute = new TypeDefAttribute();
-
-        attribute.setAttributeName(attributeName);
-        attribute.setAttributeDescription(attributeDescription);
-        attribute.setAttributeDescriptionGUID(attributeDescriptionGUID);
-        
attribute.setAttributeType(this.archiveBuilder.getPrimitiveDef(PrimitiveDefCategory.OM_PRIMITIVE_TYPE_INT.getName()));
-        attribute.setAttributeCardinality(AttributeCardinality.AT_MOST_ONE);
-        attribute.setValuesMinCount(0);
-        attribute.setValuesMaxCount(1);
-        attribute.setIndexable(true);
-        attribute.setUnique(false);
-        attribute.setDefaultValue(null);
-        attribute.setExternalStandardMappings(null);
-
-        return attribute;
-    }
-
-
-    /**
-     * Return an attribute with the supplied name and description that is of 
type date.  It is set up to be optional,
-     * indexable (useful for searches) but the value does not need to be 
unique.
-     * These are the typical values used for most open metadata attribute.
-     * They can be changed by the caller once the TypeDefAttribute is returned.
-     *
-     * @param attributeName - name of the attribute
-     * @param attributeDescription - short description for the attribute
-     * @param attributeDescriptionGUID - guid of the glossary term that 
describes this attribute.
-     * @return  TypeDefAttribute of type string
-     */
-    public TypeDefAttribute  getDateTypeDefAttribute(String      attributeName,
-                                                     String      
attributeDescription,
-                                                     String      
attributeDescriptionGUID)
-    {
-        TypeDefAttribute     attribute = new TypeDefAttribute();
-
-        attribute.setAttributeName(attributeName);
-        attribute.setAttributeDescription(attributeDescription);
-        attribute.setAttributeDescriptionGUID(attributeDescriptionGUID);
-        
attribute.setAttributeType(this.archiveBuilder.getPrimitiveDef(PrimitiveDefCategory.OM_PRIMITIVE_TYPE_DATE.getName()));
-        attribute.setAttributeCardinality(AttributeCardinality.AT_MOST_ONE);
-        attribute.setValuesMinCount(0);
-        attribute.setValuesMaxCount(1);
-        attribute.setIndexable(true);
-        attribute.setUnique(false);
-        attribute.setDefaultValue(null);
-        attribute.setExternalStandardMappings(null);
-
-        return attribute;
-    }
-
-
-    /**
-     * Return an attribute with the supplied name and description that is an 
array of strings.
-     * It is set up to be optional,
-     * indexable (useful for searches) but the value does not need to be 
unique.
-     * These are the typical values used for most open metadata attribute.
-     * They can be changed by the caller once the TypeDefAttribute is returned.
-     *
-     * @param attributeName - name of the attribute
-     * @param attributeDescription - short description for the attribute
-     * @param attributeDescriptionGUID - guid of the glossary term that 
describes this attribute.
-     * @return  TypeDefAttribute of type string
-     */
-    public TypeDefAttribute  getArrayStringTypeDefAttribute(String      
attributeName,
-                                                            String      
attributeDescription,
-                                                            String      
attributeDescriptionGUID)
-    {
-        TypeDefAttribute     attribute = new TypeDefAttribute();
-
-        attribute.setAttributeName(attributeName);
-        attribute.setAttributeDescription(attributeDescription);
-        attribute.setAttributeDescriptionGUID(attributeDescriptionGUID);
-        
attribute.setAttributeType(this.archiveBuilder.getCollectionDef("array<string>"));
-        attribute.setAttributeCardinality(AttributeCardinality.AT_MOST_ONE);
-        attribute.setValuesMinCount(0);
-        attribute.setValuesMaxCount(1);
-        attribute.setIndexable(true);
-        attribute.setUnique(false);
-        attribute.setDefaultValue(null);
-        attribute.setExternalStandardMappings(null);
-
-        return attribute;
-    }
-
-
-    /**
-     * Return an attribute with the supplied name and description that is of a 
map from string to string.
-     * It is set up to be optional,
-     * indexable (useful for searches) but the value does not need to be 
unique.
-     * These are the typical values used for most open metadata attribute.
-     * They can be changed by the caller once the TypeDefAttribute is returned.
-     *
-     * @param attributeName - name of the attribute
-     * @param attributeDescription - short description for the attribute
-     * @param attributeDescriptionGUID - guid of the glossary term that 
describes this attribute.
-     * @return  TypeDefAttribute of type string
-     */
-    public TypeDefAttribute  getMapStringStringTypeDefAttribute(String      
attributeName,
-                                                                String      
attributeDescription,
-                                                                String      
attributeDescriptionGUID)
-    {
-        TypeDefAttribute     attribute = new TypeDefAttribute();
-
-        attribute.setAttributeName(attributeName);
-        attribute.setAttributeDescription(attributeDescription);
-        attribute.setAttributeDescriptionGUID(attributeDescriptionGUID);
-        
attribute.setAttributeType(this.archiveBuilder.getCollectionDef("map<string,string>"));
-        attribute.setAttributeCardinality(AttributeCardinality.AT_MOST_ONE);
-        attribute.setValuesMinCount(0);
-        attribute.setValuesMaxCount(1);
-        attribute.setIndexable(true);
-        attribute.setUnique(false);
-        attribute.setDefaultValue(null);
-        attribute.setExternalStandardMappings(null);
-
-        return attribute;
-    }
-
-
-    /**
-     * Return an attribute with the supplied name, type and description.  It 
is set up to be optional,
-     * indexable (useful for searches) but the value does not need to be 
unique.
-     * These are the typical values used for most open metadata attribute.
-     * They can be changed by the caller once the TypeDefAttribute is returned.
-     *
-     * @param enumTypeName - name of the enum type for this attribute
-     * @param attributeName - name of the attribute
-     * @param attributeDescription - short description for the attribute
-     * @param attributeDescriptionGUID - guid of the glossary term that 
describes this attribute.
-     * @return  TypeDefAttribute of type string
-     */
-    public TypeDefAttribute  getEnumTypeDefAttribute(String     enumTypeName,
-                                                     String     attributeName,
-                                                     String     
attributeDescription,
-                                                     String     
attributeDescriptionGUID)
-    {
-        TypeDefAttribute     attribute = new TypeDefAttribute();
-
-        attribute.setAttributeName(attributeName);
-        attribute.setAttributeDescription(attributeDescription);
-        attribute.setAttributeDescriptionGUID(attributeDescriptionGUID);
-        
attribute.setAttributeType(this.archiveBuilder.getEnumDef(enumTypeName));
-        attribute.setAttributeCardinality(AttributeCardinality.AT_MOST_ONE);
-        attribute.setValuesMinCount(0);
-        attribute.setValuesMaxCount(1);
-        attribute.setIndexable(true);
-        attribute.setUnique(false);
-        attribute.setDefaultValue(null);
-        attribute.setExternalStandardMappings(null);
-
-        return attribute;
-    }
-
-
-    /**
-     * Returns a basic RelationshipDef without any attributes or ends set up.
-     * The caller is responsible for adding the attributes and ends definition.
-     *
-     * @param guid - unique identifier for the relationship
-     * @param name - name of the relationship
-     * @param superType - Super type for this relationship (null for top-level)
-     * @param description - short default description of the relationship
-     * @param descriptionGUID - guid of the glossary term that describes this 
relationship
-     * @param relationshipCategory - is this an association, aggregation or 
composition?
-     * @param propagationRule - should classifications propagate over this 
relationship?
-     * @return RelationshipDef with no ends defined.
-     */
-    public RelationshipDef getBasicRelationshipDef(String                      
  guid,
-                                                   String                      
  name,
-                                                   TypeDefLink                 
  superType,
-                                                   String                      
  description,
-                                                   String                      
  descriptionGUID,
-                                                   RelationshipCategory        
  relationshipCategory,
-                                                   
ClassificationPropagationRule propagationRule)
-    {
-        RelationshipDef relationshipDef = new RelationshipDef();
-
-        /*
-         * Set up the parameters supplied by the caller.
-         */
-        relationshipDef.setGUID(guid);
-        relationshipDef.setName(name);
-        relationshipDef.setSuperType(superType);
-        relationshipDef.setDescription(description);
-        relationshipDef.setDescriptionGUID(descriptionGUID);
-
-        /*
-         * Set up the defaults
-         */
-        relationshipDef.setOrigin(archiveGUID);
-        relationshipDef.setCreatedBy(originatorName);
-        relationshipDef.setCreateTime(creationDate);
-        relationshipDef.setVersion(versionNumber);
-        relationshipDef.setVersionName(versionName);
-
-        /*
-         * Set default valid instance statuses
-         */
-        ArrayList<InstanceStatus>    validInstanceStatusList  = new 
ArrayList<>();
-        validInstanceStatusList.add(InstanceStatus.ACTIVE);
-        validInstanceStatusList.add(InstanceStatus.DELETED);
-        relationshipDef.setValidInstanceStatusList(validInstanceStatusList);
-
-        /*
-         * Set up the category of relationship
-         */
-        relationshipDef.setRelationshipCategory(relationshipCategory);
-
-        if ((relationshipCategory == RelationshipCategory.AGGREGATION) ||
-                (relationshipCategory == RelationshipCategory.COMPOSITION))
-        {
-            /*
-             * By convention, end 1 is the container end in the open metadata 
model.
-             */
-            
relationshipDef.setRelationshipContainerEnd(RelationshipContainerEnd.END1);
-        }
-        else
-        {
-            
relationshipDef.setRelationshipContainerEnd(RelationshipContainerEnd.NOT_APPLICABLE);
-        }
-
-        /*
-         * Use the supplied propagation rule.
-         */
-        relationshipDef.setPropagationRule(propagationRule);
-
-        return relationshipDef;
-    }
-
-
-    /**
-     * Returns a RelationshipEndDef object that sets up details of an entity 
at one end of a relationship.
-     *
-     * @param entityType - details of the type of entity connected to this end.
-     * @param attributeName - name of the attribute that the entity at the 
other end uses to refer to this entity.
-     * @param attributeDescription - description of this attribute
-     * @param attributeDescriptionGUID - unique identifier of the glossary 
term describing this attribute.
-     * @param attributeCardinality - cardinality of this end of the 
relationship.
-     * @return the definition of one end of a Relationship.
-     */
-    public RelationshipEndDef  getRelationshipEndDef(TypeDefLink          
entityType,
-                                                     String               
attributeName,
-                                                     String               
attributeDescription,
-                                                     String               
attributeDescriptionGUID,
-                                                     AttributeCardinality 
attributeCardinality)
-    {
-        RelationshipEndDef  relationshipEndDef = new RelationshipEndDef();
-
-        relationshipEndDef.setEntityType(entityType);
-        relationshipEndDef.setAttributeName(attributeName);
-        relationshipEndDef.setAttributeDescription(attributeDescription);
-        
relationshipEndDef.setAttributeDescriptionGUID(attributeDescriptionGUID);
-        relationshipEndDef.setAttributeCardinality(attributeCardinality);
-
-        return relationshipEndDef;
-    }
-
-
-    /**
-     * Returns a basic ClassificationDef without any attributes.   The caller 
is responsible for adding the
-     * attribute definitions.
-     *
-     * @param guid - unique identifier for the classification
-     * @param name - name of the classification
-     * @param superType - Super type for this classification (null for 
top-level)
-     * @param description - short description of the classification
-     * @param descriptionGUID - unique identifier of the glossary term that 
describes this classification.
-     * @param validEntityDef - which entities can this classification be 
linked to.
-     * @param propagatable - can the classification propagate over 
relationships?
-     * @return ClassificationDef with no attributes defined.
-     */
-    public ClassificationDef getClassificationDef(String                       
 guid,
-                                                  String                       
 name,
-                                                  TypeDefLink                  
 superType,
-                                                  String                       
 description,
-                                                  String                       
 descriptionGUID,
-                                                  TypeDefLink                  
 validEntityDef,
-                                                  boolean                      
 propagatable)
-    {
-        ClassificationDef classificationDef = new ClassificationDef();
-
-        /*
-         * Set up the parameters supplied by the caller.
-         */
-        classificationDef.setGUID(guid);
-        classificationDef.setName(name);
-        classificationDef.setSuperType(superType);
-        classificationDef.setDescription(description);
-        classificationDef.setDescriptionGUID(descriptionGUID);
-
-        /*
-         * Set up the defaults
-         */
-        classificationDef.setOrigin(archiveGUID);
-        classificationDef.setCreatedBy(originatorName);
-        classificationDef.setCreateTime(creationDate);
-        classificationDef.setVersion(versionNumber);
-        classificationDef.setVersionName(versionName);
-
-        /*
-         * Set default valid instance statuses
-         */
-        ArrayList<InstanceStatus>    validInstanceStatusList  = new 
ArrayList<>();
-        validInstanceStatusList.add(InstanceStatus.ACTIVE);
-        validInstanceStatusList.add(InstanceStatus.DELETED);
-        classificationDef.setValidInstanceStatusList(validInstanceStatusList);
-
-        /*
-         * Set up the supplied validEntityTypes and propagatable flag.
-         */
-        ArrayList<TypeDefLink>   validEntityDefs = new ArrayList<>();
-        validEntityDefs.add(validEntityDef);
-        classificationDef.setValidEntityDefs(validEntityDefs);
-        classificationDef.setPropagatable(propagatable);
-
-        return classificationDef;
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/b0ecc36a/omrs/src/main/java/org/apache/atlas/omrs/archivemanager/OMRSArchiveManager.java
----------------------------------------------------------------------
diff --git 
a/omrs/src/main/java/org/apache/atlas/omrs/archivemanager/OMRSArchiveManager.java
 
b/omrs/src/main/java/org/apache/atlas/omrs/archivemanager/OMRSArchiveManager.java
deleted file mode 100644
index c640928..0000000
--- 
a/omrs/src/main/java/org/apache/atlas/omrs/archivemanager/OMRSArchiveManager.java
+++ /dev/null
@@ -1,433 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.atlas.omrs.archivemanager;
-
-import org.apache.atlas.omrs.archivemanager.opentypes.OpenMetadataTypesArchive;
-import org.apache.atlas.omrs.archivemanager.properties.OpenMetadataArchive;
-import 
org.apache.atlas.omrs.archivemanager.properties.OpenMetadataArchiveInstanceStore;
-import 
org.apache.atlas.omrs.archivemanager.properties.OpenMetadataArchiveProperties;
-import 
org.apache.atlas.omrs.archivemanager.properties.OpenMetadataArchiveTypeStore;
-import 
org.apache.atlas.omrs.archivemanager.store.OpenMetadataArchiveStoreConnector;
-import org.apache.atlas.omrs.auditlog.OMRSAuditCode;
-import org.apache.atlas.omrs.auditlog.OMRSAuditLog;
-import org.apache.atlas.omrs.auditlog.OMRSAuditingComponent;
-import org.apache.atlas.omrs.eventmanagement.events.OMRSInstanceEventProcessor;
-import org.apache.atlas.omrs.eventmanagement.events.OMRSTypeDefEventProcessor;
-import 
org.apache.atlas.omrs.localrepository.repositorycontentmanager.OMRSRepositoryContentManager;
-import 
org.apache.atlas.omrs.metadatacollection.properties.instances.EntityDetail;
-import 
org.apache.atlas.omrs.metadatacollection.properties.instances.Relationship;
-import 
org.apache.atlas.omrs.metadatacollection.properties.typedefs.AttributeTypeDef;
-import org.apache.atlas.omrs.metadatacollection.properties.typedefs.TypeDef;
-import 
org.apache.atlas.omrs.metadatacollection.properties.typedefs.TypeDefPatch;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * OMRSArchiveManager manages the loading and unloading of open metadata 
archives from the local OMRS repository.
- * An open metadata archive provides pre-built definitions for types and 
metadata instances.
- */
-public class OMRSArchiveManager
-{
-    private List<OpenMetadataArchiveStoreConnector>      
openMetadataArchiveStores   = new ArrayList<>();
-    private OMRSRepositoryContentManager                 
repositoryContentManager    = null;
-    private OMRSInstanceEventProcessor                   
localInstanceEventProcessor = null;
-
-
-    /*
-     * The audit log provides a verifiable record of the open metadata 
archives that have been loaded into
-     * the open metadata repository.  The Logger is for standard debug.
-     */
-    private static final OMRSAuditLog auditLog = new 
OMRSAuditLog(OMRSAuditingComponent.ARCHIVE_MANAGER);
-
-    /**
-     * Constructor to save the initial list of open metadata archives from the 
server startup configuration.
-     * These will be processed as soon as the event processors are supplied 
from the local repository.
-     *
-     * @param startUpOpenMetadataArchives - initial list of open metadata 
archives provided in startup configuration
-     */
-    public OMRSArchiveManager(List<OpenMetadataArchiveStoreConnector>    
startUpOpenMetadataArchives)
-    {
-        if (startUpOpenMetadataArchives != null)
-        {
-            this.openMetadataArchiveStores = new 
ArrayList<>(startUpOpenMetadataArchives);
-        }
-    }
-
-
-    /**
-     * Close down any open archives.
-     */
-    public void close()
-    {
-        for (OpenMetadataArchiveStoreConnector archiveStore : 
openMetadataArchiveStores)
-        {
-            if (archiveStore != null)
-            {
-                try
-                {
-                    archiveStore.disconnect();
-                }
-                catch (Throwable error)
-                {
-                    /*
-                     * nothing to do
-                     */
-                }
-            }
-        }
-    }
-
-
-    /**
-     * The local repository is accessed through its inbound event processors.  
A server will always have
-     * the local Content Manager and TypeDef Processor but the local Instance 
Processor is only available
-     * if the local server has a metadata repository defined.
-     *
-     * @param repositoryContentManager - typeDef processor for the local 
repository
-     * @param instanceProcessor - instance processor for the local repository
-     */
-    public void setLocalRepository(OMRSRepositoryContentManager 
repositoryContentManager,
-                                   OMRSInstanceEventProcessor   
instanceProcessor)
-    {
-        this.repositoryContentManager = repositoryContentManager;
-        this.localInstanceEventProcessor = instanceProcessor;
-
-        /*
-         * The repository content manager is seeded with all of the open 
metadata types.
-         */
-        processOpenMetadataTypes();
-
-        /*
-         * Once the open metadata types are in place, the archive stores are 
processed.
-         */
-        for (OpenMetadataArchiveStoreConnector archiveStore : 
this.openMetadataArchiveStores)
-        {
-            processOpenMetadataArchiveStore(archiveStore, 
repositoryContentManager, instanceProcessor);
-        }
-    }
-
-
-    /**
-     * Add a new archive to the local repository. If there are problems 
processing the archive, an exception is thrown.
-     * This method allows archives to be loaded into a running server.
-     *
-     * @param archiveStore - new open metadata archive to process
-     */
-    public void addOpenMetadataArchive(OpenMetadataArchiveStoreConnector     
archiveStore)
-    {
-        this.processOpenMetadataArchiveStore(archiveStore, 
repositoryContentManager, localInstanceEventProcessor);
-        this.openMetadataArchiveStores.add(archiveStore);
-    }
-
-
-    /**
-     * Unpack and process the contents an open metadata archive store, passing 
its contents to the local
-     * repository (if it exists).
-     */
-    private void processOpenMetadataTypes()
-    {
-        OpenMetadataTypesArchive    openMetadataTypesArchive = new 
OpenMetadataTypesArchive();
-        OpenMetadataArchive         openMetadataTypes        = 
openMetadataTypesArchive.getOpenMetadataArchive();
-
-        
repositoryContentManager.setOpenMetadataTypesOriginGUID(openMetadataTypesArchive.getArchiveGUID());
-        processOpenMetadataArchive(openMetadataTypes, 
repositoryContentManager, localInstanceEventProcessor);
-    }
-
-    /**
-     * Unpack and process the contents an open metadata archive store, passing 
its contents to the local
-     * repository (if it exists).
-     *
-     * @param archiveStore - open metadata archive store to process
-     */
-    private void 
processOpenMetadataArchiveStore(OpenMetadataArchiveStoreConnector    
archiveStore,
-                                                 OMRSTypeDefEventProcessor     
       typeDefProcessor,
-                                                 OMRSInstanceEventProcessor    
       instanceProcessor)
-    {
-        if (archiveStore != null)
-        {
-            /*
-             * Each archive store has a header, a section of new type 
definitions (TypeDefs) and a section of
-             * metadata instances.
-             */
-            OpenMetadataArchive archiveContent = 
archiveStore.getArchiveContents();
-
-            if (archiveContent == null)
-            {
-                final String     actionDescription = "Process Open Metadata 
Archive";
-
-                OMRSAuditCode auditCode = OMRSAuditCode.EMPTY_ARCHIVE;
-                auditLog.logRecord(actionDescription,
-                                   auditCode.getLogMessageId(),
-                                   auditCode.getSeverity(),
-                                   auditCode.getFormattedLogMessage(),
-                                   null,
-                                   auditCode.getSystemAction(),
-                                   auditCode.getUserAction());
-            }
-            else
-            {
-                processOpenMetadataArchive(archiveContent, typeDefProcessor, 
instanceProcessor);
-            }
-        }
-    }
-
-
-    /**
-     * Step through the content of an open metadata archive, passing its 
contents to the local repository (if it
-     * exists).
-     *
-     * @param archiveContent - open metadata archive to process
-     */
-    private void processOpenMetadataArchive(OpenMetadataArchive          
archiveContent,
-                                            OMRSTypeDefEventProcessor    
typeDefProcessor,
-                                            OMRSInstanceEventProcessor   
instanceProcessor)
-    {
-        OMRSAuditCode    auditCode;
-        final String     actionDescription = "Process Open Metadata Archive";
-
-        OpenMetadataArchiveProperties    archiveProperties    = 
archiveContent.getArchiveProperties();
-
-        if (archiveProperties != null)
-        {
-            auditCode = OMRSAuditCode.PROCESSING_ARCHIVE;
-            auditLog.logRecord(actionDescription,
-                               auditCode.getLogMessageId(),
-                               auditCode.getSeverity(),
-                               
auditCode.getFormattedLogMessage(archiveProperties.getArchiveName()),
-                               null,
-                               auditCode.getSystemAction(),
-                               auditCode.getUserAction());
-
-
-            OpenMetadataArchiveTypeStore     archiveTypeStore     = 
archiveContent.getArchiveTypeStore();
-            OpenMetadataArchiveInstanceStore archiveInstanceStore = 
archiveContent.getArchiveInstanceStore();
-
-            int                              typeCount            = 0;
-            int                              instanceCount        = 0;
-
-
-            if (archiveTypeStore != null)
-            {
-                typeCount = this.processTypeDefStore(archiveProperties, 
archiveTypeStore, typeDefProcessor);
-            }
-
-            if (archiveInstanceStore != null)
-            {
-                instanceCount = this.processInstanceStore(archiveProperties, 
archiveInstanceStore, instanceProcessor);
-            }
-
-            auditCode = OMRSAuditCode.COMPLETED_ARCHIVE;
-            auditLog.logRecord(actionDescription,
-                               auditCode.getLogMessageId(),
-                               auditCode.getSeverity(),
-                               
auditCode.getFormattedLogMessage(Integer.toString(typeCount),
-                                                                
Integer.toString(instanceCount),
-                                                                
archiveProperties.getArchiveName()),
-                               null,
-                               auditCode.getSystemAction(),
-                               auditCode.getUserAction());
-        }
-        else
-        {
-            auditCode = OMRSAuditCode.NULL_PROPERTIES_IN_ARCHIVE;
-            auditLog.logRecord(actionDescription,
-                               auditCode.getLogMessageId(),
-                               auditCode.getSeverity(),
-                               auditCode.getFormattedLogMessage(),
-                               null,
-                               auditCode.getSystemAction(),
-                               auditCode.getUserAction());
-        }
-    }
-
-
-    /**
-     * The TypeStore is in two parts.  First there is an optional list of 
patches to existing TypeDefs.
-     * Then an optional list of new TypeDefs.  It is possible that this 
archive has been processed before
-     * and so any duplicates detected are ignored.  However, conflicting 
TypeDefs are detected.
-     * Any problems found in applying the archive contents are recorded on the 
audit log.
-     *
-     * @param archiveProperties - properties of the archive used for logging
-     * @param archiveTypeStore - TypeStore from the archive
-     * @return type count
-     */
-    private int  processTypeDefStore(OpenMetadataArchiveProperties    
archiveProperties,
-                                     OpenMetadataArchiveTypeStore     
archiveTypeStore,
-                                     OMRSTypeDefEventProcessor        
typeDefProcessor)
-    {
-        List<TypeDefPatch>     typeDefPatches       = 
archiveTypeStore.getTypeDefPatches();
-        List<AttributeTypeDef> newAttributeTypeDefs = 
archiveTypeStore.getAttributeTypeDefs();
-        List<TypeDef>          newTypeDefs          = 
archiveTypeStore.getNewTypeDefs();
-        int                    typeCount            = 0;
-
-        if (typeDefProcessor != null)
-        {
-            String       sourceName = 
OMRSAuditingComponent.ARCHIVE_MANAGER.getComponentName();
-            String       originatorMetadataCollectionId = 
archiveProperties.getArchiveGUID();
-            String       originatorServerName = 
archiveProperties.getArchiveName();
-            String       originatorServerType = null;
-            String       originatorName = 
archiveProperties.getOriginatorName();
-            String       originatorOrganizationName = 
archiveProperties.getOriginatorOrganization();
-
-            /*
-             * Originator name can not be null since it is used as the userId 
for calls to the repository
-             */
-            if (originatorName == null)
-            {
-                originatorName = sourceName;
-            }
-
-            if (archiveProperties.getArchiveType() != null)
-            {
-                originatorServerType = 
archiveProperties.getArchiveType().getArchiveTypeName();
-            }
-
-            if (typeDefPatches != null)
-            {
-                for (TypeDefPatch typeDefPatch : typeDefPatches)
-                {
-                    if (typeDefPatch != null)
-                    {
-                        
typeDefProcessor.processUpdatedTypeDefEvent(originatorName,
-                                                                    
originatorMetadataCollectionId,
-                                                                    
originatorServerName,
-                                                                    
originatorServerType,
-                                                                    
originatorOrganizationName,
-                                                                    
typeDefPatch);
-                        typeCount ++;
-                    }
-                }
-            }
-
-            if (newAttributeTypeDefs != null)
-            {
-                for (AttributeTypeDef newAttributeTypeDef : 
newAttributeTypeDefs)
-                {
-                    if (newAttributeTypeDef != null)
-                    {
-                        
typeDefProcessor.processNewAttributeTypeDefEvent(originatorName,
-                                                                
originatorMetadataCollectionId,
-                                                                
originatorServerName,
-                                                                
originatorServerType,
-                                                                
originatorOrganizationName,
-                                                                
newAttributeTypeDef);
-
-                        typeCount ++;
-                    }
-                }
-            }
-
-            if (newTypeDefs != null)
-            {
-                for (TypeDef newTypeDef : newTypeDefs)
-                {
-                    if (newTypeDef != null)
-                    {
-                        typeDefProcessor.processNewTypeDefEvent(originatorName,
-                                                                
originatorMetadataCollectionId,
-                                                                
originatorServerName,
-                                                                
originatorServerType,
-                                                                
originatorOrganizationName,
-                                                                newTypeDef);
-                        typeCount ++;
-                    }
-                }
-            }
-        }
-
-        return typeCount;
-    }
-
-
-    /**
-     * The InstanceStore is in two parts - an optional list of entities 
followed by an optional list
-     * of relationships.  It is possible that this archive has been processed 
before
-     * and so any duplicates detected are ignored.  However, conflicting 
instances are detected.
-     * Any problems found in applying the archive contents are recorded on the 
audit log.
-     *
-     * @param archiveProperties - properties describing the archive used in 
logging
-     * @param archiveInstanceStore - the instance store to process
-     * @param instanceProcessor - the processor to add the instances to the 
local repository.  It may be null
-     *                          if there is no local repository configured for 
this server.
-     * @return instance count
-     */
-    private int  processInstanceStore(OpenMetadataArchiveProperties    
archiveProperties,
-                                      OpenMetadataArchiveInstanceStore 
archiveInstanceStore,
-                                      OMRSInstanceEventProcessor       
instanceProcessor)
-    {
-        List<EntityDetail>    entities = archiveInstanceStore.getEntities();
-        List<Relationship>    relationships = 
archiveInstanceStore.getRelationships();
-        int                   instanceCount = 0;
-
-        if (instanceProcessor != null)
-        {
-            String       sourceName = 
OMRSAuditingComponent.ARCHIVE_MANAGER.getComponentName();
-            String       originatorMetadataCollectionId = 
archiveProperties.getArchiveGUID();
-            String       originatorServerName = 
archiveProperties.getArchiveName();
-            String       originatorServerType = null;
-            String       originatorOrganizationName = 
archiveProperties.getOriginatorName();
-
-            if (archiveProperties.getArchiveType() != null)
-            {
-                originatorServerType = 
archiveProperties.getArchiveType().getArchiveTypeName();
-            }
-
-            if (entities != null)
-            {
-                for (EntityDetail entity : entities)
-                {
-                    if (entity != null)
-                    {
-                        instanceProcessor.processNewEntityEvent(sourceName,
-                                                                
originatorMetadataCollectionId,
-                                                                
originatorServerName,
-                                                                
originatorServerType,
-                                                                
originatorOrganizationName,
-                                                                entity);
-
-                        instanceCount ++;
-                    }
-                }
-            }
-
-
-            if (relationships != null)
-            {
-                for (Relationship relationship : relationships)
-                {
-                    if (relationship != null)
-                    {
-                        
instanceProcessor.processNewRelationshipEvent(sourceName,
-                                                                      
originatorMetadataCollectionId,
-                                                                      
originatorServerName,
-                                                                      
originatorServerType,
-                                                                      
originatorOrganizationName,
-                                                                      
relationship);
-
-                        instanceCount ++;
-                    }
-                }
-            }
-        }
-
-        return instanceCount;
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/b0ecc36a/omrs/src/main/java/org/apache/atlas/omrs/archivemanager/OMRSArchiveWriter.java
----------------------------------------------------------------------
diff --git 
a/omrs/src/main/java/org/apache/atlas/omrs/archivemanager/OMRSArchiveWriter.java
 
b/omrs/src/main/java/org/apache/atlas/omrs/archivemanager/OMRSArchiveWriter.java
deleted file mode 100644
index ea9fbfe..0000000
--- 
a/omrs/src/main/java/org/apache/atlas/omrs/archivemanager/OMRSArchiveWriter.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.atlas.omrs.archivemanager;
-
-
-import org.apache.atlas.ocf.Connector;
-import org.apache.atlas.ocf.ConnectorBroker;
-import org.apache.atlas.ocf.properties.Connection;
-import org.apache.atlas.omrs.admin.OMRSConfigurationFactory;
-import org.apache.atlas.omrs.archivemanager.opentypes.OpenMetadataTypesArchive;
-import org.apache.atlas.omrs.archivemanager.properties.OpenMetadataArchive;
-import org.apache.atlas.omrs.archivemanager.store.OpenMetadataArchiveStore;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * OMRSArchiveWriter creates physical open metadata archive files for the 
supplied open metadata archives
- * encoded in OMRS.
- */
-public class OMRSArchiveWriter
-{
-    private static final Logger log = 
LoggerFactory.getLogger(OMRSArchiveWriter.class);
-
-    /**
-     * Default constructor
-     */
-    public OMRSArchiveWriter()
-    {
-    }
-
-
-    /**
-     * Opens up an open metadata archive store connector.
-     *
-     * @param connection - connection information for the open metadata 
archive.
-     * @return open metadata archive store connector
-     */
-    private OpenMetadataArchiveStore getOpenMetadataArchive(Connection   
connection)
-    {
-        OpenMetadataArchiveStore  openMetadataArchiveStore = null;
-
-        try
-        {
-            ConnectorBroker connectorBroker = new ConnectorBroker();
-            Connector       connector       = 
connectorBroker.getConnector(connection);
-
-            openMetadataArchiveStore = (OpenMetadataArchiveStore)connector;
-
-            log.debug("Created connector to open metadata archive store");
-
-        }
-        catch (Throwable   error)
-        {
-            log.error("Unexpected exception occurred: " + error.getMessage());
-            log.error("Exception: " + error.toString());
-        }
-
-        return openMetadataArchiveStore;
-    }
-
-
-    /**
-     * Generates and writes out an open metadata archive containing all of the 
open metadata types.
-     */
-    private void writeOpenMetadataArchiveTypes()
-    {
-        OMRSConfigurationFactory  configurationFactory     = new 
OMRSConfigurationFactory();
-        Connection                connection               = 
configurationFactory.getOpenMetadataTypesConnection();
-
-        OpenMetadataArchiveStore  openMetadataArchiveStore = 
this.getOpenMetadataArchive(connection);
-        OpenMetadataTypesArchive  openMetadataTypesArchive = new 
OpenMetadataTypesArchive();
-        OpenMetadataArchive       openMetadataArchive      = 
openMetadataTypesArchive.getOpenMetadataArchive();
-
-        openMetadataArchiveStore.setArchiveContents(openMetadataArchive);
-    }
-
-
-    /**
-     * Main program to control the archive writer.
-     *
-     * @param args - ignored arguments
-     */
-    public static void main(String[] args)
-    {
-        OMRSArchiveWriter  archiveWriter = new OMRSArchiveWriter();
-
-        archiveWriter.writeOpenMetadataArchiveTypes();
-
-        /*
-         * Calls to create other standard archives will go here.
-         */
-    }
-}

Reply via email to