Monitoring COAP Leshan Dependency Upgrade
This commit is contained in:
		
							parent
							
								
									7e49730be6
								
							
						
					
					
						commit
						99d2d1e033
					
				@ -42,8 +42,6 @@
 | 
				
			|||||||
        <pkg.implementationTitle>ThingsBoard Monitoring Service</pkg.implementationTitle>
 | 
					        <pkg.implementationTitle>ThingsBoard Monitoring Service</pkg.implementationTitle>
 | 
				
			||||||
        <pkg.mainClass>org.thingsboard.monitoring.ThingsboardMonitoringApplication</pkg.mainClass>
 | 
					        <pkg.mainClass>org.thingsboard.monitoring.ThingsboardMonitoringApplication</pkg.mainClass>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <californium.version>2.6.1</californium.version>
 | 
					 | 
				
			||||||
        <leshan.version>2.0.0-M4</leshan.version>
 | 
					 | 
				
			||||||
    </properties>
 | 
					    </properties>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <dependencies>
 | 
					    <dependencies>
 | 
				
			||||||
 | 
				
			|||||||
@ -20,13 +20,16 @@ import lombok.Setter;
 | 
				
			|||||||
import lombok.SneakyThrows;
 | 
					import lombok.SneakyThrows;
 | 
				
			||||||
import lombok.extern.slf4j.Slf4j;
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
import org.apache.commons.lang3.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.eclipse.californium.core.network.CoapEndpoint;
 | 
					import org.eclipse.californium.core.config.CoapConfig;
 | 
				
			||||||
import org.eclipse.californium.core.network.config.NetworkConfig;
 | 
					import org.eclipse.californium.elements.config.Configuration;
 | 
				
			||||||
import org.eclipse.californium.core.observe.ObservationStore;
 | 
					import org.eclipse.californium.scandium.config.DtlsConfig;
 | 
				
			||||||
import org.eclipse.californium.scandium.DTLSConnector;
 | 
					import org.eclipse.leshan.client.LeshanClient;
 | 
				
			||||||
import org.eclipse.californium.scandium.config.DtlsConnectorConfig;
 | 
					import org.eclipse.leshan.client.LeshanClientBuilder;
 | 
				
			||||||
import org.eclipse.leshan.client.californium.LeshanClient;
 | 
					import org.eclipse.leshan.client.californium.endpoint.CaliforniumClientEndpointsProvider;
 | 
				
			||||||
import org.eclipse.leshan.client.californium.LeshanClientBuilder;
 | 
					import org.eclipse.leshan.client.californium.endpoint.ClientProtocolProvider;
 | 
				
			||||||
 | 
					import org.eclipse.leshan.client.californium.endpoint.coap.CoapOscoreProtocolProvider;
 | 
				
			||||||
 | 
					import org.eclipse.leshan.client.californium.endpoint.coaps.CoapsClientProtocolProvider;
 | 
				
			||||||
 | 
					import org.eclipse.leshan.client.endpoint.LwM2mClientEndpointsProvider;
 | 
				
			||||||
import org.eclipse.leshan.client.engine.DefaultRegistrationEngineFactory;
 | 
					import org.eclipse.leshan.client.engine.DefaultRegistrationEngineFactory;
 | 
				
			||||||
import org.eclipse.leshan.client.object.Security;
 | 
					import org.eclipse.leshan.client.object.Security;
 | 
				
			||||||
import org.eclipse.leshan.client.object.Server;
 | 
					import org.eclipse.leshan.client.object.Server;
 | 
				
			||||||
@ -34,9 +37,8 @@ import org.eclipse.leshan.client.observer.LwM2mClientObserver;
 | 
				
			|||||||
import org.eclipse.leshan.client.resource.BaseInstanceEnabler;
 | 
					import org.eclipse.leshan.client.resource.BaseInstanceEnabler;
 | 
				
			||||||
import org.eclipse.leshan.client.resource.DummyInstanceEnabler;
 | 
					import org.eclipse.leshan.client.resource.DummyInstanceEnabler;
 | 
				
			||||||
import org.eclipse.leshan.client.resource.ObjectsInitializer;
 | 
					import org.eclipse.leshan.client.resource.ObjectsInitializer;
 | 
				
			||||||
import org.eclipse.leshan.client.servers.ServerIdentity;
 | 
					import org.eclipse.leshan.client.servers.LwM2mServer;
 | 
				
			||||||
import org.eclipse.leshan.core.ResponseCode;
 | 
					import org.eclipse.leshan.core.ResponseCode;
 | 
				
			||||||
import org.eclipse.leshan.core.californium.EndpointFactory;
 | 
					 | 
				
			||||||
import org.eclipse.leshan.core.model.InvalidDDFFileException;
 | 
					import org.eclipse.leshan.core.model.InvalidDDFFileException;
 | 
				
			||||||
import org.eclipse.leshan.core.model.LwM2mModel;
 | 
					import org.eclipse.leshan.core.model.LwM2mModel;
 | 
				
			||||||
import org.eclipse.leshan.core.model.ObjectLoader;
 | 
					import org.eclipse.leshan.core.model.ObjectLoader;
 | 
				
			||||||
@ -53,7 +55,6 @@ import org.thingsboard.monitoring.util.ResourceUtils;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import javax.security.auth.Destroyable;
 | 
					import javax.security.auth.Destroyable;
 | 
				
			||||||
import java.io.IOException;
 | 
					import java.io.IOException;
 | 
				
			||||||
import java.net.InetSocketAddress;
 | 
					 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.Collections;
 | 
					import java.util.Collections;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
@ -95,9 +96,11 @@ public class Lwm2mClient extends BaseInstanceEnabler implements Destroyable {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Security security = noSec(serverUri, 123);
 | 
					        Security security = noSec(serverUri, 123);
 | 
				
			||||||
        NetworkConfig coapConfig = new NetworkConfig().setString(NetworkConfig.Keys.COAP_PORT, StringUtils.substringAfterLast(serverUri, ":"));
 | 
					        Configuration coapConfig = new Configuration();
 | 
				
			||||||
 | 
					        String portStr = StringUtils.substringAfterLast(serverUri, ":");
 | 
				
			||||||
        LeshanClient leshanClient;
 | 
					        if (StringUtils.isNotEmpty(portStr)) {
 | 
				
			||||||
 | 
					            coapConfig.set(CoapConfig.COAP_PORT, Integer.parseInt(portStr));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        LwM2mModel model = new StaticModel(models);
 | 
					        LwM2mModel model = new StaticModel(models);
 | 
				
			||||||
        ObjectsInitializer initializer = new ObjectsInitializer(model);
 | 
					        ObjectsInitializer initializer = new ObjectsInitializer(model);
 | 
				
			||||||
@ -105,118 +108,121 @@ public class Lwm2mClient extends BaseInstanceEnabler implements Destroyable {
 | 
				
			|||||||
        initializer.setInstancesForObject(SERVER, new Server(123, TimeUnit.MINUTES.toSeconds(5)));
 | 
					        initializer.setInstancesForObject(SERVER, new Server(123, TimeUnit.MINUTES.toSeconds(5)));
 | 
				
			||||||
        initializer.setInstancesForObject(DEVICE, this);
 | 
					        initializer.setInstancesForObject(DEVICE, this);
 | 
				
			||||||
        initializer.setClassForObject(ACCESS_CONTROL, DummyInstanceEnabler.class);
 | 
					        initializer.setClassForObject(ACCESS_CONTROL, DummyInstanceEnabler.class);
 | 
				
			||||||
        DtlsConnectorConfig.Builder dtlsConfig = new DtlsConnectorConfig.Builder();
 | 
					 | 
				
			||||||
        dtlsConfig.setRecommendedCipherSuitesOnly(true);
 | 
					 | 
				
			||||||
        dtlsConfig.setClientOnly();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Create client endpoints Provider
 | 
				
			||||||
 | 
					        List<ClientProtocolProvider> protocolProvider = new ArrayList<>();
 | 
				
			||||||
 | 
					        protocolProvider.add(new CoapOscoreProtocolProvider());
 | 
				
			||||||
 | 
					        protocolProvider.add(new CoapsClientProtocolProvider());
 | 
				
			||||||
 | 
					        CaliforniumClientEndpointsProvider.Builder endpointsBuilder = new CaliforniumClientEndpointsProvider.Builder(
 | 
				
			||||||
 | 
					                protocolProvider.toArray(new ClientProtocolProvider[protocolProvider.size()]));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Create Californium Configuration
 | 
				
			||||||
 | 
					        Configuration clientCoapConfig = endpointsBuilder.createDefaultConfiguration();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Set some DTLS stuff
 | 
				
			||||||
 | 
					        clientCoapConfig.setTransient(DtlsConfig.DTLS_RECOMMENDED_CIPHER_SUITES_ONLY);
 | 
				
			||||||
 | 
					        clientCoapConfig.set(DtlsConfig.DTLS_RECOMMENDED_CIPHER_SUITES_ONLY, true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Set Californium Configuration
 | 
				
			||||||
 | 
					        endpointsBuilder.setConfiguration(clientCoapConfig);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // creates EndpointsProvider
 | 
				
			||||||
 | 
					        List<LwM2mClientEndpointsProvider> endpointsProvider = new ArrayList<>();
 | 
				
			||||||
 | 
					        endpointsProvider.add(endpointsBuilder.build());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Configure registration engine
 | 
				
			||||||
        DefaultRegistrationEngineFactory engineFactory = new DefaultRegistrationEngineFactory();
 | 
					        DefaultRegistrationEngineFactory engineFactory = new DefaultRegistrationEngineFactory();
 | 
				
			||||||
        engineFactory.setReconnectOnUpdate(false);
 | 
					        engineFactory.setReconnectOnUpdate(false);
 | 
				
			||||||
        engineFactory.setResumeOnConnect(true);
 | 
					        engineFactory.setResumeOnConnect(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        EndpointFactory endpointFactory = new EndpointFactory() {
 | 
					        // Build the client
 | 
				
			||||||
 | 
					 | 
				
			||||||
            @Override
 | 
					 | 
				
			||||||
            public CoapEndpoint createUnsecuredEndpoint(InetSocketAddress address, NetworkConfig coapConfig,
 | 
					 | 
				
			||||||
                                                        ObservationStore store) {
 | 
					 | 
				
			||||||
                CoapEndpoint.Builder builder = new CoapEndpoint.Builder();
 | 
					 | 
				
			||||||
                builder.setInetSocketAddress(address);
 | 
					 | 
				
			||||||
                builder.setNetworkConfig(coapConfig);
 | 
					 | 
				
			||||||
                return builder.build();
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            @Override
 | 
					 | 
				
			||||||
            public CoapEndpoint createSecuredEndpoint(DtlsConnectorConfig dtlsConfig, NetworkConfig coapConfig,
 | 
					 | 
				
			||||||
                                                      ObservationStore store) {
 | 
					 | 
				
			||||||
                CoapEndpoint.Builder builder = new CoapEndpoint.Builder();
 | 
					 | 
				
			||||||
                DtlsConnectorConfig.Builder dtlsConfigBuilder = new DtlsConnectorConfig.Builder(dtlsConfig);
 | 
					 | 
				
			||||||
                builder.setConnector(new DTLSConnector(dtlsConfigBuilder.build()));
 | 
					 | 
				
			||||||
                builder.setNetworkConfig(coapConfig);
 | 
					 | 
				
			||||||
                return builder.build();
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        LeshanClientBuilder builder = new LeshanClientBuilder(endpoint);
 | 
					        LeshanClientBuilder builder = new LeshanClientBuilder(endpoint);
 | 
				
			||||||
        builder.setObjects(initializer.createAll());
 | 
					        builder.setObjects(initializer.createAll());
 | 
				
			||||||
        builder.setCoapConfig(coapConfig);
 | 
					        builder.setEndpointsProviders(endpointsProvider.toArray(new LwM2mClientEndpointsProvider[endpointsProvider.size()]));
 | 
				
			||||||
        builder.setDtlsConfig(dtlsConfig);
 | 
					 | 
				
			||||||
        builder.setRegistrationEngineFactory(engineFactory);
 | 
					        builder.setRegistrationEngineFactory(engineFactory);
 | 
				
			||||||
        builder.setEndpointFactory(endpointFactory);
 | 
					 | 
				
			||||||
        builder.setDecoder(new DefaultLwM2mDecoder(false));
 | 
					        builder.setDecoder(new DefaultLwM2mDecoder(false));
 | 
				
			||||||
        builder.setEncoder(new DefaultLwM2mEncoder(false));
 | 
					        builder.setEncoder(new DefaultLwM2mEncoder(false));
 | 
				
			||||||
        leshanClient = builder.build();
 | 
					        leshanClient = builder.build();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Add observer
 | 
				
			||||||
        LwM2mClientObserver observer = new LwM2mClientObserver() {
 | 
					        LwM2mClientObserver observer = new LwM2mClientObserver() {
 | 
				
			||||||
 | 
					            @Override
 | 
				
			||||||
 | 
					            public void onBootstrapStarted(LwM2mServer bsserver, BootstrapRequest request) {
 | 
				
			||||||
 | 
					                // No implementation needed
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
            public void onBootstrapStarted(ServerIdentity bsserver, BootstrapRequest request) {}
 | 
					            public void onBootstrapSuccess(LwM2mServer bsserver, BootstrapRequest request) {
 | 
				
			||||||
 | 
					                // No implementation needed
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
            public void onBootstrapSuccess(ServerIdentity bsserver, BootstrapRequest request) {}
 | 
					            public void onBootstrapFailure(LwM2mServer bsserver, BootstrapRequest request, ResponseCode responseCode, String errorMessage, Exception cause) {
 | 
				
			||||||
 | 
					                // No implementation needed
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
            public void onBootstrapFailure(ServerIdentity bsserver, BootstrapRequest request,
 | 
					            public void onBootstrapTimeout(LwM2mServer bsserver, BootstrapRequest request) {
 | 
				
			||||||
                                           ResponseCode responseCode, String errorMessage, Exception cause) {}
 | 
					                // No implementation needed
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
            public void onBootstrapTimeout(ServerIdentity bsserver, BootstrapRequest request) {}
 | 
					            public void onRegistrationStarted(LwM2mServer server, RegisterRequest request) {
 | 
				
			||||||
 | 
					 | 
				
			||||||
            @Override
 | 
					 | 
				
			||||||
            public void onRegistrationStarted(ServerIdentity server, RegisterRequest request) {
 | 
					 | 
				
			||||||
                log.debug("onRegistrationStarted [{}]", request.getEndpointName());
 | 
					                log.debug("onRegistrationStarted [{}]", request.getEndpointName());
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
            public void onRegistrationSuccess(ServerIdentity server, RegisterRequest request, String registrationID) {
 | 
					            public void onRegistrationSuccess(LwM2mServer server, RegisterRequest request, String registrationID) {
 | 
				
			||||||
                log.debug("onRegistrationSuccess [{}] [{}]", request.getEndpointName(), registrationID);
 | 
					                log.debug("onRegistrationSuccess [{}] [{}]", request.getEndpointName(), registrationID);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
            public void onRegistrationFailure(ServerIdentity server, RegisterRequest request, ResponseCode responseCode, String errorMessage, Exception cause) {
 | 
					            public void onRegistrationFailure(LwM2mServer server, RegisterRequest request, ResponseCode responseCode, String errorMessage, Exception cause) {
 | 
				
			||||||
                log.debug("onRegistrationFailure [{}] [{}] [{}]", request.getEndpointName(), responseCode, errorMessage);
 | 
					                log.debug("onRegistrationFailure [{}] [{}] [{}]", request.getEndpointName(), responseCode, errorMessage);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
            public void onRegistrationTimeout(ServerIdentity server, RegisterRequest request) {
 | 
					            public void onRegistrationTimeout(LwM2mServer server, RegisterRequest request) {
 | 
				
			||||||
                log.debug("onRegistrationTimeout [{}]", request.getEndpointName());
 | 
					                log.debug("onRegistrationTimeout [{}]", request.getEndpointName());
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
            public void onUpdateStarted(ServerIdentity server, UpdateRequest request) {
 | 
					            public void onUpdateStarted(LwM2mServer server, UpdateRequest request) {
 | 
				
			||||||
                log.debug("onUpdateStarted [{}]", request.getRegistrationId());
 | 
					                log.debug("onUpdateStarted [{}]", request.getRegistrationId());
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
            public void onUpdateSuccess(ServerIdentity server, UpdateRequest request) {
 | 
					            public void onUpdateSuccess(LwM2mServer server, UpdateRequest request) {
 | 
				
			||||||
                log.debug("onUpdateSuccess [{}]", request.getRegistrationId());
 | 
					                log.debug("onUpdateSuccess [{}]", request.getRegistrationId());
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
            public void onUpdateFailure(ServerIdentity server, UpdateRequest request, ResponseCode responseCode, String errorMessage, Exception cause) {
 | 
					            public void onUpdateFailure(LwM2mServer server, UpdateRequest request, ResponseCode responseCode, String errorMessage, Exception cause) {
 | 
				
			||||||
                log.debug("onUpdateFailure [{}]", request.getRegistrationId());
 | 
					                log.debug("onUpdateFailure [{}]", request.getRegistrationId());
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
            public void onUpdateTimeout(ServerIdentity server, UpdateRequest request) {
 | 
					            public void onUpdateTimeout(LwM2mServer server, UpdateRequest request) {
 | 
				
			||||||
                log.debug("onUpdateTimeout [{}]", request.getRegistrationId());
 | 
					                log.debug("onUpdateTimeout [{}]", request.getRegistrationId());
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
            public void onDeregistrationStarted(ServerIdentity server, DeregisterRequest request) {
 | 
					            public void onDeregistrationStarted(LwM2mServer server, DeregisterRequest request) {
 | 
				
			||||||
                log.debug("onDeregistrationStarted [{}]", request.getRegistrationId());
 | 
					                log.debug("onDeregistrationStarted [{}]", request.getRegistrationId());
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
            public void onDeregistrationSuccess(ServerIdentity server, DeregisterRequest request) {
 | 
					            public void onDeregistrationSuccess(LwM2mServer server, DeregisterRequest request) {
 | 
				
			||||||
                log.debug("onDeregistrationStarted [{}]", request.getRegistrationId());
 | 
					                log.debug("onDeregistrationSuccess [{}]", request.getRegistrationId());
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
            public void onDeregistrationFailure(ServerIdentity server, DeregisterRequest request, ResponseCode responseCode, String errorMessage, Exception cause) {
 | 
					            public void onDeregistrationFailure(LwM2mServer server, DeregisterRequest request, ResponseCode responseCode, String errorMessage, Exception cause) {
 | 
				
			||||||
                log.debug("onDeregistrationFailure [{}] [{}] [{}]", request.getRegistrationId(), responseCode, errorMessage);
 | 
					                log.debug("onDeregistrationFailure [{}] [{}] [{}]", request.getRegistrationId(), responseCode, errorMessage);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
            public void onDeregistrationTimeout(ServerIdentity server, DeregisterRequest request) {
 | 
					            public void onDeregistrationTimeout(LwM2mServer server, DeregisterRequest request) {
 | 
				
			||||||
                log.debug("onDeregistrationTimeout [{}]", request.getRegistrationId());
 | 
					                log.debug("onDeregistrationTimeout [{}]", request.getRegistrationId());
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -224,7 +230,6 @@ public class Lwm2mClient extends BaseInstanceEnabler implements Destroyable {
 | 
				
			|||||||
            public void onUnexpectedError(Throwable unexpectedError) {
 | 
					            public void onUnexpectedError(Throwable unexpectedError) {
 | 
				
			||||||
                log.debug("onUnexpectedError [{}]", unexpectedError.toString());
 | 
					                log.debug("onUnexpectedError [{}]", unexpectedError.toString());
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        leshanClient.addObserver(observer);
 | 
					        leshanClient.addObserver(observer);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -239,17 +244,17 @@ public class Lwm2mClient extends BaseInstanceEnabler implements Destroyable {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public ReadResponse read(ServerIdentity identity, int resourceId) {
 | 
					    public ReadResponse read(LwM2mServer server, int resourceId) {
 | 
				
			||||||
        if (supportedResources.contains(resourceId)) {
 | 
					        if (supportedResources.contains(resourceId)) {
 | 
				
			||||||
            return ReadResponse.success(resourceId, data);
 | 
					            return ReadResponse.success(resourceId, data);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return super.read(identity, resourceId);
 | 
					        return super.read(server, resourceId);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @SneakyThrows
 | 
					    @SneakyThrows
 | 
				
			||||||
    public void send(String data, int resource) {
 | 
					    public void send(String data, int resource) {
 | 
				
			||||||
        this.data = data;
 | 
					        this.data = data;
 | 
				
			||||||
        fireResourcesChange(resource);
 | 
					        fireResourceChange(resource);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user