<mavenBuild _class='hudson.maven.MavenBuild'><action></action><action _class='hudson.maven.reporters.MavenArtifactRecord'><mainArtifact><artifactId>annotation</artifactId><canonicalName>annotation-0.0.2-SNAPSHOT.jar</canonicalName><fileName>annotation-0.0.2-SNAPSHOT.jar</fileName><groupId>org.eclipse.sensinact.gateway.core</groupId><md5sum>026b0cbbd4c7d6cc71009cb8e422fc0a</md5sum><type>jar</type><version>0.0.2-SNAPSHOT</version></mainArtifact><parent><number>33</number><url>https://devel.data-in-motion.biz/jenkins/job/Eclipse%20Sensinact/org.eclipse.sensinact.gateway.core$annotation/33/</url></parent><pomArtifact><artifactId>annotation</artifactId><canonicalName>annotation-0.0.2-SNAPSHOT.pom</canonicalName><fileName>.flattened-pom.xml</fileName><groupId>org.eclipse.sensinact.gateway.core</groupId><md5sum>e4e741be6fc39f7697102dc1374e590d</md5sum><type>pom</type><version>0.0.2-SNAPSHOT</version></pomArtifact><url>https://devel.data-in-motion.biz/jenkins/job/Eclipse%20Sensinact/org.eclipse.sensinact.gateway.core$annotation/33/mavenArtifacts/</url></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'><artifactsUrl>https://devel.data-in-motion.biz/jenkins/job/Eclipse%20Sensinact/org.eclipse.sensinact.gateway.core$annotation/33/artifact</artifactsUrl><changesUrl>https://devel.data-in-motion.biz/jenkins/job/Eclipse%20Sensinact/org.eclipse.sensinact.gateway.core$annotation/changes</changesUrl><displayUrl>https://devel.data-in-motion.biz/jenkins/job/Eclipse%20Sensinact/org.eclipse.sensinact.gateway.core$annotation/33/</displayUrl><testsUrl>https://devel.data-in-motion.biz/jenkins/job/Eclipse%20Sensinact/org.eclipse.sensinact.gateway.core$annotation/33/testReport</testsUrl></action><artifact><displayPath>annotation-0.0.2-SNAPSHOT.jar</displayPath><fileName>annotation-0.0.2-SNAPSHOT.jar</fileName><relativePath>org.eclipse.sensinact.gateway.core/annotation/0.0.2-SNAPSHOT/annotation-0.0.2-SNAPSHOT.jar</relativePath></artifact><artifact><displayPath>annotation-0.0.2-SNAPSHOT.pom</displayPath><fileName>annotation-0.0.2-SNAPSHOT.pom</fileName><relativePath>org.eclipse.sensinact.gateway.core/annotation/0.0.2-SNAPSHOT/annotation-0.0.2-SNAPSHOT.pom</relativePath></artifact><building>false</building><displayName>#33</displayName><duration>2761</duration><estimatedDuration>2722</estimatedDuration><fullDisplayName>Eclipse Sensinact » SensiNact core Annotations #33</fullDisplayName><id>33</id><inProgress>false</inProgress><keepLog>false</keepLog><number>33</number><queueId>-1</queueId><result>SUCCESS</result><timestamp>1723130764541</timestamp><url>https://devel.data-in-motion.biz/jenkins/job/Eclipse%20Sensinact/org.eclipse.sensinact.gateway.core$annotation/33/</url><builtOn></builtOn><changeSet _class='hudson.maven.FilteredChangeLogSet'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>core/annotation/src/main/java/org/eclipse/sensinact/core/annotation/dto/Metadata.java</affectedPath><affectedPath>core/impl/src/main/java/org/eclipse/sensinact/core/dto/impl/AbstractUpdateDto.java</affectedPath><affectedPath>core/api/src/main/java/org/eclipse/sensinact/core/push/dto/GenericDto.java</affectedPath><affectedPath>core/impl/src/test/java/org/eclipse/sensinact/core/extract/impl/AnnotationBasedDtoExtractorTest.java</affectedPath><affectedPath>core/impl/src/test/java/org/eclipse/sensinact/core/integration/DataUpdateServiceTest.java</affectedPath><affectedPath>core/impl/src/main/java/org/eclipse/sensinact/core/model/nexus/ModelNexus.java</affectedPath><affectedPath>core/impl/src/test/java/org/eclipse/sensinact/core/extract/impl/CustomBaseValueDtoExtractorTest.java</affectedPath><affectedPath>core/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/AnnotationMapping.java</affectedPath><affectedPath>core/impl/src/test/java/org/eclipse/sensinact/core/extract/impl/GenericDtoExtractorTest.java</affectedPath><affectedPath>core/annotation/src/main/java/org/eclipse/sensinact/core/annotation/dto/Data.java</affectedPath><affectedPath>core/annotation/src/main/java/org/eclipse/sensinact/core/annotation/dto/DuplicateAction.java</affectedPath><affectedPath>core/annotation/src/main/java/org/eclipse/sensinact/core/annotation/dto/Service.java</affectedPath><affectedPath>core/impl/src/main/java/org/eclipse/sensinact/core/impl/SetMetadataCommand.java</affectedPath><affectedPath>core/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/GenericDtoDataExtractor.java</affectedPath><affectedPath>core/impl/src/main/java/org/eclipse/sensinact/core/impl/SetValueCommand.java</affectedPath><affectedPath>core/annotation/src/main/java/org/eclipse/sensinact/core/annotation/dto/Provider.java</affectedPath><affectedPath>core/annotation/src/main/java/org/eclipse/sensinact/core/annotation/dto/Resource.java</affectedPath><commitId>d56f449967ab2d893f97a1736a3d8eb79c23148a</commitId><timestamp>1722331137000</timestamp><author><absoluteUrl>https://devel.data-in-motion.biz/jenkins/user/timothyjward</absoluteUrl><fullName>timothyjward</fullName></author><authorEmail>timothyjward@apache.org</authorEmail><comment>Allow data and metadata update de-duplication

This commit adds a DuplicateAction to the pushed updates, which determines the behaviour when the pushed update contains a duplicate value or metadata value. A duplicate value is determined by object equality, or == if one value is null. The default for resource values is that duplicates updates are applied, updating the timestamp and generating a update event. The default for metadata values is that duplicate updates are ignored, avoiding timestamp updates and update events. The reason for this difference is that repeated data readings can often give the same value, but this is a new reading. In general metadata values do not change, and so duplicates aren't interesting.

Signed-off-by: Tim Ward &lt;timothyjward@apache.org&gt;
</comment><date>2024-07-30 10:18:57 +0100</date><id>d56f449967ab2d893f97a1736a3d8eb79c23148a</id><msg>Allow data and metadata update de-duplication</msg><path><editType>edit</editType><file>core/annotation/src/main/java/org/eclipse/sensinact/core/annotation/dto/Provider.java</file></path><path><editType>edit</editType><file>core/annotation/src/main/java/org/eclipse/sensinact/core/annotation/dto/Metadata.java</file></path><path><editType>edit</editType><file>core/impl/src/main/java/org/eclipse/sensinact/core/model/nexus/ModelNexus.java</file></path><path><editType>edit</editType><file>core/impl/src/main/java/org/eclipse/sensinact/core/impl/SetMetadataCommand.java</file></path><path><editType>edit</editType><file>core/impl/src/test/java/org/eclipse/sensinact/core/extract/impl/CustomBaseValueDtoExtractorTest.java</file></path><path><editType>edit</editType><file>core/impl/src/test/java/org/eclipse/sensinact/core/extract/impl/GenericDtoExtractorTest.java</file></path><path><editType>edit</editType><file>core/impl/src/main/java/org/eclipse/sensinact/core/dto/impl/AbstractUpdateDto.java</file></path><path><editType>edit</editType><file>core/annotation/src/main/java/org/eclipse/sensinact/core/annotation/dto/Data.java</file></path><path><editType>edit</editType><file>core/api/src/main/java/org/eclipse/sensinact/core/push/dto/GenericDto.java</file></path><path><editType>edit</editType><file>core/annotation/src/main/java/org/eclipse/sensinact/core/annotation/dto/Resource.java</file></path><path><editType>edit</editType><file>core/impl/src/test/java/org/eclipse/sensinact/core/integration/DataUpdateServiceTest.java</file></path><path><editType>add</editType><file>core/annotation/src/main/java/org/eclipse/sensinact/core/annotation/dto/DuplicateAction.java</file></path><path><editType>edit</editType><file>core/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/GenericDtoDataExtractor.java</file></path><path><editType>edit</editType><file>core/impl/src/main/java/org/eclipse/sensinact/core/impl/SetValueCommand.java</file></path><path><editType>edit</editType><file>core/annotation/src/main/java/org/eclipse/sensinact/core/annotation/dto/Service.java</file></path><path><editType>edit</editType><file>core/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/AnnotationMapping.java</file></path><path><editType>edit</editType><file>core/impl/src/test/java/org/eclipse/sensinact/core/extract/impl/AnnotationBasedDtoExtractorTest.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>core/annotation/src/main/java/org/eclipse/sensinact/core/annotation/dto/Timestamp.java</affectedPath><affectedPath>core/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/AnnotationMapping.java</affectedPath><commitId>508355c944be9bead0063f388f4b31de34007644</commitId><timestamp>1722333026000</timestamp><author><absoluteUrl>https://devel.data-in-motion.biz/jenkins/user/timothyjward</absoluteUrl><fullName>timothyjward</fullName></author><authorEmail>timothyjward@apache.org</authorEmail><comment>Further improvements to timestamp mapping
</comment><date>2024-07-30 10:50:26 +0100</date><id>508355c944be9bead0063f388f4b31de34007644</id><msg>Further improvements to timestamp mapping</msg><path><editType>edit</editType><file>core/annotation/src/main/java/org/eclipse/sensinact/core/annotation/dto/Timestamp.java</file></path><path><editType>edit</editType><file>core/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/AnnotationMapping.java</file></path></item></changeSet><culprit><absoluteUrl>https://devel.data-in-motion.biz/jenkins/user/timothyjward</absoluteUrl><fullName>timothyjward</fullName><id>timothyjward</id></culprit><mavenArtifacts><mainArtifact><artifactId>annotation</artifactId><canonicalName>annotation-0.0.2-SNAPSHOT.jar</canonicalName><fileName>annotation-0.0.2-SNAPSHOT.jar</fileName><groupId>org.eclipse.sensinact.gateway.core</groupId><md5sum>026b0cbbd4c7d6cc71009cb8e422fc0a</md5sum><type>jar</type><version>0.0.2-SNAPSHOT</version></mainArtifact><parent><number>33</number><url>https://devel.data-in-motion.biz/jenkins/job/Eclipse%20Sensinact/org.eclipse.sensinact.gateway.core$annotation/33/</url></parent><pomArtifact><artifactId>annotation</artifactId><canonicalName>annotation-0.0.2-SNAPSHOT.pom</canonicalName><fileName>.flattened-pom.xml</fileName><groupId>org.eclipse.sensinact.gateway.core</groupId><md5sum>e4e741be6fc39f7697102dc1374e590d</md5sum><type>pom</type><version>0.0.2-SNAPSHOT</version></pomArtifact><url>https://devel.data-in-motion.biz/jenkins/job/Eclipse%20Sensinact/org.eclipse.sensinact.gateway.core$annotation/33/mavenArtifacts/</url></mavenArtifacts></mavenBuild>