public static void main()

in data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/OrchClient.java [15:93]


    public static void main(String are[]) throws ScriptException {
        /*DozerBeanMapper mapper = new DozerBeanMapper();

        DataParsingJobInputEntity dpe = new DataParsingJobInputEntity();
        dpe.setId("id");
        dpe.setDataParsingJobId("dpj");
        dpe.setDataParserInputInterfaceId("dpie");
        dpe.setSelectionQuery("query");

        DataParsingJobInput.Builder builder = DataParsingJobInput.newBuilder();

        mapper.map(dpe, builder);
        System.out.println(builder.build());*/
        ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 6566).usePlaintext().build();
        DataParserServiceGrpc.DataParserServiceBlockingStub parserClient = DataParserServiceGrpc.newBlockingStub(channel);

        //ParsingJobListResponse parsingJobListResponse = parserClient.listParsingJobs(ParsingJobListRequest.newBuilder().build());
        //System.out.println(parsingJobListResponse);
        String parserId = UUID.randomUUID().toString();
        String dm3InputId = UUID.randomUUID().toString();
        String jsonOutputId = UUID.randomUUID().toString();
        ParserRegisterResponse parserRegisterResponse = parserClient.registerParser(ParserRegisterRequest.newBuilder()
                .setParser(DataParser.newBuilder()
                        .setParserId(parserId)
                        .setParserName("DM3 Parser")
                        .setDockerImage("dimuthuupe/dm3-parser:1.0")
                        .setExecCommand("python ./parser.py")
                        .setInputPath("/opt/inputs")
                        .setOutputPath("/opt/outputs")
                        .addInputInterfaces(DataParserInputInterface.newBuilder()
                                .setParserId(parserId)
                                .setParserInputInterfaceId(dm3InputId)
                                .setInputType("FILE")
                                .setInputName("input.dm3").build())
                        .addOutputInterfaces(DataParserOutputInterface.newBuilder()
                                .setParserId(parserId)
                                .setParserOutputInterfaceId(jsonOutputId)
                                .setOutputType("FILE")
                                .setOutputName("derrived-metadata.json")
                                .build())
                        .addOutputInterfaces(DataParserOutputInterface.newBuilder()
                                .setParserId(parserId)
                                .setParserOutputInterfaceId(UUID.randomUUID().toString())
                                .setOutputType("FILE")
                                .setOutputName("img.jpeg").build())
                        .build()).build());

        System.out.println(parserRegisterResponse.getParserId());


        ParserListResponse parserListResponse = parserClient.listParsers(ParserListRequest.newBuilder().build());
        System.out.println(parserListResponse);

        String parsingJobId = UUID.randomUUID().toString();
        ParsingJobRegisterRequest.Builder parsingJob = ParsingJobRegisterRequest.newBuilder().setParsingJob(DataParsingJob.newBuilder()
                .setDataParsingJobId(parsingJobId)
                .setParserId(parserId)
                .addDataParsingJobInputs(DataParsingJobInput.newBuilder()
                        .setId(UUID.randomUUID().toString())
                        .setDataParserInputInterfaceId(dm3InputId)
                        .setDataParsingJobId(parsingJobId)
                        .setSelectionQuery("EXTENSION == dm3").build())
                .addDataParsingJobOutputs(DataParsingJobOutput.newBuilder()
                        .setId(UUID.randomUUID().toString())
                        .setDataParsingJobId(parsingJobId)
                        .setOutputType("JSON")
                        .setDataParserOutputInterfaceId(jsonOutputId).build()).build());
        ParsingJobRegisterResponse parsingJobRegisterResponse = parserClient.registerParsingJob(parsingJob.build());

        System.out.println(parsingJobRegisterResponse);
        /*File f = new File("/tmp/a.dm3");

        ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript");
        Bindings bindings = engine.getBindings(ScriptContext.ENGINE_SCOPE);
        bindings.put("polyglot.js.allowHostAccess", true);
        bindings.put("polyglot.js.allowHostClassLookup", (Predicate<String>) s -> true);
        bindings.put("inputFile", f);
        System.out.println(engine.eval("metadata.getFriendlyName().endsWith(\".dm3\");")); // it will not work without allowHostAccess and allowHostClassLookup*/
    }