Improve JsonBuilder's (#2585)

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
This commit is contained in:
Avgustin Marinov
2025-08-04 12:54:12 +03:00
committed by GitHub
parent 1d4e0e9959
commit 43f717fc8d
18 changed files with 512 additions and 724 deletions

View File

@@ -33,7 +33,6 @@ import org.eclipse.hawkbit.exception.SpServerError;
import org.eclipse.hawkbit.repository.exception.AssignmentQuotaExceededException;
import org.eclipse.hawkbit.repository.exception.InvalidTargetAttributeException;
import org.eclipse.hawkbit.repository.model.Target;
import org.eclipse.hawkbit.rest.util.JsonBuilder;
import org.eclipse.hawkbit.rest.util.MockMvcResultPrinter;
import org.junit.jupiter.api.Test;
import org.springframework.hateoas.MediaTypes;
@@ -42,12 +41,11 @@ import org.springframework.test.context.ActiveProfiles;
/**
* Test config data from the controller.
*/
@ActiveProfiles({ "im", "test" })
/**
* </p>
* Feature: Component Tests - Direct Device Integration API<br/>
* Story: Config Data Resource
*/
@ActiveProfiles({ "im", "test" })
class DdiConfigDataTest extends AbstractDDiApiIntegrationTest {
private static final String TARGET1_ID = "4717";

View File

@@ -60,7 +60,6 @@ import org.eclipse.hawkbit.repository.model.TargetUpdateStatus;
import org.eclipse.hawkbit.repository.test.matcher.Expect;
import org.eclipse.hawkbit.repository.test.matcher.ExpectEvents;
import org.eclipse.hawkbit.repository.test.util.WithUser;
import org.eclipse.hawkbit.rest.util.JsonBuilder;
import org.eclipse.hawkbit.rest.util.MockMvcResultPrinter;
import org.eclipse.hawkbit.security.HawkbitSecurityProperties;
import org.eclipse.hawkbit.tenancy.configuration.TenantConfigurationProperties.TenantConfigurationKey;

View File

@@ -0,0 +1,58 @@
/**
* Copyright (c) 2015 Bosch Software Innovations GmbH and others
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*/
package org.eclipse.hawkbit.ddi.rest.resource;
import static org.junit.jupiter.api.Assertions.fail;
import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.hawkbit.repository.model.RolloutGroup;
import org.eclipse.hawkbit.repository.model.RolloutGroupConditionBuilder;
import org.eclipse.hawkbit.repository.model.RolloutGroupConditions;
import org.eclipse.hawkbit.repository.model.Target;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.util.CollectionUtils;
/**
* Builder class for building certain json strings.
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
@Slf4j
class JsonBuilder {
static JSONObject configData(final Map<String, String> attributes) throws JSONException {
return configData(attributes, null);
}
static JSONObject configData(final Map<String, String> attributes, final String mode) throws JSONException {
final JSONObject data = new JSONObject();
attributes.forEach((key, value) -> {
try {
data.put(key, value);
} catch (final JSONException e) {
log.error("JSONException (skip)", e);
}
});
final JSONObject json = new JSONObject().put("data", data);
if (mode != null) {
json.put("mode", mode);
}
return json;
}
}