Search in sources :

Example 1 with CoAP

use of org.eclipse.californium.core.coap.CoAP in project thingsboard by thingsboard.

the class NoSecObserveClient method start.

public void start() {
    executor.submit(() -> {
        try {
            Request request = Request.newGet();
            request.setObserve();
            observeRelation = coapClient.observe(request, new CoapHandler() {

                @Override
                public void onLoad(CoapResponse response) {
                    String responseText = response.getResponseText();
                    CoAP.ResponseCode code = response.getCode();
                    Integer observe = response.getOptions().getObserve();
                    log.info("CoAP Response received! " + "responseText: {}, " + "code: {}, " + "observe seq number: {}", responseText, code, observe);
                    latch.countDown();
                }

                @Override
                public void onError() {
                    log.error("Ack error!");
                    latch.countDown();
                }
            });
        } catch (Exception e) {
            log.error("Error occurred while sending COAP requests: ");
        }
    });
    try {
        latch.await();
        observeRelation.proactiveCancel();
    } catch (InterruptedException e) {
        log.error("Error occurred: ", e);
    }
}
Also used : CoapResponse(org.eclipse.californium.core.CoapResponse) CoapHandler(org.eclipse.californium.core.CoapHandler) Request(org.eclipse.californium.core.coap.Request) CoAP(org.eclipse.californium.core.coap.CoAP) URISyntaxException(java.net.URISyntaxException)

Example 2 with CoAP

use of org.eclipse.californium.core.coap.CoAP in project hono by eclipse.

the class AbstractVertxBasedCoapAdapter method createServer.

private Future<CoapServer> createServer() {
    if (endpointFactory == null) {
        return Future.failedFuture(new IllegalStateException("coapEndpointFactory property must be set if no CoAP server is set explicitly"));
    }
    log.info("creating new CoAP server");
    final CoapServer newServer = new CoapServer(NetworkConfig.createStandardWithoutFile());
    final Future<Endpoint> secureEndpointFuture = endpointFactory.getSecureEndpoint().onFailure(t -> log.info("not creating secure endpoint: {}", t.getMessage())).map(ep -> {
        newServer.addEndpoint(ep);
        this.secureEndpoint = ep;
        return ep;
    });
    final Future<Endpoint> insecureEndpointFuture = endpointFactory.getInsecureEndpoint().onFailure(t -> log.info("not creating insecure endpoint: {}", t.getMessage())).map(ep -> {
        newServer.addEndpoint(ep);
        this.insecureEndpoint = ep;
        return ep;
    });
    return CompositeFuture.any(insecureEndpointFuture, secureEndpointFuture).map(ok -> {
        this.server = newServer;
        return newServer;
    });
}
Also used : Futures(org.eclipse.hono.util.Futures) AbstractProtocolAdapterBase(org.eclipse.hono.adapter.AbstractProtocolAdapterBase) Promise(io.vertx.core.Promise) Set(java.util.Set) CoapServer(org.eclipse.californium.core.CoapServer) Constants(org.eclipse.hono.util.Constants) Future(io.vertx.core.Future) HashSet(java.util.HashSet) Objects(java.util.Objects) NetworkConfig(org.eclipse.californium.core.network.config.NetworkConfig) CompositeFuture(io.vertx.core.CompositeFuture) Resource(org.eclipse.californium.core.server.resources.Resource) CoAP(org.eclipse.californium.core.coap.CoAP) Endpoint(org.eclipse.californium.core.network.Endpoint) Optional(java.util.Optional) Handler(io.vertx.core.Handler) Endpoint(org.eclipse.californium.core.network.Endpoint) CoapServer(org.eclipse.californium.core.CoapServer)

Example 3 with CoAP

use of org.eclipse.californium.core.coap.CoAP in project hono by eclipse.

the class TracingSupportingHonoResourceTest method testUnsupportedRequestCodesResultInMethodNotAllowed.

/**
 * Verifies that the resource returns a 4.05 for request codes other than PUT or POST.
 *
 * @param requestCode The CoAP request code to verify.
 */
@ParameterizedTest
@MethodSource("unsupportedRequestCodes")
public void testUnsupportedRequestCodesResultInMethodNotAllowed(final Code requestCode) {
    final Request request = new Request(requestCode);
    final Exchange exchange = newExchange(request);
    resource.handleRequest(exchange);
    verify(endpoint).sendResponse(eq(exchange), argThat(response -> response.getCode() == CoAP.ResponseCode.METHOD_NOT_ALLOWED));
    verify(span).setTag(eq(CoapConstants.TAG_COAP_RESPONSE_CODE.getKey()), eq("4.05"));
}
Also used : CoapExchange(org.eclipse.californium.core.server.resources.CoapExchange) Exchange(org.eclipse.californium.core.network.Exchange) ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) CoapExchange(org.eclipse.californium.core.server.resources.CoapExchange) BeforeEach(org.junit.jupiter.api.BeforeEach) Response(org.eclipse.californium.core.coap.Response) ArgumentMatchers.argThat(org.mockito.ArgumentMatchers.argThat) Exchange(org.eclipse.californium.core.network.Exchange) ArgumentMatchers.eq(org.mockito.ArgumentMatchers.eq) SpanBuilder(io.opentracing.Tracer.SpanBuilder) Tags(io.opentracing.tag.Tags) RETURNS_SELF(org.mockito.Mockito.RETURNS_SELF) TenantTracingConfig(org.eclipse.hono.util.TenantTracingConfig) Origin(org.eclipse.californium.core.network.Exchange.Origin) References(io.opentracing.References) Mockito.doAnswer(org.mockito.Mockito.doAnswer) Map(java.util.Map) Binary(io.opentracing.propagation.Binary) Option(org.eclipse.californium.core.coap.Option) MethodSource(org.junit.jupiter.params.provider.MethodSource) ArgumentMatchers.isNull(org.mockito.ArgumentMatchers.isNull) Tracer(io.opentracing.Tracer) TracingSamplingMode(org.eclipse.hono.util.TracingSamplingMode) Mockito.when(org.mockito.Mockito.when) TenantClient(org.eclipse.hono.client.registry.TenantClient) Future(io.vertx.core.Future) Device(org.eclipse.hono.auth.Device) Mockito.verify(org.mockito.Mockito.verify) TenantObject(org.eclipse.hono.util.TenantObject) SpanContext(io.opentracing.SpanContext) Test(org.junit.jupiter.api.Test) Mockito.never(org.mockito.Mockito.never) Code(org.eclipse.californium.core.coap.CoAP.Code) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) Stream(java.util.stream.Stream) Request(org.eclipse.californium.core.coap.Request) CoAP(org.eclipse.californium.core.coap.CoAP) Format(io.opentracing.propagation.Format) Endpoint(org.eclipse.californium.core.network.Endpoint) Span(io.opentracing.Span) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) Mockito.mock(org.mockito.Mockito.mock) Request(org.eclipse.californium.core.coap.Request) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) MethodSource(org.junit.jupiter.params.provider.MethodSource)

Example 4 with CoAP

use of org.eclipse.californium.core.coap.CoAP in project hono by eclipse.

the class TracingSupportingHonoResourceTest method testDefaultHandlersResultInNotImplemented.

/**
 * Verifies that the resource returns a 5.01 for request codes PUT and POST.
 *
 * @param requestCode The CoAP request code to verify.
 */
@ParameterizedTest
@MethodSource("supportedRequestCodes")
public void testDefaultHandlersResultInNotImplemented(final Code requestCode) {
    final Request request = new Request(requestCode);
    final Exchange exchange = newExchange(request);
    resource.handleRequest(exchange);
    verify(endpoint).sendResponse(eq(exchange), argThat(response -> response.getCode() == CoAP.ResponseCode.NOT_IMPLEMENTED));
    verify(span).setTag(eq(CoapConstants.TAG_COAP_RESPONSE_CODE.getKey()), eq("5.01"));
}
Also used : CoapExchange(org.eclipse.californium.core.server.resources.CoapExchange) Exchange(org.eclipse.californium.core.network.Exchange) ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) CoapExchange(org.eclipse.californium.core.server.resources.CoapExchange) BeforeEach(org.junit.jupiter.api.BeforeEach) Response(org.eclipse.californium.core.coap.Response) ArgumentMatchers.argThat(org.mockito.ArgumentMatchers.argThat) Exchange(org.eclipse.californium.core.network.Exchange) ArgumentMatchers.eq(org.mockito.ArgumentMatchers.eq) SpanBuilder(io.opentracing.Tracer.SpanBuilder) Tags(io.opentracing.tag.Tags) RETURNS_SELF(org.mockito.Mockito.RETURNS_SELF) TenantTracingConfig(org.eclipse.hono.util.TenantTracingConfig) Origin(org.eclipse.californium.core.network.Exchange.Origin) References(io.opentracing.References) Mockito.doAnswer(org.mockito.Mockito.doAnswer) Map(java.util.Map) Binary(io.opentracing.propagation.Binary) Option(org.eclipse.californium.core.coap.Option) MethodSource(org.junit.jupiter.params.provider.MethodSource) ArgumentMatchers.isNull(org.mockito.ArgumentMatchers.isNull) Tracer(io.opentracing.Tracer) TracingSamplingMode(org.eclipse.hono.util.TracingSamplingMode) Mockito.when(org.mockito.Mockito.when) TenantClient(org.eclipse.hono.client.registry.TenantClient) Future(io.vertx.core.Future) Device(org.eclipse.hono.auth.Device) Mockito.verify(org.mockito.Mockito.verify) TenantObject(org.eclipse.hono.util.TenantObject) SpanContext(io.opentracing.SpanContext) Test(org.junit.jupiter.api.Test) Mockito.never(org.mockito.Mockito.never) Code(org.eclipse.californium.core.coap.CoAP.Code) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) Stream(java.util.stream.Stream) Request(org.eclipse.californium.core.coap.Request) CoAP(org.eclipse.californium.core.coap.CoAP) Format(io.opentracing.propagation.Format) Endpoint(org.eclipse.californium.core.network.Endpoint) Span(io.opentracing.Span) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) Mockito.mock(org.mockito.Mockito.mock) Request(org.eclipse.californium.core.coap.Request) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) MethodSource(org.junit.jupiter.params.provider.MethodSource)

Aggregations

CoAP (org.eclipse.californium.core.coap.CoAP)4 Future (io.vertx.core.Future)3 Request (org.eclipse.californium.core.coap.Request)3 Endpoint (org.eclipse.californium.core.network.Endpoint)3 References (io.opentracing.References)2 Span (io.opentracing.Span)2 SpanContext (io.opentracing.SpanContext)2 Tracer (io.opentracing.Tracer)2 SpanBuilder (io.opentracing.Tracer.SpanBuilder)2 Binary (io.opentracing.propagation.Binary)2 Format (io.opentracing.propagation.Format)2 Tags (io.opentracing.tag.Tags)2 Map (java.util.Map)2 Stream (java.util.stream.Stream)2 Code (org.eclipse.californium.core.coap.CoAP.Code)2 Option (org.eclipse.californium.core.coap.Option)2 Response (org.eclipse.californium.core.coap.Response)2 Exchange (org.eclipse.californium.core.network.Exchange)2 Origin (org.eclipse.californium.core.network.Exchange.Origin)2 CoapExchange (org.eclipse.californium.core.server.resources.CoapExchange)2