Commit ca728273 by Shwetha G S

Merge pull request #116 from sumashivaprasad/BUG_37105

Entity creation error message improvements
parents 25a68075 b4f4221b
...@@ -22,6 +22,7 @@ import com.google.common.base.Preconditions; ...@@ -22,6 +22,7 @@ import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import org.apache.hadoop.metadata.MetadataException; import org.apache.hadoop.metadata.MetadataException;
import org.apache.hadoop.metadata.MetadataServiceClient; import org.apache.hadoop.metadata.MetadataServiceClient;
import org.apache.hadoop.metadata.ParamChecker;
import org.apache.hadoop.metadata.classification.InterfaceAudience; import org.apache.hadoop.metadata.classification.InterfaceAudience;
import org.apache.hadoop.metadata.discovery.SearchIndexer; import org.apache.hadoop.metadata.discovery.SearchIndexer;
import org.apache.hadoop.metadata.listener.EntityChangeListener; import org.apache.hadoop.metadata.listener.EntityChangeListener;
...@@ -51,10 +52,13 @@ import org.slf4j.LoggerFactory; ...@@ -51,10 +52,13 @@ import org.slf4j.LoggerFactory;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
import java.util.LinkedHashSet; import java.io.IOException;
import java.util.List; import java.io.InputStream;
import java.util.Map; import java.io.InputStreamReader;
import java.util.Set; import java.net.URL;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/** /**
* Simple wrapper over TypeSystem and MetadataRepository services with hooks * Simple wrapper over TypeSystem and MetadataRepository services with hooks
...@@ -133,8 +137,7 @@ public class DefaultMetadataService implements MetadataService { ...@@ -133,8 +137,7 @@ public class DefaultMetadataService implements MetadataService {
@Override @Override
public JSONObject createType(String typeDefinition) throws MetadataException { public JSONObject createType(String typeDefinition) throws MetadataException {
try { try {
Preconditions.checkNotNull(typeDefinition, "type definition cannot be null"); ParamChecker.notEmpty(typeDefinition, "type definition cannot be empty");
Preconditions.checkArgument(!typeDefinition.equals(""), "type definition cannot be an empty string");
TypesDef typesDef = TypesSerialization.fromJson(typeDefinition); TypesDef typesDef = TypesSerialization.fromJson(typeDefinition);
if(typesDef.isEmpty()) if(typesDef.isEmpty())
...@@ -195,8 +198,8 @@ public class DefaultMetadataService implements MetadataService { ...@@ -195,8 +198,8 @@ public class DefaultMetadataService implements MetadataService {
*/ */
@Override @Override
public String createEntity(String entityInstanceDefinition) throws MetadataException { public String createEntity(String entityInstanceDefinition) throws MetadataException {
Preconditions.checkNotNull(entityInstanceDefinition, ParamChecker.notEmpty(entityInstanceDefinition,
"entity instance definition cannot be null"); "Entity instance definition cannot be empty");
ITypedReferenceableInstance entityTypedInstance = ITypedReferenceableInstance entityTypedInstance =
deserializeClassInstance(entityInstanceDefinition); deserializeClassInstance(entityInstanceDefinition);
...@@ -210,17 +213,14 @@ public class DefaultMetadataService implements MetadataService { ...@@ -210,17 +213,14 @@ public class DefaultMetadataService implements MetadataService {
private ITypedReferenceableInstance deserializeClassInstance( private ITypedReferenceableInstance deserializeClassInstance(
String entityInstanceDefinition) throws MetadataException { String entityInstanceDefinition) throws MetadataException {
try { final Referenceable entityInstance = InstanceSerialization.fromJsonReferenceable(
final Referenceable entityInstance = InstanceSerialization.fromJsonReferenceable( entityInstanceDefinition, true);
entityInstanceDefinition, true); final String entityTypeName = entityInstance.getTypeName();
final String entityTypeName = entityInstance.getTypeName(); ParamChecker.notEmpty(entityTypeName, "Entity type cannot be null");
Preconditions.checkNotNull(entityTypeName, "entity type cannot be null");
ClassType entityType = typeSystem.getDataType(ClassType.class, entityTypeName);
return entityType.convert(entityInstance, Multiplicity.REQUIRED);
ClassType entityType = typeSystem.getDataType(ClassType.class, entityTypeName);
return entityType.convert(entityInstance, Multiplicity.REQUIRED);
} catch (Exception e) {
throw new MetadataException("Error deserializing class instance", e);
}
} }
/** /**
...@@ -231,7 +231,7 @@ public class DefaultMetadataService implements MetadataService { ...@@ -231,7 +231,7 @@ public class DefaultMetadataService implements MetadataService {
*/ */
@Override @Override
public String getEntityDefinition(String guid) throws MetadataException { public String getEntityDefinition(String guid) throws MetadataException {
Preconditions.checkNotNull(guid, "guid cannot be null"); ParamChecker.notEmpty(guid, "guid cannot be null");
final ITypedReferenceableInstance instance = repository.getEntityDefinition(guid); final ITypedReferenceableInstance instance = repository.getEntityDefinition(guid);
return InstanceSerialization.toJson(instance, true); return InstanceSerialization.toJson(instance, true);
...@@ -252,15 +252,15 @@ public class DefaultMetadataService implements MetadataService { ...@@ -252,15 +252,15 @@ public class DefaultMetadataService implements MetadataService {
@Override @Override
public void updateEntity(String guid, String property, String value) throws MetadataException { public void updateEntity(String guid, String property, String value) throws MetadataException {
Preconditions.checkNotNull(guid, "guid cannot be null"); ParamChecker.notEmpty(guid, "guid cannot be null");
Preconditions.checkNotNull(property, "property cannot be null"); ParamChecker.notEmpty(property, "property cannot be null");
Preconditions.checkNotNull(value, "property value cannot be null"); ParamChecker.notEmpty(value, "property value cannot be null");
repository.updateEntity(guid, property, value); repository.updateEntity(guid, property, value);
} }
private void validateTypeExists(String entityType) throws MetadataException { private void validateTypeExists(String entityType) throws MetadataException {
Preconditions.checkNotNull(entityType, "entity type cannot be null"); ParamChecker.notEmpty(entityType, "entity type cannot be null");
// verify if the type exists // verify if the type exists
if (!typeSystem.isRegistered(entityType)) { if (!typeSystem.isRegistered(entityType)) {
...@@ -277,7 +277,7 @@ public class DefaultMetadataService implements MetadataService { ...@@ -277,7 +277,7 @@ public class DefaultMetadataService implements MetadataService {
*/ */
@Override @Override
public List<String> getTraitNames(String guid) throws MetadataException { public List<String> getTraitNames(String guid) throws MetadataException {
Preconditions.checkNotNull(guid, "entity GUID cannot be null"); ParamChecker.notEmpty(guid, "entity GUID cannot be null");
return repository.getTraitNames(guid); return repository.getTraitNames(guid);
} }
...@@ -291,8 +291,8 @@ public class DefaultMetadataService implements MetadataService { ...@@ -291,8 +291,8 @@ public class DefaultMetadataService implements MetadataService {
@Override @Override
public void addTrait(String guid, public void addTrait(String guid,
String traitInstanceDefinition) throws MetadataException { String traitInstanceDefinition) throws MetadataException {
Preconditions.checkNotNull(guid, "entity GUID cannot be null"); ParamChecker.notEmpty(guid, "entity GUID cannot be null");
Preconditions.checkNotNull(traitInstanceDefinition, "Trait instance cannot be null"); ParamChecker.notEmpty(traitInstanceDefinition, "Trait instance cannot be null");
ITypedStruct traitInstance = deserializeTraitInstance(traitInstanceDefinition); ITypedStruct traitInstance = deserializeTraitInstance(traitInstanceDefinition);
final String traitName = traitInstance.getTypeName(); final String traitName = traitInstance.getTypeName();
...@@ -313,7 +313,7 @@ public class DefaultMetadataService implements MetadataService { ...@@ -313,7 +313,7 @@ public class DefaultMetadataService implements MetadataService {
Struct traitInstance = InstanceSerialization.fromJsonStruct( Struct traitInstance = InstanceSerialization.fromJsonStruct(
traitInstanceDefinition, true); traitInstanceDefinition, true);
final String entityTypeName = traitInstance.getTypeName(); final String entityTypeName = traitInstance.getTypeName();
Preconditions.checkNotNull(entityTypeName, "entity type cannot be null"); ParamChecker.notEmpty(entityTypeName, "entity type cannot be null");
TraitType traitType = typeSystem.getDataType(TraitType.class, entityTypeName); TraitType traitType = typeSystem.getDataType(TraitType.class, entityTypeName);
return traitType.convert( return traitType.convert(
...@@ -333,8 +333,8 @@ public class DefaultMetadataService implements MetadataService { ...@@ -333,8 +333,8 @@ public class DefaultMetadataService implements MetadataService {
@Override @Override
public void deleteTrait(String guid, public void deleteTrait(String guid,
String traitNameToBeDeleted) throws MetadataException { String traitNameToBeDeleted) throws MetadataException {
Preconditions.checkNotNull(guid, "entity GUID cannot be null"); ParamChecker.notEmpty(guid, "entity GUID cannot be null");
Preconditions.checkNotNull(traitNameToBeDeleted, "Trait name cannot be null"); ParamChecker.notEmpty(traitNameToBeDeleted, "Trait name cannot be null");
// ensure trait type is already registered with the TS // ensure trait type is already registered with the TS
Preconditions.checkArgument(typeSystem.isRegistered(traitNameToBeDeleted), Preconditions.checkArgument(typeSystem.isRegistered(traitNameToBeDeleted),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment