Java applets declared as in the example below fail to load because the MRJ Plugin does not specifically claim to support the required mimetype. <object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" WIDTH = 520 HEIGHT = 400 NAME =" TestApplet" ALIGN = middle VSPACE = 0 HSPACE = 0 codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> <param NAME = CODE VALUE =" raoult.RaoultApplet.class" > <param NAME = CODEBASE VALUE =" ." > <param NAME = ARCHIVE VALUE =" raoult.jar" > <param NAME = NAME VALUE =" TestApplet" > <param NAME="type" VALUE="application/x-java-applet;version=1.3"> <param NAME="scriptable" VALUE="false"> <COMMENT> <embed type="application/x-java-applet;version=1.3" CODE =" raoult.RaoultApplet.class" CODEBASE =" ." ARCHIVE =" raoult.jar" NAME =" TestApplet" WIDTH = 520 HEIGHT = 400 ALIGN = middle VSPACE = 0 HSPACE = 0 scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><noembed></COMMENT> </noembed></embed> </object> Applets declared with the <applet> tag, or as <embed> tags using only "application/x-java-applet", work as expected because they to not request a specific version of Java. There are two routes we can take to fix this situation. 1) We can add mimetype descriptions for all of the various Java releases. (there are currently 9 from 1.1 to 1.3.1) 2) We can evangalize sites to use the applet tag, or at least to not use ;version=x.x. There are issues with both of these. If we follow the first path we end up having to rev the plugin everytime Sun revs their JRE. If we follow the second path we could end up evangalizing a potentially unlimited number of sites.
3) One more option is to change mime type comparison algorithm and if there is no exact match for whole string then strip first part untill ";" and try it. This approach also has issues :)
Yes, I didn't mention that approach as we had already kind of ruled it out as being too ugly.
As resource files don't diff well, I'll do this manually...Currently we support: application/x-java-vm, xjv application/x-java-applet, xja application/x-java-applet;version=1.1, xja11 application/x-java-applet;version=1.1.2, xja112 Versions apparently attached to Java 1 (OS 9 and OS X plug-ins): application/x-java-applet;version=1.1.1, xja111 application/x-java-applet;version=1.1.3, xja113 application/x-java-applet;version=1.2, xja12 Versions apparently attached to Java 2 (OS X plug-in): application/x-java-applet;version=1.2.1, xja121 application/x-java-applet;version=1.2.2, xja122 application/x-java-applet;version=1.3, xja13 application/x-java-applet;version=1.3.1, xja131 Future versions attached to Java 2 (OS X plug-in): application/x-java-applet;version=1.4, xja14 application/x-java-applet;version=1.4.1, xja141 This info has been gleaned from a) the Windows Java Plug-in, and b) the Sun Java website, and is my best guess as to versions we would have to claim to support. This list is not comprehensive, as there also appear to be 1.1.x versions up to 1.1.8 (though apparently not supported by the Windows Java Plug-in.) Also, some of these versions do not appear to correspond to Sun Java releases (see http:// java.sun.com/products/archive/).
I wouldn't advise adding 1.4* versions, because Apple's JVM is based on Java 2 version 1.3.1.
No, I would agree that claiming to support 1.4 is probably a bad idea. I just added them for completeness.
I dug some more and found that Apples latest, and final, MRJ release for Classic supports JDK 1.1.8. Previous releases supported 1.0.2, 1.1.3, and 1.1.7 JDK's. So, mimetypes to be added to the classic plug-in are: application/x-java-applet;version=1.1.1, xja111 application/x-java-applet;version=1.1.3, xja113 For completeness, we could also add any or all of the following: application/x-java-applet;version=1.0.2, xja102 application/x-java-applet;version=1.1.7, xja117 application/x-java-applet;version=1.1.8, xja118 As these mimetypes doesn't appear on Windows plug-in releases, the only reason I can see for doing this would be to (potentially) support pages written specifically for the Mac. In additon the following should also go into the OS X plug-in: application/x-java-applet;version=1.2, xja12 application/x-java-applet;version=1.2.1, xja121 application/x-java-applet;version=1.2.2, xja122 application/x-java-applet;version=1.3, xja13 application/x-java-applet;version=1.3.1, xja131
Since it's a binary file that gets modified I'll just say r= on the concept.
sr=beard on the concept
OSX Plugin changes checked in.
Classic plugin changes checked in.
Verified in the 2002-12-17-08 cfm trunk under OS X 10.2.3.