{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.model.Cause$UserIdCause",
          "shortDescription" : "Started by user Mike Dawson",
          "userId" : "mike",
          "userName" : "Mike Dawson"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/main" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 86,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "8ad39cc3223dbf8313527c36abd04c937b0d759f",
            "branch" : [
              {
                "SHA1" : "8ad39cc3223dbf8313527c36abd04c937b0d759f",
                "name" : "refs/remotes/origin/main"
              }
            ]
          },
          "revision" : {
            "SHA1" : "8ad39cc3223dbf8313527c36abd04c937b0d759f",
            "branch" : [
              {
                "SHA1" : "8ad39cc3223dbf8313527c36abd04c937b0d759f",
                "name" : "refs/remotes/origin/main"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "8ad39cc3223dbf8313527c36abd04c937b0d759f",
        "branch" : [
          {
            "SHA1" : "8ad39cc3223dbf8313527c36abd04c937b0d759f",
            "name" : "refs/remotes/origin/main"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/UstadMobile/door.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#86",
  "duration" : 212185,
  "estimatedDuration" : 161708,
  "executor" : None,
  "fullDisplayName" : "Door #86",
  "id" : "86",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 86,
  "queueId" : 77,
  "result" : "SUCCESS",
  "timestamp" : 1720173053293,
  "url" : "https://devserver3.ustadmobile.com/jenkins/job/Door/86/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/DoorExpectTypeAliasProcessor.kt",
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/ext/PreparedStatementCommonExt.kt",
          "build.gradle"
        ],
        "commitId" : "938b5f36ffbfe3ebf3590b1a2e09f45e4345d792",
        "timestamp" : 1715266116000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Update handling receiving entities for insert into receive view.\u000a\u000a Where json does not have a field (e.g. because the schema was updated and the field is present on the server but not yet on the client) use the default value for the type.\u000a",
        "date" : "2024-05-09 18:48:36 +0400",
        "id" : "938b5f36ffbfe3ebf3590b1a2e09f45e4345d792",
        "msg" : "Update handling receiving entities for insert into receive view.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "build.gradle"
          },
          {
            "editType" : "edit",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/ext/PreparedStatementCommonExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/DoorExpectTypeAliasProcessor.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/replication/DoorDatabaseReplicationExt.kt",
          "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/DoorJdbcProcessor.kt",
          "door-testdb/src/commonMain/kotlin/db3/StatementEntityDao.kt",
          "build.gradle",
          "door-testdb/src/commonMain/kotlin/db3/StatementEntity.kt",
          "door-testdb/src/jvmTest/kotlin/com/ustadmobile/door/replication/PushIntegrationTest.kt",
          "door-testdb/src/jvmTest/kotlin/com/ustadmobile/door/replication/PullIntegrationTest.kt",
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/replication/ReplicationEntityMetaData.kt",
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/entities/PendingRepositorySession.kt",
          "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/DoorValidatorProcessor.kt",
          "door-testdb/src/commonMain/kotlin/db3/ExampleDb3.kt"
        ],
        "commitId" : "098f7a0d205b9103805a032eee54012590acb5a0",
        "timestamp" : 1715876900000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add support for multiple primary keys on replicate entities\u000a",
        "date" : "2024-05-16 20:28:20 +0400",
        "id" : "098f7a0d205b9103805a032eee54012590acb5a0",
        "msg" : "Add support for multiple primary keys on replicate entities",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/replication/ReplicationEntityMetaData.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/entities/PendingRepositorySession.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/replication/DoorDatabaseReplicationExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-testdb/src/jvmTest/kotlin/com/ustadmobile/door/replication/PushIntegrationTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/DoorValidatorProcessor.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/DoorJdbcProcessor.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-testdb/src/commonMain/kotlin/db3/ExampleDb3.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-testdb/src/jvmTest/kotlin/com/ustadmobile/door/replication/PullIntegrationTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "build.gradle"
          },
          {
            "editType" : "add",
            "file" : "door-testdb/src/commonMain/kotlin/db3/StatementEntity.kt"
          },
          {
            "editType" : "add",
            "file" : "door-testdb/src/commonMain/kotlin/db3/StatementEntityDao.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/TypeNameExt.kt",
          "door-testdb/src/commonMain/kotlin/db3/DiscussionPost.kt",
          "build.gradle"
        ],
        "commitId" : "0d117b9efdca05b913b32e191c242e26f63d1fdf",
        "timestamp" : 1716107249000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Fix handling of nullable primitive types on ReplicateEntity.\u000a",
        "date" : "2024-05-19 12:27:29 +0400",
        "id" : "0d117b9efdca05b913b32e191c242e26f63d1fdf",
        "msg" : "Fix handling of nullable primitive types on ReplicateEntity.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/TypeNameExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "build.gradle"
          },
          {
            "editType" : "edit",
            "file" : "door-testdb/src/commonMain/kotlin/db3/DiscussionPost.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "door-runtime/src/jvmTest/kotlin/com/ustadmobile/door/replication/DoorRepositoryReplicationClientTest.kt",
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/nodeevent/NodeEvent.kt",
          "door-runtime/src/commonJvmJs/kotlin/com/ustadmobile/door/nodeevent/NodeEventJdbcImplListenerSqlite.kt",
          "door-testdb/src/commonMain/kotlin/db2/ExampleDao2.kt",
          "door-testdb/src/commonTest/kotlin/com/ustadmobile/door/test/BasicCrudIntegrationTest.kt",
          "door-runtime/src/androidMain/kotlin/com/ustadmobile/door/nodeevent/NodeEventManagerAndroid.kt",
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/entities/OutgoingReplication.kt",
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/replication/DoorDatabaseReplicationExt.kt",
          "door-runtime/src/jvmMain/kotlin/com/ustadmobile/door/nodeevent/PostgresNodeEventListener.kt",
          "build.gradle",
          "door-testdb/src/commonMain/kotlin/db3/ExampleEntity3Dao.kt",
          "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/DoorValidatorProcessor.kt",
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/nodeevent/NodeEventConstants.kt"
        ],
        "commitId" : "3125f245344a54bc1ba36b82b24fa4952f502180",
        "timestamp" : 1716378095000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add support for composite primary keys with up to four fields.\u000a",
        "date" : "2024-05-22 15:41:35 +0400",
        "id" : "3125f245344a54bc1ba36b82b24fa4952f502180",
        "msg" : "Add support for composite primary keys with up to four fields.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "build.gradle"
          },
          {
            "editType" : "edit",
            "file" : "door-runtime/src/androidMain/kotlin/com/ustadmobile/door/nodeevent/NodeEventManagerAndroid.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/entities/OutgoingReplication.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/nodeevent/NodeEvent.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/replication/DoorDatabaseReplicationExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-testdb/src/commonMain/kotlin/db2/ExampleDao2.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/DoorValidatorProcessor.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-testdb/src/commonTest/kotlin/com/ustadmobile/door/test/BasicCrudIntegrationTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-runtime/src/jvmMain/kotlin/com/ustadmobile/door/nodeevent/PostgresNodeEventListener.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/nodeevent/NodeEventConstants.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-runtime/src/commonJvmJs/kotlin/com/ustadmobile/door/nodeevent/NodeEventJdbcImplListenerSqlite.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-testdb/src/commonMain/kotlin/db3/ExampleEntity3Dao.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-runtime/src/jvmTest/kotlin/com/ustadmobile/door/replication/DoorRepositoryReplicationClientTest.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/DoorRepositoryProcessor.kt",
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/annotation/QueryTableModified.kt",
          "build.gradle",
          "door-testdb/src/commonMain/kotlin/db3/ExampleEntity3Dao.kt",
          "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/ext/KSFunctionDeclarationExt.kt",
          "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/DoorValidatorProcessor.kt",
          "README.md"
        ],
        "commitId" : "e439bb2c5c16478a9c3239f982149faf6aa0886f",
        "timestamp" : 1716541213000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Handle SQL parser errors on update/insert statements and improve handling of query error output.\u000aAdd QueryTableModified to allow the manual specification of which tables are changed by a Query that uses update/insert/delete.\u000aUpdate documentation on debugging the KSP processor.\u000a",
        "date" : "2024-05-24 13:00:13 +0400",
        "id" : "e439bb2c5c16478a9c3239f982149faf6aa0886f",
        "msg" : "Handle SQL parser errors on update/insert statements and improve handling of query error output.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/DoorValidatorProcessor.kt"
          },
          {
            "editType" : "edit",
            "file" : "build.gradle"
          },
          {
            "editType" : "edit",
            "file" : "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/ext/KSFunctionDeclarationExt.kt"
          },
          {
            "editType" : "add",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/annotation/QueryTableModified.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-testdb/src/commonMain/kotlin/db3/ExampleEntity3Dao.kt"
          },
          {
            "editType" : "edit",
            "file" : "README.md"
          },
          {
            "editType" : "edit",
            "file" : "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/DoorRepositoryProcessor.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/DoorJdbcProcessor.kt",
          "door-testdb/src/commonTest/kotlin/com/ustadmobile/door/test/BasicCrudIntegrationTest.kt",
          "door-testdb/src/commonMain/kotlin/db2/ExampleDao2.kt",
          "build.gradle"
        ],
        "commitId" : "032b04ccfeca15cb64577d3a07cdf1e8d8d1572f",
        "timestamp" : 1716552092000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add support for ignore insert conflict.\u000a",
        "date" : "2024-05-24 16:01:32 +0400",
        "id" : "032b04ccfeca15cb64577d3a07cdf1e8d8d1572f",
        "msg" : "Add support for ignore insert conflict.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/DoorJdbcProcessor.kt"
          },
          {
            "editType" : "edit",
            "file" : "build.gradle"
          },
          {
            "editType" : "edit",
            "file" : "door-testdb/src/commonTest/kotlin/com/ustadmobile/door/test/BasicCrudIntegrationTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-testdb/src/commonMain/kotlin/db2/ExampleDao2.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/entities/OutgoingReplication.kt",
          "build.gradle"
        ],
        "commitId" : "10a41e1ec2acab323cc3035f454438d4b2578f64",
        "timestamp" : 1716565336000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add default column info value to OutgoingReplication additional primary key fields to ensure database migration check passes.\u000a",
        "date" : "2024-05-24 19:42:16 +0400",
        "id" : "10a41e1ec2acab323cc3035f454438d4b2578f64",
        "msg" : "Add default column info value to OutgoingReplication additional primary key fields to ensure database migration check passes.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/entities/OutgoingReplication.kt"
          },
          {
            "editType" : "edit",
            "file" : "build.gradle"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/DoorValidatorProcessor.kt",
          "build.gradle"
        ],
        "commitId" : "9e821efa0f1232e48f86d9ece341f2f5f41eabc9",
        "timestamp" : 1716724643000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Update validation processor error output to include exception message.\u000a",
        "date" : "2024-05-26 15:57:23 +0400",
        "id" : "9e821efa0f1232e48f86d9ece341f2f5f41eabc9",
        "msg" : "Update validation processor error output to include exception message.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "build.gradle"
          },
          {
            "editType" : "edit",
            "file" : "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/DoorValidatorProcessor.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/ext/ResultSetExt.kt",
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/replication/ReplicationFieldMetaData.kt",
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/replication/DoorDatabaseReplicationExt.kt",
          "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/DoorJdbcProcessor.kt",
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/ext/PreparedStatementCommonExt.kt",
          "build.gradle",
          "door-testdb/src/jvmTest/kotlin/com/ustadmobile/door/replication/PushIntegrationTest.kt",
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/replication/JsonDbFieldInfo.kt",
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/replication/ReplicationEntityMetaData.kt",
          "door-testdb/src/commonMain/kotlin/db3/ExampleEntity3.kt"
        ],
        "commitId" : "03775f80d80340382a750ba9c9d8facf7e39dd6b",
        "timestamp" : 1716996216000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Fix replication of nullable primitive fields.\u000a",
        "date" : "2024-05-29 19:23:36 +0400",
        "id" : "03775f80d80340382a750ba9c9d8facf7e39dd6b",
        "msg" : "Fix replication of nullable primitive fields.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "build.gradle"
          },
          {
            "editType" : "edit",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/ext/PreparedStatementCommonExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-testdb/src/jvmTest/kotlin/com/ustadmobile/door/replication/PushIntegrationTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/replication/ReplicationFieldMetaData.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-testdb/src/commonMain/kotlin/db3/ExampleEntity3.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/replication/ReplicationEntityMetaData.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/ext/ResultSetExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/DoorJdbcProcessor.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/replication/DoorDatabaseReplicationExt.kt"
          },
          {
            "editType" : "add",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/replication/JsonDbFieldInfo.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/paging/DoorRepositoryReplicatePullPagingSource.kt",
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/paging/DoorOffsetLimitRemoteMediator.kt",
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/paging/PagingSourceInterceptor.kt",
          "build.gradle",
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/paging/PagingSourceWithHttpLoader.kt"
        ],
        "commitId" : "2e5c33096240de9dcbba9c73e3b8e968f7a022f4",
        "timestamp" : 1718554419000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Improve documentation for paging source and remote mediator. Add PagingSourceWithHttpLoader interface.\u000a",
        "date" : "2024-06-16 20:13:39 +0400",
        "id" : "2e5c33096240de9dcbba9c73e3b8e968f7a022f4",
        "msg" : "Improve documentation for paging source and remote mediator. Add PagingSourceWithHttpLoader interface.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/paging/DoorOffsetLimitRemoteMediator.kt"
          },
          {
            "editType" : "edit",
            "file" : "build.gradle"
          },
          {
            "editType" : "edit",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/paging/PagingSourceInterceptor.kt"
          },
          {
            "editType" : "add",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/paging/PagingSourceWithHttpLoader.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/paging/DoorRepositoryReplicatePullPagingSource.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/paging/DelegatedInvalidationPagingSource.kt",
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/paging/FilterPagingSource.kt",
          "build.gradle"
        ],
        "commitId" : "5dd23986b48cd3577e4c8efab92daf2918bd6e33",
        "timestamp" : 1719251095000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add DelegatedInvalidationPagingSource\u000a",
        "date" : "2024-06-24 21:44:55 +0400",
        "id" : "5dd23986b48cd3577e4c8efab92daf2918bd6e33",
        "msg" : "Add DelegatedInvalidationPagingSource",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/paging/FilterPagingSource.kt"
          },
          {
            "editType" : "add",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/paging/DelegatedInvalidationPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "build.gradle"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/replication/DoorDatabaseReplicationExt.kt",
          "build.gradle"
        ],
        "commitId" : "c35d759f619db283b72bc2f4a993b35df8f2846d",
        "timestamp" : 1719405597000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Minor error message update on DoorDatabaseReplicationExt\u000a",
        "date" : "2024-06-26 16:39:57 +0400",
        "id" : "c35d759f619db283b72bc2f4a993b35df8f2846d",
        "msg" : "Minor error message update on DoorDatabaseReplicationExt",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/replication/DoorDatabaseReplicationExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "build.gradle"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/annotation/HttpServerFunctionParam.kt",
          "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/DoorHttpServerProcessor.kt",
          "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/DoorValidatorProcessor.kt",
          "build.gradle"
        ],
        "commitId" : "8ad39cc3223dbf8313527c36abd04c937b0d759f",
        "timestamp" : 1720172223000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add support to use paging offset and paging limit parameters on HttpServerFunction.\u000a",
        "date" : "2024-07-05 13:37:03 +0400",
        "id" : "8ad39cc3223dbf8313527c36abd04c937b0d759f",
        "msg" : "Add support to use paging offset and paging limit parameters on HttpServerFunction.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/DoorValidatorProcessor.kt"
          },
          {
            "editType" : "edit",
            "file" : "door-runtime/src/commonMain/kotlin/com/ustadmobile/door/annotation/HttpServerFunctionParam.kt"
          },
          {
            "editType" : "edit",
            "file" : "build.gradle"
          },
          {
            "editType" : "edit",
            "file" : "door-compiler/src/main/kotlin/com/ustadmobile/lib/annotationprocessor/core/DoorHttpServerProcessor.kt"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
      "fullName" : "Mike Dawson"
    }
  ]
}