use of org.eclipse.kapua.service.device.call.DeviceCallFactory in project kapua by eclipse.
the class DeviceCallExecutor method send.
@SuppressWarnings({ "unchecked" })
public RS send() throws KapuaException {
//
// Get the correct device call
KapuaLocator locator = KapuaLocator.getInstance();
DeviceCallFactory kapuaDeviceCallFactory = locator.getFactory(DeviceCallFactory.class);
DeviceCall<DeviceRequestMessage, DeviceResponseMessage> deviceCall = kapuaDeviceCallFactory.newDeviceCall();
Translator tKapuaToClient = Translator.getTranslatorFor(requestMessage.getRequestClass(), deviceCall.getBaseMessageClass());
DeviceResponseMessage responseMessage;
timeout = timeout == null ? DeviceManagementSetting.getInstance().getLong(DeviceManagementSettingKey.REQUEST_TIMEOUT) : timeout;
DeviceRequestMessage deviceRequestMessage = (DeviceRequestMessage) tKapuaToClient.translate(requestMessage);
switch(requestMessage.getChannel().getMethod()) {
case CREATE:
{
responseMessage = deviceCall.create(deviceRequestMessage, timeout);
}
break;
case READ:
{
responseMessage = deviceCall.read(deviceRequestMessage, timeout);
}
break;
case OPTIONS:
{
responseMessage = deviceCall.options(deviceRequestMessage, timeout);
}
break;
case DELETE:
{
responseMessage = deviceCall.delete(deviceRequestMessage, timeout);
}
break;
case EXECUTE:
{
responseMessage = deviceCall.execute(deviceRequestMessage, timeout);
}
break;
case WRITE:
{
responseMessage = deviceCall.write(deviceRequestMessage, timeout);
}
break;
default:
throw new DeviceManagementException(DeviceManagementErrorCodes.REQUEST_BAD_METHOD, null, requestMessage.getChannel().getMethod());
}
Translator tClientToKapua = Translator.getTranslatorFor(deviceCall.getBaseMessageClass(), requestMessage.getResponseClass());
return (RS) tClientToKapua.translate(responseMessage);
}
use of org.eclipse.kapua.service.device.call.DeviceCallFactory in project kapua by eclipse.
the class KuraCallTest method testKuraCall.
// Disabling this test until we have build fixed. Then we should register DeviceCallFactory to service locator
// and enable the test again.
@Ignore
@SuppressWarnings("unchecked")
@Test
public void testKuraCall() throws Exception {
KapuaLocator locator = KapuaLocator.getInstance();
DeviceCallFactory deviceCallFactory = locator.getFactory(DeviceCallFactory.class);
DeviceCall deviceCall = deviceCallFactory.newDeviceCall();
KuraRequestChannel requestChannel = new KuraRequestChannel("$EDC", "kapua-sys", "00:60:0C:82:52:34");
requestChannel.setAppId("CMD-V1");
requestChannel.setMethod(KuraMethod.EXEC);
requestChannel.setResources(new String[] { "command" });
KuraRequestPayload requestPayload = new KuraRequestPayload();
// requestPayload.metrics().put(Kurame, value)
requestPayload.getMetrics().put(CommandMetrics.APP_METRIC_CMD.getValue(), "ifconfig");
KuraRequestMessage requestMessage = new KuraRequestMessage(requestChannel, new Date(), requestPayload);
deviceCall.execute(requestMessage, 120000L);
}
Aggregations