private ClientOption readClientOption(final Function<String, String> properties, final String transportName) {
        final ClientOption clientOption = new ClientOption();

        ValueAnnotationProcessor reader = new ValueAnnotationProcessor();
        reader.process(clientOption, new Function<String, String>() {
            @Override
            public String apply(String placeholderName) {
                String prefix = transportName + placeholderName;
                return properties.apply(prefix);
            }
        });
        return clientOption;
    }
NOTE module accessibility
@see com.navercorp.pinpoint.bootstrap.java9.module.ModuleSupport#addPermissionToValueAnnotation(JavaModule)
@author Woonduk Kang(emeroad)
@author jaehong.kim
agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/context/grpc/config/GrpcTransportConfig.java