1 package org.commscope.tr069adapter.vesagent.mapper;
\r
3 import java.util.concurrent.Future;
\r
5 import org.commscope.tr069adapter.acs.common.DeviceRPCRequest;
\r
6 import org.commscope.tr069adapter.acs.common.DeviceRPCResponse;
\r
7 import org.commscope.tr069adapter.vesagent.VesConfiguration;
\r
8 import org.commscope.tr069adapter.vesagent.async.WaitForNotifications;
\r
9 import org.slf4j.Logger;
\r
10 import org.slf4j.LoggerFactory;
\r
11 import org.springframework.beans.factory.annotation.Autowired;
\r
12 import org.springframework.scheduling.annotation.Async;
\r
13 import org.springframework.scheduling.annotation.AsyncResult;
\r
14 import org.springframework.stereotype.Component;
\r
15 import org.springframework.web.client.RestTemplate;
\r
19 public class MapperRequestSender {
\r
20 private static final Logger LOG = LoggerFactory.getLogger(MapperRequestSender.class);
\r
21 private RestTemplate restTemplate = new RestTemplate();
\r
24 VesConfiguration config;
\r
27 WaitForNotifications waitForNotifications;
\r
29 // public DeviceRPCResponse sendRequest(DeviceRPCRequest deviceRPCRequest) {
\r
30 // return restTemplate.postForObject(config.getMapperPath(), deviceRPCRequest,
\r
31 // DeviceRPCResponse.class);
\r
35 public Future<DeviceRPCResponse> sendRequest(DeviceRPCRequest deviceRPCRequest) {
\r
36 LOG.info("Sending device connectivity request to ACS for device {}",
\r
37 deviceRPCRequest.getDeviceDetails().getDeviceId());
\r
38 DeviceRPCResponse response = restTemplate.postForObject(config.getMapperPath(),
\r
39 deviceRPCRequest, DeviceRPCResponse.class);
\r
41 waitForNotifications.notifyResult(response);
\r
43 return new AsyncResult<>(response);
\r