From de117ba4c989bcc2cf3ecfa52b152b7341a529d2 Mon Sep 17 00:00:00 2001 From: Suresh Srinivas Date: Fri, 20 May 2022 12:14:46 -0700 Subject: [PATCH] Fixes #5068 Child Glossary Terms have null in fullyQualifiedName (#5075) --- .../catalog/jdbi3/GlossaryTermRepository.java | 12 +++++++----- .../catalog/resources/tags/TagResource.java | 2 +- .../glossary/GlossaryTermResourceTest.java | 18 ++++++++++++------ 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/GlossaryTermRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/GlossaryTermRepository.java index c93fcd11910..b0f7d093ee7 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/GlossaryTermRepository.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/GlossaryTermRepository.java @@ -98,6 +98,11 @@ public class GlossaryTermRepository extends EntityRepository { // Validate glossary EntityReference glossary = Entity.getEntityReference(entity.getGlossary()); entity.setGlossary(glossary); + + // Validate parent term + EntityReference parentTerm = Entity.getEntityReference(entity.getParent()); + entity.setParent(parentTerm); + setFullyQualifiedName(entity); // Validate related terms @@ -167,14 +172,11 @@ public class GlossaryTermRepository extends EntityRepository { @Override public void setFullyQualifiedName(GlossaryTerm entity) { // Validate parent - if (entity.getParent() == null) { + if (entity.getParent() == null) { // Glossary term at the root of the glossary entity.setFullyQualifiedName(FullyQualifiedName.add(entity.getGlossary().getName(), entity.getName())); - } else { - // TODO fix me - // EntityReference parent = Entity.getEntityReference(entity.getParent()); + } else { // Glossary term that is a child of another glossary term EntityReference parent = entity.getParent(); entity.setFullyQualifiedName(FullyQualifiedName.add(parent.getFullyQualifiedName(), entity.getName())); - entity.setParent(parent); } } diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/tags/TagResource.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/tags/TagResource.java index dbd556844c5..ec297729346 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/tags/TagResource.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/tags/TagResource.java @@ -30,6 +30,7 @@ import java.util.List; import java.util.Objects; import java.util.UUID; import javax.validation.Valid; +import javax.ws.rs.Consumes; import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.POST; @@ -38,7 +39,6 @@ import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; -import javax.ws.rs.Consumes; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; diff --git a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/glossary/GlossaryTermResourceTest.java b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/glossary/GlossaryTermResourceTest.java index 941541c2ec7..f907b87c7e8 100644 --- a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/glossary/GlossaryTermResourceTest.java +++ b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/glossary/GlossaryTermResourceTest.java @@ -79,7 +79,7 @@ public class GlossaryTermResourceTest extends EntityResourceTest expectedTerms, List actualTerms) @@ -313,9 +313,14 @@ public class GlossaryTermResourceTest extends EntityResourceTest authHeaders) throws HttpResponseException { validateCommonEntityFields(entity, request.getDescription(), TestUtils.getPrincipal(authHeaders), null); + assertReference(request.getParent(), entity.getParent()); + assertReference(request.getGlossary(), entity.getGlossary()); // Validate fully qualified name - String fqn = entity.getParent() == null ? entity.getGlossary().getName() : entity.getParent().getName(); + String fqn = + entity.getParent() == null + ? entity.getGlossary().getFullyQualifiedName() + : entity.getParent().getFullyQualifiedName(); fqn = FullyQualifiedName.add(fqn, entity.getName()); assertEquals(fqn, entity.getFullyQualifiedName()); @@ -340,8 +345,9 @@ public class GlossaryTermResourceTest extends EntityResourceTest