| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
unloading of native library.
|
|
|
|
|
|
|
|
| |
JNILibLoaderBase's 'addNativeJarLibs(Class<?> classFromJavaJar, String allNativeJarBaseName, String[] atomicNativeJarBaseNames)'
now just attempts to load the 'all' variant, and will continue w/ atomics if not successful (ie not available).
It skips the validation of a 'allJavaJarPrefix', ie validating the 'classFromJavaJar holding JAR file,
which allows GLUEGEN/JOGL classes to be contained in JAR files other than the original.
|
| |
|
|
|
|
| |
(remove isDirectory(), which requires extra permissions)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It turns out that Java's File mkdir() only makes the directory writable for the current user,
I have missed this fact. Great catch.
1. Fix TempJarCache.isInitialized(): Return false if not successfully initialized.
It merely returned if it has passed 'initSingleton()' and ignored the staticInitError.
2. Fix TempFileCache pattern of determining the temp base directory
We cannot just use a static directory name, due to the multi user environment
and user write permissions on File.mkdir().
IOUtil has a new 'getTempDir(..)' methods, which iterates through integers [000000-999999]
until a writeable directory could be found or created.
TempFileCache initializes this temp base dir in the static block ensuring
the value is final for the JVM / ClassLoader.
Updated comments/docs in TempFileCache.
|
|
|
|
| |
pending '/' to filename)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(eg. Eclipse 'rsrc:' case)
- Use ':' as 'path' delimiter in case no path via '/' is given.
+++
Manual tested w/ Eclipse:
Preparations:
===============
1) Set up a vanilla eclipse (3.7.0) workspace
2) Add the JOGL User Library:
- Window.Preference
- Java.Build_Path.User_Libraries:
+ JOGL
+ gluegen-rt.jar
+ jogl.all.jar
+ gluegen-rt-natives-linux-amd64.jar
+ jogl-all-natives-linux-amd64.jar
You may add all other native JARs here.
Note that these are not required in the CLASSPATH by JOGL,
however, they are required by Eclipse to export your project as a Runnable JAR File.
3) New test project
- Right-click your project in the Package Explorer and click "Properties".
- Select "Java Build Path" and click the "Libraries" tab.
+ JOGL
- Add some simple code ..
- Run as Java Application ..
Test-1:
=========
Export
- Right-click your project in the Package Explorer and click "Export"
- Select Java.Runnable_JAR_file
+ Launch configuration
+ some destination path
+ Library handling:
Copy required libraries into a sub-folder next to the generated JAR
Result: Works!
./lala01.jar
./lala01_lib/jogl.all.jar
./lala01_lib/jogl-all-natives-linux-amd64.jar
./lala01_lib/... etc ..
Test-2:
=========
Export
- Right-click your project in the Package Explorer and click "Export"
- Select Java.Runnable_JAR_file
+ Launch configuration
+ some destination path
+ Library handling:
Package required libraries into generated JAR
Result: Works!
./lala02.jar:
Manifest-Version: 1.0
Rsrc-Class-Path: ./ gluegen-rt-natives-linux-amd64.jar gluegen-rt.jar
jogl-all-natives-linux-amd64.jar jogl.all.jar
Class-Path: .
Rsrc-Main-Class: Test01
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
|
|
|
|
|
|
|
|
| |
Add unit test.
Misc.:
- IOUtil: Add toURL* methods
- TempJarCache: Add 'URL getResource(String)'
|
| |
|
|
|
|
|
|
|
|
| |
for compiler/linker.
As Wade Walker suggests, use '-mmacosx-version-min=10.5' compiler/linker flag,
which doesn't break 10.6 nor 10.7 builds, still need confirmation whether it
works on 10.5!
|
| |
|
| |
|
|
|
|
| |
43b7675259eb76c570b6cc3a44fec2b9f6410697)
|
|
|
|
| |
ReflectionUtil.MethodAccess, a convenient Method instance accessor.
|
| |
|
| |
|
|
|
|
| |
exceptions
|
| |
|
|
|
|
| |
0bafac07b61f10c1a24e8c052937607bbfcb39ec
|
|
|
|
| |
sizeof(long double) == 8
|
|
|
|
| |
dummy-value properly
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
const, ie no write-back
We shall consider the C header declaration as being correct
and no modification shall happen on const arrays.
Tested w/ unit tests and JOGL
+++
Cleanup JavaType: final immutable fields, proper CVoidPointer name
|
| |
|
|
|
|
| |
assignable types
|
|
|
|
|
|
| |
IOUtil's getTempRoot():
- Fix chicken-egg problem w/ Platform init,
using Android.isavailable;
|
| |
|
|
|
|
| |
context's directory + '/temp' (if stored at StaticContext)
|
|
|
|
| |
resources inclusion
|
| |
|
| |
|
| |
|
|
|
|
| |
the result
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- RecursiveLock _is_ interface.
- Use LockFactory to create a RecursiveLock.
- Impl: RecursiveLockImpl01Unfairish
- just using notify w/o any queue: fast
- still enqueuing new lock-applicants if queue full (nice)
- lock's sync extends AbstractOwnableSynchronizer and uses it (monitor)
- Impl: RecursiveLockImpl01CompleteFair
- using queue and interrupt for correctness (slow)
- lock's sync extends AbstractOwnableSynchronizer and uses it (monitor)
- Impl: RecursiveLockImplJava5 for using Java5's concurrency impl.
- to verify correctness, performance and deviation of locking time
TestRecursiveLock01 new performance measurements incl. simple avrg and deviation
shows best combined performance-deviation w/ our RecursiveLockImpl01Unfairish
os Linux and MacOSX.
RecursiveLockImpl01Unfairish is the default in LockFactory.
Adding 'private' LockDebugUtil, allowing validating all holdings locks
of one thread as stack traces (Throwable).
Besides the AbstractOwnableSynchronizer utilization, this helps debugging deadlocks
and starvation very well.
|
|
|
|
| |
throws declaration
|
|
|
|
| |
interface
|
| |
|
|
|
|
| |
'atomic' variants
|
|
|
|
| |
of parent if !exist
|
| |
|
|
|
|
| |
'true' - allowing to disable usage of TempJarCache.
|
|
|
|
| |
Platform static init after loading native library.
|
|
|
|
| |
Certificates if caller has any. Add Convenient JNILibLoaderBase.addNativeJarLibs(..) method.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TempJarCache.bootstrapNativeLib(..) usage
- Moving to Platform solves former interdependencies between GlueGenJNILibLoader/Platform
- TempJarCache is being setup w/ bootstraping the gluegen-rt native lib jar file.
Interesting here is that when using Oracle's JRE w/ Applets/JNLP the
current dbg output is:
gluegen-rt: url-root http://risa/deployment/test/jau02s/jar/
gluegen-rt: nativeJarURL jar:http://risa/deployment/test/jau02s/jar/gluegen-rt-natives-linux-amd64.jar!/
gluegen-rt: nativeJar /home/sven/.java/deployment/cache/6.0/49/3c6d1e31-2c90f42e
IE the JRE implementation already deduces the online link to the Applet/JNLP cache.
This makes the implementation much simpler, ie. same for application and Applets/JNLP.
Have to verify w/ other Java impl. sure - and add same logic for the JOGL part.
|
|
|
|
|
|
| |
- JNILibLoaderBase: If TempJarCache is active, try find native library in cached JARs
- TempJarCache: Add bootstrabNativeLib(..) allowing bootstraping gluegen-rt from JAR w/o needing it
- JARUtil: minor edits (final)
|
|
|
|
|
|
|
|
| |
gluegen-rt native lib as well
- removed redundance
- move proper JNLPAppletLauncher custom libloader code into JNILibLoaderBase
- prepares for new JAR temp cache ..
|