Skip to content
The Jenkins Controller is preparing for shutdown. No new builds can be started.
Success

Changes

Summary

  1. PlatformPropsImpl.getOSAndArch(..): Cleanup, use final String instances (details)
  2. Debug: Use JogAmp license, since we re-modelled it using PropertyAccess, (details)
  3. Cleanup JNILibLoaderBase: Use Platform NEWLINE, remove obsolete notice (details)
  4. Bug 1024: Add fallback for native-jar-file location via classpath (details)
Commit 5d9b42b83b45401d522e13cfe6189c1640d351e9 by Sven Gothel
PlatformPropsImpl.getOSAndArch(..): Cleanup, use final String instances to ease review
The file was modified src/java/jogamp/common/os/PlatformPropsImpl.java (diff)
Commit a84509b7045f4f9cae5a75e1dd1be77bab0da372 by Sven Gothel
Debug: Use JogAmp license, since we re-modelled it using PropertyAccess, commit GlueGen f4ac27e177f6deb444280d3b375e7d343e38bd08
The file was modified src/java/jogamp/common/Debug.java (diff)
Commit be61c7f33ec8e4f3214e8d2969ee88cd327fce9d by Sven Gothel
Cleanup JNILibLoaderBase: Use Platform NEWLINE, remove obsolete notice of '[-noawt,-mobile,-core,-android]?' in API-doc, ...

- rename addNativeJarLibsWhenInitialized(..) -> addNativeJarLibsWithTempJarCache(..)
  to fix grammar and expose proper semantics.
The file was modified src/java/com/jogamp/common/jvm/JNILibLoaderBase.java (diff)
Commit f5c48efcf546ba4e08e197ccced6df83b57e1755 by Sven Gothel
Bug 1024: Add fallback for native-jar-file location via classpath

In situations, where the native-jar file is not located within
the same parent URI as it's java-jar file, our location mechanism fails.

This patch adds a classloader based native-jar file location mechanism as a fallback,
requiring the native jar file to be included in the users CLASSPATH.

Classloader based location algorithm in JNILibLoaderBase.addNativeJarLibsImpl(..):
  - Extract the 'module-name' from the given classFromJavaJar's package name,
    i.e. the last package-part: 'jogamp.common.Debug' -> 'common'

    Hence it is important to pass a 'classFromJavaJar',
    which last package segment reflects the module-name!

  - <os.and.arch> -> <os_and_arch_dot>, e.g. linux-amd64 -> linux.amd64 (linux/amd64)

  - Locate class 'jogamp.nativetag.<module-name>.<os_and_arch_dot>.TAG',
    e.g. 'jogamp.nativetag.common.linux.amd64.TAG'

  - Use located class's JarFile URI .. continue as usual

Injection of above mentioned TAG class via gluegen-cpptasks-base.xml macro 'native.tag.jar':
  - Creates dummy TAG.java code
  - Compiles TAG.java
  - Creates the native-jar file

Example:
      <native.tag.jar objdir="${build}/obj"
                      nativejarfile="${build}/gluegen-rt-natives-${os.and.arch}.jar"
                      manifestfile="${build}/Manifest-rt-natives.temp"
                      module="common"
                      includelibs="*gluegen-rt.${native.library.suffix}" />

Note that the manifest file uses a matching Extension-Name:
  Extension-Name: jogamp.nativetag.common
The file was modified make/scripts/runtest.sh (diff)
The file was modified make/Manifest-rt-natives (diff)
The file was modified src/java/com/jogamp/common/os/Platform.java (diff)
The file was modified make/gluegen-cpptasks-base.xml (diff)
The file was modified src/java/com/jogamp/common/jvm/JNILibLoaderBase.java (diff)
The file was modified make/build.xml (diff)