Skip to content

Commit

Permalink
Separate DeviceManagement and Bootstrap Request class hierarchy.
Browse files Browse the repository at this point in the history
  • Loading branch information
sbernard31 committed Jul 3, 2024
1 parent ab4f9a4 commit bc90314
Show file tree
Hide file tree
Showing 84 changed files with 753 additions and 762 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@
import org.eclipse.leshan.core.peer.LwM2mPeer;
import org.eclipse.leshan.core.request.BootstrapDeleteRequest;
import org.eclipse.leshan.core.request.BootstrapDiscoverRequest;
import org.eclipse.leshan.core.request.BootstrapDownlinkRequest;
import org.eclipse.leshan.core.request.BootstrapRequest;
import org.eclipse.leshan.core.request.BootstrapWriteRequest;
import org.eclipse.leshan.core.request.DownlinkBootstrapRequest;
import org.eclipse.leshan.core.response.BootstrapDiscoverResponse;
import org.eclipse.leshan.core.response.LwM2mResponse;
import org.slf4j.Logger;
Expand Down Expand Up @@ -149,31 +149,32 @@ public void noConfig(BootstrapSession session) {
}

@Override
public void sendRequest(BootstrapSession session, BootstrapDownlinkRequest<? extends LwM2mResponse> request) {
public void sendRequest(BootstrapSession session, DownlinkBootstrapRequest<? extends LwM2mResponse> request) {
try {
if (request instanceof BootstrapDiscoverRequest) {
String endpointName = session.getEndpoint();
StringBuilder b = new StringBuilder();
b.append("Send DISCOVER request on ");
b.append(request.getPath().toString());
b.append(((BootstrapDiscoverRequest) request).getPath().toString());
sendEvent(EVENT_BOOTSTRAP_SESSION, objectMapper.writeValueAsString(
new BootstrapEvent("send discover", endpointName, b.toString())), endpointName);
} else if (request instanceof BootstrapDeleteRequest) {
String endpointName = session.getEndpoint();
StringBuilder b = new StringBuilder();
b.append("Send DELETE request on ");
b.append(request.getPath().toString());
b.append(((BootstrapDeleteRequest) request).getPath().toString());
sendEvent(EVENT_BOOTSTRAP_SESSION, objectMapper.writeValueAsString(
new BootstrapEvent("send delete", endpointName, b.toString())), endpointName);
} else if (request instanceof BootstrapWriteRequest) {
String endpointName = session.getEndpoint();
StringBuilder b = new StringBuilder();
b.append("Send WRITE request on ");
b.append(request.getPath().toString());
b.append(((BootstrapWriteRequest) request).getPath().toString());
b.append(" using ");
b.append(((BootstrapWriteRequest) request).getContentFormat());
b.append('\n');
((BootstrapWriteRequest) request).getNode().appendPrettyNode(b, request.getPath());
((BootstrapWriteRequest) request).getNode().appendPrettyNode(b,
((BootstrapWriteRequest) request).getPath());
sendEvent(EVENT_BOOTSTRAP_SESSION, objectMapper.writeValueAsString(
new BootstrapEvent("send write", endpointName, b.toString())), endpointName);
} else {
Expand All @@ -192,7 +193,7 @@ public void sendRequest(BootstrapSession session, BootstrapDownlinkRequest<? ext

@Override
public void onResponseSuccess(BootstrapSession session,
BootstrapDownlinkRequest<? extends LwM2mResponse> request, LwM2mResponse response) {
DownlinkBootstrapRequest<? extends LwM2mResponse> request, LwM2mResponse response) {
try {
if (request instanceof BootstrapDiscoverResponse) {
String endpointName = session.getEndpoint();
Expand Down Expand Up @@ -220,7 +221,7 @@ public void onResponseSuccess(BootstrapSession session,
}

@Override
public void onResponseError(BootstrapSession session, BootstrapDownlinkRequest<? extends LwM2mResponse> request,
public void onResponseError(BootstrapSession session, DownlinkBootstrapRequest<? extends LwM2mResponse> request,
LwM2mResponse response) {
try {
String endpointName = session.getEndpoint();
Expand All @@ -242,7 +243,7 @@ public void onResponseError(BootstrapSession session, BootstrapDownlinkRequest<?

@Override
public void onRequestFailure(BootstrapSession session,
BootstrapDownlinkRequest<? extends LwM2mResponse> request, Throwable cause) {
DownlinkBootstrapRequest<? extends LwM2mResponse> request, Throwable cause) {
try {
String endpointName = session.getEndpoint();
StringBuilder b = new StringBuilder();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
import org.eclipse.leshan.core.request.CancelObservationRequest;
import org.eclipse.leshan.core.request.ContentFormat;
import org.eclipse.leshan.core.request.DeleteRequest;
import org.eclipse.leshan.core.request.DownlinkRequest;
import org.eclipse.leshan.core.request.DownlinkDeviceManagementRequest;
import org.eclipse.leshan.core.request.ObserveRequest;
import org.eclipse.leshan.core.request.WriteAttributesRequest;
import org.eclipse.leshan.core.request.WriteRequest;
Expand Down Expand Up @@ -164,7 +164,8 @@ public void write_attribute_on_tree_then_remove_resource_instance(Protocol given
}

private void write_attribute_on_tree_then_remove_node_then_check_attributes_are_removed(List<LwM2mPath> pathToCheck,
LwM2mAttributeSet attributeSet, DownlinkRequest<?> deleteRequest) throws InterruptedException {
LwM2mAttributeSet attributeSet, DownlinkDeviceManagementRequest<?> deleteRequest)
throws InterruptedException {

// For each of this path, be sure there is no attributes
LwM2mServer lwServer = client.getServerIdForRegistrationId(currentRegistration.getId());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@

import org.eclipse.leshan.bsserver.BootstrapSession;
import org.eclipse.leshan.bsserver.BootstrapSessionAdapter;
import org.eclipse.leshan.core.request.BootstrapDownlinkRequest;
import org.eclipse.leshan.core.request.BootstrapWriteRequest;
import org.eclipse.leshan.core.request.ContentFormat;
import org.eclipse.leshan.core.request.DownlinkBootstrapRequest;
import org.eclipse.leshan.core.response.LwM2mResponse;

public class BootstrapRequestChecker extends BootstrapSessionAdapter {

public interface RequestValidator {
boolean validate(BootstrapDownlinkRequest<? extends LwM2mResponse> request);
boolean validate(DownlinkBootstrapRequest<? extends LwM2mResponse> request);
}

private final RequestValidator validator;
Expand All @@ -40,7 +40,7 @@ public boolean isValid() {
}

@Override
public void sendRequest(BootstrapSession session, BootstrapDownlinkRequest<? extends LwM2mResponse> request) {
public void sendRequest(BootstrapSession session, DownlinkBootstrapRequest<? extends LwM2mResponse> request) {
if (!validator.validate(request)) {
valid = false;
}
Expand All @@ -50,7 +50,7 @@ public void sendRequest(BootstrapSession session, BootstrapDownlinkRequest<? ext
public static BootstrapRequestChecker contentFormatChecker(final ContentFormat expectedFormat) {
return new BootstrapRequestChecker(new RequestValidator() {
@Override
public boolean validate(BootstrapDownlinkRequest<? extends LwM2mResponse> request) {
public boolean validate(DownlinkBootstrapRequest<? extends LwM2mResponse> request) {
if (request instanceof BootstrapWriteRequest) {
return ((BootstrapWriteRequest) request).getContentFormat() == expectedFormat;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
import org.eclipse.leshan.core.link.lwm2m.LwM2mLinkParser;
import org.eclipse.leshan.core.node.codec.LwM2mDecoder;
import org.eclipse.leshan.core.node.codec.LwM2mEncoder;
import org.eclipse.leshan.core.request.BootstrapDownlinkRequest;
import org.eclipse.leshan.core.request.DownlinkBootstrapRequest;
import org.eclipse.leshan.core.response.LwM2mResponse;
import org.eclipse.leshan.servers.security.EditableSecurityStore;
import org.eclipse.leshan.servers.security.ServerSecurityInfo;
Expand Down Expand Up @@ -108,7 +108,7 @@ public BootstrapSession verifyForSuccessfullBootstrap() {
return waitForSuccessfullBootstrap(0, TimeUnit.SECONDS);
}

public LwM2mResponse getFirstResponseFor(BootstrapSession session, BootstrapDownlinkRequest<?> request) {
public LwM2mResponse getFirstResponseFor(BootstrapSession session, DownlinkBootstrapRequest<?> request) {
final ArgumentCaptor<LwM2mResponse> c = ArgumentCaptor.forClass(LwM2mResponse.class);
verify(bootstrapSession, times(1)).onResponseSuccess(eq(session), eq(request), c.capture());
return c.getValue();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
import org.eclipse.leshan.core.node.codec.DefaultLwM2mEncoder;
import org.eclipse.leshan.core.node.codec.LwM2mDecoder;
import org.eclipse.leshan.core.node.codec.LwM2mEncoder;
import org.eclipse.leshan.core.request.BootstrapDownlinkRequest;
import org.eclipse.leshan.core.request.DownlinkBootstrapRequest;
import org.eclipse.leshan.integration.tests.util.cf.CertPair;
import org.eclipse.leshan.integration.tests.util.cf.MapBasedCertificateProvider;
import org.eclipse.leshan.servers.security.EditableSecurityStore;
Expand Down Expand Up @@ -126,7 +126,7 @@ public LeshanTestBootstrapServerBuilder with(String endpointProvider) {
return this;
}

public LeshanTestBootstrapServerBuilder startingSessionWith(BootstrapDownlinkRequest<?> request) {
public LeshanTestBootstrapServerBuilder startingSessionWith(DownlinkBootstrapRequest<?> request) {
TestBootstrapConfigStoreTaskProvider taskProvider = new TestBootstrapConfigStoreTaskProvider(configStore);
taskProvider.startBootstrapSessionWith(request);
setTaskProvider(taskProvider);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,17 @@
import org.eclipse.leshan.bsserver.BootstrapConfigStore;
import org.eclipse.leshan.bsserver.BootstrapConfigStoreTaskProvider;
import org.eclipse.leshan.bsserver.BootstrapSession;
import org.eclipse.leshan.core.request.BootstrapDownlinkRequest;
import org.eclipse.leshan.core.request.DownlinkBootstrapRequest;
import org.eclipse.leshan.core.response.LwM2mResponse;

/**
* A custom BootstrapConfigStoreTaskProvider which allow to start bootstrap session with a custom
* {@link BootstrapDownlinkRequest}
* {@link DownlinkBootstrapRequest}
*
*/
public class TestBootstrapConfigStoreTaskProvider extends BootstrapConfigStoreTaskProvider {

private BootstrapDownlinkRequest<?> firstCustomRequest;
private DownlinkBootstrapRequest<?> firstCustomRequest;

public TestBootstrapConfigStoreTaskProvider(BootstrapConfigStore configStore) {
super(configStore);
Expand All @@ -55,7 +55,7 @@ public Tasks getTasks(BootstrapSession session, List<LwM2mResponse> previousResp
}
}

public void startBootstrapSessionWith(BootstrapDownlinkRequest<?> request) {
public void startBootstrapSessionWith(DownlinkBootstrapRequest<?> request) {
this.firstCustomRequest = request;
}
};
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
package org.eclipse.leshan.bsserver;

import org.eclipse.leshan.core.peer.LwM2mPeer;
import org.eclipse.leshan.core.request.BootstrapDownlinkRequest;
import org.eclipse.leshan.core.request.BootstrapRequest;
import org.eclipse.leshan.core.request.DownlinkBootstrapRequest;
import org.eclipse.leshan.core.response.LwM2mResponse;

public class BootstrapSessionAdapter implements BootstrapSessionListener {
Expand All @@ -39,21 +39,21 @@ public void noConfig(BootstrapSession session) {
}

@Override
public void sendRequest(BootstrapSession session, BootstrapDownlinkRequest<? extends LwM2mResponse> request) {
public void sendRequest(BootstrapSession session, DownlinkBootstrapRequest<? extends LwM2mResponse> request) {
}

@Override
public void onResponseSuccess(BootstrapSession session, BootstrapDownlinkRequest<? extends LwM2mResponse> request,
public void onResponseSuccess(BootstrapSession session, DownlinkBootstrapRequest<? extends LwM2mResponse> request,
LwM2mResponse response) {
}

@Override
public void onResponseError(BootstrapSession session, BootstrapDownlinkRequest<? extends LwM2mResponse> request,
public void onResponseError(BootstrapSession session, DownlinkBootstrapRequest<? extends LwM2mResponse> request,
LwM2mResponse response) {
}

@Override
public void onRequestFailure(BootstrapSession session, BootstrapDownlinkRequest<? extends LwM2mResponse> request,
public void onRequestFailure(BootstrapSession session, DownlinkBootstrapRequest<? extends LwM2mResponse> request,
Throwable cause) {
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
import java.util.concurrent.CopyOnWriteArrayList;

import org.eclipse.leshan.core.peer.LwM2mPeer;
import org.eclipse.leshan.core.request.BootstrapDownlinkRequest;
import org.eclipse.leshan.core.request.BootstrapRequest;
import org.eclipse.leshan.core.request.DownlinkBootstrapRequest;
import org.eclipse.leshan.core.response.LwM2mResponse;

public class BootstrapSessionDispatcher implements BootstrapSessionListener {
Expand Down Expand Up @@ -64,30 +64,30 @@ public void noConfig(BootstrapSession session) {
}

@Override
public void sendRequest(BootstrapSession session, BootstrapDownlinkRequest<? extends LwM2mResponse> request) {
public void sendRequest(BootstrapSession session, DownlinkBootstrapRequest<? extends LwM2mResponse> request) {
for (BootstrapSessionListener listener : listeners) {
listener.sendRequest(session, request);
}
}

@Override
public void onResponseSuccess(BootstrapSession session, BootstrapDownlinkRequest<? extends LwM2mResponse> request,
public void onResponseSuccess(BootstrapSession session, DownlinkBootstrapRequest<? extends LwM2mResponse> request,
LwM2mResponse response) {
for (BootstrapSessionListener listener : listeners) {
listener.onResponseSuccess(session, request, response);
}
}

@Override
public void onResponseError(BootstrapSession session, BootstrapDownlinkRequest<? extends LwM2mResponse> request,
public void onResponseError(BootstrapSession session, DownlinkBootstrapRequest<? extends LwM2mResponse> request,
LwM2mResponse response) {
for (BootstrapSessionListener listener : listeners) {
listener.onResponseError(session, request, response);
}
}

@Override
public void onRequestFailure(BootstrapSession session, BootstrapDownlinkRequest<? extends LwM2mResponse> request,
public void onRequestFailure(BootstrapSession session, DownlinkBootstrapRequest<? extends LwM2mResponse> request,
Throwable cause) {
for (BootstrapSessionListener listener : listeners) {
listener.onRequestFailure(session, request, cause);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
package org.eclipse.leshan.bsserver;

import org.eclipse.leshan.core.peer.LwM2mPeer;
import org.eclipse.leshan.core.request.BootstrapDownlinkRequest;
import org.eclipse.leshan.core.request.BootstrapRequest;
import org.eclipse.leshan.core.request.DownlinkBootstrapRequest;
import org.eclipse.leshan.core.response.LwM2mResponse;

public interface BootstrapSessionListener {
Expand Down Expand Up @@ -45,7 +45,7 @@ public interface BootstrapSessionListener {
/**
* Called when a request is sent
*/
void sendRequest(BootstrapSession session, BootstrapDownlinkRequest<? extends LwM2mResponse> request);
void sendRequest(BootstrapSession session, DownlinkBootstrapRequest<? extends LwM2mResponse> request);

/**
* Called when we receive a successful response to a request.
Expand All @@ -54,7 +54,7 @@ public interface BootstrapSessionListener {
* @param request The request for which we get a successful response.
* @param response The response received.
*/
void onResponseSuccess(BootstrapSession session, BootstrapDownlinkRequest<? extends LwM2mResponse> request,
void onResponseSuccess(BootstrapSession session, DownlinkBootstrapRequest<? extends LwM2mResponse> request,
LwM2mResponse response);

/**
Expand All @@ -65,7 +65,7 @@ void onResponseSuccess(BootstrapSession session, BootstrapDownlinkRequest<? exte
* @param response The response received.
*
*/
public void onResponseError(BootstrapSession session, BootstrapDownlinkRequest<? extends LwM2mResponse> request,
public void onResponseError(BootstrapSession session, DownlinkBootstrapRequest<? extends LwM2mResponse> request,
LwM2mResponse response);

/**
Expand All @@ -76,7 +76,7 @@ public void onResponseError(BootstrapSession session, BootstrapDownlinkRequest<?
* @param cause The cause of the failure. Can be null.
*
*/
public void onRequestFailure(BootstrapSession session, BootstrapDownlinkRequest<? extends LwM2mResponse> request,
public void onRequestFailure(BootstrapSession session, DownlinkBootstrapRequest<? extends LwM2mResponse> request,
Throwable cause);

/**
Expand Down
Loading

0 comments on commit bc90314

Please sign in to comment.