Repository: atlas Updated Branches: refs/heads/master 8ef6a4364 -> bc57e15e5
ATLAS-2549: Regression with respect to Partition keys Project: http://git-wip-us.apache.org/repos/asf/atlas/repo Commit: http://git-wip-us.apache.org/repos/asf/atlas/commit/bc57e15e Tree: http://git-wip-us.apache.org/repos/asf/atlas/tree/bc57e15e Diff: http://git-wip-us.apache.org/repos/asf/atlas/diff/bc57e15e Branch: refs/heads/master Commit: bc57e15e548af88987ab7d3870aa5ae874c09830 Parents: 8ef6a43 Author: Sarath Subramanian <ssubraman...@hortonworks.com> Authored: Mon Apr 9 13:48:02 2018 -0700 Committer: Sarath Subramanian <ssubraman...@hortonworks.com> Committed: Mon Apr 9 13:48:02 2018 -0700 ---------------------------------------------------------------------- .../bootstrap/AtlasTypeDefStoreInitializer.java | 56 +++++++++----------- 1 file changed, 25 insertions(+), 31 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/atlas/blob/bc57e15e/repository/src/main/java/org/apache/atlas/repository/store/bootstrap/AtlasTypeDefStoreInitializer.java ---------------------------------------------------------------------- diff --git a/repository/src/main/java/org/apache/atlas/repository/store/bootstrap/AtlasTypeDefStoreInitializer.java b/repository/src/main/java/org/apache/atlas/repository/store/bootstrap/AtlasTypeDefStoreInitializer.java index 4109abf..40b7d11 100644 --- a/repository/src/main/java/org/apache/atlas/repository/store/bootstrap/AtlasTypeDefStoreInitializer.java +++ b/repository/src/main/java/org/apache/atlas/repository/store/bootstrap/AtlasTypeDefStoreInitializer.java @@ -152,50 +152,44 @@ public class AtlasTypeDefStoreInitializer implements ActiveStateChangeHandler { File[] typeDefFiles = typesDir.exists() ? typesDir.listFiles() : null; if (typeDefFiles == null || typeDefFiles.length == 0) { - LOG.info("Types directory {} does not exist or not readable or has no typedef files", typesDirName); + LOG.info("Types directory {} does not exist or not readable or has no typedef files", typesDirName ); } else { + // sort the files by filename Arrays.sort(typeDefFiles); - for (File typeDefFile : typeDefFiles) { - try { - readTypesFromFile(typeDefFile); - } catch (Throwable t) { - LOG.error("error while registering types in file {}", typeDefFile.getAbsolutePath(), t); - } - } - } - LOG.info("<== AtlasTypeDefStoreInitializer({})", typesDir); - } + for (File typeDefFile : typeDefFiles) { + if (typeDefFile.isFile()) { + try { + String jsonStr = new String(Files.readAllBytes(typeDefFile.toPath()), StandardCharsets.UTF_8); + AtlasTypesDef typesDef = AtlasType.fromJson(jsonStr, AtlasTypesDef.class); - public void readTypesFromFile(File typeDefFile) { - if (!typeDefFile.isFile()) { - return; - } + if (typesDef == null || typesDef.isEmpty()) { + LOG.info("No type in file {}", typeDefFile.getAbsolutePath()); - try { - String jsonStr = new String(Files.readAllBytes(typeDefFile.toPath()), StandardCharsets.UTF_8); - AtlasTypesDef typesDef = AtlasType.fromJson(jsonStr, AtlasTypesDef.class); + continue; + } - if (typesDef == null || typesDef.isEmpty()) { - LOG.info("No type in file {}", typeDefFile.getAbsolutePath()); - return; - } + AtlasTypesDef typesToCreate = getTypesToCreate(typesDef, atlasTypeRegistry); + AtlasTypesDef typesToUpdate = getTypesToUpdate(typesDef, atlasTypeRegistry, true); - AtlasTypesDef typesToCreate = getTypesToCreate(typesDef, atlasTypeRegistry); - AtlasTypesDef typesToUpdate = getTypesToUpdate(typesDef, atlasTypeRegistry, true); + if (!typesToCreate.isEmpty() || !typesToUpdate.isEmpty()) { + atlasTypeDefStore.createUpdateTypesDef(typesToCreate, typesToUpdate); - if (!typesToCreate.isEmpty() || !typesToUpdate.isEmpty()) { - atlasTypeDefStore.createUpdateTypesDef(typesToCreate, typesToUpdate); + LOG.info("Created/Updated types defined in file {}", typeDefFile.getAbsolutePath()); + } else { + LOG.info("No new type in file {}", typeDefFile.getAbsolutePath()); + } - LOG.info("Created/Updated types defined in file {}", typeDefFile.getAbsolutePath()); - } else { - LOG.info("No new type in file {}", typeDefFile.getAbsolutePath()); + } catch (Throwable t) { + LOG.error("error while registering types in file {}", typeDefFile.getAbsolutePath(), t); + } + } } - } catch (Throwable t) { - LOG.error("error while registering types in file {}", typeDefFile.getAbsolutePath(), t); + applyTypePatches(typesDir.getPath()); } + LOG.info("<== AtlasTypeDefStoreInitializer({})", typesDir); } public static AtlasTypesDef getTypesToCreate(AtlasTypesDef typesDef, AtlasTypeRegistry typeRegistry) {