3DzzD, JOGL support planned

again tried to right click, no popup , applet freeze and exceptions were generated…
Exception in thread “Thread-61” java.lang.NoClassDefFoundError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at javax.media.opengl.GLDrawableFactory.getFactory(GLDrawableFactory.java:106)
at javax.media.opengl.GLCanvas.(GLCanvas.java:110)
at javax.media.opengl.GLCanvas.(GLCanvas.java:82)
at dzzd.J.(Unknown Source)
at dzzd.DzzD.newRender3D(Unknown Source)
at dzzd.a.a(Unknown Source)
at dzzd.a.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

and my system cosol output , you asked so have it , but i do not think that it is system dependent problem…

acl.read = +
acl.read.default =
acl.write = +
acl.write.default =
application.home = E:\PROGRA~1\Java\JRE15~1.0_0
awt.toolkit = sun.awt.windows.WToolkit
browser = sun.plugin
browser.vendor = Sun Microsystems, Inc.
browser.version = 1.1
file.encoding = Cp1250
file.encoding.pkg = sun.io
file.separator =
file.separator.applet = true
http.agent = Mozilla/4.0 (Windows XP 5.1)
http.auth.serializeRequests = true
https.protocols = SSLv3,SSLv2Hello
java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment
java.awt.printerjob = sun.awt.windows.WPrinterJob
java.class.path = E:\PROGRA~1\Java\JRE15~1.0_0\classes
java.class.version = 49.0
java.class.version.applet = true
java.endorsed.dirs = E:\PROGRA~1\Java\JRE15~1.0_0\lib\endorsed
java.ext.dirs = E:\PROGRA~1\Java\JRE15~1.0_0\lib\ext
java.home = E:\PROGRA~1\Java\JRE15~1.0_0
java.io.tmpdir = E:\DOCUME~1\kylix\USTAWI~1\Temp
java.library.path = E:\Program Files\Mozilla Firefox;.;E:\WINDOWS\system32;E:\WINDOWS;E:\Program Files\Mozilla Firefox;“F:\win xp program files\directxsdk feb06\Utilities\Bin\x86”;E:\WINDOWS\system32;E:\WINDOWS;E:\WINDOWS\System32\Wbem;E:\Program Files\VoiceAge\Common;E:\Program Files\NVIDIA Corporation\Cg\bin;
java.protocol.handler.pkgs = sun.plugin.net.protocol|sun.plugin.net.protocol|com.sun.deploy.net.protocol
java.runtime.name = Java™ 2 Runtime Environment, Standard Edition
java.runtime.version = 1.5.0_06-b05
java.specification.name = Java Platform API Specification
java.specification.vendor = Sun Microsystems Inc.
java.specification.version = 1.5
java.vendor = Sun Microsystems Inc.
java.vendor.applet = true
java.vendor.url = http://java.sun.com/
java.vendor.url.applet = true
java.vendor.url.bug = http://java.sun.com/cgi-bin/bugreport.cgi
java.version = 1.5.0_06
java.version.applet = true
java.vm.info = mixed mode, sharing
java.vm.name = Java HotSpot™ Client VM
java.vm.specification.name = Java Virtual Machine Specification
java.vm.specification.vendor = Sun Microsystems Inc.
java.vm.specification.version = 1.0
java.vm.vendor = Sun Microsystems Inc.
java.vm.version = 1.5.0_06-b05
javaplugin.maxHeapSize = 96m
javaplugin.nodotversion = 150_06
javaplugin.proxy.config.list =
javaplugin.proxy.config.type = browser
javaplugin.version = 1.5.0_06
javaplugin.vm.options = -Djava.class.path=E:\PROGRA~1\Java\JRE15~1.0_0\classes -Xbootclasspath/a:E:\PROGRA~1\Java\JRE15~1.0_0\lib\deploy.jar;E:\PROGRA~1\Java\JRE15~1.0_0\lib\plugin.jar -Xmx96m -Djavaplugin.maxHeapSize=96m -Xverify:remote -Djavaplugin.version=1.5.0_06 -Djavaplugin.nodotversion=150_06 -Dbrowser=sun.plugin -DtrustProxy=true -Dapplication.home=E:\PROGRA~1\Java\JRE15~1.0_0 -Dsun.java.noddraw=true -Djava.protocol.handler.pkgs=sun.plugin.net.protocol
line.separator = \r\n
line.separator.applet = true
os.arch = x86
os.arch.applet = true
os.name = Windows XP
os.name.applet = true
os.version = 5.1
os.version.applet = true
package.restrict.access.com.sun.deploy = true
package.restrict.access.netscape = false
package.restrict.access.org.mozilla.jss = true
package.restrict.access.sun = true
package.restrict.definition.com.sun.deploy = true
package.restrict.definition.java = true
package.restrict.definition.netscape = true
package.restrict.definition.org.mozilla.jss = true
package.restrict.definition.sun = true
path.separator = ;
path.separator.applet = true
sun.arch.data.model = 32
sun.boot.class.path = E:\PROGRA~1\Java\JRE15~1.0_0\lib\rt.jar;E:\PROGRA~1\Java\JRE15~1.0_0\lib\i18n.jar;E:\PROGRA~1\Java\JRE15~1.0_0\lib\sunrsasign.jar;E:\PROGRA~1\Java\JRE15~1.0_0\lib\jsse.jar;E:\PROGRA~1\Java\JRE15~1.0_0\lib\jce.jar;E:\PROGRA~1\Java\JRE15~1.0_0\lib\charsets.jar;E:\PROGRA~1\Java\JRE15~1.0_0\classes;E:\PROGRA~1\Java\JRE15~1.0_0\lib\deploy.jar;E:\PROGRA~1\Java\JRE15~1.0_0\lib\plugin.jar
sun.boot.library.path = E:\PROGRA~1\Java\JRE15~1.0_0\bin
sun.cpu.endian = little
sun.cpu.isalist =
sun.desktop = windows
sun.io.unicode.encoding = UnicodeLittle
sun.java.noddraw = true
sun.jnu.encoding = Cp1250
sun.management.compiler = HotSpot Client Compiler
sun.net.client.defaultConnectTimeout = 120000
sun.net.http.errorstream.enableBuffering = true
sun.os.patch.level = Dodatek Service Pack 2
trustProxy = true
user.country = PL
user.dir = E:\Program Files\Mozilla Firefox
user.home = E:\Documents and Settings\kylix
user.language = pl
user.name = kylix
user.timezone = Europe/Belgrade
user.variant =

Dump deployment properties …

deployment.browser.args = -raise -remote openURL(%u,new-window)
deployment.browser.path = E:\PROGRA~1\MOZILL~1\FIREFOX.EXE
deployment.cache.jarcompression = 0
deployment.cache.max.size = -1
deployment.capture.mime.types = false
deployment.console.startup.mode = HIDE
deployment.control.panel.log = false
deployment.home.j2se.url = http://java.sun.com/j2se/
deployment.javapi.cache.enabled = true
deployment.javapi.lifecycle.exception = false
deployment.javapi.log.filename =
deployment.javapi.runtime.type = 0
deployment.javapi.trace.filename =
deployment.javaws.associations = ASK_USER
deployment.javaws.autodownload = ALWAYS
deployment.javaws.cache.update = true
deployment.javaws.home.jnlp.url = http://java.sun.com/products/javawebstart
deployment.javaws.installURL = http://java.sun.com/products/autodl/j2se
deployment.javaws.logFileName =
deployment.javaws.muffin.max = 256
deployment.javaws.shortcut = ASK_IF_HINTED
deployment.javaws.splash.index = E:\Documents and Settings\kylix\Dane aplikacji\Sun\Java\Deployment\cache\javaws\splash\splash.xml
deployment.javaws.ssv.enabled = true
deployment.javaws.traceFileName =
deployment.javaws.uninstall.shortcut = false
deployment.javaws.update.timeout = 1500
deployment.log = false
deployment.mime.types.use.default = true
deployment.proxy.bypass.local = false
deployment.proxy.override.hosts =
deployment.proxy.same = false
deployment.proxy.type = 3
deployment.repository.askdownloaddialog.show = true
deployment.repository.enabled = true
deployment.security.SSLv2Hello = true
deployment.security.SSLv3 = true
deployment.security.TLSv1 = false
deployment.security.askgrantdialog.notinca = true
deployment.security.askgrantdialog.show = true
deployment.security.authenticator = true
deployment.security.browser.keystore.use = true
deployment.security.clientauth.keystore.auto = true
deployment.security.expired.warning = true
deployment.security.jsse.hostmismatch.warning = true
deployment.security.notinca.warning = true
deployment.security.sandbox.awtwarningwindow = true
deployment.security.sandbox.jnlp.enhanced = true
deployment.security.trusted.policy =
deployment.system.security.cacerts = E:\PROGRA~1\Java\JRE15~1.0_0\lib\security\cacerts
deployment.system.security.jssecacerts = E:\PROGRA~1\Java\JRE15~1.0_0\lib\security\jssecacerts
deployment.system.security.trusted.certs = E:\PROGRA~1\Java\JRE15~1.0_0\lib\security\trusted.certs
deployment.system.security.trusted.clientauthcerts = E:\PROGRA~1\Java\JRE15~1.0_0\lib\security\trusted.clientcerts
deployment.system.security.trusted.jssecerts = E:\PROGRA~1\Java\JRE15~1.0_0\lib\security\trusted.jssecerts
deployment.trace = false
deployment.update.mime.types = true
deployment.user.cachedir = E:\Documents and Settings\kylix\Dane aplikacji\Sun\Java\Deployment\cache
deployment.user.extdir = E:\Documents and Settings\kylix\Dane aplikacji\Sun\Java\Deployment\ext
deployment.user.logdir = E:\Documents and Settings\kylix\Dane aplikacji\Sun\Java\Deployment\log
deployment.user.security.policy = file://E:/Documents%20and%20Settings/kylix/Dane%20aplikacji/Sun/Java/Deployment/security/java.policy
deployment.user.security.trusted.cacerts = E:\Documents and Settings\kylix\Dane aplikacji\Sun\Java\Deployment\security\trusted.cacerts
deployment.user.security.trusted.certs = E:\Documents and Settings\kylix\Dane aplikacji\Sun\Java\Deployment\security\trusted.certs
deployment.user.security.trusted.clientauthcerts = E:\Documents and Settings\kylix\Dane aplikacji\Sun\Java\Deployment\security\trusted.clientcerts
deployment.user.security.trusted.jssecacerts = E:\Documents and Settings\kylix\Dane aplikacji\Sun\Java\Deployment\security\trusted.jssecacerts
deployment.user.security.trusted.jssecerts = E:\Documents and Settings\kylix\Dane aplikacji\Sun\Java\Deployment\security\trusted.jssecerts
deployment.user.tmp = E:\Documents and Settings\kylix\Dane aplikacji\Sun\Java\Deployment\tmp
deployment.version = 6.0

Can you try with internet explorer? if you do not did it already?

EDIT: a friend of mine just tell me that without jogl it is woking the first time and the second time it does not work anymmore ???

Bruno

just tried it and the same exceptions, do not worry Bruno i will make my own test version as described in above example that i wrote and try to find a solution, but probably there can be some problems that can be only avoided by changing JoglAppletLancher, welll i now do not know that i will see it when i end my f…ed job job papers that i must make for tomorrow, eh i think it will not be so dificult and can be made quite elegant…

and one thing about that error note that loadLibrary() is also having and exception this mean that jogl.jar file is loading ok , but it does not know where native dll jar file is maybe it looks it in the server so in your online example in section with archive please add jogl-natives-win32 so it will look:

archive=" …, jogl.jar, jogl-natives-win32.jar "

can you make it and i will try it maybe it will work?

ho yes! good idea i try

say when site will be ready

ready, “unfortunatly” still working in my computer cannot find where the error come from

tell me if it is working!

;D ;D ;D DzzD you now what … nothig changed , it is so annoing that also funy, no i will try to make my own version and solve it , maybe other users also test your example online maybe them will work. Sorry but now i must get back to work . When i will solve it i will give a post ok Dzzd…

Ok, really annoying for me as it works an so cannot find any solution i need the error to found where it come from :’( :’(

Damn,damn,damn!!!

tell me if your solution works

I upgrade to new JVM: 1.5.0_06-b05 to see if it is still working and yes???

popup is a little different but it is still working, really dont understand ??!

Yes, that’s fine. JOGL is BSD licensed which basically means you can use it however you like. See the LICENSE.txt for details.

How did you get that security warning? Did you re-sign any of the jar files? You shouldn’t be able to claim that your applet (note your name at the top of the security dialog) is signed by Sun Microsystems. Maybe this is a bug in the security dialog code.

!?!!?.?,

I really dont know and only notice that the popup said my applet was signed by sun when i update to lastest jvm before i dont really read the security dialog maybe it was the same, dont know exacly?! to be true I dont understand what append!

Bruno

MR KEN RUSSEL please be so kind and answer one my question:

Is it possible to add one small class file to jogl.jar like JoglAppletLancher to jogl-src\jogl\src\classes\com\sun\opengl\util

What to add?

Well a simple class file that will enable silent instalatin for unsigned applets who would like to choose whatever they want download jogl support or not especially when that applet would like to have its own software renderer. When user would like to have jogl support it will donwload on its own jogl.jar and next step of instalation will be the same as in JoglAppletLancher.

How i imagine that?

first i have my own unsigned applet which is quite little becouse it has its own software renderer, when user decide to use jogl support My applet on its own download
jogl.jar and create instance of joglInstaler (code below, that must be added to jogl.jar ), interface is neccesary to handle connection betwean my app and jogl.jar, so my app load class joglInstaler using ClassForName and newInstance() to initalize it and then invokes installJoglAndGetMyListener function as a argument it will pass
MY own class file as byte array that supports jogl (using GLEventListener etc, for example like has made it Dzzd in code example above) . This function will install jogl on client machine initalize that my class file i mention earlier and return it to my app. So my app will be also able to use func display from jogl (GLEventListener )

interface{
GLEventListener installJoglAndGetMyListener( byte joglProgram[] );
}

class joglInstaler implements JoglInstall
{
GLEventListener installJoglAndGetMyListener( byte joglProgram[] )
{
… install native libs
… initalize class from byte array -> joglProgram[] , i think that byte array it is good solution becouse my applet
could download my own class supporting jogl from server when it will be really neccesary (for example when usser would like to enable jogl)
… initalize as new instance that class
… return it as interface

}

}

I am very sorry that i gave an idea not working code, but i was thinking for a solution for enable unsigned smalll applets to have jogl support when user want it,
well adding one additional file to jogl.jar should not be a problem since it is already signed.

So again what do you think Ken

Ok i go sleep…

This sounds like a good idea but you or someone else in the community will have to prototype it. c_lilian did an excellent job with the current JOGLAppletLauncher and another effort like that would be needed to generalize it a little bit more.

Ok, I uninstall java and than re-install, remove all dll every where with JOGL*.* about one hour of work and finally demo do not work anymore same bug as others.

To work the native dll must be in java lib directory or windows system directory maybe

But it is a really starnge bug that my browser said me my applet was signed by sun!?!

anyways, If we found a simple way to put the correct native library on user java lib folder, all things will work very well without further need for the user to accept a certificat.

why jogl do not do it by itself if it is signed? rather than looking in the java library, it only need to download the native library on request maybe a method like checkLibrary and instalLibrary will do the job?

Bruno

JOGL is an OpenGL binding, not a distribution mechanism. We recommend Java Web Start for deploying applications using JOGL and Java Web Start takes care of all of these installation, caching and versioning issues transparently. We supplied the JOGLAppletLauncher more or less as an experiment to see how well 3D applets would work. In general we are not going to get into the business of supplying installers because every application that doesn’t 'use Java Web Start has different requirements. However, if you or someone else want to generalize the JOGLAppletLauncher a little more to work in slightly different contexts, that would be fine and welcomed.

Ken i am happy that you give us an opportunity to make such code, i will make it in a couple of days time , code will be based partly on JoglAppletLancher c_Lilian code. After i will test it that works and post it to javagaming, so people will be able to check it etc, again thanx Ken.

DzzD now when nothing works you ;D you can finally check how real JoglAppletLancher code works please go to this site and say if it works (if you again have not install jogl manually it should work ):
https://jogl-demos.dev.java.net/applettest.html

a cool game also from c_lilian at javapause.com

how to make a true jogl applet please check source code from jogl-demos - gears applet

yep, I know it is works I already did the test, but somthing annoying is jogl.jar in applet tag like <applet archive="myappl.jar,jogl.jar…, also works if the dll are in place and jogl.jar is about 800kb when dll is about 60ko, so why jogl.jar isn’t able to load it properly if he have already the right to load native lib?! an applet can use the jogl.jar without problem including the fact that it load native library but noway to tell him to load it from networks, it is like having a “porche with bycicle tire” just 60ko (native library) are missing to make it usable in applet.

what has dislike in the JOGLAppletLauncher , wich is great, is the fact that it embed the applet, I dont like this way.

Bruno

joglAppletLancher id designed to work on top of your true applet, so as in that example with gears demo applet on official page works inside JoglAppletLancher, and about that porshe… it is agood idea to store everything in one file, Dzzd would you be so kind and check how the full jogl.jar will have size when you add inside it ALL native jars for win, mac linux solaris. Just for example in winrar add those files to the jar. I think that the final size of that jogl+natives will be around 1,2 mb, becouse jogl today is about 900 kb , well i guess it is good to check, but i think that creating sperate files is good for testing etc…

I was talking about remote loading the library when not present in the user computer…

like a new static method in the jogl.jar loadJOGLLibraryFromURL(“mysit.com/joglnative-win32.jar”); or loadJOGLLibraryFromURL(“mysit.com/joglnative-linux.jar”); etc…

the signed jogl.jar have already the right to load native lib and can be used in applet without the need to sign this applet so remote loading is also possible, just by adding a simple method in the jogl.jar, it will be a much more simple process to use it in applet.