From c6c50c6a682ed78e4d1d3dbcce9b2956a1f1ddd3 Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Wed, 30 Mar 2016 09:49:25 +0200 Subject: [PATCH] Fixed broken usage of metadata addition. Fixed equals of two elements. --- .../hawkbit/repository/model/DistributionSet.java | 3 +++ .../hawkbit/repository/model/SoftwareModule.java | 3 +++ .../repository/model/SoftwareModuleMetadata.java | 14 +++----------- .../hawkbit/repository/model/TargetInfo.java | 11 +++++++++-- .../RSQLDistributionSetMetadataFieldsTest.java | 11 +++++++---- .../rsql/RSQLSoftwareModuleFieldTest.java | 8 +------- .../rsql/RSQLSoftwareModuleMetadataFieldsTest.java | 11 +++++++---- 7 files changed, 33 insertions(+), 28 deletions(-) diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/DistributionSet.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/DistributionSet.java index 76b1ab507..51b5e8074 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/DistributionSet.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/DistributionSet.java @@ -139,6 +139,9 @@ public class DistributionSet extends NamedVersionedEntity { return deleted; } + /** + * @return immutable list of meta data elements. + */ public List getMetadata() { return Collections.unmodifiableList(metadata); } diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModule.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModule.java index d4ac6d629..8b58c5e3b 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModule.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModule.java @@ -220,6 +220,9 @@ public class SoftwareModule extends NamedVersionedEntity { this.type = type; } + /** + * @return immutable list of meta data elements. + */ public List getMetadata() { return Collections.unmodifiableList(metadata); } diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModuleMetadata.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModuleMetadata.java index b314edbe6..c7af1f2ae 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModuleMetadata.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModuleMetadata.java @@ -102,9 +102,8 @@ public class SoftwareModuleMetadata implements Serializable { public int hashCode() { final int prime = 31; int result = 1; - result = prime * result + (key == null ? 0 : key.hashCode()); - result = prime * result + (softwareModule == null ? 0 : softwareModule.hashCode()); - result = prime * result + (value == null ? 0 : value.hashCode()); + result = prime * result + ((key == null) ? 0 : key.hashCode()); + result = prime * result + ((softwareModule == null) ? 0 : softwareModule.hashCode()); return result; } @@ -116,7 +115,7 @@ public class SoftwareModuleMetadata implements Serializable { if (obj == null) { return false; } - if (getClass() != obj.getClass()) { + if (!(obj instanceof SoftwareModuleMetadata)) { return false; } final SoftwareModuleMetadata other = (SoftwareModuleMetadata) obj; @@ -134,13 +133,6 @@ public class SoftwareModuleMetadata implements Serializable { } else if (!softwareModule.equals(other.softwareModule)) { return false; } - if (value == null) { - if (other.value != null) { - return false; - } - } else if (!value.equals(other.value)) { - return false; - } return true; } diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/TargetInfo.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/TargetInfo.java index 2eb7cc385..47f52579a 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/TargetInfo.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/TargetInfo.java @@ -320,7 +320,8 @@ public class TargetInfo implements Persistable, Serializable { public int hashCode() { final int prime = 31; int result = 1; - result = prime * result + (target == null ? 0 : target.hashCode()); + result = prime * result + ((target == null) ? 0 : target.hashCode()); + result = prime * result + ((targetId == null) ? 0 : targetId.hashCode()); return result; } @@ -343,7 +344,13 @@ public class TargetInfo implements Persistable, Serializable { } else if (!target.equals(other.target)) { return false; } + if (targetId == null) { + if (other.targetId != null) { + return false; + } + } else if (!targetId.equals(other.targetId)) { + return false; + } return true; } - } diff --git a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLDistributionSetMetadataFieldsTest.java b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLDistributionSetMetadataFieldsTest.java index 1d1e8b7f3..755e5a61f 100644 --- a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLDistributionSetMetadataFieldsTest.java +++ b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLDistributionSetMetadataFieldsTest.java @@ -10,6 +10,9 @@ package org.eclipse.hawkbit.repository.rsql; import static org.fest.assertions.api.Assertions.assertThat; +import java.util.ArrayList; +import java.util.List; + import org.eclipse.hawkbit.AbstractIntegrationTest; import org.eclipse.hawkbit.TestDataUtil; import org.eclipse.hawkbit.repository.DistributionSetMetadataFields; @@ -35,13 +38,13 @@ public class RSQLDistributionSetMetadataFieldsTest extends AbstractIntegrationTe final DistributionSet distributionSet = TestDataUtil.generateDistributionSet("DS", softwareManagement, distributionSetManagement); distributionSetId = distributionSet.getId(); + + final List metadata = new ArrayList<>(); for (int i = 0; i < 5; i++) { - final DistributionSetMetadata distributionSetMetadata = new DistributionSetMetadata("" + i, distributionSet, - "" + i); - distributionSet.getMetadata().add(distributionSetMetadata); + metadata.add(new DistributionSetMetadata("" + i, distributionSet, "" + i)); } - distributionSetManagement.updateDistributionSet(distributionSet); + distributionSetManagement.createDistributionSetMetadata(metadata); } @Test diff --git a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLSoftwareModuleFieldTest.java b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLSoftwareModuleFieldTest.java index 88f0817f7..0c113fd2b 100644 --- a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLSoftwareModuleFieldTest.java +++ b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLSoftwareModuleFieldTest.java @@ -28,8 +28,7 @@ import ru.yandex.qatools.allure.annotations.Stories; public class RSQLSoftwareModuleFieldTest extends AbstractIntegrationTest { @Before - public void seuptBeforeTest() { - + public void setupBeforeTest() { final SoftwareModule ah = softwareManagement .createSoftwareModule(new SoftwareModule(appType, "agent-hub", "1.0.1", "agent-hub", "")); softwareManagement.createSoftwareModule(new SoftwareModule(runtimeType, "oracle-jre", "1.7.2", "aa", "")); @@ -40,14 +39,9 @@ public class RSQLSoftwareModuleFieldTest extends AbstractIntegrationTest { final SoftwareModuleMetadata softwareModuleMetadata = new SoftwareModuleMetadata("metaKey", ah, "metaValue"); softwareManagement.createSoftwareModuleMetadata(softwareModuleMetadata); - ah.getMetadata().add(softwareModuleMetadata); - softwareManagement.updateSoftwareModule(ah); final SoftwareModuleMetadata softwareModuleMetadata2 = new SoftwareModuleMetadata("metaKey", ah2, "value"); softwareManagement.createSoftwareModuleMetadata(softwareModuleMetadata2); - ah2.getMetadata().add(softwareModuleMetadata2); - softwareManagement.updateSoftwareModule(ah2); - } @Test diff --git a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLSoftwareModuleMetadataFieldsTest.java b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLSoftwareModuleMetadataFieldsTest.java index c863c1460..44fa3e3cd 100644 --- a/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLSoftwareModuleMetadataFieldsTest.java +++ b/hawkbit-repository/src/test/java/org/eclipse/hawkbit/repository/rsql/RSQLSoftwareModuleMetadataFieldsTest.java @@ -10,6 +10,9 @@ package org.eclipse.hawkbit.repository.rsql; import static org.fest.assertions.api.Assertions.assertThat; +import java.util.ArrayList; +import java.util.List; + import org.eclipse.hawkbit.AbstractIntegrationTest; import org.eclipse.hawkbit.TestDataUtil; import org.eclipse.hawkbit.repository.SoftwareModuleMetadataFields; @@ -37,13 +40,13 @@ public class RSQLSoftwareModuleMetadataFieldsTest extends AbstractIntegrationTes "application", "1.0.0", "Desc", "vendor Limited, California")); softwareModuleId = softwareModule.getId(); + final List metadata = new ArrayList<>(); for (int i = 0; i < 5; i++) { - final SoftwareModuleMetadata metadata = new SoftwareModuleMetadata("" + i, softwareModule, "" + i); - softwareModule.getMetadata().add(metadata); - softwareModuleMetadataRepository.save(metadata); + metadata.add(new SoftwareModuleMetadata("" + i, softwareModule, "" + i)); } - softwareManagement.updateSoftwareModule(softwareModule); + softwareManagement.createSoftwareModuleMetadata(metadata); + } @Test