{
  "_class" : "hudson.matrix.MatrixRun",
  "actions" : [
    {
      
    },
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.model.Cause$UpstreamCause",
          "shortDescription" : "Started by upstream project \"gluegen\" build number 964",
          "upstreamBuild" : 964,
          "upstreamProject" : "gluegen",
          "upstreamUrl" : "job/gluegen/"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 964,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "b3dd6410aad591ddaec4eddfb8d894893368a54a",
            "branch" : [
              {
                "SHA1" : "b3dd6410aad591ddaec4eddfb8d894893368a54a",
                "name" : "origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "b3dd6410aad591ddaec4eddfb8d894893368a54a",
            "branch" : [
              {
                "SHA1" : "b3dd6410aad591ddaec4eddfb8d894893368a54a",
                "name" : "origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "b3dd6410aad591ddaec4eddfb8d894893368a54a",
        "branch" : [
          {
            "SHA1" : "b3dd6410aad591ddaec4eddfb8d894893368a54a",
            "name" : "origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "git://jogamp.org/srv/scm/gluegen.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      "_class" : "hudson.tasks.junit.TestResultAction",
      "failCount" : 2,
      "skipCount" : 0,
      "totalCount" : 307,
      "urlName" : "testReport"
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#964",
  "duration" : 456922,
  "estimatedDuration" : 392538,
  "executor" : None,
  "fullDisplayName" : "gluegen » windows-x86_64 #964",
  "id" : "964",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 964,
  "queueId" : 931,
  "result" : "UNSTABLE",
  "timestamp" : 1691845830344,
  "url" : "https://jogamp.org/chuck/job/gluegen/label=windows-x86_64/964/",
  "builtOn" : "windows-x86_64-jau-011",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/gluegen-cpptasks-base.xml",
          "make/build.xml"
        ],
        "commitId" : "953f594a00094362e0ed56553b16aecbee2b92f2",
        "timestamp" : 1644182238000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/schwab",
          "fullName" : "schwab"
        },
        "authorEmail" : "schwab@suse.de",
        "comment" : "Add support for riscv64 architecture\u000a",
        "date" : "2022-02-06 22:17:18 +0100",
        "id" : "953f594a00094362e0ed56553b16aecbee2b92f2",
        "msg" : "Add support for riscv64 architecture",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/build.xml"
          },
          {
            "editType" : "edit",
            "file" : "make/gluegen-cpptasks-base.xml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/stub_includes/platform/glibc-compat-symbols.h"
        ],
        "commitId" : "6489e38ae8d86b1a80336c20774fc9b82313cef3",
        "timestamp" : 1686119542000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/tgc",
          "fullName" : "tgc"
        },
        "authorEmail" : "tgc@kb.dk",
        "comment" : "glibc-compat-symbols.h: skip versioning on PPC64/PPC64LE\u000a",
        "date" : "2023-06-07 08:32:22 +0200",
        "id" : "6489e38ae8d86b1a80336c20774fc9b82313cef3",
        "msg" : "glibc-compat-symbols.h: skip versioning on PPC64/PPC64LE",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/stub_includes/platform/glibc-compat-symbols.h"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/native/common/PointerBuffer.c",
          "src/java/com/jogamp/common/nio/AbstractBuffer.java",
          "src/native/common/Buffers.c",
          "src/java/com/jogamp/common/nio/Buffers.java",
          "src/java/com/jogamp/common/nio/StructAccessor.java",
          "src/java/com/jogamp/common/nio/NativeBuffer.java",
          "src/java/com/jogamp/common/nio/PointerBuffer.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass.java",
          "src/java/com/jogamp/common/nio/ElementBuffer.java"
        ],
        "commitId" : "03c548d96e5c81d0fc39503fe3042cf03e0a75e2",
        "timestamp" : 1686868991000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Struct [1]: Enhance com.jogamp.common.nio.* to serve a most native-free-code Struct-Code generation\u000a\u000aRecfactored all NIO buffer utils to Buffers, i.e. buffer <-> address, memcpy, strnlen, etc\u000a\u000aBuffers:\u000a- Added copyNativeToDirectByteBuffer(..), allowing to copy a native memory slice into a direct buffer.\u000a- Added typeNameToBufferClass(String) and sizeOfBufferElem(Class<? extends Buffer>)\u000a- Completed slize2<Type>(..) buffer-mapping methods\u000a- Exposure of safe getDirectByteBuffer(..) w/ null-check (package private)\u000a\u000aAdded NativeBuffer.storeDirectAddress(..), allowing to write the array address into a native buffer (struct, etc),\u000aallowing to referencing the ElementBuffer (linear array of elements) and PointerBuffer (array of pointer).\u000aHint: This can be read via PointerBuffer.wrap(..).get(0)\u000a\u000aAdded ElementBuffer (a NativeBuffer) mapping an array of elements,\u000acompleting native abstraction next to PointerBuffer (array of pointer).\u000a\u000aElementBuffer can dereference an existing element-array by native address via ElementBuffer.derefPointer(..).\u000aViews of its content can be directly accessed via ElementBuffer.slice(..).\u000a\u000a+++\u000a\u000aThese utilities and buffer abstractions will allow to reuse code and simplify the GlueGen struct get/set implementations\u000aand help to reduce native code injection.\u000a",
        "date" : "2023-06-16 00:43:11 +0200",
        "id" : "03c548d96e5c81d0fc39503fe3042cf03e0a75e2",
        "msg" : "GlueGen Struct [1]: Enhance com.jogamp.common.nio.* to serve a most native-free-code Struct-Code generation",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "src/native/common/PointerBuffer.c"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/nio/AbstractBuffer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/nio/NativeBuffer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/nio/Buffers.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/nio/StructAccessor.java"
          },
          {
            "editType" : "add",
            "file" : "src/native/common/Buffers.c"
          },
          {
            "editType" : "add",
            "file" : "src/java/com/jogamp/common/nio/ElementBuffer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/nio/PointerBuffer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/CCodeUnit.java",
          "src/java/com/jogamp/gluegen/CodeUnit.java",
          "src/java/com/jogamp/gluegen/JavaCodeUnit.java",
          "src/java/com/jogamp/gluegen/CodeGenUtils.java"
        ],
        "commitId" : "f1678c4ac8b85c85d11b737d08dcfe31b388e021",
        "timestamp" : 1686869969000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Struct [2]: Add CodeUnit: Representing a generated C or Java file, covering multiple FunctionEmitter allowing to unify output, decoration and dynamic helper code injection per unit\u000a\u000a- Handles file open and have public ctor emitAutogeneratedWarning(..), being self-contained\u000a\u000a- Includes `JVMUtil_NewDirectByteBufferCopy(..)` implementation in CCodeUnit,\u000a  may be injected if required in customCode via emitHeader(..)\u000a",
        "date" : "2023-06-16 00:59:29 +0200",
        "id" : "f1678c4ac8b85c85d11b737d08dcfe31b388e021",
        "msg" : "GlueGen Struct [2]: Add CodeUnit: Representing a generated C or Java file, covering multiple FunctionEmitter allowing to unify output, decoration and dynamic helper code injection per unit",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/java/com/jogamp/gluegen/CCodeUnit.java"
          },
          {
            "editType" : "add",
            "file" : "src/java/com/jogamp/gluegen/CodeUnit.java"
          },
          {
            "editType" : "add",
            "file" : "src/java/com/jogamp/gluegen/JavaCodeUnit.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CodeGenUtils.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/MethodBinding.java",
          "src/java/com/jogamp/gluegen/cgram/types/CompoundType.java",
          "src/java/com/jogamp/gluegen/procaddress/ProcAddressEmitter.java",
          "src/java/com/jogamp/gluegen/FunctionEmitter.java",
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java",
          "src/java/com/jogamp/gluegen/procaddress/ProcAddressCMethodBindingEmitter.java",
          "src/java/com/jogamp/gluegen/structgen/CStructAnnotationProcessor.java",
          "src/java/com/jogamp/gluegen/procaddress/ProcAddressJavaMethodBindingEmitter.java",
          "src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java"
        ],
        "commitId" : "0a9105dd3ebbcf4b98664e50333334bff677031c",
        "timestamp" : 1686870646000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Struct [3]: Adopt to CodeUnit Abstraction (replacing plain PrintWriter...)\u000a",
        "date" : "2023-06-16 01:10:46 +0200",
        "id" : "0a9105dd3ebbcf4b98664e50333334bff677031c",
        "msg" : "GlueGen Struct [3]: Adopt to CodeUnit Abstraction (replacing plain PrintWriter...)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/procaddress/ProcAddressEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/procaddress/ProcAddressCMethodBindingEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/FunctionEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/cgram/types/CompoundType.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/structgen/CStructAnnotationProcessor.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/MethodBinding.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/procaddress/ProcAddressJavaMethodBindingEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaConfiguration.java",
          "src/java/com/jogamp/gluegen/MethodBinding.java",
          "src/java/com/jogamp/gluegen/JavaEmitter.java"
        ],
        "commitId" : "aeadfab9572e4b441b1bc1f0708cf4c72dfe181e",
        "timestamp" : 1686871015000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Struct [4]: JavaConfiguration Change: Drop 'ManualStaticInitCall', 'ForceStaticInitCode'; Add 'ReturnsStringOnly', 'MaxOneElement' and 'ImmutableAccess'\u000a\u000aDrop 'ManualStaticInitCall', 'ForceStaticInitCode':\u000a  With new CCodeUnit's `JVMUtil_NewDirectByteBufferCopy(..)` implementation\u000a  and generalized Buffers' methods, no specific init code is required anymore.\u000a\u000aAdd 'ReturnsStringOnly', 'MaxOneElement' and 'ImmutableAccess':\u000a- 'ReturnsStringOnly' only String getter, drop ByteBuffer/byte[]\u000a- 'MaxOneElement' only one element maximum for pointer reference\u000a- 'ImmutableAccess' strict read-only, also reduces generated code a lot\u000a",
        "date" : "2023-06-16 01:16:55 +0200",
        "id" : "aeadfab9572e4b441b1bc1f0708cf4c72dfe181e",
        "msg" : "GlueGen Struct [4]: JavaConfiguration Change: Drop 'ManualStaticInitCall', 'ForceStaticInitCode'; Add 'ReturnsStringOnly', 'MaxOneElement' and 'ImmutableAccess'",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaConfiguration.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/MethodBinding.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test1p2ProcAddressEmitter.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test1p1JavaEmitter.java",
          "doc/JogAmpMacOSVersions.html",
          "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass.java",
          "doc/GlueGen_Mapping.md",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test1-common.cfg",
          "README.md",
          "make/build-test.xml",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test1p2DynamicLibraryBundle.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test1.c",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test1.h",
          "doc/GlueGen_Mapping.html",
          "www/index.html",
          "doc/JogAmpMacOSVersions.md"
        ],
        "commitId" : "8b127c4c1dd26fcb1756805ddb83729203161f78",
        "timestamp" : 1686874580000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Struct [5]: Revised Struct Mapping + Documentation\u000a\u000aGlueGen Revised Struct Mapping (esp pointer to array or single element), Struct String Charset, .. and Documentation\u000a\u000a- Documentation:\u000a    - Added README.md\u000a      Let's have a proper face for the git repo\u000a\u000a    - Added doc/GlueGen_Mapping.md (and its html conversion doc/GlueGen_Mapping.html)\u000a      Created a new document covering application and implementation details suitable for users/devs.\u000a\u000a    - Added doc/JogAmpMacOSVersions.md conversion to doc/JogAmpMacOSVersions.html\u000a\u000a    - Updated www/index.html\u000a\u000a- Use *CodeUnit instead of PrintWriter, representing a Java or C code unit covering a set of functions and structs.\u000a    The CCodeUnit also handles common code shared by its unit across functions etc.\u000a\u000a- Dropping 'static initializer', as its no more required\u000a    due to simplified `JVMUtil_NewDirectByteBufferCopy()` variant.\u000a\u000a- Revised Struct Mapping:\u000a  - Pure Java implementation to map primitive and struct fields within a struct\u000a    by utilizing ElementBuffer.\u000a\u000a    Only 'Function Pointer' fields within a struct require native code.\u000a\u000a    Exposes `static boolean usesNativeCode()` to query whether native code is used/required.\u000a\u000a  - Transparent native memory address API\u000a\u000a    Expose `long getDirectBufferAddress()` and `static TK_Struct derefPointer(long addr)`,\u000a    allowing to\u000a    - pass the native struct-pointer with native code\u000a    - reconstruct the struct from a native struct-pointer\u000a    - have a fully functional `TK_Struct.derefPointer(struct.getDirectBufferAddress())` cycle.\u000a\u000a  - Add 'boolean is<Val>Null() to query whether a pointer (array) is NULL\u000a\u000a  - *Changed* array get/set method for more flexibility alike `System.arraycopy(src, srcPos, dest, destPos, len)`,\u000a    where 'src' is being dropped for the getter and 'dest' is being dropped for the setter\u000a    as both objects are reflected by the struct instance.\u000a\u000a  - *Changed* `get<Val>ArrayLength()` -> `get<Val>ElemCount()` for clarity\u000a\u000a  - Considering all ConstElemCount values with config 'ReturnedArrayLength <int>'\u000a    to be owned by native code -> NativeOwnership -> Not changing the underlying memory region!\u000a    JavaOwnership is considered for all pointer-arrays not of NativeOwnership.\u000a    Hence any setter on a NativeOwnership pointer-array will fail with non-matching elem-count.\u000a\u000a  - Add 'release<Val>()' for JavaOwnership pointer-arrays,\u000a    allowing to release the Java owned native memory incl. null-ing pointer and set<Val>ElemCount(0).\u000a\u000a  - Support setter for 'const <type>*' w/ JavaOwnership, i.e. pointer to const value of a primitive or struct,\u000a    setter and getter using pointer to array or single element in general.\u000a\u000a  - Added Config `ImmutableAccess symbol` to disable all setter for whole struct or a field\u000a\u000a  - Added Config `MaxOneElement symbol` to restrict a pointer to maximum one element and unset\u000a    initial value (zero elements)\u000a\u000a  - Added Config `ReturnsStringOnly symbol` to restrict mapping only to a Java String,\u000a    dropping the ByteBuffer variant for 'char'\u000a\u000a  - String mapping default is UTF-8 and can be read and set via [get|set]Charset(..) per class.\u000a\u000a  - Dynamic string length retrieval in case no `ReturnedArrayLength` has been configured\u000a    has changed from `strlen()` to `strnlen(aptr, max_len)` to be on the safe site.\u000a\u000a    The maximum length default is 8192 bytes and can be read and set via [get|set]MaxStrnlen(..) per class.\u000a\u000a    FIXME: strnlen(..) using EOS byte non-functional for non 8-bit codecs like UTF-8, US-ASCII.\u000a           This is due to e.g. UTF-16 doesn't use an EOS byte, but interprets it as part of a code point.\u000a\u000a  - TODO: Perhaps a few more unit tests\u000a\u000a  - TODO: Allow plain 'int' to be mapped in structs IFF their size is same for all MachineDescriptions used.\u000a          Currently this is the case -> 4 bytes like int32_t.\u000a",
        "date" : "2023-06-16 02:16:20 +0200",
        "id" : "8b127c4c1dd26fcb1756805ddb83729203161f78",
        "msg" : "GlueGen Struct [5]: Revised Struct Mapping + Documentation",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg"
          },
          {
            "editType" : "add",
            "file" : "README.md"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test1p1JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "www/index.html"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test1.c"
          },
          {
            "editType" : "edit",
            "file" : "doc/JogAmpMacOSVersions.md"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test1p2ProcAddressEmitter.java"
          },
          {
            "editType" : "add",
            "file" : "doc/GlueGen_Mapping.html"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test1.h"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test1p2DynamicLibraryBundle.java"
          },
          {
            "editType" : "edit",
            "file" : "make/build-test.xml"
          },
          {
            "editType" : "add",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "add",
            "file" : "doc/JogAmpMacOSVersions.html"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test1-common.cfg"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/common/nio/Buffers.java"
        ],
        "commitId" : "fdccf16290c7b742337d3f7ab66e4b85660ca781",
        "timestamp" : 1686886205000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Buffers.copyNativeToDirectByteBuffer(): Remove unused var\u000a",
        "date" : "2023-06-16 05:30:05 +0200",
        "id" : "fdccf16290c7b742337d3f7ab66e4b85660ca781",
        "msg" : "Buffers.copyNativeToDirectByteBuffer(): Remove unused var",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/nio/Buffers.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "make/build-test.xml"
        ],
        "commitId" : "88309192b450e09ba16e9d72adac178c4ce47dc3",
        "timestamp" : 1686886327000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Struct [6]: Simplify adding 'private ElementBuffer _eb*' memory buffer cache once @ 'releaseVal(..)' code creation\u000a",
        "date" : "2023-06-16 05:32:07 +0200",
        "id" : "88309192b450e09ba16e9d72adac178c4ce47dc3",
        "msg" : "GlueGen Struct [6]: Simplify adding 'private ElementBuffer _eb*' memory buffer cache once @ 'releaseVal(..)' code creation",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "make/build-test.xml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/GlueGen.java",
          "src/java/com/jogamp/gluegen/structgen/CStructAnnotationProcessor.java"
        ],
        "commitId" : "d98d25f26a8231c746f8e461a6d932182376cd0b",
        "timestamp" : 1686905464000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/mfery",
          "fullName" : "mfery"
        },
        "authorEmail" : "mfery@ankama.com",
        "comment" : "feat(cli): Add --preserveGeneratedCPP option inside GlueGen\u000a",
        "date" : "2023-06-16 10:51:04 +0200",
        "id" : "d98d25f26a8231c746f8e461a6d932182376cd0b",
        "msg" : "feat(cli): Add --preserveGeneratedCPP option inside GlueGen",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/structgen/CStructAnnotationProcessor.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/GlueGen.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/PCPPTest.java",
          ".gitmodules",
          "src/java/com/jogamp/gluegen/GlueGen.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/pcpptest.h",
          "src/junit/com/jogamp/gluegen/test/junit/generation/pcpptest-included.h",
          "jcpp",
          "src/java/com/jogamp/gluegen/structgen/CStructAnnotationProcessor.java",
          "src/java/com/jogamp/gluegen/pcpp/PCPP.java"
        ],
        "commitId" : "738c15d654f67ec8aeccec2b46f5a0804c793491",
        "timestamp" : 1686905484000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/mfery",
          "fullName" : "mfery"
        },
        "authorEmail" : "mfery@ankama.com",
        "comment" : "feat(feature): Enable pragma once management\u000a",
        "date" : "2023-06-16 10:51:24 +0200",
        "id" : "738c15d654f67ec8aeccec2b46f5a0804c793491",
        "msg" : "feat(feature): Enable pragma once management",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/GlueGen.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/pcpp/PCPP.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/pcpptest-included.h"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/PCPPTest.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/pcpptest.h"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/structgen/CStructAnnotationProcessor.java"
          },
          {
            "editType" : "edit",
            "file" : ".gitmodules"
          },
          {
            "editType" : "edit",
            "file" : "jcpp"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/cgram/types/CompoundType.java"
        ],
        "commitId" : "e1d5b49ecd9b180b6a80ad4d0ab63e0807682621",
        "timestamp" : 1686905510000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/mfery",
          "fullName" : "mfery"
        },
        "authorEmail" : "mfery@ankama.com",
        "comment" : "feat(CompoundType): Improve error log on CompoundType.addField and CompoundType.setBodyParsed when body is already parsed\u000a",
        "date" : "2023-06-16 10:51:50 +0200",
        "id" : "e1d5b49ecd9b180b6a80ad4d0ab63e0807682621",
        "msg" : "feat(CompoundType): Improve error log on CompoundType.addField and CompoundType.setBodyParsed when body is already parsed",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/cgram/types/CompoundType.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/GlueGen.java"
        ],
        "commitId" : "c0a5b3fcc4a2d7f5c30f95e9b387c8a2e02b4f6f",
        "timestamp" : 1686905528000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/mfery",
          "fullName" : "mfery"
        },
        "authorEmail" : "mfery@ankama.com",
        "comment" : "feat(translationUnit): Improve logs in case of failure inside translationUnit\u000a",
        "date" : "2023-06-16 10:52:08 +0200",
        "id" : "c0a5b3fcc4a2d7f5c30f95e9b387c8a2e02b4f6f",
        "msg" : "feat(translationUnit): Improve logs in case of failure inside translationUnit",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/GlueGen.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/ConstantDefinition.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test1.h"
        ],
        "commitId" : "8d3e22e8c54bca8e84ea94566f47b8f24cc24b60",
        "timestamp" : 1686905549000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/mfery",
          "fullName" : "mfery"
        },
        "authorEmail" : "mfery@ankama.com",
        "comment" : "feat(constants): Add supports of ~ inside ConstantDefinition\u000a",
        "date" : "2023-06-16 10:52:29 +0200",
        "id" : "8d3e22e8c54bca8e84ea94566f47b8f24cc24b60",
        "msg" : "feat(constants): Add supports of ~ inside ConstantDefinition",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/ConstantDefinition.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test1.h"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test1p2DynamicLibraryBundle.java",
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/java/com/jogamp/gluegen/JavaConfiguration.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test1p2ProcAddressEmitter.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test1-CustomJNICode.cfg",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test1-CustomJavaCode.cfg",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test1.h",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test1p1JavaEmitter.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test1-common.cfg"
        ],
        "commitId" : "d7bc10d7ff0e3a30d74c4e4c439230f3983bcfb4",
        "timestamp" : 1686908682000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/mfery",
          "fullName" : "mfery"
        },
        "authorEmail" : "mfery@ankama.com",
        "comment" : "feat(jni): Add directive for dedicated JNI Code with CustomJNICode\u000a",
        "date" : "2023-06-16 11:44:42 +0200",
        "id" : "d7bc10d7ff0e3a30d74c4e4c439230f3983bcfb4",
        "msg" : "feat(jni): Add directive for dedicated JNI Code with CustomJNICode",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaConfiguration.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test1p2ProcAddressEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test1-common.cfg"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test1-CustomJavaCode.cfg"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test1p2DynamicLibraryBundle.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test1-CustomJNICode.cfg"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test1.h"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test1p1JavaEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaEmitter.java"
        ],
        "commitId" : "106a552817e6da2845052b48ebbfc14cf05edbd5",
        "timestamp" : 1686930961000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Struct [7]: Keep struct class non-final (revert), but ensure methods are final. Drop useless 'final' of 'static final'.\u000a",
        "date" : "2023-06-16 17:56:01 +0200",
        "id" : "106a552817e6da2845052b48ebbfc14cf05edbd5",
        "msg" : "GlueGen Struct [7]: Keep struct class non-final (revert), but ensure methods are final. Drop useless 'final' of 'static final'.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/common/nio/ElementBuffer.java"
        ],
        "commitId" : "8b1db2e6cce3289ed043f85660505551b11e3374",
        "timestamp" : 1686972184000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "ElementBuffer: Add absolute get/put multi-element with full srcElemPos, destElemPos, elementCount argument set and use it for the single absolute get/put methods.\u000a",
        "date" : "2023-06-17 05:23:04 +0200",
        "id" : "8b1db2e6cce3289ed043f85660505551b11e3374",
        "msg" : "ElementBuffer: Add absolute get/put multi-element with full srcElemPos, destElemPos, elementCount argument set and use it for the single absolute get/put methods.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/nio/ElementBuffer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/cgram/types/Type.java",
          "doc/GlueGen_Mapping.html",
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass.java",
          "doc/GlueGen_Mapping.md"
        ],
        "commitId" : "a0abee0deb699fc97fc1146200c9057de15798d6",
        "timestamp" : 1686977931000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Struct [8]: Revised setter (resolved shrinking array, using 'subset' flag), added (detailed) JavaDoc in generated code\u000a\u000aRevised setter:\u000a\u000aA) int32_t val[10] -> setter for a subset change only, as-is with args[src, srcPos, destPos, length]\u000a                     - no new memory, reuse only\u000a                     - no special action to be performed\u000a\u000aB) int32_t* val -> setter with toggle 'subset' with args[subset, src, srcPos, destPos, length],\u000a                - replace memory w/ 'subset==false' where it also may copy 'destPos' gap from old -> new\u000a                - reuse memory w/ 'subset==true', where destPos+length <= elementCount\u000a\u000aC) const int32_t* val -> setter to replace referenced memory only args[src, srcPos, length]\u000a                     - always replaces memory, no copy of a gap (no destPos)\u000a\u000aHence:\u000a- case (A) stays as is\u000a- case (B) will be revised and argument 'boolean subset' added\u000a- case (C) will be revised (simplified) and argument 'destPos' removed\u000a",
        "date" : "2023-06-17 06:58:51 +0200",
        "id" : "a0abee0deb699fc97fc1146200c9057de15798d6",
        "msg" : "GlueGen Struct [8]: Revised setter (resolved shrinking array, using 'subset' flag), added (detailed) JavaDoc in generated code",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/cgram/types/Type.java"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/JogAmpMacOSVersions.html"
        ],
        "commitId" : "6e8d3491863f21283edfd8aa0116599248fdc6fe",
        "timestamp" : 1686977959000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "doc/JogAmpMacOSVersions.html: Replaced w/ standalone html5 w/ header (utf8)\u000a",
        "date" : "2023-06-17 06:59:19 +0200",
        "id" : "6e8d3491863f21283edfd8aa0116599248fdc6fe",
        "msg" : "doc/JogAmpMacOSVersions.html: Replaced w/ standalone html5 w/ header (utf8)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/JogAmpMacOSVersions.html"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/GlueGen_Mapping.md",
          "doc/GlueGen_Mapping.html"
        ],
        "commitId" : "f364dd017e548d1b61b0b01ecd4ab2dbe4924d76",
        "timestamp" : 1686978185000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "doc/GlueGen_Mapping.md: Remove note regarding shrinking array, resolved\u000a",
        "date" : "2023-06-17 07:03:05 +0200",
        "id" : "f364dd017e548d1b61b0b01ecd4ab2dbe4924d76",
        "msg" : "doc/GlueGen_Mapping.md: Remove note regarding shrinking array, resolved",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "www/index.html",
          "doc/JogAmpMacOSVersions.html",
          "doc/GlueGen_Mapping.html"
        ],
        "commitId" : "42bd110d9ec63594cc028f3ee8a459424b1d2ae0",
        "timestamp" : 1686978472000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Drop .md -> .html generated docs (ugly), use our cgit md -> html via refined pandoc styles\u000a\u000aWould need to fix my standalone pandoc setup to produce proper standalone docs.\u000a",
        "date" : "2023-06-17 07:07:52 +0200",
        "id" : "42bd110d9ec63594cc028f3ee8a459424b1d2ae0",
        "msg" : "Drop .md -> .html generated docs (ugly), use our cgit md -> html via refined pandoc styles",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "doc/JogAmpMacOSVersions.html"
          },
          {
            "editType" : "delete",
            "file" : "doc/GlueGen_Mapping.html"
          },
          {
            "editType" : "edit",
            "file" : "www/index.html"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaType.java"
        ],
        "commitId" : "99574c6adb0aad760162fea744606345fc564472",
        "timestamp" : 1687051345000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "JavaType: Add getSignature(..) like Type\u000a",
        "date" : "2023-06-18 03:22:25 +0200",
        "id" : "99574c6adb0aad760162fea744606345fc564472",
        "msg" : "JavaType: Add getSignature(..) like Type",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaType.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/cgram/types/Type.java"
        ],
        "commitId" : "0e90617503c71eedba05b604d4b35ca2d14928ec",
        "timestamp" : 1687051403000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Type: Add hasSize(), change getSignature(..) for const: isConstTypedef() -> \"typedef\", isConstRaw() -> \"native\"\u000a",
        "date" : "2023-06-18 03:23:23 +0200",
        "id" : "0e90617503c71eedba05b604d4b35ca2d14928ec",
        "msg" : "Type: Add hasSize(), change getSignature(..) for const: isConstTypedef() -> \"typedef\", isConstRaw() -> \"native\"",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/cgram/types/Type.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaEmitter.java"
        ],
        "commitId" : "eec3f21c3597ff9bf9760a06e00dd341214ea90d",
        "timestamp" : 1687051571000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Struct [9]: Fix regression which added a pointer referencing type 'void', i.e. exclude if !baseCElemType.hasSize() // like 'void*' -> 'void'\u000a",
        "date" : "2023-06-18 03:26:11 +0200",
        "id" : "eec3f21c3597ff9bf9760a06e00dd341214ea90d",
        "msg" : "GlueGen Struct [9]: Fix regression which added a pointer referencing type 'void', i.e. exclude if !baseCElemType.hasSize() // like 'void*' -> 'void'",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaEmitter.java"
        ],
        "commitId" : "5a19d4fb868f7459dc81ee7e82e1040f79a87544",
        "timestamp" : 1687051879000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Struct [10]: Don't skip primitive w/ platform dependent sized type in struct (like 'int') ..\u000a\u000aWe already support platform dependent sizes like pointer etc, no reason to drop e.g. 'int'.\u000a\u000aNote: 'int' is also always 32bit of size within our current set of supported platforms, e.g. MachineDataInfo.\u000a\u000aFurther fix and clarify primCElemFixedSize and primElemSizeExpr, only to be true and set if isPrimitive.\u000a",
        "date" : "2023-06-18 03:31:19 +0200",
        "id" : "5a19d4fb868f7459dc81ee7e82e1040f79a87544",
        "msg" : "GlueGen Struct [10]: Don't skip primitive w/ platform dependent sized type in struct (like 'int') ..",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaEmitter.java"
        ],
        "commitId" : "2837fad810b66ace8d841c8a67577db442883c78",
        "timestamp" : 1687052094000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Struct [11]: Formalize Ownership (enum) and elaborate generated Java API-Doc\u000a",
        "date" : "2023-06-18 03:34:54 +0200",
        "id" : "2837fad810b66ace8d841c8a67577db442883c78",
        "msg" : "GlueGen Struct [11]: Formalize Ownership (enum) and elaborate generated Java API-Doc",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaEmitter.java"
        ],
        "commitId" : "187c097055dc691a2ee65bed1c06c089aaf5cb59",
        "timestamp" : 1687052143000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Struct [12]: Throw InternalError(..) for produced code-path where Ownership.Native _and_ native memory potentially gets replaced\u000a",
        "date" : "2023-06-18 03:35:43 +0200",
        "id" : "187c097055dc691a2ee65bed1c06c089aaf5cb59",
        "msg" : "GlueGen Struct [12]: Throw InternalError(..) for produced code-path where Ownership.Native _and_ native memory potentially gets replaced",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg"
        ],
        "commitId" : "4761c936ab5e09fe7ae19522bacf3889fc300fc9",
        "timestamp" : 1687052364000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Struct [9b]: Add unit test for fixed 'void*' regression commit eec3f21c3597ff9bf9760a06e00dd341214ea90d\u000a\u000aSee impact to T2_InitializeOptions struct fields:\u000a- 'void* Reserved1' shall be ignored (*this is the regression fix*)\u000a- 'void* Reserved2' will be taked due to config 'Opaque long T2_InitializeOptions.Reserved2'\u000a- 'T2_CustomFunc CustomFunc2' will produce a member function call as previously\u000a",
        "date" : "2023-06-18 03:39:24 +0200",
        "id" : "4761c936ab5e09fe7ae19522bacf3889fc300fc9",
        "msg" : "GlueGen Struct [9b]: Add unit test for fixed 'void*' regression commit eec3f21c3597ff9bf9760a06e00dd341214ea90d",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/GlueGen_Mapping.md"
        ],
        "commitId" : "601399a1b7c9c66866716a8629098698dea49f38",
        "timestamp" : 1687052454000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Struct [13]: Adopt GlueGen_Mapping.md to changes, added `Struct Java Signature Examples` w/ Java API Doc snippets\u000a",
        "date" : "2023-06-18 03:40:54 +0200",
        "id" : "601399a1b7c9c66866716a8629098698dea49f38",
        "msg" : "GlueGen Struct [13]: Adopt GlueGen_Mapping.md to changes, added `Struct Java Signature Examples` w/ Java API Doc snippets",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "www/index.html",
          "doc/JogAmpMacOSVersions.html",
          "doc/GlueGen_Mapping.html"
        ],
        "commitId" : "9dd35877f28f5d3dce5e1817edd33bb8f6dbbe36",
        "timestamp" : 1687052612000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bring back produced html5 standalone files, having fixed pandoc usage.\u000a\u000aSee my pandoc-buttondown git repo <https://jausoft.com/cgit/users/sgothel/pandoc-buttondown-cgit.git/about/>\u000a\u000aLatest config <https://jausoft.com/cgit/users/sgothel/pandoc-buttondown-cgit.git/commit/?id=fb38ada0c8d71a2b26bd3ee9d075acce84d76b2c>\u000afixed creation of standalone html5 files.\u000a",
        "date" : "2023-06-18 03:43:32 +0200",
        "id" : "9dd35877f28f5d3dce5e1817edd33bb8f6dbbe36",
        "msg" : "Bring back produced html5 standalone files, having fixed pandoc usage.",
        "paths" : [
          {
            "editType" : "add",
            "file" : "doc/JogAmpMacOSVersions.html"
          },
          {
            "editType" : "edit",
            "file" : "www/index.html"
          },
          {
            "editType" : "add",
            "file" : "doc/GlueGen_Mapping.html"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".gitmodules"
        ],
        "commitId" : "6f7bbc15ff19640396ade377a1b2c508e67f98da",
        "timestamp" : 1687055509000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "CPP Enable Pragma Once: Use default jcpp branch as its merged now\u000a",
        "date" : "2023-06-18 04:31:49 +0200",
        "id" : "6f7bbc15ff19640396ade377a1b2c508e67f98da",
        "msg" : "CPP Enable Pragma Once: Use default jcpp branch as its merged now",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".gitmodules"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/GlueGen.java",
          "src/java/com/jogamp/gluegen/structgen/CStructAnnotationProcessor.java"
        ],
        "commitId" : "1159dadbdca861e4a6dd47e9da3ccb47ec15f4a3",
        "timestamp" : 1687055578000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "CPP Enable Pragma Once: Add GlueGen.run(..) debug output w/ all paramter\u000a",
        "date" : "2023-06-18 04:32:58 +0200",
        "id" : "1159dadbdca861e4a6dd47e9da3ccb47ec15f4a3",
        "msg" : "CPP Enable Pragma Once: Add GlueGen.run(..) debug output w/ all paramter",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/structgen/CStructAnnotationProcessor.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/GlueGen.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/GlueGen.java",
          "src/java/com/jogamp/gluegen/structgen/CStructAnnotationProcessor.java"
        ],
        "commitId" : "7825c4c053e0755e5dc0aa20127914887efa75e4",
        "timestamp" : 1687055634000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "CPP Enable Pragma Once: Default is 'true', since usually all compiler and APIs do support this feature\u000a",
        "date" : "2023-06-18 04:33:54 +0200",
        "id" : "7825c4c053e0755e5dc0aa20127914887efa75e4",
        "msg" : "CPP Enable Pragma Once: Default is 'true', since usually all compiler and APIs do support this feature",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/GlueGen.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/structgen/CStructAnnotationProcessor.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/test1-CustomJavaCode.java.stub",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test1-CustomJavaCode.cfg",
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test1-common.cfg",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test1-CustomJNICode.cfg",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test1p2-CustomJNICode.c.stub"
        ],
        "commitId" : "195bf966e4946ee9e80cd7aec68685218ad7a777",
        "timestamp" : 1687058861000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "CustomJNICode: Fix/complete commit d7bc10d7ff0e3a30d74c4e4c439230f3983bcfb4: Add emitCustomJNICode(..) for JavaEmitter.endFunctions() not just structs and fix the JNI-c stub code\u000a",
        "date" : "2023-06-18 05:27:41 +0200",
        "id" : "195bf966e4946ee9e80cd7aec68685218ad7a777",
        "msg" : "CustomJNICode: Fix/complete commit d7bc10d7ff0e3a30d74c4e4c439230f3983bcfb4: Add emitCustomJNICode(..) for JavaEmitter.endFunctions() not just structs and fix the JNI-c stub code",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test1-common.cfg"
          },
          {
            "editType" : "delete",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test1-CustomJNICode.cfg"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test1p2-CustomJNICode.c.stub"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test1-CustomJavaCode.java.stub"
          },
          {
            "editType" : "delete",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test1-CustomJavaCode.cfg"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/test1p1-CustomJNICode.c.stub"
        ],
        "commitId" : "6aec5c5274d0ffb6662fdc53671b58df23850d89",
        "timestamp" : 1687058954000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "CustomJNICode: Add missing (separated) test1p1-CustomJNICode.c.stub\u000a",
        "date" : "2023-06-18 05:29:14 +0200",
        "id" : "6aec5c5274d0ffb6662fdc53671b58df23850d89",
        "msg" : "CustomJNICode: Add missing (separated) test1p1-CustomJNICode.c.stub",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test1p1-CustomJNICode.c.stub"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/GlueGen.java"
        ],
        "commitId" : "fd8ebf543ecc16233c0027c5a38701c11be548c7",
        "timestamp" : 1687064490000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/ferymathieuy",
          "fullName" : "ferymathieuy"
        },
        "authorEmail" : "ferymathieuy@gmail.com",
        "comment" : "fix(cli): Fix disablePragmaOnce option\u000a\u000aOption set enablePragmaOnce to true instead false\u000a",
        "date" : "2023-06-18 07:01:30 +0200",
        "id" : "fd8ebf543ecc16233c0027c5a38701c11be548c7",
        "msg" : "fix(cli): Fix disablePragmaOnce option",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/GlueGen.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/GlueGen.java"
        ],
        "commitId" : "b939d0e0555b0fe0e3609d6d867941b9aacf0e6f",
        "timestamp" : 1687110928000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "CPP Enable Pragma Once: Remove cli '--enablePragmaOnce' option as it is enabled by default\u000a",
        "date" : "2023-06-18 19:55:28 +0200",
        "id" : "b939d0e0555b0fe0e3609d6d867941b9aacf0e6f",
        "msg" : "CPP Enable Pragma Once: Remove cli '--enablePragmaOnce' option as it is enabled by default",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/GlueGen.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/GlueGen_Mapping.md",
          "doc/GlueGen_Mapping.html"
        ],
        "commitId" : "b08c609647f6280ddcd1329c40da1fe23d34c4e6",
        "timestamp" : 1687118554000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Struct [14]: Update doc/GlueGen_Mapping.md\u000a\u000aCompleting a few cases and fix some signatures in table\u000a",
        "date" : "2023-06-18 22:02:34 +0200",
        "id" : "b08c609647f6280ddcd1329c40da1fe23d34c4e6",
        "msg" : "GlueGen Struct [14]: Update doc/GlueGen_Mapping.md",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "www/index.html"
        ],
        "commitId" : "f783788e21f40a4a429221dad416a79586429eb4",
        "timestamp" : 1687118768000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "www/index.html: Copy Documentation section into main text for visibility\u000a",
        "date" : "2023-06-18 22:06:08 +0200",
        "id" : "f783788e21f40a4a429221dad416a79586429eb4",
        "msg" : "www/index.html: Copy Documentation section into main text for visibility",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "www/index.html"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/manual/index.html"
        ],
        "commitId" : "49e5000347543559867a45f1d1b330b6086d7a32",
        "timestamp" : 1687119397000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Doc: Manual: Adding disclaimer being slightly outdated and hint to GlueGen_Mapping document\u000a",
        "date" : "2023-06-18 22:16:37 +0200",
        "id" : "49e5000347543559867a45f1d1b330b6086d7a32",
        "msg" : "Doc: Manual: Adding disclaimer being slightly outdated and hint to GlueGen_Mapping document",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/manual/index.html"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/cgram/types/Type.java",
          "src/java/com/jogamp/gluegen/MethodBinding.java",
          "src/java/com/jogamp/gluegen/cgram/types/ArrayType.java",
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/java/com/jogamp/gluegen/cgram/types/PointerType.java",
          "src/java/com/jogamp/gluegen/cgram/types/StructLayout.java",
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
        ],
        "commitId" : "32db4ef66cacc4a6f01bd6b36f8cda96acb7ed38",
        "timestamp" : 1687180722000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Type: Use virt getTargetType() for ArrayType dropping getElementType(); Rename getBase{Elem ->}Type() to align with getTargetType()\u000a",
        "date" : "2023-06-19 15:18:42 +0200",
        "id" : "32db4ef66cacc4a6f01bd6b36f8cda96acb7ed38",
        "msg" : "GlueGen Type: Use virt getTargetType() for ArrayType dropping getElementType(); Rename getBase{Elem ->}Type() to align with getTargetType()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/MethodBinding.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/cgram/types/StructLayout.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/cgram/types/Type.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/cgram/types/ArrayType.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/cgram/types/PointerType.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/GlueGen_Mapping.md"
        ],
        "commitId" : "f7f554208c024280f1929df79bdbb83c758b8b49",
        "timestamp" : 1687226322000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "doc/GlueGen_Mapping.md: Place `Struct Setter Pseudo-Code` above 'Signature Table' and add a brief signature to mapping description to the former\u000a",
        "date" : "2023-06-20 03:58:42 +0200",
        "id" : "f7f554208c024280f1929df79bdbb83c758b8b49",
        "msg" : "doc/GlueGen_Mapping.md: Place `Struct Setter Pseudo-Code` above 'Signature Table' and add a brief signature to mapping description to the former",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "make/scripts/runtest.sh",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h",
          "doc/GlueGen_Mapping.html",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test2.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/BindingJNILibLoader.java",
          "doc/GlueGen_Mapping.md",
          "make/build-test.xml"
        ],
        "commitId" : "b9dc722d689760bf85628edd8766dc6cd2360c8e",
        "timestamp" : 1687226532000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Struct [15]: Add FunctionPointer getter and setter support w/ documentation\u000a",
        "date" : "2023-06-20 04:02:12 +0200",
        "id" : "b9dc722d689760bf85628edd8766dc6cd2360c8e",
        "msg" : "GlueGen Struct [15]: Add FunctionPointer getter and setter support w/ documentation",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/runtest.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "make/build-test.xml"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BindingJNILibLoader.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h",
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test2.java",
          "doc/GlueGen_Mapping.html",
          "doc/GlueGen_Mapping.md",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c"
        ],
        "commitId" : "65e9c14e1566d5bfa88435d460c699c2a8fd23b7",
        "timestamp" : 1687253052000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Struct [15b]: FunctionPointer: Drop is<FuncName>Null() -> use get<FuncName>()\u000a",
        "date" : "2023-06-20 11:24:12 +0200",
        "id" : "65e9c14e1566d5bfa88435d460c699c2a8fd23b7",
        "msg" : "GlueGen Struct [15b]: FunctionPointer: Drop is<FuncName>Null() -> use get<FuncName>()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test2.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg"
        ],
        "commitId" : "3d6003fcada35d91c0d865ad0f4edb1da3ed8b8d",
        "timestamp" : 1687285862000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen junit test2.h: Add an anonymous struct pointer w/ opaque long config\u000a",
        "date" : "2023-06-20 20:31:02 +0200",
        "id" : "3d6003fcada35d91c0d865ad0f4edb1da3ed8b8d",
        "msg" : "GlueGen junit test2.h: Add an anonymous struct pointer w/ opaque long config",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaEmitter.java"
        ],
        "commitId" : "10433928d69e58dc6a6b99e9c0a9b0a2669db56a",
        "timestamp" : 1687319498000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "JavaEmitter.typeToJavaTypeImpl(): Add targetType in GlueGenException and remove '\"' in message\u000a",
        "date" : "2023-06-21 05:51:38 +0200",
        "id" : "10433928d69e58dc6a6b99e9c0a9b0a2669db56a",
        "msg" : "JavaEmitter.typeToJavaTypeImpl(): Add targetType in GlueGenException and remove '\"' in message",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/scripts/runtest.sh",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test2FuncPtr.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test2.java"
        ],
        "commitId" : "df5b63babeec8a9de0ab22a917bbd6c192a2ac0f",
        "timestamp" : 1687493571000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Test: Test2 -> Test2FuncPtr\u000a",
        "date" : "2023-06-23 06:12:51 +0200",
        "id" : "df5b63babeec8a9de0ab22a917bbd6c192a2ac0f",
        "msg" : "GlueGen Test: Test2 -> Test2FuncPtr",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test2.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test2FuncPtr.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/runtest.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/common/nio/AbstractBuffer.java",
          "src/java/com/jogamp/common/nio/PointerBuffer.java",
          "src/java/com/jogamp/common/nio/NativeBuffer.java",
          "src/java/com/jogamp/common/nio/ElementBuffer.java"
        ],
        "commitId" : "3f50232fae03c65d7d84a6ca1e2a7b83cefde6ae",
        "timestamp" : 1687493851000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "NIO NativeBuffer, {Element,Pointer}Buffer: Add limit, clear and flip; Arrange wrap/deref arguments equal; Add equal set of absolute get/set methods\u000a\u000aCompleting API to simplify usage by generated code.\u000a\u000aAll absolute get/set method check arguments itself and against limit(), allow to drop checks in generated code (size).\u000a",
        "date" : "2023-06-23 06:17:31 +0200",
        "id" : "3f50232fae03c65d7d84a6ca1e2a7b83cefde6ae",
        "msg" : "NIO NativeBuffer, {Element,Pointer}Buffer: Add limit, clear and flip; Arrange wrap/deref arguments equal; Add equal set of absolute get/set methods",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/nio/PointerBuffer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/nio/ElementBuffer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/nio/NativeBuffer.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/nio/AbstractBuffer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/cgram/types/Type.java",
          "src/java/com/jogamp/gluegen/JavaType.java"
        ],
        "commitId" : "f90a42bd693ab9d451902e69ad86359fae2510dc",
        "timestamp" : 1687493917000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen: Type, JavaType: Align getSignature(..) output\u000a",
        "date" : "2023-06-23 06:18:37 +0200",
        "id" : "f90a42bd693ab9d451902e69ad86359fae2510dc",
        "msg" : "GlueGen: Type, JavaType: Align getSignature(..) output",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaType.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/cgram/types/Type.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/cgram/types/Type.java",
          "src/java/com/jogamp/gluegen/cgram/types/ArrayType.java",
          "src/java/com/jogamp/gluegen/cgram/types/PointerType.java",
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/java/com/jogamp/gluegen/cgram/types/Field.java",
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java",
          "src/java/com/jogamp/gluegen/cgram/types/FunctionType.java"
        ],
        "commitId" : "9e61409658358834c2ba26c69c3efcbb5755c128",
        "timestamp" : 1687494716000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen: Type: Have get{Base,Target}Type() stop at isFunctionPointer(), enhance API doc; Add getArrayBaseOrPointerTargetType() and getTargetFunction()\u000a\u000aAdded getArrayBaseOrPointerTargetType() returns getBaseType() for arrays or getTargetType() for pointer,\u000ai.e. stops traversing if an elementType is a pointer and returns the elementType as target-type.\u000aThis resolves 'int* intPtrArray[10]', but also simplifies all cases of 'int** intPtrPtr' and 'int intPtr[10]' etc.\u000a\u000aSince get{Base,Target}Type() returns the functionPointer, getTargetFunction() allows to retrieve the actual target function type.\u000a",
        "date" : "2023-06-23 06:31:56 +0200",
        "id" : "9e61409658358834c2ba26c69c3efcbb5755c128",
        "msg" : "GlueGen: Type: Have get{Base,Target}Type() stop at isFunctionPointer(), enhance API doc; Add getArrayBaseOrPointerTargetType() and getTargetFunction()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/cgram/types/PointerType.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/cgram/types/Field.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/cgram/types/FunctionType.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/cgram/types/Type.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/cgram/types/ArrayType.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaConfiguration.java"
        ],
        "commitId" : "10842e888d1367475019f33bc651671453b31bd2",
        "timestamp" : 1687494816000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen: JavaConfiguration.typeInfo(..): Clarify DEBUG_TYPE_INFO output\u000a",
        "date" : "2023-06-23 06:33:36 +0200",
        "id" : "10842e888d1367475019f33bc651671453b31bd2",
        "msg" : "GlueGen: JavaConfiguration.typeInfo(..): Clarify DEBUG_TYPE_INFO output",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaConfiguration.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaConfiguration.java"
        ],
        "commitId" : "829d69ca42d2022790b136a5f689c34919a7c775",
        "timestamp" : 1687494886000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen: JavaConfiguration.promoteTypeInfo(): Fix primitive pointerDepth, i.e. only pass numPointersStripped w/o adding info.pointerDepth()\u000a",
        "date" : "2023-06-23 06:34:46 +0200",
        "id" : "829d69ca42d2022790b136a5f689c34919a7c775",
        "msg" : "GlueGen: JavaConfiguration.promoteTypeInfo(): Fix primitive pointerDepth, i.e. only pass numPointersStripped w/o adding info.pointerDepth()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaConfiguration.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "make/scripts/runtest.sh",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test2FuncPtr.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test3PtrStorage.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h",
          "doc/GlueGen_Mapping.html",
          "doc/GlueGen_Mapping.md"
        ],
        "commitId" : "23f4c6347ea24cf619dba573e83790e73d81d5ad",
        "timestamp" : 1687496964000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Struct [16]: Add support for pointer-pointer and function-pointer values\u000a\u000aSee documentation and unit test test2.h, Test2FuncPtr.java and Test3PtrStorage.java\u000a",
        "date" : "2023-06-23 07:09:24 +0200",
        "id" : "23f4c6347ea24cf619dba573e83790e73d81d5ad",
        "msg" : "GlueGen Struct [16]: Add support for pointer-pointer and function-pointer values",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/runtest.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test2FuncPtr.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test3PtrStorage.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
        ],
        "commitId" : "69d9f10bb1c99cba53869f2b019d5227446622e2",
        "timestamp" : 1687671162000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen: Expose CMethodBindingEmitter.getJNIMangledArgs() as a public static to be reusable\u000a",
        "date" : "2023-06-25 07:32:42 +0200",
        "id" : "69d9f10bb1c99cba53869f2b019d5227446622e2",
        "msg" : "GlueGen: Expose CMethodBindingEmitter.getJNIMangledArgs() as a public static to be reusable",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/procaddress/ProcAddressCMethodBindingEmitter.java",
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/java/com/jogamp/gluegen/GlueEmitter.java",
          "src/java/com/jogamp/gluegen/DebugEmitter.java",
          "src/java/com/jogamp/gluegen/GlueGen.java"
        ],
        "commitId" : "7a4a0aea28729eabf1d44f58b0cfa4255f160992",
        "timestamp" : 1687671473000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen: Rename GlueEmitter.getConfig{uration->}() and drop JavaEmitter.getConfig(), cleaning up API usage\u000a",
        "date" : "2023-06-25 07:37:53 +0200",
        "id" : "7a4a0aea28729eabf1d44f58b0cfa4255f160992",
        "msg" : "GlueGen: Rename GlueEmitter.getConfig{uration->}() and drop JavaEmitter.getConfig(), cleaning up API usage",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/procaddress/ProcAddressCMethodBindingEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/GlueEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/DebugEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/GlueGen.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/procaddress/ProcAddressCMethodBindingEmitter.java"
        ],
        "commitId" : "12ed5d03a26997c185474e992ad93ec99ec3baa1",
        "timestamp" : 1687671638000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Fix ProcAddressCMethodBindingEmitter.jniMangle(..) override: Use renamed {jniMangle->getJNIMangledArg}(..)\u000a",
        "date" : "2023-06-25 07:40:38 +0200",
        "id" : "12ed5d03a26997c185474e992ad93ec99ec3baa1",
        "msg" : "GlueGen Fix ProcAddressCMethodBindingEmitter.jniMangle(..) override: Use renamed {jniMangle->getJNIMangledArg}(..)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/procaddress/ProcAddressCMethodBindingEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaEmitter.java"
        ],
        "commitId" : "069c5f69d22c8979728149a51a089b52712cac5c",
        "timestamp" : 1687671701000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen: Add JavaEmitter(JavaConfiguration) ctor\u000a",
        "date" : "2023-06-25 07:41:41 +0200",
        "id" : "069c5f69d22c8979728149a51a089b52712cac5c",
        "msg" : "GlueGen: Add JavaEmitter(JavaConfiguration) ctor",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaEmitter.java"
        ],
        "commitId" : "fd1c691c2e11e1dcfc6f84143e5152c5cd14b45b",
        "timestamp" : 1687671830000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "JavaEmitter.generateArrayGetterSetterCode(): Place elemCountExpr null check where it could occur -> non-opaque, non-primitive array case\u000a",
        "date" : "2023-06-25 07:43:50 +0200",
        "id" : "fd1c691c2e11e1dcfc6f84143e5152c5cd14b45b",
        "msg" : "JavaEmitter.generateArrayGetterSetterCode(): Place elemCountExpr null check where it could occur -> non-opaque, non-primitive array case",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/cgram/types/Type.java"
        ],
        "commitId" : "42a1f8c8bdb34242f422d24c4ad1d67a1e7ffd25",
        "timestamp" : 1687671956000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen: Fix Type.getSignature(..): Test for isFunctionPointer() to elaborate on FunctionType as getTargetType() only retruns a function-ptr and no more a function-type.\u000a",
        "date" : "2023-06-25 07:45:56 +0200",
        "id" : "42a1f8c8bdb34242f422d24c4ad1d67a1e7ffd25",
        "msg" : "GlueGen: Fix Type.getSignature(..): Test for isFunctionPointer() to elaborate on FunctionType as getTargetType() only retruns a function-ptr and no more a function-type.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/cgram/types/Type.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/cgram/types/FunctionType.java"
        ],
        "commitId" : "d55eab966968dfff6eac0db0445a0dbfbfb96240",
        "timestamp" : 1687671991000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen FunctionType: Expose toString(..) w/ 'isPointer' argument\u000a",
        "date" : "2023-06-25 07:46:31 +0200",
        "id" : "d55eab966968dfff6eac0db0445a0dbfbfb96240",
        "msg" : "GlueGen FunctionType: Expose toString(..) w/ 'isPointer' argument",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/cgram/types/FunctionType.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaType.java"
        ],
        "commitId" : "c54c5699c752fcf2cee19ef9dc21cd4acb5aa6cd",
        "timestamp" : 1687672284000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Add JavaType.forObjectClass()\u000a",
        "date" : "2023-06-25 07:51:24 +0200",
        "id" : "c54c5699c752fcf2cee19ef9dc21cd4acb5aa6cd",
        "msg" : "GlueGen Add JavaType.forObjectClass()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaType.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/cgram/types/FunctionSymbol.java"
        ],
        "commitId" : "b9bddbd7a75e7fa9812fdcc455a0c4857c3e9990",
        "timestamp" : 1687672373000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen FunctionSymbol: Simplify ctor reusing main-ctor; Be always reachable via type(def)name, ctor: addAliasedName( type.getCName() )\u000a",
        "date" : "2023-06-25 07:52:53 +0200",
        "id" : "b9bddbd7a75e7fa9812fdcc455a0c4857c3e9990",
        "msg" : "GlueGen FunctionSymbol: Simplify ctor reusing main-ctor; Be always reachable via type(def)name, ctor: addAliasedName( type.getCName() )",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/cgram/types/FunctionSymbol.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaConfiguration.java"
        ],
        "commitId" : "15ed242971142e0726e60271172266515533e1f4",
        "timestamp" : 1687672860000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaConfiguration: Add 'JavaCallbackDef <funcion-pointer-typedef-name> [user-param-idx]'\u000a\u000aDefine a JavaCallback, enacted on a function-pointer argument `T2_CallbackFunc` and a user-param `void*` for Java Object mapping\u000a\u000aExample:\u000a  JavaCallbackDef  T2_CallbackFunc 2\u000a",
        "date" : "2023-06-25 08:01:00 +0200",
        "id" : "15ed242971142e0726e60271172266515533e1f4",
        "msg" : "GlueGen JavaConfiguration: Add 'JavaCallbackDef <funcion-pointer-typedef-name> [user-param-idx]'",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaConfiguration.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaConfiguration.java"
        ],
        "commitId" : "7caf66ccae2dea53b82fb6552cb9144d4146259f",
        "timestamp" : 1687672890000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaConfiguration: Add List<Integer> stringArguments(final AliasedSymbol symbol)\u000a",
        "date" : "2023-06-25 08:01:30 +0200",
        "id" : "7caf66ccae2dea53b82fb6552cb9144d4146259f",
        "msg" : "GlueGen JavaConfiguration: Add List<Integer> stringArguments(final AliasedSymbol symbol)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaConfiguration.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg",
          "src/java/com/jogamp/gluegen/JavaEmitter.java"
        ],
        "commitId" : "5a130ab0c6db44225692e362e41e7b45481f9392",
        "timestamp" : 1687673003000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: Add preliminary implementation (WIP): Produces proper interfaces, TODO implementation\u000a\u000aNote: JavaCallbackDef is commented out on test2.cfg example, since implementation is missing.\u000a",
        "date" : "2023-06-25 08:03:23 +0200",
        "id" : "5a130ab0c6db44225692e362e41e7b45481f9392",
        "msg" : "GlueGen JavaCallback: Add preliminary implementation (WIP): Produces proper interfaces, TODO implementation",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/GlueGen_Mapping.md",
          "doc/GlueGen_Mapping.html"
        ],
        "commitId" : "ed49b01838f3c07fa7a997b1f758ce2c983f49f7",
        "timestamp" : 1687673033000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: Add more related documentation\u000a",
        "date" : "2023-06-25 08:03:53 +0200",
        "id" : "ed49b01838f3c07fa7a997b1f758ce2c983f49f7",
        "msg" : "GlueGen JavaCallback: Add more related documentation",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaType.java"
        ],
        "commitId" : "90b86c62270c494d2422dabc2879e59e063b535c",
        "timestamp" : 1687741869000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaType: Add new nature 'String clazzName': Future (not yet generated or existing) Class objects (existing at runtime)\u000a\u000aNew nature can be queried via isNamedClass().\u000a\u000aCleaned up equals() and completed hashValue() etc.\u000a\u000aCtor validation ensures exactly one nature is set!\u000a",
        "date" : "2023-06-26 03:11:09 +0200",
        "id" : "90b86c62270c494d2422dabc2879e59e063b535c",
        "msg" : "GlueGen JavaType: Add new nature 'String clazzName': Future (not yet generated or existing) Class objects (existing at runtime)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaType.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
        ],
        "commitId" : "93c63bd880b6bc8a85a0057112b5065b312af1db",
        "timestamp" : 1687742099000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: Use new JavaType nature 'named-class', denoting the generated callback interface mapping the callback function.\u000a\u000aThis passes the jobject for the callback function/interface and the userParam (from 'void*')\u000adown to the native implementation.\u000a\u000aTODO: Add specific native implementation for JavaCallback,\u000awrapping the jobject's into a native struct as user-param\u000aand a universal C-function as the native callback to dispatch\u000athe call to the java method with known arguments.\u000a",
        "date" : "2023-06-26 03:14:59 +0200",
        "id" : "93c63bd880b6bc8a85a0057112b5065b312af1db",
        "msg" : "GlueGen JavaCallback: Use new JavaType nature 'named-class', denoting the generated callback interface mapping the callback function.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaType.java",
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
        ],
        "commitId" : "68911f778039bbf08b5afbffd536b4cdacd33032",
        "timestamp" : 1687745359000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: Expose getJNIMethodDescriptor() for JNI mangled method names, used in CMethodBindingEmitter; Use JavaCallback's function-pointer-type capital-name as simple-class-name and its FQN for JNI resolution.\u000a",
        "date" : "2023-06-26 04:09:19 +0200",
        "id" : "68911f778039bbf08b5afbffd536b4cdacd33032",
        "msg" : "GlueGen JavaCallback: Expose getJNIMethodDescriptor() for JNI mangled method names, used in CMethodBindingEmitter; Use JavaCallback's function-pointer-type capital-name as simple-class-name and its FQN for JNI resolution.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaType.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaConfiguration.java",
          "src/java/com/jogamp/gluegen/JavaEmitter.java"
        ],
        "commitId" : "4d884db4e08ce9911871d3bdcf378041cde584fd",
        "timestamp" : 1687771042000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: Move JavaCallback into JavaConfiguration, accessible across *Emitter (needed for CMethodEmitter as well); Add JavaCallback.methodSignature to be passed to native function later on to find the callback jmethodID\u000a",
        "date" : "2023-06-26 11:17:22 +0200",
        "id" : "4d884db4e08ce9911871d3bdcf378041cde584fd",
        "msg" : "GlueGen JavaCallback: Move JavaCallback into JavaConfiguration, accessible across *Emitter (needed for CMethodEmitter as well); Add JavaCallback.methodSignature to be passed to native function later on to find the callback jmethodID",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaConfiguration.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java"
        ],
        "commitId" : "58712fb3a386ca6327b71218bab6e4b218da36a8",
        "timestamp" : 1687771132000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: Add JavaCallback.methodSignature to JNI arg-list and pass value at invocation, allowing to find the jmethodID of callback\u000a",
        "date" : "2023-06-26 11:18:52 +0200",
        "id" : "58712fb3a386ca6327b71218bab6e4b218da36a8",
        "msg" : "GlueGen JavaCallback: Add JavaCallback.methodSignature to JNI arg-list and pass value at invocation, allowing to find the jmethodID of callback",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "doc/GlueGen_Mapping.html",
          "doc/GlueGen_Mapping.md",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test2FuncPtr.java"
        ],
        "commitId" : "9be1305636daa633a7219e102b22a4ffcf277690",
        "timestamp" : 1687997160000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Struct [17]: Handle void pointers, i.e. `void*`, within a struct as `Opaque` configured pointer-types\u000a\u000a.. includes cross-ref'ed doc and unit test\u000a",
        "date" : "2023-06-29 02:06:00 +0200",
        "id" : "9be1305636daa633a7219e102b22a4ffcf277690",
        "msg" : "GlueGen Struct [17]: Handle void pointers, i.e. `void*`, within a struct as `Opaque` configured pointer-types",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test2FuncPtr.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/GlueGen_Mapping.md"
        ],
        "commitId" : "9f69f8b60b9fdc80076e20f303252ddd35b97ccf",
        "timestamp" : 1687997460000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen doc/GlueGen_Mapping.md: Mentiond OO-Style API mapping and add section for it\u000a",
        "date" : "2023-06-29 02:11:00 +0200",
        "id" : "9f69f8b60b9fdc80076e20f303252ddd35b97ccf",
        "msg" : "GlueGen doc/GlueGen_Mapping.md: Mentiond OO-Style API mapping and add section for it",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/CCodeUnit.java",
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/java/com/jogamp/gluegen/JavaConfiguration.java",
          "doc/GlueGen_Mapping.md"
        ],
        "commitId" : "ce542531f4cb6fe2bf37f3926ea869722e5acf7d",
        "timestamp" : 1687997898000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen LibraryOnLoad Config: Generate `JNI_OnLoad(..)` for dynamic and `JNI_OnLoad_<LibraryBasename>(..)` for static libraries and `JVMUtil_GetJNIEnv(..)` to resolve the `JNIEnv*` as used by JavaCallback\u000a",
        "date" : "2023-06-29 02:18:18 +0200",
        "id" : "ce542531f4cb6fe2bf37f3926ea869722e5acf7d",
        "msg" : "GlueGen LibraryOnLoad Config: Generate `JNI_OnLoad(..)` for dynamic and `JNI_OnLoad_<LibraryBasename>(..)` for static libraries and `JVMUtil_GetJNIEnv(..)` to resolve the `JNIEnv*` as used by JavaCallback",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaConfiguration.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CCodeUnit.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/CodeGenUtils.java",
          "src/java/com/jogamp/gluegen/JavaEmitter.java"
        ],
        "commitId" : "a1b107dd3fbe2070a1e667d8d7702912b0af7071",
        "timestamp" : 1687998298000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen: Move [de]captializeString(..) JavaEmitter -> static in CodeGenUtils\u000a",
        "date" : "2023-06-29 02:24:58 +0200",
        "id" : "a1b107dd3fbe2070a1e667d8d7702912b0af7071",
        "msg" : "GlueGen: Move [de]captializeString(..) JavaEmitter -> static in CodeGenUtils",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CodeGenUtils.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
        ],
        "commitId" : "809a7f84fcada7fbde8b7d0c226b78492fbfc616",
        "timestamp" : 1687998901000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen CMethodBindingEmitter: Refactor emitBodyReturnResult() -> emitBodyMapCToJNIType(): Reuse to converting any C-type argument to java JNI type (i.e. native callback to JavaCallback)\u000a",
        "date" : "2023-06-29 02:35:01 +0200",
        "id" : "809a7f84fcada7fbde8b7d0c226b78492fbfc616",
        "msg" : "GlueGen CMethodBindingEmitter: Refactor emitBodyReturnResult() -> emitBodyMapCToJNIType(): Reuse to converting any C-type argument to java JNI type (i.e. native callback to JavaCallback)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/MethodBinding.java",
          "src/java/com/jogamp/gluegen/CodeGenUtils.java",
          "src/java/com/jogamp/gluegen/cgram/types/FunctionType.java"
        ],
        "commitId" : "a83dad9963b394ac3e7bb193c6da7d9a5004a40e",
        "timestamp" : 1688000610000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen FunctionType: Factor out getParameterList(..) from toString(..) and drop 'void' and use typedef-name; MethodBinding: Add getCParameterList(..) and getJavaParameterList(..) for general usage similar to FunctionType.getParameterList()\u000a",
        "date" : "2023-06-29 03:03:30 +0200",
        "id" : "a83dad9963b394ac3e7bb193c6da7d9a5004a40e",
        "msg" : "GlueGen FunctionType: Factor out getParameterList(..) from toString(..) and drop 'void' and use typedef-name; MethodBinding: Add getCParameterList(..) and getJavaParameterList(..) for general usage similar to FunctionType.getParameterList()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/MethodBinding.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/cgram/types/FunctionType.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CodeGenUtils.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/procaddress/ProcAddressCMethodBindingEmitter.java"
        ],
        "commitId" : "1d66739e09899cb90888c8fe34aba339511aa656",
        "timestamp" : 1688000700000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen ProcAddressCMethodBindingEmitter.jniMangle() override: Only add additional params if produced name containes '__', i.e. JNI mangled parameter\u000a",
        "date" : "2023-06-29 03:05:00 +0200",
        "id" : "1d66739e09899cb90888c8fe34aba339511aa656",
        "msg" : "GlueGen ProcAddressCMethodBindingEmitter.jniMangle() override: Only add additional params if produced name containes '__', i.e. JNI mangled parameter",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/procaddress/ProcAddressCMethodBindingEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "make/scripts/runtest.sh",
          "src/java/com/jogamp/gluegen/JavaConfiguration.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java",
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h",
          "doc/GlueGen_Mapping.html",
          "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass.java",
          "src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java",
          "doc/GlueGen_Mapping.md"
        ],
        "commitId" : "6591f1fef419841660311bbb554aeda7b267c9a7",
        "timestamp" : 1688003412000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: 1st Working Draft: Changed 'JavaCallbackDef' config, added code generation incl. native to Java dispatch and resource management\u000a\u000aTested via Test4JavaCallback.java (using test2.[hc]).\u000a\u000aPlease read the GlueGen_Mapping.md as well as Test4JavaCallback.java .\u000a\u000a+++\u000a\u000aSome implementation details:\u000a\u000aJavaConfiguration maps JavaCallbackDef to JavaCallback set-function and maintains a list.\u000aJavaCallbackDef itself holds all configured details.\u000a\u000aJavaConfiguration also maps JavaCallbackInfo to JavaCallback set-function.\u000aJavaCallbackInfo itself holds all compile time information, as produced by JavaEmitter.beginFunctions(..).\u000aThis extends JavaCallbackDef and avoid repetetive computation for the callback-function-type and its MethodBinding,\u000aparameter indices for the callback interface and userParam, etc.\u000a\u000aCMethodBindingEmitter: Native callback to Java dispatch\u000a- The JavaCallback setter function creates a native 'UserParam' struct instance,\u000a  which holds the callback-interface-jobject, its callback-jmethodID and\u000a  the userParam-jobject for invocation of the actual JavaCallback interface method.\u000a\u000a- To produce the C-Type -> JNI-Type conversion, An internal CMethodBindingEmitter instance\u000a  for the native-callback function binding is created inside the CMethodBindingEmitter of the callback setter method.\u000a\u000a  It is being used to map the types to JNI within the generated native callback function,\u000a  passed to the actual JavaCallback method.\u000a\u000aJavaMethodBindingEmitter: Native callback to Java dispatch\u000a- The JavaCallbacl setter passes the callback-interface-object, the userParam-object and the\u000a  callback-method-signature (to have the native method retrieve the jmethodID).\u000a\u000a- It receives the native pointer of the native `UserParam` struct instance,\u000a  which gets mapped to the userParam-object. (*TODO: Refine ownership + release*).\u000a",
        "date" : "2023-06-29 03:50:12 +0200",
        "id" : "6591f1fef419841660311bbb554aeda7b267c9a7",
        "msg" : "GlueGen JavaCallback: 1st Working Draft: Changed 'JavaCallbackDef' config, added code generation incl. native to Java dispatch and resource management",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaConfiguration.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/runtest.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/GlueGen_Mapping.html",
          "www/index.html",
          "doc/GlueGen_Mapping.md",
          "README.md"
        ],
        "commitId" : "fb86a3c6f68f3788b02a8e8209a697f50c25dc19",
        "timestamp" : 1688004329000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Doc: Align GlueGen_Mapping.md intro w/ README.md and www/index.html\u000a",
        "date" : "2023-06-29 04:05:29 +0200",
        "id" : "fb86a3c6f68f3788b02a8e8209a697f50c25dc19",
        "msg" : "Doc: Align GlueGen_Mapping.md intro w/ README.md and www/index.html",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "www/index.html"
          },
          {
            "editType" : "edit",
            "file" : "README.md"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "www/index.html"
        ],
        "commitId" : "dc5061e2d31f01a875b27e722835e2e8cfa67c88",
        "timestamp" : 1688004465000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Doc: www/index.html: Fix JOGL UML link\u000a",
        "date" : "2023-06-29 04:07:45 +0200",
        "id" : "dc5061e2d31f01a875b27e722835e2e8cfa67c88",
        "msg" : "Doc: www/index.html: Fix JOGL UML link",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "www/index.html"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/GlueGen_Mapping.html",
          "www/index.html",
          "doc/GlueGen_Mapping.md",
          "README.md"
        ],
        "commitId" : "d5304ac167fc406f682730c40fef2c880a44672e",
        "timestamp" : 1688004644000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Doc intro: Fix LibraryOnLoad using generic LibraryBasename\u000a",
        "date" : "2023-06-29 04:10:44 +0200",
        "id" : "d5304ac167fc406f682730c40fef2c880a44672e",
        "msg" : "Doc intro: Fix LibraryOnLoad using generic LibraryBasename",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "www/index.html"
          },
          {
            "editType" : "edit",
            "file" : "README.md"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "README.md"
        ],
        "commitId" : "0298341f71f43f4011a40e955bd5e99cbd798597",
        "timestamp" : 1688004983000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "README.md: Fix links\u000a",
        "date" : "2023-06-29 04:16:23 +0200",
        "id" : "0298341f71f43f4011a40e955bd5e99cbd798597",
        "msg" : "README.md: Fix links",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "README.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java"
        ],
        "commitId" : "4e9d0edc3810d36ffe1660e6ac17d1dc547ea7d7",
        "timestamp" : 1688006922000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: Set-Callback: Ensure a previously mapped 'userParam' instance is released before binding new one; Add test changing callback function.\u000a",
        "date" : "2023-06-29 04:48:42 +0200",
        "id" : "4e9d0edc3810d36ffe1660e6ac17d1dc547ea7d7",
        "msg" : "GlueGen JavaCallback: Set-Callback: Ensure a previously mapped 'userParam' instance is released before binding new one; Add test changing callback function.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java"
        ],
        "commitId" : "e898caec411fc2f313aabc188a22099e26664080",
        "timestamp" : 1688007050000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Test4JavaCallback: Just rename myUserParam -> myUserParam01 for future tests..\u000a",
        "date" : "2023-06-29 04:50:50 +0200",
        "id" : "e898caec411fc2f313aabc188a22099e26664080",
        "msg" : "Test4JavaCallback: Just rename myUserParam -> myUserParam01 for future tests..",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".classpath"
        ],
        "commitId" : "ad79dae90b94d0875416278e9dcedfc08a1de578",
        "timestamp" : 1688110839000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Eclipse classpath\u000a",
        "date" : "2023-06-30 09:40:39 +0200",
        "id" : "ad79dae90b94d0875416278e9dcedfc08a1de578",
        "msg" : "Eclipse classpath",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".classpath"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/cgram/types/Type.java",
          "src/java/com/jogamp/gluegen/MethodBinding.java",
          "src/java/com/jogamp/gluegen/cgram/types/PointerType.java",
          "src/java/com/jogamp/gluegen/JavaType.java",
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java",
          "src/java/com/jogamp/gluegen/cgram/types/FunctionSymbol.java",
          "src/java/com/jogamp/gluegen/CodeGenUtils.java",
          "src/java/com/jogamp/gluegen/cgram/types/FunctionType.java"
        ],
        "commitId" : "b35d62425311ec50e6c80b07372bc411aa287bb4",
        "timestamp" : 1688110881000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen FunctionType/MethodBinding: get*ParameterList(): Use a more flexible way via a ParameterConsumer visitor, also usable for other iterative parameter generator\u000a",
        "date" : "2023-06-30 09:41:21 +0200",
        "id" : "b35d62425311ec50e6c80b07372bc411aa287bb4",
        "msg" : "GlueGen FunctionType/MethodBinding: get*ParameterList(): Use a more flexible way via a ParameterConsumer visitor, also usable for other iterative parameter generator",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaType.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CodeGenUtils.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/MethodBinding.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/cgram/types/FunctionType.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/cgram/types/FunctionSymbol.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/cgram/types/Type.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/cgram/types/PointerType.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/java/com/jogamp/gluegen/JavaConfiguration.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg",
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h",
          "doc/GlueGen_Mapping.html",
          "src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java",
          "doc/GlueGen_Mapping.md"
        ],
        "commitId" : "a73c992290930e617c78241bae9fe20cb18a01a9",
        "timestamp" : 1688117793000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: Resolve key mapping of callback and associated resources via 'JavaCallbackKey' config and custom `SetCallback-KeyClass`\u000a\u000aUpdated unit test and doc accordingly.\u000aUnit tests handle OpenAL's AL_SOFT_callback_buffer and AL_SOFT_events.\u000a\u000aTested global scope (no key, default) and 1 key (default) and 1 key (custom class).\u000a\u000aAdded more query functions, which all only take the `SetCallbackFunction` key arguments as specified.\u000a\u000aCleaned up JavaCallback* config class field naminig scheme.\u000a\u000aAdded 'synchronized (..Map) { }' block in crucial `SetCallbackFunction`,\u000arendering implementation thread safe.\u000a",
        "date" : "2023-06-30 11:36:33 +0200",
        "id" : "a73c992290930e617c78241bae9fe20cb18a01a9",
        "msg" : "GlueGen JavaCallback: Resolve key mapping of callback and associated resources via 'JavaCallbackKey' config and custom `SetCallback-KeyClass`",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaConfiguration.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/GlueGen_Mapping.html",
          "www/index.html",
          "doc/GlueGen_Mapping.md",
          "README.md"
        ],
        "commitId" : "dd5829a4fed25fbad766361b87c65076ef596ded",
        "timestamp" : 1688172618000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Intro: Add section about its comprehensive runtime library, shorten the JNI_OnLoad section\u000a",
        "date" : "2023-07-01 02:50:18 +0200",
        "id" : "dd5829a4fed25fbad766361b87c65076ef596ded",
        "msg" : "GlueGen Intro: Add section about its comprehensive runtime library, shorten the JNI_OnLoad section",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "README.md"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          },
          {
            "editType" : "edit",
            "file" : "www/index.html"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java"
        ],
        "commitId" : "6200b9122a90ef8c2af8b9205b4b1c90b1aa5074",
        "timestamp" : 1688204731000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: Release the associated data (natively) only after the actual toolkit setCallback call\u000a\u000a.. to avoid a potential race condition\u000a",
        "date" : "2023-07-01 11:45:31 +0200",
        "id" : "6200b9122a90ef8c2af8b9205b4b1c90b1aa5074",
        "msg" : "GlueGen JavaCallback: Release the associated data (natively) only after the actual toolkit setCallback call",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/java/com/jogamp/gluegen/JavaConfiguration.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg",
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java",
          "doc/GlueGen_Mapping.html",
          "doc/GlueGen_Mapping.md",
          "src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java"
        ],
        "commitId" : "8766fcfdce4dd864fe6764b063a0f9a4b17327c1",
        "timestamp" : 1688230657000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: Only produce default 'Key' class if keys are used, expose 'Key' to public and use it. Expose release*() and get*Keys() methods\u000a\u000aFurther we use a dedicated lock Object used in the Java implementation.\u000a\u000aTODO: Native static callback dispatch code shall\u000a- (also) acquire the lock\u000a- handle case where the data has been released already\u000ato render this solution thread-safe and data-race free\u000a",
        "date" : "2023-07-01 18:57:37 +0200",
        "id" : "8766fcfdce4dd864fe6764b063a0f9a4b17327c1",
        "msg" : "GlueGen JavaCallback: Only produce default 'Key' class if keys are used, expose 'Key' to public and use it. Expose release*() and get*Keys() methods",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaConfiguration.java"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/GlueGen_Mapping.html",
          "src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java",
          "doc/GlueGen_Mapping.md",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg"
        ],
        "commitId" : "df0895828e957d97f38510da36eade7a60691d96",
        "timestamp" : 1688232194000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: Use `SetCallback-KeyClass` if manually specified, even if no keys are defined!\u000a",
        "date" : "2023-07-01 19:23:14 +0200",
        "id" : "df0895828e957d97f38510da36eade7a60691d96",
        "msg" : "GlueGen JavaCallback: Use `SetCallback-KeyClass` if manually specified, even if no keys are defined!",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java",
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
        ],
        "commitId" : "679ce37046c3c68b97e56fb70ea7b316e9dba3ad",
        "timestamp" : 1688249578000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: Native callback: Check ObjectRef validity and synchronize (MonitorEnter/Exit) with same Object of Java impl. -> thread safe\u000a",
        "date" : "2023-07-02 00:12:58 +0200",
        "id" : "679ce37046c3c68b97e56fb70ea7b316e9dba3ad",
        "msg" : "GlueGen JavaCallback: Native callback: Check ObjectRef validity and synchronize (MonitorEnter/Exit) with same Object of Java impl. -> thread safe",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/GlueGen_Mapping.md",
          "doc/GlueGen_Mapping.html"
        ],
        "commitId" : "be2d31199f95ddbfa02530a021c8ab9611018f27",
        "timestamp" : 1688249822000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: Emphasize all methods are thread-safe\u000a",
        "date" : "2023-07-02 00:17:02 +0200",
        "id" : "be2d31199f95ddbfa02530a021c8ab9611018f27",
        "msg" : "GlueGen JavaCallback: Emphasize all methods are thread-safe",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/GlueGen_Mapping.md",
          "doc/GlueGen_Mapping.html"
        ],
        "commitId" : "760fb65d1d65fcac927e28de442f3b9bfd3d58f0",
        "timestamp" : 1688249941000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "doc/GlueGen_Mapping.md: Typo\u000a",
        "date" : "2023-07-02 00:19:01 +0200",
        "id" : "760fb65d1d65fcac927e28de442f3b9bfd3d58f0",
        "msg" : "doc/GlueGen_Mapping.md: Typo",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
        ],
        "commitId" : "98dca8cd3cffd3f9dc1c920bbe8e6349877447b7",
        "timestamp" : 1688263100000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: Document native callback use-after-free potential (caught), zero-mem @ release\u000a",
        "date" : "2023-07-02 03:58:20 +0200",
        "id" : "98dca8cd3cffd3f9dc1c920bbe8e6349877447b7",
        "msg" : "GlueGen JavaCallback: Document native callback use-after-free potential (caught), zero-mem @ release",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
        ],
        "commitId" : "1caceb4e72b2e99c5c458d37ebced0c51fe6bb70",
        "timestamp" : 1688268764000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: Native Callback: Reduce 'look-ahead' of read-after-free to critical lockObj only\u000a",
        "date" : "2023-07-02 05:32:44 +0200",
        "id" : "1caceb4e72b2e99c5c458d37ebced0c51fe6bb70",
        "msg" : "GlueGen JavaCallback: Native Callback: Reduce 'look-ahead' of read-after-free to critical lockObj only",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test2FuncPtr.java",
          "src/java/com/jogamp/gluegen/JavaEmitter.java"
        ],
        "commitId" : "e999ece8b0cd2ec440314f9a4c20812c694991ae",
        "timestamp" : 1688268853000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Struct [18]: Drop redundant 'static get*ElemCount() { return 1 }` for: isPrimitive && !isPointer && staticElemCount && maxOneElement\u000a",
        "date" : "2023-07-02 05:34:13 +0200",
        "id" : "e999ece8b0cd2ec440314f9a4c20812c694991ae",
        "msg" : "GlueGen Struct [18]: Drop redundant 'static get*ElemCount() { return 1 }` for: isPrimitive && !isPointer && staticElemCount && maxOneElement",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test2FuncPtr.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
        ],
        "commitId" : "3ee4a042aee86657128b834dad553baf83834612",
        "timestamp" : 1688298727000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "CMethodBindingEmitter JavaCallback: Use a friendly readable basename for errors\u000a",
        "date" : "2023-07-02 13:52:07 +0200",
        "id" : "3ee4a042aee86657128b834dad553baf83834612",
        "msg" : "CMethodBindingEmitter JavaCallback: Use a friendly readable basename for errors",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
        ],
        "commitId" : "88346aae69cc12c7f6932152697a854039517aa7",
        "timestamp" : 1688298775000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: CMethodBindingEmitter: Check lockObj for NULL before GetObjectRefType(), avoid certain (older) Hotspot issues\u000a",
        "date" : "2023-07-02 13:52:55 +0200",
        "id" : "88346aae69cc12c7f6932152697a854039517aa7",
        "msg" : "GlueGen JavaCallback: CMethodBindingEmitter: Check lockObj for NULL before GetObjectRefType(), avoid certain (older) Hotspot issues",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java",
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
        ],
        "commitId" : "9b9aa128d92e9512cb00559e99dce9c8de726ed7",
        "timestamp" : 1688298856000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: CMethodBindingEmitter: Check, describe & clear exception if occurring - we must assume async off-thread source in general\u000a\u000aCovered by unit tests now\u000a",
        "date" : "2023-07-02 13:54:16 +0200",
        "id" : "9b9aa128d92e9512cb00559e99dce9c8de726ed7",
        "msg" : "GlueGen JavaCallback: CMethodBindingEmitter: Check, describe & clear exception if occurring - we must assume async off-thread source in general",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/CCodeUnit.java",
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
        ],
        "commitId" : "6d53b4b1dd07006e7af0e540b2c2e6ee6e1746d5",
        "timestamp" : 1688300764000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: Unify native 'T_JavaCallbackGlueData' typedef struct\u000a",
        "date" : "2023-07-02 14:26:04 +0200",
        "id" : "6d53b4b1dd07006e7af0e540b2c2e6ee6e1746d5",
        "msg" : "GlueGen JavaCallback: Unify native 'T_JavaCallbackGlueData' typedef struct",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CCodeUnit.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java",
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java",
          "src/java/com/jogamp/gluegen/procaddress/ProcAddressJavaMethodBindingEmitter.java",
          "doc/GlueGen_Mapping.md",
          "src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java",
          "README.md",
          "src/java/com/jogamp/gluegen/JavaConfiguration.java",
          "src/java/com/jogamp/gluegen/JavaType.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c",
          "src/java/com/jogamp/gluegen/FunctionEmitter.java",
          "src/java/com/jogamp/gluegen/CCodeUnit.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h",
          "src/java/com/jogamp/gluegen/procaddress/ProcAddressCMethodBindingEmitter.java",
          "doc/GlueGen_Mapping.html",
          "www/index.html"
        ],
        "commitId" : "a599b852a041ba3d80b43981589ac1390979dac2",
        "timestamp" : 1688463389000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: Revised: Static Java callback dispatcher, dropping native heap, support Struct UserParam ...\u000a\u000aImplementation now generates a static Java callback dispatcher for each defined SetCallbackFunction, which gets invoked by the generated native static counterpart with all arguments required.\u000a\u000aThe static callback utilizes its own synchronization for thread-safety and fetches the required data set stored at SetCallbackFunction to dispatch the call to the users' CallbackFunction.\u000aIn case the callback has been removed already, the static callback simply bails out quietly.\u000a\u000aThe native code does not create, release or manage heap memory and therefore is considered safe.\u000a\u000a+++\u000a\u000aFurther Struct Type UserParam are now supported including Heterogeneous UserParam mapping (read GlueGen_Mapping.*).\u000a\u000a+++\u000a\u000aCleaned up code by extracting all JavaCallback emitter code into JavaCallbackEmitter class in one place,\u000aleaving JavaMethodbindingEmitter and CMethodbindingEmitter mostly in their original stage (non-convoluted).\u000a\u000aIn this regard, I had to refactor a few function, i.e. moving CMethodbindingEmitter.getJNIMangledArg(..)\u000ainto JavaType.appendDescriptor(..) and JavaType.appendJNIDescriptor(..) while reusing the toJNIMethodDescriptor(..) conversion.\u000a\u000aTest4JavaCallback covers and passes all cases.\u000a",
        "date" : "2023-07-04 11:36:29 +0200",
        "id" : "a599b852a041ba3d80b43981589ac1390979dac2",
        "msg" : "GlueGen JavaCallback: Revised: Static Java callback dispatcher, dropping native heap, support Struct UserParam ...",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaType.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CCodeUnit.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/procaddress/ProcAddressJavaMethodBindingEmitter.java"
          },
          {
            "editType" : "add",
            "file" : "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "README.md"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/FunctionEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaConfiguration.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/procaddress/ProcAddressCMethodBindingEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          },
          {
            "editType" : "edit",
            "file" : "www/index.html"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaType.java"
        ],
        "commitId" : "8cc90ef6a61b9686cc287bf34a3fcba924276c01",
        "timestamp" : 1688466171000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaType.appendDescriptor(..): Fix regression: Must return a vanilla descriptor ('/' not '_') i.e. non JNI method-name descriptor to avoid double conversion\u000a",
        "date" : "2023-07-04 12:22:51 +0200",
        "id" : "8cc90ef6a61b9686cc287bf34a3fcba924276c01",
        "msg" : "GlueGen JavaType.appendDescriptor(..): Fix regression: Must return a vanilla descriptor ('/' not '_') i.e. non JNI method-name descriptor to avoid double conversion",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaType.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/GlueGen_Mapping.md",
          "doc/GlueGen_Mapping.html"
        ],
        "commitId" : "0c4067379e5e12617b9a4530e607ca34762b54e3",
        "timestamp" : 1688467795000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "doc/GlueGen_Mapping.md: Quote `void*` correctly ..\u000a",
        "date" : "2023-07-04 12:49:55 +0200",
        "id" : "0c4067379e5e12617b9a4530e607ca34762b54e3",
        "msg" : "doc/GlueGen_Mapping.md: Quote `void*` correctly ..",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/CCodeUnit.java",
          "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java",
          "doc/GlueGen_Mapping.html",
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "doc/GlueGen_Mapping.md"
        ],
        "commitId" : "ae4c2c3e59ed92caa6f0e18360b7236e50899bf6",
        "timestamp" : 1688544256000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback/LibraryOnLoad: Always include the `libraryBasename` agnostic 'emitJNIEnvDecl()' (declaration) in JNI code; Detach the thread from the JVM if newly attach in callback!\u000a",
        "date" : "2023-07-05 10:04:16 +0200",
        "id" : "ae4c2c3e59ed92caa6f0e18360b7236e50899bf6",
        "msg" : "GlueGen JavaCallback/LibraryOnLoad: Always include the `libraryBasename` agnostic 'emitJNIEnvDecl()' (declaration) in JNI code; Detach the thread from the JVM if newly attach in callback!",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CCodeUnit.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/manual/index.html",
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/java/com/jogamp/gluegen/JavaConfiguration.java",
          "src/java/com/jogamp/gluegen/JavaType.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg",
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
        ],
        "commitId" : "5ceca8550b82591a6a2661a26d3e0d5e6e3e15ff",
        "timestamp" : 1688545308000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen: Add 'PascalString' string semantics (length + value-ptr), added prelim code for JavaCallback use-case emitBodyMapCToJNIType()\u000a\u000aIt is common in toolkit APIs that a string might not be passed as a 'nul' terminated (EOS) C string,\u000abut as a Pascal string with a given length argument.\u000a\u000aA C string is specied as\u000a  ArgumentIsString alEventCallbackInject 3\u000awhile allowing multiple indices ..\u000a\u000aA Pascal string can be specified as\u000a  ArgumentIsPascalString ALEVENTPROCSOFT 3 4\u000awhile allowing multiple indice-tuples for length and value ..\u000a\u000aThe tuple consist of the length agrument-index first (usually an int)\u000afollowed by the value argument-index (usually a 'char*').\u000a\u000a+++\u000a\u000aCMethodBindingEmitter.emitBodyMapCToJNIType(), where PascalString is implemented,\u000ais currently being used for\u000a- JNI return statement (no PascalString impact possible)\u000a- JavaCallback C type -> JNI type, PascalString impacting\u000a",
        "date" : "2023-07-05 10:21:48 +0200",
        "id" : "5ceca8550b82591a6a2661a26d3e0d5e6e3e15ff",
        "msg" : "GlueGen: Add 'PascalString' string semantics (length + value-ptr), added prelim code for JavaCallback use-case emitBodyMapCToJNIType()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/manual/index.html"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaConfiguration.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaType.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/manual/index.html"
        ],
        "commitId" : "56d3cbcf7a6a6f83706962dd24846906fa2bb420",
        "timestamp" : 1688549576000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Manual: Refine `ArgumentIsPascalString`\u000a",
        "date" : "2023-07-05 11:32:56 +0200",
        "id" : "56d3cbcf7a6a6f83706962dd24846906fa2bb420",
        "msg" : "Manual: Refine `ArgumentIsPascalString`",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/manual/index.html"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java"
        ],
        "commitId" : "5b867d0f90a43a02e1fbd03fb1ed588a391806eb",
        "timestamp" : 1688550086000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: Fix `staticCBClazz*` initial setup (only), using a NewGlobalRef() for jclass (not required for static jmethodID)\u000a\u000aAlso use a longer jclass argument name 'clazz' -> 'staticCBClazz' to avoid potential collisions\u000a",
        "date" : "2023-07-05 11:41:26 +0200",
        "id" : "5b867d0f90a43a02e1fbd03fb1ed588a391806eb",
        "msg" : "GlueGen JavaCallback: Fix `staticCBClazz*` initial setup (only), using a NewGlobalRef() for jclass (not required for static jmethodID)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java",
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/java/com/jogamp/gluegen/JavaConfiguration.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h",
          "doc/GlueGen_Mapping.html",
          "doc/GlueGen_Mapping.md"
        ],
        "commitId" : "3ed3e9887c459169b807165c9df2ae2bc2990a31",
        "timestamp" : 1688632530000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: Remove ambiguity: Config JavaCallbackDef/JavaCallbackKey: Always define both parameter indices; emitJavaStaticCallback(): Use cbFuncBinding and cbFuncKeyIndices from callback parameter to build key\u000a",
        "date" : "2023-07-06 10:35:30 +0200",
        "id" : "3ed3e9887c459169b807165c9df2ae2bc2990a31",
        "msg" : "GlueGen JavaCallback: Remove ambiguity: Config JavaCallbackDef/JavaCallbackKey: Always define both parameter indices; emitJavaStaticCallback(): Use cbFuncBinding and cbFuncKeyIndices from callback parameter to build key",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaConfiguration.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/GlueGen_Mapping.md",
          "doc/GlueGen_Mapping.html"
        ],
        "commitId" : "4267e223e33acdc098cc5b4371765f8e31b96eff",
        "timestamp" : 1688636526000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback Doc: Remove reasoning (avoiding ambiguity) to CallbackFunction parameter index\u000a",
        "date" : "2023-07-06 11:42:06 +0200",
        "id" : "4267e223e33acdc098cc5b4371765f8e31b96eff",
        "msg" : "GlueGen JavaCallback Doc: Remove reasoning (avoiding ambiguity) to CallbackFunction parameter index",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java",
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2-CustomJavaIfCode.java.stub",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2-CustomJavaImplCode.java.stub",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h",
          "doc/GlueGen_Mapping.html",
          "src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java",
          "doc/GlueGen_Mapping.md"
        ],
        "commitId" : "701311d6fc507b1e21681dd60c6851fbc50c2304",
        "timestamp" : 1688773427000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: Add capability to have UserParam as (part of) key\u000a\u000aResolves use case where UserParam reflects e.g. a context (AL_SOFT_events)\u000aand will be (part of) the key mapping.\u000a\u000aImplementation required an additional userParamID -> userParam mapping for default Object/ID usage.\u000a\u000aAdded 2 test cases.\u000a",
        "date" : "2023-07-08 01:43:47 +0200",
        "id" : "701311d6fc507b1e21681dd60c6851fbc50c2304",
        "msg" : "GlueGen JavaCallback: Add capability to have UserParam as (part of) key",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2-CustomJavaIfCode.java.stub"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2-CustomJavaImplCode.java.stub"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/manual/index.html"
        ],
        "commitId" : "63ed5f7676bc46ee03db1a6d27c5ce86fcf6a597",
        "timestamp" : 1688774924000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Manual: Fix ArgumentIsPascalString\u000a",
        "date" : "2023-07-08 02:08:44 +0200",
        "id" : "63ed5f7676bc46ee03db1a6d27c5ce86fcf6a597",
        "msg" : "Manual: Fix ArgumentIsPascalString",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/manual/index.html"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java",
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2-CustomJavaIfCode.java.stub",
          "src/java/com/jogamp/gluegen/JavaConfiguration.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2-CustomJavaImplCode.java.stub",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg",
          "doc/GlueGen_Mapping.html",
          "doc/GlueGen_Mapping.md"
        ],
        "commitId" : "0ea6688e41c31b0e2c8dba73582c935562885b44",
        "timestamp" : 1688999976000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen JavaCallback: Add optional custom 'Callback-UserParamClass` for non-compound `UserParam` types to have more clarity in resulting API\u000a",
        "date" : "2023-07-10 16:39:36 +0200",
        "id" : "0ea6688e41c31b0e2c8dba73582c935562885b44",
        "msg" : "GlueGen JavaCallback: Add optional custom 'Callback-UserParamClass` for non-compound `UserParam` types to have more clarity in resulting API",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaConfiguration.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2-CustomJavaIfCode.java.stub"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2-CustomJavaImplCode.java.stub"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/GlueGen_Mapping.md",
          "doc/GlueGen_Mapping.html"
        ],
        "commitId" : "60277196f721875a4114e065fdf1ba24521811be",
        "timestamp" : 1689014834000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "doc/GlueGen_Mapping.md: Typos 'UserParam' -> 'UserParamClass'\u000a",
        "date" : "2023-07-10 20:47:14 +0200",
        "id" : "60277196f721875a4114e065fdf1ba24521811be",
        "msg" : "doc/GlueGen_Mapping.md: Typos 'UserParam' -> 'UserParamClass'",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/GlueGen_Mapping.md",
          "doc/GlueGen_Mapping.html"
        ],
        "commitId" : "a03df850033d11386471534840a83bbac81304df",
        "timestamp" : 1689015095000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "doc/GlueGen_Mapping.md: Typos 'UserParam' -> 'UserParamClass' (2 more occassions)\u000a",
        "date" : "2023-07-10 20:51:35 +0200",
        "id" : "a03df850033d11386471534840a83bbac81304df",
        "msg" : "doc/GlueGen_Mapping.md: Typos 'UserParam' -> 'UserParamClass' (2 more occassions)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/GlueGen_Mapping.md",
          "doc/GlueGen_Mapping.html"
        ],
        "commitId" : "fe21c87b24842d67df686b7c48fa36ed65a9afc9",
        "timestamp" : 1689015808000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "doc/GlueGen_Mapping.md: Using 'UserParamClass' .. grammar (3 commits for 1 discount today)\u000a\u000aCough cough .. should have reviewed the whole thing once. Must be the summer distraction causing premature commits. Sorry about that :)\u000a",
        "date" : "2023-07-10 21:03:28 +0200",
        "id" : "fe21c87b24842d67df686b7c48fa36ed65a9afc9",
        "msg" : "doc/GlueGen_Mapping.md: Using 'UserParamClass' .. grammar (3 commits for 1 discount today)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/test1.h",
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test1.c"
        ],
        "commitId" : "380969bbf0b7746ab245b7d7d177243092fb2c34",
        "timestamp" : 1690816974000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/mfery",
          "fullName" : "mfery"
        },
        "authorEmail" : "mfery@ankama.com",
        "comment" : "feat(generation): Add setter generation for not constant and not opaque compound attribute\u000a",
        "date" : "2023-07-31 17:22:54 +0200",
        "id" : "380969bbf0b7746ab245b7d7d177243092fb2c34",
        "msg" : "feat(generation): Add setter generation for not constant and not opaque compound attribute",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test1.h"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test1.c"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java",
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/java/com/jogamp/gluegen/JavaConfiguration.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg",
          "src/java/com/jogamp/gluegen/JavaType.java",
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h"
        ],
        "commitId" : "ad69716fda64b517c33ed847c4b215ea398aac99",
        "timestamp" : 1690817141000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/mfery",
          "fullName" : "mfery"
        },
        "authorEmail" : "mfery@ankama.com",
        "comment" : "feat(callbackGenerator): Add basic management of callback without userData\u000a",
        "date" : "2023-07-31 17:25:41 +0200",
        "id" : "ad69716fda64b517c33ed847c4b215ea398aac99",
        "msg" : "feat(callbackGenerator): Add basic management of callback without userData",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaConfiguration.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaType.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/GlueGen_Mapping.md"
        ],
        "commitId" : "165e3b87b2d3abbb83e9fe5421ac63931b41c793",
        "timestamp" : 1690907832000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/mfery",
          "fullName" : "mfery"
        },
        "authorEmail" : "mfery@ankama.com",
        "comment" : "doc/GlueGen_Mapping.md: Add some documentation with JavaCallback without userData\u000a",
        "date" : "2023-08-01 18:37:12 +0200",
        "id" : "165e3b87b2d3abbb83e9fe5421ac63931b41c793",
        "msg" : "doc/GlueGen_Mapping.md: Add some documentation with JavaCallback without userData",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaEmitter.java"
        ],
        "commitId" : "9bf13be7d8a144be18dd313e8ed7658f25b9c1d0",
        "timestamp" : 1691062314000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/mfery",
          "fullName" : "mfery"
        },
        "authorEmail" : "mfery@ankama.com",
        "comment" : "feat(arrayAccessor): Allow to use ReturnedArrayLength with getter associated with field with name in PascalCase or camelCase\u000a",
        "date" : "2023-08-03 13:31:54 +0200",
        "id" : "9bf13be7d8a144be18dd313e8ed7658f25b9c1d0",
        "msg" : "feat(arrayAccessor): Allow to use ReturnedArrayLength with getter associated with field with name in PascalCase or camelCase",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
        ],
        "commitId" : "1e78cc429f148aa200ae487bacb6d4a9b6b7c8d9",
        "timestamp" : 1691090184000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "CMethodBindingEmitter.emitBodyMapCToJNIType(..): Add proper intendation to NIO ByteBuffer generation (isNIOBuffer || isCompoundTypeWrapper)\u000a",
        "date" : "2023-08-03 21:16:24 +0200",
        "id" : "1e78cc429f148aa200ae487bacb6d4a9b6b7c8d9",
        "msg" : "CMethodBindingEmitter.emitBodyMapCToJNIType(..): Add proper intendation to NIO ByteBuffer generation (isNIOBuffer || isCompoundTypeWrapper)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java"
        ],
        "commitId" : "910ce385d5e56eeb1fd7f81678042f19f76b1870",
        "timestamp" : 1691090316000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "JavaCallbackEmitter.{emitCSetFuncPreCall, emitCAdditionalCode}(): Group 'userParamDefined' case (cleanup)\u000a",
        "date" : "2023-08-03 21:18:36 +0200",
        "id" : "910ce385d5e56eeb1fd7f81678042f19f76b1870",
        "msg" : "JavaCallbackEmitter.{emitCSetFuncPreCall, emitCAdditionalCode}(): Group 'userParamDefined' case (cleanup)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java"
        ],
        "commitId" : "711533cef82cab317662e84f1d1719bdbeca4253",
        "timestamp" : 1691090608000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "JavaCallbackEmitter.{emitCSetFuncPreCall, emitCAdditionalCode, emitJavaCallbackBodyPassJavaArguments}(): Use capitalized sub-string 'baseArgName' for (static) callback related entities\u000a",
        "date" : "2023-08-03 21:23:28 +0200",
        "id" : "711533cef82cab317662e84f1d1719bdbeca4253",
        "msg" : "JavaCallbackEmitter.{emitCSetFuncPreCall, emitCAdditionalCode, emitJavaCallbackBodyPassJavaArguments}(): Use capitalized sub-string 'baseArgName' for (static) callback related entities",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java",
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
        ],
        "commitId" : "a51c63b8b054eec3393d4c340cf3cefe561a01b1",
        "timestamp" : 1691098549000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "JavaCallbackEmitter.{emitCSetFuncPreCall, emitCAdditionalCode, emitJavaCallbackBodyPassJavaArguments}(): Fix exclusion of ad-hoc compound conversion for userParam\u000a\u000aPassed CMethodBindingEmitter denotes the callback-function, including the binding.\u000a\u000aThe new iteration to handle the ad-hoc compound conversion,\u000aintroduced in commit ad69716fda64b517c33ed847c4b215ea398aac99 'callback without userData',\u000aiterates over the callback-function argument list.\u000aHence it shall only exclude the ad-hoc compound conversion\u000aif index != info.cbFuncUserParamIdx.\u000a\u000aDropping the addition exclusion 'i != info.setFuncUserParamIdx'.\u000a",
        "date" : "2023-08-03 23:35:49 +0200",
        "id" : "a51c63b8b054eec3393d4c340cf3cefe561a01b1",
        "msg" : "JavaCallbackEmitter.{emitCSetFuncPreCall, emitCAdditionalCode, emitJavaCallbackBodyPassJavaArguments}(): Fix exclusion of ad-hoc compound conversion for userParam",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java",
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
        ],
        "commitId" : "e9a2294b3f18bb4c4f38347ccf347058cb4642b3",
        "timestamp" : 1691099874000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "JavaCallbackEmitter.emitCSetFuncPreCall(): Drop redundant arg 'CMethodBindingEmitter jcbFuncCMethodEmitter', use local 'info.cbFuncBinding'\u000a\u000aWas added in commit ad69716fda64b517c33ed847c4b215ea398aac99 'callback without userData',\u000awhile adding ad-hoc compound conversion.\u000a",
        "date" : "2023-08-03 23:57:54 +0200",
        "id" : "e9a2294b3f18bb4c4f38347ccf347058cb4642b3",
        "msg" : "JavaCallbackEmitter.emitCSetFuncPreCall(): Drop redundant arg 'CMethodBindingEmitter jcbFuncCMethodEmitter', use local 'info.cbFuncBinding'",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java"
        ],
        "commitId" : "e729d53c8384757b6a5ada2491c7cd4ad07c8bfe",
        "timestamp" : 1691100456000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "JavaCallbackEmitter.emitJavaCallbackBodyPassJavaArguments(): Drop redundant arg 'MethodBinding jcbFuncCMethodBinding', use local 'info.cbFuncBinding'\u000a\u000aSince emitJavaCallbackBodyPassJavaArguments() is private now,\u000aonly use case is to handle info.cbFuncBinding and we can drop the redundant argument.\u000a\u000aSimilar to cleanup commit e9a2294b3f18bb4c4f38347ccf347058cb4642b3\u000a",
        "date" : "2023-08-04 00:07:36 +0200",
        "id" : "e729d53c8384757b6a5ada2491c7cd4ad07c8bfe",
        "msg" : "JavaCallbackEmitter.emitJavaCallbackBodyPassJavaArguments(): Drop redundant arg 'MethodBinding jcbFuncCMethodBinding', use local 'info.cbFuncBinding'",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java"
        ],
        "commitId" : "88941c41dbb134984fd0857db9ea0729d9306bbb",
        "timestamp" : 1691100598000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "JavaCallbackEmitter.emitCAdditionalCode(): Use `info.cbFuncBinding` locally and passed 'jcbFuncCMethodEmitter' only to invoke CMethodBindingEmitter.emitBodyMapCToJNIType(..)\u000a\u000aPassed 'jcbFuncCMethodEmitter' only used to access CMethodBindingEmitter.emitBodyMapCToJNIType(int, boolean), a non-ideal hack! (FIXME)\u000a\u000aGeneral processing shall use the local `info.cbFuncBinding`.\u000a",
        "date" : "2023-08-04 00:09:58 +0200",
        "id" : "88941c41dbb134984fd0857db9ea0729d9306bbb",
        "msg" : "JavaCallbackEmitter.emitCAdditionalCode(): Use `info.cbFuncBinding` locally and passed 'jcbFuncCMethodEmitter' only to invoke CMethodBindingEmitter.emitBodyMapCToJNIType(..)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaConfiguration.java",
          "src/java/com/jogamp/gluegen/JavaEmitter.java"
        ],
        "commitId" : "d4e8ecc3b4f68b86d95ec951971a0fea20217988",
        "timestamp" : 1691100882000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "JavaEmitter: Encapsulate 'needsJavaCallbackCode' query in JavaConfiguration. TBD: Is this even required?\u000a\u000a- needsIntermediateOperation -> needsJavaCallbackCode\u000a- Use JavaConfiguration.requiresJavaCallbackCode(..)\u000a\u000aTBD: Is this even required?\u000aAs far as I see, the non-userParam callback case adds no additional code requirements.\u000aBoth, callback with and without userParam shares same code path\u000aand the respective native static fields.\u000aOnly that the non-userParam code path adds additional native static fields,\u000abut all code sections are produced in both cases.\u000a",
        "date" : "2023-08-04 00:14:42 +0200",
        "id" : "d4e8ecc3b4f68b86d95ec951971a0fea20217988",
        "msg" : "JavaEmitter: Encapsulate 'needsJavaCallbackCode' query in JavaConfiguration. TBD: Is this even required?",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaConfiguration.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java"
        ],
        "commitId" : "3e249796e7b42033072aeda438d987601939db44",
        "timestamp" : 1691101088000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Fix & Enhance Test4JavaCallback for non-userParam chapter12*: Fix ad-hoc compound equals and add chapter12b for additional parameter with different order\u000a\u000a- ad-hoc compound equals must compare value, since native code creates a new class instance from native struct\u000a\u000a- Add additional case with addition callback argument for further validation\u000a",
        "date" : "2023-08-04 00:18:08 +0200",
        "id" : "3e249796e7b42033072aeda438d987601939db44",
        "msg" : "Fix & Enhance Test4JavaCallback for non-userParam chapter12*: Fix ad-hoc compound equals and add chapter12b for additional parameter with different order",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/java/com/jogamp/gluegen/procaddress/ProcAddressEmitter.java",
          "src/java/com/jogamp/gluegen/GlueEmitter.java",
          "src/java/com/jogamp/gluegen/DebugEmitter.java",
          "src/java/com/jogamp/gluegen/GlueGen.java"
        ],
        "commitId" : "b08c61935daa0191f4ec59c6998bc56dae18e54d",
        "timestamp" : 1691139125000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/mfery",
          "fullName" : "mfery"
        },
        "authorEmail" : "mfery@ankama.com",
        "comment" : "feat(callbackGenerator): Prevent generation of CallBack interface if setter related isn't present\u000a",
        "date" : "2023-08-04 10:52:05 +0200",
        "id" : "b08c61935daa0191f4ec59c6998bc56dae18e54d",
        "msg" : "feat(callbackGenerator): Prevent generation of CallBack interface if setter related isn't present",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/DebugEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/GlueGen.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/GlueEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/procaddress/ProcAddressEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
        ],
        "commitId" : "97b574914f7f961458f6668495c2fef70b910549",
        "timestamp" : 1691139611000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "CMethodBindingEmitter.emitBodyPassCArguments(): Either pass STRING_CHARS_PREFIX or javaCallbackEmitter.emitCOptArgumentSuffix(..)\u000a\u000aWe only produce one variant in code.\u000a\u000aUse case: String type as userParam (barely tested and not useful)\u000a",
        "date" : "2023-08-04 11:00:11 +0200",
        "id" : "97b574914f7f961458f6668495c2fef70b910549",
        "msg" : "CMethodBindingEmitter.emitBodyPassCArguments(): Either pass STRING_CHARS_PREFIX or javaCallbackEmitter.emitCOptArgumentSuffix(..)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CMethodBindingEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaEmitter.java"
        ],
        "commitId" : "1250d960d8bf2ee9ab8726a18a837115d6930815",
        "timestamp" : 1691139828000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "JavaEmitter.bindFunction(): Add JavaCallback userParam non-void case (i.e. 'String')\u000a\u000aUse case: String type as userParam, barely tested and not useful.\u000aHowever, let's pass through all cases in our code.\u000a\u000aAdded LOG INFO for mapped types.\u000a",
        "date" : "2023-08-04 11:03:48 +0200",
        "id" : "1250d960d8bf2ee9ab8726a18a837115d6930815",
        "msg" : "JavaEmitter.bindFunction(): Add JavaCallback userParam non-void case (i.e. 'String')",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg"
        ],
        "commitId" : "3ad38748d7ef50a3631506eabcd3ae3417faa84d",
        "timestamp" : 1691140413000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "JavaCallbackEmitter.emitJavaKeyClass(): Use directBufferAddress for compound types in equals and hashCode, i.e. use memory identity\u000a\u000aUse case is having a compound-type as userParam, which also acts as key, see MessageCallback13, Test4JavaCallback.chapter13().\u000a\u000aThe Java compound instance is re-created using the actual identical native memory (address),\u000awhich has been stored or passed in the native toolkit.\u000a",
        "date" : "2023-08-04 11:13:33 +0200",
        "id" : "3ad38748d7ef50a3631506eabcd3ae3417faa84d",
        "msg" : "JavaCallbackEmitter.emitJavaKeyClass(): Use directBufferAddress for compound types in equals and hashCode, i.e. use memory identity",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.c"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaConfiguration.java",
          "src/java/com/jogamp/gluegen/JavaEmitter.java"
        ],
        "commitId" : "927bbc7160a812bb29c0e7120d4a3009bfb13bbf",
        "timestamp" : 1691142383000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "JavaCallback: Remove non-UserParam JavaConfiguration.requiresJavaCallbackCode()\u000a\u000aMethod was encapsulated in commit d4e8ecc3b4f68b86d95ec951971a0fea20217988\u000aand questioned whether it is required.\u000a\u000aThe non-userParam callback case adds no additional code requirements.\u000aBoth, callback with and without userParam shares same code path\u000aand the respective native static fields.\u000aOnly that the non-userParam code path adds additional native static fields,\u000abut all code sections are produced in both cases.\u000a\u000aPassed all unit tests.\u000a",
        "date" : "2023-08-04 11:46:23 +0200",
        "id" : "927bbc7160a812bb29c0e7120d4a3009bfb13bbf",
        "msg" : "JavaCallback: Remove non-UserParam JavaConfiguration.requiresJavaCallbackCode()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaConfiguration.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/GlueGen_Mapping.md",
          "doc/GlueGen_Mapping.html"
        ],
        "commitId" : "9b0335ea91c39469b586b4005dfae35d4b2cc84b",
        "timestamp" : 1691143006000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "doc/GlueGen_Mapping.md: Shorten UserParamIndex '<0' to disable 'UserParam' and produce html page\u000a",
        "date" : "2023-08-04 11:56:46 +0200",
        "id" : "9b0335ea91c39469b586b4005dfae35d4b2cc84b",
        "msg" : "doc/GlueGen_Mapping.md: Shorten UserParamIndex '<0' to disable 'UserParam' and produce html page",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2p2.cfg",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test4p1JavaCallback.java",
          "make/scripts/runtest.sh",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2-gluegen.cfg",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test2FuncPtr.java",
          "doc/GlueGen_Mapping.md",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test2p2FuncPtr.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test2p1FuncPtr.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg",
          "src/antlr/com/jogamp/gluegen/jgram/JavaParser.g",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test3PtrStorage.java",
          "doc/GlueGen_Mapping.html",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2p1.cfg",
          "src/junit/com/jogamp/gluegen/test/junit/generation/BaseTest2FuncPtr.java",
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/BaseTest3PtrStorage.java",
          "make/build-test.xml",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test3p2PtrStorage.java",
          "src/java/com/jogamp/gluegen/JavaConfiguration.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test4p2JavaCallback.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/BaseTest4JavaCallback.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test3p1PtrStorage.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/BindingJNILibLoader.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2-common.cfg"
        ],
        "commitId" : "2abb40b0ca9a6a06bdbe3e66b4235301ed15c693",
        "timestamp" : 1691170668000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/mfery",
          "fullName" : "mfery"
        },
        "authorEmail" : "mfery@ankama.com",
        "comment" : "wip(test_case): Example of test case for issue related of 927bbc7160a812bb29c0e7120d4a3009bfb13bbf\u000a\u000aAlmost done\u000a",
        "date" : "2023-08-04 19:37:48 +0200",
        "id" : "2abb40b0ca9a6a06bdbe3e66b4235301ed15c693",
        "msg" : "wip(test_case): Example of test case for issue related of 927bbc7160a812bb29c0e7120d4a3009bfb13bbf",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test2FuncPtr.java"
          },
          {
            "editType" : "delete",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.cfg"
          },
          {
            "editType" : "edit",
            "file" : "src/antlr/com/jogamp/gluegen/jgram/JavaParser.g"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2p1.cfg"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test4p2JavaCallback.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaCallbackEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "make/build-test.xml"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BaseTest2FuncPtr.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test3p2PtrStorage.java"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test2p2FuncPtr.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test3p1PtrStorage.java"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BindingJNILibLoader.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test4p1JavaCallback.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test2p1FuncPtr.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2-common.cfg"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaConfiguration.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2-gluegen.cfg"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BaseTest3PtrStorage.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BaseTest4JavaCallback.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "delete",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test3PtrStorage.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/runtest.sh"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2p2.cfg"
          },
          {
            "editType" : "delete",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test4JavaCallback.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaConfiguration.java",
          "src/java/com/jogamp/gluegen/JavaEmitter.java"
        ],
        "commitId" : "4a8f15d29120e7744eca75f6d99bae6a7431749e",
        "timestamp" : 1691172143000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Revert \"JavaCallback: Remove non-UserParam JavaConfiguration.requiresJavaCallbackCode()\"\u000a\u000aThis reverts commit 927bbc7160a812bb29c0e7120d4a3009bfb13bbf.\u000a",
        "date" : "2023-08-04 20:02:23 +0200",
        "id" : "4a8f15d29120e7744eca75f6d99bae6a7431749e",
        "msg" : "Revert \"JavaCallback: Remove non-UserParam JavaConfiguration.requiresJavaCallbackCode()\"",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaConfiguration.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2-if.cfg",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2-gluegen.cfg",
          "make/build-test.xml"
        ],
        "commitId" : "8b4d36e543a14c404c73942840f15a4d81d83990",
        "timestamp" : 1691194245000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "WIP JavaCallback Tests: Rename test2-gluegen.cfg -> test2-if.cfg\u000a",
        "date" : "2023-08-05 02:10:45 +0200",
        "id" : "8b4d36e543a14c404c73942840f15a4d81d83990",
        "msg" : "WIP JavaCallback Tests: Rename test2-gluegen.cfg -> test2-if.cfg",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/build-test.xml"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2-if.cfg"
          },
          {
            "editType" : "delete",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2-gluegen.cfg"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/build-test.xml"
        ],
        "commitId" : "e52b7022e31022b92f4aaf5fb2e9457d767682c8",
        "timestamp" : 1691194342000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "WIP JavaCallback Tests: Fix: Link library Bindingtest2p1 against library test2 not test1\u000a",
        "date" : "2023-08-05 02:12:22 +0200",
        "id" : "e52b7022e31022b92f4aaf5fb2e9457d767682c8",
        "msg" : "WIP JavaCallback Tests: Fix: Link library Bindingtest2p1 against library test2 not test1",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/build-test.xml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2-common.cfg"
        ],
        "commitId" : "06318d44c94c494fe6862ac8cf97fca799d05800",
        "timestamp" : 1691194407000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "WIP JavaCallback Tests: Fix: test2-CustomJavaImplCode.java.stub must be 'IncludeAs' for both implementations, Bindingtest2p1Impl and Bindingtest2p2Impl\u000a",
        "date" : "2023-08-05 02:13:27 +0200",
        "id" : "06318d44c94c494fe6862ac8cf97fca799d05800",
        "msg" : "WIP JavaCallback Tests: Fix: test2-CustomJavaImplCode.java.stub must be 'IncludeAs' for both implementations, Bindingtest2p1Impl and Bindingtest2p2Impl",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2-common.cfg"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2p2.cfg"
        ],
        "commitId" : "fbd065be8a5f36455a335c20549d729537f5d4b0",
        "timestamp" : 1691194442000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "WIP JavaCallback Tests: Fix typo in 'CustomJavaCode' Java class target name\u000a",
        "date" : "2023-08-05 02:14:02 +0200",
        "id" : "fbd065be8a5f36455a335c20549d729537f5d4b0",
        "msg" : "WIP JavaCallback Tests: Fix typo in 'CustomJavaCode' Java class target name",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2p2.cfg"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test4p2JavaCallback.java"
        ],
        "commitId" : "94c68465331b10f548727483437a3f3b575ee287",
        "timestamp" : 1691194863000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "WIP JavaCallback Tests: Fix Test4p2JavaCallback.chapter__TestLoadLibrary() issue loadBindingtest2p2() not loadBindingtest2p1()\u000a",
        "date" : "2023-08-05 02:21:03 +0200",
        "id" : "94c68465331b10f548727483437a3f3b575ee287",
        "msg" : "WIP JavaCallback Tests: Fix Test4p2JavaCallback.chapter__TestLoadLibrary() issue loadBindingtest2p2() not loadBindingtest2p1()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test4p2JavaCallback.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test2p1FuncPtr.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test3p1PtrStorage.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test4p1JavaCallback.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass.java"
        ],
        "commitId" : "2e8b69496221f242fee762140418008a9a862d3d",
        "timestamp" : 1691194985000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen Code Unit Tests using a statically linked tool library do not need to load the tool library dynamically, hence dropped.\u000a\u000aJust ensure GlueGen itself is initializes via Platform.initSingleton() in common BaseClass\u000a",
        "date" : "2023-08-05 02:23:05 +0200",
        "id" : "2e8b69496221f242fee762140418008a9a862d3d",
        "msg" : "GlueGen Code Unit Tests using a statically linked tool library do not need to load the tool library dynamically, hence dropped.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test3p1PtrStorage.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test2p1FuncPtr.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test4p1JavaCallback.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/JavaConfiguration.java"
        ],
        "commitId" : "f0da1ec6f5ac68de4c1ede1fd54a71b656fe5d75",
        "timestamp" : 1691195057000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "JavaConfiguration.requiresJavaCallbackCode() shall return true for all JavaCallback cases no just non-userParam case\u000a\u000aAdditional body code for JavaCallback is required for methods it.\u000a",
        "date" : "2023-08-05 02:24:17 +0200",
        "id" : "f0da1ec6f5ac68de4c1ede1fd54a71b656fe5d75",
        "msg" : "JavaConfiguration.requiresJavaCallbackCode() shall return true for all JavaCallback cases no just non-userParam case",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaConfiguration.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/BaseTest2FuncPtr.java",
          "src/junit/com/jogamp/common/net/AssetURLConnectionRegisteredTest.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass4JavaCallback.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/BaseTest3PtrStorage.java",
          "src/junit/com/jogamp/common/net/TestAssetURLConnectionUnregistered.java",
          "src/junit/com/jogamp/common/util/TestIntIntHashMap.java",
          "src/junit/com/jogamp/common/net/AssetURLConnectionUnregisteredTest.java",
          "src/junit/com/jogamp/common/util/IntIntHashMapTest.java",
          "test/junit/com/jogamp/gluegen/TestStructAccessor.java",
          "src/junit/com/jogamp/common/util/TestIntObjectHashMap.java",
          "test/junit/com/jogamp/gluegen/StructAccessorTest.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/PCPPTest.java",
          "src/junit/com/jogamp/common/util/TestLongIntHashMap.java",
          "src/junit/com/jogamp/common/net/TestAssetURLConnectionRegistered.java",
          "src/junit/com/jogamp/common/util/LongIntHashMapTest.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass2FuncPtr.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass3PtrStorage.java",
          "src/junit/com/jogamp/common/util/IntObjectHashMapTest.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/BaseTest4JavaCallback.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/TestPCPP.java"
        ],
        "commitId" : "177ee444d1b86e6412f636d5f4e8f0695d418246",
        "timestamp" : 1691198109000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Cleanup unit test class names: Try to start w/ 'Test', remove intermediate 'Test' for supporting, non-test classes\u000a",
        "date" : "2023-08-05 03:15:09 +0200",
        "id" : "177ee444d1b86e6412f636d5f4e8f0695d418246",
        "msg" : "Cleanup unit test class names: Try to start w/ 'Test', remove intermediate 'Test' for supporting, non-test classes",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BaseTest3PtrStorage.java"
          },
          {
            "editType" : "add",
            "file" : "test/junit/com/jogamp/gluegen/TestStructAccessor.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/common/util/TestLongIntHashMap.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/common/net/TestAssetURLConnectionRegistered.java"
          },
          {
            "editType" : "delete",
            "file" : "src/junit/com/jogamp/common/util/LongIntHashMapTest.java"
          },
          {
            "editType" : "delete",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BaseTest2FuncPtr.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass2FuncPtr.java"
          },
          {
            "editType" : "delete",
            "file" : "src/junit/com/jogamp/common/net/AssetURLConnectionUnregisteredTest.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/common/util/TestIntObjectHashMap.java"
          },
          {
            "editType" : "delete",
            "file" : "src/junit/com/jogamp/common/util/IntObjectHashMapTest.java"
          },
          {
            "editType" : "delete",
            "file" : "src/junit/com/jogamp/common/net/AssetURLConnectionRegisteredTest.java"
          },
          {
            "editType" : "delete",
            "file" : "src/junit/com/jogamp/common/util/IntIntHashMapTest.java"
          },
          {
            "editType" : "delete",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BaseTest4JavaCallback.java"
          },
          {
            "editType" : "delete",
            "file" : "test/junit/com/jogamp/gluegen/StructAccessorTest.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/common/util/TestIntIntHashMap.java"
          },
          {
            "editType" : "delete",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/PCPPTest.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/common/net/TestAssetURLConnectionUnregistered.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/TestPCPP.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass3PtrStorage.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass4JavaCallback.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass4JavaCallback.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test4p1JavaCallback.java",
          "src/junit/com/jogamp/common/net/TestAssetURLConnectionUnregistered.java",
          "src/junit/com/jogamp/common/util/TestIntIntHashMap.java",
          "src/junit/com/jogamp/common/net/TestUri02Composing.java",
          "test/junit/com/jogamp/gluegen/StructValidator.java",
          "test/junit/com/jogamp/gluegen/TestStructAccessor.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test3p2PtrStorage.java",
          "src/junit/com/jogamp/common/util/TestIntObjectHashMap.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test2p1FuncPtr.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test2p2FuncPtr.java",
          "src/junit/com/jogamp/common/util/TestLongIntHashMap.java",
          "src/junit/com/jogamp/common/net/TestAssetURLConnectionRegistered.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test4p2JavaCallback.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass2FuncPtr.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass3PtrStorage.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test3p1PtrStorage.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/TestPCPP.java"
        ],
        "commitId" : "0d3c2b630e06045013250547b3d0cb1bd9f99386",
        "timestamp" : 1691198166000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Cleanup unit test class names (pt2): Try to start w/ 'Test', remove intermediate 'Test' for supporting, non-test classes\u000a",
        "date" : "2023-08-05 03:16:06 +0200",
        "id" : "0d3c2b630e06045013250547b3d0cb1bd9f99386",
        "msg" : "Cleanup unit test class names (pt2): Try to start w/ 'Test', remove intermediate 'Test' for supporting, non-test classes",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/common/util/TestIntIntHashMap.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/common/net/TestAssetURLConnectionUnregistered.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/common/net/TestUri02Composing.java"
          },
          {
            "editType" : "edit",
            "file" : "test/junit/com/jogamp/gluegen/TestStructAccessor.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass4JavaCallback.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test3p1PtrStorage.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test4p2JavaCallback.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test2p1FuncPtr.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test3p2PtrStorage.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/common/util/TestLongIntHashMap.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/common/net/TestAssetURLConnectionRegistered.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass2FuncPtr.java"
          },
          {
            "editType" : "edit",
            "file" : "test/junit/com/jogamp/gluegen/StructValidator.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test2p2FuncPtr.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/common/util/TestIntObjectHashMap.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/TestPCPP.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass3PtrStorage.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test4p1JavaCallback.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/scripts/runtest.sh",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2-common.cfg"
        ],
        "commitId" : "05a931d587feb3116892f5b146b3a4bb2867e923",
        "timestamp" : 1691198497000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Cleanup unit test class names (pt3): Try to start w/ 'Test', remove intermediate 'Test' for supporting, non-test classes\u000a",
        "date" : "2023-08-05 03:21:37 +0200",
        "id" : "05a931d587feb3116892f5b146b3a4bb2867e923",
        "msg" : "Cleanup unit test class names (pt3): Try to start w/ 'Test', remove intermediate 'Test' for supporting, non-test classes",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/scripts/runtest.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2-common.cfg"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/scripts/runtest.sh",
          "doc/misc/macos_nativelib_dependencies.md"
        ],
        "commitId" : "287780236de7e3cea7ba826a76f720cf4501e4c0",
        "timestamp" : 1691205539000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Add notes `Loading a MacOS Native Library's Dependencies` and use absolute path in unit test script for library-path\u000a",
        "date" : "2023-08-05 05:18:59 +0200",
        "id" : "287780236de7e3cea7ba826a76f720cf4501e4c0",
        "msg" : "Add notes `Loading a MacOS Native Library's Dependencies` and use absolute path in unit test script for library-path",
        "paths" : [
          {
            "editType" : "add",
            "file" : "doc/misc/macos_nativelib_dependencies.md"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/runtest.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test2p1FuncPtr.java",
          "src/java/com/jogamp/gluegen/JavaEmitter.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test4p1JavaCallback.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/Test3p1PtrStorage.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass4JavaCallback.java"
        ],
        "commitId" : "9555288019afaf7f1b9eb73e02fe0d899d633292",
        "timestamp" : 1691207188000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Minor cleanup (includes, spacing)\u000a",
        "date" : "2023-08-05 05:46:28 +0200",
        "id" : "9555288019afaf7f1b9eb73e02fe0d899d633292",
        "msg" : "Minor cleanup (includes, spacing)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test4p1JavaCallback.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test3p1PtrStorage.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass4JavaCallback.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/Test2p1FuncPtr.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/GlueGen_Mapping.md",
          "doc/GlueGen_Mapping.html"
        ],
        "commitId" : "0e6d18c6b6d46b54e679ce0c44613e21e58245f2",
        "timestamp" : 1691209636000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "JavaCallback: Add Mathieu Féry's detailed git comment regarding 2abb40b0ca9a6a06bdbe3e66b4235301ed15c693; Updated GlueGen_Mapping.md\u000a\u000aOriginal comment of commit 2abb40b0ca9a6a06bdbe3e66b4235301ed15c693\u000a  wip(test_case): Example of test case for issue related of 927bbc7160a812bb29c0e7120d4a3009bfb13bbf\u000a\u000aRevised comment taken from unmerged updated branch f6de3646acf0fdadf55708fd8a1c42fbd8663bc5\u000a    wip(test_case): Example of test case for issue related of 927bbc7160a812bb29c0e7120d4a3009bfb13bbf\u000a\u000a    Some short summary of modifications :\u000a     * Add tests with each emitters for test2, but tests are shared and run for each emitters\u000a     * Update JavaParser.g to allow parsing of bindings generated after test2 processing\u000a       * Add basic management of generic type (But not yet retrieved inside classTypeSpec args)\u000a       * Add basic management of annotations (with or w/o parameter(s)) (Retrieved in statement, classes and interfaces but not used)\u000a     * Align lexer constants in JavaParser.g\u000a     * Update JavaParser.g to allow fetching all inner classes and inner interfaces to allow excluding by ExtendedInterfaceSymbolsIgnore\u000a     * Modify JavaConfiguration::requiresJavaCallbackCode because all callback need to force generation not only callback without user param\u000a       * Functions not generated w/o JavaConfiguration::requiresJavaCallbackCode :\u000a         * SetLogCallBack12a\u000a         * SetLogCallBack12b\u000a         * MessageCallback11b\u000a         * alBufferCallback0\u000a",
        "date" : "2023-08-05 06:27:16 +0200",
        "id" : "0e6d18c6b6d46b54e679ce0c44613e21e58245f2",
        "msg" : "JavaCallback: Add Mathieu Féry's detailed git comment regarding 2abb40b0ca9a6a06bdbe3e66b4235301ed15c693; Updated GlueGen_Mapping.md",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.html"
          },
          {
            "editType" : "edit",
            "file" : "doc/GlueGen_Mapping.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/CodeGenUtils.java"
        ],
        "commitId" : "4ab62d5121afec50dcb975fcfabefd838861da28",
        "timestamp" : 1691488341000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/mfery",
          "fullName" : "mfery"
        },
        "authorEmail" : "mfery@ankama.com",
        "comment" : "feat(generation): Fix CodeGenUtils.emitJavaHeaders\u000a\u000aWhen both classExtended and interfaces are specified for given class space missing between classExtended and implements keyword\u000a",
        "date" : "2023-08-08 11:52:21 +0200",
        "id" : "4ab62d5121afec50dcb975fcfabefd838861da28",
        "msg" : "feat(generation): Fix CodeGenUtils.emitJavaHeaders",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/CodeGenUtils.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/antlr/com/jogamp/gluegen/jgram/JavaParser.g"
        ],
        "commitId" : "496df9c41332a0d606017f0df5ba08b02af0c992",
        "timestamp" : 1691489157000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/mfery",
          "fullName" : "mfery"
        },
        "authorEmail" : "mfery@ankama.com",
        "comment" : "feat(generation): Fix generic parsing inside JavaParser.g to allow parsing of java callback implementation\u000a",
        "date" : "2023-08-08 12:05:57 +0200",
        "id" : "496df9c41332a0d606017f0df5ba08b02af0c992",
        "msg" : "feat(generation): Fix generic parsing inside JavaParser.g to allow parsing of java callback implementation",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/antlr/com/jogamp/gluegen/jgram/JavaParser.g"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "jcpp",
          "src/junit/com/jogamp/gluegen/test/junit/generation/BuildEnvironment.java",
          "make/scripts/runtest.sh",
          ".classpath",
          "make/build-test.xml"
        ],
        "commitId" : "4c5f3d8e589016e17ac3f1aad6a5c26bc21efe2f",
        "timestamp" : 1691498036000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bump jcpp (merged w/ jcpp upstream v1.4.14) and adopt to changes\u000a",
        "date" : "2023-08-08 14:33:56 +0200",
        "id" : "4c5f3d8e589016e17ac3f1aad6a5c26bc21efe2f",
        "msg" : "Bump jcpp (merged w/ jcpp upstream v1.4.14) and adopt to changes",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".classpath"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/BuildEnvironment.java"
          },
          {
            "editType" : "edit",
            "file" : "make/build-test.xml"
          },
          {
            "editType" : "edit",
            "file" : "jcpp"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/runtest.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/cpptest-included.h",
          "src/junit/com/jogamp/gluegen/test/junit/generation/cpptest.h",
          "make/scripts/runtest-secmgr.sh",
          "doc/manual/index.html",
          "make/scripts/runtest.sh",
          "src/junit/com/jogamp/gluegen/test/junit/generation/pcpptest.h",
          "src/java/com/jogamp/gluegen/pcpp/ConcatenatingReader.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/pcpptest-included.h",
          "src/junit/com/jogamp/gluegen/test/junit/generation/TestPCPP.java",
          "src/java/com/jogamp/gluegen/pcpp/PCPP.java",
          "src/junit/com/jogamp/gluegen/test/junit/generation/TestJCPP.java"
        ],
        "commitId" : "239b00c26cc3f24b7d9e334de8ac1bee849e05b1",
        "timestamp" : 1691500094000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Drop PCPP, GlueGen exclusively uses JCPP; Adopt test case Test{P->J}CPP\u000a",
        "date" : "2023-08-08 15:08:14 +0200",
        "id" : "239b00c26cc3f24b7d9e334de8ac1bee849e05b1",
        "msg" : "Drop PCPP, GlueGen exclusively uses JCPP; Adopt test case Test{P->J}CPP",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/TestJCPP.java"
          },
          {
            "editType" : "delete",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/pcpptest.h"
          },
          {
            "editType" : "delete",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/TestPCPP.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/cpptest.h"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/runtest.sh"
          },
          {
            "editType" : "delete",
            "file" : "src/java/com/jogamp/gluegen/pcpp/PCPP.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/cpptest-included.h"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/runtest-secmgr.sh"
          },
          {
            "editType" : "edit",
            "file" : "doc/manual/index.html"
          },
          {
            "editType" : "delete",
            "file" : "src/java/com/jogamp/gluegen/pcpp/ConcatenatingReader.java"
          },
          {
            "editType" : "delete",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/pcpptest-included.h"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/cpptest-included.h",
          "src/junit/com/jogamp/gluegen/test/junit/generation/cpptest.h",
          "src/junit/com/jogamp/gluegen/test/junit/generation/sub-inc/-cpptest-included2.h",
          "src/junit/com/jogamp/gluegen/test/junit/generation/TestJCPP.java"
        ],
        "commitId" : "07c57a0d36c375f55e93f0caf7dd57e7c0afe271",
        "timestamp" : 1691526683000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "TestJCPP: Add recursive-include test and include a header file starting with '-' and in a subdir containing a '-'\u000a",
        "date" : "2023-08-08 22:31:23 +0200",
        "id" : "07c57a0d36c375f55e93f0caf7dd57e7c0afe271",
        "msg" : "TestJCPP: Add recursive-include test and include a header file starting with '-' and in a subdir containing a '-'",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/cpptest-included.h"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/cpptest.h"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/sub-inc/-cpptest-included2.h"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/TestJCPP.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/antlr/com/jogamp/gluegen/cgram/GnuCParser.g",
          "src/antlr/com/jogamp/gluegen/cgram/StdCParser.g"
        ],
        "commitId" : "b5ec911572aa0c07228fcb02976a8e848cc90391",
        "timestamp" : 1691656787000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "ANTLR Syntax: Add debugging facility for GnuCParser.g and StdCParser.g\u000a",
        "date" : "2023-08-10 10:39:47 +0200",
        "id" : "b5ec911572aa0c07228fcb02976a8e848cc90391",
        "msg" : "ANTLR Syntax: Add debugging facility for GnuCParser.g and StdCParser.g",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/antlr/com/jogamp/gluegen/cgram/GnuCParser.g"
          },
          {
            "editType" : "edit",
            "file" : "src/antlr/com/jogamp/gluegen/cgram/StdCParser.g"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/antlr/com/jogamp/gluegen/cgram/GnuCParser.g"
        ],
        "commitId" : "f8752c59945205b717c4b21ceeb4044ae9a0e9df",
        "timestamp" : 1691657242000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1450: Fix 'Number' rule, i.e. only consume positive numbers as `additiveExpr` and `unaryExpr` consume the '-' operator\u000a\u000an GlueGen commit 10032c0115f2794a254cffc2a1cd5e48ca8ff0b8 in branch JOGL_2_SANDBOX\u000aKen hacked in consuming a '-' prefix to have negative numbers covered by 'Number'.\u000a\u000aThis is wrong, as it breaks deduction of `additiveExpr` and 'unaryExpr' rules,\u000awhich want to consume '-' and '+'.\u000aThe latter is used to completely resolve constant expressions\u000astarting from the 'constExpr' rule.\u000a\u000aSee ISO 9899:202x Programming Language - C\u000ahttps://www.open-std.org/jtc1/sc22/wg14/www/docs/n2596.pdf\u000a",
        "date" : "2023-08-10 10:47:22 +0200",
        "id" : "f8752c59945205b717c4b21ceeb4044ae9a0e9df",
        "msg" : "Bug 1450: Fix 'Number' rule, i.e. only consume positive numbers as `additiveExpr` and `unaryExpr` consume the '-' operator",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/antlr/com/jogamp/gluegen/cgram/GnuCParser.g"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/ConstantDefinition.java"
        ],
        "commitId" : "5b6e6af3932ece0c656cf4438100f4e213ea91b6",
        "timestamp" : 1691657611000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1450: Widen ConstantDefinition.isConstantExpression() to include 'patternCPPOperand'\u000a\u000ai.e. all supported operands used for constant-expression of define macros.\u000a",
        "date" : "2023-08-10 10:53:31 +0200",
        "id" : "5b6e6af3932ece0c656cf4438100f4e213ea91b6",
        "msg" : "Bug 1450: Widen ConstantDefinition.isConstantExpression() to include 'patternCPPOperand'",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/ConstantDefinition.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/GlueGen.java",
          "src/java/com/jogamp/gluegen/JavaEmitter.java"
        ],
        "commitId" : "c30f0db4b785f21288f9cc5f7fd65393781d93c3",
        "timestamp" : 1691657735000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1450: Be more verbose w/ JavaEmitter comment lines for enums and defines, include native expression\u000a",
        "date" : "2023-08-10 10:55:35 +0200",
        "id" : "c30f0db4b785f21288f9cc5f7fd65393781d93c3",
        "msg" : "Bug 1450: Be more verbose w/ JavaEmitter comment lines for enums and defines, include native expression",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/JavaEmitter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/GlueGen.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/cpptest.h",
          "make/scripts/runtest.sh",
          "src/junit/com/jogamp/gluegen/test/junit/generation/cpptest_10.hpp",
          "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h",
          "src/junit/com/jogamp/gluegen/test/junit/generation/cpptest_1.h",
          "src/junit/com/jogamp/gluegen/test/junit/generation/TestCParser.java",
          "make/build.xml",
          "src/junit/com/jogamp/gluegen/test/junit/generation/TestJCPP.java"
        ],
        "commitId" : "2ae7f2ea923aab662a0c273578456216bc8cd633",
        "timestamp" : 1691657943000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1450: Add test snippets covering the issues: test2.h for Bindingtest2, TestJCPP and new TestCParser\u000a",
        "date" : "2023-08-10 10:59:03 +0200",
        "id" : "2ae7f2ea923aab662a0c273578456216bc8cd633",
        "msg" : "Bug 1450: Add test snippets covering the issues: test2.h for Bindingtest2, TestJCPP and new TestCParser",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/cpptest.h"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/test2.h"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/TestJCPP.java"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/cpptest_1.h"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/TestCParser.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/runtest.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/build.xml"
          },
          {
            "editType" : "add",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/cpptest_10.hpp"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/gluegen/test/junit/generation/TestCParser.java"
        ],
        "commitId" : "a7e62d106b1ba89d0973e5ccb00982e8ae8df9e4",
        "timestamp" : 1691658115000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1450: TestCParser: Enable test10_cc() w/o JCPP\u000a",
        "date" : "2023-08-10 11:01:55 +0200",
        "id" : "a7e62d106b1ba89d0973e5ccb00982e8ae8df9e4",
        "msg" : "Bug 1450: TestCParser: Enable test10_cc() w/o JCPP",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/gluegen/test/junit/generation/TestCParser.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/gluegen/GlueGen.java"
        ],
        "commitId" : "b3dd6410aad591ddaec4eddfb8d894893368a54a",
        "timestamp" : 1691658538000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GlueGen: 'from expression' -> 'with expression'\u000a",
        "date" : "2023-08-10 11:08:58 +0200",
        "id" : "b3dd6410aad591ddaec4eddfb8d894893368a54a",
        "msg" : "GlueGen: 'from expression' -> 'with expression'",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/gluegen/GlueGen.java"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/ferymathieuy",
      "fullName" : "ferymathieuy"
    },
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
      "fullName" : "Sven Gothel"
    },
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/tgc",
      "fullName" : "tgc"
    },
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/mfery",
      "fullName" : "mfery"
    },
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/schwab",
      "fullName" : "schwab"
    }
  ]
}