AtlasClientV2 provides 'createGlossaryTerm' method to create a glossary term.
Signature
public AtlasGlossaryTerm createGlossaryTerm(AtlasGlossaryTerm glossaryTerm) throws AtlasServiceException
public List<AtlasGlossaryTerm> createGlossaryTerms(List<AtlasGlossaryTerm> glossaryTerms) throws AtlasServiceException
Example
AtlasGlossaryTerm glossaryTerm = new AtlasGlossaryTerm();
glossaryTerm.setName("term1");
glossaryTerm.setShortDescription("term1...");
glossaryTerm.setLongDescription("term1...........");
AtlasGlossaryHeader atlasGlossaryHeader = new AtlasGlossaryHeader();
atlasGlossaryHeader.setGlossaryGuid(persistedGlossary.getGuid());
glossaryTerm.setAnchor(atlasGlossaryHeader);
Find the below working application.
Create atlas-application.properties file under src/main/resources folder.
atlas-application.properties
atlas.client.readTimeoutMSecs=30000 atlas.client.connectTimeoutMSecs=30000
JsonUtil.java
package com.sample.app.util;
import java.io.IOException;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
public class JsonUtil {
public static String marshal(Object obj) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
return mapper.writeValueAsString(obj);
}
public static <T> T unmarshal(Class<T> clazz, String json)
throws JsonParseException, JsonMappingException, IOException {
ObjectMapper mapper = new ObjectMapper();
return (T) mapper.readValue(json, clazz);
}
public static String prettyPrintJson(Object obj) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
return mapper.writeValueAsString(obj);
}
}
CreateTerm.java
package com.sample.app.glossary;
import org.apache.atlas.AtlasClientV2;
import org.apache.atlas.AtlasServiceException;
import org.apache.atlas.model.glossary.AtlasGlossary;
import org.apache.atlas.model.glossary.AtlasGlossaryTerm;
import org.apache.atlas.model.glossary.relations.AtlasGlossaryHeader;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.sample.app.util.JsonUtil;
public class CreateTerm {
public static void main(String[] args) throws AtlasServiceException, JsonProcessingException {
AtlasClientV2 atlasClient = new AtlasClientV2(new String[] { "http://localhost:21000" },
new String[] { "admin", "admin" });
AtlasGlossary atlasGlossary = new AtlasGlossary();
atlasGlossary.setName("myGlosary3");
atlasGlossary.setShortDescription("Demo Glossary");
atlasGlossary.setLongDescription("Demo GLossary.......");
AtlasGlossary persistedGlossary = atlasClient.createGlossary(atlasGlossary);
System.out.println("Glossary : \n" + JsonUtil.prettyPrintJson(persistedGlossary));
AtlasGlossaryTerm glossaryTerm = new AtlasGlossaryTerm();
glossaryTerm.setName("term1");
glossaryTerm.setShortDescription("term1...");
glossaryTerm.setLongDescription("term1...........");
AtlasGlossaryHeader atlasGlossaryHeader = new AtlasGlossaryHeader();
atlasGlossaryHeader.setGlossaryGuid(persistedGlossary.getGuid());
glossaryTerm.setAnchor(atlasGlossaryHeader);
AtlasGlossaryTerm persistedGLossaryTerm = atlasClient.createGlossaryTerm(glossaryTerm);
System.out.println("\n\npersistedGLossaryTerm : \n" + JsonUtil.prettyPrintJson(persistedGLossaryTerm));
}
}
Output
Glossary :
{
"guid" : "844a3e1a-110c-4bef-91bf-622dc1eab3e7",
"qualifiedName" : "myGlosary3",
"name" : "myGlosary3",
"shortDescription" : "Demo Glossary",
"longDescription" : "Demo GLossary......."
}
persistedGLossaryTerm :
{
"guid" : "cd2dbbc5-0440-477e-a6e6-175eb13e3d46",
"qualifiedName" : "term1@myGlosary3",
"name" : "term1",
"shortDescription" : "term1...",
"longDescription" : "term1...........",
"anchor" : {
"glossaryGuid" : "844a3e1a-110c-4bef-91bf-622dc1eab3e7",
"relationGuid" : "607768b1-d47a-4659-aa63-9acc8d175c80"
},
"glossaryTermHeader" : {
"termGuid" : "cd2dbbc5-0440-477e-a6e6-175eb13e3d46",
"qualifiedName" : "term1@myGlosary3"
}
}
You can confirm the same from Atlas UI.

No comments:
Post a Comment