Bump spring boot to 3.4.6 and small refactoring (#2414)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
This commit is contained in:
@@ -119,6 +119,9 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
|||||||
private static final String JSON_PATH_FIELD_NAME = ".name";
|
private static final String JSON_PATH_FIELD_NAME = ".name";
|
||||||
private static final String JSON_PATH_FIELD_DESCRIPTION = ".description";
|
private static final String JSON_PATH_FIELD_DESCRIPTION = ".description";
|
||||||
private static final String JSON_PATH_FIELD_CONTENT = ".content";
|
private static final String JSON_PATH_FIELD_CONTENT = ".content";
|
||||||
|
|
||||||
|
private static final String JSON_PATH_KEY = "key";
|
||||||
|
private static final String JSON_PATH_VALUE = "value";
|
||||||
// target
|
// target
|
||||||
// $.field
|
// $.field
|
||||||
static final String JSON_PATH_PAGED_LIST_CONTENT = JSON_PATH_ROOT + JSON_PATH_FIELD_CONTENT;
|
static final String JSON_PATH_PAGED_LIST_CONTENT = JSON_PATH_ROOT + JSON_PATH_FIELD_CONTENT;
|
||||||
@@ -135,6 +138,9 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
|||||||
private static final String JSON_PATH_LAST_REQUEST_AT = JSON_PATH_ROOT + JSON_PATH_FIELD_LAST_REQUEST_AT;
|
private static final String JSON_PATH_LAST_REQUEST_AT = JSON_PATH_ROOT + JSON_PATH_FIELD_LAST_REQUEST_AT;
|
||||||
private static final String JSON_PATH_TYPE = JSON_PATH_ROOT + JSON_PATH_FIELD_TARGET_TYPE;
|
private static final String JSON_PATH_TYPE = JSON_PATH_ROOT + JSON_PATH_FIELD_TARGET_TYPE;
|
||||||
|
|
||||||
|
private static final String KNOWN_KEY = "knownKey";
|
||||||
|
private static final String KNOWN_VALUE = "knownValue";
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
ActionRepository actionRepository;
|
ActionRepository actionRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -1978,8 +1984,8 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
|||||||
final String knownValue2 = "knownValue2";
|
final String knownValue2 = "knownValue2";
|
||||||
|
|
||||||
final JSONArray metaData1 = new JSONArray();
|
final JSONArray metaData1 = new JSONArray();
|
||||||
metaData1.put(new JSONObject().put("key", knownKey1).put("value", knownValue1));
|
metaData1.put(new JSONObject().put(JSON_PATH_KEY, knownKey1).put(JSON_PATH_VALUE, knownValue1));
|
||||||
metaData1.put(new JSONObject().put("key", knownKey2).put("value", knownValue2));
|
metaData1.put(new JSONObject().put(JSON_PATH_KEY, knownKey2).put(JSON_PATH_VALUE, knownValue2));
|
||||||
|
|
||||||
mvc.perform(post("/rest/v1/targets/{targetId}/metadata", knownControllerId).accept(MediaType.APPLICATION_JSON)
|
mvc.perform(post("/rest/v1/targets/{targetId}/metadata", knownControllerId).accept(MediaType.APPLICATION_JSON)
|
||||||
.contentType(MediaType.APPLICATION_JSON).content(metaData1.toString()))
|
.contentType(MediaType.APPLICATION_JSON).content(metaData1.toString()))
|
||||||
@@ -1995,7 +2001,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
|||||||
|
|
||||||
final JSONArray metaData2 = new JSONArray();
|
final JSONArray metaData2 = new JSONArray();
|
||||||
for (int i = 0; i < maxMetaData - metaData1.length() + 1; ++i) {
|
for (int i = 0; i < maxMetaData - metaData1.length() + 1; ++i) {
|
||||||
metaData2.put(new JSONObject().put("key", knownKey1 + i).put("value", knownValue1 + i));
|
metaData2.put(new JSONObject().put(JSON_PATH_KEY, knownKey1 + i).put(JSON_PATH_VALUE, knownValue1 + i));
|
||||||
}
|
}
|
||||||
|
|
||||||
mvc.perform(post("/rest/v1/targets/{targetId}/metadata", knownControllerId)
|
mvc.perform(post("/rest/v1/targets/{targetId}/metadata", knownControllerId)
|
||||||
@@ -2012,24 +2018,20 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
|||||||
@Description("Ensures that a metadata update through API is reflected by the repository.")
|
@Description("Ensures that a metadata update through API is reflected by the repository.")
|
||||||
void updateMetadata() throws Exception {
|
void updateMetadata() throws Exception {
|
||||||
final String knownControllerId = "targetIdWithMetadata";
|
final String knownControllerId = "targetIdWithMetadata";
|
||||||
|
|
||||||
// prepare and create metadata for update
|
|
||||||
final String knownKey = "knownKey";
|
|
||||||
final String knownValue = "knownValue";
|
|
||||||
final String updateValue = "valueForUpdate";
|
final String updateValue = "valueForUpdate";
|
||||||
|
|
||||||
setupTargetWithMetadata(knownControllerId, knownKey, knownValue);
|
setupTargetWithMetadata(knownControllerId, KNOWN_KEY, KNOWN_VALUE);
|
||||||
|
|
||||||
final JSONObject jsonObject = new JSONObject().put("key", knownKey).put("value", updateValue);
|
final JSONObject jsonObject = new JSONObject().put(JSON_PATH_KEY, KNOWN_KEY).put(JSON_PATH_VALUE, updateValue);
|
||||||
|
|
||||||
mvc.perform(put("/rest/v1/targets/{targetId}/metadata/{key}", knownControllerId, knownKey)
|
mvc.perform(put("/rest/v1/targets/{targetId}/metadata/{key}", knownControllerId, KNOWN_KEY)
|
||||||
.accept(MediaType.APPLICATION_JSON).contentType(MediaType.APPLICATION_JSON)
|
.accept(MediaType.APPLICATION_JSON).contentType(MediaType.APPLICATION_JSON)
|
||||||
.content(jsonObject.toString()))
|
.content(jsonObject.toString()))
|
||||||
.andDo(MockMvcResultPrinter.print())
|
.andDo(MockMvcResultPrinter.print())
|
||||||
.andExpect(status().isOk())
|
.andExpect(status().isOk())
|
||||||
.andExpect(content().string(""));
|
.andExpect(content().string(""));
|
||||||
|
|
||||||
assertThat(targetManagement.getMetadata(knownControllerId).get(knownKey)).isEqualTo(updateValue);
|
assertThat(targetManagement.getMetadata(knownControllerId).get(KNOWN_KEY)).isEqualTo(updateValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -2037,22 +2039,18 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
|||||||
void deleteMetadata() throws Exception {
|
void deleteMetadata() throws Exception {
|
||||||
final String knownControllerId = "targetIdWithMetadata";
|
final String knownControllerId = "targetIdWithMetadata";
|
||||||
|
|
||||||
// prepare and create metadata for deletion
|
setupTargetWithMetadata(knownControllerId, KNOWN_KEY, KNOWN_VALUE);
|
||||||
final String knownKey = "knownKey";
|
|
||||||
final String knownValue = "knownValue";
|
|
||||||
|
|
||||||
setupTargetWithMetadata(knownControllerId, knownKey, knownValue);
|
mvc.perform(delete("/rest/v1/targets/{targetId}/metadata/{key}", knownControllerId, KNOWN_KEY))
|
||||||
|
|
||||||
mvc.perform(delete("/rest/v1/targets/{targetId}/metadata/{key}", knownControllerId, knownKey))
|
|
||||||
.andDo(MockMvcResultPrinter.print())
|
.andDo(MockMvcResultPrinter.print())
|
||||||
.andExpect(status().isOk());
|
.andExpect(status().isOk());
|
||||||
|
|
||||||
// already deleted
|
// already deleted
|
||||||
mvc.perform(delete("/rest/v1/targets/{targetId}/metadata/{key}", knownControllerId, knownKey))
|
mvc.perform(delete("/rest/v1/targets/{targetId}/metadata/{key}", knownControllerId, KNOWN_KEY))
|
||||||
.andDo(MockMvcResultPrinter.print())
|
.andDo(MockMvcResultPrinter.print())
|
||||||
.andExpect(status().isNotFound());
|
.andExpect(status().isNotFound());
|
||||||
|
|
||||||
assertThat(targetManagement.getMetadata(knownControllerId).get(knownKey)).isNull();
|
assertThat(targetManagement.getMetadata(knownControllerId).get(KNOWN_KEY)).isNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -2060,21 +2058,17 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
|||||||
void deleteMetadataThatDoesNotExistLeadsToNotFound() throws Exception {
|
void deleteMetadataThatDoesNotExistLeadsToNotFound() throws Exception {
|
||||||
final String knownControllerId = "targetIdWithMetadata";
|
final String knownControllerId = "targetIdWithMetadata";
|
||||||
|
|
||||||
// prepare and create metadata for deletion
|
setupTargetWithMetadata(knownControllerId, KNOWN_KEY, KNOWN_VALUE);
|
||||||
final String knownKey = "knownKey";
|
|
||||||
final String knownValue = "knownValue";
|
|
||||||
|
|
||||||
setupTargetWithMetadata(knownControllerId, knownKey, knownValue);
|
|
||||||
|
|
||||||
mvc.perform(delete("/rest/v1/targets/{targetId}/metadata/XXX", knownControllerId))
|
mvc.perform(delete("/rest/v1/targets/{targetId}/metadata/XXX", knownControllerId))
|
||||||
.andDo(MockMvcResultPrinter.print())
|
.andDo(MockMvcResultPrinter.print())
|
||||||
.andExpect(status().isNotFound());
|
.andExpect(status().isNotFound());
|
||||||
|
|
||||||
mvc.perform(delete("/rest/v1/targets/1234/metadata/{key}", knownKey))
|
mvc.perform(delete("/rest/v1/targets/1234/metadata/{key}", KNOWN_KEY))
|
||||||
.andDo(MockMvcResultPrinter.print())
|
.andDo(MockMvcResultPrinter.print())
|
||||||
.andExpect(status().isNotFound());
|
.andExpect(status().isNotFound());
|
||||||
|
|
||||||
assertThat(targetManagement.getMetadata(knownControllerId).get(knownKey)).isNotNull();
|
assertThat(targetManagement.getMetadata(knownControllerId).get(KNOWN_KEY)).isNotNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -2082,17 +2076,13 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
|||||||
void getMetadataKey() throws Exception {
|
void getMetadataKey() throws Exception {
|
||||||
final String knownControllerId = "targetIdWithMetadata";
|
final String knownControllerId = "targetIdWithMetadata";
|
||||||
|
|
||||||
// prepare and create metadata for deletion
|
setupTargetWithMetadata(knownControllerId, KNOWN_KEY, KNOWN_VALUE);
|
||||||
final String knownKey = "knownKey";
|
|
||||||
final String knownValue = "knownValue";
|
|
||||||
|
|
||||||
setupTargetWithMetadata(knownControllerId, knownKey, knownValue);
|
mvc.perform(get("/rest/v1/targets/{targetId}/metadata/{key}", knownControllerId, KNOWN_KEY))
|
||||||
|
|
||||||
mvc.perform(get("/rest/v1/targets/{targetId}/metadata/{key}", knownControllerId, knownKey))
|
|
||||||
.andDo(MockMvcResultPrinter.print())
|
.andDo(MockMvcResultPrinter.print())
|
||||||
.andExpect(status().isOk())
|
.andExpect(status().isOk())
|
||||||
.andExpect(jsonPath("key", equalTo(knownKey)))
|
.andExpect(jsonPath(JSON_PATH_KEY, equalTo(KNOWN_KEY)))
|
||||||
.andExpect(jsonPath("value", equalTo(knownValue)));
|
.andExpect(jsonPath(JSON_PATH_VALUE, equalTo(KNOWN_VALUE)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -2101,18 +2091,34 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
|||||||
final String knownControllerId = "targetIdWithMetadata";
|
final String knownControllerId = "targetIdWithMetadata";
|
||||||
|
|
||||||
final int totalMetadata = 10;
|
final int totalMetadata = 10;
|
||||||
final String knownKeyPrefix = "knownKey";
|
final String knownKeyPrefix = "knownKeyPrefix";
|
||||||
final String knownValuePrefix = "knownValue";
|
final String knownValuePrefix = "knownValuePrefix";
|
||||||
|
|
||||||
setupTargetWithMetadata(knownControllerId, knownKeyPrefix, knownValuePrefix, totalMetadata);
|
testdataFactory.createTarget(knownControllerId);
|
||||||
|
|
||||||
|
// test call of a target without metadata & support for legacy offset/limit
|
||||||
|
mvc.perform(get("/rest/v1/targets/{targetId}/metadata?offset=0&limit=50", knownControllerId))
|
||||||
|
.andDo(MockMvcResultPrinter.print())
|
||||||
|
.andExpect(status().isOk())
|
||||||
|
.andExpect(jsonPath("size", equalTo(0)))
|
||||||
|
.andExpect(jsonPath("total", equalTo(0)))
|
||||||
|
.andExpect(jsonPath("content.length()", equalTo(0)));
|
||||||
|
|
||||||
|
// set metadata
|
||||||
|
final Map<String, String> metadataEntries = new HashMap<>();
|
||||||
|
for (int index = 0; index < totalMetadata; index++) {
|
||||||
|
metadataEntries.put(knownKeyPrefix + index, knownValuePrefix + index);
|
||||||
|
}
|
||||||
|
targetManagement.createMetadata(knownControllerId, metadataEntries);
|
||||||
|
|
||||||
|
// test call of a target with metadata
|
||||||
mvc.perform(get("/rest/v1/targets/{targetId}/metadata", knownControllerId))
|
mvc.perform(get("/rest/v1/targets/{targetId}/metadata", knownControllerId))
|
||||||
.andDo(MockMvcResultPrinter.print())
|
.andDo(MockMvcResultPrinter.print())
|
||||||
.andExpect(status().isOk())
|
.andExpect(status().isOk())
|
||||||
.andExpect(jsonPath("size", equalTo(totalMetadata)))
|
.andExpect(jsonPath("size", equalTo(totalMetadata)))
|
||||||
.andExpect(jsonPath("total", equalTo(totalMetadata)))
|
.andExpect(jsonPath("total", equalTo(totalMetadata)))
|
||||||
.andExpect(jsonPath("content[0].key", equalTo("knownKey0")))
|
.andExpect(jsonPath("content[0].key", equalTo(knownKeyPrefix + "0")))
|
||||||
.andExpect(jsonPath("content[0].value", equalTo("knownValue0")));
|
.andExpect(jsonPath("content[0].value", equalTo(knownValuePrefix + "0")));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -2133,7 +2139,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Description("Passing an array in assignment request is allowed if multiassignment is disabled and array size in 1.")
|
@Description("Passing an array in assignment request is allowed if multiassignment is disabled and array size in 1.")
|
||||||
void multiassignmentRequestAllowedIfDisabledButHasSizeOne() throws Exception {
|
void multiAssignmentRequestAllowedIfDisabledButHasSizeOne() throws Exception {
|
||||||
final String targetId = testdataFactory.createTarget().getControllerId();
|
final String targetId = testdataFactory.createTarget().getControllerId();
|
||||||
final Long dsId = testdataFactory.createDistributionSet().getId();
|
final Long dsId = testdataFactory.createDistributionSet().getId();
|
||||||
|
|
||||||
@@ -2903,17 +2909,6 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest {
|
|||||||
targetManagement.createMetadata(knownControllerId, Map.of(knownKey, knownValue));
|
targetManagement.createMetadata(knownControllerId, Map.of(knownKey, knownValue));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setupTargetWithMetadata(
|
|
||||||
final String knownControllerId, final String knownKeyPrefix, final String knownValuePrefix, final int totalMetadata) {
|
|
||||||
testdataFactory.createTarget(knownControllerId);
|
|
||||||
|
|
||||||
final Map<String, String> metadataEntries = new HashMap<>();
|
|
||||||
for (int index = 0; index < totalMetadata; index++) {
|
|
||||||
metadataEntries.put(knownKeyPrefix + index, knownValuePrefix + index);
|
|
||||||
}
|
|
||||||
targetManagement.createMetadata(knownControllerId, metadataEntries);
|
|
||||||
}
|
|
||||||
|
|
||||||
private Action updateActionStatus(final Action action, final Status status, final Integer statusCode) {
|
private Action updateActionStatus(final Action action, final Status status, final Integer statusCode) {
|
||||||
return updateActionStatus(action, status, statusCode, null);
|
return updateActionStatus(action, status, statusCode, null);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,8 +31,7 @@ public interface TargetCreate {
|
|||||||
TargetCreate controllerId(@Size(min = 1, max = Target.CONTROLLER_ID_MAX_SIZE) @NotNull String controllerId);
|
TargetCreate controllerId(@Size(min = 1, max = Target.CONTROLLER_ID_MAX_SIZE) @NotNull String controllerId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param name for {@link Target#getName()} filled with
|
* @param name for {@link Target#getName()} filled with {@link #controllerId(String)} as default if not set explicitly
|
||||||
* {@link #controllerId(String)} as default if not set explicitly
|
|
||||||
* @return updated builder instance
|
* @return updated builder instance
|
||||||
*/
|
*/
|
||||||
TargetCreate name(@Size(min = 1, max = NamedEntity.NAME_MAX_SIZE) @NotNull String name);
|
TargetCreate name(@Size(min = 1, max = NamedEntity.NAME_MAX_SIZE) @NotNull String name);
|
||||||
@@ -50,8 +49,7 @@ public interface TargetCreate {
|
|||||||
TargetCreate targetType(Long targetTypeId);
|
TargetCreate targetType(Long targetTypeId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param securityToken for {@link Target#getSecurityToken()} is generated with a
|
* @param securityToken for {@link Target#getSecurityToken()} is generated with a random sequence as default if not set explicitly
|
||||||
* random sequence as default if not set explicitly
|
|
||||||
* @return updated builder instance
|
* @return updated builder instance
|
||||||
*/
|
*/
|
||||||
TargetCreate securityToken(@Size(min = 1, max = Target.SECURITY_TOKEN_MAX_SIZE) @NotNull String securityToken);
|
TargetCreate securityToken(@Size(min = 1, max = Target.SECURITY_TOKEN_MAX_SIZE) @NotNull String securityToken);
|
||||||
@@ -70,9 +68,7 @@ public interface TargetCreate {
|
|||||||
TargetCreate lastTargetQuery(Long lastTargetQuery);
|
TargetCreate lastTargetQuery(Long lastTargetQuery);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param status for {@link Target#getUpdateStatus()} is
|
* @param status for {@link Target#getUpdateStatus()} is {@link TargetUpdateStatus#UNKNOWN} as default if not set explicitly
|
||||||
* {@link TargetUpdateStatus#UNKNOWN} as default if not set
|
|
||||||
* explicitly
|
|
||||||
* @return updated builder instance
|
* @return updated builder instance
|
||||||
*/
|
*/
|
||||||
TargetCreate status(@NotNull TargetUpdateStatus status);
|
TargetCreate status(@NotNull TargetUpdateStatus status);
|
||||||
|
|||||||
@@ -794,14 +794,9 @@ class TargetManagementTest extends AbstractJpaIntegrationTest {
|
|||||||
@Description("Queries and loads the metadata related to a given target.")
|
@Description("Queries and loads the metadata related to a given target.")
|
||||||
void getMetadata() {
|
void getMetadata() {
|
||||||
// create targets
|
// create targets
|
||||||
final Target target1 = createTargetWithMetadata("target1", 10);
|
assertThat(targetManagement.getMetadata(testdataFactory.createTarget("target0").getControllerId())).isEmpty();
|
||||||
final Target target2 = createTargetWithMetadata("target2", 8);
|
assertThat(targetManagement.getMetadata(createTargetWithMetadata("target1", 10).getControllerId())).hasSize(10);
|
||||||
|
assertThat(targetManagement.getMetadata(createTargetWithMetadata("target2", 8).getControllerId())).hasSize(8);
|
||||||
final Map<String, String> metadataOfTarget1 = targetManagement.getMetadata(target1.getControllerId());
|
|
||||||
final Map<String, String> metadataOfTarget2 = targetManagement.getMetadata(target2.getControllerId());
|
|
||||||
|
|
||||||
assertThat(metadataOfTarget1).hasSize(10);
|
|
||||||
assertThat(metadataOfTarget2).hasSize(8);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
4
pom.xml
4
pom.xml
@@ -17,7 +17,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-parent</artifactId>
|
<artifactId>spring-boot-starter-parent</artifactId>
|
||||||
<version>3.4.5</version>
|
<version>3.4.6</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<groupId>org.eclipse.hawkbit</groupId>
|
<groupId>org.eclipse.hawkbit</groupId>
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
<snapshotDependencyAllowed>true</snapshotDependencyAllowed>
|
<snapshotDependencyAllowed>true</snapshotDependencyAllowed>
|
||||||
|
|
||||||
<spring.boot.version>3.4.5</spring.boot.version>
|
<spring.boot.version>3.4.6</spring.boot.version>
|
||||||
<spring.cloud.version>2024.0.1</spring.cloud.version>
|
<spring.cloud.version>2024.0.1</spring.cloud.version>
|
||||||
<springdoc-openapi.version>2.8.8</springdoc-openapi.version>
|
<springdoc-openapi.version>2.8.8</springdoc-openapi.version>
|
||||||
<spring.plugin.core.version>3.0.0</spring.plugin.core.version>
|
<spring.plugin.core.version>3.0.0</spring.plugin.core.version>
|
||||||
|
|||||||
Reference in New Issue
Block a user