Search in sources :

Example 1 with KapuaBirthPayload

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);
}
Also used : KapuaLocator(org.eclipse.kapua.locator.KapuaLocator) KapuaPosition(org.eclipse.kapua.message.KapuaPosition) Device(org.eclipse.kapua.service.device.registry.Device) DeviceEventFactory(org.eclipse.kapua.service.device.registry.event.DeviceEventFactory) DeviceFactory(org.eclipse.kapua.service.device.registry.DeviceFactory) KapuaBirthChannel(org.eclipse.kapua.message.device.lifecycle.KapuaBirthChannel) DeviceCreator(org.eclipse.kapua.service.device.registry.DeviceCreator) DeviceRegistryService(org.eclipse.kapua.service.device.registry.DeviceRegistryService) DeviceEventService(org.eclipse.kapua.service.device.registry.event.DeviceEventService) DeviceEventCreator(org.eclipse.kapua.service.device.registry.event.DeviceEventCreator) KapuaId(org.eclipse.kapua.model.id.KapuaId) KapuaBirthPayload(org.eclipse.kapua.message.device.lifecycle.KapuaBirthPayload)

Aggregations

KapuaLocator (org.eclipse.kapua.locator.KapuaLocator)1 KapuaPosition (org.eclipse.kapua.message.KapuaPosition)1 KapuaBirthChannel (org.eclipse.kapua.message.device.lifecycle.KapuaBirthChannel)1 KapuaBirthPayload (org.eclipse.kapua.message.device.lifecycle.KapuaBirthPayload)1 KapuaId (org.eclipse.kapua.model.id.KapuaId)1 Device (org.eclipse.kapua.service.device.registry.Device)1 DeviceCreator (org.eclipse.kapua.service.device.registry.DeviceCreator)1 DeviceFactory (org.eclipse.kapua.service.device.registry.DeviceFactory)1 DeviceRegistryService (org.eclipse.kapua.service.device.registry.DeviceRegistryService)1 DeviceEventCreator (org.eclipse.kapua.service.device.registry.event.DeviceEventCreator)1 DeviceEventFactory (org.eclipse.kapua.service.device.registry.event.DeviceEventFactory)1 DeviceEventService (org.eclipse.kapua.service.device.registry.event.DeviceEventService)1