{
  "_class" : "hudson.maven.MavenModuleSetBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "com.cloudbees.jenkins.GitHubPushCause",
          "shortDescription" : "Started by GitHub push by gg-dim"
        }
      ]
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/dim_build_master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 26,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "1738146a5cd0dac73eb3de76b8d19b8d7deba934",
            "branch" : [
              {
                "SHA1" : "1738146a5cd0dac73eb3de76b8d19b8d7deba934",
                "name" : "refs/remotes/origin/dim_build_master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "1738146a5cd0dac73eb3de76b8d19b8d7deba934",
            "branch" : [
              {
                "SHA1" : "1738146a5cd0dac73eb3de76b8d19b8d7deba934",
                "name" : "refs/remotes/origin/dim_build_master"
              }
            ]
          }
        },
        "refs/remotes/origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 31,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "81e9e2e5bae01d0b3a7f7406ed03b3107c7e5ed8",
            "branch" : [
              {
                "SHA1" : "81e9e2e5bae01d0b3a7f7406ed03b3107c7e5ed8",
                "name" : "refs/remotes/origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "81e9e2e5bae01d0b3a7f7406ed03b3107c7e5ed8",
            "branch" : [
              {
                "SHA1" : "81e9e2e5bae01d0b3a7f7406ed03b3107c7e5ed8",
                "name" : "refs/remotes/origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "81e9e2e5bae01d0b3a7f7406ed03b3107c7e5ed8",
        "branch" : [
          {
            "SHA1" : "81e9e2e5bae01d0b3a7f7406ed03b3107c7e5ed8",
            "name" : "refs/remotes/origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/DataInMotion/org.eclipse.sensinact.gateway.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      "_class" : "hudson.maven.reporters.MavenAggregatedArtifactRecord"
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#31",
  "duration" : 259826,
  "estimatedDuration" : 244921,
  "executor" : None,
  "fullDisplayName" : "Eclipse Sensinact #31",
  "id" : "31",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 31,
  "queueId" : 158942,
  "result" : "SUCCESS",
  "timestamp" : 1723107711600,
  "url" : "https://devel.data-in-motion.biz/jenkins/job/Eclipse%20Sensinact/31/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "core/api/src/main/java/org/eclipse/sensinact/core/notification/LifecycleNotification.java",
          "southbound/virtual/virtual-temperature-sensor/src/main/java/org/eclipse/sensinact/gateway/southbound/virtual/temperature/VirtualTemperatureDto.java",
          "core/api/src/main/java/org/eclipse/sensinact/core/notification/ResourceMetaDataNotification.java",
          "northbound/rest/src/main/java/org/eclipse/sensinact/northbound/rest/impl/RestNorthbound.java",
          "core/api/src/main/java/org/eclipse/sensinact/core/notification/ResourceActionNotification.java",
          "core/api/src/main/java/org/eclipse/sensinact/core/notification/ResourceDataNotification.java",
          "northbound/rest/src/test/java/org/eclipse/sensinact/northbound/rest/integration/notification/ResourceNotificationsTest.java",
          "northbound/session/session-impl/src/test/java/org/eclipse/sensinact/nortbound/session/integration/SessionSubscribeTest.java",
          "core/impl/src/test/java/org/eclipse/sensinact/core/notification/impl/NotificationSenderTest.java",
          "northbound/websocket/src/main/java/org/eclipse/sensinact/northbound/ws/impl/WebSocketEndpoint.java"
        ],
        "commitId" : "9d68852a61656138c22694f9e0988f6b0a9a1e95",
        "timestamp" : 1716221106000,
        "author" : {
          "absoluteUrl" : "https://devel.data-in-motion.biz/jenkins/user/timothyjward",
          "fullName" : "timothyjward"
        },
        "authorEmail" : "timothyjward@apache.org",
        "comment" : "Include the model name in topic notifications\u000a\u000aFiltering at the model level is extremely useful as it permits efficient tracking of multiple providers using the same model. The model URI is required to ensure strict uniqueness, however the model uri is difficult to represent in topic syntax, and would need large amounts of escaping. The trade off is therefore to allow the model name to be used in the topic for rapid checking, with the filter being available for more precise matching if needed.\u000a\u000aSigned-off-by: Tim Ward <timothyjward@apache.org>\u000a",
        "date" : "2024-05-20 17:05:06 +0100",
        "id" : "9d68852a61656138c22694f9e0988f6b0a9a1e95",
        "msg" : "Include the model name in topic notifications",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "core/impl/src/test/java/org/eclipse/sensinact/core/notification/impl/NotificationSenderTest.java"
          },
          {
            "editType" : "edit",
            "file" : "core/api/src/main/java/org/eclipse/sensinact/core/notification/ResourceDataNotification.java"
          },
          {
            "editType" : "edit",
            "file" : "core/api/src/main/java/org/eclipse/sensinact/core/notification/ResourceActionNotification.java"
          },
          {
            "editType" : "edit",
            "file" : "northbound/rest/src/test/java/org/eclipse/sensinact/northbound/rest/integration/notification/ResourceNotificationsTest.java"
          },
          {
            "editType" : "edit",
            "file" : "northbound/session/session-impl/src/test/java/org/eclipse/sensinact/nortbound/session/integration/SessionSubscribeTest.java"
          },
          {
            "editType" : "edit",
            "file" : "northbound/websocket/src/main/java/org/eclipse/sensinact/northbound/ws/impl/WebSocketEndpoint.java"
          },
          {
            "editType" : "edit",
            "file" : "core/api/src/main/java/org/eclipse/sensinact/core/notification/LifecycleNotification.java"
          },
          {
            "editType" : "edit",
            "file" : "northbound/rest/src/main/java/org/eclipse/sensinact/northbound/rest/impl/RestNorthbound.java"
          },
          {
            "editType" : "edit",
            "file" : "southbound/virtual/virtual-temperature-sensor/src/main/java/org/eclipse/sensinact/gateway/southbound/virtual/temperature/VirtualTemperatureDto.java"
          },
          {
            "editType" : "edit",
            "file" : "core/api/src/main/java/org/eclipse/sensinact/core/notification/ResourceMetaDataNotification.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "core/models/provider/src/main/resources/model/sensinact.ecore",
          "core/models/provider/src/main/resources/model/sensinact.genmodel",
          "core/impl/src/test/java/org/eclipse/sensinact/core/integration/EMFUpdateServiceTest.java"
        ],
        "commitId" : "4410aac42c5a5724db1a96b563512940ce02aeb6",
        "timestamp" : 1716543632000,
        "author" : {
          "absoluteUrl" : "https://devel.data-in-motion.biz/jenkins/user/ggrune",
          "fullName" : "Guido Grune"
        },
        "authorEmail" : "g.grune@datainmotion.com",
        "comment" : "use real eClass from service not from reference\u000a\u000aSigned-off-by: Guido Grune <g.grune@datainmotion.com>\u000a",
        "date" : "2024-05-24 11:40:32 +0200",
        "id" : "4410aac42c5a5724db1a96b563512940ce02aeb6",
        "msg" : "use real eClass from service not from reference",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "core/models/provider/src/main/resources/model/sensinact.ecore"
          },
          {
            "editType" : "edit",
            "file" : "core/models/provider/src/main/resources/model/sensinact.genmodel"
          },
          {
            "editType" : "edit",
            "file" : "core/impl/src/test/java/org/eclipse/sensinact/core/integration/EMFUpdateServiceTest.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "core/impl/src/main/java/org/eclipse/sensinact/core/model/impl/ServiceImpl.java",
          "core/impl/src/main/java/org/eclipse/sensinact/core/model/nexus/ModelNexus.java",
          "core/emf-api/src/main/java/org/eclipse/sensinact/core/emf/model/EMFModel.java",
          "core/emf-api/src/main/java/org/eclipse/sensinact/core/emf/model/EMFModelBuilder.java",
          "core/impl/src/main/java/org/eclipse/sensinact/core/model/impl/ModelImpl.java",
          "core/emf-api/src/main/java/org/eclipse/sensinact/core/emf/model/EMFService.java",
          "core/api/src/main/java/org/eclipse/sensinact/core/model/Model.java",
          "core/impl/src/main/java/org/eclipse/sensinact/core/model/impl/ServiceBuilderImpl.java",
          "core/emf-api/src/main/java/org/eclipse/sensinact/core/emf/model/SensinactEMFModelManager.java",
          "core/impl/src/test/java/org/eclipse/sensinact/core/integration/EMFUpdateServiceTest.java",
          "core/emf-api/src/main/java/org/eclipse/sensinact/core/emf/model/EMFServiceBuilder.java",
          "core/impl/src/main/java/org/eclipse/sensinact/core/model/impl/ModelBuilderImpl.java",
          "core/impl/src/main/java/org/eclipse/sensinact/core/impl/SetValueCommand.java",
          "core/impl/src/main/java/org/eclipse/sensinact/core/model/impl/SensinactModelManagerImpl.java"
        ],
        "commitId" : "a648fd6334494a065bf1355a64b37a945dcffeed",
        "timestamp" : 1716916215000,
        "author" : {
          "absoluteUrl" : "https://devel.data-in-motion.biz/jenkins/user/j.albert",
          "fullName" : "j.albert"
        },
        "authorEmail" : "j.albert@data-in-motion.biz",
        "comment" : "fixed NPE due to missing service EClass\u000a\u000aSigned-off-by: Juergen Albert <j.albert@data-in-motion.biz>\u000a",
        "date" : "2024-05-28 19:10:15 +0200",
        "id" : "a648fd6334494a065bf1355a64b37a945dcffeed",
        "msg" : "fixed NPE due to missing service EClass",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "core/impl/src/main/java/org/eclipse/sensinact/core/model/impl/ModelImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "core/emf-api/src/main/java/org/eclipse/sensinact/core/emf/model/SensinactEMFModelManager.java"
          },
          {
            "editType" : "add",
            "file" : "core/emf-api/src/main/java/org/eclipse/sensinact/core/emf/model/EMFServiceBuilder.java"
          },
          {
            "editType" : "add",
            "file" : "core/emf-api/src/main/java/org/eclipse/sensinact/core/emf/model/EMFService.java"
          },
          {
            "editType" : "edit",
            "file" : "core/impl/src/main/java/org/eclipse/sensinact/core/model/nexus/ModelNexus.java"
          },
          {
            "editType" : "edit",
            "file" : "core/impl/src/test/java/org/eclipse/sensinact/core/integration/EMFUpdateServiceTest.java"
          },
          {
            "editType" : "edit",
            "file" : "core/impl/src/main/java/org/eclipse/sensinact/core/model/impl/ModelBuilderImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "core/impl/src/main/java/org/eclipse/sensinact/core/model/impl/ServiceImpl.java"
          },
          {
            "editType" : "add",
            "file" : "core/emf-api/src/main/java/org/eclipse/sensinact/core/emf/model/EMFModel.java"
          },
          {
            "editType" : "add",
            "file" : "core/emf-api/src/main/java/org/eclipse/sensinact/core/emf/model/EMFModelBuilder.java"
          },
          {
            "editType" : "edit",
            "file" : "core/impl/src/main/java/org/eclipse/sensinact/core/impl/SetValueCommand.java"
          },
          {
            "editType" : "edit",
            "file" : "core/api/src/main/java/org/eclipse/sensinact/core/model/Model.java"
          },
          {
            "editType" : "edit",
            "file" : "core/impl/src/main/java/org/eclipse/sensinact/core/model/impl/ServiceBuilderImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "core/impl/src/main/java/org/eclipse/sensinact/core/model/impl/SensinactModelManagerImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "southbound/device-factory/parser-json/src/main/java/org/eclipse/sensinact/gateway/southbound/device/factory/parser/json/JsonRecord.java"
        ],
        "commitId" : "48dcadfad7f718156f564bc1b653e3bb4b793cde",
        "timestamp" : 1717159493000,
        "author" : {
          "absoluteUrl" : "https://devel.data-in-motion.biz/jenkins/user/thomas.calmant",
          "fullName" : "thomas.calmant"
        },
        "authorEmail" : "thomas.calmant@gmail.com",
        "comment" : "Fixed wrong import\u000a",
        "date" : "2024-05-31 14:44:53 +0200",
        "id" : "48dcadfad7f718156f564bc1b653e3bb4b793cde",
        "msg" : "Fixed wrong import",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "southbound/device-factory/parser-json/src/main/java/org/eclipse/sensinact/gateway/southbound/device/factory/parser/json/JsonRecord.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "southbound/mqtt/mqtt-client/src/main/java/org/eclipse/sensinact/gateway/southbound/mqtt/impl/MqttClientHandler.java",
          "southbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttSslAuthTest.java",
          "southbound/mqtt/mqtt-client/src/main/java/org/eclipse/sensinact/gateway/southbound/mqtt/impl/MqttClientConfiguration.java",
          "southbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttWebSocketTest.java"
        ],
        "commitId" : "bcf62248b324ea9ac0c998311802771aa62466f1",
        "timestamp" : 1717423215000,
        "author" : {
          "absoluteUrl" : "https://devel.data-in-motion.biz/jenkins/user/thomas.calmant",
          "fullName" : "thomas.calmant"
        },
        "authorEmail" : "thomas.calmant@gmail.com",
        "comment" : "Added support for WebSocket MQTT brokers\u000a\u000aIncluding client authentication\u000a",
        "date" : "2024-06-03 16:00:15 +0200",
        "id" : "bcf62248b324ea9ac0c998311802771aa62466f1",
        "msg" : "Added support for WebSocket MQTT brokers",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "southbound/mqtt/mqtt-client/src/main/java/org/eclipse/sensinact/gateway/southbound/mqtt/impl/MqttClientConfiguration.java"
          },
          {
            "editType" : "edit",
            "file" : "southbound/mqtt/mqtt-client/src/main/java/org/eclipse/sensinact/gateway/southbound/mqtt/impl/MqttClientHandler.java"
          },
          {
            "editType" : "edit",
            "file" : "southbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttSslAuthTest.java"
          },
          {
            "editType" : "add",
            "file" : "southbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttWebSocketTest.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "southbound/mqtt/.gitignore"
        ],
        "commitId" : "639c4405aafd119506af3c0757157b74065a4646",
        "timestamp" : 1717423685000,
        "author" : {
          "absoluteUrl" : "https://devel.data-in-motion.biz/jenkins/user/thomas.calmant",
          "fullName" : "thomas.calmant"
        },
        "authorEmail" : "thomas.calmant@gmail.com",
        "comment" : "Ignore Moquette and Paho files\u000a",
        "date" : "2024-06-03 16:08:05 +0200",
        "id" : "639c4405aafd119506af3c0757157b74065a4646",
        "msg" : "Ignore Moquette and Paho files",
        "paths" : [
          {
            "editType" : "add",
            "file" : "southbound/mqtt/.gitignore"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "southbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttSslAuthTest.java",
          "southbound/mqtt/pom.xml",
          "southbound/mqtt/mqtt-device-factory/integration-test.bndrun",
          "southbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttDelayedStartTest.java",
          "southbound/mqtt/mqtt-device-factory/tests.bnd",
          "southbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttAuthTest.java",
          "southbound/mqtt/mqtt-device-factory/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/factory/integration/MqttDeviceFactoryTest.java",
          "southbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttTest.java",
          "southbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttWebSocketTest.java"
        ],
        "commitId" : "21a3fa0aee1d040e604b9b01ec8ab86498905ee3",
        "timestamp" : 1717424209000,
        "author" : {
          "absoluteUrl" : "https://devel.data-in-motion.biz/jenkins/user/thomas.calmant",
          "fullName" : "thomas.calmant"
        },
        "authorEmail" : "thomas.calmant@gmail.com",
        "comment" : "Upgrade to Moquette 0.17\u000a",
        "date" : "2024-06-03 16:16:49 +0200",
        "id" : "21a3fa0aee1d040e604b9b01ec8ab86498905ee3",
        "msg" : "Upgrade to Moquette 0.17",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "southbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttWebSocketTest.java"
          },
          {
            "editType" : "edit",
            "file" : "southbound/mqtt/mqtt-device-factory/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/factory/integration/MqttDeviceFactoryTest.java"
          },
          {
            "editType" : "edit",
            "file" : "southbound/mqtt/pom.xml"
          },
          {
            "editType" : "edit",
            "file" : "southbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttSslAuthTest.java"
          },
          {
            "editType" : "edit",
            "file" : "southbound/mqtt/mqtt-device-factory/integration-test.bndrun"
          },
          {
            "editType" : "edit",
            "file" : "southbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttAuthTest.java"
          },
          {
            "editType" : "edit",
            "file" : "southbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttTest.java"
          },
          {
            "editType" : "edit",
            "file" : "southbound/mqtt/mqtt-client/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/test/MqttDelayedStartTest.java"
          },
          {
            "editType" : "edit",
            "file" : "southbound/mqtt/mqtt-device-factory/tests.bnd"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "southbound/mqtt/mqtt-device-factory/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/factory/integration/MqttDeviceFactoryTest.java",
          "southbound/mqtt/mqtt-device-factory/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/factory/integration/MqttWSDeviceFactoryTest.java"
        ],
        "commitId" : "5bd0ac64fe42679f53052062d08496c362b0091f",
        "timestamp" : 1717495402000,
        "author" : {
          "absoluteUrl" : "https://devel.data-in-motion.biz/jenkins/user/thomas.calmant",
          "fullName" : "thomas.calmant"
        },
        "authorEmail" : "thomas.calmant@gmail.com",
        "comment" : "Updated MQTT device factory tests for WS support\u000a",
        "date" : "2024-06-04 12:03:22 +0200",
        "id" : "5bd0ac64fe42679f53052062d08496c362b0091f",
        "msg" : "Updated MQTT device factory tests for WS support",
        "paths" : [
          {
            "editType" : "add",
            "file" : "southbound/mqtt/mqtt-device-factory/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/factory/integration/MqttWSDeviceFactoryTest.java"
          },
          {
            "editType" : "edit",
            "file" : "southbound/mqtt/mqtt-device-factory/src/test/java/org/eclipse/sensinact/gateway/southbound/mqtt/factory/integration/MqttDeviceFactoryTest.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "southbound/mqtt/mqtt-client/src/main/java/org/eclipse/sensinact/gateway/southbound/mqtt/impl/MqttClientHandler.java"
        ],
        "commitId" : "79587d09e665043bd54730da0aff1c64bd4ec194",
        "timestamp" : 1717495436000,
        "author" : {
          "absoluteUrl" : "https://devel.data-in-motion.biz/jenkins/user/thomas.calmant",
          "fullName" : "thomas.calmant"
        },
        "authorEmail" : "thomas.calmant@gmail.com",
        "comment" : "Avoid trying to reconnect a null MQTT client\u000a",
        "date" : "2024-06-04 12:03:56 +0200",
        "id" : "79587d09e665043bd54730da0aff1c64bd4ec194",
        "msg" : "Avoid trying to reconnect a null MQTT client",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "southbound/mqtt/mqtt-client/src/main/java/org/eclipse/sensinact/gateway/southbound/mqtt/impl/MqttClientHandler.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "core/impl/src/main/java/org/eclipse/sensinact/core/model/impl/ModelImpl.java",
          "core/impl/src/test/java/org/eclipse/sensinact/core/model/nexus/impl/NexusTest.java",
          "core/impl/src/main/java/org/eclipse/sensinact/core/model/nexus/ModelNexus.java",
          "core/impl/src/main/java/org/eclipse/sensinact/core/model/impl/SensinactModelManagerImpl.java",
          "core/impl/src/test/java/org/eclipse/sensinact/core/model/impl/ModelBuildingTest.java"
        ],
        "commitId" : "d221b6126804814251557f7d4cda8d11e7c9300d",
        "timestamp" : 1718189135000,
        "author" : {
          "absoluteUrl" : "https://devel.data-in-motion.biz/jenkins/user/timothyjward",
          "fullName" : "timothyjward"
        },
        "authorEmail" : "timothyjward@apache.org",
        "comment" : "Implement model deletion in the Model Manager\u000a\u000aThe model manager API provides a deletion method, but this was not implemented. This commit implements deletion logic, which delegates to the Model Nexus. The Model Nexus:\u000a\u000a1. Finds the Model\u000a2. If found it deletes any and all providers using the model, then it deletes the model from its owning EPackage\u000a3. If the EPackage is now empty of models then the EPackage is removed from the Model Nexus\u000a\u000aThe ModelImpl has also been updated to check the the model is still registered before allowing any action. This prevents deleted models from being used after they are deleted.\u000a\u000aSigned-off-by: Tim Ward <timothyjward@apache.org>\u000a",
        "date" : "2024-06-12 11:45:35 +0100",
        "id" : "d221b6126804814251557f7d4cda8d11e7c9300d",
        "msg" : "Implement model deletion in the Model Manager",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "core/impl/src/main/java/org/eclipse/sensinact/core/model/nexus/ModelNexus.java"
          },
          {
            "editType" : "edit",
            "file" : "core/impl/src/test/java/org/eclipse/sensinact/core/model/impl/ModelBuildingTest.java"
          },
          {
            "editType" : "edit",
            "file" : "core/impl/src/main/java/org/eclipse/sensinact/core/model/impl/SensinactModelManagerImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "core/impl/src/test/java/org/eclipse/sensinact/core/model/nexus/impl/NexusTest.java"
          },
          {
            "editType" : "edit",
            "file" : "core/impl/src/main/java/org/eclipse/sensinact/core/model/impl/ModelImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "core/api/src/main/java/org/eclipse/sensinact/core/twin/SensinactDigitalTwin.java"
        ],
        "commitId" : "6eebd84301fc3794c5a9dd773c3bcde0d8733afe",
        "timestamp" : 1718207057000,
        "author" : {
          "absoluteUrl" : "https://devel.data-in-motion.biz/jenkins/user/timothyjward",
          "fullName" : "timothyjward"
        },
        "authorEmail" : "timothyjward@apache.org",
        "comment" : "Expose #getProviders(String modelPackageUri, String model) from the twin\u000a\u000aThe method getProviders(String, String) existed in the EMF Twin, but not the base twin. As we already use the model package uri extensively in that interface we should expose it here as well.\u000a\u000aSigned-off-by: Tim Ward <timothyjward@apache.org>\u000a",
        "date" : "2024-06-12 16:44:17 +0100",
        "id" : "6eebd84301fc3794c5a9dd773c3bcde0d8733afe",
        "msg" : "Expose #getProviders(String modelPackageUri, String model) from the twin",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "core/api/src/main/java/org/eclipse/sensinact/core/twin/SensinactDigitalTwin.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "core/impl/src/main/java/org/eclipse/sensinact/core/dto/impl/AbstractUpdateDto.java",
          "core/impl/src/main/java/org/eclipse/sensinact/core/whiteboard/impl/SensinactWhiteboard.java",
          "core/impl/src/test/java/org/eclipse/sensinact/core/command/impl/WhiteboardImplTest.java",
          "core/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/EMFGenericDtoDataExtractor.java",
          "core/impl/src/test/java/org/eclipse/sensinact/core/extract/impl/CustomBaseValueDtoExtractorTest.java",
          "core/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/GenericDtoDataExtractor.java",
          "core/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/AnnotationMapping.java",
          "core/annotation/src/main/java/org/eclipse/sensinact/core/annotation/dto/NullAction.java",
          "core/impl/src/main/java/org/eclipse/sensinact/core/impl/SetValueCommand.java",
          "core/impl/src/test/java/org/eclipse/sensinact/core/extract/impl/GenericDtoExtractorTest.java"
        ],
        "commitId" : "068be1017ad07f297a0316652e66e9dec2412304",
        "timestamp" : 1718714782000,
        "author" : {
          "absoluteUrl" : "https://devel.data-in-motion.biz/jenkins/user/timothyjward",
          "fullName" : "timothyjward"
        },
        "authorEmail" : "timothyjward@apache.org",
        "comment" : "Add support for nullable data which should not create a resource\u000a\u000aIn some cases null is a valid value to return, but should not be used to initialize a resource. For example if a DTO contains some optional resources which may never be set for some providers, but will be set for others, and those resources may be null, then this was not previously possible\u000a\u000aSigned-off-by: Tim Ward <timothyjward@apache.org>\u000a",
        "date" : "2024-06-18 13:46:22 +0100",
        "id" : "068be1017ad07f297a0316652e66e9dec2412304",
        "msg" : "Add support for nullable data which should not create a resource",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "core/impl/src/main/java/org/eclipse/sensinact/core/dto/impl/AbstractUpdateDto.java"
          },
          {
            "editType" : "edit",
            "file" : "core/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/AnnotationMapping.java"
          },
          {
            "editType" : "edit",
            "file" : "core/impl/src/main/java/org/eclipse/sensinact/core/impl/SetValueCommand.java"
          },
          {
            "editType" : "edit",
            "file" : "core/annotation/src/main/java/org/eclipse/sensinact/core/annotation/dto/NullAction.java"
          },
          {
            "editType" : "edit",
            "file" : "core/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/GenericDtoDataExtractor.java"
          },
          {
            "editType" : "edit",
            "file" : "core/impl/src/test/java/org/eclipse/sensinact/core/extract/impl/GenericDtoExtractorTest.java"
          },
          {
            "editType" : "edit",
            "file" : "core/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/EMFGenericDtoDataExtractor.java"
          },
          {
            "editType" : "edit",
            "file" : "core/impl/src/main/java/org/eclipse/sensinact/core/whiteboard/impl/SensinactWhiteboard.java"
          },
          {
            "editType" : "edit",
            "file" : "core/impl/src/test/java/org/eclipse/sensinact/core/extract/impl/CustomBaseValueDtoExtractorTest.java"
          },
          {
            "editType" : "edit",
            "file" : "core/impl/src/test/java/org/eclipse/sensinact/core/command/impl/WhiteboardImplTest.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "core/api/src/main/java/org/eclipse/sensinact/core/push/dto/GenericDto.java",
          "core/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/EMFGenericDtoDataExtractor.java",
          "core/emf-api/src/main/java/org/eclipse/sensinact/core/emf/dto/EMFGenericDto.java"
        ],
        "commitId" : "61101a6c9a361235909f11624cf1e8ea199fb126",
        "timestamp" : 1718721481000,
        "author" : {
          "absoluteUrl" : "https://devel.data-in-motion.biz/jenkins/user/timothyjward",
          "fullName" : "timothyjward"
        },
        "authorEmail" : "timothyjward@apache.org",
        "comment" : "Reinstate final modifier for GenericDto\u000a\u000aThe EMF dto altered the GenericDto so that it could extend it. The GenericDto was intentionally final to prevent usage mistakes in the API. There are few fields and we should copy them.\u000a\u000aSigned-off-by: Tim Ward <timothyjward@apache.org>\u000a",
        "date" : "2024-06-18 15:38:01 +0100",
        "id" : "61101a6c9a361235909f11624cf1e8ea199fb126",
        "msg" : "Reinstate final modifier for GenericDto",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "core/api/src/main/java/org/eclipse/sensinact/core/push/dto/GenericDto.java"
          },
          {
            "editType" : "edit",
            "file" : "core/emf-api/src/main/java/org/eclipse/sensinact/core/emf/dto/EMFGenericDto.java"
          },
          {
            "editType" : "edit",
            "file" : "core/impl/src/main/java/org/eclipse/sensinact/core/extract/impl/EMFGenericDtoDataExtractor.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "core/impl/src/test/java/org/eclipse/sensinact/core/integration/DataUpdateServiceTest.java",
          "core/impl/src/main/java/org/eclipse/sensinact/core/impl/SetValueCommand.java"
        ],
        "commitId" : "c9be1b379b44dcb0c5400ff44d4664ab3202c764",
        "timestamp" : 1718728864000,
        "author" : {
          "absoluteUrl" : "https://devel.data-in-motion.biz/jenkins/user/timothyjward",
          "fullName" : "timothyjward"
        },
        "authorEmail" : "timothyjward@apache.org",
        "comment" : "Fix missing check in SetValueCommand\u000a\u000aThe UPDATE_IF_PRESENT logic would always run even if the data value was not null. This has been fixed and regression tests added for all NullAction behaviours.\u000a\u000aSigned-off-by: Tim Ward <timothyjward@apache.org>\u000a",
        "date" : "2024-06-18 17:41:04 +0100",
        "id" : "c9be1b379b44dcb0c5400ff44d4664ab3202c764",
        "msg" : "Fix missing check in SetValueCommand",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "core/impl/src/test/java/org/eclipse/sensinact/core/integration/DataUpdateServiceTest.java"
          },
          {
            "editType" : "edit",
            "file" : "core/impl/src/main/java/org/eclipse/sensinact/core/impl/SetValueCommand.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "southbound/device-factory/device-factory-core/src/main/java/org/eclipse/sensinact/gateway/southbound/device/factory/impl/FactoryParserHandler.java"
        ],
        "commitId" : "ec12f6bd8fb171106dde6afa780a780e1dde1b22",
        "timestamp" : 1718896541000,
        "author" : {
          "absoluteUrl" : "https://devel.data-in-motion.biz/jenkins/user/j.albert",
          "fullName" : "j.albert"
        },
        "authorEmail" : "j.albert@data-in-motion.biz",
        "comment" : "removed renaming in Device Factory\u000a\u000aSigned-off-by: Juergen Albert <j.albert@data-in-motion.biz>\u000a",
        "date" : "2024-06-20 17:15:41 +0200",
        "id" : "ec12f6bd8fb171106dde6afa780a780e1dde1b22",
        "msg" : "removed renaming in Device Factory",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "southbound/device-factory/device-factory-core/src/main/java/org/eclipse/sensinact/gateway/southbound/device/factory/impl/FactoryParserHandler.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "southbound/history/timescale-provider/src/main/java/org/eclipse/sensinact/gateway/southbound/history/timescale/TimescaleHistoricalStore.java"
        ],
        "commitId" : "81e9e2e5bae01d0b3a7f7406ed03b3107c7e5ed8",
        "timestamp" : 1723107684000,
        "author" : {
          "absoluteUrl" : "https://devel.data-in-motion.biz/jenkins/user/ggrune",
          "fullName" : "Guido Grune"
        },
        "authorEmail" : "g.grune@datainmotion.com",
        "comment" : "Fix logging of errors\u000a\u000aSigned-off-by: Guido Grune <g.grune@datainmotion.com>\u000a",
        "date" : "2024-08-08 11:01:24 +0200",
        "id" : "81e9e2e5bae01d0b3a7f7406ed03b3107c7e5ed8",
        "msg" : "Fix logging of errors",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "southbound/history/timescale-provider/src/main/java/org/eclipse/sensinact/gateway/southbound/history/timescale/TimescaleHistoricalStore.java"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://devel.data-in-motion.biz/jenkins/user/timothyjward",
      "fullName" : "timothyjward"
    },
    {
      "absoluteUrl" : "https://devel.data-in-motion.biz/jenkins/user/ggrune",
      "fullName" : "Guido Grune"
    },
    {
      "absoluteUrl" : "https://devel.data-in-motion.biz/jenkins/user/j.albert",
      "fullName" : "j.albert"
    },
    {
      "absoluteUrl" : "https://devel.data-in-motion.biz/jenkins/user/thomas.calmant",
      "fullName" : "thomas.calmant"
    }
  ],
  "mavenArtifacts" : {
    
  },
  "mavenVersionUsed" : "3.8.4"
}