{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.model.Cause$UpstreamCause",
          "shortDescription" : "Started by upstream project \"TheseFoolishThings_Metrics\" build number 853",
          "upstreamBuild" : 853,
          "upstreamProject" : "TheseFoolishThings_Metrics",
          "upstreamUrl" : "job/TheseFoolishThings_Metrics/"
        }
      ]
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.testng.TestNGTestResultBuildAction",
      "failCount" : 0,
      "skipCount" : 0,
      "totalCount" : 220,
      "urlName" : "testngreports"
    },
    {
      
    },
    {
      "_class" : "hudson.model.ParametersAction",
      "parameters" : [
        
      ]
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.disk_usage.BuildDiskUsageAction"
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : "origin/master 3.2-ALPHA-12-SNAPSHOT 45d246be3f7a",
  "displayName" : "#488",
  "duration" : 63159,
  "estimatedDuration" : 14968,
  "executor" : None,
  "fullDisplayName" : "TheseFoolishThings :: Archive (master) #488",
  "id" : "488",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 488,
  "queueId" : 1504,
  "result" : "SUCCESS",
  "timestamp" : 1640499281080,
  "url" : "https://services.tidalwave.it/ci/view/Metrics/job/TheseFoolishThings/488/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "modules/Utilities/src/main/java/it/tidalwave/util/Parameters.java",
          "modules/Utilities/src/main/java/it/tidalwave/util/ReflectionUtils.java",
          "modules/Utilities/src/main/java/it/tidalwave/util/spi/FinderSupport.java",
          "modules/Actors/src/main/java/it/tidalwave/actor/MessageSupport.java",
          "modules/Utilities/src/main/java/it/tidalwave/util/Finder.java",
          "modules/Roles/src/test/java/it/tidalwave/role/spi/RoleManagerSupportTest.java"
        ],
        "commitId" : "c68ce9b78686b01295acfc8242977767d3a4e7b2",
        "timestamp" : 1640351987000,
        "author" : {
          "absoluteUrl" : "https://services.tidalwave.it/ci/user/fabrizio.giudici",
          "fullName" : "Fabrizio Giudici"
        },
        "authorEmail" : "fabrizio.giudici@tidalwave.it",
        "comment" : "Fixed missing/bogus generics.\u000a",
        "date" : "2021-12-24 14:19:47 +0100",
        "id" : "c68ce9b78686b01295acfc8242977767d3a4e7b2",
        "msg" : "Fixed missing/bogus generics.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "modules/Utilities/src/main/java/it/tidalwave/util/ReflectionUtils.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Actors/src/main/java/it/tidalwave/actor/MessageSupport.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Roles/src/test/java/it/tidalwave/role/spi/RoleManagerSupportTest.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Utilities/src/main/java/it/tidalwave/util/spi/FinderSupport.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Utilities/src/main/java/it/tidalwave/util/Finder.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Utilities/src/main/java/it/tidalwave/util/Parameters.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "modules/SpringMessageBus/src/main/java/it/tidalwave/messagebus/impl/spring/MessageBusAdapterFactory.java",
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/person/XStreamMarshallableSupport.java",
          "modules/Utilities/src/main/java/it/tidalwave/util/spi/DefaultProcessExecutor.java",
          "modules/Roles/src/main/java/it/tidalwave/role/io/Marshallable.java",
          "modules/MessageBus/src/main/java/it/tidalwave/messagebus/spi/SimpleMessageBus.java"
        ],
        "commitId" : "71debef6ad8e785ed3ea969b0a3f345d66c4009e",
        "timestamp" : 1640351987000,
        "author" : {
          "absoluteUrl" : "https://services.tidalwave.it/ci/user/fabrizio.giudici",
          "fullName" : "Fabrizio Giudici"
        },
        "authorEmail" : "fabrizio.giudici@tidalwave.it",
        "comment" : "Clean up.\u000a",
        "date" : "2021-12-24 14:19:47 +0100",
        "id" : "71debef6ad8e785ed3ea969b0a3f345d66c4009e",
        "msg" : "Clean up.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "modules/MessageBus/src/main/java/it/tidalwave/messagebus/spi/SimpleMessageBus.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Roles/src/main/java/it/tidalwave/role/io/Marshallable.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/SpringMessageBus/src/main/java/it/tidalwave/messagebus/impl/spring/MessageBusAdapterFactory.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/person/XStreamMarshallableSupport.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Utilities/src/main/java/it/tidalwave/util/spi/DefaultProcessExecutor.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "modules/examples/DciSwingExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/swing/SwingDciExample.java",
          "modules/examples/InMemoryFinderExample/src/test/java/it/tidalwave/thesefoolishthings/examples/inmemoryfinderexample/PersonFinderTest.java",
          "modules/examples/DciSwingExample/src/main/java/it/tidalwave/thesefoolishthings/examples/person/PersonRegistryTableHeaderDescriptor.java",
          "modules/examples/DciSwingExample/src/main/java/it/tidalwave/thesefoolishthings/examples/person/PersonRegistryObservableListProvider.java",
          "modules/examples/DciSwingExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/swing/Main.java",
          "modules/examples/DciSwingExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/swing/DefaultPersonPresentationControl.java",
          "modules/examples/DciSwingExample/src/main/resources/it/tidalwave/thesefoolishthings/examples/dci/swing/Beans.xml",
          "modules/examples/DciSwingExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/swing/swing/Bindings.java",
          "modules/examples/DciSwingExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/swing/PersonPresentationControl.java",
          "modules/examples/DciSwingExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/swing/role/ObservableListProvider.java",
          "modules/examples/DciSwingExample/src/main/java/it/tidalwave/thesefoolishthings/examples/person/PersonHtmlRenderable.java"
        ],
        "commitId" : "ed6e4af1ba5df062c264d5585a495b5cc16eeb84",
        "timestamp" : 1640351987000,
        "author" : {
          "absoluteUrl" : "https://services.tidalwave.it/ci/user/fabrizio.giudici",
          "fullName" : "Fabrizio Giudici"
        },
        "authorEmail" : "fabrizio.giudici@tidalwave.it",
        "comment" : "Swing example refactored.\u000a",
        "date" : "2021-12-24 14:19:47 +0100",
        "id" : "ed6e4af1ba5df062c264d5585a495b5cc16eeb84",
        "msg" : "Swing example refactored.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "modules/examples/DciSwingExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/swing/SwingDciExample.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/examples/InMemoryFinderExample/src/test/java/it/tidalwave/thesefoolishthings/examples/inmemoryfinderexample/PersonFinderTest.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/examples/DciSwingExample/src/main/java/it/tidalwave/thesefoolishthings/examples/person/PersonRegistryTableHeaderDescriptor.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/examples/DciSwingExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/swing/swing/Bindings.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/examples/DciSwingExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/swing/DefaultPersonPresentationControl.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/examples/DciSwingExample/src/main/java/it/tidalwave/thesefoolishthings/examples/person/PersonHtmlRenderable.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/examples/DciSwingExample/src/main/resources/it/tidalwave/thesefoolishthings/examples/dci/swing/Beans.xml"
          },
          {
            "editType" : "edit",
            "file" : "modules/examples/DciSwingExample/src/main/java/it/tidalwave/thesefoolishthings/examples/person/PersonRegistryObservableListProvider.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/examples/DciSwingExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/swing/PersonPresentationControl.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/examples/DciSwingExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/swing/Main.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/examples/DciSwingExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/swing/role/ObservableListProvider.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "modules/examples/ExtendedFinderExample/src/test/java/it/tidalwave/thesefoolishthings/examples/extendedfinderexample/PersonFinderTestSupport.java",
          "modules/examples/Data/src/main/java/it/tidalwave/thesefoolishthings/examples/person/PersonRegistryHelper.java"
        ],
        "commitId" : "6a1f23a61b5bee65ddd46717eaa5386a7ee5d639",
        "timestamp" : 1640351987000,
        "author" : {
          "absoluteUrl" : "https://services.tidalwave.it/ci/user/fabrizio.giudici",
          "fullName" : "Fabrizio Giudici"
        },
        "authorEmail" : "fabrizio.giudici@tidalwave.it",
        "comment" : "Example data changed.\u000a",
        "date" : "2021-12-24 14:19:47 +0100",
        "id" : "6a1f23a61b5bee65ddd46717eaa5386a7ee5d639",
        "msg" : "Example data changed.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "modules/examples/ExtendedFinderExample/src/test/java/it/tidalwave/thesefoolishthings/examples/extendedfinderexample/PersonFinderTestSupport.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/examples/Data/src/main/java/it/tidalwave/thesefoolishthings/examples/person/PersonRegistryHelper.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "modules/Roles/src/main/java/it/tidalwave/role/ui/spi/MutableIconProviderSupport.java",
          "modules/Actors/src/main/java/it/tidalwave/actor/impl/ExecutorWithPriority.java"
        ],
        "commitId" : "735f8164b5cfe852cce384d9502b84cd8558aa34",
        "timestamp" : 1640351987000,
        "author" : {
          "absoluteUrl" : "https://services.tidalwave.it/ci/user/fabrizio.giudici",
          "fullName" : "Fabrizio Giudici"
        },
        "authorEmail" : "fabrizio.giudici@tidalwave.it",
        "comment" : "Fixed Javadoc.\u000a",
        "date" : "2021-12-24 14:19:47 +0100",
        "id" : "735f8164b5cfe852cce384d9502b84cd8558aa34",
        "msg" : "Fixed Javadoc.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "modules/Roles/src/main/java/it/tidalwave/role/ui/spi/MutableIconProviderSupport.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Actors/src/main/java/it/tidalwave/actor/impl/ExecutorWithPriority.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "modules/Roles/src/main/java/it/tidalwave/role/ContextManager.java",
          "modules/Roles/src/test/java/it/tidalwave/role/spi/DefaultContextManagerTest.java"
        ],
        "commitId" : "6678641e678ec1febbae128211300e8f7c14577a",
        "timestamp" : 1640378519000,
        "author" : {
          "absoluteUrl" : "https://services.tidalwave.it/ci/user/fabrizio.giudici",
          "fullName" : "Fabrizio Giudici"
        },
        "authorEmail" : "fabrizio.giudici@tidalwave.it",
        "comment" : "Fix for TFT-279.\u000a",
        "date" : "2021-12-24 21:41:59 +0100",
        "id" : "6678641e678ec1febbae128211300e8f7c14577a",
        "msg" : "Fix for TFT-279.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "modules/Roles/src/main/java/it/tidalwave/role/ContextManager.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Roles/src/test/java/it/tidalwave/role/spi/DefaultContextManagerTest.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "modules/Roles/src/main/java/it/tidalwave/role/ContextManager.java",
          "modules/Roles/src/main/java/it/tidalwave/role/spi/impl/LogUtil.java",
          "modules/Roles/src/main/java/it/tidalwave/role/spi/DefaultContextManager.java",
          "modules/Roles/src/test/java/it/tidalwave/role/spi/DefaultContextManagerTest.java"
        ],
        "commitId" : "c6fccbc87f65792ae3cd8b2f921fbb34e12a88e4",
        "timestamp" : 1640447288000,
        "author" : {
          "absoluteUrl" : "https://services.tidalwave.it/ci/user/fabrizio.giudici",
          "fullName" : "Fabrizio Giudici"
        },
        "authorEmail" : "fabrizio.giudici@tidalwave.it",
        "comment" : "Fix for TFT-280.\u000a",
        "date" : "2021-12-25 16:48:08 +0100",
        "id" : "c6fccbc87f65792ae3cd8b2f921fbb34e12a88e4",
        "msg" : "Fix for TFT-280.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "modules/Roles/src/main/java/it/tidalwave/role/ContextManager.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Roles/src/main/java/it/tidalwave/role/spi/impl/LogUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Roles/src/main/java/it/tidalwave/role/spi/DefaultContextManager.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Roles/src/test/java/it/tidalwave/role/spi/DefaultContextManagerTest.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "modules/Utilities/src/main/java/it/tidalwave/util/FunctionalCheckedExceptionWrappers.java"
        ],
        "commitId" : "59913b34605f5a5b1edf6a1f0ad3621483a82792",
        "timestamp" : 1640447288000,
        "author" : {
          "absoluteUrl" : "https://services.tidalwave.it/ci/user/fabrizio.giudici",
          "fullName" : "Fabrizio Giudici"
        },
        "authorEmail" : "fabrizio.giudici@tidalwave.it",
        "comment" : "Fix for TFT-281.\u000a",
        "date" : "2021-12-25 16:48:08 +0100",
        "id" : "59913b34605f5a5b1edf6a1f0ad3621483a82792",
        "msg" : "Fix for TFT-281.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "modules/Utilities/src/main/java/it/tidalwave/util/FunctionalCheckedExceptionWrappers.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/xstream/DciMarshalXStreamExample.java",
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/xstream/converter/PersonConverter.java",
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/person/XStreamMarshallableSupport.java",
          "modules/examples/Data/src/main/java/it/tidalwave/thesefoolishthings/examples/person/ListOfPersons.java",
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/XStreamContext2.java",
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/xstream/IdXStreamConverter.java",
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/person/DefaultPersonRegistryXStreamMarshallable.java",
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/person/ListOfPersonsXStreamMarshallable.java",
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/XStreamContext1.java",
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/XStreamMarshallableSupport.java",
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/XStreamUnmarshallableSupport.java",
          "modules/Roles/src/main/java/it/tidalwave/role/io/Marshallable.java",
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/ListOfPersonsXStreamUnmarshallable.java",
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/XStreamContext.java",
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/ListOfPersonsXStreamMarshallable.java",
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/PersonXStreamMarshallable.java",
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/xstream/converter/IdXStreamConverter.java",
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/xstream/XStreamContext.java",
          "modules/Utilities/src/site/markdown/index.md.vm",
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/person/PersonXStreamMarshallable.java",
          "modules/examples/Data/src/main/java/it/tidalwave/thesefoolishthings/examples/person/Person.java",
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/PersonXStreamUnmarshallable.java"
        ],
        "commitId" : "85a2209678b134508f391d8a16fd126e55cbab69",
        "timestamp" : 1640447288000,
        "author" : {
          "absoluteUrl" : "https://services.tidalwave.it/ci/user/fabrizio.giudici",
          "fullName" : "Fabrizio Giudici"
        },
        "authorEmail" : "fabrizio.giudici@tidalwave.it",
        "comment" : "Improved DCI XStream example.\u000a",
        "date" : "2021-12-25 16:48:08 +0100",
        "id" : "85a2209678b134508f391d8a16fd126e55cbab69",
        "msg" : "Improved DCI XStream example.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "modules/examples/Data/src/main/java/it/tidalwave/thesefoolishthings/examples/person/ListOfPersons.java"
          },
          {
            "editType" : "delete",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/person/PersonXStreamMarshallable.java"
          },
          {
            "editType" : "add",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/XStreamUnmarshallableSupport.java"
          },
          {
            "editType" : "add",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/XStreamContext1.java"
          },
          {
            "editType" : "add",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/XStreamMarshallableSupport.java"
          },
          {
            "editType" : "delete",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/xstream/IdXStreamConverter.java"
          },
          {
            "editType" : "add",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/xstream/converter/IdXStreamConverter.java"
          },
          {
            "editType" : "delete",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/person/DefaultPersonRegistryXStreamMarshallable.java"
          },
          {
            "editType" : "delete",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/xstream/XStreamContext.java"
          },
          {
            "editType" : "add",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/PersonXStreamUnmarshallable.java"
          },
          {
            "editType" : "add",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/PersonXStreamMarshallable.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Utilities/src/site/markdown/index.md.vm"
          },
          {
            "editType" : "edit",
            "file" : "modules/examples/Data/src/main/java/it/tidalwave/thesefoolishthings/examples/person/Person.java"
          },
          {
            "editType" : "delete",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/person/ListOfPersonsXStreamMarshallable.java"
          },
          {
            "editType" : "add",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/xstream/converter/PersonConverter.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/xstream/DciMarshalXStreamExample.java"
          },
          {
            "editType" : "add",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/ListOfPersonsXStreamUnmarshallable.java"
          },
          {
            "editType" : "add",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/ListOfPersonsXStreamMarshallable.java"
          },
          {
            "editType" : "add",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/XStreamContext2.java"
          },
          {
            "editType" : "delete",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/person/XStreamMarshallableSupport.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Roles/src/main/java/it/tidalwave/role/io/Marshallable.java"
          },
          {
            "editType" : "add",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/XStreamContext.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "modules/Roles/src/main/java/it/tidalwave/role/ContextManager.java",
          "modules/examples/ExtendedFinderExample/src/main/java/it/tidalwave/thesefoolishthings/examples/extendedfinderexample/PersonFinderImpl2a.java",
          "modules/TestUtilities/src/main/java/it/tidalwave/util/test/FileComparisonUtils.java",
          "modules/Utilities/src/main/java/it/tidalwave/util/FunctionalCheckedExceptionWrappers.java"
        ],
        "commitId" : "6ff048d326322eefbc59af7063717c40e011e65b",
        "timestamp" : 1640447288000,
        "author" : {
          "absoluteUrl" : "https://services.tidalwave.it/ci/user/fabrizio.giudici",
          "fullName" : "Fabrizio Giudici"
        },
        "authorEmail" : "fabrizio.giudici@tidalwave.it",
        "comment" : "Miscellaneous clean up.\u000a",
        "date" : "2021-12-25 16:48:08 +0100",
        "id" : "6ff048d326322eefbc59af7063717c40e011e65b",
        "msg" : "Miscellaneous clean up.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "modules/TestUtilities/src/main/java/it/tidalwave/util/test/FileComparisonUtils.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Utilities/src/main/java/it/tidalwave/util/FunctionalCheckedExceptionWrappers.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/examples/ExtendedFinderExample/src/main/java/it/tidalwave/thesefoolishthings/examples/extendedfinderexample/PersonFinderImpl2a.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Roles/src/main/java/it/tidalwave/role/ContextManager.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "modules/Utilities/src/main/java/it/tidalwave/util/spi/DefaultProcessExecutor.java"
        ],
        "commitId" : "8aee67aadf92c62de13730747af882ae79eee3d4",
        "timestamp" : 1640447288000,
        "author" : {
          "absoluteUrl" : "https://services.tidalwave.it/ci/user/fabrizio.giudici",
          "fullName" : "Fabrizio Giudici"
        },
        "authorEmail" : "fabrizio.giudici@tidalwave.it",
        "comment" : "Refactored, improved multi-threading.\u000a",
        "date" : "2021-12-25 16:48:08 +0100",
        "id" : "8aee67aadf92c62de13730747af882ae79eee3d4",
        "msg" : "Refactored, improved multi-threading.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "modules/Utilities/src/main/java/it/tidalwave/util/spi/DefaultProcessExecutor.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/xstream/DciMarshalXStreamExample.java",
          "modules/Roles/src/main/java/it/tidalwave/role/io/spi/PathBinaryWritable.java",
          "modules/Roles/src/main/java/it/tidalwave/role/io/spi/PathTextWritable.java",
          "modules/Roles/src/main/java/it/tidalwave/role/io/spi/PathTextReadable.java",
          "modules/Roles/src/main/java/it/tidalwave/role/io/spi/PathBinaryReadable.java",
          "modules/Roles/src/main/java/it/tidalwave/role/io/spi/FileBinaryReadable.java",
          "modules/Roles/src/main/java/it/tidalwave/role/io/spi/FileBinaryWritable.java",
          "modules/Roles/src/main/java/it/tidalwave/role/io/spi/FileTextReadable.java",
          "modules/Roles/src/main/java/it/tidalwave/role/io/spi/FileTextWritable.java"
        ],
        "commitId" : "f6ded4f9cc94c5d0b118d1e7d5c5a7ae5cac10e6",
        "timestamp" : 1640447288000,
        "author" : {
          "absoluteUrl" : "https://services.tidalwave.it/ci/user/fabrizio.giudici",
          "fullName" : "Fabrizio Giudici"
        },
        "authorEmail" : "fabrizio.giudici@tidalwave.it",
        "comment" : "Fix for TFT-160.\u000a",
        "date" : "2021-12-25 16:48:08 +0100",
        "id" : "f6ded4f9cc94c5d0b118d1e7d5c5a7ae5cac10e6",
        "msg" : "Fix for TFT-160.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/xstream/DciMarshalXStreamExample.java"
          },
          {
            "editType" : "add",
            "file" : "modules/Roles/src/main/java/it/tidalwave/role/io/spi/PathTextReadable.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Roles/src/main/java/it/tidalwave/role/io/spi/FileBinaryWritable.java"
          },
          {
            "editType" : "add",
            "file" : "modules/Roles/src/main/java/it/tidalwave/role/io/spi/PathBinaryWritable.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Roles/src/main/java/it/tidalwave/role/io/spi/FileTextWritable.java"
          },
          {
            "editType" : "add",
            "file" : "modules/Roles/src/main/java/it/tidalwave/role/io/spi/PathBinaryReadable.java"
          },
          {
            "editType" : "add",
            "file" : "modules/Roles/src/main/java/it/tidalwave/role/io/spi/PathTextWritable.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Roles/src/main/java/it/tidalwave/role/io/spi/FileBinaryReadable.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Roles/src/main/java/it/tidalwave/role/io/spi/FileTextReadable.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/xstream/DciMarshalXStreamExample.java",
          "modules/Utilities/src/site/markdown/index.md.vm",
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/MarshallableLoadable.java",
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/Loadable.java",
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/Savable.java",
          "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/MarshallableSavable.java"
        ],
        "commitId" : "3f0dc09353cca3493148846793dd9bccf334d8d2",
        "timestamp" : 1640454754000,
        "author" : {
          "absoluteUrl" : "https://services.tidalwave.it/ci/user/fabrizio.giudici",
          "fullName" : "Fabrizio Giudici"
        },
        "authorEmail" : "fabrizio.giudici@tidalwave.it",
        "comment" : "New roles in DCI XStream example.\u000a",
        "date" : "2021-12-25 18:52:34 +0100",
        "id" : "3f0dc09353cca3493148846793dd9bccf334d8d2",
        "msg" : "New roles in DCI XStream example.",
        "paths" : [
          {
            "editType" : "add",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/Savable.java"
          },
          {
            "editType" : "add",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/Loadable.java"
          },
          {
            "editType" : "add",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/MarshallableLoadable.java"
          },
          {
            "editType" : "add",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/role/MarshallableSavable.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/examples/DciMarshalXStreamExample/src/main/java/it/tidalwave/thesefoolishthings/examples/dci/marshal/xstream/DciMarshalXStreamExample.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Utilities/src/site/markdown/index.md.vm"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".idea/compiler.xml"
        ],
        "commitId" : "b35dec025dc2281cd6e550acfffcadf544942db9",
        "timestamp" : 1640454754000,
        "author" : {
          "absoluteUrl" : "https://services.tidalwave.it/ci/user/fabrizio.giudici",
          "fullName" : "Fabrizio Giudici"
        },
        "authorEmail" : "fabrizio.giudici@tidalwave.it",
        "comment" : "Updated IDEA files.\u000a",
        "date" : "2021-12-25 18:52:34 +0100",
        "id" : "b35dec025dc2281cd6e550acfffcadf544942db9",
        "msg" : "Updated IDEA files.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".idea/compiler.xml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "modules/Utilities/src/site/markdown/index.md.vm",
          "modules/Utilities/src/main/java/it/tidalwave/util/As.java",
          "modules/Utilities/src/test/java/it/tidalwave/util/AsTest.java"
        ],
        "commitId" : "c51e3f26d9d6ee42f17fb81ba8b86cae234bf2f4",
        "timestamp" : 1640454754000,
        "author" : {
          "absoluteUrl" : "https://services.tidalwave.it/ci/user/fabrizio.giudici",
          "fullName" : "Fabrizio Giudici"
        },
        "authorEmail" : "fabrizio.giudici@tidalwave.it",
        "comment" : "Fix for TFT-283.\u000a",
        "date" : "2021-12-25 18:52:34 +0100",
        "id" : "c51e3f26d9d6ee42f17fb81ba8b86cae234bf2f4",
        "msg" : "Fix for TFT-283.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "modules/Utilities/src/site/markdown/index.md.vm"
          },
          {
            "editType" : "edit",
            "file" : "modules/Utilities/src/main/java/it/tidalwave/util/As.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Utilities/src/test/java/it/tidalwave/util/AsTest.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "modules/Utilities/src/test/java/it/tidalwave/util/TripleTest.java",
          "modules/Utilities/src/site/markdown/index.md.vm",
          "modules/Utilities/src/test/java/it/tidalwave/util/PairTest.java"
        ],
        "commitId" : "8b8f7045645698cadaaac5a01a8b8251ca10fe4e",
        "timestamp" : 1640455772000,
        "author" : {
          "absoluteUrl" : "https://services.tidalwave.it/ci/user/fabrizio.giudici",
          "fullName" : "Fabrizio Giudici"
        },
        "authorEmail" : "fabrizio.giudici@tidalwave.it",
        "comment" : "Added documentation for Pair and Triple.\u000a",
        "date" : "2021-12-25 19:09:32 +0100",
        "id" : "8b8f7045645698cadaaac5a01a8b8251ca10fe4e",
        "msg" : "Added documentation for Pair and Triple.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "modules/Utilities/src/test/java/it/tidalwave/util/TripleTest.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Utilities/src/test/java/it/tidalwave/util/PairTest.java"
          },
          {
            "editType" : "edit",
            "file" : "modules/Utilities/src/site/markdown/index.md.vm"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://services.tidalwave.it/ci/user/fabrizio.giudici",
      "fullName" : "Fabrizio Giudici"
    }
  ]
}