use of org.eclipse.kapua.message.device.lifecycle.KapuaBirthPayload in project kapua by eclipse.
the class DeviceLifeCycleServiceImpl method birth.
@Override
public void birth(KapuaId connectionId, KapuaBirthMessage message) throws KapuaException {
KapuaBirthPayload payload = message.getPayload();
KapuaBirthChannel channel = message.getChannel();
KapuaId scopeId = message.getScopeId();
KapuaId deviceId = message.getDeviceId();
//
// Device update
KapuaLocator locator = KapuaLocator.getInstance();
DeviceRegistryService deviceRegistryService = locator.getService(DeviceRegistryService.class);
Device device = null;
if (deviceId == null) {
String clientId = channel.getClientId();
DeviceFactory deviceFactory = locator.getFactory(DeviceFactory.class);
DeviceCreator deviceCreator = deviceFactory.newCreator(scopeId, clientId);
deviceCreator.setDisplayName(payload.getDisplayName());
deviceCreator.setSerialNumber(payload.getSerialNumber());
deviceCreator.setModelId(payload.getModelId());
deviceCreator.setImei(payload.getModemImei());
deviceCreator.setImsi(payload.getModemImsi());
deviceCreator.setIccid(payload.getModemIccid());
deviceCreator.setBiosVersion(payload.getBiosVersion());
deviceCreator.setFirmwareVersion(payload.getFirmwareVersion());
deviceCreator.setOsVersion(payload.getOsVersion());
deviceCreator.setJvmVersion(payload.getJvmVersion());
deviceCreator.setOsgiFrameworkVersion(payload.getContainerFrameworkVersion());
deviceCreator.setApplicationIdentifiers(payload.getApplicationIdentifiers());
deviceCreator.setAcceptEncoding(payload.getAcceptEncoding());
deviceCreator.setCredentialsMode(DeviceCredentialsMode.LOOSE);
device = deviceRegistryService.create(deviceCreator);
} else {
device = deviceRegistryService.find(scopeId, deviceId);
device.setDisplayName(payload.getDisplayName());
device.setSerialNumber(payload.getSerialNumber());
device.setModelId(payload.getModelId());
device.setImei(payload.getModemImei());
device.setImsi(payload.getModemImsi());
device.setIccid(payload.getModemIccid());
device.setBiosVersion(payload.getBiosVersion());
device.setFirmwareVersion(payload.getFirmwareVersion());
device.setOsVersion(payload.getOsVersion());
device.setJvmVersion(payload.getJvmVersion());
device.setOsgiFrameworkVersion(payload.getContainerFrameworkVersion());
device.setApplicationIdentifiers(payload.getApplicationIdentifiers());
device.setAcceptEncoding(payload.getAcceptEncoding());
deviceRegistryService.update(device);
}
//
// Event create
DeviceEventService deviceEventService = locator.getService(DeviceEventService.class);
DeviceEventFactory deviceEventFactory = locator.getFactory(DeviceEventFactory.class);
DeviceEventCreator deviceEventCreator = deviceEventFactory.newCreator(scopeId, device.getId(), message.getReceivedOn(), "BIRTH");
deviceEventCreator.setEventMessage(payload.toDisplayString());
// TODO check this change
deviceEventCreator.setResponseCode(KapuaResponseCode.ACCEPTED);
deviceEventCreator.setSentOn(message.getSentOn());
KapuaPosition position = message.getPosition();
if (position != null) {
deviceEventCreator.setPosition(position);
}
deviceEventService.create(deviceEventCreator);
}
Aggregations