aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Minor Cleanup: Buffers: Remove !JAVA_6 branch; NativeLibrary: Reuse isOSX ↵Sven Gothel2015-02-012-43/+21
| | | | detection
* Bug 1125 - Make ELF Reader 'jogamp.common.os.elf' StatelessSven Gothel2015-02-0123-1011/+1486
| | | | | | | | | | | | | | | | | | | | | | | | | ELF Reader 'jogamp.common.os.elf' currently uses Platform's pre-determined OS_TYPE and CPUType. It also uses the host platforms MachineDescription, hence can not read ELF files from other machines. This also forbids Platform to determine CPUType etc w/o having a valid 'os.arch' property. +++ ElfHeader should be split in - ElfHeaderPart1 (CPUType independent) - ElfHeaderPart2 (CPUType dependent) Fix shall make the ELF Reader self containing by only using ELF CPUType data, etc. This requires customization of struct parsing, where MachineDescription.Static index shall be - defined in ElfHeaderPart1 using e_Ident's CPUType. - used in ElfHeaderPart2 and all its struct types.
* Bug 1122: Refine AArch64 and OSType/32Bit incl. MachineDescriptionSven Gothel2015-01-307-100/+64
| | | | | | | | | | | | Android: - Detect ABIType.EABI_GNU_ARMHF via 'armeabi-v7a-hard' Platform.CPUType: - contains is32Bit now MachineDescription: - Rename *x86_64_unix* -> *lp64_unix*, reflecting universal __LP64__ mode - Remove is32Bit, which is determined by CPUType
* Refine Native Library Code: Bulk Permissions, Cleanup DynamicLinker impl. - ↵Sven Gothel2015-01-3012-172/+402
| | | | | | | | | | | | | | | and fix Android AArch64 BionicDynamicLinker (Bug 1122) - Bulk Permissions ProcAddressTable.reset(..) performs address lookup in one block. Now claiming all permissions upfront once, and releasing them afterwards. - Cleanup DynamicLinker impl. Proper top-down impl. of DynamicLinkerImpl, handling all security code and validations. - Fix Android AArch64 BionicDynamicLinker (Bug 1122) Dalvik uses diff RTLD_* defines for AArch64!
* Bug 1122: Reflect __LP64__ and _aarch64__ in GlueGen's stdint/stddef and ↵Sven Gothel2015-01-307-26/+80
| | | | Android compilerflags
* GlueGen: Cleanup static generated JNI code (fix method names)Sven Gothel2015-01-303-36/+55
| | | | | Symbol could not be found w/ Android: UnixDynamicLinkerImpl_JNI.c::Java_jogamp_common_os_UnixDynamicLinkerImpl_dlerror
* Bug 1122: Add AArch64 support (Android, GNU/Linux and in general)Sven Gothel2015-01-3010-78/+344
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Add AArch64 detection via - Elf Parser - Android properties - Java properties - Android: Validate CPUType.Family _and_ ABIType - MachineDescription - Remove redundant Type ID and its field - Reuse X86_64_UNIX for AArch64 (static config) New ARCH 'aarch64' for ant: <os arch> armv8a aarch64 New CPUType.ARM64 (ARM): java: os.arch aarch64 arm64 New CPUType.ARMv8_A (ARM): java: os.arch armv8-a arm64-v8a New ABIType: EABI_AARCH64
* Bug 1122 - Elf Parser: EM_res183 -> EM_AARCH64, detecting AArch64; Updating ↵Sven Gothel2015-01-303-68/+182
| | | | Shdr and Ehdr via GlueGen
* GlueGen: Make const array-length getter static, if constant.Sven Gothel2015-01-301-18/+26
|
* Bug 1122 - Add Android API 21 jar file and source zipSven Gothel2015-01-305-0/+213
|
* Bug 1123 - Android Launcher/ClassLoaderUtil: Fails to work w/ Android 5.* ↵Sven Gothel2015-01-281-0/+48
| | | | | | | | | | | | | | | | (lollipop/art) Our Android ClassLoaderUtil, used to daisy chain dex ClassLoader using GlueGen, Joal and Jogl APK files, doesn't work on Android 5.* (lollipop) with the art runtime. See below adb log. Seems like this is a known issue https://code.google.com/p/android/issues/detail?id=82122 Workaround mentioned is to copy the APK file(s) to a temp directory ..
* Bug 1124 - Android Build: Use SDK >= 24.0.2 (build-tools >= 21.1.2) and NDK ↵Sven Gothel2015-01-284-105/+94
| | | | | | | >= 10d Adjust build scripts and GlueGen Android tasks for SDK >= 24.0.2 (build-tools >= 21.1.2) and NDK >= 10d
* ExceptionUtils.dumpThrowable(..): Also dump all causes of the given ThrowableSven Gothel2015-01-231-0/+9
|
* ProcAddressConfiguration: Allow setting default value for ↵Sven Gothel2014-12-181-1/+4
| | | | 'GetProcAddressTableExpr'
* Bug 1108 - Fix difficulties to determine executable access permission on ↵Sven Gothel2014-12-138-21/+1020
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Windows via BATCH file execution Batch file execution test via direct call, i.e.'a.bat', does not work on some Windows machine, not reproducible here! A workaround would be to call the batch file explicit via 'CMD /c a.bat': - works when using 'Software Restriction Policies' (Bug 1015 Comment 2) - does _not_ work when denying ACL "Traverse Folder / Execute File" permission (Bug 1015 Comment 3) Due to this bug, we need to use a native execution: - Performing executable test w/ native exe file instead of batch file on Windows x86 32bit and 64bit, - using [1] TinyPE XP-W8 Compatible - x86 32bit and 64bit - 268 bytes - Tested on: WinXP-32bit, Win7-64bit and Win8-64bit - Author/License: Ange Albertini, BSD Licence, 2010-2013 - On all other Windows machines (ARM, ..), we still use direct execution of 'a.bat' but may add native exe files for missing platforms. +++ This patch injects said binaries within the java jar file and copies it into the 'to be tested' temp folder for execution. [1] TinyPE XP-W8 Compatible - x86 32bit and 64bit - 268 bytes is included within 'src/native/tinype-corkami', build manually and imported as 'src/java/com/jogamp/common/util/bin/exe-windows-i586-268b.bin'. +++
* TempFileCache/TempJarCache: Fix NPE in DEBUG modeSven Gothel2014-12-122-2/+7
|
* test scripts: Bump JRE, add TEMP/TMP settingsSven Gothel2014-12-128-22/+36
|
* GlueGen JavaEmitter: Use proper class access modifiers for emitted classes ↵Sven Gothel2014-12-113-20/+32
| | | | | | | incl. ProcAddressTable Emitted Java classes as well as optional ProcAddressTable shall use unique generated access modifiers covering all MethodAccess cases.
* Bug 1108 - IOUtil.getTempDir(..): Difficulties to determine executable ↵Sven Gothel2014-12-114-13/+19
| | | | | | | | | | | | access permission on Windows via BATCH file execution Try using explicit call to Windows 'cmd.exe' w/ referencing the BATCH file location, via 'Runtime.getRuntime().exec(new String[] { "cmd", "/c", "a.bat" } );' While the bug itself could not be reproduced here, I could test on Windows 7 (64bit and 32bit), as well as an WindowsXP 32bit that no regression occured.
* Bug 1106 - Bitstream: Simplify 'msbFirst' case for bulk operations / Add ↵Sven Gothel2014-12-037-327/+595
| | | | | | | | | | | | | | | | | | | | | | | setting of stream position (optional) - Add setting position entry, optionally supported, e.g. ByteBufferStream and ByteArrayStream - Remove 'msbFirst' parameter on all 'bulk' read/write operations. These methods use LSB-first always, allowing proper stream access of data w/ different bit-sizes. Data is now read/write as little-endian and swapped accordingly. Optimizations are adopted for LSB-first operations. This change removes API confusion/bugs: - removes one decision (parameter) - removes the data reversion case - removes bugs w/ different bit-sizes
* ExceptionUtils.dumpStack(..): Skip self stack entrySven Gothel2014-12-031-1/+1
|
* Refine ExceptionUtils: Shorten method name, dumpThrowable uses dumpStackSven Gothel2014-10-263-10/+21
|
* Add ExceptionUtils: Exposing dumpStackTrace(..) and dumpThrowable(..)Sven Gothel2014-10-081-0/+60
|
* SingletonJunitCase: Increase TO 12 -> 15 mins, only sleep for 1 poll period ↵Sven Gothel2014-10-042-6/+3
| | | | (500 ms) per JVM after test class (cooperative w/ other JVM test instances)
* SingletonJunitCase: Refine poll and release behaviorSven Gothel2014-10-031-1/+5
| | | | | | - Increase poll frequency from every 1000 ms -> 500 ms - After releasing the lock, sleep to 6 x poll period, i.e. 3s
* SingletonTestCase -> SingletonJunitCase: Accomodate ClassLoader lifecycle of ↵Sven Gothel2014-10-0347-139/+124
| | | | static fields; Change name to avoid testing itself.
* SingletonTestCase: SINGLE_INSTANCE_LOCK_TO (timeout) 6 -> 12 minutesSven Gothel2014-10-031-2/+2
|
* gitignore: build*/ and build-tempSven Gothel2014-10-031-0/+2
|
* SingletonTestCase: Move singleton test impl. from JOGL's UITestCase, inherit ↵Sven Gothel2014-10-0345-92/+179
| | | | | | | | | from JunitTracer and use it for all tests. - Certain performance tests don't make sense utilizing several jenkins unit tests on one machine, hence singleton test execution is desired. - JOGL's UITestCase also will derive from this SingletonTestCase
* MappedByteBufferInputStream: Default CacheMode is FLUSH_PRE_HARD now (was ↵Sven Gothel2014-10-031-7/+7
| | | | | | | | | | | FLUSH_PRE_SOFT) FLUSH_PRE_SOFT cannot be handled by some platforms, e.g. Windows 32bit. FLUSH_PRE_HARD is the most reliable caching mode and it will fallback to FLUSH_PRE_SOFT if no method for 'cleaner' exists. Further, FLUSH_PRE_HARD turns our to be the fastest mode as well.
* TestByteBufferInputStream: Reduce FLUSH_SOFT loadSven Gothel2014-10-031-6/+6
|
* TestByteBufferCopyStream, TestByteBufferInputStream: Reduce load and test timeSven Gothel2014-10-032-22/+25
|
* Make Scripts OSX: Remove -java7 script, add -java6 script (default uses java8)Sven Gothel2014-10-032-4/+14
|
* MappedByteBuffer*Stream:Sven Gothel2014-10-037-257/+521
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Validate active and GC'ed mapped-buffer count in cleanAllSlices() via close() .. - Fix missing unmapping last buffer in notifyLengthChangeImpl(), branch criteria was off by one. - cleanSlice(..) now also issues cleanBuffer(..) on the GC'ed entry, hence if WeakReference is still alive, enforce it's release. - cleanBuffer(..) reverts FLUSH_PRE_HARD -> FLUSH_PRE_SOFT in case of an error. - flush() -> flush(boolean metaData) to expose FileChannel.force(metaData). - Add synchronous mode, flushing/syncing the mapped buffers when in READ_WRITE mapping mode and issue FileChannel.force() if not READ_ONLY. Above is implemented via flush()/flushImpl(..) for buffers and FileChannel, as well as in syncSlice(..) for buffers only. flush*()/syncSlice() is covered by: - setLength() - notifyLengthChange*(..) - nextSlice() Always issue flushImpl() in close(). - Windows: Clean all buffers in setLength(), otherwise Windows will report: - Windows: Catch MappedByteBuffer.force() IOException - Optimization of position(..) position(..) is now standalone to allow issuing flushSlice(..) before gathering the new mapped buffer. This shall avoid one extra cache miss. Hence rename positionImpl(..) -> position2(..). - All MappedByteBufferOutputStream.write(..) methods issue syncSlice(..) on the last written current slice to ensure new 'synchronous' mode is honored. +++ Unit tests: - Ensure test files are being deleted - TestByteBufferCopyStream: Reduced test file size to more sensible values. -
* Bug 1080 - Refine MappedByteBuffer*Stream impl. and API [doc], adding stream ↵Sven Gothel2014-09-297-93/+514
| | | | to stream copy as well as direct memory mapped ByteBuffer access
* Bug 1080 - Add write support for memory mapped big file I/O via specialized ↵Sven Gothel2014-09-267-94/+747
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | OutputStream impl. Added MappedByteBufferOutputStream as a child instance of MappedByteBufferInputStream, since the latter already manages the file's mapped buffer slices. Current design is: - MappedByteBufferInputStream (parent) - MappedByteBufferOutputStream this is due to InputStream and OutputStream not being interfaces, but most functionality is provided in one class. We could redesign both as follows: - MappedByteBufferIOStream (parent) - MappedByteBufferInputStream - MappedByteBufferOutputStream This might visualize things better .. dunno whether its worth the extra redirection. +++ MappedByteBufferInputStream: - Adding [file] resize support via custom FileResizeOp - All construction happens via ctors - Handle refCount, incr. by ctor and getOutputStream(..), decr by close - Check whether stream is closed already -> IOException - Simplify / Reuse code MappedByteBufferOutputStream: - Adding simple write operations
* Bug 1080 - Fix TestByteBufferInputStream: Handle OutOfMemoryError cause in ↵Sven Gothel2014-09-262-26/+50
| | | | IOException (Add note to FLUSH_NONE); Reduce test load / duration.
* Adapt unit tests to commit 1350823035597f784f9cf871aa487f896f3d1840: ↵Sven Gothel2014-09-262-0/+22
| | | | getTempDir(..) throws IOException
* Bug 1080 - Add read support for memory mapped big file I/O via specialized ↵Sven Gothel2014-09-254-2/+1008
| | | | | | | | | | | | | | | InputStream impl., incl. mark/reset - ByteBufferInputStream simply impl. InputStream for an arbitrary 2MiB restricted ByteBuffer - Users may only need a smaller implementation for 'smaller' file sizes or for streaming a [native] ByteBuffer. - MappedByteBufferInputStream impl. InputStream for any file size, while slicing the total size to memory mapped buffers via the given FileChannel. The latter are mapped lazily and diff. flush/cache methods are supported to ease virtual memory usage. - TestByteBufferInputStream: Basic unit test for basic functionality and perf. stats.
* IOUtil: Fix API doc; getTempDir(..) shall throw IOException instead of ↵Sven Gothel2014-09-251-6/+31
| | | | | | | | | | RuntimeException for IO failures - Fix API doc - copy*() methods only close stream they open, no need to mention the proper behavior (obvious). - getTempDir(..) shall throw IOException instead of RuntimeException for IO failures - Ease using getTempDir(..), i.e. only handle IOException
* Bump semver to 0.9.30-SNAPSHOT of jogamp branch, incl. commit ↵Sven Gothel2014-09-244-8/+24
| | | | | | | 9cdb6bbf6d3248a65aa78ced08211d609c356f91 commit 9cdb6bbf6d3248a65aa78ced08211d609c356f91 fixes the tests of the Class, Field and Method accessor bit for compatibility.
* Bug 1067 - IOUtil.testDirExec(File) needs to preserve SPACE in ↵Sven Gothel2014-09-141-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | exetst.getCanonicalPath() command Having a test-executable file with SPACE in it's temporary path, e.g. Unix: /magic temp/user/ Windows XP: C:\Documents and Settings\user\temp results to split up commands if using 'Process.exec(String)', since it utilizes a StringTokenizer to assemble the command String[]. This patch uses 'Process.exec(String[])' avoiding splitting up SPACE in the full command string/path. Major impact is on 'Windows XP', where a SPACE separated TEMP/TMP folder is the default. Note-1: Commit 9bc3d3f78bb2fb1aa0ccfb02ffb5bdda74420cac introduced testing executable permission on Windows (Bug 1015) and rendered this issue visible. To reproduce the issue on Windows: +++ set TEMP=C:\Documents and Settings\jogamp\temp set TMP=C:\Documents and Settings\jogamp\temp "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" +++ Note-2: This bug affects all platforms!
* Bug 1063: Uri: Refine API doc; Add create(Encoded ..) ; Provide common impl. ↵Sven Gothel2014-09-105-185/+633
| | | | | | | | | | | | | | | | | | | | for getNormalized(), getDirectory(), getParent() and getRelativeOf() - Refine API doc - Add notion of {@code host} and {@code port} validation - Add create(Encoded ..), allowing creation of variants w/o re-encoding - Provide common impl. for getNormalized(), getDirectory(), getParent() and getRelativeOf() Above feature methods share common goals, hence use same implementation: - If opaque, cut-off query and merge after operation - cleanup path, i.e. /dummy/../test/ -> /test/ - cutoff file, dir - if requested - append optional appendix and cleanup again Return behavior various thought, i.e. null, this or allow exception. Enhanced test of above features.
* Bug 1063: Further Uri completion - As a result of JOGL Uri adoptionSven Gothel2014-09-085-67/+63
|
* Bump 2.3.0Sven Gothel2014-09-081-4/+4
|
* Merge branch 'v2.3.0_branch'Sven Gothel2014-09-0826-1146/+3468
|\
| * Bug 1063: Complete Uri impl. and adoption throughout GlueGenSven Gothel2014-09-0819-881/+926
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Uri: - Add error correction (fix) of path at ctor in case a a contained Uri is requested from an opaque one. The latter might come from URI/URL and is not properly encoded! See Uri.PARSE_HINT_FIX_PATH - Simplify conversion methods: - valueOf(URI/URL): Re-encode only if not opaque - getNativeFilePath() -> toFile() - Move IOUtil Uri related constants to class Uri - Add DEBUG and DEBUG_SHOWFIX - Complete adoption of URI -> Uri changes - IOUtil, JarUtil and TempJarCache still holds some left over deprecated methods, which will be removed after officially starting 2.3.0 (JOGL dependencies) - Otherwise not URI utilization left - Tests - Cleaned ip TestUri01 and TestUri03Resolving - TestUri03Resolving also tests URL -> Uri, and hence mentioned Uri.PARSE_HINT_FIX_PATH
| * Bug 1063 - Refine Uri and Uri.Encode ; Fix unit tests (passing on GNU/Linux, ↵Sven Gothel2014-09-075-82/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | OSX and Windows) - Refine Uri - remove System.err.print* - scheme is of type Encode - Refine Uri.Encode - substring(..) shall return type Encode - Fix unit tests (passing on GNU/Linux, OSX and Windows)
| * Bug 1063 - Uri.PATH_LEGAL: Remove reserved 'punct', encoding all reserved ↵Sven Gothel2014-09-073-51/+33
| | | | | | | | chars but '!', allows removal of PATH_MIN_LEGAL ; Add comment for Harmony values for review
| * Bug 1063 - Utilize own Uri and Uri.Encoded class w/ proper encoding and ↵Sven Gothel2014-09-0718-318/+2636
| | | | | | | | | | | | | | | | | | | | | | | | differentiating encoded/decoded variants by type [Part 1] - Add immutable com.jogamp.common.net.Uri class impl. RFC 2396 w/ encoding of RFC 3986 - Class Uri.Encoded is used to represent encoded parts - IOUtil: Remove unused methods (residing in Uri) and mark others deprecated (will move to Uri) - Adopt usage of Uri: This must be completet in follow-up commits!