Created 03-05-2018 09:56 AM
@Tags({"json mapping with entitymaker"}) @CapabilityDescription("Provide a description") public class MyProcessor extends AbstractProcessor { public static final Relationship SUCCESS = new Relationship.Builder() .name("SUCCESS") .description("Successfully converted incoming json file to EntitymakerJSON") .build(); public static final Relationship FALIURE = new Relationship.Builder() .name("FALIURE") .description("Successfully converted incoming json file to EntitymakerJSON") .build(); private Set<Relationship> relationships; @Override protected void init(final ProcessorInitializationContext context) { final Set<Relationship> relationships = new HashSet<Relationship>(); relationships.add(SUCCESS); relationships.add(FALIURE); this.relationships = Collections.unmodifiableSet(relationships); } @Override public Set<Relationship> getRelationships() { return relationships; } /* public final List<PropertyDescriptor> getSupportedPropertyDescriptors() { return null ; } @OnScheduled public void onScheduled(final ProcessContext context) { }*/ @Override public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException,FlowFileHandlingException { final AtomicReference<String> value = new AtomicReference<>(); FlowFile flowFile = session.get(); if ( flowFile == null ) { return; } session.read(flowFile, new InputStreamCallback() { @Override public void process(InputStream in) throws IOException { try{ JSONParser parser = new JSONParser(); JSONArray inputdata; String json = IOUtils.toString(in); inputdata = (JSONArray) parser.parse(json); Jsonmapping jsm = new Jsonmapping(); for (Object o : inputdata) { JSONObject person = (JSONObject) o; JSONObject jo = jsm.finaljson(person); value.set(jo.toString()); } }catch(Exception ex){ ex.printStackTrace(); getLogger().error("Failed to read json string."); } } }); flowFile = session.write(flowFile, new OutputStreamCallback() { @Override public void process(OutputStream out) throws IOException { out.write(value.get().getBytes()); } }); session.transfer(flowFile, SUCCESS); } }
Created 03-06-2018 06:16 AM
I think I have not used Failure Relationship, that's why is showing Error. Because when I create another processor and take only SUCCESS now it is solved.
Created 03-05-2018 02:30 PM
Please format the code so that it is readable.
Created 03-06-2018 04:45 AM
Hi @Bryan Bende, I have formatted the code please check.
Created 03-06-2018 06:16 AM
I think I have not used Failure Relationship, that's why is showing Error. Because when I create another processor and take only SUCCESS now it is solved.
Created 06-23-2019 10:09 PM
It's because you have a typo in your code: .name("FALIURE")