private void invokeMethodCommon()

in docker_images/java/wrapper/src/main/java/glue/ServiceGlue.java [62:107]


    private void invokeMethodCommon(String connectionId, String deviceId, String moduleId, MethodInvoke methodInvokeParameters, Handler<AsyncResult<Object>> handler)
    {
        System.out.printf("invoking method on %s with deviceId = %s moduleId = %s%n", connectionId, deviceId, moduleId);
        System.out.println(methodInvokeParameters);

        DirectMethodsClient client = getClient(connectionId);
        if (client == null)
        {
            handler.handle(Future.failedFuture(new MainApiException(500, "invalid connection id")));
        }
        else
        {
            String methodName = methodInvokeParameters.getMethodName();
            Object payload = methodInvokeParameters.getPayload();

            System.out.println("The payload type is: " + payload.getClass());

            DirectMethodRequestOptions requestOptions =
                DirectMethodRequestOptions.builder()
                    .methodResponseTimeoutSeconds(methodInvokeParameters.getResponseTimeoutInSeconds())
                    .methodConnectTimeoutSeconds(methodInvokeParameters.getConnectTimeoutInSeconds())
                    .payload(payload)
                    .build();

            DirectMethodResponse result = null;
            System.out.printf("invoking%n");
            try
            {
                if (moduleId == null)
                {
                    result = client.invoke(deviceId, methodName, requestOptions);
                }
                else
                {
                    result = client.invoke(deviceId, moduleId, methodName, requestOptions);
                }
            }
            catch (Exception e)
            {
                handler.handle(Future.failedFuture(e));
            }
            System.out.printf("invoke returned%n");
            System.out.println(result);
            handler.handle(Future.succeededFuture(makeMethodResultThatEncodesCorrectly(result)));
        }
    }