> On May 16, 2016, 5:42 p.m., Madhan Neethiraj wrote: > > catalog/src/main/java/org/apache/atlas/catalog/BaseResourceProvider.java, > > line 38 > > <https://reviews.apache.org/r/47382/diff/1/?file=1383415#file1383415line38> > > > > This comment is present in DefaultDateFormatter() as well. Consider > > removing from here.
ok > On May 16, 2016, 5:42 p.m., Madhan Neethiraj wrote: > > catalog/src/main/java/org/apache/atlas/catalog/DefaultPropertyMapper.java, > > line 71 > > <https://reviews.apache.org/r/47382/diff/1/?file=1383418#file1383418line71> > > > > for easier readability, consider replacing all "replacement = propName" > > with the following block just before the return statement: > > > > if(replacement == null) { > > replacement = propName; > > } > > > > return replacement; yes, that will make the code cleaner. I will make the changes. > On May 16, 2016, 5:42 p.m., Madhan Neethiraj wrote: > > catalog/src/main/java/org/apache/atlas/catalog/DefaultPropertyMapper.java, > > line 80 > > <https://reviews.apache.org/r/47382/diff/1/?file=1383418#file1383418line80> > > > > Would it help to update m_qualifiedToCleanMap with the result? The next > > lookup would be faster. This would work only if > > dataType.fieldMapping().fields remains unchanged. > > > > m_qualifiedToCleanMap.put(propName, replacement); yeah, I thought about that but it seemed like a premature optimization that would cause issues if the underlying mappings changed as you mentioned. IMO, there are a lot of other places where we could optimize before this. > On May 16, 2016, 5:42 p.m., Madhan Neethiraj wrote: > > catalog/src/main/java/org/apache/atlas/catalog/DefaultPropertyMapper.java, > > line 104 > > <https://reviews.apache.org/r/47382/diff/1/?file=1383418#file1383418line104> > > > > Refer to comments for toCleanName() - the same comments apply for > > toFullyQualifiedName() as well. agreed > On May 16, 2016, 5:42 p.m., Madhan Neethiraj wrote: > > catalog/src/main/java/org/apache/atlas/catalog/DefaultPropertyMapper.java, > > line 129 > > <https://reviews.apache.org/r/47382/diff/1/?file=1383418#file1383418line129> > > > > typo: "mnodified_time" ==> "modified_time" good catch > On May 16, 2016, 5:42 p.m., Madhan Neethiraj wrote: > > catalog/src/main/java/org/apache/atlas/catalog/DefaultTypeSystem.java, line > > 67 > > <https://reviews.apache.org/r/47382/diff/1/?file=1383419#file1383419line67> > > > > Consider adding additional information to the exception - like name/ID > > of the existing entity, type & name/ID of entity being created. This will > > be handly in troubleshooting. > > > > Please review other exceptions raised in this class for similar updates. Yeah, there are lots of places where the exception msg could be better. I just didn't have the time to get then all cleaned up. In this case, when I wrote the exception it was my opinion that because the user know which entity they were creating, and which already exists, that the message would be sufficient. I will add additional info to the exception msgs in this class. > On May 16, 2016, 5:42 p.m., Madhan Neethiraj wrote: > > catalog/src/main/java/org/apache/atlas/catalog/TaxonomyResourceProvider.java, > > line 41 > > <https://reviews.apache.org/r/47382/diff/1/?file=1383430#file1383430line41> > > > > Consider adding query details in the exception message to help in > > troubleshooting. Parsing errors are already provied to the user in this case: For the invalid query: api/atlas/v1/entities?someProperty~~InvalidOperator~~someValue The following response is returned: { status: "400", message: "Unable to parse query: Cannot parse 'someProperty~~InvalidOperator~~someValue': Encountered " <FUZZY_SLOP> "~InvalidOperator "" at line 1, column 13. Was expecting one of: <EOF> <AND> ... <OR> ... <NOT> ... "+" ... "-" ... <BAREOPER> ... "(" ... "*" ... "^" ... <QUOTED> ... <TERM> ... <PREFIXTERM> ... <WILDTERM> ... <REGEXPTERM> ... "[" ... "{" ... <NUMBER> ... " } > On May 16, 2016, 5:42 p.m., Madhan Neethiraj wrote: > > catalog/src/main/java/org/apache/atlas/catalog/BaseResourceProvider.java, > > line 39 > > <https://reviews.apache.org/r/47382/diff/1/?file=1383415#file1383415line39> > > > > Shouldn't "modified_time" be also registered here? yes, that makes sense. > On May 16, 2016, 5:42 p.m., Madhan Neethiraj wrote: > > catalog/src/main/java/org/apache/atlas/catalog/EntityResourceProvider.java, > > line 47 > > <https://reviews.apache.org/r/47382/diff/1/?file=1383420#file1383420line47> > > > > Would request have ID-property in all cases? If not, consider adding > > request.toString() to the exception message. AtlasQuery implementations > > should return appropriate value from toString(). Yes, the request would fail validation if the id isn't provided so the request will always contain the ID property at this point. I agree that it would be nice to provide a user friendly toString() implementation to AtlasQuery implementations, unfortunately the toString() provided by GremlinPipeline isn't very user friendly so a bit of work will be required to provide this. Would it be ok to handle this as a separate follow-up Jira? > On May 16, 2016, 5:42 p.m., Madhan Neethiraj wrote: > > catalog/src/main/java/org/apache/atlas/catalog/ResourceProvider.java, line > > 37 > > <https://reviews.apache.org/r/47382/diff/1/?file=1383428#file1383428line37> > > > > Since this method requires ID to be given, consider renaming this to > > getResourceById(). > > > > Also consider if making the return type to "SingleResult" (a new class) > > would make it easier to read/understand. "Result" deals with a Collection > > of propertyMaps. ok, I will rename the method. Yes, it would probably be cleaner to return a result specific to single results. Due to time considerations, this patch is being offered for review in a state that isn't consistent with my normal standards for a patch being posted for review. So, there are many refactorings and other cleanup that I would like to do but just didn't/don't have the time. - John ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/47382/#review133355 ----------------------------------------------------------- On May 14, 2016, 12:58 a.m., John Speidel wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/47382/ > ----------------------------------------------------------- > > (Updated May 14, 2016, 12:58 a.m.) > > > Review request for atlas and Hemanth Yamijala. > > > Bugs: ATLAS-491 > https://issues.apache.org/jira/browse/ATLAS-491 > > > Repository: atlas > > > Description > ------- > > Initial implementation of Catalog API. > > Known Issues/Limitations: > - No update/delete support for taxonomies/terms > -- this will be added next week > - Some gaps in test coverage > - Need more in-depth test coverage that exercise the generated gremlin > pipeline > - some refactoring should still be done espcecially in the 'query' package > - need to add more logging > - need to finish some javadoc > > > Diffs > ----- > > catalog/pom.xml PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/AtlasTypeSystem.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/BaseRequest.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/BaseResourceProvider.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/CollectionRequest.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/DefaultDateFormatter.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/DefaultPropertyMapper.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/DefaultTypeSystem.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/EntityResourceProvider.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/EntityTagResourceProvider.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/InstanceRequest.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/JsonSerializer.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/PropertyMapper.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/PropertyValueFormatter.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/Request.java PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/ResourceComparator.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/ResourceProvider.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/Result.java PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/TaxonomyResourceProvider.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/TermPath.java PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/TermResourceProvider.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/TermVertexWrapper.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/VertexWrapper.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/definition/BaseResourceDefinition.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/definition/EntityResourceDefinition.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/definition/EntityTagResourceDefinition.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/definition/ResourceDefinition.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/definition/TaxonomyResourceDefinition.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/definition/TermResourceDefinition.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/exception/CatalogException.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/exception/CatalogRuntimeException.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/exception/InvalidPayloadException.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/exception/InvalidQueryException.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/exception/ResourceAlreadyExistsException.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/exception/ResourceNotFoundException.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/projection/GenericRelation.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/projection/Projection.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/projection/ProjectionResult.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/projection/Relation.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/projection/RelationProjection.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/projection/RelationSet.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/projection/TagRelation.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/projection/TraitRelation.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/query/AlwaysQueryExpression.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/query/AtlasEntityQuery.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/query/AtlasEntityTagQuery.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/query/AtlasQuery.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/query/AtlasTaxonomyQuery.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/query/AtlasTermQuery.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/query/BaseQuery.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/query/BaseQueryExpression.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/query/BooleanQueryExpression.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/query/PrefixQueryExpression.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/query/ProjectionQueryExpression.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/query/QueryExpression.java > PRE-CREATION > catalog/src/main/java/org/apache/atlas/catalog/query/QueryFactory.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/query/RegexQueryExpression.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/query/TermQueryExpression.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/query/TermRangeQueryExpression.java > PRE-CREATION > > catalog/src/main/java/org/apache/atlas/catalog/query/WildcardQueryExpression.java > PRE-CREATION > catalog/src/test/java/org/apache/atlas/catalog/CollectionRequestTest.java > PRE-CREATION > > catalog/src/test/java/org/apache/atlas/catalog/DefaultDateFormatterTest.java > PRE-CREATION > > catalog/src/test/java/org/apache/atlas/catalog/DefaultPropertyMapperTest.java > PRE-CREATION > > catalog/src/test/java/org/apache/atlas/catalog/EntityResourceProviderTest.java > PRE-CREATION > > catalog/src/test/java/org/apache/atlas/catalog/EntityTagResourceProviderTest.java > PRE-CREATION > catalog/src/test/java/org/apache/atlas/catalog/InstanceRequestTest.java > PRE-CREATION > catalog/src/test/java/org/apache/atlas/catalog/JsonSerializerTest.java > PRE-CREATION > catalog/src/test/java/org/apache/atlas/catalog/ResourceComparatorTest.java > PRE-CREATION > > catalog/src/test/java/org/apache/atlas/catalog/TaxonomyResourceProviderTest.java > PRE-CREATION > > catalog/src/test/java/org/apache/atlas/catalog/TermResourceProviderTest.java > PRE-CREATION > catalog/src/test/java/org/apache/atlas/catalog/VertexWrapperTest.java > PRE-CREATION > > catalog/src/test/java/org/apache/atlas/catalog/definition/EntityResourceDefinitionTest.java > PRE-CREATION > > catalog/src/test/java/org/apache/atlas/catalog/definition/EntityTagResourceDefinitionTest.java > PRE-CREATION > > catalog/src/test/java/org/apache/atlas/catalog/definition/TaxonomyResourceDefinitionTest.java > PRE-CREATION > > catalog/src/test/java/org/apache/atlas/catalog/definition/TermResourceDefinitionTest.java > PRE-CREATION > > catalog/src/test/java/org/apache/atlas/catalog/query/AlwaysQueryExpressionTest.java > PRE-CREATION > catalog/src/test/java/org/apache/atlas/catalog/query/QueryFactoryTest.java > PRE-CREATION > pom.xml 5e2871e > repository/src/main/java/org/apache/atlas/repository/graph/GraphHelper.java > cccafc2 > > repository/src/main/java/org/apache/atlas/services/DefaultMetadataService.java > 5195cbe > server-api/src/main/java/org/apache/atlas/services/MetadataService.java > 13d20d8 > > typesystem/src/main/java/org/apache/atlas/typesystem/persistence/StructInstance.java > 6fb2087 > > typesystem/src/main/java/org/apache/atlas/typesystem/types/TypedStructHandler.java > b97669a > webapp/pom.xml de48c15 > webapp/src/main/java/org/apache/atlas/web/resources/BaseService.java > PRE-CREATION > > webapp/src/main/java/org/apache/atlas/web/resources/CatalogExceptionMapper.java > PRE-CREATION > > webapp/src/main/java/org/apache/atlas/web/resources/CatalogRuntimeExceptionMapper.java > PRE-CREATION > webapp/src/main/java/org/apache/atlas/web/resources/EntityService.java > PRE-CREATION > webapp/src/main/java/org/apache/atlas/web/resources/TaxonomyService.java > PRE-CREATION > webapp/src/main/webapp/WEB-INF/web.xml f0b606e > > Diff: https://reviews.apache.org/r/47382/diff/ > > > Testing > ------- > > Ran all existing unit tests and added new tests. > > > Thanks, > > John Speidel > >