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